home *** CD-ROM | disk | FTP | other *** search
- package icontrols;
-
- import com.ms.com.ComSuccessException;
- import com.ms.wd.app.DataObject;
- import com.ms.wd.app.IDataObject;
- import com.ms.wd.core.ISite;
- import com.ms.wd.ole32.FORMATETC;
- import com.ms.wd.ole32.IEnumFORMATETC;
- import com.ms.wd.ole32.IOleDataObject;
- import com.ms.wd.ole32.IOleDropTarget;
- import com.ms.wd.ole32.POINTL;
- import com.ms.wd.ui.Control;
- import com.ms.wd.ui.DragEvent;
- import com.ms.wd.win32.POINT;
- import com.ms.wd.win32.Windows;
- import iforms.CodeManager;
-
- class HTMLControl$DropTarget implements IOleDropTarget {
- private IDataObject lastDataObject;
- // $FF: synthetic field
- final HTMLControl this$0;
-
- HTMLControl$DropTarget(HTMLControl this$0) {
- (this.this$0 = this$0).getClass();
- this.lastDataObject = null;
- }
-
- public final void OleDragEnter(IOleDataObject pDataObj, int grfKeyState, POINTL pt, int[] pdwEffect) {
- pdwEffect[0] = 3;
- }
-
- public final void OleDragOver(int grfKeyState, POINTL pt, int[] pdwEffect) {
- pdwEffect[0] = 3;
- }
-
- public final void OleDrop(IOleDataObject pDataObj, int grfKeyState, POINTL pt, int[] pdwEffect) {
- DataObject dobj = new DataObject(pDataObj);
- IEnumFORMATETC[] fe = new IEnumFORMATETC[1];
- dobj.OleEnumFormatEtc(1, fe);
- if (fe[0] != null) {
- FORMATETC fe1 = new FORMATETC();
- int[] pInt = new int[1];
-
- while(true) {
- try {
- if (fe[0] != null) {
- fe[0].Next(1, fe1, pInt);
- }
-
- if (pInt[0] == 0) {
- break;
- }
- } catch (ComSuccessException var14) {
- break;
- }
-
- System.out.println(fe1.cfFormat);
- if (fe1.tymed == 4) {
- byte[] data = this.this$0.getIStreamData(dobj, fe1);
- ISite site = this.this$0.getSite();
-
- Object obj;
- try {
- if (site != null) {
- CodeManager cm = (CodeManager)site.getContainer();
- obj = cm.createComponent(this.this$0.extractNameFromData(data), true);
- } else {
- obj = Class.forName(this.this$0.extractNameFromData(data)).newInstance();
- }
- } catch (Exception var13) {
- pdwEffect[0] = 0;
- this.lastDataObject = null;
- return;
- }
-
- if (obj != null && obj instanceof Control) {
- POINT pt2 = new POINT();
- pt2.x = pt.x;
- pt2.y = pt.y;
- Windows.ScreenToClient(this.this$0.getHandle(), pt2);
- ((Control)obj).setLocation(pt2.x, pt2.y);
- this.this$0.add((Control)obj);
- }
- }
- }
- }
-
- pdwEffect[0] = 3;
- this.lastDataObject = null;
- }
-
- private final DragEvent createDragEvent(IOleDataObject pDataObj, int grfKeyState, POINTL pt, int[] pdwEffect) {
- IDataObject data = null;
- Object var8;
- if (pDataObj == null) {
- var8 = this.lastDataObject;
- } else {
- try {
- var8 = (IDataObject)pDataObj;
- } catch (Exception var7) {
- var8 = new DataObject(pDataObj);
- }
- }
-
- DragEvent event = new DragEvent((IDataObject)var8, grfKeyState, pt.x, pt.y, pdwEffect[0]);
- this.lastDataObject = (IDataObject)var8;
- return event;
- }
-
- public final void OleDragLeave() {
- }
- }
-