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

資訊字串,可協助開發人員更正回報的錯誤狀況。 最大長度為 512 個字元,包括尾端 NUL 字元;會截斷較長的字串。

如果字串是空的,函式會成功,但不會報告任何錯誤資訊。 建議您一律提供資訊字串。

如果 messageNULL,則函式會成功並報告 Winerror.h 中的泛型字串,如果有的話,或與 E_FAIL 相關聯的泛型字串。

此函式不支援內嵌 NUL 字元,因此只會報告第一個 NUL 之前的字元。

訊息字串應該當地語系化。

[in] languageException

跨進程進行 Apartment-agile、in-proc 和 marshal-by-value 的錯誤物件。 如有必要,此對象應該實作 ILanguageExceptionStackBackTraceILanguageExceptionTransform

傳回值

傳回碼 Description
TRUE
已成功報告錯誤訊息。
FALSE
訊息NULL 或指向空字串,或 錯誤 為成功碼。

備註

RoOriginateLanguageException 函式的行為就像 RoOriginateError,但採用另一個參數來儲存錯誤的額外資訊。 語言投影會使用此函式來儲存例外狀況資訊以及 COM 錯誤資訊。 語言投影需要建立 IUnknown 物件,其中包含稍後重新建立例外狀況所需的所有資訊。

錯誤對象必須是 Apartment-agile、in-proc 和 marshal-by-value 跨進程。 這項限制的原因是從中產生錯誤對象的線程可能已不存在,例如,因為 CoUninitialize 呼叫,在擷取錯誤資訊時。

規格需求

需求
最低支援的用戶端 Windows 8.1 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 roerrorapi.h
程式庫 RuntimeObject.lib
Dll ComBase.dll

另請參閱

RoOriginateError