佚名通过本文主要向大家介绍了dispatch propertyput,启动更新参数错误,redirect uri参数错误,参数错误,启动参数错误等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: Invoke DISPATCH_PROPERTYPUT 返回非选择性的参数的错误
描述:
解决方案1:
描述:
我自己写了个控件,控件中有个属性,我想通过调用Invoke设置该属性的值,属性是BSTR的,下面是一些定义
VARIANTARG vtParas[1];
VARIANT vtBStr;
//对vtBStr赋值
......
vtParas[0] = vtBStr;
DISPPARAMS dispParams = { vtParas, NULL, 1, 0 };
hr = idExcelOcx->Invoke(0x1, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_PROPERTYPUT, &dispParams, &vResult, NULL, NULL);
返回的错误是“非选择性的参数”,搞不懂是什么原因
解决方案1:
用API会很劳累的,C++里玩COM最好用ATL
CComDispatchDriver obj;
obj=idExcelOcx;
obj.PutPropertyByName(_T("属性名字"),&CComVariant(_T("属性值")) );
DISPPARAMS dispParams = { &vtParas, NULL, 1, 0 };