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 字段使对象能够延迟填充 bstrDescriptionbstrHelpFiledwHelpContext 字段,直到需要它们。 例如,如果加载错误的字符串是一个耗时的操作,则可以使用此字段。 若要使用延迟填充,对象将函数指针置于此槽中,并且不会填充除 wCode(必需)之外的任何其他字段。

为了获取其他信息,调用方将 EXCEPINFO 结构传递回 pexcepinfo 回调函数,该函数将填充其他信息。 当 ActiveX 对象和 ActiveX 客户端处于不同的进程中时,ActiveX 对象在返回到控制器之前调用 pfnDeferredFillIn

要求

要求
Header oaidl.h