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 字元;會截斷較長的字串。
如果字串是空的,函式會成功,但不會報告任何錯誤資訊。 建議您一律提供資訊字串。
如果 message 為 NULL,則函式會成功並報告 Winerror.h 中的泛型字串,如果有的話,或與 E_FAIL 相關聯的泛型字串。
此函式不支援內嵌 NUL 字元,因此只會報告第一個 NUL 之前的字元。
訊息字串應該當地語系化。
[in] languageException
跨進程進行 Apartment-agile、in-proc 和 marshal-by-value 的錯誤物件。 如有必要,此對象應該實作 ILanguageExceptionStackBackTrace 和 ILanguageExceptionTransform 。
傳回值
傳回碼 | Description |
---|---|
|
已成功報告錯誤訊息。 |
|
訊息 為 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 |