ActiveX控件除了方法和属性外,还有事件,我在winform中引用了这个ocx控件,但没有显露事件,
要知道ActiveX有哪些事件、以及这些事件的参数该如何知道? 

解决方案 »

  1.   

    很不好意思,activex控件我也不太懂,写控件的人刚刚告诉我弹出的是消息,不是事件,不明白中,那消息的话请问有人知道怎么抓吗?还是根本就是一回事呢?控件是用VC写的
      

  2.   

    我是需要写一个C版的客户端,但是一部分连接必须通过ocx控件来做,当连接断开时需要弹出事件来提醒我,在web版本上已经做到类似的
    web上调用的代码如下
    <script language=javascript FOR=IPCamClient EVENT=FireSelect(camid,status) >
    window.status=camid+" "+status;
    window.selCamId=camid;
    window.camStatus=status;
    //window.alert("camid="+camid+" status="+status+"window.selCamId="+window.selCamId);
    </script><script language=javascript FOR=IPCamClient EVENT=FireSelect(camid,status) >
    如果我同样需要在C#抓出同样的东西需要怎么做呢?
      

  3.   

    C#写的控件客户端需要公共语言运行时的支持。它实际上是COM互操作。
    1.你的类必须实现IObjectSafety接口,这样才不会被浏览器拦截,该接口.Net基础类库不存在的,是Com接口,你需要自己构造
    这个就口很简单,就2个方法:
        /// <summary>
        /// 该接口用于通知COM,所有实现了该接口的类都是安全的。
        /// </summary>
        [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        public interface IObjectSafety
        {
            void GetInterfacceSafyOptions(
                System.Int32 riid,
                out System.Int32 pdwSupportedOptions,
                out System.Int32 pdwEnabledOptions);
            void SetInterfaceSafetyOptions(
                System.Int32 riid,
                System.Int32 dwOptionsSetMask,
                System.Int32 dwEnabledOptions);
        } 
    注意Guid不能改,COM就是靠这个Guid判断接口是IObjectSafety2.你的类必须有全局的Guid签名,并向COM公开
    3.你的类贴上COM属性:[System.Runtime.InteropServices.ClassInterface(ClassInterfaceType.AutoDispatch)]
    4.相应的程序集添加:[assembly:System.Security.AllowPartiallyTrustedCallers()]信息并向COM公开
    这样就可以了。你可以自由地用javascript操作你的C#类
      

  4.   

    7楼可能理解错了我的意思了,我是说我的是在winform下用的activex控件,而activex控件是用VC编写,
    但是我没有办法在控件的属性窗口:事件里面看到我想要调用的事件
    而别人已经在网页上实现了对windows系统消息的获取,就像我在6楼说的.
    现在我是想问有没有办法改VC代码,或者别的什么地方,能够获取到事件.
      

  5.   

    是应该在"控件名."里面能看到相应事件的吗?然后用+=绑定?是不是有可能是activex控件写的不够规范呢?