CoDisableCallCancellation 函式 (combaseapi.h)
復原 對 CoEnableCallCancellation的呼叫動作。 當對CoEnableCallCancellation 的所有呼叫都由對 CoDisableCallCancellation的呼叫進行平衡時,停用呼叫執行緒上的同步呼叫取消。
語法
HRESULT CoDisableCallCancellation(
[in, optional] LPVOID pReserved
);
參數
[in, optional] pReserved
此參數是保留的,而且必須是 Null。
傳回值
此函式可以傳回標準傳回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及下列值。
傳回碼 | 描述 |
---|---|
|
線上程上已成功停用呼叫取消。 |
|
執行緒上對 CoEnableCallCancellation 的呼叫比對 CoDisableCallCancellation的呼叫更成功。 執行緒上仍會啟用取消。 |
備註
線上程上啟用呼叫取消時,將來自該執行緒的同步呼叫封送處理到同一部電腦上的物件可能會發生嚴重的效能降低。 根據預設,即使有 cancel 物件可用,仍無法取消同步呼叫。 若要啟用通話取消,您必須先呼叫 CoEnableCallCancellation 。
停用呼叫取消時,嘗試取得呼叫物件的指標將會失敗。 如果呼叫執行緒已經有呼叫物件的指標,該物件的呼叫將會失敗。
除非您想要隨時線上程上啟用呼叫取消,否則您應該將呼叫配對至 CoEnableCallCancellation 與 對 CoDisableCallCancellation 的呼叫。 只有在成功呼叫 CoEnableCallCancellation 時,才會停用通話取消,方法是成功呼叫 CoDisableCallCancellation。
呼叫將會取消或無法根據進行呼叫時執行緒的狀態而定。 後續啟用或停用呼叫取消不會影響執行緒上擱置的任何呼叫。
如果執行緒未初始化,然後透過對 CoUninitialize 和 CoInitialize的呼叫重新初始化,即使執行緒未初始化時,仍會線上程上停用呼叫取消。
規格需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | combaseapi.h (包含 Objbase.h) |
程式庫 | Ole32.lib |
Dll | Ole32.dll |