CoDisableCallCancellation-Funktion (combaseapi.h)
Hebt die Aktion eines Aufrufs von CoEnableCallCancellation auf. Deaktiviert den Abbruch synchroner Aufrufe im aufrufenden Thread, wenn alle Aufrufe von CoEnableCallCancellation durch Aufrufe von CoDisableCallCancellation ausgeglichen werden.
Syntax
HRESULT CoDisableCallCancellation(
[in, optional] LPVOID pReserved
);
Parameter
[in, optional] pReserved
Dieser Parameter ist reserviert und muss NULL sein.
Rückgabewert
Diese Funktion kann die Standardrückgabewerte E_FAIL, E_INVALIDARG, E_OUTOFMEMORY und E_UNEXPECTED sowie die folgenden Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Anrufabbruch wurde im Thread erfolgreich deaktiviert. |
|
Es wurden mehr erfolgreiche Aufrufe von CoEnableCallCancellation im Thread als Aufrufe von CoDisableCallCancellation durchgeführt. Der Abbruch ist für den Thread weiterhin aktiviert. |
Hinweise
Wenn der Abbruch des Aufrufs in einem Thread aktiviert ist, können gemarderte synchrone Aufrufe von diesem Thread an Objekte auf demselben Computer schwerwiegende Leistungseinbußen erleiden. Standardmäßig können synchrone Aufrufe dann nicht abgebrochen werden, selbst wenn ein Abbruchobjekt verfügbar ist. Um den Anrufabbruch zu aktivieren, müssen Sie zuerst CoEnableCallCancellation aufrufen.
Wenn der Aufrufabbruch deaktiviert ist, schlagen Versuche, einen Zeiger auf ein Aufrufobjekt zu erhalten, fehl. Wenn der aufrufende Thread bereits über einen Zeiger auf ein Aufrufobjekt verfügt, schlagen Aufrufe dieses Objekts fehl.
Sofern Sie die Anrufabbruch nicht jederzeit für einen Thread aktivieren möchten, sollten Sie Aufrufe von CoEnableCallCancellation mit Aufrufen von CoDisableCallCancellation koppeln. Anrufabbruch ist nur deaktiviert, wenn jeder erfolgreiche Aufruf von CoEnableCallCancellation durch einen erfolgreichen Aufruf von CoDisableCallCancellation ausgeglichen wird.
Ein Aufruf ist abbruchfähig oder nicht abhängig vom Zustand des Threads zum Zeitpunkt des Aufrufs. Das anschließende Aktivieren oder Deaktivieren der Anrufabbruch hat keine Auswirkungen auf Aufrufe, die im Thread ausstehen.
Wenn ein Thread nicht initialisiert und dann durch Aufrufe von CoUninitialize und CoInitialize neu initialisiert wird, ist der Aufrufabbruch für den Thread deaktiviert, auch wenn er aktiviert wurde, als der Thread nicht initialisiert wurde.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | combaseapi.h (include Objbase.h) |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |