次の方法で共有


IDebugMessageEvent2

このインターフェイスは、ユーザーからの応答を必要とするメッセージを 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_RETRYCANCELIDebugMessageEvent2 イベントでこの特定のメッセージを Visual Studio に送信します。 これにより、ユーザーはアタッチ操作を再試行またはキャンセルできます。

DE では、Win32 関数 MessageBox の規則に従うことによって、このメッセージを処理する方法を指定します (詳細については、AfxMessageBox に関するページを参照してください)。

IDebugErrorEvent2 インターフェイスを使用して、ユーザーからの応答を必要としないメッセージを Visual Studio に送信します。

要件

ヘッダー: msdbg.h

名前空間: Microsoft.VisualStudio.Debugger.Interop

アセンブリ: Microsoft.VisualStudio.Debugger.Interop.dll

関連項目