免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4160 | 回复: 6
打印 上一主题 下一主题

activex如何调用javascript中的函数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-11 11:30 |只看该作者 |倒序浏览
哪位大侠知道如何在activex控件中调用javascript函数?在网上找到了一个例子,是2003年的,可惜兄弟VC功力浅薄,看不懂 。哪位大侠有可以参考的控件呀。

论坛徽章:
0
2 [报告]
发表于 2005-05-11 16:35 |只看该作者

activex如何调用javascript中的函数

怎么没有人理我呀?

论坛徽章:
0
3 [报告]
发表于 2005-05-17 11:45 |只看该作者

activex如何调用javascript中的函数

没有人知道吗???

论坛徽章:
0
4 [报告]
发表于 2010-05-14 18:22 |只看该作者
我也想知道

论坛徽章:
0
5 [报告]
发表于 2010-05-21 23:47 |只看该作者
在ActiveX里面写了一个方法来调用javascript方法   
  //向js发送信息   
  LRESULT   CFXVTDoc:utputParam(CString   fuctionName,const   CArray<CString>   &params)   
  {   
  extern   IDispatch   *pScript;   
  if(pScript==NULL){   
  return   -1;   
  }   
  CComBSTR   bstrMember(fuctionName);   
   
  DISPID   dispid;   
   
  HRESULT   hr=pScript->GetIDsOfNames(IID_NULL,&bstrMember,1,LOCALE_SYSTEM_DEFAULT,&dispid);   
  if(FAILED(hr)){   
  #ifdef   _DEBUG   
  switch(hr)   
  {   
  case   E_OUTOFMEMORY:   
  MessageBox(NULL,"E_OUTOFMEMORY","outputParam   Err",0);   
  break;   
  case   DISP_E_UNKNOWNNAME:   
  MessageBox(NULL,"DISP_E_UNKNOWNNAME","outputParam   Err",0);   
  break;   
  case   DISP_E_UNKNOWNLCID:   
  MessageBox(NULL,"DISP_E_UNKNOWNLCID","outputParam   Err",0);   
  break;   
  }   
  #endif   
  return   -1;   
  }   
   
  DISPPARAMS   dispparams;   
  memset(&dispparams,   0,   sizeof   dispparams);   
   
  int   paramNum=params.GetCount();   
  VARIANT   *pParams=new   VARIANT[paramNum];   
   
  for(   int   i   =   0;   i<paramNum;   i++)   
  {   
  CComBSTR   bstr   =params.GetAt(i);   //   back   reading   
  bstr.CopyTo(&pParams[i].bstrVal);   
  pParams[i].vt   =   VT_BSTR;   
  }     
   
  dispparams.rgvarg   =   pParams;      
  dispparams.cNamedArgs   =   0;   
  dispparams.cArgs=paramNum;   
   
  EXCEPINFO   excepInfo;   
  memset(&excepInfo,   0,   sizeof   excepInfo);   
  CComVariant   vaResult;   
  UINT   nArgErr   =   (UINT)-1;     //   initialize   to   invalid   arg   
  hr   =   pScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,&vaResult,&excepInfo,&nArgErr);   
  delete   []dispparams.rgvarg;   
  return   1;   
  }

论坛徽章:
0
6 [报告]
发表于 2010-05-21 23:48 |只看该作者
或者用
UserControl.Parent.Script.function()   
  通过HTMLDocument对象的Script属性可以访问一些默认的对象,例如windows,以及用户定义的函数和全局变量。   

论坛徽章:
0
7 [报告]
发表于 2010-05-21 23:49 |只看该作者
要web多线程响应你的调用,你可以查阅active   scripting   和   libinfo   等相关知识   
   
  用户交互试操作试可以做的,ax内部是可以多线程的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP