[PATCH 2/2] ddeml: DdeClientTransaction don't linearize pData when it is actually an HDDEDATA.
Tristan Schmelcher
tristan_schmelcher at alumni.uwaterloo.ca
Thu Dec 2 12:22:35 CST 2010
-------------- next part --------------
From ea874d22dd736ce8a6a43894a3a17fb05c8fe016 Mon Sep 17 00:00:00 2001
From: Tristan Schmelcher <tristan_schmelcher at alumni.uwaterloo.ca>
Date: Thu, 2 Dec 2010 10:16:58 -0800
Subject: ddeml: DdeClientTransaction don't linearize pData when it is actually an HDDEDATA.
---
dlls/ddeml.dll16/ddeml.c | 6 ++++++
dlls/ddeml.dll16/ddeml.dll16.spec | 2 +-
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/dlls/ddeml.dll16/ddeml.c b/dlls/ddeml.dll16/ddeml.c
index e0a9dda..c7cbd51 100644
--- a/dlls/ddeml.dll16/ddeml.c
+++ b/dlls/ddeml.dll16/ddeml.c
@@ -386,6 +386,12 @@ HDDEDATA WINAPI DdeClientTransaction16(LPVOID pData, DWORD cbData, HCONV hConv,
HSZ hszItem, UINT16 wFmt, UINT16 wType,
DWORD dwTimeout, LPDWORD pdwResult)
{
+ if (cbData != (DWORD)-1)
+ {
+ /* pData is not a pointer if cbData is -1, so we linearize the address
+ * here rather than in the calling code. */
+ pData = MapSL((SEGPTR)pData);
+ }
return DdeClientTransaction(pData, cbData, hConv, hszItem,
wFmt, wType, dwTimeout, pdwResult);
}
diff --git a/dlls/ddeml.dll16/ddeml.dll16.spec b/dlls/ddeml.dll16/ddeml.dll16.spec
index 81dfb9d..ded7103 100644
--- a/dlls/ddeml.dll16/ddeml.dll16.spec
+++ b/dlls/ddeml.dll16/ddeml.dll16.spec
@@ -7,7 +7,7 @@
8 pascal -ret16 DdeDisconnect(long) DdeDisconnect16
9 pascal -ret16 DdeQueryConvInfo(long long ptr) DdeQueryConvInfo16
10 pascal -ret16 DdeSetUserHandle(long long long) DdeSetUserHandle16
-11 pascal DdeClientTransaction(ptr long long long word word long ptr) DdeClientTransaction16
+11 pascal DdeClientTransaction(long long long long word word long ptr) DdeClientTransaction16
12 pascal -ret16 DdeAbandonTransaction(long long long) DdeAbandonTransaction16
13 pascal -ret16 DdePostAdvise(long long long) DdePostAdvise16
14 pascal DdeCreateDataHandle(long ptr long long long word word) DdeCreateDataHandle16
--
1.7.0.4
More information about the wine-patches
mailing list