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();