Sync to Wine-20050725:
authorGé van Geldorp <ge@gse.nl>
Fri, 12 Aug 2005 17:07:28 +0000 (17:07 +0000)
committerGé van Geldorp <ge@gse.nl>
Fri, 12 Aug 2005 17:07:28 +0000 (17:07 +0000)
commit5b9aceccd3185e74ecd540ce1dbcc4e70b7a3810
tree6659f9519f474cf98c60d207f347c16284a9970e
parentcaa4e5c6eece54dae933a51f5a9794b22455ab9d
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
21 files changed:
reactos/lib/msi/Makefile.in
reactos/lib/msi/action.c
reactos/lib/msi/action.h
reactos/lib/msi/appsearch.c
reactos/lib/msi/custom.c
reactos/lib/msi/dialog.c
reactos/lib/msi/events.c
reactos/lib/msi/files.c
reactos/lib/msi/helpers.c
reactos/lib/msi/install.c
reactos/lib/msi/msi.c
reactos/lib/msi/msi.spec
reactos/lib/msi/msi.xml
reactos/lib/msi/msipriv.h
reactos/lib/msi/package.c
reactos/lib/msi/registry.c
reactos/lib/msi/source.c [new file with mode: 0644]
reactos/lib/msi/string.c
reactos/lib/msi/suminfo.c
reactos/lib/msi/upgrade.c
reactos/w32api/include/msi.h