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