Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

634 lines
24 KiB

/*** extract.msg - EXTRACT.EXE displayable strings
*
* Microsoft Confidential
* Copyright (C) Microsoft Corporation 1994
* All Rights Reserved.
*
* History:
* 17-Feb-1994 bens Initial version
* 19-Feb-1994 bens Produce directory
* 28-Feb-1994 bens Update version
* 02-Mar-1994 bens Link with improved fdi.lib
* 08-Mar-1994 bens Add date/time display
* 17-Mar-1994 bens RESERVE support added
* 22-Mar-1994 bens Refresh with more robust FDI
* 25-Mar-1994 bens Handle FDIERROR_WRONG_CABINET
* 28-Mar-1994 bens Suport /A switch
* 01-Apr-1994 bens Add /D and /E switches
* 07-Apr-1994 bens Add decrypt support (at least for debugging)
* 18-Apr-1994 bens Pick up bug fix for incompressible data
* 27-May-1994 bens Quantum support
* 07-Jun-1994 bens Add localization comments (whew!)
* 24-Jun-1994 bens Don't show RESERVEd cabinet info
* 08-Jul-1994 bens Quantum spill file support
* 11-Jul-1994 bens Empty AM/MP strings => 24 hour time format
* 26-Jul-1994 bens Add /C switch
* 02-Aug-1994 bens Added notes for localizers
* 12-Mar-1995 bens Remove variable data from pszBANNER!
*/
/*** NOTES FOR LOCALIZERS -- PLEASE READ!
*
* 1) Do not put TAB characters in strings -- they will throw off the
* spacing, especially in the /? help text. If you are using Word
* or some other non-programmer's editor, please DO NOT press the
* TAB key, and, just to be safe, turn on display of tabs and spaces
* to make sure you haven't added any TABs inadvertently.
*
* 2) Do not leave blanks at the end of lines, especially the continutation
* lines (ending with \). Again, turn on display of tabs and spaces
* (if your text editor supports that) to make sure -- the C compiler
* does not like these!
*/
#ifdef NOT_US_PC
#define szBANNER_DMF_INDICATOR "n" // Not IBM BIOS version (i.e., NEC)
#else
#define szBANNER_DMF_INDICATOR ""
#endif
/*LOCALIZE
*
* Purpose: The name, date, and version of this tool:
* Generate: Type "EXTRACT"
*/
#define pszBANNER \
"Microsoft (R) Cabinet Extraction Tool - Version " VER_FILEVERSION_STR szBANNER_DMF_INDICATOR "\n" \
VER_LEGALCOPYRIGHT_STR ".\n"
/*LOCALIZE
*
* Purpose: Command line syntax.
* Generate: Type "EXTRACT /?" or just "EXTRACT"
*/
#define pszCMD_LINE_HELP \
" EXTRACT [/Y] [/A] [/D | /E] [/L dir] cabinet [filename ...]\n" \
" EXTRACT [/Y] source [newname]\n" \
" EXTRACT [/Y] /C source destination\n\n" \
"Parameters List:\n" \
" cabinet - Cabinet file (contains two or more files).\n" \
" filename - Name of the file to extract from the cabinet.\n" \
" Wild cards and multiple filenames (separated by\n" \
" blanks) may be used.\n" \
"\n" \
" source - Compressed file (a cabinet with only one file).\n" \
" newname - New filename to give the extracted file.\n" \
" If not supplied, the original name is used.\n" \
"\n" \
" /A Process ALL cabinets. Follows cabinet chain\n" \
" starting in first cabinet mentioned.\n" \
" /C Copy source file to destination (to copy from DMF disks).\n" \
" /D Display cabinet directory (use with filename to avoid \n" \
" extract).\n" \
" /E Extract (use instead of *.* to extract all files).\n" \
" /L dir Location to place extracted files (default is current \n" \
" directory).\n" \
" /Y Do not prompt before overwriting an existing file.\n\n" \
"Examples:\n" \
" EXTRACT /C diamond.cab diamond.exe\n" \
" EXTRACT /D diamond.cab \n" \
" EXTRACT /E mycab.cab \n" \
" EXTRACT /L c:\\extract mycab.cab myfile1 myfile2 \n" \
/*
** Command Line Switches
*/
/*NoLocalize
*/
#define chSWITCH1 '/'
#define chSWITCH2 '-'
/*NoLocalize
*/
#define chSWITCH_HELP '?'
#define chSWITCH_ALL 'A'
#define chSWITCH_COPY 'C'
#define chSWITCH_DIRECTORY 'D'
#define chSWITCH_EXTRACT 'E'
#define chSWITCH_LOCATION 'L'
#define chSWITCH_RESERVE 'R' //** Purposely undocumented!
#define chSWITCH_OVERWRITE 'Y'
#define chSWITCH_ZAP 'Z' //** Purposely undocumented!
#define chSWITCH_ONCE '#' //** Purposely undocumented!
/*
** Status messages
*/
/*LOCALIZE
*
* Purpose: To display invalid syntax.
* %1 = cabinet file name
* Generate: Type "EXTRACT /D loctest1.cab"
* Expect: " Cabinet loctest1.cb"
*/
#define pszINVALID_SYNTAX L"ERROR: Invalid Syntax.\n"
/*LOCALIZE
*
* Purpose: To display invalid syntax.
* %1 = cabinet file name
* Generate: Type "EXTRACT /D loctest1.cab"
* Expect: " Cabinet loctest1.cb"
*/
#define pszHELP_MESSAGE L"Type EXTRACT /? for help usage.\n"
/*LOCALIZE
*
* Purpose: A destination file already exists, ask if user wants to
* overwrite it.
* %1 = destination file name
* Generate: Type:
* EXTRACT loctest1.cab a.asc
* EXTRACT loctest1.cab a.asc
* Expect: "Overwrite a.asc (Yes/No/All)?"
* ^^^^^^^^^^-----^^^^^^^^^^^^^^
*/
#define pszEXT_OVERWRITE_PROMPT "Overwrite %1 (Yes/No/All)?"
#define chOVERWRITE_YES 'Y'
#define chOVERWRITE_NO 'N'
#define chOVERWRITE_ALL 'A'
/*LOCALIZE
*
* Purpose: Indicates name of current cabinet file being processed.
* %1 = cabinet file name
* Generate: Type "EXTRACT /D loctest1.cab"
* Expect: " Cabinet loctest1.cb"
*/
#define pszEXT_CABINET_HEADER " Cabinet %1"
/*LOCALIZE
*
* Purpose: Indicates name of a file being extracted to current directory.
* %1 = file name from inside a cabinet file
* Generate: Type "EXTRACT loctest1.cab a.asc"
* Expect: "Extracting a.asc"
*/
#define pszEXT_EXTRACTING_FILE "Extracting %1"
/*LOCALIZE
*
* Purpose: Indicates file being extracted to a different directory.
* %1 = file name from inside a cabinet file
* %2 = path specified on /L parameter where file is going
* Generate: Type "EXTRACT /A /L raw loctest1.cab a.asc"
* Expect: "Extracting a.asc -> raw\a.asc"
* (assuming foo.cab contains file.exe)
*/
#define pszEXT_EXTRACTING_FILE2 "Extracting %1 -> %2"
/*LOCALIZE
*
* Purpose: Indicates that requested files were not found.
* Generate: Type "EXTRACT /D loctest1.cab missing.dat"
* Expect: "No matching files."
*/
#define pszEXT_NO_MATCHING_FILES "No matching files."
/*LOCALIZE
*
* Purpose: File date/time format (used on file directory lines):
* %1 = month (1..12)
* %2 = day (1..31)
* %3 = year (1..99)
* %4 = hour (1..12)
* %5 = minute (0..59)
* %6 = second (0..59)
* %7 = AM/PM indicator (see pszEXT_TIME_AM/PM)
* Generate: Type "EXTRACT /D loctest1.cab a.asc"
* Expect: "04-01-1994 3:28:08p A--- 16,184 a.asc"
* --^--^----^--^--^---
* This is the portion produced from the following 3 strings
*
* NOTE: For German and other languages/countries that use a 24-hour
* clock (00:00:01 to 23:59:59), set the AM/PM strings to the empty
* string (i.e., ""), and that will force 24-hour format!
*/
#define pszEXT_DATE_TIME "%1-%2-%3 %4:%5:%6%7"
#define pszEXT_TIME_AM "a"
#define pszEXT_TIME_PM "p"
/*NoLocalize - (date/time attributes filesize filename)
*/
#define pszEXT_FILE_DETAILS "%1 %2 %3 %4"
/*LOCALIZE
*
* Purpose: Summary line with 1 file and total number of bytes:
* %1 = 1
* %2 = count of bytes
* Generate: Type "EXTRACT /D loctest1.cab a.asc"
* Expect: " 1 File 16,184 bytes"
* ----^^^^^^^^^^^^^^-------^^^^^^
*/
#define pszEXT_SUMMARY1 " %1 File %2 bytes" // 1 file
/*LOCALIZE
*
* Purpose: Summary line with >1 files and total number of bytes:
* %1 = count of files
* %2 = count of bytes
* Generate: Type "EXTRACT /D loctest1.cab"
* Expect: " 16 Files 258,944 bytes"
* ----^^^^^^^^^^^^^^-------^^^^^^
*/
#define pszEXT_SUMMARY2 " %1 Files %2 bytes" // >1 file
/*LOCALIZE
*
* Purpose: Indicates a file that is split across a cabinet boundary.
* %1 = filename of file that is split
* %2 = cabinet file name where file starts
* %3 = Descriptive disk name where cabinet file exists
* Generate: Type "EXTRACT /D loctest2.cab m.asc"
* Expect: "m.asc : Starts in cabinet loctest1.cab on disk 'Disk 1'"
* -----^^^^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^------^
*/
#define pszEXT_PARTIAL_FILE "%1 : Starts in cabinet %2 on disk '%3'"
/*NoLocalize - This are informative displays on cabinets with RESERVED space
*/
//BUGBUG 07-Jun-1994 bens What do we do with this stuff?
// These were present for testing RESERVED stuff, in the absence of an
// actual crytposystem.
#define pszEXT_DECRYPT_HEADER "CRYPT Header: r=<%1,%2> setID=%3 iCabinet=%4"
#define pszEXT_DECRYPT_FOLDER "CRYPT Folder: r=<%1,%2> iFolder=%3"
#define pszEXT_DECRYPT_DATA "CRYPT Data: r=<%1,%2> b=<%3,%4> fSplit=%5 cbPartial=%6"
/*LOCALIZE
*
* Purpose: Prompt for next cabinet when previous cabinet was on a floppy.
* %1 = Name of desired cabinet file
* %2 = Disk label of floppy with desired cabinet
* %3 = Drive letter of floppy drive
* Generate: Copy loctest1.cab to one disk, and loctest2.cab to another
* disk, then stick the first disk in drive A and type
* "EXTRACT loctest1.cab m.asc"
* Expect:
* "Extract needs cabinet file 'loctest2.cab'. Please insert the disk"
* "labeled 'Disk 2' into drive A, and press ENTER. You may
* "enter a different drive and/or path:"
*/
#define pszEXT_FLOPPY_PROMPT \
"Extract needs cabinet file '%1'. Please insert the disk\n" \
"labeled '%2' into drive %3, and press ENTER. You may\n" \
"enter a different drive and/or path:"
/*LOCALIZE
*
* Purpose: Prompt for next cabinet on a hard disk (non-removable media)
* %1 = Name of desired cabinet file
* %2 = Disk label with desired cabinet
* Generate: Copy loctest1.cab to directory FOO, "cd FOO", *don't* put
* loctest2.cab in the FOO directory, then type
* "EXTRACT loctest1.cab m.asc"
* Expect:
* "Extract needs cabinet file 'loctest2.cab' from 'Disk 2'."
* "Please enter the path where this file may be"
* "found, and press ENTER:"
*/
#define pszEXT_NOFLOPPY_PROMPT \
"Extract needs cabinet file '%1' from '%2'.\n" \
"Please enter the path where this file may be\n" \
"found, and press ENTER:"
/*
** Error messages
*/
/*LOCALIZE
*
* Purpose: Prefix string for *all* error messages.
* %1 = Detailed error message (one of pszEXTERR_... below)
* Generate: Type "EXTRACT /x" (bad switch)
* Expect: "ERROR: Invalid switch: /x"
* ^^^^^^^------------------
*/
#define pszEXTERR_ERROR "ERROR: %1"
/*LOCALIZE
*
* Purpose: Indicate an unknown or bad command line switch.
* %1 = Bad switch string
* Generate: Type "EXTRACT /x" (bad switch)
* Expect: "ERROR: Invalid switch: /x"
* ^^^^^^^^^^^^^^^^--
*/
#define pszEXTERR_BAD_SWITCH "Invalid switch: %1"
/*LOCALIZE
*
* Purpose: Indicate a switch that is inconsistent with a previous switch.
* %1 = Bad switch string
* Generate: Type "EXTRACT /d /e" (Can't do directory & extract both)
* Expect: "ERROR: Conflicting switch: e"
* ^^^^^^^^^^^^^^^^^^^^-
*/
#define pszEXTERR_CONFLICTING_SWITCH "Conflicting switch: %1"
/*LOCALIZE
*
* Purpose: OUT OF MEMORY trying to initialize EXTRACT.
* Generate: Difficult -- have to get very low memory situation,
* then type "EXTRACT".
* Expect: "ERROR: Could not allocate SESSION"
*/
#define pszEXTERR_NO_SESSION "Could not allocate SESSION"
/*LOCALIZE
*
* Purpose: Indicate command line syntax error -- /L with no path.
* Generate: "EXTRACT /L" (location missing)
* Expect: "ERROR: Location missing"
*/
#define pszEXTERR_MISSING_LOCATION "Location missing"
/*LOCALIZE
*
* Purpose: Indicate general command line syntax error.
* Generate: "EXTRACT /C" (no files specified)
* Expect: "ERROR: Bad parameters"
*/
#define pszEXTERR_BAD_PARAMETERS "Bad parameters"
/*LOCALIZE
*
* Purpose: Indicate command line syntax error -- /L used twice.
* Generate: "EXTRACT /L foo /L bar" (two locations)
* Expect: "ERROR: Location specified more than once"
*/
#define pszEXTERR_LOCATION_TWICE "Location specified more than once"
/*LOCALIZE
*
* Purpose: OUT OF MEMORY saving a command-line filespec.
* %1 = filespec being added.
* Generate: Difficult -- have to get very low memory situation, then
* type "EXTRACT loctest1.cab *.exe *.dll *.txt".
* Expect: "ERROR: Could not add filespec: *.txt"
*/
#define pszEXTERR_COULD_NOT_ADD_FILE "Could not add filespec: %1"
/*LOCALIZE
*
* Purpose: Command line syntax error -- no cabinet file name specified.
* Generate: Type "EXTRACT /A".
* Expect: "ERROR: Must supply a cabinet file name"
*/
#define pszEXTERR_MISSING_CABINET "Must supply a cabinet file name"
/*LOCALIZE
*
* Purpose: INTERNAL ERROR -- FDIDestroy() call failed.
* Generate: This is probably impossible to generate -- don't try.
* Expect: "ERROR: FDIDestroy failed"
*/
#define pszEXTERR_FDIDESTROY_FAILED "FDIDestroy failed"
/*LOCALIZE
*
* Purpose: Could not create file being extracted.
* %1 = name of file Extract was trying to create
* Generate: Put a write-protected disk in drive A:, type
* "EXTRACT /L a:\ loctest1.cab a.asc".
* NOTE: Testing under NT I couldn't get this message --
* MS-DOS/Win16 may be more fruitful.
* Expect: "ERROR: Cannot create file: a.asc"
*/
#define pszEXTERR_CANNOT_CREATE_FILE "Cannot create file: %1"
/*LOCALIZE
*
* Purpose: Could not open cabinet file.
* %1 = name of cabinet file that cannot be opened
* Generate: Type "EXTRACT /D junk.jnk" (junk.jnk does not exist)
* Expect: "ERROR: Cannot open file: junk.jnk"
*/
#define pszEXTERR_CANNOT_OPEN_FILE "Cannot open file: %1"
/*LOCALIZE
*
* Purpose: Specified file is not a cabinet file.
* %1 = name of cabinet file that is not a cabinet file
* Generate: Type "EXTRACT /D extract.exe"
* Expect: "ERROR: extract.exe is not a cabinet file"
*/
#define pszEXTERR_NOT_A_CABINET "%1 is not a cabinet file"
/*LOCALIZE
*
* Purpose: Indicate user cancelled EXTRACT.EXE.
* Generate: Type "MD junk", "COPY loctest1.cab JUNK", "CD junk",
* "EXTRACT /AD loctest1.cab", and when you are prompted
* for the next cabinet, type CTRL+Z and press ENTER.
* Expect: "ERROR: Cancelled"
*/
#define pszEXTERR_ABORT "Cancelled"
/*
** FDI error messages
*/
/*LOCALIZE
*
* Purpose: Could not create a temporary file that the decompressor
* needs to store data that overflows its RAM workspace.
* %1 = name of cabinet file being processed
* %2 = name of temporary file that could not be created
* Generate: Drive D:\ is read-only -- a CD-ROM drive or a read-only
* network connection, for example.
* Type:
* SET TMP=D:\
* EXTRACT /E LOCTEST3.CAB
* Expect: "ERROR: Could not create temporary file while decompressing Q121.CAB: esf2"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------^^----
*/
#define pszFDIERR_SPILL_CREATE "Could not create temporary file for %1: %2"
/*LOCALIZE
*
* Purpose: Not enough space for temporary file that the decompressor
* needs to store data that overflows its RAM workspace.
* %1 = name of cabinet file being processed
* %2 = name of temporary file
* %3 = required size of temporary file
* Generate: Drive D:\ has less than 2Mb of free space, but is writeable.
* Type:
* SET TMP=D:\
* EXTRACT /E LOCTEST3.cab
* Expect: "ERROR: Not enough space for temporary file esf2 while decompressing Q121.CAB: 20971523 bytes needed""
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_SPILL_SIZE "Not enough space for temporary file %2 while decompressing %1: %3 bytes needed"
/*LOCALIZE
*
* Purpose: FDI could not find the specified cabinet file.
* %1 = name of cabinet file that cannot be opened
* Generate: Difficult -- Extract made sure the cabinet file was present
* before calling FDI! DO NOT TRY TO REPRO.
* Expect: "ERROR: Could not find cabinet file loctest1.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_CAB_NOT_FOUND "Could not find cabinet file %1"
/*LOCALIZE
*
* Purpose: FDI determined cabinet file header is incorrect.
* %1 = name of cabinet file that is not a cabinet file
* Generate: Difficult -- Extract called FDI first to see if the
* before calling FDI! DO NOT TRY TO REPRO.
* Expect: "ERROR: loctest1.cab is not a cabinet file"
* ------------^^^^^^^^^^^^^^^^^^^^^^
*/
#define pszFDIERR_NOT_A_CABINET "%1 is not a cabinet file"
/*LOCALIZE
*
* Purpose: FDI does not recognize the cabinet version number.
* %1 = name of cabinet file
* %2 = Version number found in cabinet file
* Generate: Difficult - Use a binary file editor (DEBUG) to change the
* word at offset 26 decimal (1A hex) in loctest1.cab to
* 0xFFFF, and save it as bad.cab, then type
* "EXTRACT /D bad.cab"
* Expect: "ERROR: Cabinet file bad.cab has an unknown version(FFFF)"
* ^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^^^^^^----^
*/
#define pszFDIERR_BAD_CAB_VER "Cabinet file %1 has an unknown version(%2)"
/*LOCALIZE
*
* Purpose: FDI detected a corruption in the cabinet format.
* %1 = name of cabinet file
* Generate: Difficult - Use a binary file editor (DEBUG) to write out
* the first 120 bytes of loctest1.cab to bad.cab, then type
* "EXTRACT /D bad.cab"
* Expect: "ERROR: Cabinet file bad.cab is corrupted"
* ^^^^^^^^^^^^^-------^^^^^^^^^^^^^
*/
#define pszFDIERR_CORRUPT_CAB "Cabinet file %1 is corrupted"
/*LOCALIZE
*
* Purpose: OUT OF MEMORY initializing FDI.
* Generate: Difficult -- have to get very low memory situation,
* then type "EXTRACT /AE loctest1.cab"
* Expect: "ERROR: Out of memory while processing cabinet file loctest1.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_ALLOC_FAIL "Out of memory while processing cabinet file %1"
/*LOCALIZE
*
* Purpose: FDI detected an unsupported compression type in the cabinet.
* Generate: Difficult -- have to find a CFFOLDER structure and then trash
* the typeCompression field -- DO NOT TRY TO REPRO.
* Expect: "ERROR: Unknown compression type in cabinet file loctest1.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_BAD_COMPR_TYPE "Unknown compression type in cabinet file %1"
/*LOCALIZE
*
* Purpose: FDI detected corrupted compressed data in the cabinet.
* Generate: Difficult -- have to find a CFDATA structure and then trash
* the compressed data area -- DO NOT TRY TO REPRO.
* Expect: "ERROR: Failure decompressing cabinet file loctest1.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_MDI_FAIL "Failure decompressing cabinet file %1"
/*LOCALIZE
*
* Purpose: FDI had problems writing out an extracted file.
* Generate: Difficult -- perhaps try telling extract to put files out to
* to a disk that has only 8K of space, i.e., type
* "EXTRACT /AEL X: loctest1.cab" where X: has 8K free space.
* Expect: "ERROR: Error creating destination file a.asc from cabinet file loctest1.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_TARGET_FILE "Error creating destination file %1 from cabinet file %2"
/*LOCALIZE
*
* Purpose: FDI detected inconsistent RESERVE settings in a cabinet set.
* Generate: Difficult -- DO NOT TRY TO REPRO.
* Expect: "ERROR: RESERVE size mismatch in cabinet file loctest2.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_RESERVE_MISMATCH "RESERVE size mismatch in cabinet file %1"
/*LOCALIZE
*
* Purpose: FDI did not get back the expected continuation cabinet.
* Generate: Difficult -- DO NOT TRY TO REPRO.
* Expect: "ERROR: Wrong continuation cabinet file loctest2.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_WRONG_CABINET "Wrong continuation cabinet file %1"
/*LOCALIZE
*
* Purpose: FDI was aborted.
* Generate: Difficult -- DO NOT TRY TO REPRO.
* Expect: "ERROR: User aborted while processing cabinet file loctest1.cab"
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_USER_ABORT "User aborted while processing cabinet file %1"
/*LOCALIZE
*
* Purpose: INTERNAL ERROR - FDI returned unknown error code.
* Generate: Difficult -- DO NOT TRY TO REPRO.
* Expect: "ERROR: Unknown error(??) processing cabinet file loctest2.cab"
* ^^^^^^^^^^^^^^--^^^^^^^^^^^^^^^^^^^^^^^^^^------------
*/
#define pszFDIERR_UNKNOWN_ERROR "Unknown error(%1) processing cabinet file %2"
//*** THE END - extract.msg