Функция CoTestCancel (combaseapi.h)
Определяет, был ли вызов, выполняемый на сервере, отменен клиентом.
Синтаксис
HRESULT CoTestCancel();
Возвращаемое значение
Эта функция может возвращать стандартные возвращаемые значения E_FAIL, E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.
Код возврата | Описание |
---|---|
|
Вызов по-прежнему находится в ожидании и еще не отменен клиентом. |
|
Вызов был отменен клиентом. |
Комментарии
Объекты сервера должны вызывать CoTestCancel по крайней мере один раз перед возвратом для обнаружения запросов на отмену клиента. Это может сохранить ненужные работы сервера, если клиент выдал запрос на отмену, и сократить время ожидания клиента, если он установил время ожидания отмены как RPC_C_CANCEL_INFINITE_TIMEOUT. Кроме того, если объект сервера обнаруживает запрос на отмену перед возвратом из ожидающего вызова, он может очистить любую память, маршалированные интерфейсы или обработчики, созданные или полученные.
CoTestCancel вызывает CoGetCallContext для получения интерфейса ICancelMethodCalls в текущем объекте cancel, а затем вызывает метод ICancelMethodCalls::TestCancel. Объекты, реализующие настраиваемую маршалинг, должны сначала вызвать CoSwitchCallContext для установки соответствующего объекта контекста вызова.
Эта функция не проверяет отмену для асинхронных вызовов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |