IDispatch :: Invoke方法调用的问题

最近在使用IDispatch :: Invoke方法来实现C++调用网页的js函数,可以调用并且正常传递参数,但是如果修改参数后重复调用,参数就无法传过去了,如下代码:

// 第一次调用
VARIANT params[1];
params[0].bstrVal = L"123456";
params[0].vt = VT_BSTR;

DISPPARAMS ps;
ps.cArgs = 1;
ps.rgvarg = params;
ps.cNamedArgs = 0;
ps.rgdispidNamedArgs = NULL;
pObj->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &ps, pVarResult, NULL, NULL);

//修改参数后在调一次
params[0].bstrVal = L"654987";
params[0].vt = VT_BSTR;

DISPPARAMS ps;
ps.cArgs = 1;
ps.rgvarg = params;
ps.cNamedArgs = 0;
ps.rgdispidNamedArgs = NULL;
pObj->Invoke(dispid, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &ps, pVarResult, NULL, NULL);
阅读 2.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题