TAPICALL.H
上传用户:chinamans
上传日期:2013-03-17
资源大小:202k
文件大小:4k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. // tapicall.h : header file
  2. // (c) Dialogic corp 1995, 1996
  3. //
  4. // simplified call states
  5. #ifndef IDLE
  6. #define IDLE 0
  7. #endif
  8. #define MAKING 1
  9. #define STOP_MAKING 2
  10. #define PROGRESS 3
  11. #define DIALING 4
  12. #define OFFERING 5
  13. #define ANSWERING 6
  14. #define CONNECTED 7
  15. #define HOLD 8
  16. #define DROPPING 9
  17. #define DISCONNECTED  10
  18. // digits monitoring/gathering states
  19. #define MONITOR_DIGITS 0x0001
  20. #define START_GATHER 0x0002
  21. #define RESET_MONITOR_DIGITS 0x0004
  22. #define END_GATHER_DIGITS 0x0008
  23. #define RESET_GATHER_RESULT 0x0010
  24. // call direction
  25. #define INBOUND  1
  26. #define OUTBOUND 2
  27. // errors occuring in call progress
  28. #define MAKE_FAILED 0x00000001
  29. #define ANSWER_FAILED 0x00000002
  30. #define DROP_FAILED 0x00000004
  31. #define DEALLOCATE_FAILED 0x00000008
  32. // to be continued. . .
  33. typedef struct _callstate {
  34. WORD wCallState;
  35. WORD wCallDirection;
  36. DWORD dwTapiCallState;
  37. DWORD dwErrors;
  38. } TAPICALLSTATE, *PTAPICALLSTATE;
  39. typedef struct _monitorstate {
  40. WORD wState;
  41. WORD wLastDigit;
  42. DWORD dwDigitMode;
  43. DWORD dwGatherResult;
  44. WORD wMonitorCount;
  45. } MONITORSTATE, *PMONITORSTATE;
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CTapiCall command target
  48. class CTapiWave;
  49. class CTapiCall : public CObject
  50. {
  51. DECLARE_DYNCREATE(CTapiCall)
  52. protected:
  53. CTapiCall();           // protected constructor used by dynamic creation
  54. //virtual ~CTapiCall();
  55. // Attributes
  56. public:
  57. HCALL m_hCall;
  58. char m_szDigits[32]; //digits for gathering
  59. HWND m_hStatusWnd; // status window handle
  60. HWND m_hCallAlertWnd; // status window handle
  61. DWORD m_dwCallAlert; // status window aler identifier
  62. UINT m_uiAlertMsg; // special message for alerting callinfo window
  63. protected:
  64. CTapiLine *m_pctLine;
  65. TAPICALLSTATE m_CallState;
  66. MONITORSTATE m_MonitorState;
  67. HANDLE m_hStateSem;
  68. HANDLE  m_hMonitorStateSem;
  69. CTapiWave *m_pWave;
  70. // Operations
  71. public:
  72. virtual ~CTapiCall();
  73. CTapiCall(HCALL hCall, CTapiLine *lpLine=NULL);           // public constructor
  74. const TAPICALLSTATE& GetFullCallState()
  75. {return m_CallState;}
  76. WORD GetCallState()
  77. {return m_CallState.wCallState;}
  78. WORD GetCallDirection()
  79. {return m_CallState.wCallDirection;}
  80. DWORD GetCallError()
  81. {return m_CallState.dwErrors;}
  82. BOOL UpdateCallState(WORD wCallState=0xffff, WORD wDirection=0xffff,
  83.  DWORD dwTapiCallState = 0xffff, DWORD dwErrors=0L);    // verify & update the full state
  84. void SetLine(CTapiLine *pLine) // wrapper for m_pctLine
  85. {m_pctLine = pLine;}
  86. CTapiLine *GetLine()
  87. {return m_pctLine;}
  88. HANDLE GetStateSemHandle() // get state sem
  89. {return m_hStateSem;}
  90. BOOL InitWave();
  91. BOOL ResetWave();
  92. BOOL Play(LPSTR lpName);
  93. BOOL Record(int nFormatID=10, DWORD dwSize=65534);
  94. BOOL PlayEx(LPCTSTR lpName);
  95. BOOL RecordEx(LPCTSTR lpName, DWORD dwRecTime, int nFormatID=10);
  96. BOOL Pause();
  97. BOOL Resume();
  98. BOOL StopWave();
  99. void FinishPlay(WPARAM wParam, LPARAM lParam);
  100. void FinishRecord(WPARAM wParam, LPARAM lParam, LPSTR lpName=NULL);
  101. DWORD GetHWaveIn();
  102. DWORD GetHWaveOut();
  103. DWORD GetWaveStatus();
  104. DWORD GetWaveVolume();
  105. void  SetWaveVolume(DWORD dwVol=0xffff);
  106. LONG GatherDigits(DWORD dwNumDigits, LPCSTR lpszTermDigits, 
  107.      DWORD dwFirstDigitTimeout, DWORD dwInterDigitTimeout, LPSTR lpBuf);
  108. LONG MonitorDigits(DWORD dwMode);
  109. BOOL UpdateMonitorState(WORD wType, DWORD dwDigit, DWORD dwMode);
  110. BOOL GetMonitorState(PMONITORSTATE pMonState);
  111. DWORD GetRecPlayStatus();
  112. virtual void NotifyCallWindow() // post a message that status has changed
  113. {::PostMessage(m_hStatusWnd, WM_COMMAND, MAKELONG(m_dwCallAlert,BN_CLICKED), (LPARAM)m_hCallAlertWnd);}
  114. virtual void NotifyCallWindow(UINT wParam, LONG lParam) // post a message that status has changed
  115. {::PostMessage(m_hStatusWnd, m_uiAlertMsg, wParam, lParam);}
  116. // Overrides
  117. // ClassWizard generated virtual function overrides
  118. //{{AFX_VIRTUAL(CTapiCall)
  119. //}}AFX_VIRTUAL
  120. // Implementation
  121. //protected:
  122. // virtual ~CTapiCall();
  123. // Generated message map functions
  124. //{{AFX_MSG(CTapiCall)
  125. // NOTE - the ClassWizard will add and remove member functions here.
  126. //}}AFX_MSG
  127. // DECLARE_MESSAGE_MAP()
  128. };
  129. /////////////////////////////////////////////////////////////////////////////