aboutsummaryrefslogtreecommitdiff
path: root/Src/Winamp/winampApi.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Winamp/winampApi.h')
-rw-r--r--Src/Winamp/winampApi.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/Src/Winamp/winampApi.h b/Src/Winamp/winampApi.h
new file mode 100644
index 00000000..b2d1913f
--- /dev/null
+++ b/Src/Winamp/winampApi.h
@@ -0,0 +1,42 @@
+#ifndef NULLSOFT_WINAMP_API_WINAMP_IMPLEMENTATION_HEADER
+#define NULLSOFT_WINAMP_API_WINAMP_IMPLEMENTATION_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#include <atomic>
+
+#include "./api_winamp.h"
+
+class WinampApi : public api_winamp
+{
+public:
+ WinampApi();
+ ~WinampApi();
+
+public:
+ static HRESULT CreateInstance(WinampApi **instance);
+ static const char *getServiceName();
+ static const GUID getServiceGuid();
+
+public:
+ /* Dispatchable */
+ size_t AddRef();
+ size_t Release();
+ int QueryInterface(GUID interface_guid, void **object);
+
+ /* api_winamp */
+ HWND GetMainWindow(void);
+ HWND GetDlgParent(void);
+ HRESULT OpenUrl(HWND hwnd, const wchar_t *url);
+ int GetRegVer();
+
+protected:
+ std::atomic<std::size_t> _ref = 1;
+
+protected:
+ RECVS_DISPATCH;
+};
+
+#endif //NULLSOFT_WINAMP_API_WINAMP_IMPLEMENTATION_HEADER \ No newline at end of file