Mercurial > projects > dwt-win
comparison dwt/dnd/URLTransfer.d @ 237:e2affbeb686d
Making tango.sys.win32.Types and dwt.internal.win32.WINTYPES to match common declaration. Make ansi charactars of type ubyte.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Jun 2008 03:25:36 +0200 |
parents | 36f5cb12e1a2 |
children | fd9c62a2998e |
comparison
equal
deleted
inserted
replaced
236:9c1bb90eba13 | 237:e2affbeb686d |
---|---|
88 if (cchMultiByte is 0) { | 88 if (cchMultiByte is 0) { |
89 transferData.stgmedium = new STGMEDIUM(); | 89 transferData.stgmedium = new STGMEDIUM(); |
90 transferData.result = COM.DV_E_STGMEDIUM; | 90 transferData.result = COM.DV_E_STGMEDIUM; |
91 return; | 91 return; |
92 } | 92 } |
93 auto lpMultiByteStr = cast(char*)OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); | 93 auto lpMultiByteStr = cast(CHAR*)OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); |
94 OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, lpMultiByteStr, cchMultiByte, null, null); | 94 OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, lpMultiByteStr, cchMultiByte, null, null); |
95 transferData.stgmedium = new STGMEDIUM(); | 95 transferData.stgmedium = new STGMEDIUM(); |
96 transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; | 96 transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; |
97 transferData.stgmedium.unionField = lpMultiByteStr; | 97 transferData.stgmedium.unionField = lpMultiByteStr; |
98 transferData.stgmedium.pUnkForRelease = null; | 98 transferData.stgmedium.pUnkForRelease = null; |
120 transferData.result = data.GetData(formatetc, stgmedium); | 120 transferData.result = data.GetData(formatetc, stgmedium); |
121 data.Release(); | 121 data.Release(); |
122 if (transferData.result !is COM.S_OK) return null; | 122 if (transferData.result !is COM.S_OK) return null; |
123 auto hMem = stgmedium.unionField; | 123 auto hMem = stgmedium.unionField; |
124 try { | 124 try { |
125 auto lpMultiByteStr = cast(char*)OS.GlobalLock(hMem); | 125 auto lpMultiByteStr = cast(CHAR*)OS.GlobalLock(hMem); |
126 if (lpMultiByteStr is null) return null; | 126 if (lpMultiByteStr is null) return null; |
127 try { | 127 try { |
128 int codePage = OS.GetACP(); | 128 int codePage = OS.GetACP(); |
129 int cchWideChar = OS.MultiByteToWideChar (codePage, OS.MB_PRECOMPOSED, lpMultiByteStr, -1, null, 0); | 129 int cchWideChar = OS.MultiByteToWideChar (codePage, OS.MB_PRECOMPOSED, lpMultiByteStr, -1, null, 0); |
130 if (cchWideChar is 0) return null; | 130 if (cchWideChar is 0) return null; |