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


Метод ITTAPI::RegisterCallNotifications (tapi3if.h)

Метод RegisterCallNotifications задает, какие уведомления о новых вызовах будет получать приложение. Приложение должно вызывать метод для каждого адреса, указывая тип носителя или типы, которые оно может обрабатывать, а также указывая запрашивающие привилегии.

Приложению, которое будет выполнять только исходящие вызовы, не нужно вызывать этот метод.

Исходящий интерфейс ITTAPIEventNotification должен быть зарегистрирован перед вызовом этого метода.

Если для адреса требуются права владельца и монитора, этот метод следует вызывать только один раз, при этом для fMonitor и fOwner задано значение TRUE.

Синтаксис

HRESULT RegisterCallNotifications(
  [in]  ITAddress    *pAddress,
  [in]  VARIANT_BOOL fMonitor,
  [in]  VARIANT_BOOL fOwner,
  [in]  long         lMediaTypes,
  [in]  long         lCallbackInstance,
  [out] long         *plRegister
);

Параметры

[in] pAddress

Указатель на интерфейс ITAddress .

[in] fMonitor

Логическое значение, указывающее, будет ли приложение отслеживать вызовы. VARIANT_TRUE указывает, что приложение будет отслеживать вызовы; VARIANT_FALSE, что это не будет.

[in] fOwner

Логическое значение, указывающее, будет ли приложение владеть входящими вызовами. VARIANT_TRUE указывает, что приложение будет владеть входящими вызовами; VARIANT_FALSE указывает, что это не так.

[in] lMediaTypes

Типы мультимедиа , которые могут обрабатываться приложением.

[in] lCallbackInstance

Экземпляр обратного вызова, используемый библиотекой DLL TAPI 3. Может быть значением gulAdvise, возвращаемым IConnectionPoint::Advise при регистрации исходящего интерфейса ITTAPIEventNotification .

[out] plRegister

При успешном выполнении возвращается значение, используемое ITTAPI::UnregisterNotifications.

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

Этот метод может возвращать одно из этих значений.

Код возврата Описание
S_OK
Метод успешно выполнен.
E_POINTER
Параметр plRegister не является допустимым указателем.
TAPI_E_NOT_INITIALIZED
Объект TAPI не инициализирован.
E_OUTOFMEMORY
Для выполнения операции недостаточно памяти.

Комментарии

Если по одному адресу используется несколько вызовов этого метода, сведения о вызовах участников из концентратора вызовов могут запутать, если ему передается вызов, который уже отслеживается приложением.

Метод RegisterCallNotifications регистрирует приложение как заинтересованное в мониторинге вызовов или получение прав собственности на вызовы, которые относятся к указанным типам носителей. Эти привилегии вызова задаются в параметрах fMonitor и fOwner . Приложение может указать несколько флагов для обработки нескольких типов мультимедиа. Конфликты могут возникнуть, если несколько приложений регистрируются для одного и того же адреса и типа носителя. Эти конфликты разрешаются схемой приоритета, в которой пользователь назначает приложениям относительные приоритеты. Пользователи могут задавать приоритеты приложений, вызывая функцию ITTAPI::SetApplicationPriority . Только приложение с наивысшим приоритетом для данного типа мультимедиа получит право владения (незапрашиваемого) вызова этого типа мультимедиа. Владение может быть получено при первом поступлении входящего звонка или при отправке звонка. Функции ITBasicCallControl::HandoffDirect и ITBasicCallControl::HandoffIndirect вызываются для передачи права владения вызовом другому приложению. Если пользователь не назначает приоритеты приложению и несколько приложений открывают одно и то же линейное устройство, по умолчанию приложение, которое сначала назвало RegisterCallNotifications , будет иметь наивысший приоритет.

Требования

Требование Значение
Целевая платформа Windows
Header tapi3if.h (включая Tapi3.h)
Библиотека Uuid.lib
DLL Tapi3.dll

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

Общие сведения о событиях

ITCallNotificationEvent

ITTAPI

ITTAPIEventNotification

Фрагмент кода регистрации событий

Объект TAPI