使用VB6.0設計ActiveX DLL事件 (轉)

worldblog發表於2008-01-07
使用VB6.0設計ActiveX DLL事件 (轉)[@more@]

  我們知道在設計 DLL的事件直接使用以下方法定義就可以,例如:Public Event TracerView(IndexValue As Integer, KeyValue As String, TraceResults As String)就定義好了一個給EXE程式使用的事件。但我們也知道要使用事件必須有外部動作或定時器才能夠觸發,但是怎樣在ActiveX DLL內部觸發該事件呢?

  我搜尋了許多網站的技術文章都沒有能找到合適的處理方法,但經過自己的摸索找到了一個好的方法來處理這個問題。或許我太孤陋寡聞吧,我沒有看到這方面的文章介紹;如果我下面寫的內容有與別人的文章有雷同的地方,請不要認為我又抄襲之嫌。因為下面的內容的確是我摸索的結果。

1、首先我們應該定義好一個ActiveX DLL工程,設計一個類比如CLyPrinter類,並把Instancing的屬性設為5—MultiUse;

2、在CLyPrinter類模組中新增事件,比如:Public Event TracerView(IndexValue As Integer, KeyValue As String, TraceResults As String);

3、在CLyPrinter類模組中新增一個Friend 方法,比如:Friend Sub CaptureView(IndexValue As Integer, KeyValue As String, TraceResults As String)在該方法中新增觸發事件的程式碼RaiseEvent TracerView(IndexValue, KeyValue, TraceResults);

4、在ActiveX DLL工程內部新增一個窗體,比如:FGrid窗體;並在該窗體的程式碼模組中定義引用ActiveX DLL的CLyPrinter類的變數和Friend屬性,比如以下這樣定義:Private mInitRpt  As CLyPrinter;

Friend Property Get Document() As CLyPrinter
  'Dll工程類在工程內部使用方式
  Set Document = mInitRpt
End Property

Friend Property Set Document(ByVal vNewData As CLyPrinter)
  Set mInitRpt = vNewData
End Property

5、在FGrid窗體程式碼模組內部就可以使用CLyPrinter類的Friend、Public方法和屬性,如:mInitRpt.CaptureView 0, mnuYayMenu.Item(0).Caption, mnuYayMenu.Item(0).Tag

  透過以上5步就可以在ActiveX DLL工程內部使用事件、方法和屬性。

  如果有什麼不同的做法請和我聯絡。E to Tsouan@.com

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996824/,如需轉載,請註明出處,否則將追究法律責任。

相關文章