winmain.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:5k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. //******************************************************************************
  2. //
  3. // File:        WINMAIN.H
  4. //
  5. // Description: This module contains all the Windows specific decalrations for
  6. //              Pocket UnZip.  See WINMAIN.CPP for a more detailed description
  7. //              and the actual implementation.
  8. //
  9. // Copyright:   All the source files for Pocket UnZip, except for components
  10. //              written by the Info-ZIP group, are copyrighted 1997 by Steve P.
  11. //              Miller.  The product "Pocket UnZip" itself is property of the
  12. //              author and cannot be altered in any way without written consent
  13. //              from Steve P. Miller.
  14. //
  15. // Disclaimer:  All project files are provided "as is" with no guarantee of
  16. //              their correctness.  The authors are not liable for any outcome
  17. //              that is the result of using this source.  The source for Pocket
  18. //              UnZip has been placed in the public domain to help provide an
  19. //              understanding of its implementation.  You are hereby granted
  20. //              full permission to use this source in any way you wish, except
  21. //              to alter Pocket UnZip itself.  For comments, suggestions, and
  22. //              bug reports, please write to stevemil@pobox.com.
  23. //
  24. //
  25. // Date      Name          History
  26. // --------  ------------  -----------------------------------------------------
  27. // 02/01/97  Steve Miller  Created (Version 1.0 using Info-ZIP UnZip 5.30)
  28. //
  29. //******************************************************************************
  30. #ifndef __WINMAIN_H__
  31. #define __WINMAIN_H__
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. //******************************************************************************
  36. //***** Constants / Macros
  37. //******************************************************************************
  38. #define MRU_MAX_FILE                       4  // Should not exceed 9
  39. #define MRU_START_ID                     501
  40. #define WM_PRIVATE                    0x9999
  41. #define MSG_SUBCLASS_DIALOG                1
  42. #define MSG_INIT_DIALOG                    2
  43. #define MSG_ADD_TEXT_TO_EDIT               3
  44. #define MSG_PROMPT_TO_REPLACE              4
  45. #define MSG_PROMPT_FOR_PASSWORD            5
  46. #define MSG_UPDATE_PROGRESS_PARTIAL        6
  47. #define MSG_UPDATE_PROGRESS_COMPLETE       7
  48. #define MSG_OPERATION_COMPLETE             8
  49. #define IDC_SAVE_FILE_LIST                12
  50. #define IDC_SAVE_NAME_PROMPT            1023
  51. #define IDC_SAVE_NAME_EDIT              1021
  52. #define IDC_SAVE_TYPE_PROMPT            1022
  53. #define IDC_SAVE_TYPE_LIST              1020
  54. #define PROGRESS_MAX                   32768
  55. #define FILE_ATTRIBUTE_VOLUME     0x00000008
  56. #define FILE_ATTRIBUTE_ENCRYPTED  0x10000000
  57. #define FILE_ATTRIBUTE_COMMENT    0x20000000
  58.  
  59. #define IMAGE_VOLUME                       0
  60. #define IMAGE_FOLDER                       1
  61. #define IMAGE_APPLICATION                  2
  62. #define IMAGE_GENERIC                      3
  63. #ifndef LVS_EX_FULLROWSELECT
  64. #define LVS_EX_FULLROWSELECT      0x00000020
  65. #endif
  66. // LVM_SETEXTENDEDLISTVIEWSTYLE came after VC 4.0
  67. #ifndef LVM_SETEXTENDEDLISTVIEWSTYLE
  68. #define LVM_SETEXTENDEDLISTVIEWSTYLE (LVM_FIRST + 54)
  69. #endif
  70. // LVM_GETEXTENDEDLISTVIEWSTYLE came after VC 4.0
  71. #ifndef LVM_GETEXTENDEDLISTVIEWSTYLE
  72. #define LVM_GETEXTENDEDLISTVIEWSTYLE (LVM_FIRST + 55)
  73. #endif
  74. #ifdef _WIN32_WCE
  75. #define CheckDlgButton(hDlg, ctrl, fChecked) 
  76.            SendDlgItemMessage(hDlg, ctrl, BM_SETCHECK, fChecked, 0)
  77. #define IsDlgButtonChecked(hDlg, ctrl) 
  78.            SendDlgItemMessage(hDlg, ctrl, BM_GETCHECK, 0, 0)
  79. #endif
  80. //******************************************************************************
  81. //***** Types and Structures
  82. //******************************************************************************
  83. typedef struct _FILE_TYPE_NODE {
  84.    struct _FILE_TYPE_NODE *pNext;
  85.    int                     image;
  86.    CHAR                    szExtAndDesc[2];
  87. } FILE_TYPE_NODE, *LPFILE_TYPE_NODE;
  88. typedef struct _FILE_NODE {
  89.    DWORD           dwSize;
  90.    DWORD           dwCompressedSize;
  91.    DWORD           dwModified;
  92.    DWORD           dwAttributes;
  93.    DWORD           dwCRC;
  94.    LPCSTR          szComment;
  95.    LPCSTR          szType;
  96.    CHAR            szPathAndMethod[2];
  97. } FILE_NODE, *LPFILE_NODE;
  98. typedef struct _COLUMN {
  99.    LPTSTR szName;
  100.    int    format;
  101. } COLUMN, *LPCOLUMN;
  102. //******************************************************************************
  103. //***** Exported Function Prototypes
  104. //******************************************************************************
  105. void AddFileToListView(FILE_NODE *pFile);
  106. LPCSTR GetFileFromPath(LPCSTR szPath);
  107. void ForwardSlashesToBackSlashesA(LPSTR szBuffer);
  108. //******************************************************************************
  109. //***** Global Variables
  110. //******************************************************************************
  111. #ifdef GLOBAL_DECLARE
  112. #undef GLOBAL_DECLARE
  113. #undef GLOBAL_INIT
  114. #endif
  115. #ifdef __WINMAIN_CPP__
  116.    #define GLOBAL_DECLARE
  117.    #define GLOBAL_INIT(value) =value
  118. #else
  119.    #define GLOBAL_DECLARE extern
  120.    #define GLOBAL_INIT(value)
  121. #endif
  122. GLOBAL_DECLARE HINSTANCE g_hInst                GLOBAL_INIT(NULL);
  123. GLOBAL_DECLARE HWND      g_hWndMain             GLOBAL_INIT(NULL);
  124. GLOBAL_DECLARE HWND      g_hWndEdit             GLOBAL_INIT(NULL);
  125. GLOBAL_DECLARE HWND      g_hDlgProgress         GLOBAL_INIT(NULL);
  126. GLOBAL_DECLARE CHAR      g_szZipFile[_MAX_PATH] GLOBAL_INIT("");
  127. #ifdef __cplusplus
  128. } // extern "C"
  129. #endif
  130. #endif // __WINMAIN_H__