阅读 66

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//错误代码
);

 实例


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐