msi: correct ProgId install checking

Aric Stewart aric at codeweavers.com
Thu Jun 2 08:23:48 CDT 2005


Since multiple progids can refer to 1 class we need to check if that class is isntalled instead of just relying on having it set the InstallMe variable.


-------------- next part --------------
Index: dlls//msi/action.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/action.c,v
retrieving revision 1.127
diff -u -r1.127 action.c
--- dlls//msi/action.c	2 Jun 2005 10:29:57 -0000	1.127
+++ dlls//msi/action.c	2 Jun 2005 12:57:10 -0000
@@ -5613,6 +5687,9 @@
         WCHAR clsid[0x1000];
 
         /* check if this progid is to be installed */
+        package->progids[i].InstallMe =  ((package->progids[i].InstallMe) ||
+              (package->progids[i].ClassIndex >= 0 &&
+              package->classes[package->progids[i].ClassIndex].Installed));
 
         if (!package->progids[i].InstallMe)
         {



More information about the wine-patches mailing list