diff options
Diffstat (limited to 'Src/omBrowser/ifc_omutility.h')
-rw-r--r-- | Src/omBrowser/ifc_omutility.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/Src/omBrowser/ifc_omutility.h b/Src/omBrowser/ifc_omutility.h new file mode 100644 index 00000000..4903d6f5 --- /dev/null +++ b/Src/omBrowser/ifc_omutility.h @@ -0,0 +1,105 @@ +#ifndef NULLSOFT_WINAMP_OMUTILITY_INTERFACE_HEADER +#define NULLSOFT_WINAMP_OMUTILITY_INTERFACE_HEADER + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#include <bfc/dispatch.h> + +// {14E8C9B6-1BA4-4e8d-AD26-FA848813CC5B} +static const GUID IFC_OmUtility = +{ 0x14e8c9b6, 0x1ba4, 0x4e8d, { 0xad, 0x26, 0xfa, 0x84, 0x88, 0x13, 0xcc, 0x5b } }; + +#define RESPATH_TARGETIE 0x0001 // IE safe path +#define RESPATH_COMPACT 0x0002 // compact path relative to winamp location if possible + +class ifc_omcachemanager; +class ifc_mlnavigationhelper; +class ifc_omimageloader; +class ifc_omgraphics; +class ifc_omstoragehelper; + +class __declspec(novtable) ifc_omutility : public Dispatchable +{ +public: + typedef void ( CALLBACK *ThreadCallback )( ULONG_PTR /*param*/ ); + typedef void ( CALLBACK *ThreadCallback2 )( Dispatchable *object, ULONG_PTR /*param1*/, ULONG_PTR /*param2*/ ); + +protected: + ifc_omutility() {} + ~ifc_omutility() {} + +public: + HRESULT EnsurePathExist( const wchar_t *directory ); + HRESULT MakeResourcePath( wchar_t *buffer, unsigned int bufferMax, HINSTANCE instance, const wchar_t *type, const wchar_t *name, unsigned int flags ); + + HRESULT GetCacheManager( ifc_omcachemanager **cacheManager ); + HRESULT GetMlNavigationHelper( HWND hLibrary, ifc_mlnavigationhelper **helper ); + HRESULT QueryImageLoader( HINSTANCE hInstance, LPCWSTR pszName, BOOL fPremultiply, ifc_omimageloader **imageLoader ); + HRESULT GetGraphics( ifc_omgraphics **graphics ); + HRESULT PostMainThreadCallback( ThreadCallback callback, ULONG_PTR param ); + HRESULT PostMainThreadCallback2( ThreadCallback2 callback, Dispatchable *object, ULONG_PTR param1, ULONG_PTR param2 ); + HRESULT GetStorageHelper( ifc_omstoragehelper **helper ); + +public: + DISPATCH_CODES + { + API_ENSUREPATHEXIST = 10, + API_MAKERESPATH = 20, + API_GETCACHEMANAGER = 30, + API_GETMLNAVIGATIONHELPER = 40, + API_QUERYIMAGELOADER = 50, + API_GETGRAPHICS = 60, + API_POSTMAINTHREADCALLBACK = 70, + API_POSTMAINTHREADCALLBACK2 = 80, + API_GETSTORAGEHELPER = 90, + }; +}; + +inline HRESULT ifc_omutility::EnsurePathExist(const wchar_t *directory) +{ + return _call(API_ENSUREPATHEXIST, (HRESULT)E_NOTIMPL, directory); +} + +inline HRESULT ifc_omutility::MakeResourcePath(wchar_t *buffer, unsigned int bufferMax, HINSTANCE instance, const wchar_t *type, const wchar_t *name, unsigned int flags) +{ + return _call(API_MAKERESPATH, (HRESULT)E_NOTIMPL, buffer, bufferMax, instance, type, name, flags); +} + +inline HRESULT ifc_omutility::GetCacheManager(ifc_omcachemanager **cacheManager) +{ + return _call(API_GETCACHEMANAGER, (HRESULT)E_NOTIMPL, cacheManager); +} + +inline HRESULT ifc_omutility::GetMlNavigationHelper(HWND hLibrary, ifc_mlnavigationhelper **helper) +{ + return _call(API_GETMLNAVIGATIONHELPER, (HRESULT)E_NOTIMPL, hLibrary, helper); +} + +inline HRESULT ifc_omutility::QueryImageLoader(HINSTANCE hInstance, LPCWSTR pszName, BOOL fPremultiply, ifc_omimageloader **imageLoader) +{ + return _call(API_QUERYIMAGELOADER, (HRESULT)E_NOTIMPL, hInstance, pszName, fPremultiply, imageLoader); +} + +inline HRESULT ifc_omutility::GetGraphics(ifc_omgraphics **graphics) +{ + return _call(API_GETGRAPHICS, (HRESULT)E_NOTIMPL, graphics); +} + +inline HRESULT ifc_omutility::PostMainThreadCallback(ThreadCallback callback, ULONG_PTR param) +{ + return _call(API_POSTMAINTHREADCALLBACK, (HRESULT)E_NOTIMPL, callback, param); +} + +inline HRESULT ifc_omutility::PostMainThreadCallback2(ThreadCallback2 callback, Dispatchable *object, ULONG_PTR param1, ULONG_PTR param2) +{ + return _call(API_POSTMAINTHREADCALLBACK2, (HRESULT)E_NOTIMPL, callback, object, param1, param2); +} + +inline HRESULT ifc_omutility::GetStorageHelper(ifc_omstoragehelper **helper) +{ + return _call(API_GETSTORAGEHELPER, (HRESULT)E_NOTIMPL, helper); +} + +#endif //NULLSOFT_WINAMP_OMUTILITY_INTERFACE_HEADER
\ No newline at end of file |