EXCEPINFO

This structure describes an exception that occurred during IDispatch::Invoke.

At a Glance

Header file: Oaidl.h
Windows CE versions: 2.0 and later

Syntax

typedef struct FARSTRUCT tagEXCEPINFO {
unsigned short
wCode;
unsigned short
wReserved;
BSTR
bstrSource;
BSTR
bstrDescription;
BSTR
bstrHelpFile;
unsigned long
dwHelpContext;
void FAR
*pvReserved;
HRESULT (STDAPICALLTYPE FAR
*pfnDeferredFillIn)
(struct tagEXCEPINFO FAR *);
SCODE
scode;
} EXCEPINFO;

Members

wCode

Code that identifies the error. Error codes should be greater than 1000. Either this member or the return value member must be filled in; the other must be set to 0.

wReserved

Reserved; set to 0.

bstrSource

Unicode string that contains the textual, human-readable name of the source of the exception. Typically, this is an application name. This member should be filled in by the implementor of IDispatch.

bstrDescription

Unicode string that contains the textual, human-readable description of the error intended for the customer. If no description is available, use NULL.

bstrHelpFile

Unicode string that contains the fully qualified drive, path, and file name of a Help file with more information about the error. If no Help is available, use NULL.

dwHelpContext

Specifies the Help context identifier of the topic within the Help file. This member should be filled in if and only if the bstrHelpFile member is not NULL.

pvReserved

Reserved; set to NULL.

pfnDeferredFillIn

Pointer to a function that takes an EXCEPINFO structure as an argument and returns an HRESULT value. If deferred, fill-in is not desired, this member should be set to NULL.

scode

Return value describing the error. Either this member or wCode (but not both) must be filled in; the other must be set to 0. For use with 16-bit versions only.

Remarks

Use the pfnDeferredFillIn member to allow an object to defer filling in the bstrDescription, bstrHelpFile, and dwHelpContext members until they are needed. This member might be used, for example, if loading the string for the error is a time-consuming operation. To use deferred fill-in, the object puts a function pointer in this slot and does not fill any of the other members except wCode, which is required.

To get additional information, the caller passes the EXCEPINFO structure back to the pexcepinfo callback function, which fills in the additional information. When the ActiveX object and the ActiveX client are in different processes, the ActiveX object calls pfnDeferredFillIn before returning to the controller.