123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #ifndef NULLSOFT_WINAMP_OMSTORAGE_INTERFACE_HEADER
- #define NULLSOFT_WINAMP_OMSTORAGE_INTERFACE_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- // {DEE1FCCD-8FFC-4ed2-8104-323382670BE0}
- static const GUID IFC_OmStorage =
- { 0xdee1fccd, 0x8ffc, 0x4ed2, { 0x81, 0x4, 0x32, 0x33, 0x82, 0x67, 0xb, 0xe0 } };
- #include <ifc_omstorageasync.h>
- #include <bfc/dispatch.h>
- class ifc_omservice;
- class ifc_omservicehost;
- class ifc_omserviceenum;
- #define OMSTORAGE_E_UNKNOWN_FORMAT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, ERROR_INVALID_DATA)
- class __declspec(novtable) ifc_omstorage : public Dispatchable
- {
- public:
- typedef enum
- {
- capLoad = 0x00000001,
- capSave = 0x00000002,
- capDelete = 0x00000004,
- capReload = 0x00000008,
- capPublic = 0x00001000,
- } Capabilities;
- typedef enum
- {
- saveModifiedOnly = 0x00000001,
- saveClearModified = 0x00000002,
- } SaveFlags;
- protected:
- ifc_omstorage() {}
- ~ifc_omstorage() {}
- public:
- HRESULT GetId(GUID *storageUid);
- HRESULT GetType(GUID *storageType);
- UINT GetCapabilities();
- HRESULT GetDescription(wchar_t *buffer, unsigned int bufferMax);
-
- HRESULT Load(const wchar_t *address, ifc_omservicehost *host, ifc_omserviceenum **ppEnum);
- HRESULT Save(ifc_omservice **serviceList, unsigned long listCount, unsigned int saveFlags, unsigned long *savedCount);
- HRESULT Delete(ifc_omservice **serviceList, unsigned long listCount, unsigned long *deletedCount);
- HRESULT Reload(ifc_omservice **serviceList, unsigned long listCount, unsigned long *reloadedCount);
- /* async calls */
- HRESULT BeginLoad(const wchar_t *address, ifc_omservicehost *host, ifc_omstorageasync::AsyncCallback callback, void *data, ifc_omstorageasync **async);
- HRESULT EndLoad(ifc_omstorageasync *async, ifc_omserviceenum **ppEnum);
- HRESULT RequestAbort(ifc_omstorageasync *async, BOOL drop);
-
- public:
- DISPATCH_CODES
- {
- API_GETID = 10,
- API_GETTYPE = 20,
- API_GETCAPABILITIES = 30,
- API_GETDESCRIPTION = 40,
- API_LOAD = 60,
- API_SAVE = 70,
- API_DELETE = 80,
- API_RELOAD = 90,
- API_BEGINLOAD = 100,
- API_ENDLOAD = 110,
- API_REQUESTABORT = 120,
- };
- };
- inline HRESULT ifc_omstorage::GetId(GUID *storageUid)
- {
- return _call(API_GETID, (HRESULT)E_NOTIMPL, storageUid);
- }
- inline HRESULT ifc_omstorage::GetType(GUID *storageType)
- {
- return _call(API_GETTYPE, (HRESULT)E_NOTIMPL, storageType);
- }
- inline UINT ifc_omstorage::GetCapabilities()
- {
- return (UINT)_call(API_GETCAPABILITIES, (UINT)0);
- }
- inline HRESULT ifc_omstorage::GetDescription(wchar_t *buffer, unsigned int bufferMax)
- {
- return _call(API_GETDESCRIPTION, (HRESULT)E_NOTIMPL, buffer, bufferMax);
- }
- inline HRESULT ifc_omstorage::Load(const wchar_t *address, ifc_omservicehost *host, ifc_omserviceenum **ppEnum)
- {
- return _call(API_LOAD, (HRESULT)E_NOTIMPL, address, host, ppEnum);
- }
- inline HRESULT ifc_omstorage::Save(ifc_omservice **serviceList, unsigned long listCount, unsigned int saveFlags, unsigned long *savedCount)
- {
- return _call(API_SAVE, (HRESULT)E_NOTIMPL, serviceList, listCount, saveFlags, savedCount);
- }
- inline HRESULT ifc_omstorage::Delete(ifc_omservice **serviceList, unsigned long listCount, unsigned long *deletedCount)
- {
- return _call(API_DELETE, (HRESULT)E_NOTIMPL, serviceList, listCount, deletedCount);
- }
- inline HRESULT ifc_omstorage::Reload(ifc_omservice **serviceList, unsigned long listCount, unsigned long *reloadedCount)
- {
- return _call(API_RELOAD, (HRESULT)E_NOTIMPL, serviceList, listCount, reloadedCount);
- }
- inline HRESULT ifc_omstorage::BeginLoad(const wchar_t *address, ifc_omservicehost *host, ifc_omstorageasync::AsyncCallback callback, void *data, ifc_omstorageasync **async)
- {
- return _call(API_BEGINLOAD, (HRESULT)E_NOTIMPL, address, host, callback, data, async);
- }
- inline HRESULT ifc_omstorage::EndLoad(ifc_omstorageasync *async, ifc_omserviceenum **ppEnum)
- {
- return _call(API_ENDLOAD, (HRESULT)E_NOTIMPL, async, ppEnum);
- }
- inline HRESULT ifc_omstorage::RequestAbort(ifc_omstorageasync *async, BOOL drop)
- {
- return _call(API_REQUESTABORT, (HRESULT)E_NOTIMPL, async, drop);
- }
- #endif //NULLSOFT_WINAMP_OMSTORAGE_INTERFACE_HEADER
|