CoSetCancelObject 函数 (combaseapi.h)

设置 (注册) 或重置 (注销) 取消对象,以便在当前线程的后续取消操作期间使用。

语法

HRESULT CoSetCancelObject(
  [in, optional] IUnknown *pUnk
);

参数

[in, optional] pUnk

指向在当前线程上设置或重置的取消对象上的 IUnknown 接口的指针。 如果此参数为 NULL,则重置最上面的取消对象。

返回值

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

返回代码 说明
S_OK
已成功设置或重置取消对象。
E_ACCESSDENIED
由于取消操作出现阻塞,此时无法设置或重置取消对象。

注解

对于支持标准封送处理的对象,代理对象通过调用 CoSetCancelObject 来为当前线程注册取消对象,开始封送方法调用。

CoSetCancelObject 在 cancel 对象上调用 QueryInterface for ICancelMethodCalls 。 如果 cancel 对象未实现 ICancelMethodCalls,CoSetCancelObject 将失败并E_NOINTERFACE。 若要在自定义封送接口上禁用取消操作, ICancelMethodCalls::Cancel 的实现不应返回E_NOTIMPL、E_FAIL或其他一些适当的值。

CoSetCancelObject 对它注册的对象调用 AddRef ,并针对其取消注册的对象调用 Release

CoSetCancelObject 不会为异步方法设置或重置取消对象。

要求

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

另请参阅

ICancelMethodCalls