WinAPPCCancelBlockingCall 函式會取消其執行緒中任何未完成的阻塞操作。 任何未完成的阻斷通話被取消,都會產生 WAPPCCANCEL 錯誤代碼。
語法
BOOL WINAPI WinAPPCCancelBlockingCall(
void
);
傳回值
回傳值則指定取消請求是否成功。 如果值為零,則請求被取消。 否則,該值為:
瓦普辛瓦爾德
錯誤代碼表示沒有未完成的阻斷電話。
備註
若未解決的動詞與對話相關(例如 SEND_DATA 或 RECEIVE_AND_WAIT),該動詞會被清除,會話結束。 若動詞與 TP 相關(例如 RECEIVE_ALLOCATE 或 TP_STARTED),TP 結束。 在這兩種情況下,雖然實作會盡可能乾淨地下架對話和會話,但不會清除傳送緩衝區、等待確認等操作。 此呼叫是同步的,上述處理完成後,函式即告完成。
在 Microsoft Windows 中,多執行緒應用程式可以有多個阻斷操作未完成,但每個執行緒只能有一次。 為了區分多個未完成的呼叫, WinAPPCCancelBlockingCall 會取消目前呼叫執行緒(若有)執行緒上的未完成操作;否則,它就會失敗。 預設情況下,Windows APPC 會在執行任務未完成時暫停呼叫的應用程式執行緒。 因此,啟動阻塞操作的執行緒將無法重新取得控制權(因此,除非使用 WinAPPCSetBlockingHook 為該執行緒註冊阻擋鉤子,否則無法呼叫 WinAPPCCancelBlockingCall)。