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