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.
 
 
 
 
 
 

102 lines
3.0 KiB

#ifndef _CSMCATMANAGERENUMS_INCLUDE
#define _CSMCATMANAGERENUMS_INCLUDE
class CSCEnumCategories : public IEnumCATEGORYINFO
{
public:
// IUnknown methods
HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
ULONG _stdcall AddRef();
ULONG _stdcall Release();
// IEnumCATEGORYINFO methods
HRESULT __stdcall Next(ULONG celt, CATEGORYINFO *rgelt, ULONG *pceltFetched);
HRESULT __stdcall Skip(ULONG celt);
HRESULT __stdcall Reset(void);
HRESULT __stdcall Clone(IEnumCATEGORYINFO **ppenum);
CSCEnumCategories();
HRESULT Initialize(IADsContainer *ADsCategoryContainer, LCID lcid);
~CSCEnumCategories();
private:
LCID m_lcid;
IEnumVARIANT *m_pEnumVariant;
IADsContainer *m_ADsCategoryContainer;
ULONG m_dwRefCount;
DWORD m_dwPosition;
};
class CSCEnumCategoriesOfClass : public IEnumCATID
{
public:
// IUnknown methods
HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
ULONG _stdcall AddRef();
ULONG _stdcall Release();
// IEnumGUID methods
HRESULT __stdcall Next(ULONG celt, GUID *rgelt, ULONG *pceltFetched);
HRESULT __stdcall Skip(ULONG celt);
HRESULT __stdcall Reset(void);
HRESULT __stdcall Clone(IEnumGUID **ppenum);
CSCEnumCategoriesOfClass();
HRESULT Initialize(CATID catid[], ULONG cCatid);
~CSCEnumCategoriesOfClass();
private:
ULONG m_dwPosition;
ULONG m_cCatid;
CATID *m_catid;
ULONG m_dwRefCount;
};
class CSCEnumClassesOfCategories : public IEnumCLSID
{
public:
// IUnknown methods
HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
ULONG _stdcall AddRef();
ULONG _stdcall Release();
// IEnumGUID methods
HRESULT __stdcall Next(ULONG celt, GUID *rgelt, ULONG *pceltFetched);
HRESULT __stdcall Skip(ULONG celt);
HRESULT __stdcall Reset(void);
HRESULT __stdcall Clone(IEnumGUID **ppenum);
CSCEnumClassesOfCategories();
HRESULT Initialize(ULONG cRequired, CATID rgcatidReq[],
ULONG cImplemented, CATID rgcatidImpl[],
IADsContainer *ADsClassContainer,
ICatInformation *pICatInfo);
~CSCEnumClassesOfCategories();
private:
ULONG m_dwPosition;
ULONG m_dwRefCount, m_cRequired, m_cImplemented;
CATID *m_rgcatidReq, *m_rgcatidImpl;
ICatInformation *m_pICatInfo;
IEnumVARIANT *m_pEnumVariant;
IADsContainer *m_ADsClassContainer;
};
// extern ULONG g_dwRefCount;
CLSID ExtractClsid(Data *pData);
HRESULT GetCategoryProperty (IADs *pADs,
CATEGORYINFO *pcatinfo,
LCID lcid);
HRESULT ImplSatisfied(CLSID clsid, ULONG cImplemented, CATID *ImplementedList,
ICatInformation *pICatInfo);
HRESULT ReqSatisfied(CLSID clsid, ULONG cAvailReq, CATID *AvailReq,
ICatInformation *pICatInfo);
#endif