MFCATL IDispatch调度接口 概述
ispatch接口:完成接口调度的接口,可以不使用头文件完成接口的函数调用
IDispatch 接口函数
1> GetIDsOfNames-根据接口函数的名称获取接口函数的ID
2> Invoke-根据接口函数ID,调用接口函数
3>GetTypeInfo-获取指定的类型信息接口
4>GetTypeInfoCount-获取指定类型信息接口的数量
IDispatch项目
创建项目: 增加组件和接口时,要选择“dual”,增加IDispatch接口的支持
项目变化
文件的变化;接口的父接口,是IDispatch接口;当添加接口函数时,会自动添加接口函数的ID
组件的实现类:父类增加了IDispathImpl
GetIDsOfNames函数 HRESULT GetIDsOfNames( REFIID riid, //保留值,IID_NULL OLECHAR FAR *FAR *rgszNames,//接口函数名字符串数组 unsigned int cNames, //数组长度 LCID lcid, //语言ID ,LOCALE_SYSTEM_DEFAULT DISPID FAR *rgDispId //返回查询到的接口函数的ID号数组 ); Invoke函数 HRESULT Invoke( DISPID dispIdMember,//接口函数的ID REFIID riid, //保留参数,IID_NULL LCID lcid, //语言ID WORD wFlags, //接口函数的类型 DISPPARAMS FAR *pDispParams, //函数的参数 VARIANT FAR *pVarResult, //函数的返回值 EXCEPINFO FAR *pExcepInfo, //异常信息 unsigned int FAR *puArgErr//错误代码 );