Share via


RoOriginateLanguageException 関数 (roerrorapi.h)

エラー、情報文字列、およびエラー オブジェクトをアタッチされたデバッガーに報告します。

構文

BOOL RoOriginateLanguageException(
  [in]           HRESULT  error,
  [in, optional] HSTRING  message,
  [in]           IUnknown *languageException
);

パラメーター

[in] error

エラー条件に関連付けられているエラー コード。 error成功コード (S_OK など) の場合、関数は影響を受けず、FALSE を返します。 この動作により、不要なエラー メッセージを引き起こさずにエラーが発生しなかった場合に関数を呼び出します。

[in, optional] message

報告されたエラー状態を開発者が修正するのに役立つ情報文字列。 最大長は、末尾の NUL 文字を含む 512 文字です。長い文字列は切り捨てられます。

文字列が空の場合、関数は成功しますが、エラー情報は報告されません。 常に有益な文字列を指定することをお勧めします。

messageNULL の場合、関数は成功し、使用可能な場合は Winerror.h のジェネリック文字列、またはE_FAILに関連付けられている汎用文字列を報告します。

この関数は埋め込み NUL 文字をサポートしていないため、最初の NUL の前の文字のみが報告されます。

メッセージ文字列はローカライズする必要があります。

[in] languageException

プロセス間でアパートメント アジャイル、インプロセス、マーシャリングバイバリューのエラー オブジェクト。 このオブジェクトは、必要に応じて ILanguageExceptionStackBackTraceILanguageExceptionTransform を 実装する必要があります。

戻り値

リターン コード 説明
TRUE
エラー メッセージが正常に報告されました。
FALSE
messageNULL であるか、空の文字列を指しているか、 エラー が成功コードです。

注釈

RoOriginateLanguageException 関数は RoOriginateError のように動作しますが、エラーに関する追加情報を格納する別のパラメーターを受け取ります。 言語プロジェクションでは、この関数を使用して、COM エラー情報と共に例外情報を格納します。 言語プロジェクションでは、後で例外を再作成するために必要なすべての情報を含む IUnknown オブジェクトを作成する必要があります。

エラー オブジェクトは、プロセス間でアパートメント アジャイル、インプロセス、マーシャリングバイバリューである必要があります。 この制限の理由は、エラー情報が取得される時点までに、 CoUninitialize 呼び出しなどによって、エラー オブジェクトが発生したスレッドが存在しなくなる可能性があるためです。

要件

要件
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー roerrorapi.h
Library RuntimeObject.lib
[DLL] ComBase.dll

こちらもご覧ください

RoOriginateError