Поделиться через


Функция CoSetCancelObject (combaseapi.h)

Задает (регистрирует) или сбрасывает (отменяет регистрацию) объект отмены для использования во время последующих операций отмены в текущем потоке.

Синтаксис

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

Параметры

[in, optional] pUnk

Указатель на интерфейс IUnknown в объекте cancel, который необходимо задать или сбросить в текущем потоке. Если этот параметр имеет значение NULL, самый верхний объект отмены сбрасывается.

Возвращаемое значение

Эта функция может возвращать стандартные возвращаемые значения E_FAIL, E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.

Код возврата Описание
S_OK
Объект отмены успешно задан или сброшен.
E_ACCESSDENIED
Объект 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

См. также раздел

ICancelMethodCalls