荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: scanf (carefully), 信区: Visual
标  题: [zz]电话程序设计接口(TAPI)漫谈
发信站: 荔园晨风BBS站 (Wed Oct 29 22:24:20 2003), 站内信件

电话程序设计接口(TAPI)技术漫谈

 ---- 微 软 视 窗 电 话 应 用 程 序 设 计 接 口(TAPI) 为 应 用 程 序
 提 供 了 一 套 支 持 电 话 通 讯 的 方 法。 这 对 于 那 些 想 追 赶 技
 术 潮 流、 并 想 把 自 己 的 应 用 程 序 联 机 的 人 来 说 无 疑 是 非
 常 重 要 的。 本 文 将 简 单 地 描 述 一 下 什 么 是TAPI、 应 用 程 序
 是 如 何 与TAPI 打 交 道 的、 一 些 电 话 基 本 知 识 以 及 关 于 创 建
 电 话 应 用 程 序 的 帮 助 工 具 和 信 息。

一、 什 么 是TAPI

TAPI 是 一 种 应 用 程 序 设 计 接 口, 用 来 通 过 电 话 进 行 通 讯。
TAPI 设 备 所 具 有 的 一 些 功 能 是: 直 接 与 电 话 机 相 连、 自 动
 电 话 拨 号、 数 据( 包 括 文 件、 传 真 和 电 子 邮 件) 传 输、 数
据 访 问( 新 闻、 消 息 机 构)、 会 议 呼 叫、 声 音 邮 件、 拨 号 鉴
 定、 远 程 计 算 机 控 制 以 及 通 过 电 话 线 进 行 合 作 等。---- 如
 图1 所 示,Windows 95 附 带 电 话 应 用 程 序DIALER.EXE, 用 它 可 以
拨 打 电 话、 设 置 拨 号 属 性、 进 行 快 捷 拨 号 和 建 立 连 接。 拨
 号 应 用 程 序 允 许 用 户 通 过 使 用 图2 中 显 示 的 对 话 框 来 设
置 拨 号 属 性。


图1 拨 号 应 用 程 序 对 话 框

图 2 拨 号 属 性 对 话 框
TAPI 独 立 操 作 下 一 级 的 电 话 网 络 和 设 备。 一 个 使 用 了TAPI
的 应 用 程 序 不 用 担 心 它 连 接 在 什 么 上, 而 只 需 要 自 己 与
应 用 程 序 接 口 之 间 的 交 互。 图3 说 明 了 应 用 程 序、TAPI 和 电
 话 提 供 设 备 之 间 的 关 系。
---- 从 图3 看 出, 应 用 程 序 通 过TAPI 与 电 话 运 态 链 接 库 进 行
 交 互。 电 话 动 态 链 接 库 是Windows 操 作 系 统 的 一 部 分 并 且 支
 持TAPI, 它 通 过 电 话 服 务 提 供 接 口(TSPI) 与 服 务 提 供 者 相
 联 系。 服 务 提 供 者 可 以 被 看 作 类 似 打 印 机 驱 动 程 序, 它
们 应 该 由 电 话 硬 件 销 售 商 编 写 并 提 供 给 用 户, 以 支 持 其
在Windows 下 运 行。

二、 一 些 技 术 上 的 问 题

    在 开 发 一 个 包 括TAPI 功 能 的 应 用 程 序 时, 为 了 避 免 一 些
 不
必 要 的 陷 阱, 应 该 明 白TAPI 是 如 何 工 作 的。

---- 1.TAPI 和 被 隐 藏 的 窗 口
     要 让 应 用 程 序 支 持TAPI, 首 先 应 用 程 序 必 须 通 过 使
用LineInitialize 函 数 来 初 始 化TAPI。 当 应 用 程 序 调 用 了 这 个
函 数
时, 电 话 动 态 链 接 库 就 产 生 一 个 隐 含 的 窗 口 来 代 表 该 应
用 程
序。 这 个 隐 含 的 窗 口 被 用 作 一 种 传 送 通 告 和 消 息 的 方 法,
 其
中 登 记 着 分 别 为 不 同 异 常 事 件 完 成 的 通 告 和 状 态 消 息(
是 否
电 话 线 已 经 连 上、 执 行、 拨 号 等)。 如 果 应 用 程 序 是 多 线
程 的,
则 需 要 保 证 在 调 用LineInitialize 的 一 个 线 程 时 有 一 个 消 息
循 环,
并 且 线 程 服 务 于 这 个 消 息 循 环。 如 果 这 个 线 程 不 为 这 个
消 息
循 环 服 务 或 者 它 没 有 消 息 循 环, 那 么 应 用 程 序 将 得 不 到
给 它
的 消 息, 当 然 就 不 能 运 行 了。
---- 2. 服 务 器 提 供 指 令 结 构
     当 调 用 需 要 填 充 结 构 的TAPI 时, 需 要 检 查 这 个 结 构 所
需 的
空 间, 并 且 重 新 分 配 内 存 直 到 有 足 够 大 的 内 存 空 间 去 装

它。 这 样 做 是 因 为 每 一 个 服 务 器 提 供 者( 如 打 印 机 驱 动 程
 序)
都 支 持 不 同 功 能、 拥 有 不 同 数 量 的 消 息 数 据。 如 果 给 一 个
 不
够 大 的 结 构 传 递 一 个 指 针, 并 且 不 敢 保 证 已 经 分 配 了 足
够 大
的 内 存 空 间( 通 告dwTotalSize 检 查dwNeededSize, 返 回 的 是 结 构
 数),
这 个 结 构 将 被 填 满0, 应 用 程 序 同 样 不 能 运 行。
---- 3. 开 发 工 具
       Win32 软 件 开 发 包 所 带 的 一 些 工 具 也 可 帮
助 开 发 者 理 解TAPI, 并 把TAPI 功 能 融 进 一 个 应 用 程 序。TB14.
EXE
是 一 个32 位 的 电 话 程 序 浏 览 器, 它 允 许 使 用 不 同 的TAPI 调

和COM 接 口, 可 以 用 来 测 试COM 接 口 和 调 制 解 调 器 是 否 安 装
得 正
确。 通 过TB14.EXE 能 看 见 不 同 的TAPI 结 构 如 何 使 自 己 填 满, 这
 将
有 助 于 确 定 程 序 是 否 在 正 确 调 用 不 同 的TAPI 函 数。
     另 一 个 工 具 是 服 务 提 供 者 工 具ESPEXE.EXE, 这 个 工 具 支
持 多
实 效 线 路 和 电 话 设 备。 可 以 为 应 用 程 序 培 植 它, 它 不 需 要
 任
何 特 殊 的 硬 件, 并 且 支 持 整 个 电 话 服 务 提 供 者 接 口( 包 括

Windows 95 TAPI 扩 展)。 可 以 在 使 用 了TAPI 1.0 的Windows 3.1 中 和
 使
用 了TAPI 1.1 的Windows 95 中 使 用 这 个 工 具。

三、TAPICOMM 实 例

    分 解MSDN 库 的 实 例 编 码 树, 会 发 现TAPICOMM 实 例。 这 个 实
例 说 明
了 如 何 通 告 一 个 电 话 做 数 据 传 送。
    如 果 看 一 下 这 个 实 例 的 源 代 码, 能 学 会 怎 样 调 用 基 本
 的
电 话 函 数, 如 初 始 化TAPI、 使 用 一 根 电 话 线、 收 集 线 设 备 能
 力、
通 告COMM( 通 讯) 应 用 程 序 接 口 传 送 数 据 以 及 关 闭 线 路 和
关 闭
TAPI 等。



--

→我:(打劫内裤,快脱,不然,老子毙了你!)
看  ●    ○   ╮╮     看
↓  █┳  ┗█┛  \█/ 我倒!~~↓
面  ┏┓   ┛┗   ●     面
→你:(大哥,我今天没穿啊,不要~不要啊!)

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.36.110]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店