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

TAPI编程

开发平台:

Visual C++

  1. // tapiapp.h : main header file for the TAPIAPP class
  2. // (c) Dialogic corp 1995, 1996
  3. //
  4. #define TAPI_VERSION1_3          0x00010003
  5. #define TAPI_VERSION1_4          0x00010004
  6. #define TAPI_VERSION2_0          0x00020000
  7. // Because Microsoft does not have a better way to find out if tapi.h is a 2.0... 
  8. #ifdef LINE_AGENTSPECIFIC
  9. #define TAPI20 1
  10. #define CURRENT_TAPI_VERSION TAPI_VERSION2_0
  11. #else
  12. #define CURRENT_TAPI_VERSION TAPI_VERSION1_4
  13. #endif
  14.  
  15. // Async IDs stuff
  16. #define FIND_ID  0
  17. #define REMOVE_ID 1
  18. typedef struct _asynccall {
  19. DWORD dwID;
  20. WORD wFunction;
  21. WORD wState;
  22. LPVOID pvLine;
  23. LPVOID pvCall;
  24. } ASYNCCALL, *PASYNCCALL;
  25. typedef CMap<DWORD, DWORD, PASYNCCALL, PASYNCCALL&> CMAPASYNC; // async calls
  26.  
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CTapiApp:
  29. // See tapiapp32.cpp for the implementation of this class
  30. //
  31. class CTapiApp : public CWinApp
  32. {
  33. public:
  34. CTapiApp();
  35. BOOL InitTAPIApp();
  36. void CloseTAPIApp();
  37. void SetAsyncID(DWORD dwID, WORD wState, WORD wFunc, LPVOID pvLine, LPVOID pvCall);
  38. PASYNCCALL FindAsyncID(DWORD dwID, WORD wAction = FIND_ID);
  39. virtual void PurgeAsyncQue(); // free resources
  40. // Message handlers
  41. virtual void OnLineReply(DWORD dwCallback, DWORD idRequest, DWORD dwStatus);
  42. LPLINECALLINFO GetCallInfo(HCALL hCall);
  43. LPLINECALLSTATUS GetCallStatus(HCALL hCall);
  44. // to be implemented in derived class
  45. virtual void OnCallState(HCALL hCall, DWORD hCallback, DWORD dwCallState,
  46. DWORD dwCallStateDetail, DWORD dwCallPrivilege) = 0;
  47. virtual void OnLineCallInfo(HCALL hCall, DWORD dwCallBack, DWORD dwParm) = 0;
  48. virtual void OnMonitorDigits(HCALL hCall, DWORD dwCallBack, DWORD dwDigit, DWORD dwDigitMode) = 0;
  49. virtual void OnGatherDigits(HCALL hCall, DWORD dwCallBack, DWORD dwTermination) = 0;
  50. virtual void OnLineDevSpec(DWORD hCall, DWORD dwCallBack, DWORD dwParm1, DWORD dwParm2, DWORD dwParm3) = 0;
  51. virtual void OnMonitorMedia(DWORD hCall, DWORD dwCallBack, DWORD dwParm1, DWORD dwParm2, DWORD dwParm3) = 0;
  52. virtual void NotifyFrontEnd(DWORD dwLineID) = 0; // front end notification
  53. virtual void SetNotificationControlID(DWORD dwID) = 0; 
  54. // Overrides
  55. // ClassWizard generated virtual function overrides
  56. //{{AFX_VIRTUAL(CTapiApp)
  57. public:
  58. virtual BOOL InitInstance();
  59. virtual int ExitInstance();
  60. //}}AFX_VIRTUAL
  61. // Implementation
  62. public:
  63. HLINEAPP m_hApp;
  64. DWORD m_dwLines;
  65. protected:
  66. CMAPASYNC *m_pAsyncList;
  67. HANDLE m_hAsyncListSem;
  68. //{{AFX_MSG(CTapiApp)
  69. // NOTE - the ClassWizard will add and remove member functions here.
  70. //    DO NOT EDIT what you see in these blocks of generated code !
  71. //}}AFX_MSG
  72. DECLARE_MESSAGE_MAP()
  73. };
  74. extern "C"
  75. {
  76. VOID WINAPI LineCallBackProc(DWORD hDevice, DWORD dwMsg, 
  77.      DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, 
  78.      DWORD dwParam3);
  79. }
  80. /////////////////////////////////////////////////////////////////////////////