home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
WINDOWS
/
UTILS
/
WZUN11SR.ZIP
/
WIZUNZIP.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-09
|
8KB
|
244 lines
/* Main include file for Windows Unzip: unzip.h
* This include file is copied into all `C' source modules specific to
* Windows Info-ZIP Unzip.
* Author: Robert A. Heath, 157 Chartwell Rd., Columbia, SC 29210
* I, Robert A. Heath, place this module, wizunzip.h, in the public domain.
*/
/* These two are dependent on zip directory listing format string.
* They help find the filename in the listbox entry.
*/
#define SHORT_FORM_FNAME_INX 27
#define LONG_FORM_FNAME_INX 58
#define MIN_SHORT_FORMAT_CHARS (SHORT_FORM_FNAME_INX+12)
#define MIN_LONG_FORMAT_CHARS (LONG_FORM_FNAME_INX+12)
#define MAX_DIRNAME_LEN 80
/* Arbitrary Constants
*/
#define STATUS_ROWS 6 /* typical no. status box rows */
#define BG_SYS_COLOR COLOR_GRAYTEXT /* background color is a system color */
/* Main window menu item positions
*/
#define HELP_MENUITEM_POS 5 /* the Help menu */
/* Main Window Message Codes
*/
#define IDM_OPEN 101
#define IDM_EXIT 102
#define IDM_SHORT 104
#define IDM_LONG 105
#define IDM_HELP 106
#define IDM_ABOUT 107
#define IDM_RECR_DIR_STRUCT 108
#define IDM_OVERWRITE 109
#define IDM_TRANSLATE 110
#define IDM_UNZIP_TO_ZIP_DIR 111
#define IDM_EDIT 112
#define IDM_PATH 113
#define IDM_HEADER_LINE1 115
#define IDM_HEADER_LINE2 116
#define IDM_COMMENT 117
#define IDM_TOTAL_LINE1 118
#define IDM_TOTAL_LINE2 119
#define IDM_SELECT_ALL 120
/* These six items are the tab-stop windows whose ID's must be kept
* in order.
*/
#define IDM_LISTBOX 121
#define IDM_EXTRACT 122
#define IDM_DISPLAY 123
#define IDM_TEST 124
#define IDM_SHOW_COMMENT 125
#define IDM_STATUS 126
#define TABSTOP_ID_BASE IDM_LISTBOX
#define IDM_MAX_STATUS 127
#define IDM_RESTORE_STATUS 128
#define IDM_LB_EXTRACT 135
#define IDM_LB_DISPLAY 136
#define IDM_LB_TEST 137
#define IDM_DESELECT_ALL 138
#define IDM_CLEAR_STATUS 139
#define IDM_HELP_KEYBOARD 140
#define IDM_HELP_HELP 141
#define IDM_CHDIR 142
/* Help Window Menu and Message ID's
*/
#define INDEX_MENU_ITEM_POS 0
#define IDM_FORWARD 100
#define IDM_BACKWARD 101
/* Tab-stop table is used to sub-class those main window items to
* which the tab and back-tab keys will tab and stop.
*/
typedef struct TabStop_tag {
FARPROC lpfnOldFunc; /* original function */
HWND hWnd ;
} TabStopEntry;
typedef TabStopEntry *PTABSTOPENTRY;
#define TABSTOP_TABLE_ENTRIES 6
#define MAKE_TABSTOP_TABLE_ENTRY(WNDHANDLE, ID) \
{ \
TabStopTable[ID - TABSTOP_ID_BASE].lpfnOldFunc = \
(FARPROC)GetWindowLong(WNDHANDLE, GWL_WNDPROC); \
SetWindowLong(WNDHANDLE, GWL_WNDPROC, (LONG)lpfnKbdProc); \
TabStopTable[ID - TABSTOP_ID_BASE].hWnd = WNDHANDLE; \
}
#ifndef NDEBUG
#define WinAssert(exp) \
{\
if (!(exp))\
{\
char szBuffer[40];\
sprintf(szBuffer, "File %s, Line %d",\
__FILE__, __LINE__) ;\
if (IDABORT == MessageBox(NULL, szBuffer,\
"Assertion Error",\
MB_ABORTRETRYIGNORE|MB_ICONSTOP))\
FatalExit(-1);\
}\
}
#else
#define WinAssert(exp)
#endif
extern TabStopEntry TabStopTable[]; /* tab-stop control table */
extern BOOL bStatusMaxed ; /* status box is maximized when true */
extern WORD wHelpItem; /* item to pass to Help proc */
extern short xchar, ychar; /* size of char in SYSTEM font in pixels */
extern HANDLE hFixedFont;
extern HWND hWndComment; /* comment window */
extern HWND hWndHeaderLine1; /* header line 1 */
extern HWND hWndHeaderLine2; /* header line 2 */
extern HWND hWndTotalLine1; /* total line 1 */
extern HWND hWndTotalLine2; /* total line 2 */
extern HWND hWndList; /* listbox handle */
extern HWND hMainWnd; /* the main window handle. */
extern HWND hExtract; /* extract button */
extern HWND hDisplay; /*display button */
extern HWND hTest; /* test button */
extern HWND hShowComment; /* show comment button */
extern HANDLE hInst; /* current instance */
extern HMENU hMenu; /* main menu handle */
extern HANDLE hAccTable;
extern HANDLE hHourGlass; /* handle to hourglass cursor */
extern HANDLE hSaveCursor; /* current cursor handle */
extern HANDLE hHelpCursor; /* help cursor */
extern HANDLE hFixedFont; /* handle to fixed font */
extern HANDLE hOldFont; /* handle to old font */
extern int hFile; /* file handle */
extern int MsWinDoAll; /* referenced in file_io.c */
extern HWND hHelpWnd; /* Help Window handle */
extern HWND hWndList; /* list box handle */
extern HWND hWndStatus; /* status */
extern HWND hDlgAbout; /* handle to about box */
extern BOOL bHelp; /* help key has been hit when TRUE */
extern BOOL bRealTimeMsgUpdate; /* update messages window in real-time */
extern BOOL bRecreateDirs; /* re-create directory structures when TRUE */
extern BOOL bTranslate; /* translate LF to CR-LF */
extern WORD wFormat; /* display format: 0 = short, 1 = long */
extern BOOL bOverwrite; /* overwrite files: IDM_PROMPT, IDM_OVERWRITE */
extern BOOL bUnzipToZipDir; /* unzip to .ZIP dir; else keep separate */
extern WORD wLBSelection; /* default listbox selection action */
extern HWND hDlgHelp; /* Help dialog handler */
extern FARPROC lpHelpDlg; /* Help Dialog proc instance */
extern HBRUSH hBrush ; /* brush for standard window backgrounds */
extern char szAppName[]; /* application name */
extern char szFileName[]; /* current file name in ANSI */
extern char szDirName[]; /* resultant Directory Name */
extern char szOrigDirName[]; /* original directory name */
extern char szStatusClass[]; /* status class name */
extern char *Headers[][2] ; /* headers to display */
extern char FORMAT_KEY[]; /* Format WIN.INI keyword */
extern char OVERWRITE_KEY[]; /* Overwrite WIN.INI keyword */
extern char TRANSLATE_KEY[]; /* Translate WIN.INI keyword */
extern char LBSELECTION_KEY[]; /* LBSelection keyword in WIN.INI */
extern char RECREATE_DIRS_KEY[]; /* re-create directory structure
WIN.INI keyword */
extern char UNZIP_TO_ZIP_DIR_KEY[]; /* unzip to .ZIP dir WIN.INI keyword */
extern char *LBSelectionTable[];
extern char NoMemoryMsg[] ; /* error message */
extern WORD wCommentLength ; /* length of comment in .ZIP file */
/* List box stuff
*/
extern WORD TotalZippedFiles; /* total personal records in file */
extern WORD ListBoxLines; /* max list box lines showing on screen */
extern WORD MessageWinLines; /* max visible lines on message window */
void DoCaption(HWND hWnd, PSTR szFileName);
int DoFileOpenDlg(HANDLE hInst, HWND hWnd, PSTR szFileSpecIn, PSTR szDefExtIn,
WORD wFileAttrIn, PSTR szFileNameOut, POFSTRUCT pofIn);
/* some global functions
*/
void Action(WORD wActionCode);
int unzipmain(int argc, char *argv[]);
void DisplayComment(void);
int GetLBSelCount(HWND hListBox, int **ppnSelItems);
void IndexHelp(HWND hWnd, HMENU hMenu, PSTR HelpFile); /* index help file */
void ReselectLB(HWND hListBox, int nSelCount, int *pnSelItems);
BOOL SetUpToProcessZipFile(int ncflag, int ntflag, int nvflag, int nUflag,
int nzflag, int ndflag, int noflag, int naflag,
int argc, PSTR psZipFN, PSTR *FNV);
void TakeDownFromProcessZipFile(void);
void SizeWindow(HWND hWnd, BOOL bOKtoMovehWnd);
void UpdateButtons(HWND hWnd);
void UpdateListBox(HWND hWnd);
void UpdateMsgWndPos(void);
BOOL WizUnzipInit(HANDLE hInst);
void WriteBufferToMsgWin(LPSTR buffer, int nBufferLen, BOOL bUpdate);
void WriteStringToMsgWin(PSTR String, BOOL bUpdate);
/* Far Proc's
*/
BOOL FAR PASCAL About(HWND hDlg, WORD message, WORD wParam, LONG lParam);
BOOL FAR PASCAL ChDirProc(HWND hDlg, WORD message, WORD wParam, LONG lParam);
BOOL FAR PASCAL FileDlgProc(HWND hDlg, WORD message, WORD wParam, LONG lParam);
long FAR PASCAL HelpWndProc (HWND hWnd, unsigned iMessage, WORD wParam, LONG lParam);
long FAR PASCAL KbdProc(HWND hWnd, WORD message, WORD wParam, LONG lparam);
BOOL FAR PASCAL Replace(HWND hDlg, WORD message, WORD wParam, LONG lParam);
long FAR PASCAL StatusProc (HWND hWnd, unsigned iMessage, WORD wParam, LONG lParam);