TAPILine.h
上传用户:fstfhk1234
上传日期:2007-06-12
资源大小:67k
文件大小:3k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. // TAPILine.h: interface for the CTAPILine class.
  2. //////////////////////////////////////////////////////////////////////
  3. #if !defined(AFX_TAPILINE_H__378FA136_FC63_4D63_87AE_CA6F56D70764__INCLUDED_)
  4. #define AFX_TAPILINE_H__378FA136_FC63_4D63_87AE_CA6F56D70764__INCLUDED_
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. class CTAPILine  
  9. {
  10. //标识线路的变量
  11. DWORD m_nNumLines;
  12. DWORD m_nCurLineID;
  13. //TAPI句柄
  14. HLINEAPP m_hLineApp;
  15. DWORD m_nAPIVersions[10];
  16. DWORD m_lowAPIVersion;
  17. DWORD m_highAPIVersion;
  18. LINEEXTENSIONID m_extAPIVersions[10];
  19. DWORD m_nApplicationVersion;
  20. DWORD m_nLastTAPIError;
  21. //表示设备和设备属性的变量
  22. LINEDEVCAPS m_lineCaps;
  23. CString m_strLineName;
  24. CString m_strProviderInfo;
  25. CString m_strSwitchInfo;
  26. DWORD m_nPermanentLineID;
  27. DWORD m_nStringFormat;
  28. DWORD m_numAddresses;
  29. LONG m_nMediaModes;
  30. DWORD m_nAddress;
  31. DWORD m_nMaxDataRate;
  32. LONG m_nBearerModes;
  33. LONG m_nAddressModes;
  34. DWORD m_nGenerateToneMaxNumFreq;
  35. DWORD m_nGenerateToneModes;
  36. DWORD m_nNumTerminals;
  37. //呼叫状态和异步函数返回状态变量
  38. HLINE m_hLine;
  39. HCALL m_hCall;
  40. DWORD m_nRequestingCall;
  41. DWORD m_nDroppingCall;
  42. DWORD m_nReqPrivileges;
  43. DWORD m_nReqMedialModes;
  44. public:
  45. CTAPILine();
  46. virtual ~CTAPILine();
  47. //成员函数
  48. //这四个函数设定和获取最高版本号和最低版本号
  49. void SetLowAPI(DWORD ver);
  50. DWORD GetLowAPI();
  51. void SetHighAPI(DWORD ver);
  52. DWORD GetHighAPI();
  53. //获取当前的TAPI线路数值,并提供给其他模块使用
  54. DWORD GetNumLines();
  55. //获取和设定当前TAPI线路
  56. DWORD GetCurrentLineID();
  57. void SetCurrentLineID(DWORD id);
  58. //获取线路信息中的内容
  59. CString GetLineName();
  60. CString GetProviderInfo();
  61. CString GetSwitchInfo();
  62. CString GetLineErrString(DWORD lErrCode);
  63. DWORD GetPermanentLineID();
  64. DWORD GetStringFormat();
  65. DWORD GetNumAddress();
  66. DWORD GetmaxDataRate();
  67. LONG GetBearerModes();
  68. LONG GetAddressModes();
  69. LONG GetMediaModes();
  70. DWORD GetGenerateToneMaxNumFreq();
  71. DWORD GetGenerateToneModes();
  72. DWORD GetNumTerminals();
  73. BOOL GetLineSupportsVoice();
  74. DWORD GetNegoAPIVersion();
  75. DWORD GetExtAPIID0();
  76. DWORD GetExtAPIID1();
  77. DWORD GetExtAPIID2();
  78. DWORD GetExtAPIID3();
  79. //对错误代码提供返回错误信息字符串
  80. DWORD GetLasterror();
  81. CString ErrorString(DWORD errCode);
  82. //创建函数
  83. BOOL Create();
  84. //打开线路信息函数
  85. BOOL OpenLine(DWORD nPrivileges = LINECALLPRIVILEGE_NONE, DWORD nMediaModes = LINEMEDIAMODE_INTERACTIVEVOICE);
  86. //产生异步呼叫的函数
  87. BOOL MakeCallAsynch(CString strPhoneNumbers = "");
  88. //异步挂断电话的函数
  89. BOOL DropCallAsynch();
  90. //关闭线路的函数
  91. BOOL CloseLine();
  92. //线路配置的函数,该函数调用线路配置对话框
  93. BOOL ConfigDialog(HWND hWnd = NULL, CString strDeviceClass = "");
  94. //拨号配置的函数,该函数调用拨号配置对话框
  95. BOOL DialoingPropertiesDialog(HWND hWnd, CString strPhoneNumber);
  96. //回调函数,处理线路信息和状态改变信息
  97. static void FAR PASCAL LineCallbackProc(DWORD dwDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3);
  98. //获得线路状态字符串
  99. CString GetLineStateString(DWORD state);
  100. //私有成员函数
  101. private:
  102. //获取线路信息
  103. BOOL GetLineDevCaps();
  104. };
  105. #endif // !defined(AFX_TAPILINE_H__378FA136_FC63_4D63_87AE_CA6F56D70764__INCLUDED_)