共用方式為


CoTestCancel 函式 (combaseapi.h)

判斷用戶端是否已取消伺服器上執行的呼叫。

Syntax

HRESULT CoTestCancel();

傳回值

此函式可以傳回標準傳回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及下列值。

傳回碼 Description
RPC_S_CALLPENDING
呼叫仍然擱置中,用戶端尚未取消。
RPC_E_CALL_CANCELED
用戶端已取消呼叫。

備註

伺服器對象應該至少呼叫 CoTestCancel 一次,再返回以偵測用戶端取消要求。 這麼做可以儲存用戶端發出取消要求時伺服器不必要的工作,如果用戶端已將取消逾時設定為RPC_C_CANCEL_INFINITE_TIMEOUT,則可以減少用戶端的等候時間。 此外,如果伺服器物件在從擱置呼叫傳回之前偵測到取消要求,它可以清除任何記憶體、封送處理介面,或處理它已建立或取得。

CoTestCancel 會呼叫 CoGetCallContext ,以取得目前取消物件上的 ICancelMethodCalls 介面,然後呼叫 ICancelMethodCalls::TestCancel。 實作自定義封送處理的對象應該先呼叫 CoSwitchCallContext ,以安裝適當的呼叫內容物件。

此函式不會測試異步呼叫的取消。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 combaseapi.h (包含 Objbase.h)
程式庫 Ole32.lib
Dll Ole32.dll

另請參閱

ICancelMethodCalls