Метод IMessageFilter::HandleInComingCall (objidl.h)
Предоставляет единую точку входа для входящих вызовов.
Этот метод вызывается перед каждым вызовом метода, исходящим за пределами текущего процесса, и предоставляет возможность фильтровать или отклонять входящие вызовы (или обратные вызовы) к объекту или процессу.
Синтаксис
DWORD HandleInComingCall(
[in] DWORD dwCallType,
[in] HTASK htaskCaller,
[in] DWORD dwTickCount,
[in] LPINTERFACEINFO lpInterfaceInfo
);
Параметры
[in] dwCallType
Тип полученного входящего вызова. Возможные значения из перечисления CALLTYPE.
[in] htaskCaller
Идентификатор потока вызывающего объекта.
[in] dwTickCount
Число тактов, затраченных с момента исходящего вызова, если параметр dwCallType не CALLTYPE_TOPLEVEL. Если параметр dwCallType имеет значение CALLTYPE_TOPLEVEL, параметр dwTickCount следует игнорировать.
[in] lpInterfaceInfo
Указатель на структуру INTERFACEINFO , которая определяет вызываемый объект, интерфейс и метод. В случае вызовов DDE lpInterfaceInfo может иметь значение NULL , так как уровень DDE не возвращает сведения об интерфейсе.
Возвращаемое значение
Этот метод может возвращать следующие значения.
Код возврата | Описание |
---|---|
|
Приложение может обработать вызов. |
|
Приложение не может обработать вызов из-за непредвиденных проблем, таких как недоступность сети, или если он находится в процессе завершения. |
|
Приложение не может обработать вызов в настоящее время. Приложение может возвращать это значение, если оно находится в модальном состоянии, управляемом пользователем. |
Комментарии
Если он реализован, метод HandleInComingCall вызывается com при получении входящего COM-сообщения.
В зависимости от текущего состояния приложения вызов принимается, обрабатывается или отклоняется (постоянно или временно). Если возвращается SERVERCALL_ISHANDLED, приложение может обработать вызов, хотя успех зависит от интерфейса, для которого предназначен вызов. Если вызов не может быть обработан, COM возвращает RPC_E_CALL_REJECTED.
Синхронизированные с вводом и асинхронные вызовы отправляются, даже если приложение возвращает SERVERCALL_REJECTED или SERVERCALL_RETRYLATER.
HandleInComingCall не следует использовать для удержания обновлений объектов во время таких операций, как полосовая печать. Для этого используйте IViewObject::Freeze.
Вы также можете использовать HandleInComingCall для настройки состояния приложения, чтобы вызов можно было обработать в будущем.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | objidl.h |