From ee804123304af9c6b64be76489e7964c2bc5277e Mon Sep 17 00:00:00 2001 From: Hans Leidekker Date: Wed, 25 May 2011 10:40:36 +0200 Subject: [PATCH] msi: Support rollback of failed uninstalls. --- dlls/msi/action.c | 50 +++++++++++++++++++++++------------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/dlls/msi/action.c b/dlls/msi/action.c index f38607f43a..86a8c99807 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -7159,7 +7159,7 @@ StandardActions[] = { szCostInitialize, ACTION_CostInitialize, NULL }, { szCreateFolders, ACTION_CreateFolders, szRemoveFolders }, { szCreateShortcuts, ACTION_CreateShortcuts, szRemoveShortcuts }, - { szDeleteServices, ACTION_DeleteServices, NULL }, + { szDeleteServices, ACTION_DeleteServices, szInstallServices }, { szDisableRollback, ACTION_DisableRollback, NULL }, { szDuplicateFiles, ACTION_DuplicateFiles, szRemoveDuplicateFiles }, { szExecuteAction, ACTION_ExecuteAction, NULL }, @@ -7169,9 +7169,11 @@ StandardActions[] = { szInstallAdminPackage, ACTION_InstallAdminPackage, NULL }, { szInstallExecute, ACTION_InstallExecute, NULL }, { szInstallExecuteAgain, ACTION_InstallExecute, NULL }, - { szInstallFiles, ACTION_InstallFiles, NULL }, + { szInstallFiles, ACTION_InstallFiles, szRemoveFiles }, { szInstallFinalize, ACTION_InstallFinalize, NULL }, { szInstallInitialize, ACTION_InstallInitialize, NULL }, + { szInstallODBC, ACTION_InstallODBC, szRemoveODBC }, + { szInstallServices, ACTION_InstallServices, szDeleteServices }, { szInstallSFPCatalogFile, ACTION_InstallSFPCatalogFile, NULL }, { szInstallValidate, ACTION_InstallValidate, NULL }, { szIsolateComponents, ACTION_IsolateComponents, NULL }, @@ -7179,11 +7181,9 @@ StandardActions[] = { szMigrateFeatureStates, ACTION_MigrateFeatureStates, NULL }, { szMoveFiles, ACTION_MoveFiles, NULL }, { szMsiPublishAssemblies, ACTION_MsiPublishAssemblies, szMsiUnpublishAssemblies }, - { szMsiUnpublishAssemblies, ACTION_MsiUnpublishAssemblies, NULL }, - { szInstallODBC, ACTION_InstallODBC, szRemoveODBC }, - { szInstallServices, ACTION_InstallServices, szDeleteServices }, + { szMsiUnpublishAssemblies, ACTION_MsiUnpublishAssemblies, szMsiPublishAssemblies }, { szPatchFiles, ACTION_PatchFiles, NULL }, - { szProcessComponents, ACTION_ProcessComponents, NULL }, + { szProcessComponents, ACTION_ProcessComponents, szProcessComponents }, { szPublishComponents, ACTION_PublishComponents, szUnpublishComponents }, { szPublishFeatures, ACTION_PublishFeatures, szUnpublishFeatures }, { szPublishProduct, ACTION_PublishProduct, NULL }, @@ -7196,32 +7196,32 @@ StandardActions[] = { szRegisterProgIdInfo, ACTION_RegisterProgIdInfo, szUnregisterProgIdInfo }, { szRegisterTypeLibraries, ACTION_RegisterTypeLibraries, szUnregisterTypeLibraries }, { szRegisterUser, ACTION_RegisterUser, NULL }, - { szRemoveDuplicateFiles, ACTION_RemoveDuplicateFiles, NULL }, - { szRemoveEnvironmentStrings, ACTION_RemoveEnvironmentStrings, NULL }, + { szRemoveDuplicateFiles, ACTION_RemoveDuplicateFiles, szDuplicateFiles }, + { szRemoveEnvironmentStrings, ACTION_RemoveEnvironmentStrings, szWriteEnvironmentStrings }, { szRemoveExistingProducts, ACTION_RemoveExistingProducts, NULL }, - { szRemoveFiles, ACTION_RemoveFiles, NULL }, - { szRemoveFolders, ACTION_RemoveFolders, NULL }, - { szRemoveIniValues, ACTION_RemoveIniValues, NULL }, - { szRemoveODBC, ACTION_RemoveODBC, NULL }, - { szRemoveRegistryValues, ACTION_RemoveRegistryValues, NULL }, - { szRemoveShortcuts, ACTION_RemoveShortcuts, NULL }, + { szRemoveFiles, ACTION_RemoveFiles, szInstallFiles }, + { szRemoveFolders, ACTION_RemoveFolders, szCreateFolders }, + { szRemoveIniValues, ACTION_RemoveIniValues, szWriteIniValues }, + { szRemoveODBC, ACTION_RemoveODBC, szInstallODBC }, + { szRemoveRegistryValues, ACTION_RemoveRegistryValues, szWriteRegistryValues }, + { szRemoveShortcuts, ACTION_RemoveShortcuts, szCreateShortcuts }, { szResolveSource, ACTION_ResolveSource, NULL }, { szRMCCPSearch, ACTION_RMCCPSearch, NULL }, { szScheduleReboot, ACTION_ScheduleReboot, NULL }, { szSelfRegModules, ACTION_SelfRegModules, szSelfUnregModules }, - { szSelfUnregModules, ACTION_SelfUnregModules, NULL }, + { szSelfUnregModules, ACTION_SelfUnregModules, szSelfUnregModules }, { szSetODBCFolders, ACTION_SetODBCFolders, NULL }, { szStartServices, ACTION_StartServices, szStopServices }, - { szStopServices, ACTION_StopServices, NULL }, - { szUnpublishComponents, ACTION_UnpublishComponents, NULL }, - { szUnpublishFeatures, ACTION_UnpublishFeatures, NULL }, - { szUnregisterClassInfo, ACTION_UnregisterClassInfo, NULL }, - { szUnregisterComPlus, ACTION_UnregisterComPlus, NULL }, - { szUnregisterExtensionInfo, ACTION_UnregisterExtensionInfo, NULL }, - { szUnregisterFonts, ACTION_UnregisterFonts, NULL }, - { szUnregisterMIMEInfo, ACTION_UnregisterMIMEInfo, NULL }, - { szUnregisterProgIdInfo, ACTION_UnregisterProgIdInfo, NULL }, - { szUnregisterTypeLibraries, ACTION_UnregisterTypeLibraries, NULL }, + { szStopServices, ACTION_StopServices, szStartServices }, + { szUnpublishComponents, ACTION_UnpublishComponents, szPublishComponents }, + { szUnpublishFeatures, ACTION_UnpublishFeatures, szPublishFeatures }, + { szUnregisterClassInfo, ACTION_UnregisterClassInfo, szRegisterClassInfo }, + { szUnregisterComPlus, ACTION_UnregisterComPlus, szRegisterComPlus }, + { szUnregisterExtensionInfo, ACTION_UnregisterExtensionInfo, szRegisterExtensionInfo }, + { szUnregisterFonts, ACTION_UnregisterFonts, szRegisterFonts }, + { szUnregisterMIMEInfo, ACTION_UnregisterMIMEInfo, szRegisterMIMEInfo }, + { szUnregisterProgIdInfo, ACTION_UnregisterProgIdInfo, szRegisterProgIdInfo }, + { szUnregisterTypeLibraries, ACTION_UnregisterTypeLibraries, szRegisterTypeLibraries }, { szValidateProductID, ACTION_ValidateProductID, NULL }, { szWriteEnvironmentStrings, ACTION_WriteEnvironmentStrings, szRemoveEnvironmentStrings }, { szWriteIniValues, ACTION_WriteIniValues, szRemoveIniValues },