Sync to Wine-
20050725:
Robert Shearman <rob@codeweavers.com>
- In MsiLocateComponent pcchBuf can be NULL so don't try to dereference
it.
Alexandre Julliard <julliard@winehq.org>
- Use the official names for the Unicode string constants.
Aric Stewart <aric@codeweavers.com>
- Implement MsiGetLanguage.
- Relocate the msi file to prevent cd locking, corrected to properly not
try to relocated #nnnn handles as files.
- Use the SourceList functions to get the source path in
ConfigureProductExW.
- Handle installs off multiple volumes and properly pull the prompt
string from the error table.
- If MsiGetProperty(A/W) is called with a NULL for the value buffer but
a value in the size for the value buffer, then Msi fills in the size
of the value into the pointer for size. This is tested and confirmed
with native MSI.
- Bail out if the reg key is empty. This prevents us from writing
garbage to the property table.
- Properly resize the buffer based on ERROR_MORE_DATA.
Also remember to free the allocated buffer.
- Further testing shows that when CustomActionData needs to be blank it
is an empty string not ' '.
- Correct an error where I was not properly advancing a pointer.
- Add source.c to start handling the various MsiSourceList apis used in
v3 of MSI, and now internally.
- Update files.c to use the MsiSourceList apis to make sure our
SourceList keys in the registry are included and correct.
- Use the strings defined in msi.h.
- Use SOURCEDIR instead of PackagePath. Because the PackagePath may be
local, while SOURCEDIR is more proper and will be a full directory.
- InstallShield does a number of actions using DoAction before the
Install starts so the PackageCode needs to be loaded on OpenPackage
instead of the beginning of the install process.
- When working toward install on demand support we need to reset all the
constant values so that multiple install process do not get confused
by leftover values from the previous install.
- Fill and use the ProductCode part of the MSIPACKAGE structure.
- Add the string constants located in msi.h and make use of them in
files.c and source.c.
- Keep track of what sequence we are in and register unique
actions. This allows us to make sure actions and custom actions
flagged to run only once, actually run only once.
- Also clean up some of the numeric constants in custom.c using the
defined values from msidefs.h.
Mike McCormack <mike@codeweavers.com>
- gcc 4.0 -Wpointer-sign fixes.
- Display icons in buttons that have them.
- Use LoadImage to load bitmaps and icons.
- Set the initial focus on the control specified by Control_First in the
Dialog table.
- Move to the next mask edit field when the current one becomes full.
- Make the tab order in msi dialogs right.
- Don't crash when cancelling out of a modeless dialog.
- Stop the install when cancelling from a modeless dialog.
svn path=/trunk/; revision=17331