iTypeInfo::Invoke 方法 (oaidl.h)
调用对象的方法或访问对象的属性,该方法或属性实现由类型说明描述的接口。
语法
HRESULT Invoke(
[in] PVOID pvInstance,
[in] MEMBERID memid,
[in] WORD wFlags,
[in, out] DISPPARAMS *pDispParams,
[out] VARIANT *pVarResult,
[out] EXCEPINFO *pExcepInfo,
[out] UINT *puArgErr
);
参数
[in] pvInstance
此类型说明所描述的接口的实例。
[in] memid
接口成员。
[in] wFlags
描述 Invoke 调用的上下文的标志。
[in, out] pDispParams
参数数组、命名参数的 DISPID 数组以及每个数组中元素数的计数。
[out] pVarResult
结果。 如果调用方不期望任何结果,应为 null。 如果 wFlags 指定DISPATCH_PROPERTYPUT或DISPATCH_PROPERTYPUTREF,则忽略 pVarResultis 。
[out] pExcepInfo
异常信息结构,仅在返回DISP_E_EXCEPTION时填充。 如果 输入时 pExcepInfo 为 null,则仅返回 HRESULT 错误。
[out] puArgErr
如果 Invoke 返回DISP_E_TYPEMISMATCH, 则 puArgErr 指示类型不正确的参数的 rgvarg) 内的索引 (。 如果多个参数返回错误, 则 puArgErr 仅指示第一个有错误的参数。 pDispParams->rgvarg 中的参数采用逆序显示,因此第一个参数是数组中具有最大索引的参数。 此参数不可以为 null。
返回值
返回代码 | 说明 |
---|---|
|
成功。 |
|
一个或多个参数无效。 |
|
被调用的成员返回了错误 HRESULT。 如果成员实现 IErrorInfo,则错误对象中提供了详细信息。 否则, pExcepInfo 参数包含详细信息。 |
也可能返回任何 IDispatch::Invoke 错误。
注解
使用函数 ITypeInfo::Invoke 访问对象的成员,或调用实现此类型说明所描述的接口的方法。 对于支持 IDispatch 接口的对象,可以使用 Invoke 实现 IDispatch::Invoke。
ITypeInfo::Invoke 获取指向 类实例的指针。 否则,其参数与 IDispatch::Invoke 相同,只是 ITypeInfo::Invoke 省略 refiid 和 lcid 参数。 调用时, ITypeInfo::Invoke 在指定的实例上执行 IDispatch::Invoke 参数描述的操作。
对于 VTBL 接口成员, ITypeInfo::Invoke 将类型信息的 LCID 传递到使用 lcid 属性标记的参数中,并将返回的值传递到 retval 属性中。
如果类型说明继承自另一个类型说明,则此函数在基本类型说明上重复,以查找具有所请求成员 ID 的项。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | oaidl.h |