diff options
Diffstat (limited to 'Src/omBrowser/ifc_omservice.h')
-rw-r--r-- | Src/omBrowser/ifc_omservice.h | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/Src/omBrowser/ifc_omservice.h b/Src/omBrowser/ifc_omservice.h new file mode 100644 index 00000000..c3bfec2a --- /dev/null +++ b/Src/omBrowser/ifc_omservice.h @@ -0,0 +1,135 @@ +#ifndef NULLSOFT_WINAMP_OMSERVICE_INTERFACE_HEADER +#define NULLSOFT_WINAMP_OMSERVICE_INTERFACE_HEADER + +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#pragma once +#endif + +#include <bfc/dispatch.h> + + +// {2999A8B2-7780-4542-9257-02D4E89310B8} +static const GUID IFC_OmService = +{ 0x2999a8b2, 0x7780, 0x4542, { 0x92, 0x57, 0x2, 0xd4, 0xe8, 0x93, 0x10, 0xb8 } }; + + +interface IDispatch; +class ifc_omservicehost; + +#define OMSVC_E_INSUFFICIENT_BUFFER MAKE_HRESULT(SEVERITY_ERROR, FACILITY_WIN32, ERROR_INSUFFICIENT_BUFFER) //same as STRSAFE_E_INSUFFICIENT_BUFFER + + +// supports AddRef(), Release(), QueryInterface() +class __declspec(novtable) ifc_omservice : public Dispatchable +{ +public: + typedef enum + { + RuntimeFlagsMask = 0xFFFF0000, + } FlagsMask; + +protected: + ifc_omservice() {} + ~ifc_omservice() {} + +public: + unsigned int GetId(); + HRESULT GetName(wchar_t *pszBuffer, unsigned int cchBufferMax); + HRESULT GetUrl(wchar_t *pszBuffer, unsigned int cchBufferMax); + HRESULT GetUrlDirect(wchar_t *pszBuffer, unsigned int cchBufferMax); + HRESULT GetIcon(wchar_t *pszBuffer, unsigned int cchBufferMax); + HRESULT GetExternal(IDispatch **ppDispatch); + HRESULT GetRating(unsigned int *rating); + HRESULT GetVersion(unsigned int *version); + HRESULT GetFlags(unsigned int *flags); + HRESULT SetAddress(const wchar_t *pszAddress); + HRESULT GetAddress(wchar_t *pszBuffer, unsigned int cchBufferMax); + HRESULT GetGeneration(unsigned int *generation); + HRESULT UpdateFlags(unsigned int flags); + +public: + DISPATCH_CODES + { + API_GETID = 10, + API_GETNAME = 20, + API_GETURL = 30, + API_GETICON = 40, + API_GETEXTERNAL = 50, + API_GETRATING = 60, + API_GETVERSION = 70, + API_GETFLAGS = 80, + API_SETADDRESS = 90, + API_GETADDRESS = 100, + API_GETGENERATION = 110, + API_GETURLDIRECT = 120, + API_UPDATEFLAGS = 130, + }; +}; + + +inline unsigned int ifc_omservice::GetId() +{ + return _call(API_GETID, 0); +} + +inline HRESULT ifc_omservice::GetName(wchar_t *pszBuffer, unsigned int cchBufferMax) +{ + return _call(API_GETNAME, (HRESULT)E_NOTIMPL, pszBuffer, cchBufferMax); +} + +inline HRESULT ifc_omservice::GetUrl(wchar_t *pszBuffer, unsigned int cchBufferMax) +{ + return _call(API_GETURL, E_NOTIMPL, pszBuffer, cchBufferMax); +} + +inline HRESULT ifc_omservice::GetUrlDirect(wchar_t *pszBuffer, unsigned int cchBufferMax) +{ + return _call(API_GETURLDIRECT, E_NOTIMPL, pszBuffer, cchBufferMax); +} + +inline HRESULT ifc_omservice::GetIcon(wchar_t *pszBuffer, unsigned int cchBufferMax) +{ + return _call(API_GETICON, (HRESULT)E_NOTIMPL, pszBuffer, cchBufferMax); +} + +inline HRESULT ifc_omservice::GetExternal(IDispatch **ppDispatch) +{ + return _call(API_GETEXTERNAL, (HRESULT)E_NOTIMPL, ppDispatch); +} + +inline HRESULT ifc_omservice::GetRating(unsigned int *rating) +{ + return _call(API_GETRATING, (HRESULT)E_NOTIMPL, rating); +} + +inline HRESULT ifc_omservice::GetVersion(unsigned int *version) +{ + return _call(API_GETVERSION, (HRESULT)E_NOTIMPL, version); +} + +inline HRESULT ifc_omservice::GetFlags(unsigned int *flags) +{ + return _call(API_GETFLAGS, (HRESULT)E_NOTIMPL, flags); +} + +inline HRESULT ifc_omservice::SetAddress(const wchar_t *pszAddress) +{ + return _call(API_SETADDRESS, (HRESULT)E_NOTIMPL, pszAddress); +} + +inline HRESULT ifc_omservice::GetAddress(wchar_t *pszBuffer, unsigned int cchBufferMax) +{ + return _call(API_GETADDRESS, (HRESULT)E_NOTIMPL, pszBuffer, cchBufferMax); +} + +inline HRESULT ifc_omservice::GetGeneration(unsigned int *generation) +{ + return _call(API_GETGENERATION, (HRESULT)E_NOTIMPL, generation); +} + +inline HRESULT ifc_omservice::UpdateFlags(unsigned int flags) +{ + return _call(API_UPDATEFLAGS, (HRESULT)E_NOTIMPL, flags); +} + +#endif //NULLSOFT_WINAMP_OMSERVICE_INTERFACE_HEADER
\ No newline at end of file |