try { notifyListeners(DND.DragSetData,event); } catch (Throwable e) { return COM.E_FAIL; }
notifyListeners(DND.DragSetData,event);
private int GetData(int pFormatetc, int pmedium) {	/* Called by a data consumer to obtain data from a source data object. 	   The GetData method renders the data described in the specified FORMATETC 	   structure and transfers it through the specified STGMEDIUM structure. 	   The caller then assumes responsibility for releasing the STGMEDIUM structure.	*/	if (pFormatetc == 0 || pmedium == 0) return COM.E_INVALIDARG;	if (QueryGetData(pFormatetc) != COM.S_OK) return COM.DV_E_FORMATETC;	TransferData transferData = new TransferData();	transferData.formatetc = new FORMATETC();	COM.MoveMemory(transferData.formatetc, pFormatetc, FORMATETC.sizeof);	transferData.type = transferData.formatetc.cfFormat;	transferData.stgmedium = new STGMEDIUM();	transferData.result = COM.E_FAIL;		DNDEvent event = new DNDEvent();	event.widget = this;	event.time = OS.GetMessageTime();	event.dataType = transferData;	try {		notifyListeners(DND.DragSetData,event);	} catch (Throwable e) {		return COM.E_FAIL;	}		if (event.data == null) return COM.DV_E_FORMATETC;		// get matching transfer agent to perform conversion	Transfer transfer = null;	for (int i = 0; i < transferAgents.length; i++){		if (transferAgents[i].isSupportedType(transferData)){			transfer = transferAgents[i];			break;		}	}		if (transfer == null) return COM.DV_E_FORMATETC;	transfer.javaToNative(event.data, transferData);	if (transferData.result != COM.S_OK) return transferData.result;	COM.MoveMemory(pmedium, transferData.stgmedium, STGMEDIUM.sizeof);	return transferData.result;}