CoTestCancel 函式 (combaseapi.h)
判斷用戶端是否已取消伺服器上執行的呼叫。
Syntax
HRESULT CoTestCancel();
傳回值
此函式可以傳回標準傳回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及下列值。
傳回碼 | Description |
---|---|
|
呼叫仍然擱置中,用戶端尚未取消。 |
|
用戶端已取消呼叫。 |
備註
伺服器對象應該至少呼叫 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 |