Hans Leidekker : msi: Fix the ODBC actions to revert components to the installed state during rollback .
Alexandre Julliard
julliard at winehq.org
Tue May 24 12:53:46 CDT 2011
Module: wine
Branch: master
Commit: fe2b4b1df6ce94ecfe60f172a1e6882c2d96fb6e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fe2b4b1df6ce94ecfe60f172a1e6882c2d96fb6e
Author: Hans Leidekker <hans at codeweavers.com>
Date: Tue May 24 10:51:52 2011 +0200
msi: Fix the ODBC actions to revert components to the installed state during rollback.
---
dlls/msi/action.c | 32 ++++++++++++++++++--------------
1 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index 9a55afc..22b02ae 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -6041,12 +6041,12 @@ static UINT ITERATE_InstallODBCDriver( MSIRECORD *rec, LPVOID param )
if (!comp)
return ERROR_SUCCESS;
- if (!comp->Enabled)
+ comp->Action = msi_get_component_action( package, comp );
+ if (comp->Action != INSTALLSTATE_LOCAL)
{
- TRACE("component is disabled\n");
+ TRACE("component not scheduled for installation %s\n", debugstr_w(component));
return ERROR_SUCCESS;
}
-
desc = MSI_RecordGetString(rec, 3);
file_key = MSI_RecordGetString( rec, 4 );
@@ -6133,12 +6133,12 @@ static UINT ITERATE_InstallODBCTranslator( MSIRECORD *rec, LPVOID param )
if (!comp)
return ERROR_SUCCESS;
- if (!comp->Enabled)
+ comp->Action = msi_get_component_action( package, comp );
+ if (comp->Action != INSTALLSTATE_LOCAL)
{
- TRACE("component is disabled\n");
+ TRACE("component not scheduled for installation %s\n", debugstr_w(component));
return ERROR_SUCCESS;
}
-
desc = MSI_RecordGetString(rec, 3);
file_key = MSI_RecordGetString( rec, 4 );
@@ -6219,9 +6219,10 @@ static UINT ITERATE_InstallODBCDataSource( MSIRECORD *rec, LPVOID param )
if (!comp)
return ERROR_SUCCESS;
- if (!comp->Enabled)
+ comp->Action = msi_get_component_action( package, comp );
+ if (comp->Action != INSTALLSTATE_LOCAL)
{
- TRACE("component is disabled\n");
+ TRACE("component not scheduled for installation %s\n", debugstr_w(component));
return ERROR_SUCCESS;
}
@@ -6312,9 +6313,10 @@ static UINT ITERATE_RemoveODBCDriver( MSIRECORD *rec, LPVOID param )
if (!comp)
return ERROR_SUCCESS;
- if (!comp->Enabled)
+ comp->Action = msi_get_component_action( package, comp );
+ if (comp->Action != INSTALLSTATE_ABSENT)
{
- TRACE("component is disabled\n");
+ TRACE("component not scheduled for removal %s\n", debugstr_w(component));
return ERROR_SUCCESS;
}
@@ -6350,9 +6352,10 @@ static UINT ITERATE_RemoveODBCTranslator( MSIRECORD *rec, LPVOID param )
if (!comp)
return ERROR_SUCCESS;
- if (!comp->Enabled)
+ comp->Action = msi_get_component_action( package, comp );
+ if (comp->Action != INSTALLSTATE_ABSENT)
{
- TRACE("component is disabled\n");
+ TRACE("component not scheduled for removal %s\n", debugstr_w(component));
return ERROR_SUCCESS;
}
@@ -6394,9 +6397,10 @@ static UINT ITERATE_RemoveODBCDataSource( MSIRECORD *rec, LPVOID param )
if (!comp)
return ERROR_SUCCESS;
- if (!comp->Enabled)
+ comp->Action = msi_get_component_action( package, comp );
+ if (comp->Action != INSTALLSTATE_ABSENT)
{
- TRACE("component is disabled\n");
+ TRACE("component not scheduled for removal %s\n", debugstr_w(component));
return ERROR_SUCCESS;
}
More information about the wine-cvs
mailing list