Tristan Schmelcher : ddeml: More calling convention fixes.

Alexandre Julliard julliard at winehq.org
Thu Dec 2 12:23:56 CST 2010


Module: wine
Branch: master
Commit: 8fb6b02d946d751a9c26c20d94c71a83e1088349
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8fb6b02d946d751a9c26c20d94c71a83e1088349

Author: Tristan Schmelcher <tristan_schmelcher at alumni.uwaterloo.ca>
Date:   Wed Dec  1 12:32:46 2010 -0800

ddeml: More calling convention fixes.

---

 dlls/ddeml.dll16/ddeml.c          |    6 ++++++
 dlls/ddeml.dll16/ddeml.dll16.spec |   18 +++++++++---------
 2 files changed, 15 insertions(+), 9 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 73fd461..ded7103 100644
--- a/dlls/ddeml.dll16/ddeml.dll16.spec
+++ b/dlls/ddeml.dll16/ddeml.dll16.spec
@@ -1,29 +1,29 @@
 2 pascal -ret16 DdeInitialize(ptr segptr long long) DdeInitialize16
 3 pascal -ret16 DdeUninitialize(long) DdeUninitialize16
-4 pascal DdeConnectList(long long long word ptr) DdeConnectList16
+4 pascal DdeConnectList(long long long long ptr) DdeConnectList16
 5 pascal DdeQueryNextServer(long long) DdeQueryNextServer16
 6 pascal -ret16 DdeDisconnectList(long) DdeDisconnectList16
 7 pascal DdeConnect(long long long ptr) DdeConnect16
 8 pascal -ret16 DdeDisconnect(long) DdeDisconnect16
-9 pascal -ret16 DdeQueryConvInfo (long long ptr) DdeQueryConvInfo16
+9 pascal -ret16 DdeQueryConvInfo(long long ptr) DdeQueryConvInfo16
 10 pascal -ret16 DdeSetUserHandle(long long long) DdeSetUserHandle16
-11 pascal DdeClientTransaction(ptr long long long s_word s_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
-15 pascal DdeAddData(word ptr long long) DdeAddData16
-16 pascal DdeGetData(word ptr long long) DdeGetData16
-17 pascal DdeAccessData(word ptr) DdeAccessData16
-18 pascal -ret16 DdeUnaccessData(word) DdeUnaccessData16
+15 pascal DdeAddData(long ptr long long) DdeAddData16
+16 pascal DdeGetData(long ptr long long) DdeGetData16
+17 pascal DdeAccessData(long ptr) DdeAccessData16
+18 pascal -ret16 DdeUnaccessData(long) DdeUnaccessData16
 19 pascal -ret16 DdeFreeDataHandle(long) DdeFreeDataHandle16
 20 pascal -ret16 DdeGetLastError(long) DdeGetLastError16
 21 pascal DdeCreateStringHandle(long str s_word) DdeCreateStringHandle16
 22 pascal -ret16 DdeFreeStringHandle(long long) DdeFreeStringHandle16
-23 pascal DdeQueryString (long long ptr long word) DdeQueryString16
+23 pascal DdeQueryString(long long ptr long s_word) DdeQueryString16
 24 pascal -ret16 DdeKeepStringHandle(long long) DdeKeepStringHandle16
 
 26 pascal -ret16 DdeEnableCallback(long long word) DdeEnableCallback16
-27 pascal DdeNameService(long long long s_word) DdeNameService16
+27 pascal DdeNameService(long long long word) DdeNameService16
 
 36 pascal -ret16 DdeCmpStringHandles(long long) DdeCmpStringHandles16
 37 pascal DdeReconnect(long) DdeReconnect




More information about the wine-cvs mailing list