このインターフェイスは、ユーザーからの応答を必要とするメッセージを Visual Studio に送信するために、デバッグ エンジン (DE) によって使用されます。
構文
IDebugMessageEvent2 : IUnknown
実装側の注意
ユーザーの応答を必要とするメッセージを Visual Studio に送信するために、DE によりこのインターフェイスが実装されます。 IDebugEvent2 インターフェイスを、このインターフェイスと同じオブジェクトに実装する必要があります。 IDebugEvent2
インターフェイスにアクセスするために SDM によって QueryInterface が使用されます。
このインターフェイスの実装では、Visual Studio の SetResponse の呼び出しを DE に伝達する必要があります。 たとえば、DE のメッセージ処理スレッドにポストされるメッセージを使用してこれを行うことができます。また、このインターフェイスを実装するオブジェクトでは、DE への参照を保持し、IDebugMessageEvent2::SetResponse
に渡された応答を使用して DE にコールバックすることもできます。
呼び出し元に関する注意事項
DE により、このイベント オブジェクトが作成、送信され、応答を必要とするメッセージをユーザーに表示します。 このイベントは、SDM がデバッグ中のプログラムにアタッチされたときに提供される IDebugEventCallback2 コールバック関数を使用して送信されます。
Vtable 順序のメソッド
次の表に、IDebugMessageEvent2
のメソッドを示します。
メソッド | 説明 |
---|---|
GetMessage | 表示するメッセージを取得します。 |
SetResponse | 応答がある場合、メッセージ ボックスからそれを設定します。 |
解説
DE では、特定のメッセージに対してユーザーからの特定の応答が必要な場合に、このインターフェイスが使用されます。 たとえば、プログラムにリモートでアタッチしようとした後に "アクセスが拒否されました" というメッセージを取得した場合、DE によりメッセージ ボックス スタイル MB_RETRYCANCEL
の IDebugMessageEvent2
イベントでこの特定のメッセージを Visual Studio に送信します。 これにより、ユーザーはアタッチ操作を再試行またはキャンセルできます。
DE では、Win32 関数 MessageBox
の規則に従うことによって、このメッセージを処理する方法を指定します (詳細については、AfxMessageBox に関するページを参照してください)。
IDebugErrorEvent2 インターフェイスを使用して、ユーザーからの応答を必要としないメッセージを Visual Studio に送信します。
要件
ヘッダー: msdbg.h
名前空間: Microsoft.VisualStudio.Debugger.Interop
アセンブリ: Microsoft.VisualStudio.Debugger.Interop.dll