AtlReportError
Installieren IErrorInfo die Schnittstelle, um Fehlerinformationen zu den Clients des Objekts bereitzustellen.
Syntax
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.
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");
}
Warnung
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