LINEDEVCAPS 结构 (tapi.h)
LINEDEVCAPS 结构描述线路设备的功能。 lineGetDevCaps 函数和TSPI_lineGetDevCaps函数返回 LINEDEVCAPS 结构。
语法
typedef struct linedevcaps_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwProviderInfoSize;
DWORD dwProviderInfoOffset;
DWORD dwSwitchInfoSize;
DWORD dwSwitchInfoOffset;
DWORD dwPermanentLineID;
DWORD dwLineNameSize;
DWORD dwLineNameOffset;
DWORD dwStringFormat;
DWORD dwAddressModes;
DWORD dwNumAddresses;
DWORD dwBearerModes;
DWORD dwMaxRate;
DWORD dwMediaModes;
DWORD dwGenerateToneModes;
DWORD dwGenerateToneMaxNumFreq;
DWORD dwGenerateDigitModes;
DWORD dwMonitorToneMaxNumFreq;
DWORD dwMonitorToneMaxNumEntries;
DWORD dwMonitorDigitModes;
DWORD dwGatherDigitsMinTimeout;
DWORD dwGatherDigitsMaxTimeout;
DWORD dwMedCtlDigitMaxListSize;
DWORD dwMedCtlMediaMaxListSize;
DWORD dwMedCtlToneMaxListSize;
DWORD dwMedCtlCallStateMaxListSize;
DWORD dwDevCapFlags;
DWORD dwMaxNumActiveCalls;
DWORD dwAnswerMode;
DWORD dwRingModes;
DWORD dwLineStates;
DWORD dwUUIAcceptSize;
DWORD dwUUIAnswerSize;
DWORD dwUUIMakeCallSize;
DWORD dwUUIDropSize;
DWORD dwUUISendUserUserInfoSize;
DWORD dwUUICallInfoSize;
LINEDIALPARAMS MinDialParams;
LINEDIALPARAMS MaxDialParams;
LINEDIALPARAMS DefaultDialParams;
DWORD dwNumTerminals;
DWORD dwTerminalCapsSize;
DWORD dwTerminalCapsOffset;
DWORD dwTerminalTextEntrySize;
DWORD dwTerminalTextSize;
DWORD dwTerminalTextOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwLineFeatures;
DWORD dwSettableDevStatus;
DWORD dwDeviceClassesSize;
DWORD dwDeviceClassesOffset;
GUID PermanentLineGuid;
DWORD dwAddressTypes;
GUID ProtocolGuid;
DWORD dwAvailableTracking;
} LINEDEVCAPS, *LPLINEDEVCAPS;
成员
dwTotalSize
分配给此数据结构的总大小(以字节为单位)。
dwNeededSize
此数据结构保存所有返回的信息所需的大小(以字节为单位)。
dwUsedSize
包含有用信息的此数据结构部分的大小(以字节为单位)。
dwProviderInfoSize
包含服务提供程序信息的可变大小字段的大小(以字节为单位)。
dwProviderInfoOffset
从结构的开头偏移到服务提供商信息(以字节为单位)。
dwProviderInfoSize 和 dwProviderInfoOffset 成员旨在提供有关提供程序硬件和软件的信息,例如硬件和软件的供应商名称和版本号。 当用户需要与提供商相关的问题调用客户服务时,此信息非常有用。
dwSwitchInfoSize
包含开关信息的可变大小设备字段的大小(以字节为单位)。
dwSwitchInfoOffset
从结构的开头偏移到开关信息(以字节为单位)。
dwSwitchInfoSize 和 dwSwitchInfoOffset 成员旨在提供有关连接线路设备的开关的信息,例如交换机制造商、型号名称、软件版本等。 当用户需要调用客户服务时,与交换机相关的问题时,此信息非常有用。
dwPermanentLineID
系统配置中已知线路设备的永久标识符。 它是行设备的永久名称。 此永久名称 (而不是 dwDeviceID) 不会更改,因为行在系统中添加或删除,并通过操作系统升级保留。 因此,它可用于链接.ini文件中特定于行的信息, (或其他文件) 的方式不受添加或删除其他行或更改操作系统的影响。
dwLineNameSize
包含此行设备的用户可配置名称的可变大小设备字段的大小(以字节为单位)。
dwLineNameOffset
从此数据结构的开头偏移到此行设备的名称。 配置线路设备的服务提供商时,用户可以配置此名称,并为用户提供方便。 字段的大小由 dwLineNameSize 指定。
dwStringFormat
此行设备中使用的字符串格式。 此成员使用 STRINGFORMAT_常量之一。
dwAddressModes
指定原始地址的模式。 此成员使用 LINEADDRESSMODE_常量。
dwNumAddresses
与此行设备关联的地址数。 各个地址由地址标识符引用。 地址标识符的范围从零到一个小于 dwNumAddresses 指示的值。
dwBearerModes
指示地址能够支持的不同持有者模式的标志数组。 此成员使用一个或多个 LINEBEARERMODE_常量。
dwMaxRate
通过调用交换信息的最大数据速率(以位数/秒为单位)。
dwMediaModes
指示地址能够支持的不同媒体类型的标志数组。 此成员使用一个或多个 LINEMEDIAMODE_常量。
dwGenerateToneModes
可在此行上生成的音调。 此成员使用一个或多个 LINETONEMODE_常量。
dwGenerateToneMaxNumFreq
使用 lineGenerateTone 生成音调时,可以使用 LINEGENERATETONE 数据结构描述常规语调时可以指定的最大频率数。 值为 0 表示音调生成不可用。
dwGenerateDigitModes
数字模式比在此行上可以生成。 此成员使用一个或多个 LINEDIGITMODE_常量。
dwMonitorToneMaxNumFreq
使用 lineMonitorTones 监视常规音调时,可以使用 LINEMONITORTONE 数据结构来描述常规语调时可以指定的最大频率数。 值为 0 表示音调监视器不可用。
dwMonitorToneMaxNumEntries
可在音调列表中指定到 lineMonitorTones 的最大条目数。
dwMonitorDigitModes
与在此行上检测到的数字模式相比。 此成员使用一个或多个 LINEDIGITMODE_常量。
dwGatherDigitsMinTimeout
可以为 lineGatherDigits 使用的第一个数字和位数间超时值指定的最小值(以毫秒为单位)。 如果 dwGatherDigitsMinTimeout 和 dwGatherDigitsMaxTimeout 均为零,则不支持超时。
dwGatherDigitsMaxTimeout
可以为 lineGatherDigits 使用的第一个数字和位数间超时值指定的最大值(以毫秒为单位)。 如果 dwGatherDigitsMinTimeout 和 dwGatherDigitsMaxTimeout 均为零,则不支持超时。
dwMedCtlDigitMaxListSize
可在 lineSetMediaControl 的数字列表参数中指定的最大条目数。
dwMedCtlMediaMaxListSize
可以在 lineSetMediaControl 的媒体列表参数中指定的最大条目数。
dwMedCtlToneMaxListSize
可以在 lineSetMediaControl 的音调列表参数中指定的最大条目数。
dwMedCtlCallStateMaxListSize
可在 lineSetMediaControl 的调用状态列表参数中指定的最大条目数。
dwDevCapFlags
布尔设备功能。 此成员使用一个或多个 LINEDEVCAPFLAGS_常量。
dwMaxNumActiveCalls
(最小带宽) 调用的最大数目,这些调用可以在线路上随时 (连接) 处于活动状态。 如果已在线路上建立更高的带宽调用,则活动呼叫的实际数量可能会更低。
dwAnswerMode
在接听线路设备上的另一个产品/服务呼叫时对活动呼叫的影响。 此成员使用 LINEANSWERMODE_常量之一。
dwRingModes
可以在带响铃指示的LINE_LINEDEVSTATE消息中报告的不同环形模式的数量。 不同的环形模式范围从一个到 dwRingModes。 零表示无环。
dwLineStates
此行上的LINE_LINEDEVSTATE消息中可能会通知应用程序的不同行状态组件。 此成员使用一个或多个 LINEDEVSTATE_常量。
dwUUIAcceptSize
用户信息的最大大小,包括可在呼叫接受期间发送的 null 终止符。
dwUUIAnswerSize
用户信息的最大大小,包括可在呼叫应答期间发送的 null 终止符。
dwUUIMakeCallSize
用户信息的最大大小,包括可在呼叫期间发送的 null 终止符。
dwUUIDropSize
用户信息(包括 null 终止符)的最大大小,可在呼叫删除期间发送。
dwUUISendUserUserInfoSize
使用 lineSendUserUserInfo 调用期间,用户信息的最大大小(包括 null 终止符)可以单独发送。
dwUUICallInfoSize
可在 LINECALLINFO 结构中接收的用户用户信息的最大大小(包括 null 终止符)。
MinDialParams
可在此行上为呼叫设置的拨号参数的最小值(以毫秒为单位)。 拨号参数可以设置为 MinDialParams 到 MaxDialParams 范围内的值。 实际设置的粒度特定于服务提供商。
MaxDialParams
可以为此行上的呼叫设置的拨号参数的最大值(以毫秒为单位)。 拨号参数可以设置为 MinDialParams 到 MaxDialParams 范围内的值。 实际设置的粒度特定于服务提供商。
DefaultDialParams
用于此线路上呼叫的默认拨号参数。 可以按调用重写这些参数值。
dwNumTerminals
可为此线路设备设置的终端数、地址或呼叫数。 各个终端由终端 ID 引用,范围从零到一个小于 dwNumTerminals 指示的值。
dwTerminalCapsSize
包含 行TERMCAPS 类型的条目的数组的可变大小设备字段的大小(以字节为单位)。
dwTerminalCapsOffset
从此结构的开头偏移到包含 LINETERMCAPS 类型的条目的数组的可变大小的设备字段。 此数组由终端 ID 编制索引,范围从零到 dwNumTerminals 减去 1。 数组中的每个条目指定相应终端的终端设备功能。 字段的大小由 dwTerminalCapsSize 指定。
dwTerminalTextEntrySize
每个终端文本说明(包括 null 终止符)的大小(由 dwTerminalTextSize 和 dwTerminalTextOffset 指向)(以字节为单位)。
dwTerminalTextSize
可变大小的字段的大小,包含有关每行可用终端的描述性文本(包括 null 终止符)(以字节为单位)
dwTerminalTextOffset
从此结构的开头偏移到有关每行可用终端的描述性文本(以字节为单位)。 每个消息的 dwTerminalTextEntrySize 字节长。 这些文本说明的字符串格式由行的设备功能中的 dwStringFormat 指示。 字段的大小由 dwTerminalTextSize 指定。
dwDevSpecificSize
可变大小的设备特定字段的大小(以字节为单位)。 如果特定于设备的信息是指向字符串的指针,则大小必须包含 null 终止符。
dwDevSpecificOffset
从此结构的开头偏移到特定于设备的字段(以字节为单位)。 字段的大小由 dwDevSpecificSize 指定。
dwLineFeatures
使用 LINEFEATURE_ 常量可用于此行的功能。 调用受支持的功能需要该行处于适当的状态,并且基础行设备以兼容模式打开。 位位置中的零表示相应的功能永远不可用。 一个指示如果行处于适当的状态以便操作有意义,则相应的功能可能可用。 此成员允许应用程序发现哪些行功能可以 (,并且设备永远无法) 哪些功能。
dwSettableDevStatus
可以使用 lineSetLineDevStatus 修改的 LINEDEVSTATUSFLAGS 值。
dwDeviceClassesSize
包含此行上一个或多个地址支持的设备类标识符(包括 null 终止符)的字符串的大小(以字节为单位)。
dwDeviceClassesOffset
从此结构的开头偏移到包含此行上一个或多个地址支持的设备类标识符的字符串(以字节为单位)。 这些字符串用于 lineGetID;它们用 NULLs 分隔,列表中的最后一个标识符后跟两个 NULLs。 字段的大小由 dwDeviceClassesSize 指定。
PermanentLineGuid
GUID 永久关联到线路设备。
dwAddressTypes
用于呼叫的地址类型。 仅当协商的 TAPI 版本为 3.0 或更高版本时,此结构的成员才可用。
ProtocolGuid
当前 TAPI 协议。 仅当协商的 TAPI 版本为 3.0 或更高版本时,此结构的成员才可用。 协议在 tapi3.h 中声明。
dwAvailableTracking
可用跟踪,由 LINECALLHUBTRACKING.constant 表示。 仅当协商的 TAPI 版本为 3.0 或更高版本时,此结构的成员才可用。
注解
特定于设备的扩展应使用 DevSpecific (dwDevSpecificSize 和 dwDevSpecificOffset) 此数据结构的可变大小区域。
旧应用程序在没有 LINEDEVCAPS 结构中的新成员的情况下进行编译,并使用小于新大小的 SIZEOF LINEDEVCAPS。 应用程序使用 lineGetDevCaps 函数传入 dwAPIVersion 参数,该函数可用于 TAPI 在处理这种情况时的指导。 如果应用程序传入的 dwTotalSize 成员小于指定 dwAPIVersion 中定义的结构固定部分的大小,则返回LINEERR_STRUCTURETOOSMALL。 如果应用程序分配了足够的内存,请在调用 TSPI_lineGetDevCaps之前,TAPI 会将 dwNeededSize 和 dwUsedSize 成员设置为指定 API 版本中存在的结构固定大小。
新应用程序必须能够识别协商的 API 版本,而不是检查已协商 API 版本结构固定部分的原始结尾之外的固定部分中成员的内容。
如果在 dwBearerModes 成员中设置了LINEBEARERMODE_DATA位, 则 dwMaxRate 成员指示持有者通道上数字传输的最大速率。 LINEDEVCAPS 结构的 dwMaxRate 成员可以包含有效值,即使 LINEDEVCAPS 结构的 dwBearerModes 成员未设置为LINEBEARERMODE_DATA。
如果未在 dwBearerModes 中设置LINEBEARERMODE_DATA,但设置LINEBEARERMODE_VOICE值并在 dwMediaModes 成员中设置LINEMEDIAMODE_DATAMODEM值, dwMaxRate 成员表示附加调制解调器或功能等效电话线路上的最大同步 (DCE) 比特率。 例如,如果调制解调器的最快调节速度为 V.32bis,则 14,400bps, dwMaxRate 等于 14400。 这不是最快的 DTE 端口速率 (,最有可能是 38400、57600 或 115200) ,而是调制解调器在电话线上支持的最快比特率。
应用程序必须小心检查是否未设置LINEBEARERMODE_DATA,以避免错误地解释 dwMaxRate 成员。 如果设置了LINEBEARERMODE_DATA,则可能为 64000 或更高版本。
另应指出,如果调制解调器尚未明确标识 (例如,它是“泛型”调制解调器) ,则表示的数字是基于调制解调器的检查的“最佳猜测”。
通过 dwDeviceClassesOffset 的成员 dwSettableDevStatus 仅适用于使用 TAPI 版本为 2.0 或更高版本打开行设备的应用程序。
要求
标头 | tapi.h |