CoTestCancel-Funktion (combaseapi.h)

Bestimmt, ob der auf dem Server ausgeführte Aufruf vom Client abgebrochen wurde.

Syntax

HRESULT CoTestCancel();

Rückgabewert

Diese Funktion kann die Standardmäßigen Rückgabewerte E_FAIL, E_INVALIDARG, E_OUTOFMEMORY und E_UNEXPECTED sowie die folgenden Werte zurückgeben.

Rückgabecode Beschreibung
RPC_S_CALLPENDING
Der Aufruf steht noch aus und wurde vom Client noch nicht abgebrochen.
RPC_E_CALL_CANCELED
Der Aufruf wurde vom Client abgebrochen.

Hinweise

Serverobjekte sollten CoTestCancel mindestens einmal aufrufen, bevor sie zurückkehren, um Clientabbruchanforderungen zu erkennen. Dies kann dem Server unnötige Arbeit ersparen, wenn der Client eine Abbruchanforderung ausgestellt hat, und die Wartezeit des Clients kann reduziert werden, wenn er das Abbruchtimeout als RPC_C_CANCEL_INFINITE_TIMEOUT festgelegt hat. Wenn das Serverobjekt außerdem eine Abbruchanforderung erkennt, bevor es von einem ausstehenden Aufruf zurückgibt, kann es arbeitsspeicher- oder gemarshallte Schnittstellen sauber oder verarbeitet, die erstellt oder abgerufen wurden.

CoTestCancel ruft CoGetCallContext auf, um die ICancelMethodCalls-Schnittstelle für das aktuelle Cancel-Objekt abzurufen, und ruft dann ICancelMethodCalls::TestCancel auf. Objekte, die benutzerdefiniertes Marshalling implementieren, sollten zunächst CoSwitchCallContext aufrufen, um das entsprechende Aufrufkontextobjekt zu installieren.

Mit dieser Funktion wird der Abbruch für asynchrone Aufrufe nicht getestet.

Anforderungen

Anforderung Wert
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

Weitere Informationen

ICancelMethodCalls