browserWndEnum.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef NULLSOFT_WINAMP_OMBROWSER_WINDOW_ENUMERATOR_HEADER
  2. #define NULLSOFT_WINAMP_OMBROWSER_WINDOW_ENUMERATOR_HEADER
  3. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  4. #pragma once
  5. #endif
  6. #include "./ifc_ombrowserwndenum.h"
  7. class OmBrowserWndRecord;
  8. class OmBrowserWndEnumerator : public ifc_ombrowserwndenum
  9. {
  10. protected:
  11. OmBrowserWndEnumerator(const GUID *windowTypeFilter, const UINT *serviceIdFilter, OmBrowserWndRecord * const *windowList, size_t windowListSize);
  12. ~OmBrowserWndEnumerator();
  13. public:
  14. static HRESULT CreateInstance(const GUID *windowTypeFilter, const UINT *serviceIdFilter, OmBrowserWndRecord * const *windowList, size_t windowListSize, OmBrowserWndEnumerator **instance);
  15. public:
  16. /* Dispatchable */
  17. size_t AddRef();
  18. size_t Release();
  19. int QueryInterface(GUID interface_guid, void **object);
  20. /* ifc_ombrowserwndenum */
  21. HRESULT Next(ULONG listSize, HWND *elementList, ULONG *elementCount);
  22. HRESULT Reset(void);
  23. HRESULT Skip(ULONG elementCount);
  24. protected:
  25. ULONG ref;
  26. size_t index;
  27. OmBrowserWndRecord **list;
  28. size_t size;
  29. UINT serviceId;
  30. GUID windowType;
  31. BOOL filterId;
  32. BOOL filterType;
  33. protected:
  34. RECVS_DISPATCH;
  35. };
  36. #endif //NULLSOFT_WINAMP_OMBROWSER_WINDOW_ENUMERATOR_HEADER