AtlReportError
Настраивает интерфейс IErrorInfo для предоставления сведений об ошибках клиенты объекта.
HRESULT WINAPI AtlReportError(
const CLSID& clsid,
LPCOLESTR lpszDesc,
const IID& iid = GUID_NULL,
HRESULT hRes = 0
);
HRESULT WINAPI AtlReportError(
const CLSID& clsid,
LPCOLESTR lpszDesc,
DWORD dwHelpID,
LPCOLESTR lpszHelpFile,
const IID& iid = GUID_NULL,
HRESULT hRes = 0
);
HRESULT WINAPI AtlReportError(
const CLSID& clsid,
LPCSTR lpszDesc,
const IID& iid = GUID_NULL,
HRESULT hRes = 0
);
HRESULT WINAPI AtlReportError(
const CLSID& clsid,
LPCSTR lpszDesc,
DWORD dwHelpID,
LPCSTR lpszHelpFile,
const IID& iid = GUID_NULL,
HRESULT hRes = 0
);
HRESULT WINAPI AtlReportError(
const CLSID& clsid,
UINT nID,
const IID& iid = GUID_NULL,
HRESULT hRes = 0,
HINSTANCE hInst = _AtlBaseModule.GetResourceInstance( )
);
HRESULT WINAPI AtlReportError(
const CLSID& clsid,
UINT nID,
DWORD dwHelpID,
LPCOLESTR lpszHelpFile,
const IID& iid = GUID_NULL,
HRESULT hRes = 0,
HINSTANCE hInst = _AtlBaseModule.GetResourceInstance( )
);
Параметры
clsid
[in] Идентификатор CLSID объекта при сообщении об ошибке.lpszDesc
[in] Строка, описывающая ошибку. Версии Юникода определяют, что lpszDesc типа LPCOLESTR; версия ANSI, указывающее тип LPCSTR.iid
[in] Идентификатор IID интерфейса, определяющий ошибку или GUID_NULL если ошибка определяется операционной системой.hRes
[in] HRESULT требуется, возвращаемый вызывающему объекту.nID
[in] Идентификатор ресурса (uri), в котором хранится строка описания ошибки. Это значение должно лежать между 0x0200 и 0xFFFF включительно. В ASSERT отладочные построения, если не nID индексирует допустимая строка. В построениях выпуска строка описания ошибки будет установлена в значение "неизвестной ошибках".dwHelpID
[in] Идентификатор контекста справки для ошибки.lpszHelpFile
[in] Путь и имя справки хранится описание ошибки.hInst
[in] Дескриптор для ресурса. По умолчанию этот параметр __AtlBaseModuleModule::GetResourceInstance, где __AtlBaseModuleModule глобальный экземпляр CAtlBaseModule или класса, производного от него.
Возвращаемое значение
Если параметр hRes не равен нулю, возвращается значение hRes. Если hRes нулю, то первые 4 версии передачи DISP_E_EXCEPTIONAtlReportError. Последние версии 2 возвращают результат макроса MAKE_HRESULT( 1, FACILITY_ITF, nID ).
Заметки
LpszDesc строки используется как текстовое описание ошибки. Когда клиент получает hRes возвращается из AtlReportError, клиент может получить доступ структура IErrorInfo подробные сведения об ошибке.
Пример
STDMETHODIMP CMyControl::MyErrorProneMethod()
{
BOOL bSucceeded = ErrorProneFunc();
if (bSucceeded)
return S_OK;
else
// hRes is set to DISP_E_EXCEPTION
return AtlReportError(GetObjectCLSID(), L"My error message");
}
Предупреждение
Не используйте AtlReportError в обработчиках catch C++.Некоторые переопределения этих функций использующий макросы преобразования строки библиотеки ATL для внутреннего использования, которые, в свою очередь, используют функцию _alloca для внутреннего использования.Использование AtlReportError в обработчике catch C++ может стать причиной исключения в обработчиках catch C++.
Требования
Header: atlcom.h