佚名通过本文主要向大家介绍了
关于自动化对象编程的一个问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于自动化对象编程的一个问题
描述:
解决方案1:
描述:
自动化接口的自定义成员函数可以通过Invoke调用,编译时,客户端不需要知道自定义方法的原型,但是Invoke虚函数本身在客户端没有原型,编译是如何通过的?自动化接口的那四个虚函数是通过类型库才能实现的,所以,不可能先通过类型库了解自身的原型后,才返过来调用自身。
解决方案1:
Invoke的原型肯定是有嘀.
IDispatch::Invoke
HRESULT Invoke(
DISPID dispIdMember,
REFIID riid, LCID lcid,
WORD wFlags,
DISPPARAMS FAR *pDispParams,
VARIANT FAR *pVarResult,
EXCEPINFO FAR *pExcepInfo,
unsigned int FAR *puArgErr);
所有的成员函数都是通过这样的方法去调用,其中pDispParams是你想调用的方法的参数列表
pVarResult是方法的返回值.而方法名或属性名就是dispIdMember这个来指定的了.