Поделиться через


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

См. также

Ссылки

MAKE_HRESULT

Другие ресурсы

Debugging and Error Reporting Global Functions