ActiveX控件除了事件和属性外,还有事件,用oleview能知道ActiveX的前二者,但没有显露事件,要知道ActiveX有哪些事件、以及这些事件的参数该如何知道?

解决方案 »

  1.   

    oleview可以得知道啊,我用oleview是可以查到的啊.
    以MediaPlayer为例,通过oleview可以找到coclass MediaPlayer然后再下面可以找到_MediaPlayerEvents
    就可以看到里面的事件了
    以PlayStateChange
    [id(0x00000bc4), helpstring("Sent when the control changes PlayState")]
            void PlayStateChange(
                            [in] long OldState, 
                            [in] long NewState);
    在vc中就可以这样用0x00000bc4(十六进制)对应3012(十进制)
    BEGIN_EVENTSINK_MAP(MultiMediaPlugInView, FormView)
    ON_EVENT(MediaPlugInView, AFX_IDW_PANE_FIRST, 3012 /* PlayStateChange */, OnPlayStateChange, VTS_I4 VTS_I4)
    END_EVENTSINK_MAP()
      

  2.   

    ActiveX control test container 可以得知
      

  3.   

    把控件往一个VB窗体中插,在VB中看最直观了,就跟看Form的Onload,OnClick事件一样
      

  4.   

    运行的时候可以用IDispatch::GetTypeInfoCount和IDispatch::GetTypeInfo获得