[Wine-patches] [eter-2.1] msi: Add a hack to make 1CBarCode installation complete. (eterbug #8375)

Dmitry Timoshkov dtimoshkov на etersoft.ru
Ср Июл 29 07:20:06 MSK 2015


---
 dlls/msi/package.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/dlls/msi/package.c b/dlls/msi/package.c
index 1dbe5f7..9b16fa7 100644
--- a/dlls/msi/package.c
+++ b/dlls/msi/package.c
@@ -2346,6 +2346,31 @@ done:
     if (row)
         val = msi_record_get_string( row, 1, (int *)&len );
 
+    /* Hack for 1CBarCode MSI installer (eterbug #8375) */
+    if (!val)
+    {
+        static const WCHAR issetupdrivenW[] = {'I','S','S','E','T','U','P','D','R','I','V','E','N',0};
+        static const WCHAR ProductCodeW[] = {'P','r','o','d','u','c','t','C','o','d','e',0};
+        static const WCHAR _1C_bar_code[] = {'{','4','8','E','6','B','3','9','F','-','F','6','8','6','-','4','3','2','7','-','8','B','E','D','-','0','D','5','A','E','D','F','2','E','5','6','F','}',0};
+        static const WCHAR _1W[] = {'1',0};
+
+        if (!strcmpW(name, issetupdrivenW))
+        {
+            MSIRECORD *row_product = msi_get_property_row( package->db, ProductCodeW );
+            if (row_product)
+            {
+                LPCWSTR val_product = MSI_RecordGetString( row_product, 1 );
+                TRACE("local: package %s asked for ISSETUPDRIVEN\n", debugstr_w(val_product));
+                if (!strcmpW(val_product, _1C_bar_code))
+                {
+                    TRACE("setting %s to %s\n", debugstr_w(name), debugstr_w(_1W));
+                    val = _1W;
+                }
+                msiobj_release( &row_product->hdr );
+            }
+        }
+    }
+
     if (!val)
         val = szEmpty;
 
-- 
2.4.5



Подробная информация о списке рассылки Wine-patches