Activex控件中调用WEB页面的JS代码。

IHTMLDocument* pHTMLDoc = /* however you can get the IHTMLDocument */

DISPID idMethod = 0;
OLECHAR FAR* sMethod = L"DoSomething";
IDispatch* pScript = 0;
pHTMLDoc->get_Script(&pScript);
HRESULT hr = pScript->GetIDsOfNames(IID_NULL, &sMethod, 1, LOCALE_SYSTEM_DEFAULT,
                                    &idMethod );
if (SUCCEEDED(hr)) {
  // invoke assuming no method parameters
  DISPPARAMS dpNoArgs = {NULL, NULL, 0, 0};
  hr = pScript->Invoke(idMethod , IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD,
                       &dpNoArgs, NULL, NULL, NULL);
}
pScript->Release();
pHTMLDoc->Release();

//带参数调用方式

DISPPARAMS   dispparams;  
 memset(&dispparams,   0,   sizeof   dispparams);  

 int   paramNum=1;  
 VARIANT   *pParams=new   VARIANT[paramNum];  

 for(   int   i   =   0;   i   <   paramNum;   i++)  
 {  
  CComBSTR   bstr   =str;   //   back   reading  
  bstr.CopyTo(&pParams[i].bstrVal);  
  pParams[i].vt   =   VT_BSTR;   
 }    

 dispparams.rgvarg   =   pParams;      
 dispparams.cNamedArgs   =   0;  
 dispparams.cArgs=1;  

 EXCEPINFO   excepInfo;  
 memset(&excepInfo,   0,   sizeof   excepInfo);  
 CComVariant   vaResult;  
 UINT   nArgErr   =   (UINT)-1;   

 hr   =   pScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);  
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值