【发布时间】:2010-02-08 14:15:35
【问题描述】:
我有一个在 32 位操作系统(XP、Vista、Win7)上运行的 TAPI 应用程序(Delphi 2007)。 TAPI 服务器是 32 位 Windows 2003 SP2。
当 TAPI APP 在 64 位操作系统上运行时,我可以连接到线路,但我无法在我的应用程序上获取 TAPI 消息。
我可以通过 Tracing tapisrv 看到消息已到达机器上,但事件句柄(由 lineInitializeEx 返回)的 WaitForSingleObjectEx 从未发出信号(总是返回 WAIT_TIMEOUT)。
我也尝试过 C++ 代码和 64 位编译器,但 64 位应用程序具有相同的行为(除了甚至没有在 32 位操作系统上启动 :-))。
我有什么想法可以将 TAPI 消息接收到我的应用程序吗???
编辑:嗯,似乎只有关于来电的消息被切断了。如果(在应用程序运行时)我执行“tcmsetup /c /d”(=禁用 TAPI)然后我会收到 LINE_CLOSE 和 LINE_REMOVE 消息。然后,如果我执行“tcmsetup /c server_name”,我会收到 LINE_CREATE 消息。我可以 lineOpen 提供的新行但仍然无法获取 LINE_APPNEWCALL、LINE_CALLSTATE 等
【问题讨论】:
-
必须是 64 位应用程序吗?
-
你的意思是???我用 delphi 构建(还没有 64 位编译器)并且没有在 64 位操作系统上运行。我在 VS2005 上尝试了测试代码,并构建为 32 位和 64 位。两者都不适用于 64 位操作系统。连接到线路但无法接收消息。 WaitForSingleObjectEx 仍然没有信号...