Mercurial > projects > dwt2
comparison org.eclipse.swt.win32.win32.x86/src/org/eclipse/swt/dnd/TextTransfer.d @ 43:b98647bc0aef
swt win compiles for d2+phobos
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 25 Mar 2009 17:08:05 +0100 |
parents | 4c0057e71936 |
children |
comparison
equal
deleted
inserted
replaced
42:63aa48e5430f | 43:b98647bc0aef |
---|---|
75 public void javaToNative (Object object, TransferData transferData){ | 75 public void javaToNative (Object object, TransferData transferData){ |
76 if (!checkText(object) || !isSupportedType(transferData)) { | 76 if (!checkText(object) || !isSupportedType(transferData)) { |
77 DND.error(DND.ERROR_INVALID_DATA); | 77 DND.error(DND.ERROR_INVALID_DATA); |
78 } | 78 } |
79 transferData.result = COM.E_FAIL; | 79 transferData.result = COM.E_FAIL; |
80 String string = (cast(ArrayWrapperString)object).array; | 80 String string = stringcast(object); |
81 switch (transferData.type) { | 81 switch (transferData.type) { |
82 case COM.CF_UNICODETEXT: { | 82 case COM.CF_UNICODETEXT: { |
83 wchar[] chars = StrToWCHARs(0,string, true); | 83 String16 chars = StrToWCHARs(0,string, true); |
84 int charCount = chars.length; | 84 int charCount = chars.length; |
85 int byteCount = chars.length * 2; | 85 int byteCount = chars.length * 2; |
86 auto newPtr = OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, byteCount); | 86 auto newPtr = OS.GlobalAlloc(COM.GMEM_FIXED | COM.GMEM_ZEROINIT, byteCount); |
87 OS.MoveMemory(newPtr, chars.ptr, byteCount); | 87 OS.MoveMemory(newPtr, chars.ptr, byteCount); |
88 transferData.stgmedium = new STGMEDIUM(); | 88 transferData.stgmedium = new STGMEDIUM(); |
91 transferData.stgmedium.pUnkForRelease = null; | 91 transferData.stgmedium.pUnkForRelease = null; |
92 transferData.result = COM.S_OK; | 92 transferData.result = COM.S_OK; |
93 break; | 93 break; |
94 } | 94 } |
95 case COM.CF_TEXT: { | 95 case COM.CF_TEXT: { |
96 wchar[] chars = StrToWCHARs(0,string, true); | 96 String16 chars = StrToWCHARs(0,string, true); |
97 int count = chars.length; | 97 int count = chars.length; |
98 int codePage = OS.GetACP(); | 98 int codePage = OS.GetACP(); |
99 int cchMultiByte = OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, null, 0, null, null); | 99 int cchMultiByte = OS.WideCharToMultiByte(codePage, 0, chars.ptr, -1, null, 0, null, null); |
100 if (cchMultiByte is 0) { | 100 if (cchMultiByte is 0) { |
101 transferData.stgmedium = new STGMEDIUM(); | 101 transferData.stgmedium = new STGMEDIUM(); |