WINDIFF.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************************************************************
  2. *       This is a part of the Microsoft Source Code Samples. 
  3. *       Copyright (C) 1993-1997 Microsoft Corporation.
  4. *       All rights reserved. 
  5. *       This source code is only intended as a supplement to 
  6. *       Microsoft Development Tools and/or WinHelp documentation.
  7. *       See these sources for detailed information regarding the 
  8. *       Microsoft samples programs.
  9. ******************************************************************************/
  10. /*
  11.  * WINDIFF.H
  12.  */
  13. /* application-wide variables -------------------------------------*/
  14. /* This is the section name in the win.ini file to which we
  15.  * write profile info
  16.  */
  17. #define APPNAME "WinDiff"
  18. /* A gmem_init() heap shared by the app. call gmem_get to alloc. */
  19. extern HANDLE hHeap;
  20. /* The instance handle for this app. Needed by anyone who uses resources
  21.  * such as dialogs
  22.  */
  23. extern HINSTANCE hInst;
  24. extern HWND hwndClient;
  25. extern HWND hwndRCD;
  26. /* global option flags-------------------------------------------  */
  27. /* Which files do we show in outline mode ? all, changed... */
  28. extern int outline_include;
  29. /* Outline_include is an OR of the following */
  30. #define INCLUDE_SAME            1
  31. #define INCLUDE_DIFFER          2
  32. #define INCLUDE_LEFTONLY        4
  33. #define INCLUDE_RIGHTONLY       8
  34. /* Do we ignore blanks during the line-by-line diff ? */
  35. extern BOOL ignore_blanks;
  36. /* Which line numbers do we show - left original, right original or none ?*/
  37. extern int line_numbers;
  38. /* What lines do we show in expand mode - all, left only, right only ? */
  39. extern int expand_mode;
  40. /*--- colour scheme ----------------------------------------------  */
  41. /* Outline */
  42. extern DWORD rgb_outlinehi;
  43. /* Expand view */
  44. extern DWORD rgb_leftfore;
  45. extern DWORD rgb_leftback;
  46. extern DWORD rgb_rightfore;
  47. extern DWORD rgb_rightback;
  48. extern DWORD rgb_mleftfore;
  49. extern DWORD rgb_mleftback;
  50. extern DWORD rgb_mrightfore;
  51. extern DWORD rgb_mrightback;
  52. /* Bar window */
  53. extern DWORD rgb_barleft;
  54. extern DWORD rgb_barright;
  55. extern DWORD rgb_barcurrent;
  56. /* -- display layout constants---------------------------------------*/
  57. /* Percentage of width of window taken by bar display (when visible) */
  58. #define BAR_WIN_WIDTH   10
  59. /* Following are horizontal positions within the bar window, expressed
  60.  * in percent of the width of the bar window
  61.  */
  62. #define L_POS_START     10      /* start of left position marker */
  63. #define L_POS_WIDTH     5       /* width of left position marker */
  64. #define R_POS_START     80      /* start of right position marker */
  65. #define R_POS_WIDTH     5       /* width of right position marker */
  66. #define L_UNMATCH_START 30      /* start of left bar for unmatched section */
  67. #define L_UNMATCH_WIDTH 10      /* width of above */
  68. #define R_UNMATCH_START 60      /* start of right bar for unmatch section */
  69. #define R_UNMATCH_WIDTH 10      /* width of right unmatched section marker */
  70. #define L_MATCH_START   30      /* start of left bar for matched section */
  71. #define L_MATCH_WIDTH   10      /* width of left bar for matched section */
  72. #define R_MATCH_START   60      /* start of right bar for matched section */
  73. #define R_MATCH_WIDTH   10      /* width of right bar for matched section */
  74. /* windiff.c functions */
  75. void windiff_UI(BOOL bAttach);
  76. BOOL Poll(void);                /* true if abort pending */
  77. void SetNames(LPSTR names);
  78. void SetStatus(LPSTR state);
  79. /* in bar.c */
  80. BOOL InitBarClass(HINSTANCE hInstance);
  81. void BarDrawPosition(HWND hwndBar, HDC hdcIn, BOOL bErase);
  82. /*-- private messages -- */
  83. /* Send this to the main window. Return value is the VIEW handle */
  84. #define TM_CURRENTVIEW  WM_USER
  85. /* --- synchronisation ----------------------------------------- */
  86. /*
  87.  * In WIN32 we spawn worker threads to do time-consuming actions.
  88.  * This causes a possible conflict with the UI thread when accessing the
  89.  * BUSY flag.
  90.  *
  91.  * To protect against this we have a critical section. The UI thread
  92.  * will get this before checking/changing the Busy flag,
  93.  * The worker thread will get this before Busy flag* changes.
  94.  *
  95.  */
  96. CRITICAL_SECTION CSWindiff;
  97. #define WDEnter()       EnterCriticalSection(&CSWindiff);
  98. #define WDLeave()       LeaveCriticalSection(&CSWindiff);