From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/omBrowser/ifc_skinnedmenu.h | 61 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Src/omBrowser/ifc_skinnedmenu.h (limited to 'Src/omBrowser/ifc_skinnedmenu.h') diff --git a/Src/omBrowser/ifc_skinnedmenu.h b/Src/omBrowser/ifc_skinnedmenu.h new file mode 100644 index 00000000..67794346 --- /dev/null +++ b/Src/omBrowser/ifc_skinnedmenu.h @@ -0,0 +1,61 @@ +#ifndef NULLSOFT_WINAMP_SKINNED_MENU_INTERFACE_HEADER +#define NULLSOFT_WINAMP_SKINNED_MENU_INTERFACE_HEADER + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +// {6623F790-D4D9-43f4-9AFD-980360FB0EED} +static const GUID IFC_SkinnedMenu = +{ 0x6623f790, 0xd4d9, 0x43f4, { 0x9a, 0xfd, 0x98, 0x3, 0x60, 0xfb, 0xe, 0xed } }; + +#include + + +class ifc_menucustomizer; +#define ForceNoSkinnedMenu ((ifc_menucustomizer*)1) + +class __declspec(novtable) ifc_skinnedmenu : public Dispatchable +{ + +protected: + ifc_skinnedmenu() {} + ~ifc_skinnedmenu() {} + +public: + BOOL TrackPopup(HMENU hMenu, UINT fuFlags, INT x, INT y, HWND hwnd, LPTPMPARAMS lptpm, ifc_menucustomizer *customizer); + HRESULT IsEnabled(void); + HANDLE InitPopupHook(HWND hwnd, ifc_menucustomizer *customizer); + HRESULT RemovePopupHook(HANDLE popupHook); + +public: + DISPATCH_CODES + { + API_TRACKPOPUP = 10, + API_ISENABLED = 20, + API_INITPOPUPHOOK = 30, + API_REMOVEPOPUPHOOK = 40, + }; +}; + +inline BOOL ifc_skinnedmenu::TrackPopup(HMENU hMenu, UINT fuFlags, INT x, INT y, HWND hwnd, LPTPMPARAMS lptpm, ifc_menucustomizer *customizer) +{ + return _call(API_TRACKPOPUP, (BOOL)FALSE, hMenu, fuFlags, x, y, hwnd, lptpm, customizer); +} + +inline HRESULT ifc_skinnedmenu::IsEnabled(void) +{ + return _call(API_ISENABLED, (BOOL)FALSE); +} + +inline HANDLE ifc_skinnedmenu::InitPopupHook(HWND hwnd, ifc_menucustomizer *customizer) +{ + return _call(API_INITPOPUPHOOK, (HANDLE)NULL, hwnd, customizer); +} + +inline HRESULT ifc_skinnedmenu::RemovePopupHook(HANDLE popupHook) +{ + return _call(API_REMOVEPOPUPHOOK, (HRESULT)E_NOTIMPL, popupHook); +} + +#endif // NULLSOFT_WINAMP_SKINNED_MENU_INTERFACE_HEADER -- cgit