[4/4] msi: Detect installed side-by-side assemblies.

Hans Leidekker hans at codeweavers.com
Fri Mar 30 03:22:05 CDT 2012


---
 dlls/msi/assembly.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/msi/assembly.c b/dlls/msi/assembly.c
index 6ce020e..af23c4a 100644
--- a/dlls/msi/assembly.c
+++ b/dlls/msi/assembly.c
@@ -262,13 +262,13 @@ static BOOL is_assembly_installed( IAssemblyCache *cache, const WCHAR *display_n
 
     memset( &info, 0, sizeof(info) );
     info.cbAssemblyInfo = sizeof(info);
-    hr = IAssemblyCache_QueryAssemblyInfo( cache, QUERYASMINFO_FLAG_GETSIZE, display_name, &info );
-    if (hr != HRESULT_FROM_WIN32( ERROR_INSUFFICIENT_BUFFER ))
+    hr = IAssemblyCache_QueryAssemblyInfo( cache, 0, display_name, &info );
+    if (hr == S_OK /* sxs version */ || hr == HRESULT_FROM_WIN32( ERROR_INSUFFICIENT_BUFFER ))
     {
-        TRACE("QueryAssemblyInfo returned 0x%08x\n", hr);
-        return FALSE;
+        return (info.dwAssemblyFlags == ASSEMBLYINFO_FLAG_INSTALLED);
     }
-    return (info.dwAssemblyFlags == ASSEMBLYINFO_FLAG_INSTALLED);
+    TRACE("QueryAssemblyInfo returned 0x%08x\n", hr);
+    return FALSE;
 }
 
 static const WCHAR clr_version_v10[] = {'v','1','.','0','.','3','7','0','5',0};
-- 
1.7.9.1






More information about the wine-patches mailing list