WindowsXP-SP1/ds/adsi/nw312/cextmgr.hxx

89 lines
1.9 KiB
C++

class CADsExtMgr;
class CADsExtMgr
{
public:
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) ;
//
// The IDispatch methods are the main interface of the Dispatch Manager.
//
STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo);
STDMETHOD(GetTypeInfo)(THIS_ UINT itinfo, LCID lcid, ITypeInfo **pptinfo);
STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPWSTR *rgszNames,
UINT cNames, LCID lcid, DISPID *rgdispid);
STDMETHOD(Invoke)(THIS_ DISPID dispidMember, REFIID riid, LCID lcid,
WORD wFlags, DISPPARAMS *pdispparams, VARIANT *pvarResult,
EXCEPINFO *pexcepinfo, UINT *puArgErr);
CADsExtMgr::CADsExtMgr();
CADsExtMgr::~CADsExtMgr();
static
HRESULT
CADsExtMgr::CreateExtMgr(
IUnknown FAR * pUnkOuter,
CAggregatorDispMgr * pDispMgr,
LPTSTR pszClassName,
CADsExtMgr ** ppExtMgr
);
static
HRESULT
CADsExtMgr::AllocateExtMgrObject(
CADsExtMgr ** ppExtMgr
);
HRESULT
CADsExtMgr::QueryForAggregateeInterface(
REFIID riid,
LPVOID FAR * ppv
);
HRESULT
CADsExtMgr::FinalInitializeExtensions();
protected:
HRESULT
CheckAndPrefixExtIDArray(
IN DWORD dwExtensionID,
IN unsigned int cDispids,
IN OUT DISPID * rgDispids
);
HRESULT
CheckAndPrefixExtID(
IN DWORD dwExtensionID,
IN DISPID dispid,
IN OUT DISPID * pDispid
);
PCLASS_ENTRY _pClassEntry;
CAggregatorDispMgr * _pDispMgr;
};
HRESULT
ADSILoadExtensionManager(
LPWSTR pszClassName,
IUnknown * pUnkOuter,
CAggregatorDispMgr * pDispMgr,
CADsExtMgr ** ppExtMgr
);
void
FreeClassEntry(
PCLASS_ENTRY pClassEntry
);