diff options
Diffstat (limited to 'Src/omBrowser/ifc_omservicemanager.h')
-rw-r--r-- | Src/omBrowser/ifc_omservicemanager.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Src/omBrowser/ifc_omservicemanager.h b/Src/omBrowser/ifc_omservicemanager.h new file mode 100644 index 00000000..ba76f600 --- /dev/null +++ b/Src/omBrowser/ifc_omservicemanager.h @@ -0,0 +1,73 @@ +#ifndef NULLSOFT_WINAMP_OMSERVICE_MANAGER_INTERFACE_HEADER +#define NULLSOFT_WINAMP_OMSERVICE_MANAGER_INTERFACE_HEADER + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#include <bfc/dispatch.h> + +// {BB0A9154-6D31-413b-96FB-9466E535E0C4} +static const GUID IFC_OmServiceManager = +{ 0xbb0a9154, 0x6d31, 0x413b, { 0x96, 0xfb, 0x94, 0x66, 0xe5, 0x35, 0xe0, 0xc4 } }; + +class ifc_omservice; +class ifc_omstorage; +class ifc_omstorageenumerator; +class ifc_omservicehost; +class ifc_omserviceeventmngr; + +class __declspec(novtable) ifc_omservicemanager : public Dispatchable +{ +protected: + ifc_omservicemanager() {} + ~ifc_omservicemanager() {} + +public: + HRESULT RegisterStorage(ifc_omstorage *storage); + HRESULT UnregisterStorage(const GUID *storageId); + HRESULT QueryStorage(const GUID *storageId, ifc_omstorage **storageOut); + HRESULT EnumStorage(const GUID *filterType, UINT filterCapabilities, ifc_omstorageenumerator **enumOut); + + HRESULT CreateService(unsigned int serviceId, ifc_omservicehost *host, ifc_omservice **serviceOut); + + +public: + DISPATCH_CODES + { + API_REGISTERSTORAGE = 10, + API_UNREGISTERSTORAGE = 20, + API_QUERYSTORAGE = 30, + API_ENUMSTORAGE = 40, + + API_CREATESERVICE = 100, + + }; +}; + +inline HRESULT ifc_omservicemanager::RegisterStorage(ifc_omstorage *storage) +{ + return _call(API_REGISTERSTORAGE, (HRESULT)E_NOTIMPL, storage); +} + +inline HRESULT ifc_omservicemanager::UnregisterStorage(const GUID *storageId) +{ + return _call(API_UNREGISTERSTORAGE, (HRESULT)E_NOTIMPL, storageId); +} + +inline HRESULT ifc_omservicemanager::QueryStorage(const GUID *storageId, ifc_omstorage **storageOut) +{ + return _call(API_QUERYSTORAGE, (HRESULT)E_NOTIMPL, storageId, storageOut); +} + +inline HRESULT ifc_omservicemanager::EnumStorage(const GUID *filterType, UINT filterCapabilities, ifc_omstorageenumerator **enumOut) +{ + return _call(API_ENUMSTORAGE, (HRESULT)E_NOTIMPL, filterType, filterCapabilities, enumOut); +} + +inline HRESULT ifc_omservicemanager::CreateService(UINT serviceId, ifc_omservicehost *host, ifc_omservice **serviceOut) +{ + return _call(API_CREATESERVICE, (HRESULT)E_NOTIMPL, serviceId, host, serviceOut); +} + +#endif //NULLSOFT_WINAMP_OMSERVICE_MANAGER_INTERFACE_HEADER
\ No newline at end of file |