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.