aboutsummaryrefslogtreecommitdiff
path: root/Src/omBrowser/ifc_omservicehost.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/omBrowser/ifc_omservicehost.h')
-rw-r--r--Src/omBrowser/ifc_omservicehost.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/Src/omBrowser/ifc_omservicehost.h b/Src/omBrowser/ifc_omservicehost.h
new file mode 100644
index 00000000..5d525c02
--- /dev/null
+++ b/Src/omBrowser/ifc_omservicehost.h
@@ -0,0 +1,75 @@
+#ifndef NULLSOFT_WINAMP_OMSERVICE_HOST_INTERFACE_HEADER
+#define NULLSOFT_WINAMP_OMSERVICE_HOST_INTERFACE_HEADER
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+#include <bfc/dispatch.h>
+
+// {75339603-8A3A-490d-84B1-DD493004AAE2}
+static const GUID IFC_OmServiceHost =
+{ 0x75339603, 0x8a3a, 0x490d, { 0x84, 0xb1, 0xdd, 0x49, 0x30, 0x4, 0xaa, 0xe2 } };
+
+interface IDispatch;
+class ifc_omservice;
+
+// supports AddRef(), Release(), QueryInterface()
+class __declspec(novtable) ifc_omservicehost : public Dispatchable
+{
+protected:
+ ifc_omservicehost() {}
+ ~ifc_omservicehost() {}
+
+public:
+ HRESULT GetExternal(ifc_omservice *service, IDispatch **ppDispatch); // ppDispatch probably will be already set with JSAPI according to generation
+ HRESULT GetBasePath(ifc_omservice *service, wchar_t *buffer, unsigned int bufferMax);
+ HRESULT GetDefaultName(ifc_omservice *service, wchar_t *buffer, unsigned int bufferMax);
+ HRESULT GetUrl(ifc_omservice *service, wchar_t *buffer, unsigned int bufferMax); // buffer will be set with ifc_omservice->GetUrl() you can modify it if you want. Return: S_OK on success, E_NOTIMPL - if do not care or E_XXX for errror
+
+ HRESULT QueryCommandState(ifc_omservice *service, HWND hBrowser, const GUID *commandGroup, UINT commandId);
+ HRESULT ExecuteCommand(ifc_omservice *service, HWND hBrowser, const GUID *commandGroup, UINT commandId, ULONG_PTR commandArg);
+
+public:
+ DISPATCH_CODES
+ {
+ API_GETEXTERNAL = 10,
+ API_GETBASEPATH = 20,
+ API_GETDEFAULTNAME = 30,
+ API_QUERYCOMMANDSTATE = 40,
+ API_EXECUTECOMMAND = 50,
+ API_GETURL = 60,
+ };
+};
+
+inline HRESULT ifc_omservicehost::GetExternal(ifc_omservice *service, IDispatch **ppDispatch)
+{
+ return _call(API_GETEXTERNAL, (HRESULT)E_NOTIMPL, service, ppDispatch);
+}
+
+inline HRESULT ifc_omservicehost::GetBasePath(ifc_omservice *service, wchar_t *buffer, unsigned int bufferMax)
+{
+ return _call(API_GETBASEPATH, (HRESULT)E_NOTIMPL, service, buffer, bufferMax);
+}
+
+inline HRESULT ifc_omservicehost::GetDefaultName(ifc_omservice *service, wchar_t *buffer, unsigned int bufferMax)
+{
+ return _call(API_GETDEFAULTNAME, (HRESULT)E_NOTIMPL, service, buffer, bufferMax);
+}
+
+inline HRESULT ifc_omservicehost::QueryCommandState(ifc_omservice *service, HWND hBrowser, const GUID *commandGroup, UINT commandId)
+{
+ return _call(API_QUERYCOMMANDSTATE, (HRESULT)E_NOTIMPL, service, hBrowser, commandGroup, commandId);
+}
+
+inline HRESULT ifc_omservicehost::ExecuteCommand(ifc_omservice *service, HWND hBrowser, const GUID *commandGroup, UINT commandId, ULONG_PTR commandArg)
+{
+ return _call(API_EXECUTECOMMAND, (HRESULT)E_NOTIMPL, service, hBrowser, commandGroup, commandId, commandArg);
+}
+
+inline HRESULT ifc_omservicehost::GetUrl(ifc_omservice *service, wchar_t *buffer, unsigned int bufferMax)
+{
+ return _call(API_GETURL, (HRESULT)E_NOTIMPL, service, buffer, bufferMax);
+}
+
+#endif //NULLSOFT_WINAMP_OMSERVICE_HOST_INTERFACE_HEADER \ No newline at end of file