1
0

storageEnum.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef NULLSOFT_WINAMP_OMSTORAGE_ENUMERATOR_HEADER
  2. #define NULLSOFT_WINAMP_OMSTORAGE_ENUMERATOR_HEADER
  3. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  4. #pragma once
  5. #endif
  6. #include "./ifc_omstorageenum.h"
  7. class OmStorageEnumerator : public ifc_omstorageenumerator
  8. {
  9. protected:
  10. OmStorageEnumerator(ifc_omstorage **storageList, size_t storageSize, const GUID *type, UINT capabilities);
  11. ~OmStorageEnumerator();
  12. public:
  13. static HRESULT CreateInstance(ifc_omstorage **storageList, size_t storageSize, const GUID *type, UINT capabilities, OmStorageEnumerator **instance);
  14. public:
  15. /* Dispatchable */
  16. size_t AddRef();
  17. size_t Release();
  18. int QueryInterface(GUID interface_guid, void **object);
  19. /* ifc_omstorage */
  20. HRESULT Next(ULONG listSize, ifc_omstorage **elementList, ULONG *elementCount);
  21. HRESULT Reset(void);
  22. HRESULT Skip(ULONG elementCount);
  23. protected:
  24. ULONG ref;
  25. size_t index;
  26. ifc_omstorage **list;
  27. size_t size;
  28. GUID fType;
  29. UINT fCapabilities;
  30. protected:
  31. RECVS_DISPATCH;
  32. };
  33. #endif //NULLSOFT_WINAMP_OMSTORAGE_ENUMERATOR_HEADER