Метод IMessageFilter::RetryRejectedCall (objidl.h)
Предоставляет приложениям возможность отобразить диалоговое окно с вариантами повтора, отмены или переключения задач.
Синтаксис
DWORD RetryRejectedCall(
[in] HTASK htaskCallee,
[in] DWORD dwTickCount,
[in] DWORD dwRejectType
);
Параметры
[in] htaskCallee
Идентификатор потока вызываемого приложения.
[in] dwTickCount
Количество затраченных тактов с момента вызова.
[in] dwRejectType
Указывает SERVERCALL_REJECTED или SERVERCALL_RETRYLATER, возвращаемые приложением объекта.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Возвращаемое значение | Описание |
---|---|
|
Вызов должен быть отменен. Затем COM возвращает RPC_E_CALL_REJECTED из исходного вызова метода. |
|
Вызов должен быть немедленно повторен. |
|
COM будет ожидать этого количества миллисекунд, а затем повторить вызов. |
Комментарии
COM вызывает RetryRejectedCall в интерфейсе IMessageFilter вызывающего объекта сразу после получения SERVERCALL_RETRYLATER или SERVERCALL_REJECTED из метода IMessageFilter::HandleInComingCall в интерфейсе IMessageFilter вызываемого объекта.
Если вызываемая задача отклоняет вызов, приложение, вероятно, находится в состоянии, когда оно не может обрабатывать такие вызовы, возможно, только временно. В этом случае COM возвращается к вызывающему объекту и выдает команду RetryRejectedCall , чтобы определить, следует ли повторить отклоненный вызов.
Приложения должны автоматически повторять вызовы, возвращенные с SERVERCALL_RETRYLATER. Если по истечении разумного количества времени, скажем, около 30 секунд, приложение должно отобразить диалоговое окно занято. Стандартная реализация этого диалогового окна доступна в библиотеке OLEDLG. Вызываемый объект может на мгновение находиться в состоянии обработки вызовов. Возможность ожидания и повторных попыток предоставляется для специальных типов вызывающих приложений, таких как фоновые задачи, выполняющие макросы или скрипты, чтобы они могли повторять вызовы неинструктивным способом.
Если после отображения диалогового окна пользователь выбирает отмену, RetryRejectedCall возвращает значение -1, и вызов завершится ошибкой с RPC_E_CALL_REJECTED.
Если клиент реализует IMessageFilter и вызывает метод сервера на удаленном компьютере, метод RetryRejectedCall вызываться не будет.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objidl.h |