Module: wine Branch: master Commit: 00477d601eb1604e0854a447ffd5a7c56cf8e5b2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=00477d601eb1604e0854a447ff...
Author: Hans Leidekker hans@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 );