用Implements IDTExtensibility2 写了一个带接口的COM现在想用VB写一个外部程序连接这个com, 请问代码如何写?

解决方案 »

  1.   

    '新建一个activex dll 项目, 建一个类名为 clsVBComTest 的class 文件. 
    写以下代码, 然后编译DLL,就可以生成带接口的com. 现在想写一个外部程序连接 com中的clsVBComTest,请问如何写?  
    Option ExplicitImplements IDTExtensibility2
    Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode _
        As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)  Msgbox "You are connected to clsVBComTest"
    End Sub
      

  2.   

    Option ExplicitImplements IDTExtensibility2
    Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode _
        As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)    MsgBox "You connected to clsVBComTest"
    End SubPrivate Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)
        '
    End SubPrivate Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)'
    End Sub
    Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
    '
    End SubPrivate Sub IDTExtensibility2_OnStartupComplete(custom() As Variant)
        '
    End Sub
    =============================
    直接用createobject的话可以创建这个com,但不会响应OnConnection事件.我现在是想知道,如何连接这个com才能响应IDTExtensibility2的事件. 
      

  3.   

    这其实是一个addin程序的代码,当vb载入我写的这个ADDIN程序时,会触发IDTExtensibility2_OnConnection,但我如果想自己写一个程序连接这个com的话,不知怎么写.
      

  4.   

    OnConnection是方法,而不是事件,虽然很象,所以你触发不到
      

  5.   

    先不用COM,写个程序搞写事件,再考虑改成COM