----------------------------------------------

Resource Hacker - Version 3.2.5

3 March 2001.
Copyright 1999-2001 Angus Johnson

http://rpi.net.au/~ajohnson/resourcehacker

FREEWARE utility to view, modify,
add and delete resources in Win32 executables.
Incorporates an internal resource compiler and
decompiler. Works on both Win9x and WinNT.

----------------------------------------------
Summary:
----------------------------------------------

Resource Hacker has been designed to:

1. View resources in Win32 executable and 
related files (*.exe, *.dll, *.cpl, *.ocx) in 
both compiled and decompiled formats;

2. Extract (save) resources to file in: 
*.res format; as a binary; or as decompiled 
resource scripts or images. 
Icons, bitmaps, cursors, menus, dialogs, 
string tables, message tables, accelerators, 
Borland forms and version info resources can 
be fully decompiled into their respective 
formats, whether as image files or  *.rc text 
files.

3. Modify (replace) resources in executables. 
Image resources (icons, cursors and bitmaps) 
can be replaced with an image from a 
corresponding image file (*.ico, *.cur, *.bmp), 
a *.res file or even another *.exe file. 
Dialogs, menus, stringtables, accelerators and 
messagetable resource scripts (and also Borland 
forms) can be edited and recompiled using the 
internal resource script editor.
Resources can also be replaced with resources 
from a *.res file as long as the replacement 
resource is of the same type and has the same 
name.

4. Add new resources to executables.
Enable a program to support multiple languages, 
or add a custom icon or bitmap (company logo 
etc) to a program's dialog.

5. Delete resources. 
Most compilers add resources into applications 
which are never used by the application. 
Removing these unused resources can reduce an 
application's size.

----------------------------------------------
History:
----------------------------------------------

3 March 2001 (Version 3.2.5):

  * Enhanced the Dialog Editor's functionality 
  when adding new controls.
  * The line number of Editor's insertion point 
  is now displayed on the left of the statusbar.
  * The Menu Preview is now able to display 
  popup menus which don't have a caption.
  * Bug fix (introduced in the previous update):
  Dialogs displaying bitmaps would no longer 
  always display the correct size of the bitmap.
  * Other minor improvements.

20 February 2001 (Version 3.2.4):

  * A Dialog Editor has been added and can be 
  activated by right clicking on a Dialog Preview.
  * Plain text resources can now be modified and 
  recompiled using the internal editor.
  * Bug-fix: Dialog scripts were not being 
  displayed if either the dialog width or 
  dialog height equalled zero.
  * Bug-fix: Occasionally a valid menu script 
  would raise an error when compiling.
  * Bug-fix: StringTable entries with more than 
  50 special characters (\t,\n etc) could not be 
  viewed and raised an error.


28 January 2001 (Version 3.2.3):

  * The Dialog Preview/Designer is now detached 
  from the main window.
  * Whenever a control is selected in the 
  Dialog Designer, its definition in the script will also 
  be flagged with a red marker.
  * Several minor bug fixes.

14 January 2001 (Version 3.2.2):

  * Programs which are modified will now have their 
  CheckSums updated too.
  * Combobox controls in the preview dialog now
  have resizing handles which reflect the size of its 
  dropdown window (ie consistent with the dialog script).
  * A control can now be deleted by using the DEL key 
  once it has been selected in a preview dialog.
  * Bug fix: Resource Hacker crashed when Alt+C 
  was pressed when the Preview Dialog had focus. 

9 January 2001 (Version 3.2.1):

  * Numerous bug fixes: 
  - STRINGTABLE with StringID = 0 will now compile; 
  - ACCELETATOR recompile bug fixed.
  - Old style bitmaps will now be displayed; 
  - A maximised state will be retained between sessions; 
  - Alt+C will now compile when Preview Dialog has focus; 
  - Text ending with doubleslashes (eg: "bug\\") will compile;
  - DIALOG scripts containing MENU or CLASS statements 
  would occasionally raise an error on compiling. 
  - FONT statement in DIALOGEX scripts now fully supports 
  FontWeight, Italic and FontCharset parameters.
  - Several other minor bug fixes/cosmetic improvements.

1 January 2001 (Version 3.1):

  * Most-Recently-Used file list added to File menu.

  * Bug fix: Unusual characters in filenames would 
  not be correctly read by the commandline script
  parser.

  * Visual redesign tool for dialogs improved.

  * Warned dialog added whenever leaving a resource 
  which has been modified but not recompiled.

  * Edit menu added.

  * Images can now be copied to the clipboard.

  * User defined resources containing just plain text 
  will now be displayed as text, not as binary data.

12 December 2000 (Version 3.0):

  * Resource items can now be added from files 
  of any binary type, no longer needing to compile 
  them into *.res files first. This includes, but is not 
  restricted to image files (*.ico, *.cur, *.bmp).

  * Commandline Scripting added. All the functionality 
  of Resource Hacker (apart from viewing resources) 
  can now be accessed from the commandline 
  without having to open Resource Hacker.

  * Added Any File (*.*) option to Open File Dialog
  File types (no longer limited to exe, dll, ocx and
  cpl files). However, the file must still be a 
  Win32 PE format file.

  * Save As Dialog now warns users attempting to
  save resources to non-existant directories.

  * Bug fix: MSVC++ debug table offsets were not 
  being updated when resources were modified.

  * VersionInfo resources can now be modified etc.

  * Numerous other minor improvements.

1 November 2000 (Version 2.6): 

  * Text search added - find resource items 
  containing text compiled in both ANSI and 
  UNICODE formats.

  * "File Save" menu option added. The original 
  file is backed up if a backup copy does not 
  already exist. (eg: MyProgram.exe will be copied 
  to MyProgram_original.exe, unless it already 
  exists, before being modified.) 

  * Bug Fix: VersionInfo resources would 
  occasionally not decompile correctly.

10 September 2000 (Version 2.5): 

  * Resources can now be deleted.
  (nb: VersionInfo resources cannot be deleted).

  * Bug Fix: Modified applications occasionally 
  displayed the generic executable icon, 
  not the application's icon. 

  * Fixes to a couple of other minor bugs.

18  August 2000 (Version 2.4.0.4): 

  * Bug Fix: Would not compile some Chinese text.

  * Improved translation support. Scripts are now 
  compiled using the codepage appropriate to the 
  internal editor's selected font rather than the 
  operating system's default codepage.

  (Thanks to Frank Cheng for feedback while fixing 
  both these DBCS issues.)

  * Bug fix: Occasionally StringTable resources 
  would not be decompiled.

  * Bug fix: Accelerators would not compile if they 
  included the ASCII keyword.

   * The command line will now accept a filename 
  as a parameter.

  * The Samples.dll file is no longer included 
  in the download.

  * Homepage added: 
  http://rpi.net.au/~ajohnson/resourcehacker.


3  July 2000 (Version 2.4.0.3): 

  * Bug Fix: Bug introduced with changes in the 
  previous update which caused an error in 
  "Update all Resources" preventing any updates.

  * Bug Fix: Occasional bug when extracting 
  resources to a RES file.

  * A couple of very minor improvements to the 
  compiler have also been made.


26  May 2000 (Version 2.4.0.2): 

  * Multibyte character set support (Japanese, 
  Chinese etc) for the internal editor has been 
  added (with thanks to Bob Ishida for feedback 
  during debugging).

  * Bug fix: Cursors with multiple images were not 
  being correctly imported when replacing cursors.

  * Numerous other improvements and cosmetic changes.

  * A number of documentation errors in the 
  help file have also been fixed.


20  Apr 2000 (Version 2.3.0.6): 

  * The JPG and MIDI data formats are now 
  detected and displayed or played.

  * Bug Fix: WAVE, AVI and GIF formats were 
  not being detected in the RCDATA section.

  * Bug Fix: The folder where resource data 
  was last saved was not being stored between 
  sessions.

16  Apr 2000 (Version 2.3.0.5): 

  * The AVI and WAVE data formats are now 
  detected and displayed or played.

  * The GIF data format is now detected and 
  displayed (with thanks to Anders Melander 
  for TGifImage).

  * A number of sample resources have been 
  removed from the Resource Hacker executable 
  and placed in "Samples.dll". (This dll can be 
  deleted without affecting Resource Hacker.)

13  Feb 2000 (Version 2.3.0.3): 

  * The editor's font can now be changed. 
  This enables changes to the editor's 
  font script (character code) which is 
  useful when translating resources.

  * Menu editor [Show/Hide] button added.

  * Coloured treeview cursor removed :-(.

  * Dialog controls now have coordinates 
  displayed when selected too. (see 
  version 2.3.0.2).

11  Feb 2000 (Version 2.3.0.2): 

  *Bug Fix: Major modifications to dll's still 
  occasionally failed. Now finally fixed.

  *The treeview window width can now be 
  adjusted. 

  *Resource Hacker's window size and  position 
  is now stored between sessions (in an *ini 
  file ) as are the folders for the last opened 
  and saved files. 

  *While moving or resizing dialog controls - 
  the control coordinates (in dialog units) 
  are now displayed in the panel located above 
  the dialog script.


9  Feb 2000 (Version 2.3.0.1): 

  *Resources can now be added.

  *LANGUAGE statements in resource scripts are 
  no longer "read-only".
  
  *Resources can now be updated with all 
  matching resources in an external resource 
  file (*.res) in a single operation.
  
  *Bug Fix: Replacing cursors & icons from
  resource files (*.res) was broken.


1  Feb 2000 (Version 2.2.0.1): 

  *Bug Fix: Modifying dll's occasionally 
  stopped them working (the relative virtual 
  addresses of sections following the resource 
  section were not being adjusted).

  *MESSAGETABLE and ACCELERATOR resources can 
  now also be edited and recompiled using the 
  internal editor.

  *Dialogs will be displayed even when they
  contain unregistered controls (a gray 
  rectangle will appear in the position of 
  each unregistered control).

  *Dialog editor now compiles controls defined 
  by using either of the following styles:

    CONTROL text, control-ID, control-class, 
            control-style, x, y, width, height

    CLASS_MAIN_STYLE text, control-ID, 
            x, y, width, height, control-style

  *Modified files now preserve the original 
  file date and time.

  *Resources (menus, dialogs, stringtables, 
  accelerators & messagetables) can now be saved 
  in a single operation to a single *.rc file.

  *Numerous other minor improvements.


17  Jan 2000 (Version 2.1.1.4): 

  *Bug Fix: Memory leak fixed.

  *Bug Fix: Numeric captions in dialog 
  resources were not compiled correctly.

  *Resources can now be saved to file as a binary.

  *Improved handling of special characters (tab, 
  newline, backslash & doublequote) in resource 
  scripts.

  *Dialog resource forms and controls can now be 
  visually moved and resized.


2 Jan 2000 (Version 2.0.1.2): 

  *DIALOG, DIALOGEX, MENU, MENUEX, STRINGTABLE 
  and BORLAND FORM resources can now be edited 
  and recompiled using the internal editor.

  *Bug Fix - large resources which were 
  displayed as hexidecimal took forever to load. 
  The display algorithm for these resources is 
  now much faster.

  *Bug Fix - Tab and Newline characters are now 
  converted to  \t  and  \n   respectively in 
  dialog script control captions.

  *Bitmap Exchange Dialog added - enables 
  viewing of bitmaps while selecting.

  *Individual icons are no longer scaled but 
  are displayed at their actual size.

  *Files can now be opened by dragging them 
  into Resource Hacker.


12 Dec 1999 (version 1.0.0.5): 

  *Bug Fix - Exchanging cursors from *.cur files 
  was broken.

  *Bug Fix - Menu resource scripts did not always 
  decompile correctly.

  * Icon & Cursor Exchange Dialogs now display 
  selected images.

  *Icons & cursor resources are now hidden in 
  the 'Exchange Other Resources' dialog.

  *MENUEX and DIALOGEX resource scripts are now 
  properly supported.

  *Resource scripts now decompile control style 
  attributes too.

  *Borland Delphi form files now decompiled.

  *Accelerators now decompiled.

  *Help file added.


03 Dec 1999 (version 0.5.0.1): 

  *Initial Release.

----------------------------------------------
Known limitations:
----------------------------------------------

1: When decompiling and recompiling Borland's Delphi 
forms in applications compiled with Delphi ver 5.0, 
there may be errors in the recompiled application 
if frames have been used to create the form. 
This error is due to the inline DFM keyword not 
being recognized. While decompiling, the inline keyword 
will be replaced by object and, if manually corrected 
before recompiling, inline will be rejected by the 
internal compiler.

Status: Resource Hacker is currently compiled with 
Delphi 3.02 but will need to be compiled with 
Delphi 5 to fix this bug. This will happen when I 
can afford it (or someone makes a donation :-)).


2: A number of applications have been "compressed" with 
an EXE compressor after they have been compiled to 
reduce the size of a program. This has a side-effect of 
making it much more difficult to view and modify 
resources. When a "compressed" executable is viewed with 
Resource Hacker, only each resource's type and name 
will be visible but not the actual resource image.

Status: This is not viewed as a bug. The application 
developer may well have viewed this as beneficial 
feature so no  "fix" is planned. 

----------------------------------------------
Licence Agreement:
----------------------------------------------

This program has been released as freeware 
under the following conditions:

1. It is not to be distributed via the internet 
or via any other media without the prior approval 
of the author. In particular, it is not to be 
made available from internet sites which promote 
the illegal modification of software.

2. It is not used in such a way as to modify the 
copyright notice of this or any other computer 
program, to in any way disguise the registered 
user or owner of any software, or to in any way 
illegally modify software.

3. No guarantee of performance is given. 
Any damage to software resulting from using this 
software will be the responsibility of the user.

