wiz.h
上传用户:jlteech
上传日期:2007-01-06
资源大小:349k
文件大小:12k
源码类别:

压缩解压

开发平台:

Visual C++

  1. /*
  2.  WiZ 4.0 header file
  3. */
  4. #ifndef _WIZ_H
  5. #define _WIZ_H
  6. #include <windows.h>
  7. #include <assert.h>    /* required for all Windows applications */
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #include <commdlg.h>
  11. #include <dlgs.h>
  12. #ifdef WIN32
  13. #include <windowsx.h>
  14. #define NOIMAGEAPIS
  15. #define NOTREEVIEW
  16. #include <commctrl.h>  /* for ListView controls */
  17. #include <richedit.h>  /* for RichEdit controls */
  18. #endif
  19. #include "resource.h"
  20. #include "unzipwindllstructs.h"
  21. #include "zipwindllstructs.h"
  22. /* Defines */
  23. #ifndef MSWIN
  24. #define MSWIN
  25. #endif
  26. /* Porting definitions between Win 3.1x and Win32 */
  27. #ifdef WIN32
  28. #  undef far
  29. #  undef _far
  30. #  undef __far
  31. #  undef near
  32. #  undef _near
  33. #  undef __near
  34. #  undef FAR
  35. #  define far
  36. #  define _far
  37. #  define __far
  38. #  define near
  39. #  define _near
  40. #  define __near
  41. #  define FAR
  42. #  ifndef Far
  43. #     define Far far
  44. #  endif
  45. #endif
  46. /* Allow compilation under Borland C++ also */
  47. #ifndef __based
  48. #define __based(A)
  49. #endif
  50. /*
  51.  * MW:
  52.  * The following is to take care of some of the porting problems between
  53.  * Win 3.1 and Win32 for WM_COMMAND notifications.
  54. */
  55. #ifdef WIN32
  56. #define GET_WM_COMMAND_CMD(wp, lp) HIWORD(wp)
  57. #else
  58. #define GET_WM_COMMAND_CMD(wp, lp) HIWORD(lp)
  59. #endif
  60. #ifdef WIN32
  61. #define EDIT_BUF_SIZE     0x10001L
  62. #else
  63. #define EDIT_BUF_SIZE     0x7001
  64. #endif
  65. #define FILENAME_BUF_SIZE 0x10000L
  66. /* These two are dependent on zip directory listing format string.
  67.  * They help find the filename in the listbox entry.
  68.  */
  69. #define SHORT_FORM_FNAME_INX     26
  70. #define LONG_FORM_FNAME_INX      40
  71. #define MIN_SHORT_FORMAT_CHARS (SHORT_FORM_FNAME_INX+12)
  72. #define MIN_LONG_FORMAT_CHARS (LONG_FORM_FNAME_INX+12)
  73. /* Arbitrary Constants
  74.  */
  75. #define BG_SYS_COLOR COLOR_GRAYTEXT /* background color is a system color */
  76. /* Main window menu item positions
  77.  */
  78. #define EDIT_MENUITEM_POS         1   /* edit menu position in main menu */
  79. #define HELP_MENUITEM_POS         5   /* the Help menu                */
  80. #define TABSTOP_ID_BASE IDM_LISTBOX
  81. /* Help Window Menu and Message ID's
  82.  */
  83. #define INDEX_MENU_ITEM_POS       0
  84. #define IDM_FORWARD             100
  85. #define IDM_BACKWARD            101
  86. #define BTNWIDTH        3.0
  87. #define MIN_BTN_WIDTH   1.5
  88. #ifdef MAX_BUTTONS
  89. #define NUMOFBUTTONS 23
  90. #else
  91. #define NUMOFBUTTONS 15
  92. #endif
  93. #ifndef NDEBUG
  94. #  define WinAssert(exp) 
  95.         {
  96.         if (!(exp))
  97.             {
  98.             char szBuffer[40];
  99.             sprintf(szBuffer, "File %s, Line %d",
  100.                     __FILE__, __LINE__) ;
  101.             if (IDABORT == MessageBox((HWND)NULL, szBuffer,
  102.                 "Assertion Error",
  103.                 MB_ABORTRETRYIGNORE|MB_ICONSTOP))
  104.                     FatalExit(-1);
  105.             }
  106.         }
  107. #else
  108. #  define WinAssert(exp)
  109. #endif
  110. #define cchFilesMax 4096
  111. /* Zip Flags */
  112. extern BOOL fSaveZipToDir;
  113. extern BOOL fSaveUnZipFromDir;
  114. extern BOOL fMakeDosSFX;
  115. /* Toolbar button structure */
  116. typedef struct BUTTON_STRUCT
  117. {
  118. int    idBtn;
  119. LPCSTR ButtonHelp;
  120. LPCSTR hBMP;
  121. HWND   hWndBtn;
  122. } BUTTON, *LPBUTTON;
  123. /* Unzip Miscellaneous Buffers */
  124. typedef struct
  125. {
  126. char szFileName[PATH_MAX]; /* fully-qualified archive file name in OEM char set */
  127. char szZipFileName[PATH_MAX]; /* fully-qualified archive file name in OEM char set */
  128. char szDirName[PATH_MAX];  /* directory of archive file in ANSI char set */
  129. char szUnzipToDirNameTmp[PATH_MAX]; /* temp extraction ("unzip to") directory name in ANSI */
  130. char szUnzipFromDirName[PATH_MAX];  /* extraction ("unzip from") directory name in ANSI */
  131. char szBuffer[PATH_MAX];  /* option strings from .INI, & gen'l scratch buf */
  132. char szSoundName[PATH_MAX];/* wave file name or sound from WIZ.INI [sounds] in ANSI */
  133. char szPassword[81];
  134. LPSTR lpPasswordStr;
  135. OPENFILENAME ofn;
  136. OPENFILENAME wofn;                  /* wave open file name struct */
  137. MSG msg;
  138. OFSTRUCT of;                        /* archive open file struct */
  139. OFSTRUCT wof;                       /* wave open file struct   */
  140. } UMB, __far *LPUMB;
  141. /* Unzip Flags */
  142. typedef struct
  143. {
  144. BOOL fRecreateDirs;
  145. BOOL fShowBubbleHelp;
  146. BOOL fTranslate;
  147. BOOL fSaveUnZipToDir;
  148. BOOL fSaveUnZipFromDir;
  149. BOOL fFormatLong;
  150. BOOL fUnzipToZipDir;
  151. BOOL fBeepOnFinish;
  152. BOOL fDoAll;
  153. BOOL fIconSwitched;
  154. BOOL fHelp;
  155. BOOL fCanDragDrop;
  156. BOOL fTrailingSlash;
  157. BOOL fPromptToOverwrite;
  158. } UF, *PUF;
  159. #ifndef USE_UNZIP_LIB
  160. typedef int (WINAPI * _DLL_UNZIP)(int, char **, int, char **, LPDCL, LPUSERFUNCTIONS);
  161. typedef int (WINAPI * _USER_FUNCTIONS)(LPUSERFUNCTIONS);
  162. typedef BOOL (WINAPI * _DLL_UNZVAL)(char *, int);
  163. #endif
  164. #ifndef USE_ZIP_LIB
  165. typedef int (WINAPI * _ZIP_USER_FUNCTIONS)(LPZIPUSERFUNCTIONS);
  166. typedef int (WINAPI * _DLL_ZIP)(ZCL);
  167. typedef BOOL (WINAPI * ZIPSETOPTIONS)(ZPOPT);
  168. typedef ZPOPT (WINAPI * ZIPGETOPTIONS)(void);
  169. #endif
  170. /* Global variables */
  171. extern LPUSERFUNCTIONS lpUserFunctions;
  172. extern LPZIPUSERFUNCTIONS lpZipUserFunctions;
  173. extern RECT MainRc;  /* Used only to remember window position/size */
  174. extern LPUMB lpumb;
  175. extern LPDCL lpDCL;
  176. extern ZPOPT ZpOpt;
  177. extern int argc;
  178. extern char **argv;
  179. extern DWORD dwEditBufSize;
  180. extern ZCL ZpZCL;
  181. extern BOOL fMakeSFX;
  182. extern HINSTANCE hUnzipDll;
  183. extern HINSTANCE hZipDll;
  184. extern HWND hGetFilesDlg;
  185. extern char szFilesToAdd[];
  186. extern char rgszFiles[cchFilesMax];
  187. extern HANDLE hInst;
  188. extern HWND hWndMain;
  189. extern HANDLE hEditor;
  190. extern LPSTR pszBuffer;
  191. extern int Width, Height;
  192. extern int BtnSeparator;
  193. extern float BtnMult;
  194. /* Miscellaneous Buffers */
  195. #ifndef WIN32
  196. extern short dxChar, dyChar;    /* size of char in SYSTEM font in pixels    */
  197. #else
  198. extern long dxChar, dyChar;    /* size of char in SYSTEM font in pixels    */
  199. #endif
  200. extern HANDLE hFixedFont;
  201. extern HWND hWndComment;        /* comment window */
  202. extern HWND hWndList;       /* listbox handle */
  203. extern HWND hWndButtonBar; /* Button bar handle */
  204. extern HWND hWndMain;        /* the main window handle. */
  205. extern HWND hExtract;           /* extract button  */
  206. extern HWND hDisplay;           /*display button   */
  207. extern HWND hTest;              /* test button     */
  208. extern HWND hZipInfo;           /* Zip Info button */
  209. extern HWND hShowComment;       /* show comment button */
  210. extern HWND hExit;
  211. extern HWND hMakeDir;
  212. extern HWND hSelectAll;
  213. extern HWND hDeselectAll;
  214. extern HWND hSelectPattern;
  215. extern HWND hClearStatus;
  216. extern HWND hUnzipToDir;
  217. extern HWND hHelp;
  218. extern HWND hOpen;
  219. extern HWND hArchive;
  220. extern HWND hCopyArchive;
  221. extern HWND hMoveArchive;
  222. extern HWND hRenameArchive;
  223. extern HWND hDeleteArchive;
  224. extern HWND hStatusButton;
  225. extern HWND hPatternSelectDlg; /* pattern select modeless dialog   */
  226. extern HANDLE hInst;                       /* current instance */
  227. extern HMENU  hMenu;                /* main menu handle         */
  228. extern HANDLE hAccTable;
  229. extern HANDLE hHourGlass;             /* handle to hourglass cursor      */
  230. extern HANDLE hSaveCursor;            /* current cursor handle       */
  231. extern HANDLE hHelpCursor;          /* help cursor              */
  232. extern HANDLE hFixedFont;           /* handle to fixed font             */
  233. extern HANDLE hOldFont;         /* handle to old font               */
  234. extern int hFile;                 /* file handle             */
  235. extern HWND hWndList;             /* list box handle        */
  236. extern HWND hWndEdit;     /* status   */
  237. extern HWND hWndStatic;
  238. extern BOOL bRealTimeMsgUpdate; /* update messages window in real-time */
  239. extern BOOL gfCancelDisplay;   /* cancel ongoing display operation */
  240. extern UF uf;
  241. extern int fLB_Selection;
  242. extern char szTargetDirName[];
  243. extern LPSTR lpchLast;
  244. extern WPARAM wLBSelection;   /* default listbox selection action */
  245. extern WPARAM wWindowSelection; /* window selection: listbox, status, both   */
  246. extern HBRUSH hBrush ;          /* brush for  standard window backgrounds  */
  247. extern char __based(__segname("STRINGS_TEXT")) szCantChDir[];
  248. extern char __based(__segname("STRINGS_TEXT")) szCantCopyFile[];
  249. extern char __based(__segname("STRINGS_TEXT")) szAppName[];     /* application name             */
  250. extern char __based(__segname("STRINGS_TEXT")) szDefaultUnzipToDir[]; /* default Unz_SingleEntryPoint to dir */
  251. extern char __based(__segname("STRINGS_TEXT")) szDefaultUnzipFromDir[]; /* default Unz_SingleEntryPoint from dir */
  252. extern char __based(__segname("STRINGS_TEXT")) szLBSelectionKey[];  /* LBSelection keyword in .INI */
  253. extern char __based(__segname("STRINGS_TEXT")) szNoMemory[] ;       /* error message            */
  254. extern char __based(__segname("STRINGS_TEXT")) szHelpFileName[];        /* help file name                       */
  255. extern char __based(__segname("STRINGS_TEXT")) szWiZIniFile[];   /* WiZ Private .INI file */
  256. extern char __based(__segname("STRINGS_TEXT")) szZipOptionKey[];
  257. extern char __based(__segname("STRINGS_TEXT")) szZipToDirKey[];
  258. extern char __based(__segname("STRINGS_TEXT")) szTargetZipDir[];
  259. extern char __based(__segname("STRINGS_TEXT")) szUnzipToDirName[PATH_MAX];    /* extraction ("Unz_SingleEntryPoint to") directory name in ANSI */
  260. extern char * Headers[];        /* headers to display */
  261. extern DWORD dwCommDlgHelpId;   /* what to pass to WinHelp() */
  262. #ifdef WIN32
  263. extern DWORD dwPlatformId;      /* True if running on NT */
  264. #endif
  265. /* List box stuff
  266.  */
  267. extern WORD cZippedFiles;       /* total personal records in file   */
  268. extern WORD cListBoxLines; /* max list box lines showing on screen */
  269. extern WORD cLinesMessageWin; /* max visible lines on message window  */
  270. /* Global functions */
  271. #ifndef USE_UNZIP_LIB
  272. extern _DLL_UNZIP Unz_SingleEntryPoint;
  273. extern _USER_FUNCTIONS UzInit;
  274. extern _DLL_UNZVAL Unz_Validate;
  275. #else
  276. #define Unz_SingleEntryPoint windll_unzip
  277. #define UzInit Unz_Init
  278. #define Unz_Validate UzpValidate
  279. #endif
  280. #ifndef USE_ZIP_LIB
  281. extern _DLL_ZIP ZipArchive;
  282. extern _ZIP_USER_FUNCTIONS ZipInit;
  283. extern ZIPSETOPTIONS ZipSetOptions;
  284. extern ZIPGETOPTIONS ZipGetOptions;
  285. #else
  286. #define ZipArchive ZpArchive
  287. #define ZipInit ZpInit
  288. #define ZipSetOptions ZpSetOptions
  289. #define ZipGetOptions ZpGetOptions
  290. #endif
  291. int match (char *, char *, int);          /* in match.c */
  292. int __far __cdecl BufferOut(const char *format, ...);
  293. void SetCaption(HWND);
  294. void Action(HWND, WPARAM);
  295. void CenterDialog(HWND, HWND);
  296. void CopyStatusToClipboard(HWND);
  297. void DisplayComment(HWND);
  298. int CLBItemsGet(HWND, int __far * __far *, HANDLE *);
  299. void ReselectLB(HWND, int, int __far *);
  300. void InitSoundOptions(void); /* initialize sound options (sound.c)   */
  301. void MigrateSoundOptions(void); /* translate beep into new option (sound.c) */
  302. void SizeWindow(void);
  303. void SoundAfter(void);
  304. void WINAPI SoundDuring(void);
  305. void UpdateButtons(void);
  306. void UpdateListBox(void);
  307. void UpdateMsgWndPos(void);
  308. BOOL WiZInit(HANDLE);
  309. void WriteBufferToMsgWin(LPSTR, int, BOOL);
  310. void WriteStringToMsgWin(PSTR, BOOL);
  311. int WINAPI DisplayBuf(char far *, unsigned long int);
  312. void CopyArchive(HWND, BOOL, BOOL);
  313. void GetDirectory(LPSTR);
  314. BOOL MakeDirectory(char *, BOOL);
  315. LPSTR lstrrchr(LPSTR lpszSrc, char chFind);
  316. void MoveButtons(void);
  317. void CreateButtonBar(HWND);
  318. void FindFile(char *, char *, HWND);
  319. void DoADir(char *, char *, char *, HWND, char);
  320. BOOL FnMatch(char *, char *);
  321. int WINAPI GetReplaceDlgRetVal(char *);
  322. void WriteZipOptionsProfile(void);
  323. void GetWizOptions(void);
  324. void StripDirectory(LPSTR lpDir);
  325. void MakeArchive(HWND hWnd);
  326. int WINAPI password(LPSTR, int, const LPSTR, const LPSTR);
  327. LPSTR WINAPI comment(LPSTR);
  328. BOOL IsValidArchive(LPSTR);
  329. /* Procedure Calls */
  330. BOOL WINAPI AboutProc(HWND, WORD, WPARAM, LPARAM);
  331. BOOL WINAPI SelectDirProc(HWND, WORD, WPARAM, LPARAM);
  332. BOOL WINAPI CopyFileProc(HWND, WORD, WPARAM, LPARAM);
  333. BOOL WINAPI PatternSelectProc(HWND, WORD, WPARAM, LPARAM);
  334. BOOL WINAPI ReplaceProc(HWND, WORD, WPARAM, LPARAM);
  335. BOOL WINAPI SoundProc(HWND, WORD, WPARAM, LPARAM);
  336. BOOL WINAPI RenameProc (HWND, WORD, WPARAM, LPARAM);
  337. BOOL WINAPI MakeDirProc(HWND, WORD, WPARAM, LPARAM);
  338. LONG WINAPI ButtonBarWndProc(HWND, UINT, WPARAM, LPARAM);
  339. BOOL CALLBACK CommentBoxProc(HWND, WORD, WPARAM, LPARAM);
  340. void ZipWndProc(HWND, WORD, WPARAM, LPARAM);
  341. BOOL WINAPI GetFilesProc(HWND, WORD, WPARAM, LPARAM);
  342. BOOL WINAPI GetDirProc(HWND, WORD, WPARAM, LPARAM);
  343. BOOL WINAPI GetDateProc(HWND, WORD, WPARAM, LPARAM);
  344. DWORD WINAPI UnZipPreferencesProc(HWND, WORD, WPARAM, LPARAM);
  345. DWORD WINAPI ZipPreferencesProc(HWND, UINT, WPARAM, LPARAM);
  346. void WINAPI ReceiveDllMessage(unsigned long,unsigned long,
  347.    ush, ush, ush, ush, ush, ush, char, char *, char *, unsigned long, char);
  348. BOOL WINAPI GrepArchiveProc(HWND, WORD, WPARAM, LPARAM);
  349. void SearchArchive(LPSTR);
  350. void GetArchiveDir(LPSTR lpszDestDir);
  351. #ifdef WIN32
  352. void ListViewSetSel(int, BOOL);  /* Only used for ListView control */
  353. void ListViewSortOnColumns(int); /* Only used for ListView sorting */
  354. #endif
  355. #endif /* _WIZ_H */