Share via


SetErrorInfo (Component-Automatisierung)

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Legt das Fehler Informationen-Objekt für den aktuellen logischen Ausführungsthread fest.

HRESULT SetErrorInfo(
  DWORD  dwReserved,
  IErrorInfo  *perrinfo
);

Parameter

  • dwReserved
    Für die zukünftige Verwendung reserviert. NULL muss sein.

  • perrinfo
    Zeiger auf ein Fehlerobjekt.

Rückgabewert

Der Rückgabewert vom zurückgegebenen HRESULT ist:

Rückgabewert

Bedeutung

S_OK

Erfolg.

Hinweise

Diese Funktion gibt das vorhandenen Fehler Informationen-Objekt, wenn eine vorhanden ist, und setzt den Zeiger auf perrinfo frei. Verwenden Sie diese Funktion, nachdem das Objekt ein Fehlerobjekt erstellen, die den aktuellen logischen Ausführungsthread zuordnet.

Wenn die Eigenschaft oder Methode, die SetErrorInfo aufruft von DispInvokeaufgerufen wird, wird DispInvoke den EXCEPINFO-Parameter mit den Werten im Fehler Informationen-Objekt angegebenen gefüllt. DispInvoke wird DISP_E_EXCEPTION, wenn die Eigenschaft oder Methode einen Fehler zurückgibt für DispInvoke Rückgabewert zurückgegeben.

Virtuelle Funktion VTBL (Table) Bindung Domänencontroller, die nicht verwenden, IDispatch:: Invoke können mithilfe von GetErrorInfo das Fehlerobjekt Informationen abrufen. Dadurch wird ein Objekt, eine duale Schnittstelle unterstützt mit SetErrorInfo, unabhängig davon, ob der Client VTBL-Bindung oder IDispatch verwendet.

Erfolgt ein Aufruf Cross Apartment löscht COM-Fehler-Objekt.

Ein COM-Aufruf, die durch einen Proxy-Stub verläuft löscht alle vorhandenen Fehler-Objekt für den aufrufenden Thread. Eine aufgerufene Objekt sollte keine solche Aufrufe nach dem Aufruf von SetErrorInfo und vor der Rückgabe machen. Der Aufrufer sollten solche Aufrufe nicht erstellen, nachdem der Aufruf zurückgegeben wird und vor dem Aufruf von GetErrorInfo. Als eine Faustregel sollte eine Schnittstellenmethode so bald wie möglich zurückgeben, nach dem Aufruf von SetErrorInfound der Aufrufer GetErrorInfo so bald wie möglich nachdem der Aufruf zurückgegeben.

Eingeben der COM-gebundenes Meldungsfeld Schleife löscht alle vorhandenen Fehler-Objekt. Eine aufgerufene Objekt sollten keine Meldungsschleife eingeben, nach dem Aufruf von SetErrorInfo.

Beispiel

ICreateErrorInfo *pcerrinfo;
IErrorInfo *perrinfo;
HRESULT hr;

hr = CreateErrorInfo(&pcerrinfo);
if (SUCCEEDED(hr))
{
   hr = pcerrinfo->QueryInterface(IID_IErrorInfo, (LPVOID FAR*) &perrinfo);
   if (SUCCEEDED(hr))
   {
      SetErrorInfo(0, perrinfo);
      perrinfo->Release();
   }
   pcerrinfo->Release();
}

Siehe auch

Konzepte

API-Funktionen zur Fehlerbehandlung