⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tapi.h

📁 支持XMODEM,YMODEM,FAX协议的串口通信软件包的下一个:基于TAPI应用的通信应用
💻 H
📖 第 1 页 / 共 5 页
字号:
// The  Telephony  API  is jointly copyrighted by Intel and Microsoft.  You are
// granted  a royalty free worldwide, unlimited license to make copies, and use
// the   API/SPI  for  making  applications/drivers  that  interface  with  the
// specification provided that this paragraph and the Intel/Microsoft copyright
// statement is maintained as is in the text and source code files.
//
// Copyright 1995 Microsoft, all rights reserved.
// Portions copyright 1992, 1993 Intel/Microsoft, all rights reserved.

#ifndef TAPI_H
#define TAPI_H

#include <windows.h>

#pragma pack(1)
// Type definitions of the data types used in tapi

#ifdef __cplusplus
extern "C" {            /* Assume C declarations for C++ */
#endif  /* __cplusplus */


#define DECLARE_OPAQUE32(name)  struct name##__ { int unused; }; \
                typedef const struct name##__ FAR* name

DECLARE_OPAQUE32(HCALL);
typedef HCALL FAR * LPHCALL;

DECLARE_OPAQUE32(HLINE);
typedef HLINE FAR * LPHLINE;

DECLARE_OPAQUE32(HPHONE);
typedef HPHONE FAR * LPHPHONE;

DECLARE_OPAQUE32(HLINEAPP);
typedef HLINEAPP FAR * LPHLINEAPP;

DECLARE_OPAQUE32(HPHONEAPP);
typedef HPHONEAPP FAR * LPHPHONEAPP;

typedef HICON FAR * LPHICON;
// typedef of the LINE callback procedure
typedef void (CALLBACK * LINECALLBACK)  (DWORD hDevice,
                          DWORD dwMessage,
                          DWORD dwInstance,
                          DWORD dwParam1,
                          DWORD dwParam2,
                          DWORD dwParam3);

// typedef of the PHONE callback procedure
typedef void (CALLBACK * PHONECALLBACK)  (DWORD hDevice,
                           DWORD dwMessage,
                           DWORD dwInstance,
                           DWORD dwParam1,
                           DWORD dwParam2,
                           DWORD dwParam3);


// Messages for Phones and Lines

#define LINE_ADDRESSSTATE           0L
#define LINE_CALLINFO               1L
#define LINE_CALLSTATE              2L
#define LINE_CLOSE                  3L
#define LINE_DEVSPECIFIC            4L
#define LINE_DEVSPECIFICFEATURE 5L
#define LINE_GATHERDIGITS           6L
#define LINE_GENERATE               7L
#define LINE_LINEDEVSTATE           8L
#define LINE_MONITORDIGITS          9L
#define LINE_MONITORMEDIA           10L
#define LINE_MONITORTONE            11L
#define LINE_REPLY                  12L
#define LINE_REQUEST                    13L
#define PHONE_BUTTON                    14L
#define PHONE_CLOSE                 15L
#define PHONE_DEVSPECIFIC           16L
#define PHONE_REPLY                 17L
#define PHONE_STATE                 18L
#define LINE_CREATE                                     19L
#define PHONE_CREATE                                    20L

// Define Simple Telephony Constants.

#define TAPI_REPLY                    WM_USER + 99

#define TAPIERR_CONNECTED           0L
#define TAPIERR_DROPPED             -1L
#define TAPIERR_NOREQUESTRECIPIENT  -2L
#define TAPIERR_REQUESTQUEUEFULL    -3L
#define TAPIERR_INVALDESTADDRESS    -4L
#define TAPIERR_INVALWINDOWHANDLE   -5L
#define TAPIERR_INVALDEVICECLASS    -6L
#define TAPIERR_INVALDEVICEID       -7L
#define TAPIERR_DEVICECLASSUNAVAIL  -8L    
#define TAPIERR_DEVICEIDUNAVAIL     -9L    
#define TAPIERR_DEVICEINUSE         -10L    
#define TAPIERR_DESTBUSY            -11L    
#define TAPIERR_DESTNOANSWER        -12L    
#define TAPIERR_DESTUNAVAIL         -13L    
#define TAPIERR_UNKNOWNWINHANDLE    -14L    
#define TAPIERR_UNKNOWNREQUESTID    -15L    
#define TAPIERR_REQUESTFAILED       -16L
#define TAPIERR_REQUESTCANCELLED    -17L
#define TAPIERR_INVALPOINTER        -18L


#define TAPIMAXDESTADDRESSSIZE    80L 
#define TAPIMAXAPPNAMESIZE        40L
#define TAPIMAXCALLEDPARTYSIZE    40L
#define TAPIMAXCOMMENTSIZE        80L
#define TAPIMAXDEVICECLASSSIZE    40L
#define TAPIMAXDEVICEIDSIZE       40L


// Data types and values for Phones


#define PHONEBUTTONFUNCTION_UNKNOWN          0x00000000
#define PHONEBUTTONFUNCTION_CONFERENCE       0x00000001
#define PHONEBUTTONFUNCTION_TRANSFER         0x00000002
#define PHONEBUTTONFUNCTION_DROP             0x00000003
#define PHONEBUTTONFUNCTION_HOLD             0x00000004
#define PHONEBUTTONFUNCTION_RECALL           0x00000005
#define PHONEBUTTONFUNCTION_DISCONNECT       0x00000006
#define PHONEBUTTONFUNCTION_CONNECT          0x00000007
#define PHONEBUTTONFUNCTION_MSGWAITON        0x00000008
#define PHONEBUTTONFUNCTION_MSGWAITOFF       0x00000009
#define PHONEBUTTONFUNCTION_SELECTRING       0x0000000A
#define PHONEBUTTONFUNCTION_ABBREVDIAL       0x0000000B
#define PHONEBUTTONFUNCTION_FORWARD          0x0000000C
#define PHONEBUTTONFUNCTION_PICKUP           0x0000000D
#define PHONEBUTTONFUNCTION_RINGAGAIN        0x0000000E
#define PHONEBUTTONFUNCTION_PARK             0x0000000F
#define PHONEBUTTONFUNCTION_REJECT           0x00000010
#define PHONEBUTTONFUNCTION_REDIRECT         0x00000011
#define PHONEBUTTONFUNCTION_MUTE             0x00000012
#define PHONEBUTTONFUNCTION_VOLUMEUP         0x00000013
#define PHONEBUTTONFUNCTION_VOLUMEDOWN       0x00000014
#define PHONEBUTTONFUNCTION_SPEAKERON        0x00000015
#define PHONEBUTTONFUNCTION_SPEAKEROFF       0x00000016
#define PHONEBUTTONFUNCTION_FLASH            0x00000017
#define PHONEBUTTONFUNCTION_DATAON           0x00000018
#define PHONEBUTTONFUNCTION_DATAOFF          0x00000019
#define PHONEBUTTONFUNCTION_DONOTDISTURB     0x0000001A
#define PHONEBUTTONFUNCTION_INTERCOM         0x0000001B
#define PHONEBUTTONFUNCTION_BRIDGEDAPP       0x0000001C
#define PHONEBUTTONFUNCTION_BUSY             0x0000001D
#define PHONEBUTTONFUNCTION_CALLAPP          0x0000001E
#define PHONEBUTTONFUNCTION_DATETIME         0x0000001F
#define PHONEBUTTONFUNCTION_DIRECTORY        0x00000020
#define PHONEBUTTONFUNCTION_COVER            0x00000021
#define PHONEBUTTONFUNCTION_CALLID           0x00000022
#define PHONEBUTTONFUNCTION_LASTNUM          0x00000023
#define PHONEBUTTONFUNCTION_NIGHTSRV         0x00000024
#define PHONEBUTTONFUNCTION_SENDCALLS        0x00000025
#define PHONEBUTTONFUNCTION_MSGINDICATOR     0x00000026
#define PHONEBUTTONFUNCTION_REPDIAL          0x00000027
#define PHONEBUTTONFUNCTION_SETREPDIAL       0x00000028
#define PHONEBUTTONFUNCTION_SYSTEMSPEED      0x00000029
#define PHONEBUTTONFUNCTION_STATIONSPEED     0x0000002A
#define PHONEBUTTONFUNCTION_CAMPON           0x0000002B
#define PHONEBUTTONFUNCTION_SAVEREPEAT       0x0000002C
#define PHONEBUTTONFUNCTION_QUEUECALL        0x0000002D
#define PHONEBUTTONFUNCTION_NONE             0x0000002E

typedef struct phonebuttoninfo_tag {
    DWORD    dwTotalSize;
    DWORD    dwNeededSize;
    DWORD    dwUsedSize;

    DWORD    dwButtonMode;
    DWORD    dwButtonFunction;

    DWORD    dwButtonTextSize;
    DWORD    dwButtonTextOffset;

    DWORD    dwDevSpecificSize;
    DWORD    dwDevSpecificOffset;

    DWORD    dwButtonState;
} PHONEBUTTONINFO, FAR *LPPHONEBUTTONINFO;

#define PHONEBUTTONMODE_DUMMY        0x00000001
#define PHONEBUTTONMODE_CALL         0x00000002
#define PHONEBUTTONMODE_FEATURE      0x00000004
#define PHONEBUTTONMODE_KEYPAD       0x00000008
#define PHONEBUTTONMODE_LOCAL        0x00000010
#define PHONEBUTTONMODE_DISPLAY      0x00000020

#define PHONEBUTTONSTATE_UP          0x00000001
#define PHONEBUTTONSTATE_DOWN        0x00000002
#define PHONEBUTTONSTATE_UNKNOWN     0x00000004
#define PHONEBUTTONSTATE_UNAVAIL     0x00000008

typedef struct phoneextensionid_tag {
    DWORD    dwExtensionID0;
    DWORD    dwExtensionID1;
    DWORD    dwExtensionID2;
    DWORD    dwExtensionID3;
} PHONEEXTENSIONID, FAR *LPPHONEEXTENSIONID;


typedef struct phonecaps_tag {
    DWORD    dwTotalSize;
    DWORD    dwNeededSize;
    DWORD    dwUsedSize;

    DWORD    dwProviderInfoSize;
    DWORD    dwProviderInfoOffset;

    DWORD    dwPhoneInfoSize;
    DWORD    dwPhoneInfoOffset;

    DWORD    dwPermanentPhoneID;
    DWORD    dwPhoneNameSize;
    DWORD    dwPhoneNameOffset;
    DWORD    dwStringFormat;    

    DWORD    dwPhoneStates;
    DWORD    dwHookSwitchDevs;
    DWORD    dwHandsetHookSwitchModes;
    DWORD    dwSpeakerHookSwitchModes;
    DWORD    dwHeadsetHookSwitchModes;

    DWORD    dwVolumeFlags;
    DWORD    dwGainFlags;
    DWORD    dwDisplayNumRows;
    DWORD    dwDisplayNumColumns;
    DWORD    dwNumRingModes;
    DWORD    dwNumButtonLamps;

    DWORD    dwButtonModesSize;
    DWORD    dwButtonModesOffset;

    DWORD    dwButtonFunctionsSize;
    DWORD    dwButtonFunctionsOffset;

    DWORD    dwLampModesSize;
    DWORD    dwLampModesOffset;

    DWORD    dwNumSetData;
    DWORD    dwSetDataSize;
    DWORD    dwSetDataOffset;

    DWORD    dwNumGetData;
    DWORD    dwGetDataSize;
    DWORD    dwGetDataOffset;

    DWORD    dwDevSpecificSize;
    DWORD    dwDevSpecificOffset;

} PHONECAPS, FAR *LPPHONECAPS;

#define PHONEERR_ALLOCATED              0x90000001
#define PHONEERR_BADDEVICEID            0x90000002
#define PHONEERR_INCOMPATIBLEAPIVERSION 0x90000003
#define PHONEERR_INCOMPATIBLEEXTVERSION 0x90000004
#define PHONEERR_INIFILECORRUPT         0x90000005
#define PHONEERR_INUSE                  0x90000006
#define PHONEERR_INVALAPPHANDLE         0x90000007
#define PHONEERR_INVALAPPNAME           0x90000008
#define PHONEERR_INVALBUTTONLAMPID      0x90000009
#define PHONEERR_INVALBUTTONMODE        0x9000000A
#define PHONEERR_INVALBUTTONSTATE       0x9000000B
#define PHONEERR_INVALDATAID            0x9000000C
#define PHONEERR_INVALDEVICECLASS       0x9000000D
#define PHONEERR_INVALEXTVERSION        0x9000000E
#define PHONEERR_INVALHOOKSWITCHDEV     0x9000000F
#define PHONEERR_INVALHOOKSWITCHMODE    0x90000010
#define PHONEERR_INVALLAMPMODE          0x90000011
#define PHONEERR_INVALPARAM             0x90000012
#define PHONEERR_INVALPHONEHANDLE       0x90000013
#define PHONEERR_INVALPHONESTATE        0x90000014
#define PHONEERR_INVALPOINTER           0x90000015
#define PHONEERR_INVALPRIVILEGE         0x90000016
#define PHONEERR_INVALRINGMODE          0x90000017
#define PHONEERR_NODEVICE               0x90000018
#define PHONEERR_NODRIVER               0x90000019
#define PHONEERR_NOMEM                  0x9000001A
#define PHONEERR_NOTOWNER               0x9000001B
#define PHONEERR_OPERATIONFAILED        0x9000001C
#define PHONEERR_OPERATIONUNAVAIL       0x9000001D
#define PHONEERR_RESOURCEUNAVAIL        0x9000001F
#define PHONEERR_REQUESTOVERRUN         0x90000020              
#define PHONEERR_STRUCTURETOOSMALL      0x90000021
#define PHONEERR_UNINITIALIZED          0x90000022
#define PHONEERR_REINIT                 0x90000023

#define PHONEHOOKSWITCHDEV_HANDSET      0x00000001
#define PHONEHOOKSWITCHDEV_SPEAKER      0x00000002
#define PHONEHOOKSWITCHDEV_HEADSET      0x00000004
          
#define PHONEHOOKSWITCHMODE_ONHOOK      0x00000001
#define PHONEHOOKSWITCHMODE_MIC         0x00000002
#define PHONEHOOKSWITCHMODE_SPEAKER     0x00000004
#define PHONEHOOKSWITCHMODE_MICSPEAKER  0x00000008
#define PHONEHOOKSWITCHMODE_UNKNOWN     0x00000010              

#define PHONELAMPMODE_DUMMY              0x00000001
#define PHONELAMPMODE_OFF                0x00000002
#define PHONELAMPMODE_STEADY             0x00000004
#define PHONELAMPMODE_WINK               0x00000008
#define PHONELAMPMODE_FLASH              0x00000010
#define PHONELAMPMODE_FLUTTER            0x00000020
#define PHONELAMPMODE_BROKENFLUTTER      0x00000040
#define PHONELAMPMODE_UNKNOWN            0x00000080


#define PHONEPRIVILEGE_MONITOR        0x00000001
#define PHONEPRIVILEGE_OWNER          0x00000002

#define PHONESTATE_OTHER               0x00000001
#define PHONESTATE_CONNECTED           0x00000002
#define PHONESTATE_DISCONNECTED        0x00000004
#define PHONESTATE_OWNER               0x00000008
#define PHONESTATE_MONITORS            0x00000010
#define PHONESTATE_DISPLAY             0x00000020
#define PHONESTATE_LAMP                0x00000040
#define PHONESTATE_RINGMODE            0x00000080
#define PHONESTATE_RINGVOLUME          0x00000100
#define PHONESTATE_HANDSETHOOKSWITCH   0x00000200
#define PHONESTATE_HANDSETVOLUME       0x00000400
#define PHONESTATE_HANDSETGAIN         0x00000800
#define PHONESTATE_SPEAKERHOOKSWITCH   0x00001000
#define PHONESTATE_SPEAKERVOLUME       0x00002000
#define PHONESTATE_SPEAKERGAIN         0x00004000
#define PHONESTATE_HEADSETHOOKSWITCH   0x00008000
#define PHONESTATE_HEADSETVOLUME       0x00010000
#define PHONESTATE_HEADSETGAIN         0x00020000
#define PHONESTATE_SUSPEND             0x00040000
#define PHONESTATE_RESUME              0x00080000
#define PHONESTATE_DEVSPECIFIC         0x00100000
#define PHONESTATE_REINIT              0x00200000
#define PHONESTATE_CAPSCHANGE          0x00400000
#define PHONESTATE_REMOVED             0x00800000


typedef struct phonestatus_tag {
    DWORD    dwTotalSize;
    DWORD    dwNeededSize;
    DWORD    dwUsedSize;

    DWORD    dwStatusFlags; 
    DWORD    dwNumOwners;
    DWORD    dwNumMonitors;
    DWORD    dwRingMode;
    DWORD    dwRingVolume;

    DWORD    dwHandsetHookSwitchMode;
    DWORD    dwHandsetVolume;
    DWORD    dwHandsetGain;

    DWORD    dwSpeakerHookSwitchMode;
    DWORD    dwSpeakerVolume;
    DWORD    dwSpeakerGain;

    DWORD    dwHeadsetHookSwitchMode;
    DWORD    dwHeadsetVolume;
    DWORD    dwHeadsetGain;

    DWORD    dwDisplaySize;
    DWORD    dwDisplayOffset;

    DWORD    dwLampModesSize;
    DWORD    dwLampModesOffset;

    DWORD    dwOwnerNameSize;
    DWORD    dwOwnerNameOffset;

    DWORD    dwDevSpecificSize;
    DWORD    dwDevSpecificOffset;
} PHONESTATUS, FAR *LPPHONESTATUS;

#define PHONESTATUSFLAGS_CONNECTED    0x00000001
#define PHONESTATUSFLAGS_SUSPENDED    0x00000002

#define STRINGFORMAT_ASCII   0x00000001
#define STRINGFORMAT_DBCS    0x00000002
#define STRINGFORMAT_UNICODE 0x00000003
#define STRINGFORMAT_BINARY  0x00000004

typedef struct varstring_tag {
    DWORD    dwTotalSize;
    DWORD    dwNeededSize;
    DWORD    dwUsedSize;

    DWORD    dwStringFormat;
    DWORD    dwStringSize;
    DWORD    dwStringOffset;
} VARSTRING, FAR *LPVARSTRING;

// Data types and values for Lines


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -