EXCEPINFO 結構 (oaidl.h)

描述 IDispatch::Invoke 期間發生的例外狀況。

語法

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;

成員

wCode

錯誤碼。 錯誤碼應大於 1000。 此欄位或 scode 欄位必須填入;另一個必須設定為 0。

wReserved

保留的。 應該是 0。

bstrSource

例外狀況來源的名稱。 通常,這是應用程式名稱。 此欄位應該由 IDispatch 的實作者填入。

bstrDescription

要顯示的例外狀況描述。 如果沒有可用的描述,請使用 null。

bstrHelpFile

完整說明檔路徑。 如果沒有說明可用,請使用 null。

dwHelpContext

說明內容識別碼。

pvReserved

保留的。 必須是 Null。

pfnDeferredFillIn

提供延後填入。 如果不需要延後填入,此字段應設定為 null。

scode

描述錯誤的傳回值。 此欄位或 wCode (,但不能同時填入) ;另一個必須設定為 0。 (僅限 16 位 Windows 版本。)

備註

使用 pfnDeferredFillIn 欄位可讓物件延遲填入 bstrDescriptionbstrHelpFiledwHelpContext 字段,直到需要它們為止。 例如,如果載入錯誤的字串是耗時的作業,可能會使用此欄位。 若要使用延後填入,物件會將函式指標放入此位置,而且不會填滿 wCode 以外的任何其他欄位,這是必要的。

若要取得其他資訊,呼叫端會將 EXCEPINFO 結構傳回 pexcepinfo 回呼函式,以填入其他資訊。 當 ActiveX 物件和 ActiveX 用戶端在不同的進程中時,ActiveX 物件會在返回控制器之前呼叫 pfnDeferredFillIn

規格需求

需求
標頭 oaidl.h