CWnd::InvokeHelper

void InvokeHelper( DISPID dwDispID, WORD wFlags, VARTYPE vtRet, void* pvRet, const BYTE* pbParamInfo, ... );
  throw( COleException );
  throw( COleDispatchException );

参数:
dwDispID标识了要激活的方法或属性。这个值通常是由组件廊提供的。
wFlags描述了调用IDispatch::Invoke的上下文的标志。wFlags的可能取值参见《Win32 SDK OLE程序员参考》中的IDispatch::Invoke。
vtRet指定了返回值的类型。可能的取值参见COleDispatchDriver::InvokeHelper的说明部分。
pvRet将接收属性值或返回值的变量地址。它必须与vtRet指定的类型匹配。
pbParamInfo指向一个以null结尾的字节字符串,指定了pbParamInfo后面的参数的类型。可能的取值参见COleDispatchDriver::InvokeHelper的说明部分。参数的变量列表,属于pbParamInfo所指定的类型。

说明:
调用这个函数以激活dwDispID所指定的OLE控件的方法或属性,使用wFlags指定的上下文。pbParamInfo参数指定了传递给方法或属性的参数的类型。在句法定义中参数的变量列表用...来代表。
这个函数将参数转换为VARIANTARG值,然后对OLE控件调用IDispatch::Invoke方法。如果对IDispatch::Invoke的调用失败,这个函数将抛出一个异常。如果IDispatch::Invoke返回的SCODE(状态码)是DISP_E_EXCEPTION,则这个函数抛出一个COleException对象;否则它抛出一个COleDispatchException对象。
注意 这个函数只能在代表OLE控件的CWnd对象内调用。
有关在OLE控件容器中使用这个函数的更多信息参见联机的《Visual C++程序员指南》的文章“ActiveX控件容器:在ActiveX控件容器中编写ActiveX控件”。

请参阅:
CWnd::GetProperty, CWnd::SetProperty, COleDispatchDriver, CWnd::CreateControl