]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.eclipse.swt.win32.win32.x86_64/src/org/eclipse/swt/dnd/TransferData.java
Work around SWT 4.13 - 4.18 Win32 DnD bug 567422
[simantics/platform.git] / bundles / org.eclipse.swt.win32.win32.x86_64 / src / org / eclipse / swt / dnd / TransferData.java
diff --git a/bundles/org.eclipse.swt.win32.win32.x86_64/src/org/eclipse/swt/dnd/TransferData.java b/bundles/org.eclipse.swt.win32.win32.x86_64/src/org/eclipse/swt/dnd/TransferData.java
new file mode 100644 (file)
index 0000000..80240e2
--- /dev/null
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2012 IBM Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.swt.dnd;
+
+import org.eclipse.swt.internal.ole.win32.*;
+
+/**
+ * The <code>TransferData</code> class is a platform specific data structure for
+ * describing the type and the contents of data being converted by a transfer agent.
+ *
+ * <p>As an application writer, you do not need to know the specifics of
+ * TransferData.  TransferData instances are passed to a subclass of Transfer
+ * and the Transfer object manages the platform specific issues.
+ * You can ask a Transfer subclass if it can handle this data by calling
+ * Transfer.isSupportedType(transferData).</p>
+ *
+ * <p>You should only need to become familiar with the fields in this class if you
+ * are implementing a Transfer subclass and you are unable to subclass the
+ * ByteArrayTransfer class.</p>
+ *
+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
+ */
+public class TransferData {
+       /**
+        * The type is a unique identifier of a system format or user defined format.
+        * (Warning: This field is platform dependent)
+        * <p>
+        * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT
+        * public API. It is marked public only so that it can be shared
+        * within the packages provided by SWT. It is not available on all
+        * platforms and should never be accessed from application code.
+        * </p>
+        *
+        * @noreference This field is not intended to be referenced by clients.
+        */
+       public int type;
+
+       /**
+        * The formatetc structure is a generalized data transfer format, enhanced to
+        * encompass a target device, the aspect, or view of the data, and
+        * a storage medium.
+        * (Warning: This field is platform dependent)
+        * <p>
+        * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT
+        * public API. It is marked public only so that it can be shared
+        * within the packages provided by SWT. It is not available on all
+        * platforms and should never be accessed from application code.
+        * </p>
+        *
+        * @noreference This field is not intended to be referenced by clients.
+        */
+       public FORMATETC formatetc;
+
+       /**
+        * The stgmedium structure is a generalized global memory handle used for
+        * data transfer operations.
+        * (Warning: This field is platform dependent)
+        * <p>
+        * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT
+        * public API. It is marked public only so that it can be shared
+        * within the packages provided by SWT. It is not available on all
+        * platforms and should never be accessed from application code.
+        * </p>
+        *
+        * @noreference This field is not intended to be referenced by clients.
+        */
+       public STGMEDIUM stgmedium;
+
+       /**
+        * The result field contains the result of converting a
+        * java data type into a platform specific value.
+        * (Warning: This field is platform dependent)
+        * <p>
+        * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT
+        * public API. It is marked public only so that it can be shared
+        * within the packages provided by SWT. It is not available on all
+        * platforms and should never be accessed from application code.
+        * </p>
+        * <p>The value of result is 1 if the conversion was successful.
+        * The value of result is 0 if the conversion failed.</p>
+        *
+        * @noreference This field is not intended to be referenced by clients.
+        */
+       public int result = COM.E_FAIL;
+
+       /**
+        * The pIDataObject is the address of an IDataObject OLE Interface which
+        * provides access to the data associated with the transfer.
+        * (Warning: This field is platform dependent)
+        * <p>
+        * <b>IMPORTANT:</b> This field is <em>not</em> part of the SWT
+        * public API. It is marked public only so that it can be shared
+        * within the packages provided by SWT. It is not available on all
+        * platforms and should never be accessed from application code.
+        * </p>
+        *
+        * @noreference This field is not intended to be referenced by clients.
+        */
+       public long pIDataObject;
+
+       static boolean sameType(TransferData data1, TransferData data2) {
+               if (data1 == data2) return true;
+               if (data1 == null || data2 == null) return false;
+               return (data1.type == data2.type &&
+                               data1.formatetc.cfFormat == data2.formatetc.cfFormat &&
+                               data1.formatetc.dwAspect == data2.formatetc.dwAspect &&
+                               data1.formatetc.tymed == data2.formatetc.tymed);
+       }
+
+}