为什么javascript只能收到控件的事件,而普通的COM不行呢?

说明:
    比较有代表性,摘自如下:

原文:

楼主oyd(cpp<JavaIsNotPlatform_Independent>)(MVP) 2006-02-14 11:08:49 在 VC/MFC / ATL/ActiveX/COM 提问

我写了一个测试网页  
  <BODY>  
  <OBJECT   ID="test2"   CLASSID="CLSID:D1413D1E-0868-4158-A556-9463E13F4B13"></OBJECT>  
  <OBJECT   ID="test"   CLASSID="CLSID:723531DF-C92C-44CB-BC14-49B9C917A594"></OBJECT>  
  <script>  
  test2.attachEvent("OnTest",   Ontest2);  
  test.attachEvent("OnTest",   Ontest);  
  test.test();  
  test2.test();  
  function   Ontest2()  
  {  
  alert("test2");  
  }  
  function   Ontest()  
  {  
  alert("test");  
  }  
  </script>  
  </BODY>  
  其中test2是用ATL建立的一个full   control,Apartment模型,dual接口,支持连接点.  
  test是用ATL建立的一个simple   object,Apartment模型,dual接口,支持连接点.  
  这两个对象都增加了事件OnTest,并且都在test方法中调用了Fire_OnTest();  
  但是网页运行的结果是只弹出对话框"test2".  
   
  请问要怎样才能在用simple   object的情况下使用事件 问题点数:100、回复次数:2Top

1 楼jiangsheng(蒋晟.Net[MVP])回复于 2006-02-14 11:53:50 得分 100

http://groups.google.com/group/microsoft.public.vc.atl/browse_thread/thread/746df98b5c75f906/65cf79a77ad62795?lnk=st&q=%22simple+object%22+event+atl+internet+explorer&rnum=1&hl=en#65cf79a77ad62795  
   
  When   using   theATL,   the   following   'lite   control'   ATL   objects   do   not   implement   the   IProvideClassInfo2   interface   by   default:    
   
  You   can   easily   add   support   for   event   handling   by   implementing   the    
  IProvideClassInfo   interfaces.   This   is   done   by   deriving   your   control   from   the    
  default   ATL   implementation,   IProvideClassInfo2Impl.    
  1.   Add   the   following   line   to   your   class   derivation   list:    
              public   IProvideClassInfo2Impl<&CLSID_<object_name>,   NULL,    
                                                                      &LIBID_<project_name>Lib>    
  2.   Add   the   following   lines   to   your   COM_MAP:    
              COM_INTERFACE_ENTRY(IProvideClassInfo)    
              COM_INTERFACE_ENTRY(IProvideClassInfo2)    
  Hope   that   helps.   For   additional   information   you   can   take   a   look   at   KB   Q200839    
   
   
  Top

2 楼oyd(cpp<JavaIsNotPlatform_Independent>)(MVP)回复于 2006-02-15 17:08:54 得分 0

果然好使,谢谢了 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值