Структура 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

Идентификатор контекста справки.

pvReserved

Зарезервировано. Должно иметь значение NULL.

pfnDeferredFillIn

Предоставляет отложенное заполнение. Если отложенное заполнение не требуется, для этого поля следует задать значение NULL.

scode

Возвращаемое значение, описывающее ошибку. Это поле или wCode (но не оба) должны быть заполнены; для другого должно быть задано значение 0. (Только 16-разрядные версии Windows.)

Комментарии

Используйте поле pfnDeferredFillIn , чтобы объект мог отложить заполнение полей bstrDescription, bstrHelpFile и dwHelpContext до тех пор, пока они не понадобятся. Это поле может использоваться, например, если загрузка строки для ошибки занимает много времени. Чтобы использовать отложенное заполнение, объект помещает указатель функции в этот слот и не заполняет другие поля, кроме wCode, что является обязательным.

Чтобы получить дополнительные сведения, вызывающий объект передает структуру EXCEPINFO обратно в функцию обратного вызова pexcepinfo , которая заполняет дополнительные сведения. Когда объект ActiveX и клиент ActiveX находятся в разных процессах, объект ActiveX вызывает pfnDeferredFillIn перед возвратом к контроллеру.

Требования

Требование Значение
Заголовок oaidl.h