[ros-diffs] [cwittich] 39393: allow to use a local copy of wine_gecko.cab instead of having to download it every time http://www.winehq.org/pipermail/wine-patches/2009-February/068889.html http://www.winehq.org/pipermail/wine-patches/2009-February/068891.html http://www.winehq.org/pipermail/wine-patches/2009-February/068890.html http://www.winehq.org/pipermail/wine-patches/2009-February/068892.html

cwittich at svn.reactos.org cwittich at svn.reactos.org
Wed Feb 4 19:09:04 CET 2009


Author: cwittich
Date: Wed Feb  4 12:09:03 2009
New Revision: 39393

URL: http://svn.reactos.org/svn/reactos?rev=39393&view=rev
Log:
allow to use a local copy of wine_gecko.cab instead of having to download it every time

http://www.winehq.org/pipermail/wine-patches/2009-February/068889.html
http://www.winehq.org/pipermail/wine-patches/2009-February/068891.html
http://www.winehq.org/pipermail/wine-patches/2009-February/068890.html
http://www.winehq.org/pipermail/wine-patches/2009-February/068892.html

Modified:
    trunk/reactos/boot/bootdata/hivedef_i386.inf
    trunk/reactos/boot/bootdata/packages/reactos.dff
    trunk/reactos/dll/win32/mshtml/install.c
    trunk/reactos/dll/win32/mshtml/mshtml.rbuild

Modified: trunk/reactos/boot/bootdata/hivedef_i386.inf
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivedef_i386.inf?rev=39393&r1=39392&r2=39393&view=diff
==============================================================================
--- trunk/reactos/boot/bootdata/hivedef_i386.inf [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/hivedef_i386.inf [iso-8859-1] Wed Feb  4 12:09:03 2009
@@ -279,6 +279,7 @@
 HKCU,"Software\Microsoft\Internet Explorer\Main","Search Page",,"http://www.google.com"
 
 HKCU,Software\Wine\MSHTML,"GeckoUrl",,"http://links.reactos.org/links/winegecko.php"
+HKCU,Software\Wine\MSHTML,"GeckoCabDir",0x00020000,"%SystemRoot%\"
 
 
 ; EOF

Modified: trunk/reactos/boot/bootdata/packages/reactos.dff
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/packages/reactos.dff?rev=39393&r1=39392&r2=39393&view=diff
==============================================================================
--- trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/packages/reactos.dff [iso-8859-1] Wed Feb  4 12:09:03 2009
@@ -705,3 +705,6 @@
 modules\windows\kvmnet.sys                                                 2   optional
 modules\windows\kvmnet.inf                                                 6   optional
 
+; Gecko
+modules\windows\wine_gecko-0.9.0.cab                                       4   optional
+

Modified: trunk/reactos/dll/win32/mshtml/install.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/install.c?rev=39393&r1=39392&r2=39393&view=diff
==============================================================================
--- trunk/reactos/dll/win32/mshtml/install.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/mshtml/install.c [iso-8859-1] Wed Feb  4 12:09:03 2009
@@ -54,6 +54,11 @@
      '\\','W','i','n','e',
      '\\','M','S','H','T','M','L',0};
 
+static const CHAR mshtml_keyA[] =
+    {'S','o','f','t','w','a','r','e',
+     '\\','W','i','n','e',
+     '\\','M','S','H','T','M','L',0};
+
 static HWND install_dialog = NULL;
 static LPWSTR tmp_file_name = NULL;
 static HANDLE tmp_file = INVALID_HANDLE_VALUE;
@@ -193,18 +198,21 @@
 
     close(fd);
 
-    if(!wine_get_dos_file_name) {
+    if(!wine_get_dos_file_name)
         wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name");
-        if(!wine_get_dos_file_name) {
-            ERR("Could not get wine_get_dos_file_name function.\n");
+
+    if(wine_get_dos_file_name) { /* Wine UNIX mode */
+        dos_file_name = wine_get_dos_file_name(file_name);
+        if(!dos_file_name) {
+            ERR("Could not get dos file name of %s\n", debugstr_a(file_name));
             return FALSE;
         }
-    }
-
-    dos_file_name = wine_get_dos_file_name(file_name);
-    if(!dos_file_name) {
-        ERR("Could not get dos file name of %s\n", debugstr_a(file_name));
-        return FALSE;
+    } else { /* ReactOS mode. */
+        UINT res;
+        WARN("Could not get wine_get_dos_file_name function, calling install_cab directly.\n");
+        res = MultiByteToWideChar( CP_ACP, 0, file_name, -1, 0, 0);
+        dos_file_name = heap_alloc (res*sizeof(WCHAR));
+        MultiByteToWideChar( CP_ACP, 0, file_name, -1, dos_file_name, res);
     }
 
     ret = install_cab(dos_file_name);
@@ -216,23 +224,18 @@
 static BOOL install_from_registered_dir(void)
 {
     char *file_name;
-    HKEY hkey;
     DWORD res, type, size = MAX_PATH;
     BOOL ret;
 
+    file_name = heap_alloc(size+sizeof(GECKO_FILE_NAME));
     /* @@ Wine registry key: HKCU\Software\Wine\MSHTML */
-    res = RegOpenKeyW(HKEY_CURRENT_USER, mshtml_keyW, &hkey);
-    if(res != ERROR_SUCCESS)
-        return FALSE;
-
-    file_name = heap_alloc(size+sizeof(GECKO_FILE_NAME));
-    res = RegQueryValueExA(hkey, "GeckoCabDir", NULL, &type, (PBYTE)file_name, &size);
+    res = RegGetValueA(HKEY_CURRENT_USER, mshtml_keyA, "GeckoCabDir", RRF_RT_ANY, &type, (PBYTE)file_name, &size);
     if(res == ERROR_MORE_DATA) {
         file_name = heap_realloc(file_name, size+sizeof(GECKO_FILE_NAME));
-        res = RegQueryValueExA(hkey, "GeckoCabDir", NULL, &type, (PBYTE)file_name, &size);
-    }
-    RegCloseKey(hkey);
-    if(res != ERROR_SUCCESS || type != REG_SZ) {
+        res = RegGetValueA(HKEY_CURRENT_USER, mshtml_keyA, "GeckoCabDir", RRF_RT_ANY, &type, (PBYTE)file_name, &size);
+    }
+    
+    if(res != ERROR_SUCCESS || (type != REG_SZ && type != REG_EXPAND_SZ)) {
         heap_free(file_name);
         return FALSE;
     }
@@ -443,7 +446,7 @@
 
     if(size > sizeof(httpW) && !memcmp(url, httpW, sizeof(httpW))) {
         strcatW(url, v_formatW);
-        MultiByteToWideChar(CP_ACP, 0, GECKO_VERSION, -1, url+strlenW(url), -1);
+        MultiByteToWideChar(CP_ACP, 0, GECKO_VERSION, -1, url+strlenW(url), (size-strlenW(url)) / sizeof(WCHAR));
     }
 
     TRACE("Got URL %s\n", debugstr_w(url));

Modified: trunk/reactos/dll/win32/mshtml/mshtml.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mshtml/mshtml.rbuild?rev=39393&r1=39392&r2=39393&view=diff
==============================================================================
--- trunk/reactos/dll/win32/mshtml/mshtml.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/mshtml/mshtml.rbuild [iso-8859-1] Wed Feb  4 12:09:03 2009
@@ -7,6 +7,7 @@
 	<include base="mshtml">.</include>
 	<include base="ReactOS">include/reactos/wine</include>
 	<define name="__WINESRC__" />
+	<define name="_WIN32_WINNT">0x600</define>
 	<file>conpoint.c</file>
 	<file>dispex.c</file>
 	<file>editor.c</file>



More information about the Ros-diffs mailing list