SetThreadErrorMode 関数 (errhandlingapi.h)

指定した種類の重大なエラーをシステムで処理するか、呼び出し元のスレッドで処理するかを制御します。

構文

BOOL SetThreadErrorMode(
  [in]  DWORD   dwNewMode,
  [out] LPDWORD lpOldMode
);

パラメーター

[in] dwNewMode

スレッド エラー モード。 このパラメーターには、次の 1 つ以上の値を指定できます。

意味
0
システムの既定値を使用します。これは、すべてのエラー ダイアログ ボックスを表示することです。
SEM_FAILCRITICALERRORS
0x0001
システムに重大エラー ハンドラー メッセージ ボックスは表示されません。 代わりに、システムは呼び出し元のスレッドにエラーを送信します。

ベスト プラクティスは、起動時にすべてのアプリケーションで SEM_FAILCRITICALERRORS のパラメーターを使用してプロセス全体の SetErrorMode 関数を呼び出すことです。 これは、エラー モード ダイアログでアプリケーションがハングしないようにするためです。

SEM_NOGPFAULTERRORBOX
0x0002
Windows エラー報告ダイアログは表示されません。
SEM_NOOPENFILEERRORBOX
0x8000
OpenFile 関数は、ファイルの検索に失敗した場合、メッセージ ボックスを表示しません。 代わりに、エラーが呼び出し元に返されます。 このエラー モードは 、OF_PROMPT フラグをオーバーライドします。

[out] lpOldMode

関数が成功した場合、このパラメーターはスレッドの以前のエラー モードに設定されます。 このパラメーターは、NULL でもかまいません。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

各プロセスには、アプリケーションが重大なエラーに応答する方法をシステムに示すエラー モードが関連付けられています。 スレッドは、実行中のプロセスのエラー モードを継承します。 プロセス エラー モードを取得するには、 GetErrorMode 関数を使用します。 呼び出し元スレッドのエラー モードを取得するには、 GetThreadErrorMode 関数を使用します。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー errhandlingapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetThreadErrorMode

SetErrorMode