Hans Leidekker : msi: Get rid of the InstallMe field in MSIMIME.

Alexandre Julliard julliard at winehq.org
Thu Feb 27 14:49:24 CST 2014


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Thu Feb 27 11:02:30 2014 +0100

msi: Get rid of the InstallMe field in MSIMIME.

---

 dlls/msi/classes.c |   32 ++++----------------------------
 dlls/msi/msipriv.h |    2 --
 2 files changed, 4 insertions(+), 30 deletions(-)

diff --git a/dlls/msi/classes.c b/dlls/msi/classes.c
index 4110ad0..3e096b3 100644
--- a/dlls/msi/classes.c
+++ b/dlls/msi/classes.c
@@ -737,20 +737,6 @@ static void mark_progid_for_uninstall( MSIPACKAGE *package, MSIPROGID *progid )
     }
 }
 
-static void mark_mime_for_install( MSIMIME *mime )
-{
-    if (!mime)
-        return;
-    mime->InstallMe = TRUE;
-}
-
-static void mark_mime_for_uninstall( MSIMIME *mime )
-{
-    if (!mime)
-        return;
-    mime->InstallMe = FALSE;
-}
-
 static UINT register_appid(const MSIAPPID *appid, LPCWSTR app )
 {
     static const WCHAR szRemoteServerName[] =
@@ -1309,8 +1295,6 @@ UINT ACTION_RegisterExtensionInfo(MSIPACKAGE *package)
         if (ext->ProgID && !list_empty( &ext->verbs ) )
             mark_progid_for_install( package, ext->ProgID );
 
-        mark_mime_for_install(ext->Mime);
-
         extension = msi_alloc( (strlenW( ext->Extension ) + 2) * sizeof(WCHAR) );
         if (extension)
         {
@@ -1412,8 +1396,6 @@ UINT ACTION_UnregisterExtensionInfo( MSIPACKAGE *package )
         if (ext->ProgID && !list_empty( &ext->verbs ))
             mark_progid_for_uninstall( package, ext->ProgID );
 
-        mark_mime_for_uninstall( ext->Mime );
-
         extension = msi_alloc( (strlenW( ext->Extension ) + 2) * sizeof(WCHAR) );
         if (extension)
         {
@@ -1476,11 +1458,8 @@ UINT ACTION_RegisterMIMEInfo(MSIPACKAGE *package)
          * check if the MIME is to be installed. Either as requested by an
          * extension or Class
          */
-        mt->InstallMe = (mt->InstallMe ||
-              (mt->Class && mt->Class->action == INSTALLSTATE_LOCAL) ||
-              (mt->Extension && mt->Extension->action == INSTALLSTATE_LOCAL));
-
-        if (!mt->InstallMe)
+        if ((!mt->Class || mt->Class->action != INSTALLSTATE_LOCAL) &&
+            mt->Extension->action != INSTALLSTATE_LOCAL)
         {
             TRACE("MIME %s not scheduled to be installed\n", debugstr_w(mt->ContentType));
             continue;
@@ -1530,11 +1509,8 @@ UINT ACTION_UnregisterMIMEInfo( MSIPACKAGE *package )
         LONG res;
         LPWSTR mime_key;
 
-        mime->InstallMe = (mime->InstallMe ||
-                          (mime->Class && mime->Class->action == INSTALLSTATE_LOCAL) ||
-                          (mime->Extension && mime->Extension->action == INSTALLSTATE_LOCAL));
-
-        if (mime->InstallMe)
+        if ((!mime->Class || mime->Class->action != INSTALLSTATE_ABSENT) &&
+            mime->Extension->action != INSTALLSTATE_ABSENT)
         {
             TRACE("MIME %s not scheduled to be removed\n", debugstr_w(mime->ContentType));
             continue;
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
index cfa9bae..b664766 100644
--- a/dlls/msi/msipriv.h
+++ b/dlls/msi/msipriv.h
@@ -664,8 +664,6 @@ struct tagMSIMIME
     LPWSTR suffix;
     LPWSTR clsid;
     MSICLASS *Class;
-    /* not in the table, set during installation */
-    BOOL InstallMe;
 };
 
 enum SCRIPTS




More information about the wine-cvs mailing list