2.2.34 EXCEPINFO

The EXCEPINFO structure is filled in by an automation server to describe an exception that occurred during a call to Invoke (as specified in section 3.1.4.4). If no exception occurred, the server MUST set both wCode and scode to 0.

 typedef struct tagEXCEPINFO {
   WORD wCode;
   WORD wReserved;
   BSTR bstrSource;
   BSTR bstrDescription;
   BSTR bstrHelpFile;
   DWORD dwHelpContext;
   ULONG_PTR pvReserved;
   ULONG_PTR pfnDeferredFillIn;
   HRESULT scode;
 } EXCEPINFO;

wCode: An implementation-specific<14> value that identifies an error.

Value

Meaning

0

The value MUST be zero for either of the following conditions:

  • This field does not contain an error code.

  • The value in the scode field is nonzero.

1000 < value

Implementation-specific error values MUST be greater than 1000.

wReserved: MUST be set to 0, and MUST be ignored on receipt.

bstrSource: MUST<15> be set to an implementation-specific string that identifies the source of the exception.

bstrDescription: MUST<16> be set to an implementation-specific string, or to a NULL BSTR if no description is available.

bstrHelpFile: MUST<17> be set to an implementation-specific string, or to a NULL BSTR if no help is available.

dwHelpContext: MUST<18> be set to an implementation-specific integer. If bstrHelpFile is NULL, this field MUST be set to 0, and MUST be ignored on receipt.

pvReserved: MUST be set to NULL, and MUST be ignored on receipt.

pfnDeferredFillIn: MAY be set to NULL, and MUST be ignored on receipt.<19>

scode: MUST be set to a failure HRESULT that describes the error, or to 0 to indicate that it does not contain an error code. If wCode is nonzero, this field MUST be set to 0.