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.

101 lines
3.0 KiB

  1. #ifndef _CSMCATMANAGERENUMS_INCLUDE
  2. #define _CSMCATMANAGERENUMS_INCLUDE
  3. class CSCEnumCategories : public IEnumCATEGORYINFO
  4. {
  5. public:
  6. // IUnknown methods
  7. HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
  8. ULONG _stdcall AddRef();
  9. ULONG _stdcall Release();
  10. // IEnumCATEGORYINFO methods
  11. HRESULT __stdcall Next(ULONG celt, CATEGORYINFO *rgelt, ULONG *pceltFetched);
  12. HRESULT __stdcall Skip(ULONG celt);
  13. HRESULT __stdcall Reset(void);
  14. HRESULT __stdcall Clone(IEnumCATEGORYINFO **ppenum);
  15. CSCEnumCategories();
  16. HRESULT Initialize(IADsContainer *ADsCategoryContainer, LCID lcid);
  17. ~CSCEnumCategories();
  18. private:
  19. LCID m_lcid;
  20. IEnumVARIANT *m_pEnumVariant;
  21. IADsContainer *m_ADsCategoryContainer;
  22. ULONG m_dwRefCount;
  23. DWORD m_dwPosition;
  24. };
  25. class CSCEnumCategoriesOfClass : public IEnumCATID
  26. {
  27. public:
  28. // IUnknown methods
  29. HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
  30. ULONG _stdcall AddRef();
  31. ULONG _stdcall Release();
  32. // IEnumGUID methods
  33. HRESULT __stdcall Next(ULONG celt, GUID *rgelt, ULONG *pceltFetched);
  34. HRESULT __stdcall Skip(ULONG celt);
  35. HRESULT __stdcall Reset(void);
  36. HRESULT __stdcall Clone(IEnumGUID **ppenum);
  37. CSCEnumCategoriesOfClass();
  38. HRESULT Initialize(CATID catid[], ULONG cCatid);
  39. ~CSCEnumCategoriesOfClass();
  40. private:
  41. ULONG m_dwPosition;
  42. ULONG m_cCatid;
  43. CATID *m_catid;
  44. ULONG m_dwRefCount;
  45. };
  46. class CSCEnumClassesOfCategories : public IEnumCLSID
  47. {
  48. public:
  49. // IUnknown methods
  50. HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
  51. ULONG _stdcall AddRef();
  52. ULONG _stdcall Release();
  53. // IEnumGUID methods
  54. HRESULT __stdcall Next(ULONG celt, GUID *rgelt, ULONG *pceltFetched);
  55. HRESULT __stdcall Skip(ULONG celt);
  56. HRESULT __stdcall Reset(void);
  57. HRESULT __stdcall Clone(IEnumGUID **ppenum);
  58. CSCEnumClassesOfCategories();
  59. HRESULT Initialize(ULONG cRequired, CATID rgcatidReq[],
  60. ULONG cImplemented, CATID rgcatidImpl[],
  61. IADsContainer *ADsClassContainer,
  62. ICatInformation *pICatInfo);
  63. ~CSCEnumClassesOfCategories();
  64. private:
  65. ULONG m_dwPosition;
  66. ULONG m_dwRefCount, m_cRequired, m_cImplemented;
  67. CATID *m_rgcatidReq, *m_rgcatidImpl;
  68. ICatInformation *m_pICatInfo;
  69. IEnumVARIANT *m_pEnumVariant;
  70. IADsContainer *m_ADsClassContainer;
  71. };
  72. // extern ULONG g_dwRefCount;
  73. CLSID ExtractClsid(Data *pData);
  74. HRESULT GetCategoryProperty (IADs *pADs,
  75. CATEGORYINFO *pcatinfo,
  76. LCID lcid);
  77. HRESULT ImplSatisfied(CLSID clsid, ULONG cImplemented, CATID *ImplementedList,
  78. ICatInformation *pICatInfo);
  79. HRESULT ReqSatisfied(CLSID clsid, ULONG cAvailReq, CATID *AvailReq,
  80. ICatInformation *pICatInfo);
  81. #endif
  82.