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 );