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

  1. /*** extract.msg - EXTRACT.EXE displayable strings
  2. *
  3. * Microsoft Confidential
  4. * Copyright (C) Microsoft Corporation 1994
  5. * All Rights Reserved.
  6. *
  7. * History:
  8. * 17-Feb-1994 bens Initial version
  9. * 19-Feb-1994 bens Produce directory
  10. * 28-Feb-1994 bens Update version
  11. * 02-Mar-1994 bens Link with improved fdi.lib
  12. * 08-Mar-1994 bens Add date/time display
  13. * 17-Mar-1994 bens RESERVE support added
  14. * 22-Mar-1994 bens Refresh with more robust FDI
  15. * 25-Mar-1994 bens Handle FDIERROR_WRONG_CABINET
  16. * 28-Mar-1994 bens Suport /A switch
  17. * 01-Apr-1994 bens Add /D and /E switches
  18. * 07-Apr-1994 bens Add decrypt support (at least for debugging)
  19. * 18-Apr-1994 bens Pick up bug fix for incompressible data
  20. * 27-May-1994 bens Quantum support
  21. * 07-Jun-1994 bens Add localization comments (whew!)
  22. * 24-Jun-1994 bens Don't show RESERVEd cabinet info
  23. * 08-Jul-1994 bens Quantum spill file support
  24. * 11-Jul-1994 bens Empty AM/MP strings => 24 hour time format
  25. * 26-Jul-1994 bens Add /C switch
  26. * 02-Aug-1994 bens Added notes for localizers
  27. * 12-Mar-1995 bens Remove variable data from pszBANNER!
  28. */
  29. /*** NOTES FOR LOCALIZERS -- PLEASE READ!
  30. *
  31. * 1) Do not put TAB characters in strings -- they will throw off the
  32. * spacing, especially in the /? help text. If you are using Word
  33. * or some other non-programmer's editor, please DO NOT press the
  34. * TAB key, and, just to be safe, turn on display of tabs and spaces
  35. * to make sure you haven't added any TABs inadvertently.
  36. *
  37. * 2) Do not leave blanks at the end of lines, especially the continutation
  38. * lines (ending with \). Again, turn on display of tabs and spaces
  39. * (if your text editor supports that) to make sure -- the C compiler
  40. * does not like these!
  41. */
  42. #ifdef NOT_US_PC
  43. #define szBANNER_DMF_INDICATOR "n" // Not IBM BIOS version (i.e., NEC)
  44. #else
  45. #define szBANNER_DMF_INDICATOR ""
  46. #endif
  47. /*LOCALIZE
  48. *
  49. * Purpose: The name, date, and version of this tool:
  50. * Generate: Type "EXTRACT"
  51. */
  52. #define pszBANNER \
  53. "Microsoft (R) Cabinet Extraction Tool - Version " VER_FILEVERSION_STR szBANNER_DMF_INDICATOR "\n" \
  54. VER_LEGALCOPYRIGHT_STR ".\n"
  55. /*LOCALIZE
  56. *
  57. * Purpose: Command line syntax.
  58. * Generate: Type "EXTRACT /?" or just "EXTRACT"
  59. */
  60. #define pszCMD_LINE_HELP \
  61. " EXTRACT [/Y] [/A] [/D | /E] [/L dir] cabinet [filename ...]\n" \
  62. " EXTRACT [/Y] source [newname]\n" \
  63. " EXTRACT [/Y] /C source destination\n\n" \
  64. "Parameters List:\n" \
  65. " cabinet - Cabinet file (contains two or more files).\n" \
  66. " filename - Name of the file to extract from the cabinet.\n" \
  67. " Wild cards and multiple filenames (separated by\n" \
  68. " blanks) may be used.\n" \
  69. "\n" \
  70. " source - Compressed file (a cabinet with only one file).\n" \
  71. " newname - New filename to give the extracted file.\n" \
  72. " If not supplied, the original name is used.\n" \
  73. "\n" \
  74. " /A Process ALL cabinets. Follows cabinet chain\n" \
  75. " starting in first cabinet mentioned.\n" \
  76. " /C Copy source file to destination (to copy from DMF disks).\n" \
  77. " /D Display cabinet directory (use with filename to avoid \n" \
  78. " extract).\n" \
  79. " /E Extract (use instead of *.* to extract all files).\n" \
  80. " /L dir Location to place extracted files (default is current \n" \
  81. " directory).\n" \
  82. " /Y Do not prompt before overwriting an existing file.\n\n" \
  83. "Examples:\n" \
  84. " EXTRACT /C diamond.cab diamond.exe\n" \
  85. " EXTRACT /D diamond.cab \n" \
  86. " EXTRACT /E mycab.cab \n" \
  87. " EXTRACT /L c:\\extract mycab.cab myfile1 myfile2 \n" \
  88. /*
  89. ** Command Line Switches
  90. */
  91. /*NoLocalize
  92. */
  93. #define chSWITCH1 '/'
  94. #define chSWITCH2 '-'
  95. /*NoLocalize
  96. */
  97. #define chSWITCH_HELP '?'
  98. #define chSWITCH_ALL 'A'
  99. #define chSWITCH_COPY 'C'
  100. #define chSWITCH_DIRECTORY 'D'
  101. #define chSWITCH_EXTRACT 'E'
  102. #define chSWITCH_LOCATION 'L'
  103. #define chSWITCH_RESERVE 'R' //** Purposely undocumented!
  104. #define chSWITCH_OVERWRITE 'Y'
  105. #define chSWITCH_ZAP 'Z' //** Purposely undocumented!
  106. #define chSWITCH_ONCE '#' //** Purposely undocumented!
  107. /*
  108. ** Status messages
  109. */
  110. /*LOCALIZE
  111. *
  112. * Purpose: To display invalid syntax.
  113. * %1 = cabinet file name
  114. * Generate: Type "EXTRACT /D loctest1.cab"
  115. * Expect: " Cabinet loctest1.cb"
  116. */
  117. #define pszINVALID_SYNTAX L"ERROR: Invalid Syntax.\n"
  118. /*LOCALIZE
  119. *
  120. * Purpose: To display invalid syntax.
  121. * %1 = cabinet file name
  122. * Generate: Type "EXTRACT /D loctest1.cab"
  123. * Expect: " Cabinet loctest1.cb"
  124. */
  125. #define pszHELP_MESSAGE L"Type EXTRACT /? for help usage.\n"
  126. /*LOCALIZE
  127. *
  128. * Purpose: A destination file already exists, ask if user wants to
  129. * overwrite it.
  130. * %1 = destination file name
  131. * Generate: Type:
  132. * EXTRACT loctest1.cab a.asc
  133. * EXTRACT loctest1.cab a.asc
  134. * Expect: "Overwrite a.asc (Yes/No/All)?"
  135. * ^^^^^^^^^^-----^^^^^^^^^^^^^^
  136. */
  137. #define pszEXT_OVERWRITE_PROMPT "Overwrite %1 (Yes/No/All)?"
  138. #define chOVERWRITE_YES 'Y'
  139. #define chOVERWRITE_NO 'N'
  140. #define chOVERWRITE_ALL 'A'
  141. /*LOCALIZE
  142. *
  143. * Purpose: Indicates name of current cabinet file being processed.
  144. * %1 = cabinet file name
  145. * Generate: Type "EXTRACT /D loctest1.cab"
  146. * Expect: " Cabinet loctest1.cb"
  147. */
  148. #define pszEXT_CABINET_HEADER " Cabinet %1"
  149. /*LOCALIZE
  150. *
  151. * Purpose: Indicates name of a file being extracted to current directory.
  152. * %1 = file name from inside a cabinet file
  153. * Generate: Type "EXTRACT loctest1.cab a.asc"
  154. * Expect: "Extracting a.asc"
  155. */
  156. #define pszEXT_EXTRACTING_FILE "Extracting %1"
  157. /*LOCALIZE
  158. *
  159. * Purpose: Indicates file being extracted to a different directory.
  160. * %1 = file name from inside a cabinet file
  161. * %2 = path specified on /L parameter where file is going
  162. * Generate: Type "EXTRACT /A /L raw loctest1.cab a.asc"
  163. * Expect: "Extracting a.asc -> raw\a.asc"
  164. * (assuming foo.cab contains file.exe)
  165. */
  166. #define pszEXT_EXTRACTING_FILE2 "Extracting %1 -> %2"
  167. /*LOCALIZE
  168. *
  169. * Purpose: Indicates that requested files were not found.
  170. * Generate: Type "EXTRACT /D loctest1.cab missing.dat"
  171. * Expect: "No matching files."
  172. */
  173. #define pszEXT_NO_MATCHING_FILES "No matching files."
  174. /*LOCALIZE
  175. *
  176. * Purpose: File date/time format (used on file directory lines):
  177. * %1 = month (1..12)
  178. * %2 = day (1..31)
  179. * %3 = year (1..99)
  180. * %4 = hour (1..12)
  181. * %5 = minute (0..59)
  182. * %6 = second (0..59)
  183. * %7 = AM/PM indicator (see pszEXT_TIME_AM/PM)
  184. * Generate: Type "EXTRACT /D loctest1.cab a.asc"
  185. * Expect: "04-01-1994 3:28:08p A--- 16,184 a.asc"
  186. * --^--^----^--^--^---
  187. * This is the portion produced from the following 3 strings
  188. *
  189. * NOTE: For German and other languages/countries that use a 24-hour
  190. * clock (00:00:01 to 23:59:59), set the AM/PM strings to the empty
  191. * string (i.e., ""), and that will force 24-hour format!
  192. */
  193. #define pszEXT_DATE_TIME "%1-%2-%3 %4:%5:%6%7"
  194. #define pszEXT_TIME_AM "a"
  195. #define pszEXT_TIME_PM "p"
  196. /*NoLocalize - (date/time attributes filesize filename)
  197. */
  198. #define pszEXT_FILE_DETAILS "%1 %2 %3 %4"
  199. /*LOCALIZE
  200. *
  201. * Purpose: Summary line with 1 file and total number of bytes:
  202. * %1 = 1
  203. * %2 = count of bytes
  204. * Generate: Type "EXTRACT /D loctest1.cab a.asc"
  205. * Expect: " 1 File 16,184 bytes"
  206. * ----^^^^^^^^^^^^^^-------^^^^^^
  207. */
  208. #define pszEXT_SUMMARY1 " %1 File %2 bytes" // 1 file
  209. /*LOCALIZE
  210. *
  211. * Purpose: Summary line with >1 files and total number of bytes:
  212. * %1 = count of files
  213. * %2 = count of bytes
  214. * Generate: Type "EXTRACT /D loctest1.cab"
  215. * Expect: " 16 Files 258,944 bytes"
  216. * ----^^^^^^^^^^^^^^-------^^^^^^
  217. */
  218. #define pszEXT_SUMMARY2 " %1 Files %2 bytes" // >1 file
  219. /*LOCALIZE
  220. *
  221. * Purpose: Indicates a file that is split across a cabinet boundary.
  222. * %1 = filename of file that is split
  223. * %2 = cabinet file name where file starts
  224. * %3 = Descriptive disk name where cabinet file exists
  225. * Generate: Type "EXTRACT /D loctest2.cab m.asc"
  226. * Expect: "m.asc : Starts in cabinet loctest1.cab on disk 'Disk 1'"
  227. * -----^^^^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^------^
  228. */
  229. #define pszEXT_PARTIAL_FILE "%1 : Starts in cabinet %2 on disk '%3'"
  230. /*NoLocalize - This are informative displays on cabinets with RESERVED space
  231. */
  232. //BUGBUG 07-Jun-1994 bens What do we do with this stuff?
  233. // These were present for testing RESERVED stuff, in the absence of an
  234. // actual crytposystem.
  235. #define pszEXT_DECRYPT_HEADER "CRYPT Header: r=<%1,%2> setID=%3 iCabinet=%4"
  236. #define pszEXT_DECRYPT_FOLDER "CRYPT Folder: r=<%1,%2> iFolder=%3"
  237. #define pszEXT_DECRYPT_DATA "CRYPT Data: r=<%1,%2> b=<%3,%4> fSplit=%5 cbPartial=%6"
  238. /*LOCALIZE
  239. *
  240. * Purpose: Prompt for next cabinet when previous cabinet was on a floppy.
  241. * %1 = Name of desired cabinet file
  242. * %2 = Disk label of floppy with desired cabinet
  243. * %3 = Drive letter of floppy drive
  244. * Generate: Copy loctest1.cab to one disk, and loctest2.cab to another
  245. * disk, then stick the first disk in drive A and type
  246. * "EXTRACT loctest1.cab m.asc"
  247. * Expect:
  248. * "Extract needs cabinet file 'loctest2.cab'. Please insert the disk"
  249. * "labeled 'Disk 2' into drive A, and press ENTER. You may
  250. * "enter a different drive and/or path:"
  251. */
  252. #define pszEXT_FLOPPY_PROMPT \
  253. "Extract needs cabinet file '%1'. Please insert the disk\n" \
  254. "labeled '%2' into drive %3, and press ENTER. You may\n" \
  255. "enter a different drive and/or path:"
  256. /*LOCALIZE
  257. *
  258. * Purpose: Prompt for next cabinet on a hard disk (non-removable media)
  259. * %1 = Name of desired cabinet file
  260. * %2 = Disk label with desired cabinet
  261. * Generate: Copy loctest1.cab to directory FOO, "cd FOO", *don't* put
  262. * loctest2.cab in the FOO directory, then type
  263. * "EXTRACT loctest1.cab m.asc"
  264. * Expect:
  265. * "Extract needs cabinet file 'loctest2.cab' from 'Disk 2'."
  266. * "Please enter the path where this file may be"
  267. * "found, and press ENTER:"
  268. */
  269. #define pszEXT_NOFLOPPY_PROMPT \
  270. "Extract needs cabinet file '%1' from '%2'.\n" \
  271. "Please enter the path where this file may be\n" \
  272. "found, and press ENTER:"
  273. /*
  274. ** Error messages
  275. */
  276. /*LOCALIZE
  277. *
  278. * Purpose: Prefix string for *all* error messages.
  279. * %1 = Detailed error message (one of pszEXTERR_... below)
  280. * Generate: Type "EXTRACT /x" (bad switch)
  281. * Expect: "ERROR: Invalid switch: /x"
  282. * ^^^^^^^------------------
  283. */
  284. #define pszEXTERR_ERROR "ERROR: %1"
  285. /*LOCALIZE
  286. *
  287. * Purpose: Indicate an unknown or bad command line switch.
  288. * %1 = Bad switch string
  289. * Generate: Type "EXTRACT /x" (bad switch)
  290. * Expect: "ERROR: Invalid switch: /x"
  291. * ^^^^^^^^^^^^^^^^--
  292. */
  293. #define pszEXTERR_BAD_SWITCH "Invalid switch: %1"
  294. /*LOCALIZE
  295. *
  296. * Purpose: Indicate a switch that is inconsistent with a previous switch.
  297. * %1 = Bad switch string
  298. * Generate: Type "EXTRACT /d /e" (Can't do directory & extract both)
  299. * Expect: "ERROR: Conflicting switch: e"
  300. * ^^^^^^^^^^^^^^^^^^^^-
  301. */
  302. #define pszEXTERR_CONFLICTING_SWITCH "Conflicting switch: %1"
  303. /*LOCALIZE
  304. *
  305. * Purpose: OUT OF MEMORY trying to initialize EXTRACT.
  306. * Generate: Difficult -- have to get very low memory situation,
  307. * then type "EXTRACT".
  308. * Expect: "ERROR: Could not allocate SESSION"
  309. */
  310. #define pszEXTERR_NO_SESSION "Could not allocate SESSION"
  311. /*LOCALIZE
  312. *
  313. * Purpose: Indicate command line syntax error -- /L with no path.
  314. * Generate: "EXTRACT /L" (location missing)
  315. * Expect: "ERROR: Location missing"
  316. */
  317. #define pszEXTERR_MISSING_LOCATION "Location missing"
  318. /*LOCALIZE
  319. *
  320. * Purpose: Indicate general command line syntax error.
  321. * Generate: "EXTRACT /C" (no files specified)
  322. * Expect: "ERROR: Bad parameters"
  323. */
  324. #define pszEXTERR_BAD_PARAMETERS "Bad parameters"
  325. /*LOCALIZE
  326. *
  327. * Purpose: Indicate command line syntax error -- /L used twice.
  328. * Generate: "EXTRACT /L foo /L bar" (two locations)
  329. * Expect: "ERROR: Location specified more than once"
  330. */
  331. #define pszEXTERR_LOCATION_TWICE "Location specified more than once"
  332. /*LOCALIZE
  333. *
  334. * Purpose: OUT OF MEMORY saving a command-line filespec.
  335. * %1 = filespec being added.
  336. * Generate: Difficult -- have to get very low memory situation, then
  337. * type "EXTRACT loctest1.cab *.exe *.dll *.txt".
  338. * Expect: "ERROR: Could not add filespec: *.txt"
  339. */
  340. #define pszEXTERR_COULD_NOT_ADD_FILE "Could not add filespec: %1"
  341. /*LOCALIZE
  342. *
  343. * Purpose: Command line syntax error -- no cabinet file name specified.
  344. * Generate: Type "EXTRACT /A".
  345. * Expect: "ERROR: Must supply a cabinet file name"
  346. */
  347. #define pszEXTERR_MISSING_CABINET "Must supply a cabinet file name"
  348. /*LOCALIZE
  349. *
  350. * Purpose: INTERNAL ERROR -- FDIDestroy() call failed.
  351. * Generate: This is probably impossible to generate -- don't try.
  352. * Expect: "ERROR: FDIDestroy failed"
  353. */
  354. #define pszEXTERR_FDIDESTROY_FAILED "FDIDestroy failed"
  355. /*LOCALIZE
  356. *
  357. * Purpose: Could not create file being extracted.
  358. * %1 = name of file Extract was trying to create
  359. * Generate: Put a write-protected disk in drive A:, type
  360. * "EXTRACT /L a:\ loctest1.cab a.asc".
  361. * NOTE: Testing under NT I couldn't get this message --
  362. * MS-DOS/Win16 may be more fruitful.
  363. * Expect: "ERROR: Cannot create file: a.asc"
  364. */
  365. #define pszEXTERR_CANNOT_CREATE_FILE "Cannot create file: %1"
  366. /*LOCALIZE
  367. *
  368. * Purpose: Could not open cabinet file.
  369. * %1 = name of cabinet file that cannot be opened
  370. * Generate: Type "EXTRACT /D junk.jnk" (junk.jnk does not exist)
  371. * Expect: "ERROR: Cannot open file: junk.jnk"
  372. */
  373. #define pszEXTERR_CANNOT_OPEN_FILE "Cannot open file: %1"
  374. /*LOCALIZE
  375. *
  376. * Purpose: Specified file is not a cabinet file.
  377. * %1 = name of cabinet file that is not a cabinet file
  378. * Generate: Type "EXTRACT /D extract.exe"
  379. * Expect: "ERROR: extract.exe is not a cabinet file"
  380. */
  381. #define pszEXTERR_NOT_A_CABINET "%1 is not a cabinet file"
  382. /*LOCALIZE
  383. *
  384. * Purpose: Indicate user cancelled EXTRACT.EXE.
  385. * Generate: Type "MD junk", "COPY loctest1.cab JUNK", "CD junk",
  386. * "EXTRACT /AD loctest1.cab", and when you are prompted
  387. * for the next cabinet, type CTRL+Z and press ENTER.
  388. * Expect: "ERROR: Cancelled"
  389. */
  390. #define pszEXTERR_ABORT "Cancelled"
  391. /*
  392. ** FDI error messages
  393. */
  394. /*LOCALIZE
  395. *
  396. * Purpose: Could not create a temporary file that the decompressor
  397. * needs to store data that overflows its RAM workspace.
  398. * %1 = name of cabinet file being processed
  399. * %2 = name of temporary file that could not be created
  400. * Generate: Drive D:\ is read-only -- a CD-ROM drive or a read-only
  401. * network connection, for example.
  402. * Type:
  403. * SET TMP=D:\
  404. * EXTRACT /E LOCTEST3.CAB
  405. * Expect: "ERROR: Could not create temporary file while decompressing Q121.CAB: esf2"
  406. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------^^----
  407. */
  408. #define pszFDIERR_SPILL_CREATE "Could not create temporary file for %1: %2"
  409. /*LOCALIZE
  410. *
  411. * Purpose: Not enough space for temporary file that the decompressor
  412. * needs to store data that overflows its RAM workspace.
  413. * %1 = name of cabinet file being processed
  414. * %2 = name of temporary file
  415. * %3 = required size of temporary file
  416. * Generate: Drive D:\ has less than 2Mb of free space, but is writeable.
  417. * Type:
  418. * SET TMP=D:\
  419. * EXTRACT /E LOCTEST3.cab
  420. * Expect: "ERROR: Not enough space for temporary file esf2 while decompressing Q121.CAB: 20971523 bytes needed""
  421. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  422. */
  423. #define pszFDIERR_SPILL_SIZE "Not enough space for temporary file %2 while decompressing %1: %3 bytes needed"
  424. /*LOCALIZE
  425. *
  426. * Purpose: FDI could not find the specified cabinet file.
  427. * %1 = name of cabinet file that cannot be opened
  428. * Generate: Difficult -- Extract made sure the cabinet file was present
  429. * before calling FDI! DO NOT TRY TO REPRO.
  430. * Expect: "ERROR: Could not find cabinet file loctest1.cab"
  431. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  432. */
  433. #define pszFDIERR_CAB_NOT_FOUND "Could not find cabinet file %1"
  434. /*LOCALIZE
  435. *
  436. * Purpose: FDI determined cabinet file header is incorrect.
  437. * %1 = name of cabinet file that is not a cabinet file
  438. * Generate: Difficult -- Extract called FDI first to see if the
  439. * before calling FDI! DO NOT TRY TO REPRO.
  440. * Expect: "ERROR: loctest1.cab is not a cabinet file"
  441. * ------------^^^^^^^^^^^^^^^^^^^^^^
  442. */
  443. #define pszFDIERR_NOT_A_CABINET "%1 is not a cabinet file"
  444. /*LOCALIZE
  445. *
  446. * Purpose: FDI does not recognize the cabinet version number.
  447. * %1 = name of cabinet file
  448. * %2 = Version number found in cabinet file
  449. * Generate: Difficult - Use a binary file editor (DEBUG) to change the
  450. * word at offset 26 decimal (1A hex) in loctest1.cab to
  451. * 0xFFFF, and save it as bad.cab, then type
  452. * "EXTRACT /D bad.cab"
  453. * Expect: "ERROR: Cabinet file bad.cab has an unknown version(FFFF)"
  454. * ^^^^^^^^^^^^^-------^^^^^^^^^^^^^^^^^^^^^^^^----^
  455. */
  456. #define pszFDIERR_BAD_CAB_VER "Cabinet file %1 has an unknown version(%2)"
  457. /*LOCALIZE
  458. *
  459. * Purpose: FDI detected a corruption in the cabinet format.
  460. * %1 = name of cabinet file
  461. * Generate: Difficult - Use a binary file editor (DEBUG) to write out
  462. * the first 120 bytes of loctest1.cab to bad.cab, then type
  463. * "EXTRACT /D bad.cab"
  464. * Expect: "ERROR: Cabinet file bad.cab is corrupted"
  465. * ^^^^^^^^^^^^^-------^^^^^^^^^^^^^
  466. */
  467. #define pszFDIERR_CORRUPT_CAB "Cabinet file %1 is corrupted"
  468. /*LOCALIZE
  469. *
  470. * Purpose: OUT OF MEMORY initializing FDI.
  471. * Generate: Difficult -- have to get very low memory situation,
  472. * then type "EXTRACT /AE loctest1.cab"
  473. * Expect: "ERROR: Out of memory while processing cabinet file loctest1.cab"
  474. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  475. */
  476. #define pszFDIERR_ALLOC_FAIL "Out of memory while processing cabinet file %1"
  477. /*LOCALIZE
  478. *
  479. * Purpose: FDI detected an unsupported compression type in the cabinet.
  480. * Generate: Difficult -- have to find a CFFOLDER structure and then trash
  481. * the typeCompression field -- DO NOT TRY TO REPRO.
  482. * Expect: "ERROR: Unknown compression type in cabinet file loctest1.cab"
  483. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  484. */
  485. #define pszFDIERR_BAD_COMPR_TYPE "Unknown compression type in cabinet file %1"
  486. /*LOCALIZE
  487. *
  488. * Purpose: FDI detected corrupted compressed data in the cabinet.
  489. * Generate: Difficult -- have to find a CFDATA structure and then trash
  490. * the compressed data area -- DO NOT TRY TO REPRO.
  491. * Expect: "ERROR: Failure decompressing cabinet file loctest1.cab"
  492. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  493. */
  494. #define pszFDIERR_MDI_FAIL "Failure decompressing cabinet file %1"
  495. /*LOCALIZE
  496. *
  497. * Purpose: FDI had problems writing out an extracted file.
  498. * Generate: Difficult -- perhaps try telling extract to put files out to
  499. * to a disk that has only 8K of space, i.e., type
  500. * "EXTRACT /AEL X: loctest1.cab" where X: has 8K free space.
  501. * Expect: "ERROR: Error creating destination file a.asc from cabinet file loctest1.cab"
  502. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^^^------------
  503. */
  504. #define pszFDIERR_TARGET_FILE "Error creating destination file %1 from cabinet file %2"
  505. /*LOCALIZE
  506. *
  507. * Purpose: FDI detected inconsistent RESERVE settings in a cabinet set.
  508. * Generate: Difficult -- DO NOT TRY TO REPRO.
  509. * Expect: "ERROR: RESERVE size mismatch in cabinet file loctest2.cab"
  510. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  511. */
  512. #define pszFDIERR_RESERVE_MISMATCH "RESERVE size mismatch in cabinet file %1"
  513. /*LOCALIZE
  514. *
  515. * Purpose: FDI did not get back the expected continuation cabinet.
  516. * Generate: Difficult -- DO NOT TRY TO REPRO.
  517. * Expect: "ERROR: Wrong continuation cabinet file loctest2.cab"
  518. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  519. */
  520. #define pszFDIERR_WRONG_CABINET "Wrong continuation cabinet file %1"
  521. /*LOCALIZE
  522. *
  523. * Purpose: FDI was aborted.
  524. * Generate: Difficult -- DO NOT TRY TO REPRO.
  525. * Expect: "ERROR: User aborted while processing cabinet file loctest1.cab"
  526. * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  527. */
  528. #define pszFDIERR_USER_ABORT "User aborted while processing cabinet file %1"
  529. /*LOCALIZE
  530. *
  531. * Purpose: INTERNAL ERROR - FDI returned unknown error code.
  532. * Generate: Difficult -- DO NOT TRY TO REPRO.
  533. * Expect: "ERROR: Unknown error(??) processing cabinet file loctest2.cab"
  534. * ^^^^^^^^^^^^^^--^^^^^^^^^^^^^^^^^^^^^^^^^^------------
  535. */
  536. #define pszFDIERR_UNKNOWN_ERROR "Unknown error(%1) processing cabinet file %2"
  537. //*** THE END - extract.msg