CoTestCancel 函数 (combaseapi.h)

确定客户端是否已取消在服务器上执行的调用。

语法

HRESULT CoTestCancel();

返回值

此函数可以返回标准返回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。

返回代码 说明
RPC_S_CALLPENDING
调用仍处于挂起状态,客户端尚未取消。
RPC_E_CALL_CANCELED
客户端已取消调用。

注解

服务器对象在返回以检测客户端取消请求之前应至少调用 CoTestCancel 一次。 如果客户端发出了取消请求,则这样做可以节省服务器不必要的工作;如果客户端已将取消超时设置为RPC_C_CANCEL_INFINITE_TIMEOUT,则它可以缩短客户端的等待时间。 此外,如果服务器对象在从挂起的调用返回之前检测到取消请求,它可以清理任何内存、封送接口或处理它已创建或获取的处理。

CoTestCancel 调用 CoGetCallContext 以获取当前取消对象上的 ICancelMethodCalls 接口,然后调用 ICancelMethodCalls::TestCancel。 实现自定义封送处理的对象应首先调用 CoSwitchCallContext 来安装相应的调用上下文对象。

此函数不会测试异步调用的取消。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 combaseapi.h (包括 Objbase.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

ICancelMethodCalls