宏創建COM組件(新版,老版亦可使用,新版更簡潔,功能更強大,支持Activex dll exe)

yjgyjgg 4月前 7279

Const IID_Event_NetEvent = "{79823C92-F3CE-444A-946E-6F3872C56EAC}"'事件IID

Const IID_NetEvent       = "{79823C92-F3CE-444A-946E-6F3872C56EAB}"'接口IID

Const CLSID_NetEvent     = "{562625B2-58C1-43B8-A7B8-FD801CE8F0BB}"'組件CLSID

Const ProgID_NetEvent    = "NetEvent"'組件ProID

 

DECLARE_EVENT_MAP(TestEvent ,IID_Event_NetEvent)'事件接口聲明

 

Function myadd(ByVal v As VARIANT Ptr) As VARIANT

   'COM組件方法(參數必須為variant ptr,實為variant()數組,返回值必須為variant類型)

   dim vv as VARIANT

   Raise_TestEvent.Run("xxx" ,123)   '調用事件接口

   MsgBox cobject("xxxx").ToString

   Return vv

End Function

 

BEGIN_COM_MAP(NetEvent ,IID_NetEvent) '組件聲明

BEGIN_EVENT_MAP(TestEvent)'事件接口入口

BEGIN_DISPATCH_MAP(NetEvent)'方法ID映射表聲明

DISP_FUNCTION_ID(1 ,myadd)'方法ID映射聲明

DECLARE_DISPATCH_MAP(NetEvent)'方法調用表聲明

DISP_sub(1 ,myadd) END_DISPATCH_MAP() '調用方法

OBJECT_ENTRY(NetEvent ,ProgID_NetEvent ,CLSID_NetEvent)'Activex DLL入口函數

'OBJECT_ENTRY2(NetEvent ,ProgID_NetEvent ,CLSID_NetEvent)'Activex Exe入口函數

'DLL入口函數和Exe入口函數僅能選一種

'ROT(NetEvent ,CLSID_NetEvent)'非Activex程序com活動對象注冊,Activex Exe已自帶該宏無需重復使用

 

vb6使用:

Private Sub Command1_Click()    

Dim o As Object

  Set o = CreateObject("NetEvent")    

   o.myadd

End Sub

Private Sub Command2_Click()   'Activex Exe或使用ROT非Activex工程使用 

   Dim o As Object

   Set o = GetObject(, "NetEvent")    

   o.myadd

End Sub

因國家互聯網安全管理要求,關閉回帖功能。大家需要留言,請使用【勇芳軟件客服】即時聯系勇芳點此打開->>勇芳軟件客服
返回
聯系勇芳
一个人看的www视频播放中文_2012中文字幕电影_亚洲国产成人高清在线观看_中文字幕天堂最新版在线网