Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
978 B

  1. #pragma once
  2. #include "storage.h"
  3. class CEnumStorage:
  4. public CComObjectRoot,
  5. public IMDSPEnumStorage
  6. {
  7. //
  8. // Construction/Destruction
  9. //
  10. public:
  11. CEnumStorage();
  12. HRESULT Init(LPCWSTR startPath, BOOL fIsDevice, IMDSPDevice *pDevice);
  13. HRESULT Init(CEnumStorage *pCopy, IMDSPDevice *pDevice);
  14. void FinalRelease();
  15. public:
  16. BEGIN_COM_MAP(CEnumStorage)
  17. COM_INTERFACE_ENTRY(IMDSPEnumStorage)
  18. END_COM_MAP()
  19. //
  20. // IMDSPEnumStorage
  21. //
  22. STDMETHOD( Next )( ULONG celt, IMDSPStorage ** ppDevice, ULONG *pceltFetched );
  23. STDMETHOD( Skip )( ULONG celt, ULONG *pceltFetched );
  24. STDMETHOD( Reset )( void );
  25. STDMETHOD( Clone )( IMDSPEnumStorage ** ppStorage );
  26. protected:
  27. CE_FIND_DATA *m_rgFindData;
  28. UINT m_iCurItem;
  29. DWORD m_cItems;
  30. WCHAR m_szStartPath[MAX_PATH];
  31. CComPtr<IMDSPDevice> m_spDevice;
  32. BOOL m_fIsDevice;
  33. };
  34. typedef CComObject<CEnumStorage> CComEnumStorage;