winebrowser: make dde works right when version > NT
Ivan Sinitsin
ivan at etersoft.ru
Mon Jun 30 02:05:42 CDT 2008
Fix propblem with command `wine start http://<something>` when version of
windows > NT.
When version > NT we have WCHAR and don`t need to transform char to WCHAR.
Changelog:
Fix propblem with command `wine start http://<something>` when version of
windows > NT.
--
Sinitsin Ivan
-------------- next part --------------
From b96fd1b67730f3f3309df492c6e8af404978da2b Mon Sep 17 00:00:00 2001
From: Sinitsin Ivan <ivan at etersoft.ru>
Date: Mon, 30 Jun 2008 10:50:06 +0400
Subject: [PATCH] winebrowser: Fix problem with command `wine start http://<something>` when version of windows > NT
---
programs/winebrowser/main.c | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/programs/winebrowser/main.c b/programs/winebrowser/main.c
index 3ad24ae..82bb3b2 100644
--- a/programs/winebrowser/main.c
+++ b/programs/winebrowser/main.c
@@ -201,11 +201,18 @@ static HDDEDATA CALLBACK ddeCb(UINT uType, UINT uFmt, HCONV hConv,
WINE_WARN("DdeGetData did not return %d bytes\n", size);
else
{
- int len = MultiByteToWideChar(CP_ACP, 0, buffer, -1, NULL, 0);
- if (!(ddeString = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR))))
- WINE_ERR("Out of memory\n");
- else
- MultiByteToWideChar(CP_ACP, 0, buffer, -1, ddeString, len);
+ if (GetVersion() & 0x80000000) {
+ int len = MultiByteToWideChar(CP_ACP, 0, buffer, -1, NULL, 0);
+ if (!(ddeString = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR))))
+ WINE_ERR("Out of memory\n");
+ else
+ MultiByteToWideChar(CP_ACP, 0, buffer, -1, ddeString, len);
+ } else {
+ if (!(ddeString = HeapAlloc(GetProcessHeap(), 0, size)))
+ WINE_ERR("Out of memory\n");
+ else
+ memcpy(ddeString, (LPBYTE)buffer, size);
+ }
}
HeapFree(GetProcessHeap(), 0, buffer);
DdeFreeDataHandle(hData);
--
1.5.4.5.GIT
More information about the wine-patches
mailing list