Struttura EXCEPINFO (oaidl.h)
Descrive un'eccezione che si è verificata durante IDispatch::Invoke.
Sintassi
typedef struct tagEXCEPINFO {
WORD wCode;
WORD wReserved;
BSTR bstrSource;
BSTR bstrDescription;
BSTR bstrHelpFile;
DWORD dwHelpContext;
ULONG_PTR pvReserved;
ULONG_PTR pfnDeferredFillIn;
SCODE scode;
} EXCEPINFO, *LPEXCEPINFO;
Members
wCode
Codice di errore. I codici di errore devono essere maggiori di 1000. Questo campo o il campo scode deve essere compilato; l'altro deve essere impostato su 0.
wReserved
Riservato. Deve essere 0.
bstrSource
Nome dell'origine dell'eccezione. In genere, corrisponde al nome di un'applicazione. Questo campo deve essere compilato dall'implementatore di IDispatch.
bstrDescription
Descrizione dell'eccezione da visualizzare. Se non è disponibile alcuna descrizione, usare Null.
bstrHelpFile
Percorso completo del file della Guida. Se non è disponibile alcuna Guida, usare Null.
dwHelpContext
ID del contesto della Guida.
pvReserved
Riservato. Deve essere Null.
pfnDeferredFillIn
Fornisce il riempimento posticipato. Se il riempimento posticipato non è desiderato, questo campo deve essere impostato su Null.
scode
Valore restituito che descrive l'errore. Questo campo o wCode (ma non entrambi) deve essere compilato; l'altro deve essere impostato su 0. (solo versioni di Windows a 16 bit).
Commenti
Usare il campo pfnDeferredFillIn per consentire a un oggetto di rinviare la compilazione dei campi bstrDescription, bstrHelpFile e dwHelpContext finché non sono necessari. Questo campo può essere usato, ad esempio, se si carica la stringa per l'errore è un'operazione dispendiosa in termini di tempo. Per usare il riempimento posticipato, l'oggetto inserisce un puntatore a funzione in questo slot e non riempie gli altri campi tranne wCode, che è obbligatorio.
Per ottenere informazioni aggiuntive, il chiamante passa di nuovo la struttura EXCEPINFO alla funzione di callback pexcepinfo , che inserisce le informazioni aggiuntive. Quando l'oggetto ActiveX e il client ActiveX si trovano in processi diversi, l'oggetto ActiveX chiama pfnDeferredFillIn prima di tornare al controller.
Requisiti
Requisito | Valore |
---|---|
Intestazione | oaidl.h |