WaveTsp.h
上传用户:hcyyun520
上传日期:2019-05-14
资源大小:365k
文件大小:2k
源码类别:

TAPI编程

开发平台:

Visual C++

  1. // WaveTsp.h
  2. #ifndef WAVETSP_H
  3. #define WAVETSP_H
  4. #define DIM(rg) (sizeof(rg)/sizeof(*rg))
  5. // Data sent back and forth between UI and TSP during a dial operation
  6. class CtspCall;
  7. struct TSPUIDATA
  8. {
  9.     CtspCall*   pCall;          // Call operation is happening on
  10.     DWORD       dwRequestID;    // Asynch. operation ID
  11.     LONG        tr;             // Asynch, operation result
  12.     DWORD       nCallState;     // New call state
  13. };
  14. #define DEBUGTSP
  15. #if defined(_DEBUG) && defined(DEBUGTSP)
  16. enum ParamType
  17. {
  18.     ptDword,
  19.     ptString,
  20. };
  21. enum ParamDirection
  22. {
  23.     dirIn,
  24.     dirOut,
  25. };
  26. struct FUNC_PARAM
  27. {
  28.     const char*     pszVal;
  29.     DWORD           dwVal;
  30.     ParamType       pt;
  31.     ParamDirection  dir;
  32. };
  33. struct FUNC_INFO
  34. {
  35.     const char* pszFuncName;
  36.     DWORD       dwNumParams;
  37.     FUNC_PARAM* rgParams;
  38.     LONG        lResult;
  39. };
  40. void Prolog(FUNC_INFO* pInfo);
  41. LONG Epilog(FUNC_INFO* pInfo, LONG lResult);
  42. #define BEGIN_PARAM_TABLE(fname) 
  43.     const char* __pszFname = fname; 
  44.     FUNC_PARAM __params[] = {
  45. #define DWORD_IN_ENTRY(p) { #p, (DWORD)p, ptDword, dirIn },
  46. #define DWORD_OUT_ENTRY(p) { #p, (DWORD)p, ptDword, dirOut },
  47. #define STRING_IN_ENTRY(p) { #p, (DWORD)p, ptString, dirIn },
  48. #define STRING_OUT_ENTRY(p) { #p, (DWORD)p, ptString, dirOut },
  49. #define END_PARAM_TABLE() 
  50.     }; FUNC_INFO __info = { __pszFname, DIM(__params), __params }; 
  51.     Prolog(&__info);
  52. #define EPILOG(r) Epilog(&__info, r)
  53. #define TSPTRACE TspTrace
  54. void TspTrace(LPCTSTR pszFormat, ...);
  55. #else   // !_DEBUG
  56. #define EPILOG(r) r
  57. #define BEGIN_PARAM_TABLE(fname)
  58. #define DWORD_IN_ENTRY(p)
  59. #define DWORD_OUT_ENTRY(p)
  60. #define STRING_IN_ENTRY(p)
  61. #define STRING_OUT_ENTRY(p)
  62. #define END_PARAM_TABLE()
  63. #define TSPTRACE TspTrace
  64. inline void TspTrace(LPCTSTR pszFormat, ...) {}
  65. #endif  // _DEBUG
  66. #endif  // WAVETSP_H