diff options
Diffstat (limited to 'Src/omBrowser/browserUiHook.h')
-rw-r--r-- | Src/omBrowser/browserUiHook.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Src/omBrowser/browserUiHook.h b/Src/omBrowser/browserUiHook.h new file mode 100644 index 00000000..6c7e251e --- /dev/null +++ b/Src/omBrowser/browserUiHook.h @@ -0,0 +1,70 @@ +#ifndef NULLSOFT_WINAMP_OMBROWSER_UI_HOOK_HEADER +#define NULLSOFT_WINAMP_OMBROWSER_UI_HOOK_HEADER + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#include "./ifc_winamphook.h" +#include "./ifc_omserviceevent.h" +#include "./ifc_omconfigcallback.h" +#include <bfc/multipatch.h> + +#define MPIID_WINAMPHOOK 10 +#define MPIID_SERVICEEVENT 20 +#define MPIID_CONFIGCALLBACK 30 + +class ifc_omservice; +class obj_ombrowser; + +class BrowserUiHook : public MultiPatch<MPIID_WINAMPHOOK, ifc_winamphook>, + public MultiPatch<MPIID_SERVICEEVENT, ifc_omserviceevent>, + public MultiPatch<MPIID_CONFIGCALLBACK, ifc_omconfigcallback> +{ +protected: + BrowserUiHook(HWND hTarget, BOOL fPopupMode); + ~BrowserUiHook(); + +public: + static HRESULT CreateInstance(HWND hTarget, BOOL fPopupMode, BrowserUiHook **instance); + +public: + /* Dispatchable */ + size_t AddRef(); + size_t Release(); + int QueryInterface(GUID interface_guid, void **object); + + /*ifc_winamphook (partial) */ + HRESULT SkinChanging(void); + HRESULT SkinChanged(const wchar_t *skinName); + HRESULT SkinColorChange(const wchar_t *colorTheme); + HRESULT ResetFont(void); + + /* ifc_omserviceevent */ + void ServiceChange(ifc_omservice *service, UINT nModified); + void CommandStateChange(ifc_omservice *service, const GUID *commandGroup, unsigned int commandId); + + + /* ifc_omconfigcallback */ + HRESULT ValueChanged(const GUID *configUid, UINT valueId, ULONG_PTR value); + +public: + HRESULT Register(obj_ombrowser *browserManager, ifc_omservice *service); + HRESULT Unregister(obj_ombrowser *browserManager, ifc_omservice *service); + + HRESULT CheckBlockedState(ifc_omservice *service); + +protected: + ULONG ref; + BOOL popupMode; + HWND hwnd; + UINT winampCookie; + UINT configCookie; + +protected: + RECVS_MULTIPATCH; + +}; + + +#endif //NULLSOFT_WINAMP_OMBROWSER_UI_HOOK_HEADER
\ No newline at end of file |