Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
message.
- Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
- Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
actions.
- A fix to deformat_string so it only returns a null return if you
provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
- Return code of the install should not depend on the return code of the
final action.
- Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
states.
- Run the end of install actions for suspend and user exit states as
well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@ when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
startup process.
- Fix a copy and paste error, check for a null value and discard
unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.
svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2005 Mike McCormack
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
2008-01-14 15:18:47 +00:00
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
message.
- Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
- Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
actions.
- A fix to deformat_string so it only returns a null return if you
provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
- Return code of the install should not depend on the return code of the
final action.
- Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
states.
- Run the end of install actions for suspend and user exit states as
well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@ when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
startup process.
- Fix a copy and paste error, check for a null value and discard
unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.
svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_MSIDEFS_H
|
|
|
|
#define __WINE_MSIDEFS_H
|
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
enum msidbUpgradeAttributes {
|
|
|
|
msidbUpgradeAttributesMigrateFeatures = 0x0000001,
|
|
|
|
msidbUpgradeAttributesOnlyDetect = 0x00000002,
|
|
|
|
msidbUpgradeAttributesIgnoreRemoveFailure = 0x00000004,
|
|
|
|
msidbUpgradeAttributesVersionMinInclusive = 0x00000100,
|
|
|
|
msidbUpgradeAttributesVersionMaxInclusive = 0x00000200,
|
|
|
|
msidbUpgradeAttributesLanguagesExclusive = 0x00000400
|
|
|
|
};
|
|
|
|
|
2005-05-26 21:55:34 +00:00
|
|
|
enum msidbFileAttributes {
|
|
|
|
msidbFileAttributesReadOnly = 0x00000001,
|
|
|
|
msidbFileAttributesHidden = 0x00000002,
|
|
|
|
msidbFileAttributesSystem = 0x00000004,
|
|
|
|
msidbFileAttributesVital = 0x00000200,
|
|
|
|
msidbFileAttributesChecksum = 0x00000400,
|
|
|
|
msidbFileAttributesPatchAdded = 0x00001000,
|
|
|
|
msidbFileAttributesNoncompressed = 0x00002000,
|
|
|
|
msidbFileAttributesCompressed = 0x00004000
|
|
|
|
};
|
2012-01-21 17:19:12 +00:00
|
|
|
|
|
|
|
enum msidbPatchAttributes {
|
|
|
|
msidbPatchAttributesNonVital = 0x00000001
|
|
|
|
};
|
|
|
|
|
Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
message.
- Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
- Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
actions.
- A fix to deformat_string so it only returns a null return if you
provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
- Return code of the install should not depend on the return code of the
final action.
- Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
states.
- Run the end of install actions for suspend and user exit states as
well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@ when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
startup process.
- Fix a copy and paste error, check for a null value and discard
unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.
svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
|
|
|
enum msidbDialogAttributes {
|
|
|
|
msidbDialogAttributesVisible = 0x00000001,
|
|
|
|
msidbDialogAttributesModal = 0x00000002,
|
|
|
|
msidbDialogAttributesMinimize = 0x00000004,
|
|
|
|
msidbDialogAttributesSysModal = 0x00000008,
|
|
|
|
msidbDialogAttributesKeepModeless = 0x00000010,
|
|
|
|
msidbDialogAttributesTrackDiskSpace = 0x00000020,
|
|
|
|
msidbDialogAttributesUseCustomPalette = 0x00000040,
|
|
|
|
msidbDialogAttributesRTLRO = 0x00000080,
|
|
|
|
msidbDialogAttributesRightAligned = 0x00000100,
|
|
|
|
msidbDialogAttributesLeftScroll = 0x00000200,
|
|
|
|
msidbDialogAttributesBidi = 0x00000380,
|
|
|
|
msidbDialogAttributesError = 0x00010000
|
|
|
|
};
|
|
|
|
|
2005-08-03 22:12:15 +00:00
|
|
|
enum msidbControlAttributes {
|
|
|
|
msidbControlAttributesVisible = 0x00000001,
|
|
|
|
msidbControlAttributesEnabled = 0x00000002,
|
|
|
|
msidbControlAttributesSunken = 0x00000004,
|
|
|
|
msidbControlAttributesIndirect = 0x00000008,
|
|
|
|
msidbControlAttributesInteger = 0x00000010,
|
|
|
|
msidbControlAttributesRTLRO = 0x00000020,
|
|
|
|
msidbControlAttributesRightAligned = 0x00000040,
|
|
|
|
msidbControlAttributesLeftScroll = 0x00000080,
|
|
|
|
msidbControlAttributesBiDi = 0x000000c0,
|
|
|
|
|
|
|
|
msidbControlAttributesTransparent = 0x00010000,
|
|
|
|
msidbControlAttributesNoPrefix = 0x00020000,
|
|
|
|
msidbControlAttributesNoWrap = 0x00040000,
|
|
|
|
msidbControlAttributesFormatSize = 0x00080000,
|
|
|
|
msidbControlAttributesUsersLanguage = 0x00100000,
|
|
|
|
|
|
|
|
msidbControlAttributesMultiline = 0x00010000,
|
|
|
|
msidbControlAttributesPasswordInput = 0x00200000,
|
|
|
|
|
|
|
|
msidbControlAttributesProgress95 = 0x00010000,
|
|
|
|
|
|
|
|
msidbControlAttributesRemovableVolume = 0x00010000,
|
|
|
|
msidbControlAttributesFixedVolume = 0x00020000,
|
|
|
|
msidbControlAttributesRemoteVolume = 0x00040000,
|
|
|
|
msidbControlAttributesCDROMVolume = 0x00080000,
|
|
|
|
msidbControlAttributesRAMdiskVolume = 0x00100000,
|
|
|
|
msidbControlAttributesFloppyVolume = 0x00200000,
|
|
|
|
msidbControlShowRollbackCost = 0x00400000,
|
|
|
|
|
|
|
|
msidbControlAttributesSorted = 0x00010000,
|
|
|
|
msidbControlAttributesComboList = 0x00020000,
|
|
|
|
|
|
|
|
msidbControlAttributesImageHandle = 0x00010000,
|
|
|
|
msidbControlAttributesPushLike = 0x00020000,
|
|
|
|
msidbControlAttributesBitmap = 0x00040000,
|
|
|
|
msidbControlAttributesIcon = 0x00080000,
|
|
|
|
msidbControlAttributesFixedSize = 0x00100000,
|
|
|
|
msidbControlAttributesIconSize16 = 0x00200000,
|
|
|
|
msidbControlAttributesIconSize32 = 0x00400000,
|
|
|
|
msidbControlAttributesIconSize48 = 0x00600000,
|
|
|
|
|
|
|
|
msidbControlAttributesHasBorder = 0x01000000,
|
|
|
|
};
|
|
|
|
|
Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
message.
- Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
- Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
actions.
- A fix to deformat_string so it only returns a null return if you
provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
- Return code of the install should not depend on the return code of the
final action.
- Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
states.
- Run the end of install actions for suspend and user exit states as
well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@ when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
startup process.
- Fix a copy and paste error, check for a null value and discard
unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.
svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
|
|
|
enum msidbTextStyleStyleBits
|
|
|
|
{
|
|
|
|
msidbTextStyleStyleBitsBold = 0x00000001,
|
|
|
|
msidbTextStyleStyleBitsItalic = 0x00000002,
|
|
|
|
msidbTextStyleStyleBitsUnderline = 0x00000004,
|
|
|
|
msidbTextStyleStyleBitsStrike = 0x00000008,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum msidbCustomActionType
|
|
|
|
{
|
|
|
|
msidbCustomActionTypeDll = 0x00000001,
|
|
|
|
msidbCustomActionTypeExe = 0x00000002,
|
|
|
|
msidbCustomActionTypeTextData = 0x00000003,
|
|
|
|
msidbCustomActionTypeJScript = 0x00000005,
|
|
|
|
msidbCustomActionTypeVBScript = 0x00000006,
|
|
|
|
msidbCustomActionTypeInstall = 0x00000007,
|
|
|
|
|
|
|
|
msidbCustomActionTypeBinaryData = 0x00000000,
|
|
|
|
msidbCustomActionTypeSourceFile = 0x00000010,
|
|
|
|
msidbCustomActionTypeDirectory = 0x00000020,
|
|
|
|
msidbCustomActionTypeProperty = 0x00000030,
|
|
|
|
|
|
|
|
msidbCustomActionTypeContinue = 0x00000040,
|
|
|
|
msidbCustomActionTypeAsync = 0x00000080,
|
|
|
|
|
|
|
|
msidbCustomActionTypeFirstSequence = 0x00000100,
|
|
|
|
msidbCustomActionTypeOncePerProcess = 0x00000200,
|
|
|
|
msidbCustomActionTypeClientRepeat = 0x00000300,
|
|
|
|
msidbCustomActionTypeInScript = 0x00000400,
|
|
|
|
|
|
|
|
msidbCustomActionTypeRollback = 0x00000100,
|
|
|
|
msidbCustomActionTypeCommit = 0x00000200,
|
|
|
|
|
|
|
|
msidbCustomActionTypeNoImpersonate = 0x00000800,
|
|
|
|
msidbCustomActionTypeTSAware = 0x00004000,
|
|
|
|
|
|
|
|
msidbCustomActionType64BitScript = 0x00001000,
|
|
|
|
msidbCustomActionTypeHideTarget = 0x00002000
|
|
|
|
};
|
|
|
|
|
|
|
|
enum msidbFeatureAttributes
|
|
|
|
{
|
|
|
|
msidbFeatureAttributesFavorLocal = 0x00000000,
|
|
|
|
msidbFeatureAttributesFavorSource = 0x00000001,
|
|
|
|
msidbFeatureAttributesFollowParent = 0x00000002,
|
|
|
|
msidbFeatureAttributesFavorAdvertise = 0x00000004,
|
|
|
|
msidbFeatureAttributesDisallowAdvertise = 0x00000008,
|
|
|
|
msidbFeatureAttributesUIDisallowAbsent = 0x00000010,
|
|
|
|
msidbFeatureAttributesNoUnsupportedAdvertise = 0x00000020
|
|
|
|
};
|
|
|
|
|
2005-03-14 22:56:02 +00:00
|
|
|
enum msidbComponentAttributes
|
|
|
|
{
|
|
|
|
msidbComponentAttributesLocalOnly = 0x00000000,
|
|
|
|
msidbComponentAttributesSourceOnly = 0x00000001,
|
|
|
|
msidbComponentAttributesOptional = 0x00000002,
|
|
|
|
msidbComponentAttributesRegistryKeyPath = 0x00000004,
|
|
|
|
msidbComponentAttributesSharedDllRefCount = 0x00000008,
|
|
|
|
msidbComponentAttributesPermanent = 0x00000010,
|
|
|
|
msidbComponentAttributesODBCDataSource = 0x00000020,
|
|
|
|
msidbComponentAttributesTransitive = 0x00000040,
|
|
|
|
msidbComponentAttributesNeverOverwrite = 0x00000080,
|
|
|
|
msidbComponentAttributes64bit = 0x00000100
|
|
|
|
};
|
|
|
|
|
2007-08-07 11:45:30 +00:00
|
|
|
enum msidbODBCDataSourceRegistration
|
|
|
|
{
|
|
|
|
msidbODBCDataSourceRegistrationPerMachine = 0x00000000,
|
|
|
|
msidbODBCDataSourceRegistrationPerUser = 0x00000001
|
|
|
|
};
|
|
|
|
|
2005-05-26 21:55:34 +00:00
|
|
|
enum msidbRegistryRoot
|
|
|
|
{
|
|
|
|
msidbRegistryRootClassesRoot = 0,
|
|
|
|
msidbRegistryRootCurrentUser = 1,
|
|
|
|
msidbRegistryRootLocalMachine = 2,
|
|
|
|
msidbRegistryRootUsers = 3,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum msidbLocatorType
|
|
|
|
{
|
|
|
|
msidbLocatorTypeDirectory = 0x000,
|
|
|
|
msidbLocatorTypeFileName = 0x001,
|
|
|
|
msidbLocatorTypeRawValue = 0x002,
|
|
|
|
msidbLocatorType64bit = 0x010,
|
|
|
|
};
|
|
|
|
|
2007-03-14 12:44:54 +00:00
|
|
|
enum msidbServiceControlEvent
|
|
|
|
{
|
|
|
|
msidbServiceControlEventStart = 0x00000001,
|
|
|
|
msidbServiceControlEventStop = 0x00000002,
|
|
|
|
msidbServiceControlEventDelete = 0x00000008,
|
|
|
|
msidbServiceControlEventUninstallStart = 0x00000010,
|
|
|
|
msidbServiceControlEventUninstallStop = 0x00000020,
|
|
|
|
msidbServiceControlEventUninstallDelete = 0x00000080,
|
|
|
|
};
|
|
|
|
|
2016-06-25 11:26:38 +00:00
|
|
|
enum msidbServiceInstallErrorControl
|
|
|
|
{
|
|
|
|
msidbServiceInstallErrorControlVital = 0x00008000
|
|
|
|
};
|
|
|
|
|
2008-01-14 15:18:47 +00:00
|
|
|
enum msidbMoveFileOptions
|
|
|
|
{
|
|
|
|
msidbMoveFileOptionsMove = 0x00000001,
|
2008-05-17 09:53:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
enum msidbAssemblyAttributes
|
|
|
|
{
|
|
|
|
msidbAssemblyAttributesURT = 0x00000000,
|
|
|
|
msidbAssemblyAttributesWin32 = 0x00000001,
|
2008-01-14 15:18:47 +00:00
|
|
|
};
|
|
|
|
|
2008-09-21 17:01:55 +00:00
|
|
|
enum msidbSumInfoSourceType
|
|
|
|
{
|
|
|
|
msidbSumInfoSourceTypeSFN = 0x00000001,
|
|
|
|
msidbSumInfoSourceTypeCompressed = 0x00000002,
|
|
|
|
msidbSumInfoSourceTypeAdminImage = 0x00000004,
|
|
|
|
msidbSumInfoSourceTypeLUAPackage = 0x00000008,
|
|
|
|
};
|
|
|
|
|
2008-12-27 15:12:15 +00:00
|
|
|
enum msidbRemoveFileInstallMode
|
|
|
|
{
|
|
|
|
msidbRemoveFileInstallModeOnInstall = 0x00000001,
|
|
|
|
msidbRemoveFileInstallModeOnRemove = 0x00000002,
|
|
|
|
msidbRemoveFileInstallModeOnBoth = 0x00000003,
|
|
|
|
};
|
|
|
|
|
2010-03-06 09:05:09 +00:00
|
|
|
enum
|
|
|
|
{
|
|
|
|
msidbIniFileActionAddLine = 0x00000000,
|
|
|
|
msidbIniFileActionCreateLine = 0x00000001,
|
|
|
|
msidbIniFileActionRemoveLine = 0x00000002,
|
|
|
|
msidbIniFileActionAddTag = 0x00000003,
|
|
|
|
msidbIniFileActionRemoveTag = 0x00000004
|
|
|
|
};
|
|
|
|
|
2005-04-26 20:39:02 +00:00
|
|
|
/*
|
|
|
|
* Windows SDK braindamage alert
|
|
|
|
*
|
|
|
|
* PID_DICTIONARY and PID_CODEPAGE are defined by propidl.h too
|
|
|
|
* PID_SECURITY is defined in propidl.h with a different value!
|
|
|
|
* So these need to be undefined first.
|
|
|
|
*/
|
|
|
|
#ifdef PID_DICTIONARY
|
|
|
|
#undef PID_DICTIONARY
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef PID_CODEPAGE
|
|
|
|
#undef PID_CODEPAGE
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef PID_SECURITY
|
|
|
|
#undef PID_SECURITY
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define PID_DICTIONARY 0
|
|
|
|
#define PID_CODEPAGE 1
|
|
|
|
#define PID_TITLE 2
|
|
|
|
#define PID_SUBJECT 3
|
|
|
|
#define PID_AUTHOR 4
|
|
|
|
#define PID_KEYWORDS 5
|
|
|
|
#define PID_COMMENTS 6
|
|
|
|
#define PID_TEMPLATE 7
|
|
|
|
#define PID_LASTAUTHOR 8
|
|
|
|
#define PID_REVNUMBER 9
|
2008-01-14 15:18:47 +00:00
|
|
|
#define PID_EDITTIME 10
|
2005-04-26 20:39:02 +00:00
|
|
|
#define PID_LASTPRINTED 11
|
|
|
|
#define PID_CREATE_DTM 12
|
|
|
|
#define PID_LASTSAVE_DTM 13
|
|
|
|
#define PID_PAGECOUNT 14
|
|
|
|
#define PID_WORDCOUNT 15
|
|
|
|
#define PID_CHARCOUNT 16
|
|
|
|
#define PID_THUMBNAIL 17
|
|
|
|
#define PID_APPNAME 18
|
|
|
|
#define PID_SECURITY 19
|
|
|
|
#define PID_MSIVERSION PID_PAGECOUNT
|
|
|
|
#define PID_MSISOURCE PID_WORDCOUNT
|
|
|
|
#define PID_MSIRESTRICT PID_CHARCOUNT
|
|
|
|
|
Sync to Wine-20050211
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
message.
- Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
- Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
actions.
- A fix to deformat_string so it only returns a null return if you
provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
- Return code of the install should not depend on the return code of the
final action.
- Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
states.
- Run the end of install actions for suspend and user exit states as
well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@ when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
startup process.
- Fix a copy and paste error, check for a null value and discard
unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.
svn path=/trunk/; revision=13518
2005-02-12 22:59:04 +00:00
|
|
|
#endif /* __WINE_MSIDEFS_H */
|