Funzione RoOriginateLanguageException (roerrorapi.h)

Segnala un errore, una stringa informativa e un oggetto errore a un debugger collegato.

Sintassi

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

Parametri

[in] error

Codice di errore associato alla condizione di errore. Se l'errore è un codice riuscito, ad esempio S_OK, la funzione non ha alcun effetto e restituisce FALSE. Questo comportamento consente di chiamare la funzione quando non si è verificato alcun errore senza causare un messaggio di errore indesiderato.

[in, optional] message

Stringa informativa che consente agli sviluppatori di correggere la condizione di errore segnalata. La lunghezza massima è di 512 caratteri, incluso il carattere NUL finale; le stringhe più lunghe vengono troncate.

Se la stringa è vuota, la funzione ha esito positivo ma non viene segnalata alcuna informazione sull'errore. È consigliabile fornire sempre una stringa informativa.

Se il messaggio è NULL, la funzione ha esito positivo e segnala la stringa generica in Winerror.h, se disponibile o la stringa generica associata a E_FAIL.

Questa funzione non supporta i caratteri NUL incorporati, quindi vengono segnalati solo i caratteri prima del primo NUL .

La stringa del messaggio deve essere localizzata.

[in] languageException

Oggetto error che è apartment-agile, in-proc e marshalling per valore tra processi. Questo oggetto deve implementare ILanguageExceptionStackBackTrace e ILanguageExceptionTransform , se necessario.

Valore restituito

Codice restituito Descrizione
TRUE
Il messaggio di errore è stato segnalato correttamente.
FALSE
message è NULL o punta a una stringa vuota oppure l'errore è un codice di operazione riuscita.

Commenti

La funzione RoOriginateLanguageException si comporta come RoOriginateError , ma accetta un altro parametro che archivia informazioni aggiuntive sull'errore. Le proiezioni del linguaggio usano questa funzione per archiviare le informazioni sulle eccezioni insieme alle informazioni sull'errore COM. Le proiezioni del linguaggio devono creare un oggetto IUnknown che contiene tutte le informazioni necessarie per ricreare l'eccezione in un secondo momento.

L'oggetto errore deve essere apartment-agile, in-proc e marshalling per valore tra processi. Il motivo di questa restrizione è che il thread da cui viene originato l'oggetto errore potrebbe non esistere più, ad esempio a causa di una chiamata CoUninitialize , al momento in cui vengono recuperate le informazioni sull'errore.

Requisiti

Requisito Valore
Client minimo supportato Windows 8.1 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione roerrorapi.h
Libreria RuntimeObject.lib
DLL ComBase.dll

Vedi anche

RoOriginateError