1
0

deviceObjectEnum.h 1004 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #ifndef _NULLSOFT_WINAMP_DEVICES_DEVICE_OBJECT_ENUMERATOR_HEADER
  2. #define _NULLSOFT_WINAMP_DEVICES_DEVICE_OBJECT_ENUMERATOR_HEADER
  3. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  4. #pragma once
  5. #endif
  6. #include "./ifc_deviceobject.h"
  7. #include "./ifc_deviceobjectenum.h"
  8. class DeviceObjectEnum : public ifc_deviceobjectenum
  9. {
  10. protected:
  11. DeviceObjectEnum();
  12. ~DeviceObjectEnum();
  13. public:
  14. static HRESULT CreateInstance(ifc_deviceobject **objects,
  15. size_t count,
  16. DeviceObjectEnum **instance);
  17. public:
  18. /* Dispatchable */
  19. size_t AddRef();
  20. size_t Release();
  21. int QueryInterface(GUID interface_guid, void **object);
  22. /* ifc_deviceobjectenum */
  23. HRESULT Next(ifc_deviceobject **objects, size_t bufferMax, size_t *fetched);
  24. HRESULT Reset(void);
  25. HRESULT Skip(size_t count);
  26. HRESULT GetCount(size_t *count);
  27. protected:
  28. size_t ref;
  29. ifc_deviceobject **buffer;
  30. size_t size;
  31. size_t cursor;
  32. protected:
  33. RECVS_DISPATCH;
  34. };
  35. #endif // _NULLSOFT_WINAMP_DEVICES_DEVICE_OBJECT_ENUMERATOR_HEADER