COleDispatchDriver::InvokeHelper

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

参数:
dwDispID标识要激活的方法或者属性。这个值常常由ClassWizard提供。
wFlag描述调用IDispatch::Invoke的前后关系的标志。其可能的取值参见Platform SDK。
vtRet指定返回值的类型。其可能的取值参见说明部分。
pvRet是将用来接收属性值或返回值的变量的地址。它必须与vtRet所指定的类型相匹配。
pbParamInfo是一个指向用空字符结尾的字符串的指针,这个字符串有多个字节用来指定紧跟pbParamInfo之后的参数的类型。
...参数变量列表,这些参数的类型在pbParamInfo中指定。

说明:
在由wFlags指定的前后关系中调用由dwDispID指定的方法或属性。参数pbParamInfo指定要传递给方法或属性的参数的类型。在语法说明中“...”所代表的就是参数的变量列表。
vtRet参数可能的取值来自于VARENUM枚举。
可能的取值如下所示:
符号返回类型
VT_EMPTYvoid
VT_I2short
VT_I4long
VT_R4float
VT_R8double
VT_CYCY
VT_DATEDATE
VT_BSTRBSTR
VT_DISPATCHLPDISPATCH
VT_ERRORSCODE
VT_BOOLBOOL
VT_VARIANTVARIANT
VT_UNKNOWNLPUNKNOWN
参数pbParamInfo是一个由空格分隔的有关VTS_常量的列表。这些值中的许多是由空格来分隔的(而不是逗号),它们指明了函数的参数列表。可能的取值由宏EVENT_CUSTOM列表给出。
此函数将参数转换为VARIANTARG值,然后激活IDispatch::Invoke方法。如果对Invoke的调用失败,这个函数将抛出一个异常。如果由IDispatch::Invoke返回的SCODE(状态码)是DISP_E_EXCEPTION,此函数抛出一个COleException对象;否则它抛出一个COleDispatchException。
更多的信息请参见“Platform SDK”中的VARIANTARG,IDispatch,IDispatch::Invoke,以及COM错误代码的结构。

请参阅:COleException, COleDispatchException