2012年8月22日 星期三
CHtmlDialog invoke javascript in HTML
CComPtr<IHTMLDocument2> spDoc;
GetDHtmlDocument(&spDoc);
CComPtr<IDispatch> spDisp(NULL);
if(spDoc)
{
spDoc->get_Script(&spDisp);
}
CComBSTR bstrMember(csFunctionName);
DISPID dispid = NULL;
HRESULT hr = spDisp->GetIDsOfNames(IID_NULL,
&bstrMember,
1,
LOCALE_SYSTEM_DEFAULT,
&dispid);
if(FAILED(hr))
{
//ShowError(GetSystemErrorMessage(hr));
return ;
}
CStringArray csParamArray;
csParamArray.Add(csParam1);
csParamArray.Add(csParam2);
const int arraySize = csParamArray.GetSize();
DISPPARAMS dispparams;
memset(&dispparams, 0, sizeof dispparams);
dispparams.cArgs = arraySize;
dispparams.rgvarg = new VARIANT[dispparams.cArgs];
for( int i = 0; i < arraySize; i++)
{
CComBSTR bstr = csParamArray.GetAt(arraySize - 1 - i); // back reading
bstr.CopyTo(&dispparams.rgvarg[i].bstrVal);
dispparams.rgvarg[i].vt = VT_BSTR;
}
dispparams.cNamedArgs = 0;
EXCEPINFO excepInfo;
memset(&excepInfo, 0, sizeof excepInfo);
CComVariant vaResult;
UINT nArgErr = (UINT)-1; // initialize to invalid arg
hr = spDisp->Invoke(dispid,IID_NULL,0,
DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);
delete [] dispparams.rgvarg;
訂閱:
意見 (Atom)