2011-11-07 2 views
8

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

私が早期バインディングを使用していた場合、私の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 

私はそれを行うには知っている唯一の方法は、現在this MSDN articleで説明したように、イベントを処理するC/C++ブリッジを書くことです。私はもっ​​と簡単な方法を望んでいます!

+0

+1。私はMSDNの記事に記載されている以外の方法は知らない。 VBScriptの使用についての記事のセクションに気付いていましたか? [Microsoft Script Control](http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en)を使用してVB6と通信するVBScriptブリッジを持つことができます。 VB6のスクリプトコントロールの使用に関するチュートリアルhttp://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx – MarkJ

答えて

3

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

+0

Plain COMオブジェクト私は恐れています。 VBScriptでは簡単なのはなぜですか?しかし、VB6ではネイティブでは不可能なのですが、これは残念です。 –

+0

VBScriptがレイトバインドオブジェクト用にサポートしていることを認識しませんでした。ハンドラをイベントにどのように割り当てるのですか? – Deanna

+0

@Deanna RBの質問で提供されている[リンク](http://msdn.microsoft.com/en-us/magazine/cc301508.aspx)のコードを参照してください。「a Windowsスクリプトホストソリューション」 – MarkJ

関連する問題