c++调用脚本,代码如下:
void CScDlg::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{CDHtmlDialog::OnDocumentComplete(pDisp, szUrl);
CComPtr<IDispatch> script;
m_spHtmlDoc->get_Script(&script); //获取脚本指针
DISPID id;
script->GetIDsOfNames(IID_NULL, &CComBSTR("test"), 1, LOCALE_USER_DEFAULT, &id); // 根据脚本中接口名获取对应的ID
COleVariant args[1];
args[0] = _T("脚本初始化完成");
DISPPARAMS params = {0};
params.cArgs = 1;
params.rgvarg = args;
script->Invoke(id, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, &ret, NULL, NULL);
// TODO: 在此添加专用代码和/或调用基类
}
//代码解释
typedef struct tagDISPPARAMS
{
VARIANTARG *rgvarg; //表示存储的内容
DISPID *rgdispidNamedArgs;
UINT cArgs; //表示数目
UINT cNamedArgs; //表示对应的名字
} DISPPARAMS;