itTAPI::RegisterCallNotifications 方法 (tapi3if.h)

RegisterCallNotifications 方法设置应用程序将接收哪些新呼叫通知。 应用程序必须为每个地址调用 方法,指示它可以处理的媒体类型,并指定它请求的权限。

仅发出传出调用的应用程序不需要调用此方法。

在调用此方法之前,必须注册 ITTAPIEventNotification 传出接口。

如果某个地址需要所有者和监视器权限,则此方法应只调用一次, 同时将 fMonitorfOwner 设置为 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

TAPI 3 DLL 要使用的回调实例。 可以是 IConnectionPoint::Advise 在注册 ITTAPIEventNotification 传出接口期间返回的 gulAdvise 值。

[out] plRegister

成功时,返回 由 ITTAPI::UnregisterNotifications 使用的值。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK
方法成功。
E_POINTER
plRegister 参数不是有效的指针。
TAPI_E_NOT_INITIALIZED
TAPI 对象尚未初始化。
E_OUTOFMEMORY
内存不足,无法执行操作。

注解

如果在一个地址上使用此方法的多个调用,则如果应用程序已监视的呼叫传给呼叫中心,则来自呼叫中心的参与者呼叫的信息可能会令人困惑。

RegisterCallNotifications 方法将应用程序注册为对监视指定媒体类型的调用或接收调用的所有权感兴趣。 这些调用特权在 fMonitorfOwner 参数中设置。 应用程序可以指定多个标志来处理多个媒体类型。 如果多个应用程序注册相同的地址和媒体类型,则可能会出现冲突。 这些冲突通过用户向应用程序分配相对优先级的优先级方案解决。 用户可以通过调用 ITTAPI::SetApplicationPriority 函数来设置应用程序优先级。 只有给定媒体类型的最高优先级应用程序才会获得所有权 (未经请求) 该媒体类型的调用。 当传入呼叫首次到达或呼叫转移时,可以接收所有权。 调用 ITBasicCallControl::HandoffDirectITBasicCallControl::HandoffIndirect 函数将调用的所有权移交给另一个应用程序。 如果用户未向应用程序分配优先级,并且多个应用程序打开同一行设备,则默认情况下,首先调用 RegisterCallNotifications 的应用程序 将具有最高优先级。

要求

要求
目标平台 Windows
标头 tapi3if.h (包括 Tapi3.h)
Library Uuid.lib
DLL Tapi3.dll

另请参阅

事件概述

ITCallNotificationEvent

ITTAPI

ITTAPIEventNotification

注册事件代码片段

TAPI 对象