Hans Leidekker : msi: The AppSearch and CCPSearch actions must be run only once.

Alexandre Julliard julliard at winehq.org
Tue Mar 23 12:12:47 CDT 2010


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

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Tue Mar 23 11:46:00 2010 +0100

msi: The AppSearch and CCPSearch actions must be run only once.

---

 dlls/msi/action.c    |    2 --
 dlls/msi/appsearch.c |   16 ++++++++++++++++
 dlls/msi/msipriv.h   |    1 +
 dlls/msi/upgrade.c   |    6 +++---
 4 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/dlls/msi/action.c b/dlls/msi/action.c
index db6c2cd..0d0e333 100644
--- a/dlls/msi/action.c
+++ b/dlls/msi/action.c
@@ -96,8 +96,6 @@ static const WCHAR szAllocateRegistrySpace[] =
     {'A','l','l','o','c','a','t','e','R','e','g','i','s','t','r','y','S','p','a','c','e',0};
 static const WCHAR szBindImage[] = 
     {'B','i','n','d','I','m','a','g','e',0};
-static const WCHAR szCCPSearch[] = 
-    {'C','C','P','S','e','a','r','c','h',0};
 static const WCHAR szDeleteServices[] = 
     {'D','e','l','e','t','e','S','e','r','v','i','c','e','s',0};
 static const WCHAR szDisableRollback[] = 
diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c
index 12c7411..6f00b14 100644
--- a/dlls/msi/appsearch.c
+++ b/dlls/msi/appsearch.c
@@ -1064,6 +1064,14 @@ UINT ACTION_AppSearch(MSIPACKAGE *package)
     MSIQUERY *view = NULL;
     UINT r;
 
+    if (check_unique_action(package, szAppSearch))
+    {
+        TRACE("Skipping AppSearch action: already done in UI sequence\n");
+        return ERROR_SUCCESS;
+    }
+    else
+        register_unique_action(package, szAppSearch);
+
     r = MSI_OpenQuery( package->db, &view, query );
     if (r != ERROR_SUCCESS)
         return ERROR_SUCCESS;
@@ -1111,6 +1119,14 @@ UINT ACTION_CCPSearch(MSIPACKAGE *package)
     MSIQUERY *view = NULL;
     UINT r;
 
+    if (check_unique_action(package, szCCPSearch))
+    {
+        TRACE("Skipping AppSearch action: already done in UI sequence\n");
+        return ERROR_SUCCESS;
+    }
+    else
+        register_unique_action(package, szCCPSearch);
+
     r = MSI_OpenQuery(package->db, &view, query);
     if (r != ERROR_SUCCESS)
         return ERROR_SUCCESS;
diff --git a/dlls/msi/msipriv.h b/dlls/msi/msipriv.h
index 0516dd1..647eab7 100644
--- a/dlls/msi/msipriv.h
+++ b/dlls/msi/msipriv.h
@@ -1084,6 +1084,7 @@ static const WCHAR szHU[] = {'H','K','E','Y','_','U','S','E','R','S','\\',0};
 static const WCHAR szWindowsFolder[] = {'W','i','n','d','o','w','s','F','o','l','d','e','r',0};
 static const WCHAR szAppSearch[] = {'A','p','p','S','e','a','r','c','h',0};
 static const WCHAR szMoveFiles[] = {'M','o','v','e','F','i','l','e','s',0};
+static const WCHAR szCCPSearch[] = {'C','C','P','S','e','a','r','c','h',0};
 
 /* memory allocation macro functions */
 static void *msi_alloc( size_t len ) __WINE_ALLOC_SIZE(1);
diff --git a/dlls/msi/upgrade.c b/dlls/msi/upgrade.c
index a440070..3f40f55 100644
--- a/dlls/msi/upgrade.c
+++ b/dlls/msi/upgrade.c
@@ -209,13 +209,13 @@ UINT ACTION_FindRelatedProducts(MSIPACKAGE *package)
         return ERROR_SUCCESS;
     }
 
-    if (check_unique_action(package,szFindRelatedProducts))
+    if (check_unique_action(package, szFindRelatedProducts))
     {
-        TRACE("Skipping FindRelatedProducts action: already done on client side\n");
+        TRACE("Skipping FindRelatedProducts action: already done in UI sequence\n");
         return ERROR_SUCCESS;
     }
     else
-        register_unique_action(package,szFindRelatedProducts);
+        register_unique_action(package, szFindRelatedProducts);
 
     rc = MSI_DatabaseOpenViewW(package->db, Query, &view);
     if (rc != ERROR_SUCCESS)




More information about the wine-cvs mailing list