Freigeben über


AtlReportError

Installieren IErrorInfo die Schnittstelle, um Fehlerinformationen zu den Clients des Objekts bereitzustellen.

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( )
);

Parameter

  • clsid
    [in] Die CLSID des Objekts übertragbaren der Fehler.

  • lpszDesc
    [in] Die Zeichenfolge, die den Fehler beschreibt.Die Unicode-Versionen geben an, dass lpszDesc vom Typ ist, LPCOLESTR die ANSI-Version gibt einen Typ LPCSTR an.

  • iid
    [in] Die IID der Schnittstelle, die den Fehler oder GUID_NULL, wenn der Fehler, definiert vom Betriebssystem definiert wird.

  • hRes
    [in] HRESULT, das Sie an den Aufrufer zurückgegeben werden soll.

  • nID
    [in] Der Ressourcenbezeichner, in dem die Fehlerbeschreibungszeichenfolge gespeichert wird.Dieser Wert sollte zwischen 0x0200 und 0xFFFF liegen, einschließlich.In Debugbuilds ASSERT tritt auf, wenn nID keine gültige Zeichenfolge indiziert.In Releasebuilds ist die Fehlerbeschreibungszeichenfolge festgelegter "unbekannter Fehler".

  • dwHelpID
    [in] Der Hilfekontextbezeichner für den Fehler.

  • lpszHelpFile
    [in] Der Datei Pfad und Name der Hilfe die Beschreibung des Fehlers.

  • hInst
    [in] Das Handle auf die Ressource.Standardmäßig ist dieser Parameter __AtlBaseModuleModule::GetResourceInstance, in dem __AtlBaseModuleModule die globale Instanz von CAtlBaseModule oder von Klasse, die davon abgeleitet ist.

Rückgabewert

Wenn der hRes-Parameter ungleich 0 ist, gibt den Wert aus hRes zurück.Wenn hRes null ist, dann die ersten vier Versionen von AtlReportError Rückgabe DISP_E_EXCEPTION.Die letzten zwei Versionen geben das Ergebnis des Makros MAKE_HRESULT( 1, FACILITY_ITF, nID ) zurück.

Hinweise

Das lpszDesc Zeichenfolge wird als die Textbeschreibung des Fehlers verwendet.Wenn der Client hRes empfängt, das Sie aus AtlReportError zurückgeben, kann der Client auf die IErrorInfo-Struktur für Informationen über den Fehler zugreifen.

Beispiel

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");
}
WarnhinweisVorsicht

Verwenden Sie nicht AtlReportError in C++-catch-Handlern.Einige Überschreibungen dieser Funktionen verwenden die Makros für ATL-Zeichenfolgenkonvertierung intern, die wiederum die _alloca-Funktion intern verwenden.Verwenden AtlReportError catch-Handler in einer C++-Datei kann Ausnahmen in C++-catch-Handlern verursachen.

Anforderungen

Header: möchten

Siehe auch

Referenz

MAKE_HRESULT

Weitere Ressourcen

Debuggen und Fehlerberichts-globale Funktionen