次の方法で共有


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

ヘルプ コンテキスト ID。

pvReserved

予約済み。 null である必要があります。

pfnDeferredFillIn

遅延入力を提供します。 遅延入力が必要ない場合は、このフィールドを null に設定する必要があります。

scode

エラーを説明する戻り値。 このフィールドまたは wCode (両方ではなく) を入力する必要があります。もう一方は 0 に設定する必要があります。 (16 ビット Windows バージョンのみ)。

注釈

pfnDeferredFillIn フィールドを使用して、オブジェクトが必要になるまで bstrDescriptionbstrHelpFileおよび dwHelpContext フィールドの入力を延期できるようにします。 このフィールドは、たとえば、エラーの文字列の読み込みが時間のかかる操作である場合に使用できます。 遅延入力を使用するには、オブジェクトはこのスロットに関数ポインターを配置し、 必要な wCode 以外の他のフィールドには入力しません。

追加情報を取得するために、呼び出し元は EXCEPINFO 構造体を pexcepinfo コールバック関数に渡し、追加情報を入力します。 ActiveX オブジェクトと ActiveX クライアントが異なるプロセスにある場合、ActiveX オブジェクトはコントローラーに戻る前に pfnDeferredFillIn を呼び出します。

要件

要件
Header oaidl.h