TapiLine.h
上传用户:dcy024
上传日期:2013-05-27
资源大小:9k
文件大小:3k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. // TapiLine.h
  2. #ifndef __MSM_TAPILINE__
  3. #define __MSM_TAPILINE__
  4. // In VC5+ do this.. ok
  5. // To build  a TAPI 1.4 application put a define as below in your source
  6. // file before you include TAPI.H:
  7. //
  8. #define TAPI_CURRENT_VERSION 0x00010004
  9. #include <tapi.h>
  10. //
  11. // User defined messages notified by TAPI for Logs maintenence
  12. // Capture them in to ur view class ok.
  13. //
  14. #define TAPI_LINECALLSTATE_CONNECTED WM_USER+5
  15. #define WM_TAPI_DIALING WM_USER+10
  16. #define WM_TAPI_CONNECT WM_TAPI_DIALING+1
  17. #define WM_TAPI_DISCONNECT WM_TAPI_DIALING+2
  18. #define WM_TAPI_IDLE WM_TAPI_DIALING+3
  19. #define WM_TAPI_STATUS WM_TAPI_DIALING+4
  20. #define WM_TAPI_CALL_PROCEEDING WM_TAPI_DIALING+6
  21. #define WM_TAPI_CALL_ACCEPTED WM_TAPI_DIALING+7
  22. #define WM_TAPI_LINE_REPLY WM_TAPI_DIALING+8
  23. #define WM_TAPI_VOICE_SUPPORT WM_TAPI_DIALING+9
  24. // All TAPI line functions return 0 for SUCCESS, so define it.
  25. #define SUCCESS 0
  26. #define ERRORS -1
  27. // The TAPI versions
  28. #define TAPI_VERSION_1_0 0x00010003
  29. #define TAPI_VERSION_1_4 0x00010004
  30. #define TAPI_VERSION_2_0 0x00020000
  31. // TAPI versions that this sample is designed to use.
  32. #define WIN95TAPIVERSION TAPI_VERSION_1_4
  33. #define EARLY_TAPI_VERSION TAPI_VERSION_1_0
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CTapiLine window
  36. class CTapiLine
  37. {
  38. protected:
  39. static CTapiLine* MyThis;
  40. HWND  m_hWnd;
  41. HINSTANCE m_hInst;
  42. // The params passed to call backs and are must...
  43. DWORD m_dwDevice, m_dwMessage, m_dwCallbackInstance;
  44.     DWORD m_dwParam1, m_dwParam2, m_dwParam3;
  45.     HLINEAPP m_LineHandle; //  tapi line handle
  46.     HCALL m_hCall; //  call handle
  47.     HLINE m_hLine; //  line handle 
  48. HANDLE m_hComm; // comm handle
  49. DWORD m_dwLines; //  count of available lines/devices
  50. LINECALLPARAMS m_LineParams; // need this structure
  51. int  m_nDevice;
  52. long m_nPrivilege;
  53. long m_nMediaMode;
  54.     DWORD m_dwAPIVersion; // the API version
  55.     char m_szPhoneNumber[64]; // the phone number to call
  56.     char m_szMessage[128]; // Tapi reults
  57. // Construction
  58. public:
  59. CTapiLine();
  60. // Attributes
  61. public:
  62. // Operations
  63. protected:
  64. // Overrides
  65. // protected virtual functions
  66.     virtual void TapiCallBack();
  67.     virtual void HandleCallState();
  68. protected:
  69. void SetCallbackParams(
  70. DWORD dwDevice, DWORD dwMsg, 
  71. DWORD dwCallbackInstance, 
  72. DWORD dwParam1, DWORD dwParam2, 
  73. DWORD dwParam3);
  74. void Delay(UINT lFactor);
  75. void SetVarProps(HWND hWnd, DWORD hDevice );
  76. LONG LineStateConnected();
  77. public:
  78. // Overrides
  79. //
  80. // public virtual functions
  81. //
  82. virtual void Create(HWND& hWnd);
  83. virtual LONG DialCall( LPTSTR PhoneNumber );
  84.     virtual LONG HangupCall();
  85. // Implementation
  86. public:
  87. virtual ~CTapiLine();
  88. void TapiStatus(LPSTR lpszError, BOOL bShowMsgBox=FALSE);
  89. LPSTR GetTapiStatus() const
  90. {
  91. return (LPSTR)m_szMessage;
  92. }
  93. // static functions
  94.     static void CALLBACK lineCallbackFunc(
  95.         DWORD dwDevice,DWORD dwMessage,DWORD dwCallbackInstance, 
  96.         DWORD dwParam1,DWORD dwParam2, DWORD dwParam3);
  97. };
  98. #endif // __MSM_TAPILINE__
  99. /////////////////////////////////////////////////////////////////////////////