ITLegacyCallMediaControl2::GatherDigits 方法 (tapi3if.h)

GatherDigits 方法在指定调用中启动数字的收集。 应用程序指定要收集的最大位数。

语法

HRESULT GatherDigits(
  [in] TAPI_DIGITMODE DigitMode,
  [in] long           lNumDigits,
  [in] BSTR           pTerminationDigits,
  [in] long           lFirstDigitTimeout,
  [in] long           lInterDigitTimeout
);

参数

[in] DigitMode

要监视的数字模式 () 。 此参数指定一个或多个 LINEDIGITMODE 常量。

[in] lNumDigits

要收集的位数。

如果此参数为零,则 方法将取消正在进行的任何数字收集,而不会开始新的数字收集尝试。 有关更多信息,请参见下面的“备注”部分。

[in] pTerminationDigits

指向终止数字的 BSTR 表示形式的指针。 如果检测到字符串中的终止数字之一,则会将该数字追加到缓冲区,数字集合将终止, 并将TE_GATHERDIGITS 事件发送到应用程序。

[in] lFirstDigitTimeout

预计第一个数字的时间长度(以毫秒为单位)。 如果在此时间范围内未收到第一个数字,则会中止数字集合,并将 TE_GATHERDIGITS 事件发送到应用程序。 缓冲区仅包含 NULL 字符,指示未收到任何数字,并且第一个数字超时终止了数字收集。 可以在AC_GATHERDIGITSMINTIMEOUT和AC_GATHERDIGITSMAXTIMEOUT功能中找到可以指定的最小和最大超时。

[in] lInterDigitTimeout

连续数字之间的最长时间(以毫秒为单位)。 如果在此时间范围内未收到下一位数字,则会中止数字集合,并将 TE_GATHERDIGITS 事件发送到应用程序。 缓冲区仅包含收集到此点的数字,后跟 NULL 字符,指示跨数字超时终止了数字收集。 可以在AC_GATHERDIGITSMINTIMEOUT和AC_GATHERDIGITSMAXTIMEOUT功能中找到可以指定的最小和最大超时。

返回值

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

返回代码 说明
S_OK
方法成功。
E_POINTER
pTerminationDigits 参数不是有效的指针。
E_OUTOFMEMORY
没有足够的内存来分配收集数字缓冲区。
TAPI_E_INVALCALLSTATE
调用必须处于 连接 状态。

注解

GatherDigits 方法转换为对 TAPI 2 的调用。xlineGatherDigits 函数。

一次调用中只能有一个 GatherDigits 调用未完成。 如果再次调用 GatherDigits ,则 TE_GATHERDIGITS 事件发生之前,第二次调用将取消以前的数字收集。 已取消的数字收集尝试发送 TE_GATHERDIGITS 事件,其中包含到目前为止收集的数字。

要求

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

另请参阅

ITLegacyCallMediaControl2