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>