CoSetCancelObject 函数 (combaseapi.h)
设置 (注册) 或重置 (注销) 取消对象,以便在当前线程的后续取消操作期间使用。
语法
HRESULT CoSetCancelObject(
[in, optional] IUnknown *pUnk
);
参数
[in, optional] pUnk
指向在当前线程上设置或重置的取消对象上的 IUnknown 接口的指针。 如果此参数为 NULL,则重置最上面的取消对象。
返回值
此函数可以返回标准返回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。
返回代码 | 说明 |
---|---|
|
已成功设置或重置取消对象。 |
|
由于取消操作出现阻塞,此时无法设置或重置取消对象。 |
注解
对于支持标准封送处理的对象,代理对象通过调用 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 |