次の方法で共有


IDebugControl3::WaitForEvent メソッド (dbgeng.h)

WaitForEvent メソッドは、デバッガー エンジン アプリケーションに中断されるイベントを待機します。

構文

HRESULT WaitForEvent(
  [in] ULONG Flags,
  [in] ULONG Timeout
);

パラメーター

[in] Flags

0 に設定します。 現在、このパラメーターで使用できるフラグはありません。

[in] Timeout

このメソッドが返されるまでの待機時間 (ミリ秒) を指定します。 Timeout が INFINITE の場合、デバッガー エンジン アプリケーションに中断するイベントが発生するか、終了割り込みが発行されるまで、このメソッドは戻りません。 現在のセッションにライブ カーネル ターゲットがある場合は、タイムアウト INFINITE に設定する必要があります。

戻り値

このメソッドは他のエラー値を返す場合があり、上記のエラー値には追加の意味がある場合があります。 詳細については 戻り値の を参照してください。

リターン コード 形容
S_OK
メソッドが成功しました。
S_FALSE
タイムアウトの有効期限が切れています。
E_PENDING
出口割り込みが発行されました。 ターゲットは使用できません。
E_UNEXPECTED
未解決の入力要求があるか、どのターゲットもイベントを生成できませんでした。
E_FAIL
エンジンは既にイベントを待機しています。

備考

メソッドは、デバッガー セッションを開始したスレッドからのみ呼び出すことができます。

イベントが発生すると、デバッガー エンジン によってイベントが処理され、イベント コールバックが呼び出されます。 これらのコールバックのいずれかが、(DEBUG_STATUS_BREAKを返すことによって) イベントがデバッガー エンジン アプリケーションに中断する必要があることを示している場合、このメソッドは返します。それ以外の場合は、イベントを待機し続けます。 イベント フィルターでは、イベントがデバッガー エンジン アプリケーションに分割されることを指定することもできます。 イベント フィルターの詳細については、「例外とイベントの制御」を参照してください。

この方法は再入入されません。 いったん呼び出されると、クライアントが返されるまで、クライアントで再度呼び出すことはできません。 特に、コールバックによって実行される拡張機能やコマンドなど、イベント コールバックから呼び出すことはできません。

たとえば、どのターゲットもイベントを生成できない場合 (たとえば、すべてのターゲットが終了しました)、このメソッドは現在のセッションを終了し、ターゲットを破棄して、E_UNEXPECTED返します。

定数 INFINITE は Winbase.h で定義されています。

WaitForEvent を使用してデバッガー アプリケーションとターゲットの実行フローを制御する方法の詳細については、「デバッグ セッションと実行モデルの」を参照してください。 イベント コールバックの詳細については、「監視イベントの」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー dbgeng.h (Dbgeng.h、Winbase.h を含む)

関連項目

IDebugControl

IDebugControl2

IDebugControl3