windows-nt/Source/XPSP1/NT/com/ole32/cs/backend/cscaten.hxx
2020-09-26 16:20:57 +08:00

103 lines
2.9 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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(WCHAR *szCategoryName, LCID lcid);
~CSCEnumCategories();
private:
LCID m_lcid;
ULONG m_dwRefCount;
DWORD m_dwPosition;
WCHAR m_szCategoryName[_MAX_PATH];
HANDLE m_hADs;
ADS_SEARCH_HANDLE m_hADsSearchHandle;
};
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[],
WCHAR *szClassName);
~CSCEnumClassesOfCategories();
private:
ULONG m_dwPosition;
ULONG m_dwRefCount, m_cRequired, m_cImplemented;
CATID *m_rgcatidReq, *m_rgcatidImpl;
HANDLE m_hADs;
ADS_SEARCH_HANDLE m_hADsSearchHandle;
WCHAR m_szClassName[_MAX_PATH];
};
// extern ULONG g_dwRefCount;
HRESULT GetCategoryProperty (IADs *pADs,
CATEGORYINFO *pcatinfo,
LCID lcid);
HRESULT ImplSatisfied(ULONG cImplemented, CATID *ImplementedList,
HANDLE hADs,
ADS_SEARCH_HANDLE hADsSearchHandle);
HRESULT ReqSatisfied(ULONG cAvailReq, CATID *AvailReq,
HANDLE hADs,
ADS_SEARCH_HANDLE hADsSearchHandle);
#endif