MSI: action.c more RegisterProduct work

Aric Stewart aric at codeweavers.com
Wed Jun 8 11:41:50 CDT 2005


Write out Product Language and Product Icon to the registry.

-------------- next part --------------
Index: dlls/msi/action.c
===================================================================
RCS file: /home/wine/wine/dlls/msi/action.c,v
retrieving revision 1.137
diff -u -r1.137 action.c
--- dlls/msi/action.c	7 Jun 2005 21:34:05 -0000	1.137
+++ dlls/msi/action.c	8 Jun 2005 16:40:27 -0000
@@ -5933,6 +5933,15 @@
         {'P','r','o','d','u','c','t','N','a','m','e',0};
     static const WCHAR szPackageCode[] =
         {'P','a','c','k','a','g','e','C','o','d','e',0};
+    static const WCHAR szLanguage[] =
+        {'L','a','n','g','u','a','g','e',0};
+    static const WCHAR szProductLanguage[] =
+        {'P','r','o','d','u','c','t','L','a','n','g','u','a','g','e',0};
+    static const WCHAR szProductIcon[] =
+        {'P','r','o','d','u','c','t','I','c','o','n',0};
+    static const WCHAR szARPProductIcon[] =
+        {'A','R','P','P','R','O','D','U','C','T','I','C','O','N',0};
+    DWORD langid;
     LPWSTR buffer;
     DWORD size;
     MSIHANDLE hDb, hSumInfo;
@@ -6033,6 +6042,21 @@
     size = strlenW(buffer)*sizeof(WCHAR);
     RegSetValueExW(hukey,szProductName,0,REG_SZ, (LPSTR)buffer,size);
     HeapFree(GetProcessHeap(),0,buffer);
+
+    buffer = load_dynamic_property(package,szProductLanguage,NULL);
+    size = sizeof(DWORD);
+    langid = atoiW(buffer);
+    RegSetValueExW(hukey,szLanguage,0,REG_DWORD, (LPSTR)&langid,size);
+
+    buffer = load_dynamic_property(package,szARPProductIcon,NULL);
+    if (buffer)
+    {
+        LPWSTR path;
+        build_icon_path(package,buffer,&path);
+        size = strlenW(path) * sizeof(WCHAR);
+        RegSetValueExW(hukey,szProductIcon,0,REG_SZ, (LPSTR)path,size);
+    }
+    
     FIXME("Need to write more keys to the user registry\n");
   
     hDb= alloc_msihandle( &package->db->hdr );


More information about the wine-patches mailing list