Функция CoSetCancelObject (combaseapi.h)
Задает (регистрирует) или сбрасывает (отменяет регистрацию) объект отмены для использования во время последующих операций отмены в текущем потоке.
Синтаксис
HRESULT CoSetCancelObject(
[in, optional] IUnknown *pUnk
);
Параметры
[in, optional] pUnk
Указатель на интерфейс IUnknown в объекте cancel, который необходимо задать или сбросить в текущем потоке. Если этот параметр имеет значение NULL, самый верхний объект отмены сбрасывается.
Возвращаемое значение
Эта функция может возвращать стандартные возвращаемые значения E_FAIL, E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.
Код возврата | Описание |
---|---|
|
Объект отмены успешно задан или сброшен. |
|
Объект cancel не может быть установлен или сброшен в настоящее время из-за блокировки операций отмены. |
Комментарии
Для объектов, поддерживающих стандартное маршалирование, прокси-объект начинает маршалировать вызов метода путем вызова CoSetCancelObject для регистрации объекта отмены для текущего потока.
CoSetCancelObject вызывает QueryInterface для ICancelMethodCalls в объекте cancel. Если объект cancel не реализует ICancelMethodCalls, CoSetCancelObject завершается сбоем с E_NOINTERFACE. Чтобы отключить операции отмены в пользовательском интерфейсе, реализация ICancelMethodCalls::Cancel не должна выполнять никаких действий, кроме возврата E_NOTIMPL, E_FAIL или другого соответствующего значения.
CoSetCancelObject вызывает AddRef для объектов, которые он регистрирует, и Release для объектов, которые он отменяет регистрацию.
CoSetCancelObject не устанавливает и не сбрасывает объекты отмены для асинхронных методов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |