다음을 통해 공유


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] 오류 설명 문자열 저장 되는 위치는 리소스 식별자입니다.이 값이 0x0200 0xFFFF 사이 (포함) 있어야 합니다.디버그 빌드에는 ASSERT 하면 됩니다 nID 유효한 문자열 인덱스 하지 않습니다.릴리스 빌드에서 "를 알 수 없는 오류" 오류 설명 문자열 설정 됩니다.

  • dwHelpID
    [in] 오류에 대 한 도움말 컨텍스트 식별자입니다.

  • lpszHelpFile
    [in] 오류를 설명 하는 도움말 파일의 이름 및 경로.

  • hInst
    [in] 리소스 핸들입니다.기본적으로이 매개 변수는 __AtlBaseModuleModule::GetResourceInstance여기서 __AtlBaseModuleModule 의 전역 인스턴스 CAtlBaseModule 또는 여기에서 파생 된 클래스입니다.

반환 값

경우는 hRes 매개 변수는 0이 아닌, 값을 반환 합니다. hRes.경우 hRes 0 인 처음 네 가지 버전의 AtlReportError 반환 DISP_E_EXCEPTION.매크로 결과 반환 하는 마지막 두 버전 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 처리기가 C++에서는 catch 합니다.이러한 함수 중 몇 가지 재정의가 ATL 문자열 변환 매크로 내부적으로 차례로 사용 사용 하는 _alloca 내부적으로 작동 합니다.사용 하 여 AtlReportError 에 C++ catch 처리기 C++ catch 처리기에서 예외가 발생할 수 있습니다.

요구 사항

헤더: atlcom.h

참고 항목

참조

MAKE_HRESULT

기타 리소스

디버깅 및 오류 보고 전역 함수