Mercurial > projects > dwt-win
comparison dwt/dnd/HTMLTransfer.d @ 253:fbb9174f2a2c
Reuse the tango windows api
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 11 Jul 2008 23:01:25 +0200 |
parents | fd9c62a2998e |
children | da968414c383 |
comparison
equal
deleted
inserted
replaced
252:dffb802cad03 | 253:fbb9174f2a2c |
---|---|
132 buffer.append(string); | 132 buffer.append(string); |
133 buffer.append(SUFFIX); | 133 buffer.append(SUFFIX); |
134 | 134 |
135 auto wstrz = StrToTCHARz(OS.CP_UTF8,buffer.toString); | 135 auto wstrz = StrToTCHARz(OS.CP_UTF8,buffer.toString); |
136 cchMultiByte = OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, null, 0, null, null); | 136 cchMultiByte = OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, null, 0, null, null); |
137 auto lpMultiByteStr = cast(CHAR*) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); | 137 auto lpMultiByteStr = cast(PCHAR) OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, cchMultiByte); |
138 OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, lpMultiByteStr, cchMultiByte, null, null); | 138 OS.WideCharToMultiByte(OS.CP_UTF8, 0, wstrz, -1, lpMultiByteStr, cchMultiByte, null, null); |
139 transferData.stgmedium = new STGMEDIUM(); | 139 transferData.stgmedium = new STGMEDIUM(); |
140 transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; | 140 transferData.stgmedium.tymed = COM.TYMED_HGLOBAL; |
141 transferData.stgmedium.unionField = lpMultiByteStr; | 141 transferData.stgmedium.unionField = lpMultiByteStr; |
142 transferData.stgmedium.pUnkForRelease = null; | 142 transferData.stgmedium.pUnkForRelease = null; |
165 data.Release(); | 165 data.Release(); |
166 if (transferData.result !is COM.S_OK) return null; | 166 if (transferData.result !is COM.S_OK) return null; |
167 auto hMem = stgmedium.unionField; | 167 auto hMem = stgmedium.unionField; |
168 | 168 |
169 try { | 169 try { |
170 auto lpMultiByteStr = cast(CHAR*) OS.GlobalLock(hMem); | 170 auto lpMultiByteStr = cast(PCHAR) OS.GlobalLock(hMem); |
171 if (lpMultiByteStr is null) return null; | 171 if (lpMultiByteStr is null) return null; |
172 try { | 172 try { |
173 /* NOTE: CF_HTML uses UTF-8 encoding. | 173 /* NOTE: CF_HTML uses UTF-8 encoding. |
174 * The MSDN documentation for MultiByteToWideChar states that dwFlags must be set to 0 for UTF-8. | 174 * The MSDN documentation for MultiByteToWideChar states that dwFlags must be set to 0 for UTF-8. |
175 * Otherwise, the function fails with ERROR_INVALID_FLAGS. */ | 175 * Otherwise, the function fails with ERROR_INVALID_FLAGS. */ |