#ifndef NULLSOFT_WINAMP_SKIN_HELPER_INTERFACE_HEADER #define NULLSOFT_WINAMP_SKIN_HELPER_INTERFACE_HEADER #if defined(_MSC_VER) && (_MSC_VER >= 1020) #pragma once #endif // {DC98C56E-F649-469e-82DC-234FAA8083C1} static const GUID IFC_SkinHelper = { 0xdc98c56e, 0xf649, 0x469e, { 0x82, 0xdc, 0x23, 0x4f, 0xaa, 0x80, 0x83, 0xc1 } }; #include typedef struct embedWindowState embedWindowState; typedef int (CALLBACK *FFCALLBACK)(embedWindowState* /*windowState*/, INT /*eventId*/, LPARAM /*param*/); class __declspec(novtable) ifc_skinhelper : public Dispatchable { protected: ifc_skinhelper() {} ~ifc_skinhelper() {} public: HRESULT GetColor(UINT colorIndex, COLORREF *pColor); HRESULT GetColorEx(UINT uObject, UINT uPart, UINT uState, COLORREF *pColor); HRESULT GetBrush(UINT colorIndex, HBRUSH *pBrush); HFONT GetFont(void); HRESULT SkinWindow(HWND hwnd, const GUID *windowGuid, UINT flagsEx, FFCALLBACK callbackFF); HRESULT SkinControl(HWND hwnd, UINT type, UINT style); HRESULT UnskinWindow(HWND hwnd); HRESULT GetHostCss(OLECHAR **ppchHostCss); public: DISPATCH_CODES { API_GETCOLOR = 10, API_GETCOLOREX = 20, API_GETBRUSH = 30, API_GETFONT = 40, API_SKINWINDOW = 50, API_SKINCONTROL = 60, API_UNSKINWINDOW = 70, }; }; inline HRESULT ifc_skinhelper::GetColor(UINT colorIndex, COLORREF *pColor) { return _call(API_GETCOLOR, (HRESULT)E_NOTIMPL, colorIndex, pColor); } inline HRESULT ifc_skinhelper::GetColorEx(UINT uObject, UINT uPart, UINT uState, COLORREF *pColor) { return _call(API_GETCOLOREX, (HRESULT)E_NOTIMPL, uObject, uPart, uState, pColor); } inline HRESULT ifc_skinhelper::GetBrush(UINT colorIndex, HBRUSH *pBrush) { return _call(API_GETBRUSH, (HRESULT)E_NOTIMPL, colorIndex, pBrush); } inline HFONT ifc_skinhelper::GetFont() { return _call(API_GETFONT, (HFONT)NULL); } inline HRESULT ifc_skinhelper::SkinWindow(HWND hwnd, const GUID *windowGuid, UINT flagsEx, FFCALLBACK callbackFF) { return _call(API_SKINWINDOW, (HRESULT)E_NOTIMPL, hwnd, windowGuid, flagsEx, callbackFF); } inline HRESULT ifc_skinhelper::SkinControl(HWND hwnd, UINT type, UINT style) { return _call(API_SKINCONTROL, (HRESULT)E_NOTIMPL, hwnd, type, style); } inline HRESULT ifc_skinhelper::UnskinWindow(HWND hwnd) { return _call(API_UNSKINWINDOW, (HRESULT)E_NOTIMPL); } #endif // NULLSOFT_WINAMP_SKIN_HELPER_INTERFACE_HEADER