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


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

Запрашивает отмену исходящего вызова метода DCOM, ожидающего выполнения в указанном потоке.

Синтаксис

HRESULT CoCancelCall(
  [in] DWORD dwThreadId,
  [in] ULONG ulTimeout
);

Параметры

[in] dwThreadId

Идентификатор потока, в котором должен быть отменен ожидающий вызов DCOM. Если этот параметр равен 0, вызов выполняется в текущем потоке.

[in] ulTimeout

Количество секунд, в течение которых CoCancelCall ожидает завершения исходящего вызова сервером после отмены запроса клиента.

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

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

Код возврата Описание
S_OK
Запрос на отмену был сделан.
E_NOINTERFACE
Объект cancel, соответствующий указанному потоку, отсутствует.
CO_E_CANCEL_DISABLED
Отмена вызова не включена в указанном потоке.
RPC_E_CALL_COMPLETE
Вызов был завершен в течение интервала времени ожидания.
RPC_E_CALL_CANCELED
Звонок уже отменен.

Комментарии

CoCancelCall вызывает CoGetCancelObject , а затем ICancelMethodCalls::Cancel в объекте отмены для выполняемого вызова.

Эта функция не находит объекты отмены для асинхронных вызовов.

Сервер объектов может определить, был ли отменен вызов, периодически вызывая CoTestCancel. Если вызов был отменен, сервер объектов должен очистить и вернуть управление клиенту.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header combaseapi.h (включая Objbase.h)
Библиотека Ole32.lib
DLL Ole32.dll

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

CoTestCancel