Udostępnij za pośrednictwem


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");
}
Informacje dotyczące przestrogiPrzestroga

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

Zobacz też

Informacje

MAKE_HRESULT

Inne zasoby

Debugowanie i globalne funkcje raportowania błędów