123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #ifndef NULLSOFT_WINAMP_OMSTORAGE_ASYNC_ENUMERATOR_WRAPPER_HEADER
- #define NULLSOFT_WINAMP_OMSTORAGE_ASYNC_ENUMERATOR_WRAPPER_HEADER
- #if defined(_MSC_VER) && (_MSC_VER >= 1020)
- #pragma once
- #endif
- #include <wtypes.h>
- #include "./ifc_omstorageasync.h"
- class ifc_omservicehost;
- class ifc_omserviceenum;
- class ifc_omservice;
- class OmServiceList;
- class EnumAsyncWrapper : public ifc_omstorageasync
- {
- protected:
- EnumAsyncWrapper(ifc_omserviceenum *enumerator);
- ~EnumAsyncWrapper();
- public:
- static HRESULT CreateInstance(ifc_omserviceenum *enumerator, EnumAsyncWrapper **instance);
- public:
- /* Dispatchable */
- size_t AddRef();
- size_t Release();
- int QueryInterface(GUID interface_guid, void **object);
-
- /* ifc_omstorageasync */
- HRESULT GetState(UINT *state);
- HRESULT GetWaitHandle(HANDLE *handle);
- HRESULT GetData(void **data);
-
- public:
- HRESULT SetData(void *data);
- HRESULT SetCallback(AsyncCallback callback);
- HRESULT GetCallback(AsyncCallback *callback);
- HRESULT RequestAbort(BOOL fDrop);
- HRESULT BeginEnumerate();
- HRESULT Enumerate();
- HRESULT GetResultCode();
- HRESULT GetServiceList(ifc_omserviceenum **list);
- protected:
- size_t ref;
- ifc_omserviceenum *enumerator;
- AsyncCallback userCallback;
- void *userData;
- HANDLE completed;
- UINT state;
- HRESULT resultCode;
- CRITICAL_SECTION lock;
- OmServiceList *serviceList;
- protected:
- RECVS_DISPATCH;
- };
- #endif //NULLSOFT_WINAMP_OMSTORAGE_ASYNC_ENUMERATOR_WRAPPER_HEADER
|