📄 tapiline.h
字号:
// TAPILine.h: interface for the CTAPILine class.
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TAPILINE_H__378FA136_FC63_4D63_87AE_CA6F56D70764__INCLUDED_)
#define AFX_TAPILINE_H__378FA136_FC63_4D63_87AE_CA6F56D70764__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CTAPILine
{
//标识线路的变量
DWORD m_nNumLines;
DWORD m_nCurLineID;
//TAPI句柄
HLINEAPP m_hLineApp;
DWORD m_nAPIVersions[10];
DWORD m_lowAPIVersion;
DWORD m_highAPIVersion;
LINEEXTENSIONID m_extAPIVersions[10];
DWORD m_nApplicationVersion;
DWORD m_nLastTAPIError;
//表示设备和设备属性的变量
LINEDEVCAPS m_lineCaps;
CString m_strLineName;
CString m_strProviderInfo;
CString m_strSwitchInfo;
DWORD m_nPermanentLineID;
DWORD m_nStringFormat;
DWORD m_numAddresses;
LONG m_nMediaModes;
DWORD m_nAddress;
DWORD m_nMaxDataRate;
LONG m_nBearerModes;
LONG m_nAddressModes;
DWORD m_nGenerateToneMaxNumFreq;
DWORD m_nGenerateToneModes;
DWORD m_nNumTerminals;
//呼叫状态和异步函数返回状态变量
HLINE m_hLine;
HCALL m_hCall;
DWORD m_nRequestingCall;
DWORD m_nDroppingCall;
DWORD m_nReqPrivileges;
DWORD m_nReqMedialModes;
public:
CTAPILine();
virtual ~CTAPILine();
//成员函数
//这四个函数设定和获取最高版本号和最低版本号
void SetLowAPI(DWORD ver);
DWORD GetLowAPI();
void SetHighAPI(DWORD ver);
DWORD GetHighAPI();
//获取当前的TAPI线路数值,并提供给其他模块使用
DWORD GetNumLines();
//获取和设定当前TAPI线路
DWORD GetCurrentLineID();
void SetCurrentLineID(DWORD id);
//获取线路信息中的内容
CString GetLineName();
CString GetProviderInfo();
CString GetSwitchInfo();
CString GetLineErrString(DWORD lErrCode);
DWORD GetPermanentLineID();
DWORD GetStringFormat();
DWORD GetNumAddress();
DWORD GetmaxDataRate();
LONG GetBearerModes();
LONG GetAddressModes();
LONG GetMediaModes();
DWORD GetGenerateToneMaxNumFreq();
DWORD GetGenerateToneModes();
DWORD GetNumTerminals();
BOOL GetLineSupportsVoice();
DWORD GetNegoAPIVersion();
DWORD GetExtAPIID0();
DWORD GetExtAPIID1();
DWORD GetExtAPIID2();
DWORD GetExtAPIID3();
//对错误代码提供返回错误信息字符串
DWORD GetLasterror();
CString ErrorString(DWORD errCode);
//创建函数
BOOL Create();
//打开线路信息函数
BOOL OpenLine(DWORD nPrivileges = LINECALLPRIVILEGE_NONE, DWORD nMediaModes = LINEMEDIAMODE_INTERACTIVEVOICE);
//产生异步呼叫的函数
BOOL MakeCallAsynch(CString strPhoneNumbers = "");
//异步挂断电话的函数
BOOL DropCallAsynch();
//关闭线路的函数
BOOL CloseLine();
//线路配置的函数,该函数调用线路配置对话框
BOOL ConfigDialog(HWND hWnd = NULL, CString strDeviceClass = "");
//拨号配置的函数,该函数调用拨号配置对话框
BOOL DialoingPropertiesDialog(HWND hWnd, CString strPhoneNumber);
//回调函数,处理线路信息和状态改变信息
static void FAR PASCAL LineCallbackProc(DWORD dwDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
//获得线路状态字符串
CString GetLineStateString(DWORD state);
//私有成员函数
private:
//获取线路信息
BOOL GetLineDevCaps();
};
#endif // !defined(AFX_TAPILINE_H__378FA136_FC63_4D63_87AE_CA6F56D70764__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -