IDispatch::Invoke method参数调用问题
时间:2011-12-26
来源:互联网
对IDispatch::Invoke method 不熟悉,照着MSDN上的说明写了这样的调用,无法得到我想要的东西,恳请各位高手指点,在此谢过!!
我想取出IDL文件中Iocls接口下的方法“SI2”的方法的返回值:
SI2 方法定义:
SI2(SHORT BVI2, SHORT* BRI2, SHORT* pVal)
Invoke方法:
......
hr = cls1->QueryInterface(IID_IDispatch, (LPVOID*)&obj); //cls1为指向接口Iocls的指针
DISPPARAMS params;
params.cArgs = 3;
params.cNamedArgs = 3;
if(SUCCEEDED(hr))
{
//因为SI2有三个参数。。
params.rgvarg = new VARIANT[params.cArgs];
params.rgvarg[0].vt = VT_I2 | VT_BYREF;
params.rgvarg[0].llVal = 0;
params.rgvarg[0].vt = VT_I2 | VT_BYREF;
params.rgvarg[0].llVal = 5;
params.rgvarg[1].vt = VT_I2;
params.rgvarg[1].llVal = 5;
VARIANT shortVal;
VariantInit(&shortVal);
DISPID dispid;
OLECHAR FAR* szMember = L"SI2";
hr = obj->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid); //hr = S_OK;
hr = obj->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, ¶ms, &shortVal, NULL, NULL); //hr = 0x8002000e Invalid number of parameters.
}
......
请问各位: Invoke参数哪儿处理的不对?
我想取出IDL文件中Iocls接口下的方法“SI2”的方法的返回值:
SI2 方法定义:
SI2(SHORT BVI2, SHORT* BRI2, SHORT* pVal)
Invoke方法:
......
hr = cls1->QueryInterface(IID_IDispatch, (LPVOID*)&obj); //cls1为指向接口Iocls的指针
DISPPARAMS params;
params.cArgs = 3;
params.cNamedArgs = 3;
if(SUCCEEDED(hr))
{
//因为SI2有三个参数。。
params.rgvarg = new VARIANT[params.cArgs];
params.rgvarg[0].vt = VT_I2 | VT_BYREF;
params.rgvarg[0].llVal = 0;
params.rgvarg[0].vt = VT_I2 | VT_BYREF;
params.rgvarg[0].llVal = 5;
params.rgvarg[1].vt = VT_I2;
params.rgvarg[1].llVal = 5;
VARIANT shortVal;
VariantInit(&shortVal);
DISPID dispid;
OLECHAR FAR* szMember = L"SI2";
hr = obj->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid); //hr = S_OK;
hr = obj->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, ¶ms, &shortVal, NULL, NULL); //hr = 0x8002000e Invalid number of parameters.
}
......
请问各位: Invoke参数哪儿处理的不对?
作者: yu549867265 发布时间: 2011-12-26
补充: 我想得到SI2(SHORT BVI2, SHORT* BRI2, SHORT* pVal)中当BVI2 = 5,*BRI2 = 5时,*pVal的返回值,通过&shortVal取出。
作者: yu549867265 发布时间: 2011-12-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28