8

My.COMInterface処理が終了したときにイベントを発生させる遅延バインディング COM オブジェクト ( ) があります。VB6 コードからそのイベントを使用するにはどうすればよいですか?

事前バインディングを行う場合は、COM オブジェクトを WithEvents として宣言し、通常のイベント ハンドラーを記述します。遅延バインディングを使用してこれを達成するにはどうすればよいですか?

現在のコード:

Dim comObject as Object

'Function to launch Process.
Public Function LaunchProcess() As Boolean
    Set comObject = CreateObject("My.COMInterface")

    LaunchProcess= comObject.CallProcess()
    ' Once this process has finished, it will raise an event 
    ' called ProcessingFinished - how do I consume it?
End Function

現在私が知っている唯一の方法は、この MSDN 記事で説明されているように、イベントを処理する C/C++ ブリッジを作成することです。もっと簡単な方法を期待しています!

4

2 に答える 2

3

プレーンな COM オブジェクトの場合、ネイティブの VB6 ではまったく見たことがありません。ただし、オブジェクトがコントロールの場合は、VBControlExtenderインターフェイスとObjectEventイベントを使用できます。

于 2011-11-07T12:06:42.330 に答える
1

E. Morcilloによる EventCollection Class v2.0 - Add event support to Collectionsを参照してください。

あなたが望むことをする必要があります。

于 2011-11-07T13:57:18.260 に答える