Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Microsoft-spezifisch
Ersetzt die Standardfunktion für die COM-Fehlerbehandlung.
void __stdcall _set_com_error_handler(
void (__stdcall *pHandler)(
HRESULT hr,
IErrorInfo* perrinfo
)
);
Parameter
pHandler
Zeiger auf die Ersetzungsfunktion.hr
HRESULT-Informationen.perrinfo
IErrorInfo-Objekt
Hinweise
Standardmäßig behandelt _com_raise_error alle COM-Fehler.Sie können dieses Verhalten ändern, indem Sie _set_com_error_handler verwenden, um eine eigene Fehlerbehandlungsfunktion aufzurufen.
Die Ersetzungsfunktion muss über eine Signatur verfügen, die der von _com_raise_error entspricht.
Beispiel
// _set_com_error_handler.cpp
// compile with /EHsc
#include <stdio.h>
#include <comdef.h>
#include <comutil.h>
// Importing ado dll to attempt to establish an ado connection.
// Not related to _set_com_error_handler
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
void __stdcall _My_com_raise_error(HRESULT hr, IErrorInfo* perrinfo)
{
throw "Unable to establish the connection!";
}
int main()
{
_set_com_error_handler(_My_com_raise_error);
_bstr_t bstrEmpty(L"");
_ConnectionPtr Connection = NULL;
try
{
Connection.CreateInstance(__uuidof(Connection));
Connection->Open(bstrEmpty, bstrEmpty, bstrEmpty, 0);
}
catch(char* errorMessage)
{
printf("Exception raised: %s\n", errorMessage);
}
return 0;
}
Anforderungen
Header: comdef.h
Lib:, wenn die "wchar_t Compileroption des systemeigenen Typs" ist, ist, Verwendung comsuppw.lib oder comsuppwd.lib aktiviert.Wenn "wchar_t handelt, ist Typ" comsupp.lib aus, verwenden.Weitere Informationen finden Sie unter /Zc:wchar_t (wchar_t ist der systemeigene Typ).