亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bytearraytransfer.java

?? 源碼為Eclipse開(kāi)源開(kāi)發(fā)平臺(tái)桌面開(kāi)發(fā)工具SWT的源代碼,
?? JAVA
字號(hào):
/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials  * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html *  * Contributors: *     IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.swt.dnd;import org.eclipse.swt.internal.ole.win32.*;import org.eclipse.swt.internal.win32.*;/** * The class <code>ByteArrayTransfer</code> provides a platform specific  * mechanism for converting a java <code>byte[]</code> to a platform  * specific representation of the byte array and vice versa.  See  * <code>Transfer</code> for additional information. * * <p><code>ByteArrayTransfer</code> is never used directly but is sub-classed  * by transfer agents that convert between data in a java format such as a * <code>String</code> and a platform specific byte array. *  * <p>If the data you are converting <b>does not</b> map to a  * <code>byte[]</code>, you should sub-class <code>Transfer</code> directly  * and do your own mapping to a platform data type.</p> *  * <p>The following snippet shows a sublcass of ByteArrayTransfer that transfers * data defined by the class <code>MyType</code>.</p> *  * <pre><code> * public class MyType { *	public String fileName; *	public long fileLength; *	public long lastModified; * } * </code></pre> *  * <code><pre> * public class MyTypeTransfer extends ByteArrayTransfer { *	 *	private static final String MYTYPENAME = "my_type_name"; *	private static final int MYTYPEID = registerType(MYTYPENAME); *	private static MyTypeTransfer _instance = new MyTypeTransfer(); *  * private MyTypeTransfer() {} *  * public static MyTypeTransfer getInstance () { * 	return _instance; * } * public void javaToNative (Object object, TransferData transferData) { * 	if (object == null || !(object instanceof MyType[])) return; * 	 * 	if (isSupportedType(transferData)) { * 		MyType[] myTypes = (MyType[]) object;	 * 		try { * 			// write data to a byte array and then ask super to convert to pMedium * 			ByteArrayOutputStream out = new ByteArrayOutputStream(); * 			DataOutputStream writeOut = new DataOutputStream(out); * 			for (int i = 0, length = myTypes.length; i &lt length;  i++){ * 				byte[] buffer = myTypes[i].fileName.getBytes(); * 				writeOut.writeInt(buffer.length); * 				writeOut.write(buffer); * 				writeOut.writeLong(myTypes[i].fileLength); * 				writeOut.writeLong(myTypes[i].lastModified); * 			} * 			byte[] buffer = out.toByteArray(); * 			writeOut.close(); *  * 			super.javaToNative(buffer, transferData); * 			 * 		} catch (IOException e) { * 		} * 	} * } * public Object nativeToJava(TransferData transferData){	 *  * 	if (isSupportedType(transferData)) { * 		 * 		byte[] buffer = (byte[])super.nativeToJava(transferData); * 		if (buffer == null) return null; * 		 * 		MyType[] myData = new MyType[0]; * 		try { * 			ByteArrayInputStream in = new ByteArrayInputStream(buffer); * 			DataInputStream readIn = new DataInputStream(in); * 			while(readIn.available() > 20) { * 				MyType datum = new MyType(); * 				int size = readIn.readInt(); * 				byte[] name = new byte[size]; * 				readIn.read(name); * 				datum.fileName = new String(name); * 				datum.fileLength = readIn.readLong(); * 				datum.lastModified = readIn.readLong(); * 				MyType[] newMyData = new MyType[myData.length + 1]; * 				System.arraycopy(myData, 0, newMyData, 0, myData.length); * 				newMyData[myData.length] = datum; * 				myData = newMyData; * 			} * 			readIn.close(); * 		} catch (IOException ex) { * 			return null; * 		} * 		return myData; * 	} *  * 	return null; * } * protected String[] getTypeNames(){ * 	return new String[]{MYTYPENAME}; * } * protected int[] getTypeIds(){ * 	return new int[] {MYTYPEID}; * } * } */public abstract class ByteArrayTransfer extends Transfer {public TransferData[] getSupportedTypes() {	int[] types = getTypeIds();	TransferData[] data = new TransferData[types.length];	for (int i = 0; i < types.length; i++) {		data[i] = new TransferData();		data[i].type = types[i];		data[i].formatetc = new FORMATETC();		data[i].formatetc.cfFormat = types[i];		data[i].formatetc.dwAspect = COM.DVASPECT_CONTENT;		data[i].formatetc.lindex = -1;		data[i].formatetc.tymed = COM.TYMED_HGLOBAL;		}	return data;}public boolean isSupportedType(TransferData transferData){	if (transferData == null) return false;	int[] types = getTypeIds();	for (int i = 0; i < types.length; i++) {		FORMATETC format = transferData.formatetc;		if (format.cfFormat == types[i] &&		    (format.dwAspect & COM.DVASPECT_CONTENT) == COM.DVASPECT_CONTENT && 		    (format.tymed & COM.TYMED_HGLOBAL) == COM.TYMED_HGLOBAL  )		    return true;	}	return false;}/** * This implementation of <code>javaToNative</code> converts a java  * <code>byte[]</code> to a platform specific representation.  For additional * information see <code>Transfer#javaToNative</code>. *  * @see Transfer#javaToNative *  * @param object a java <code>byte[]</code> containing the data to be converted * @param transferData an empty <code>TransferData</code> object; this *  object will be filled in on return with the platform specific format of the data */protected void javaToNative (Object object, TransferData transferData) {	transferData.result = COM.E_FAIL;	if (object == null || !(object instanceof byte[])) return;	if (!isSupportedType(transferData)) {		// did not match the TYMED		transferData.stgmedium = new STGMEDIUM();		transferData.result = COM.DV_E_TYMED;		return;	}	// Allocate the memory because the caller (DropTarget) has not handed it in	// The caller of this method must release the data when it is done with it.	byte[] data = (byte[])object;	int size = data.length;	int newPtr = OS.GlobalAlloc(OS.GMEM_FIXED | OS.GMEM_ZEROINIT, size);	OS.MoveMemory(newPtr, data, size);		transferData.stgmedium = new STGMEDIUM();	transferData.stgmedium.tymed = COM.TYMED_HGLOBAL;	transferData.stgmedium.unionField = newPtr;	transferData.stgmedium.pUnkForRelease = 0;	transferData.result = COM.S_OK;}/** * This implementation of <code>nativeToJava</code> converts a platform specific  * representation of a byte array to a java <code>byte[]</code>.    * For additional information see <code>Transfer#nativeToJava</code>. *  * @see Transfer#nativeToJava *  * @param transferData the platform specific representation of the data to be  * been converted * @return a java <code>byte[]</code> containing the converted data if the  * conversion was successful; otherwise null */protected Object nativeToJava(TransferData transferData) {	if (!isSupportedType(transferData) || transferData.pIDataObject == 0)  return null;		IDataObject data = new IDataObject(transferData.pIDataObject);	data.AddRef();	FORMATETC formatetc = transferData.formatetc;	STGMEDIUM stgmedium = new STGMEDIUM();	stgmedium.tymed = COM.TYMED_HGLOBAL;		transferData.result = data.GetData(formatetc, stgmedium);	data.Release();	if (transferData.result != COM.S_OK) return null;	int hMem = stgmedium.unionField;	int size = OS.GlobalSize(hMem);	byte[] buffer = new byte[size];	int ptr = OS.GlobalLock(hMem);	OS.MoveMemory(buffer, ptr, size);	OS.GlobalUnlock(hMem);		OS.GlobalFree(hMem);	return buffer;}}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费视频网站| 国产成人在线视频网址| 7777精品伊人久久久大香线蕉完整版 | 国产欧美综合色| 欧美午夜精品一区二区蜜桃| 国产裸体歌舞团一区二区| 亚洲另类在线制服丝袜| 久久久www免费人成精品| 欧美日本在线看| 成人高清免费观看| 精品一区二区av| 亚洲成人久久影院| 亚洲色图欧美在线| 国产欧美一区二区三区鸳鸯浴| 欧美精品丝袜中出| 亚洲激情欧美激情| 丰满放荡岳乱妇91ww| 欧美日韩精品一区二区天天拍小说 | 丁香婷婷综合色啪| 麻豆久久久久久久| 亚洲成人av电影在线| 成人免费在线播放视频| 国产网站一区二区三区| 日韩限制级电影在线观看| 在线视频一区二区三区| 96av麻豆蜜桃一区二区| 成人理论电影网| 国产精品一区二区视频| 毛片一区二区三区| 日韩国产精品91| 亚洲国产精品自拍| 亚洲一区二区偷拍精品| 一二三四社区欧美黄| 午夜在线电影亚洲一区| 色嗨嗨av一区二区三区| 亚洲不卡av一区二区三区| 蜜桃一区二区三区在线| 亚洲成人免费看| 五月婷婷久久丁香| 亚洲国产精品一区二区久久 | 最新高清无码专区| 中文字幕第一区综合| 欧美经典三级视频一区二区三区| 国产亚洲午夜高清国产拍精品| 久久蜜桃av一区精品变态类天堂 | 日韩精品五月天| 免费的国产精品| 精品中文字幕一区二区小辣椒| 久久福利视频一区二区| 国产在线精品免费av| 国产成人三级在线观看| 久久精品欧美日韩精品 | 久久精品国产网站| 国产精品你懂的在线欣赏| 亚洲国产成人在线| 亚洲手机成人高清视频| 亚洲精品乱码久久久久| 亚洲福利一二三区| 老汉av免费一区二区三区| 九一久久久久久| 国产精品18久久久久久vr| 成人妖精视频yjsp地址| 在线中文字幕一区| 欧美二区三区91| 久久亚洲私人国产精品va媚药| 欧美激情中文不卡| 一区二区免费视频| 国产精品久久久久aaaa| 亚洲va欧美va人人爽| 狠狠色综合日日| 91在线观看地址| 制服丝袜在线91| 久久九九久精品国产免费直播| 国产精品三级久久久久三级| 亚洲国产成人porn| 国模套图日韩精品一区二区 | 欧美国产日韩精品免费观看| 欧美精品一二三| 欧美大黄免费观看| 国产精品色婷婷久久58| 午夜久久久久久| 国产精品一二一区| 欧洲色大大久久| 精品国产污污免费网站入口| 中文字幕一区二区三区色视频| 亚洲国产精品久久久久婷婷884 | 午夜精品在线看| 国产成人精品综合在线观看| 欧美日韩一级片在线观看| 国产欧美日韩卡一| 天天色天天爱天天射综合| 成人av在线影院| 欧美大片在线观看一区| 亚洲影视在线播放| 国产激情视频一区二区在线观看| 在线观看日韩精品| 日本一区二区不卡视频| 秋霞成人午夜伦在线观看| 欧美日韩三级一区| 亚洲午夜精品17c| 天堂一区二区在线| 成人av综合一区| 精品国产亚洲一区二区三区在线观看| 曰韩精品一区二区| 国产激情精品久久久第一区二区 | 91在线免费看| 久久精品亚洲麻豆av一区二区| 亚洲成人在线网站| 不卡在线观看av| 久久久亚洲综合| 免费观看日韩电影| 欧美美女一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 激情丁香综合五月| 日韩天堂在线观看| 热久久免费视频| 欧美日本在线看| 亚洲国产另类精品专区| 色94色欧美sute亚洲线路二 | 日本中文一区二区三区| 在线观看视频一区二区| 亚洲品质自拍视频网站| av电影在线观看不卡| 欧美韩日一区二区三区四区| 韩国三级电影一区二区| 日韩精品在线网站| 蜜桃视频在线一区| 日韩午夜小视频| 美女一区二区久久| 日韩一区二区免费在线观看| 日韩一区精品视频| 欧美一区二区在线看| 日韩精品1区2区3区| 欧美一卡2卡3卡4卡| 开心九九激情九九欧美日韩精美视频电影 | 视频一区二区三区中文字幕| 欧美在线|欧美| 亚洲国产成人va在线观看天堂| 91福利精品视频| 亚洲一区二区在线免费看| 欧美视频一区二区在线观看| 亚洲第一狼人社区| 欧美一区二区在线不卡| 日本不卡免费在线视频| 日韩视频一区在线观看| 国产一区二区三区日韩| 欧美国产精品v| 色悠悠亚洲一区二区| 亚洲国产日产av| 欧美一级二级三级乱码| 国产伦精一区二区三区| 国产精品色在线| 欧日韩精品视频| 日产欧产美韩系列久久99| 精品乱码亚洲一区二区不卡| 盗摄精品av一区二区三区| 亚洲视频在线一区二区| 欧美日韩中文字幕精品| 蜜臀精品一区二区三区在线观看| 2020国产精品| 92国产精品观看| 肉丝袜脚交视频一区二区| 精品国偷自产国产一区| av不卡在线播放| 日韩成人免费看| 久久久久国产免费免费| 色婷婷综合久久久中文一区二区 | 97精品久久久午夜一区二区三区 | 国产精品久久久久久福利一牛影视| 色综合久久天天综合网| 日一区二区三区| 中文字幕不卡在线观看| 欧美日韩国产大片| 国产一区二区不卡在线 | 亚洲v精品v日韩v欧美v专区 | 日韩激情一二三区| 国产女主播视频一区二区| 色狠狠色噜噜噜综合网| 韩国av一区二区三区在线观看 | 六月丁香婷婷久久| 亚洲日本韩国一区| 日韩视频在线永久播放| 91亚洲精品一区二区乱码| 日本视频一区二区| 亚洲欧洲日产国码二区| 日韩亚洲欧美一区二区三区| 99视频国产精品| 免费看日韩精品| 亚洲精选在线视频| 久久久91精品国产一区二区精品 | 国产精品乱码一区二区三区软件| 欧美三区在线视频| 成人福利视频网站| 另类的小说在线视频另类成人小视频在线 | 亚洲三级在线看| 国产精品18久久久久久vr| 欧美一区二区久久久| 国产精品一区久久久久| 国产精品久线观看视频| 日韩一级片网站|