mirror of https://github.com/tongzx/nt5src
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
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
|
|
|