AfxThrowOleDispatchException
Используйте эту функцию для вызова исключения внутри функции ole-автоматизации.
void AFXAPI AfxThrowOleDispatchException(
WORD wCode,
LPCSTR lpszDescription,
UINT nHelpID = 0
);
void AFXAPI AfxThrowOleDispatchException(
WORD wCode,
UINT nDescriptionID,
UINT nHelpID = -1
);
Параметры
wCode
Код ошибки, относящийся к приложению.lpszDescription
Учтное описание ошибки.nDescriptionID
Идентификатор ресурса для учтного описания ошибки.nHelpID
Контекст справки для файла справки приложения (.HLP).
Заметки
Сведения, предоставляемого эта функция может отображаться при управлении приложением (Microsoft Visual Basic или другое клиентское приложение ole-автоматизацией).
Пример
// Sort is method of automation class CStrArrayDoc
long CStrArrayDoc::Sort(VARIANT* vArray)
{
USES_CONVERSION;
// Type check VARIANT parameter. It should contain a BSTR array
// passed by reference. The array must be passed by reference; it is
// an in-out-parameter.
// throwing COleDispatchException allows the EXCEPINFO structure of
// IDispatch::Invoke() to set
if (V_VT(vArray) != (VT_ARRAY | VT_BSTR))
AfxThrowOleDispatchException(1001,
_T("Type Mismatch in Parameter. Pass a string array by reference"));
// ...
// ...
return 0;
}
Требования
Header: <afxdisp.h>