//+--------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1993 - 1999. // // File: CIDispatchHelper.h // // Contents: class defintion for CIDispatchHelper, a helper class to share code // for the IDispatch implementation that others can inherit from. // //---------------------------------------------------------------------------- #ifndef _CIDISPATCHHELPER_H_ #define _CIDISPATCHHELPER_H_ class CIDispatchHelper { public: // we need access to the virtual QI -- define it PURE here virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj) PURE; protected: // *** IDispatch methods *** STDMETHODIMP GetTypeInfoCount(UINT* pctinfo); STDMETHODIMP GetTypeInfo(UINT itinfo, LCID lcid, ITypeInfo** pptinfo); STDMETHODIMP GetIDsOfNames(REFIID riid, OLECHAR** rgszNames, UINT cNames, LCID lcid, DISPID* rgdispid); STDMETHODIMP Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pdispparams, VARIANT* pvarResult, EXCEPINFO* pexcepinfo, UINT* puArgErr); // helper function to get a ITypeInfo uuid/lcid out of the type library HRESULT _LoadTypeInfo(const GUID* rguidTypeLib, LCID lcid, UUID uuid, ITypeInfo** ppITypeInfo); CIDispatchHelper(const IID* piid, const IID* piidTypeLib); ~CIDispatchHelper(void); private: const IID* _piid; // guid that this IDispatch implementation is for const IID* _piidTypeLib; // guid that specifies which TypeLib to load IDispatch* _pdisp; ITypeInfo* _pITINeutral; // cached Type information }; #endif // _CIDISPATCHHELPER_H_