home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / S12546.ZIP / TRACER.H < prev    next >
Text File  |  1990-03-19  |  6KB  |  127 lines

  1. //----------------------------------------------
  2. //-TRACER.H-------------------------------------
  3. //----------------------------------------------
  4. //----------------------------------------------
  5. //-To use TRACER, follow these 5 steps.---------
  6. //----------------------------------------------
  7. //----1. Include this header in your program.---
  8. //       Includes necessary macros.
  9. //----------------------------------------------
  10. //----2. Add macro TRACERVARIABLES above main().
  11. //       Defines necessary variables / defines.-
  12. //----------------------------------------------
  13. //----3. Add macro TRACERHELLO in your WM_CREATE
  14. //       Put between WM_CREATE and break;
  15. //       Initiates handshaking with debugger.
  16. //----------------------------------------------
  17. //----4. Add macro TRACERATTACH in your WndProc.
  18. //       Put as a seperate case in your WndProc.
  19. //       Completes handshaking with debugger.
  20. //----------------------------------------------
  21. //----!!! When placing the TRACERATTACH in your-
  22. //--------window procedure, don't forget the----
  23. //--------break; statement after it. !!!--------
  24. //----------------------------------------------
  25. //----5. Use macro TRACER("string") freely.-----
  26. //       This is the debug statement.
  27. //----------------------------------------------
  28. //----Note:-------------------------------------
  29. //----You may need to include EXTERNTRACERVARS--
  30. //----in secondary modules if you want to call--
  31. //----TRACER from those modules.----------------
  32. //----------------------------------------------
  33.  
  34. //----------------------------------------------
  35. //-Note:----------------------------------------
  36. //----------------------------------------------
  37. //----In the TRACERHELLO macro, there is a param
  38. //----called hWnd.  You need to pass your window
  39. //----handle to me so that I can send mine back-
  40. //----to you.  You may need to change "hWnd" to-
  41. //----whatever your wndproc parameter name is---
  42. //----for window handle ( e.g. MyhWnd ).--------
  43. //----------------------------------------------
  44.  
  45. #define TRACER_SEGMENT     "\\SHAREMEM\\TRACER.SEG"
  46. #define TRACER_SEMAPHORE   "\\SEM\\TRACER.SEM"
  47.  
  48. #define TRACERICON         1
  49. #define ID_HELPBUTTON      2
  50. #define ID_TRACERLB        3
  51. #define IDMOPTIONS         4
  52. #define IDMABOUT           5
  53. #define ID_OK              6
  54. #define ID_MENU            7
  55. #define IDMCLEAR           8
  56. #define IDMLOG             9
  57. #define ID_CANCEL          10
  58. #define ID_LOGFILEEDIT     11
  59. #define ID_LOGFILESCROLL   12
  60. #define ID_SCREENSCROLL    13
  61. #define ID_REFRESH         14
  62.  
  63. // Step 1 - INCLUDE THIS FILE IN YOUR APP CODE AS FOLLOWS
  64.  
  65. //#include <tracer.h>
  66.  
  67. #define TRACER_REQUEST_HANDLE   WM_USER + 501
  68. #define TRACER_RECIEVE_HANDLE   WM_USER + 502
  69. #define TRACER_REQUEST_ACTION   WM_USER + 503
  70. #define TRACER_GOODBYE          WM_USER + 504
  71. #define TRACER_MYCLOSE          WM_USER + 505
  72.  
  73. // Step 2 - INCLUDE THE TRACERVARIABLES STATEMENT IN YOUR
  74. //                       DECLARATION SECTION
  75.  
  76. #define TRACERVARIABLES                                            \
  77. unsigned short      sTracerSelector;                               \
  78.          HSYSSEM    hTracerSysSem;                                 \
  79.          BOOL       bTracerConnected;                              \
  80.          char far * szSelector_string;                             \
  81.          HWND       hTracerWnd;
  82.  
  83.  
  84. // Step 3 - INCLUDE THE TRACERHELLO STATEMENT IN YOUR
  85. //                      WM_CREATE MESSAGE
  86.  
  87. #define TRACERHELLO                                                \
  88. WinBroadcastMsg( hWnd, TRACER_REQUEST_HANDLE,                      \
  89.                     MPFROMHWND( hWnd ), 0L,                        \
  90.                         BMSG_FRAMEONLY | BMSG_POSTQUEUE );
  91.  
  92.  
  93. // Step 4 - INCLUDE THE TRACERATTACH STATEMENT IN YOUR
  94. //                        MESSAGE WNDPROC
  95.  
  96. #define TRACERATTACH                                               \
  97. case TRACER_RECIEVE_HANDLE:                                        \
  98. if ( bTracerConnected )                                            \
  99.     break;                                                         \
  100. hTracerWnd = HWNDFROMMP( mp1 );                                    \
  101. bTracerConnected = 1;                                              \
  102. if ( DosGetShrSeg( TRACER_SEGMENT, &sTracerSelector ) )            \
  103.     bTracerConnected = 0;                                          \
  104. if ( DosOpenSem( &hTracerSysSem, TRACER_SEMAPHORE ) )              \
  105.     bTracerConnected = 0;
  106.  
  107. // Step 5 - THEN USE THE TRACER("HELLO, WORLD") MACRO FREELY
  108.  
  109. #define TRACER(s)                                                  \
  110.  if ( bTracerConnected )                                           \
  111.  {                                                                 \
  112.  DosSemRequest( hTracerSysSem, -1L );                              \
  113.  szSelector_string =                                               \
  114.      ( char far * )( ( unsigned long )sTracerSelector << 16 );     \
  115.  strncpy( ( char far * )szSelector_string, ( char far * )s, 80 );  \
  116.  szSelector_string[80] = '\0';                                     \
  117.  WinSendMsg( hTracerWnd, TRACER_REQUEST_ACTION, 0L, 0L );          \
  118.  DosSemClear( hTracerSysSem );                                     \
  119.  }
  120.  
  121. #define EXTERNTRACERVARS                                           \
  122. extern unsigned short      sTracerSelector;                        \
  123. extern          HSYSSEM    hTracerSysSem;                          \
  124. extern          BOOL       bTracerConnected;                       \
  125. extern          char far * szSelector_string;                      \
  126. extern          HWND       hTracerWnd;
  127.