Source code of Windows XP (NT5)
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.

52 lines
1.8 KiB

  1. #ifndef _enumidlist_h_
  2. #define _enumidlist_h_
  3. #include "cowsite.h"
  4. // A minimal base IEnumIDList implementation good enough for all our IShellFolder's EnumObject implementations.
  5. // Just provide a Next..
  6. class CEnumIDListBase : public CObjectWithSite, IEnumIDList
  7. {
  8. public:
  9. // IUnknown
  10. STDMETHODIMP QueryInterface(REFIID riid, void **ppv);
  11. STDMETHODIMP_(ULONG) AddRef(void) ;
  12. STDMETHODIMP_(ULONG) Release(void);
  13. // IEnumIDList
  14. STDMETHODIMP Next(ULONG celt, LPITEMIDLIST *rgelt, ULONG *pceltFetched) PURE;
  15. STDMETHODIMP Skip(ULONG celt) { return E_NOTIMPL; }
  16. STDMETHODIMP Reset() { return E_NOTIMPL; }
  17. STDMETHODIMP Clone(IEnumIDList **ppenum) { *ppenum = NULL; return E_NOTIMPL; }
  18. protected:
  19. CEnumIDListBase();
  20. virtual ~CEnumIDListBase();
  21. private:
  22. LONG _cRef;
  23. };
  24. // [in] pidlFolder - optional parent of this pidl is the first item in the enumerator
  25. // [in] rgcsidl - array of CSIDLs to include in the enumerator
  26. // [in] cItems - count of rgcsidl
  27. // [out] ppenum
  28. //
  29. STDAPI CreateIEnumIDListOnCSIDLs(LPCITEMIDLIST pidlFolder, const LPCTSTR rgcsidl[], UINT cItems, IEnumIDList** ppenum);
  30. // [in] pidlFolder - optional parent of this pidl is the first item in the enumerator
  31. // [in] pidlItem - optional pidl is the next item in the enumerator
  32. // [in] rgcsidl - array of CSIDLs to include in the enumerator
  33. // [in] cItems - count of rgcsidl
  34. // [out] ppenum
  35. //
  36. STDAPI CreateIEnumIDListOnCSIDLs2(LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlItem, const LPCTSTR rgcsidl[], UINT cItems, IEnumIDList** ppenum);
  37. // [in] apidl - array of LPCITEMIDLISTs
  38. // [in] cItems - count of *papidl
  39. // [out] ppenum
  40. //
  41. STDAPI CreateIEnumIDListOnIDLists(const LPCITEMIDLIST rgpidl[], UINT cItems, IEnumIDList** ppenum);
  42. STDAPI CreateIEnumIDListPaths(LPCTSTR pszPaths, IEnumIDList** ppenum);
  43. #endif // _enumidlist_h_