Hans Leidekker : msi: Support all install contexts in MsiReinstallFeatureW.

Alexandre Julliard julliard at winehq.org
Tue Dec 13 13:01:28 CST 2011


Module: wine
Branch: master
Commit: 00477d601eb1604e0854a447ffd5a7c56cf8e5b2
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=00477d601eb1604e0854a447ffd5a7c56cf8e5b2

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Dec 13 13:19:01 2011 +0100

msi: Support all install contexts in MsiReinstallFeatureW.

---

 dlls/msi/msi.c |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index 3727560..21ffb39 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -3773,18 +3773,20 @@ UINT WINAPI MsiGetShortcutTargetW( LPCWSTR szShortcutTarget,
 UINT WINAPI MsiReinstallFeatureW( LPCWSTR szProduct, LPCWSTR szFeature,
                                   DWORD dwReinstallMode )
 {
-    MSIPACKAGE* package = NULL;
+    static const WCHAR szLogVerbose[] =
+        {' ','L','O','G','V','E','R','B','O','S','E',0};
+    MSIPACKAGE *package;
+    MSIINSTALLCONTEXT context;
     UINT r;
-    WCHAR sourcepath[MAX_PATH];
-    WCHAR filename[MAX_PATH];
-    static const WCHAR szLogVerbose[] = {
-        ' ','L','O','G','V','E','R','B','O','S','E',0 };
-    WCHAR reinstallmode[11];
+    WCHAR sourcepath[MAX_PATH], filename[MAX_PATH], reinstallmode[11];
     LPWSTR ptr;
     DWORD sz;
 
-    FIXME("%s %s 0x%08x\n",
-          debugstr_w(szProduct), debugstr_w(szFeature), dwReinstallMode);
+    TRACE("%s, %s, 0x%08x\n", debugstr_w(szProduct), debugstr_w(szFeature), dwReinstallMode);
+
+    r = msi_locate_product( szProduct, &context );
+    if (r != ERROR_SUCCESS)
+        return r;
 
     ptr = reinstallmode;
 
@@ -3811,12 +3813,12 @@ UINT WINAPI MsiReinstallFeatureW( LPCWSTR szProduct, LPCWSTR szFeature,
     *ptr = 0;
     
     sz = sizeof(sourcepath);
-    MsiSourceListGetInfoW(szProduct, NULL, MSIINSTALLCONTEXT_USERUNMANAGED,
-            MSICODE_PRODUCT, INSTALLPROPERTY_LASTUSEDSOURCEW, sourcepath, &sz);
+    MsiSourceListGetInfoW( szProduct, NULL, context, MSICODE_PRODUCT,
+                           INSTALLPROPERTY_LASTUSEDSOURCEW, sourcepath, &sz );
 
     sz = sizeof(filename);
-    MsiSourceListGetInfoW(szProduct, NULL, MSIINSTALLCONTEXT_USERUNMANAGED,
-            MSICODE_PRODUCT, INSTALLPROPERTY_PACKAGENAMEW, filename, &sz);
+    MsiSourceListGetInfoW( szProduct, NULL, context, MSICODE_PRODUCT,
+                           INSTALLPROPERTY_PACKAGENAMEW, filename, &sz );
 
     lstrcatW( sourcepath, filename );
 




More information about the wine-cvs mailing list