维基百科
IDispatch
IDispatch介面是组件对象模型(COM)中的标准介面,也称自动化(Automation)接口,继承自IUnknown,用于讓其他函式使用OLE Automation协议[1]。COM規格書[2]規定COM物件应该是三种接口类型中的至少一种:
方法
支持IDispatch的COM对象实现的每个属性与方法都有自己的Dispatch ID,常缩写为DISPID。用于在Invoke方法中辨识哪个属性或方法将被调用。
IDispatch派生自IUnknown,并且扩展了4个额外的方法:
interface IDispatch : public IUnknown { virtual HRESULT GetTypeInfoCount(unsigned int * pctinfo) = 0; virtual HRESULT GetTypeInfo(unsigned int iTInfo, LCID lcid, ITypeInfo ** ppTInfo ) = 0; virtual HRESULT GetIDsOfNames(REFIID riid, OLECHAR ** rgszNames, unsigned int cNames, LCID lcid, DISPID * rgDispId ) = 0; virtual HRESULT Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS * pDispParams, VARIANT * pVarResult, EXCEPINFO * pExcepInfo, unsigned int * puArgErr ) = 0; };
IDispatch的接口标识符被定义为GUID值{00020400-0000-0000-C000-000000000046}。
參考資料
相關條目
外部連結
- COM in plain C(页面存档备份,存于互联网档案馆)