winamp/Src/omBrowser/ifc_wasabihelper.h
2024-09-24 14:54:57 +02:00

124 lines
3.8 KiB
C++

#ifndef NULLSOFT_WINAMP_WASABI_HELPER_INTERFACE_HEADER
#define NULLSOFT_WINAMP_WASABI_HELPER_INTERFACE_HEADER
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
class api_service;
#include <bfc/dispatch.h>
#include <api/application/api_application.h>
#include "../Agave/Config/api_config.h"
#include "../Agave/Language/api_language.h"
#include <api/memmgr/api_memmgr.h>
#include <api/service/svcs/svc_imgload.h>
#include "../Winamp/JSAPI2_api_security.h"
#include "../Components/wac_downloadManager/wac_downloadManager_api.h"
#include "../nu/threadpool/api_threadpool.h"
// {CA8954C8-C15F-4a62-A592-86A9464DE9A5}
static const GUID IFC_WasabiHelper =
{ 0xca8954c8, 0xc15f, 0x4a62, { 0xa5, 0x92, 0x86, 0xa9, 0x46, 0x4d, 0xe9, 0xa5 } };
class __declspec(novtable) ifc_wasabihelper : public Dispatchable
{
protected:
ifc_wasabihelper() {}
~ifc_wasabihelper() {}
public:
HRESULT QueryWasabiInterface(const GUID *iid, void **ppi);
HRESULT ReleaseWasabiInterface(const GUID *iid, void *pi);
HRESULT GetServiceManager(api_service **serviceManager);
HRESULT GetApplicationApi(api_application **application);
HRESULT GetConfigApi(api_config ** config);
HRESULT GetMemoryManager(api_memmgr **memoryManager);
HRESULT GetPngLoader(svc_imageLoader **pngLoader);
HRESULT GetLanguageManager(api_language **languageManager);
HRESULT GetLanguageModule(HINSTANCE *module);
HRESULT GetSecurityApi(JSAPI2::api_security **security);
HRESULT GetDownloadManager(api_downloadManager **downloadManager);
HRESULT GetThreadpoolApi(api_threadpool **threadpool);
public:
DISPATCH_CODES
{
API_QUERYWASABIINTERFACE = 10,
API_RELEASEWASABIINTERFACE = 20,
API_GETSERVICEMANAGER = 30,
API_GETAPPLICATION = 40,
API_GETCONFIG = 50,
API_GETMEMORYMANAGER = 60,
API_GETPNGLOADER = 70,
API_GETLANGUAGEMANAGER = 80,
API_GETLANGUAGEMODULE = 90,
API_GETSECURITY = 100,
API_GETDOWNLOADMANAGER = 110,
API_GETTHREADPOOL = 120,
};
};
inline HRESULT ifc_wasabihelper::QueryWasabiInterface(const GUID *iid, void **ppi)
{
return _call(API_QUERYWASABIINTERFACE, (HRESULT)E_NOTIMPL, iid, ppi);
}
inline HRESULT ifc_wasabihelper::ReleaseWasabiInterface(const GUID *iid, void *pi)
{
return _call(API_RELEASEWASABIINTERFACE, (HRESULT)E_NOTIMPL, iid, pi);
}
inline HRESULT ifc_wasabihelper::GetServiceManager(api_service **serviceManager)
{
return _call(API_GETSERVICEMANAGER, (HRESULT)E_NOTIMPL, serviceManager);
}
inline HRESULT ifc_wasabihelper::GetApplicationApi(api_application **application)
{
return _call(API_GETAPPLICATION, (HRESULT)E_NOTIMPL, application);
}
inline HRESULT ifc_wasabihelper::GetConfigApi(api_config ** config)
{
return _call(API_GETCONFIG, (HRESULT)E_NOTIMPL, config);
}
inline HRESULT ifc_wasabihelper::GetMemoryManager(api_memmgr **memoryManager)
{
return _call(API_GETMEMORYMANAGER, (HRESULT)E_NOTIMPL, memoryManager);
}
inline HRESULT ifc_wasabihelper::GetPngLoader(svc_imageLoader **pngLoader)
{
return _call(API_GETPNGLOADER, (HRESULT)E_NOTIMPL, pngLoader);
}
inline HRESULT ifc_wasabihelper::GetLanguageManager(api_language **languageManager)
{
return _call(API_GETLANGUAGEMANAGER, (HRESULT)E_NOTIMPL, languageManager);
}
inline HRESULT ifc_wasabihelper::GetLanguageModule(HINSTANCE *module)
{
return _call(API_GETLANGUAGEMODULE, (HRESULT)E_NOTIMPL, module);
}
inline HRESULT ifc_wasabihelper::GetSecurityApi(JSAPI2::api_security **security)
{
return _call(API_GETSECURITY, (HRESULT)E_NOTIMPL, security);
}
inline HRESULT ifc_wasabihelper::GetDownloadManager(api_downloadManager **downloadManager)
{
return _call(API_GETDOWNLOADMANAGER, (HRESULT)E_NOTIMPL, downloadManager);
}
inline HRESULT ifc_wasabihelper::GetThreadpoolApi(api_threadpool **threadpool)
{
return _call(API_GETTHREADPOOL, (HRESULT)E_NOTIMPL, threadpool);
}
#endif // NULLSOFT_WINAMP_WASABI_HELPER_INTERFACE_HEADER