phoneOpen 函数 (tapi.h)

phoneOpen 函数打开指定的手机设备。 可以使用所有者特权或监视特权打开手机设备。 打开具有所有者权限的手机的应用程序可以控制手机的灯、显示器、响铃器和挂钩开关或挂钩开关。 打开具有监视器权限的电话设备的应用程序仅收到有关电话中发生的事件(例如挂钩开关更改或按钮按下)的通知。

手机设备的所有权是独占的。 换句话说,一次只能有一个应用程序使用所有者权限打开手机设备。 但是,可以使用监视器权限多次打开手机设备。

语法

LONG phoneOpen(
  HPHONEAPP hPhoneApp,
  DWORD     dwDeviceID,
  LPHPHONE  lphPhone,
  DWORD     dwAPIVersion,
  DWORD     dwExtVersion,
  DWORD_PTR dwCallbackInstance,
  DWORD     dwPrivilege
);

参数

hPhoneApp

使用 TAPI 处理应用程序的注册。

dwDeviceID

要打开的电话设备的标识符。

lphPhone

指向标识打开的手机设备的 HPHONE 句柄的指针。 使用此句柄在调用其他手机控制功能时标识设备。

dwAPIVersion

应用程序和电话 API 已同意操作的 API 版本号。 此号码是从 phoneNegotiateAPIVersion 获取的。

dwExtVersion

应用程序和服务提供商同意操作的扩展版本号。 如果应用程序不使用任何扩展,则此数字为零。 此号码是从 phoneNegotiateExtVersion 获取的。

dwCallbackInstance

每条消息传回应用程序的用户实例数据。 电话 API 不解释此参数。

dwPrivilege

请求的特权。 此参数使用一个和仅 一个PHONEPRIVILEGE_常量

返回值

如果请求成功,则返回零;如果发生错误,则返回负错误号。 可能的返回值为:

PHONEERR_ALLOCATED、PHONEERR_NODRIVER、PHONEERR_BADDEVICEID、PHONEERR_NOMEM、PHONEERR_INCOMPATIBLEAPIVERSION、PHONEERR_OPERATIONFAILED、PHONEERR_INCOMPATIBLEEXTVERSION、PHONEERR_OPERATIONUNAVAIL、PHONEERR_INVALAPPHANDLE、PHONEERR_RESOURCEUNAVAIL、PHONEERR_INVALPOINTER、PHONEERR_UNINITIALIZED、PHONEERR_INVALPRIVILEGE、PHONEERR_REINIT、PHONEERR_INUSE、PHONEERR_NODEVICE、PHONEERR_INIFILECORRUPT。

注解

使用监视器特权打开手机设备时,当发生更改手机状态的事件时,应用程序将发送消息。 发送到应用程序的消息包括 PHONE_BUTTONPHONE_STATE。 后者提供已更改的手机状态项的指示。

使用所有者特权打开手机时,可以通过影响手机设备状态的方式操作手机设备。 应用程序应仅当应用程序主动想要操作手机设备时使用所有者特权打开手机,并且当完成后,应用程序应关闭手机设备,以便其他应用程序控制手机。

当应用程序打开手机设备时,它必须指定协商的 API 版本,如果想要使用手机的扩展(电话的设备特定的扩展版本)。 此版本号应已使用 phoneNegotiateAPIVersionphoneNegotiateExtVersion 函数获取。 版本号允许将不同应用程序版本与不同的 API 版本和服务提供程序版本混合和匹配。

要求

   
目标平台 Windows
标头 tapi.h
Library Tapi32.lib
DLL Tapi32.dll

请参阅

PHONE_BUTTON

PHONE_STATE

补充电话服务功能

TAPI 2.2 参考概述

phoneNegotiateAPIVersion

phoneNegotiateExtVersion