[evolution] [win32] Make Evolution actually appear in "Set Program Access and Defaults" dialogue and use quoted



commit 88d3c437e8340d8a61586339305b8f1f0dda3bac
Author: Fridrich Å trba <fridrich strba bluewin ch>
Date:   Mon May 17 09:09:28 2010 +0200

    [win32] Make Evolution actually appear in "Set Program Access and
    Defaults" dialogue and use quoted string instead of short path, since
    this is how the "Hotmail" e-mail provider is doing it (unlike what
    documentation says)

 e-util/e-win32-defaults.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)
---
diff --git a/e-util/e-win32-defaults.c b/e-util/e-win32-defaults.c
index 3d919a0..eca9249 100644
--- a/e-util/e-win32-defaults.c
+++ b/e-util/e-win32-defaults.c
@@ -104,8 +104,6 @@ _e_win32_register_mailer_impl (WINBOOL system)
 	DWORD i, dwDisposition;
 	gchar *defaultIcon = NULL;
 	gchar *dllPath = NULL;
-	gchar *dllShortPath = NULL;
-	DWORD dllShortPathLength;
 	gchar *evolutionBinary = NULL;
 	gchar *openCommand = NULL;
 	gchar *setDefaultCommand = NULL;
@@ -166,28 +164,24 @@ _e_win32_register_mailer_impl (WINBOOL system)
 		return;
 	
 	dllPath = _e_win32_sanitize_path (g_build_path(G_DIR_SEPARATOR_S, _e_get_bindir (), EUTILDLL, NULL));
-	dllShortPathLength = GetShortPathNameA (dllPath, NULL, 0);
-	dllShortPath = g_new0 (char, dllShortPathLength);
-	GetShortPathNameA (dllPath, dllShortPath, dllShortPathLength);
-	g_free (dllPath);
 	
-	setDefaultCommand = g_strconcat ("rundll32 ", dllShortPath, ",_e_win32_set_default_mailer", NULL);
-	unsetDefaultCommand = g_strconcat ("rundll32 ", dllShortPath, ",_e_win32_set_default_mailer", NULL);
-	g_free (dllShortPath);
+	setDefaultCommand = g_strconcat ("%SystemRoot%\\system32\\rundll32.exe \"", dllPath, "\",_e_win32_set_default_mailer", NULL);
+	unsetDefaultCommand = g_strconcat ("%SystemRoot%\\system32\\rundll32.exe \"", dllPath, "\",_e_win32_unset_default_mailer", NULL);
+	g_free (dllPath);
 
-	if ((returnValue = RegSetValueExA (reg_subkey, "ReinstallCommand", 0, REG_SZ, (const BYTE *)setDefaultCommand, strlen (setDefaultCommand) + 1))) {
+	if ((returnValue = RegSetValueExA (reg_subkey, "ReinstallCommand", 0, REG_EXPAND_SZ, (const BYTE *)setDefaultCommand, strlen (setDefaultCommand) + 1))) {
 		g_free (setDefaultCommand);
 		g_free (unsetDefaultCommand);
 		return;
 	}
 	
-	if ((returnValue = RegSetValueExA (reg_subkey, "ShowIconsCommand", 0, REG_SZ, (const BYTE *)setDefaultCommand, strlen (setDefaultCommand) + 1))) {
+	if ((returnValue = RegSetValueExA (reg_subkey, "ShowIconsCommand", 0, REG_EXPAND_SZ, (const BYTE *)setDefaultCommand, strlen (setDefaultCommand) + 1))) {
 		g_free (setDefaultCommand);
 		g_free (unsetDefaultCommand);
 		return;
 	}
 
-	if ((returnValue = RegSetValueExA (reg_subkey, "HideIconsCommand", 0, REG_SZ, (const BYTE *)unsetDefaultCommand, strlen (unsetDefaultCommand) + 1))) {
+	if ((returnValue = RegSetValueExA (reg_subkey, "HideIconsCommand", 0, REG_EXPAND_SZ, (const BYTE *)unsetDefaultCommand, strlen (unsetDefaultCommand) + 1))) {
 		g_free (setDefaultCommand);
 		g_free (unsetDefaultCommand);
 		return;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]