AtlReportError
Konfiguruje IErrorInfo interfejsu, aby informacje o błędzie klienci obiektu.
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( )
);
Parametry
clsid
[w] Identyfikator CLSID obiektu zgłoszenie błędu.lpszDesc
[w] Ciąg opisujący błąd.Określ wersje Unicode, który lpszDesc jest typu LPCOLESTR; wersja ANSI określa typ LPCSTR.iid
[w] Identyfikator IID interfejsu Definiowanie błąd lub GUID_NULL Jeśli błąd jest zdefiniowana przez system operacyjny.hRes
[w] HRESULT Mają być zwracane do obiektu wywołującego.nID
[w] Identyfikator zasobu, gdzie przechowywane są ciąg opis błędu.Ta wartość musi zawierać się między 0x0200 i 0xFFFF, łącznie.W kompilacjach debugowania ASSERT spowoduje, że jeśli nID prawidłowy ciąg nie indeks.W trybie budowania wersji ciąg opisu błąd zostanie ustawiony na "Nieznany błąd".dwHelpID
[w] Identyfikator kontekstu pomocy błędu.lpszHelpFile
[w] Ścieżka i nazwa pliku pomocy opisem błędu.hInst
[w] Dojścia do zasobu.Domyślnie ten parametr jest __AtlBaseModuleModule::GetResourceInstance, gdzie __AtlBaseModuleModule jest globalne wystąpienie CAtlBaseModule lub Klasa pochodna od niego.
Wartość zwracana
Jeśli hRes niezerową, zwraca wartość parametru hRes.Jeśli hRes jest zero, a następnie pierwsze cztery wersje AtlReportError zwrotu DISP_E_EXCEPTION.Ostatnie dwie wersje zwracają wynik makra MAKE_HRESULT (1, FACILITY_ITF,nID).
Uwagi
Ciąg lpszDesc jest używana jako opis błędu.Gdy klient odbierze hRes powrócić z AtlReportError, klient może uzyskać dostęp IErrorInfo struktury szczegółowe informacje o błędzie.
Przykład
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");
}
Przestroga |
---|
Nie należy używać AtlReportError w języku C++ połowu obsługi.Przesłonięcia, niektóre z tych funkcji użyć makra konwersji ciągu ATL wewnętrznie, która z kolei używa _alloca działać wewnętrznie.Za pomocą AtlReportError połowowe C++ obsługi może spowodować wyjątków w C++ obsługi catch. |
Wymagania
Nagłówek: atlcom.h