您的位置:资讯频道 > 技术文档 > ActiveX/COM开发

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

来源:CSDN   作者:bajie168   时间:2007-11-26  点击:496 次

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);  

相关文章:

    暂无相关新闻。