Updating Resources on Win9x

Environment: Win9x

Windows NT contains some useful functions for updating resources in
executables. Those are, however, not implemented on Windows 9x, so I had to
write my own library for doing it. My library works in exactly the same
manner as the BeginUpdateResource(), UpdateResource() and
EndUpdateResource() API functions, just prepend an underscore to their
names. It also provides a new function, _GetRsrcData(), which is used to get
the resource data for a resource in a file loaded with
_BeginUpdateResource().

The code works, at least on my system, but it has one major drawback: it
can’t move a section in memory. This means that if the .rsrc section would
have to be expanded past its padding, _EndUpdateResource() will return
ERROR_CANT_MOVE_SECTION unless .rsrc is the last section (both in the file
and in VM space). This is a problem because VC6 puts the .reloc section
(relocation info, used in DLLs and debug EXEs) after .rsrc, so you can’t use
the functions very well on those file types.

Downloads

Download source – 7 Kb

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read