summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32
diff options
context:
space:
mode:
authorSilenio Quarti <silenio>2001-11-30 21:36:40 +0000
committerSilenio Quarti <silenio>2001-11-30 21:36:40 +0000
commit3b94b611643e88a84364b305b3ac58cd863eca85 (patch)
tree980e706763fe382f7c8b0247ea320fd52a2b4c26 /bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32
parent27b5145a9445913b75765a3d8e5603a0fd4257b8 (diff)
downloadeclipse.platform.swt-3b94b611643e88a84364b305b3ac58cd863eca85.tar.gz
eclipse.platform.swt-3b94b611643e88a84364b305b3ac58cd863eca85.tar.xz
eclipse.platform.swt-3b94b611643e88a84364b305b3ac58cd863eca85.zip
PI restructure
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CAUUID.java13
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COM.java541
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CONTROLINFO.java16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COSERVERINFO.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DISPPARAMS.java16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DVTARGETDEVICE.java17
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/EXCEPINFO.java20
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FORMATETC.java16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC1.java32
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC2.java32
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/GUID.java22
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IClassFactory2.java21
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPoint.java18
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPointContainer.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDataObject.java37
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatch.java60
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnum.java24
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumFORMATETC.java11
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumSTATSTG.java11
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IFont.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IMoniker.java12
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleCommandTarget.java30
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleControl.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceActiveObject.java21
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceObject.java20
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleLink.java18
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleObject.java54
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleWindow.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersist.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersistStorage.java30
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo2.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ISpecifyPropertyPages.java15
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStorage.java143
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStream.java29
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ITypeInfo.java154
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IUnknown.java25
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IViewObject2.java20
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/LICINFO.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMD.java12
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMDTEXT.java16
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO.java18
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STATSTG.java38
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STGMEDIUM.java14
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/TYPEATTR.java49
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC1.java26
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC2.java26
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/package.html20
48 files changed, 1828 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CAUUID.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CAUUID.java
new file mode 100644
index 0000000000..7e471056c8
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CAUUID.java
@@ -0,0 +1,13 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class CAUUID {
+
+ public int cElems;
+ public int pElems;
+
+ public static final int sizeof = 8;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COM.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COM.java
new file mode 100644
index 0000000000..c6a2e06213
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COM.java
@@ -0,0 +1,541 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+import org.eclipse.swt.internal.win32.*;
+
+public class COM extends OS {
+
+ static {
+ /* Initialize OLE */
+ // OleInitialize Initializes the COM library on the current apartment
+ // and identifies the concurrency model as single-thread apartment (STA).
+ // To use any other threading model, you must call CoInitializeEx
+ OS.OleInitialize(0);
+ }
+
+ /* Constants */
+
+ // GUIDs for Home Page Browser
+ public static final GUID IIDIEditorSiteTime = IIDFromString("{6BD2AEFE-7876-45e6-A6E7-3BFCDF6540AA}");
+ public static final GUID IIDIEditorSiteProperty = IIDFromString("{D381A1F4-2326-4f3c-AFB9-B7537DB9E238}");
+ public static final GUID IIDIEditorBaseProperty = IIDFromString("{61E55B0B-2647-47c4-8C89-E736EF15D636}");
+ public static final GUID IIDIEditorSite = IIDFromString("{CDD88AB9-B01D-426E-B0F0-30973E9A074B}");
+ public static final GUID IIDIEditorService = IIDFromString("{BEE283FE-7B42-4FF3-8232-0F07D43ABCF1}");
+ public static final GUID IIDIEditorManager = IIDFromString("{EFDE08C4-BE87-4B1A-BF84-15FC30207180}");
+
+
+ public static final GUID IIDIAdviseSink = IIDFromString("{0000010F-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIAdviseSink2 = IIDFromString("{00000125-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIBindCtx = IIDFromString("{0000000E-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIClassFactory = IIDFromString("{00000001-0000-0000-C000-000000000046}");
+ public static final GUID IIDIClassFactory2 = IIDFromString("{B196B28F-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIConnectionPoint = IIDFromString("{B196B286-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIConnectionPointContainer = IIDFromString("{B196B284-BAB4-101A-B69C-00AA00341D07}");
+ //public static final GUID IIDICreateErrorInfo = IIDFromString("{22F03340-547D-101B-8E65-08002B2BD119}");
+ //public static final GUID IIDICreateTypeInfo = IIDFromString("{00020405-0000-0000-C000-000000000046}");
+ //public static final GUID IIDICreateTypeLib = IIDFromString("{00020406-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIDataAdviseHolder = IIDFromString("{00000110-0000-0000-C000-000000000046}");
+ public static final GUID IIDIDataObject = IIDFromString("{0000010E-0000-0000-C000-000000000046}");
+ public static final GUID IIDIDispatch = IIDFromString("{00020400-0000-0000-C000-000000000046}");
+ public static final GUID IIDIDropSource = IIDFromString("{00000121-0000-0000-C000-000000000046}");
+ public static final GUID IIDIDropTarget = IIDFromString("{00000122-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumConnectionPoints = IIDFromString("{B196B285-BAB4-101A-B69C-00AA00341D07}");
+ //public static final GUID IIDIEnumConnections = IIDFromString("{B196B287-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIEnumFORMATETC = IIDFromString("{00000103-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumMoniker = IIDFromString("{00000102-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumOLEVERB = IIDFromString("{00000104-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumSTATDATA = IIDFromString("{00000105-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumSTATSTG = IIDFromString("{0000000D-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumString = IIDFromString("{00000101-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumUnknown = IIDFromString("{00000100-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIEnumVARIANT = IIDFromString("{00020404-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIErrorInfo = IIDFromString("{1CF2B120-547D-101B-8E65-08002B2BD119}");
+ //public static final GUID IIDIErrorLog = IIDFromString("{3127CA40-446E-11CE-8135-00AA004BB851}");
+ //public static final GUID IIDIExternalConnection = IIDFromString("{00000019-0000-0000-C000-000000000046}");
+ public static final GUID IIDIFont = IIDFromString("{BEF6E002-A874-101A-8BBA-00AA00300CAB}");
+ //public static final GUID IIDIFontDisp = IIDFromString("{BEF6E003-A874-101A-8BBA-00AA00300CAB}");
+ //public static final GUID IIDILockBytes = IIDFromString("{0000000A-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIMalloc = IIDFromString("{00000002-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIMallocSpy = IIDFromString("{0000001D-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIMarshal = IIDFromString("{00000003-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIMessageFilter = IIDFromString("{00000016-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIMoniker = IIDFromString("{0000000F-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIOleAdviseHolder = IIDFromString("{00000111-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIOleCache = IIDFromString("{0000011E-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIOleCache2 = IIDFromString("{00000128-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIOleCacheControl = IIDFromString("{00000129-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleClientSite = IIDFromString("{00000118-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleCommandTarget = IIDFromString("{B722BCCB-4E68-101B-A2BC-00AA00404770}");
+ public static final GUID IIDIOleContainer = IIDFromString("{0000011B-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleControl = IIDFromString("{B196B288-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIOleControlSite = IIDFromString("{B196B289-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIOleInPlaceActiveObject = IIDFromString("{00000117-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleInPlaceFrame = IIDFromString("{00000116-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleInPlaceObject = IIDFromString("{00000113-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleInPlaceSite = IIDFromString("{00000119-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleInPlaceUIWindow = IIDFromString("{00000115-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIOleItemContainer = IIDFromString("{0000011C-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleLink = IIDFromString("{0000011D-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleObject = IIDFromString("{00000112-0000-0000-C000-000000000046}");
+ public static final GUID IIDIOleWindow = IIDFromString("{00000114-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIParseDisplayName = IIDFromString("{0000011A-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIPerPropertyBrowsing = IIDFromString("{376BD3AA-3845-101B-84ED-08002B2EC713}");
+ public static final GUID IIDIPersist = IIDFromString("{0000010C-0000-0000-C000-000000000046}");
+ public static final GUID IIDIPersistFile = IIDFromString("{0000010B-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIPersistMemory = IIDFromString("{BD1AE5E0-A6AE-11CE-BD37-504200C10000}");
+ //public static final GUID IIDIPersistPropertyBag = IIDFromString("{37D84F60-42CB-11CE-8135-00AA004BB851}");
+ public static final GUID IIDIPersistStorage = IIDFromString("{0000010A-0000-0000-C000-000000000046}");
+ public static final GUID IIDIPersistStream = IIDFromString("{00000109-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIPersistStreamInit = IIDFromString("{7FD52380-4E07-101B-AE2D-08002B2EC713}");
+ //public static final GUID IIDIPicture = IIDFromString("{7BF80980-BF32-101A-8BBB-00AA00300CAB}");
+ //public static final GUID IIDIPictureDisp = IIDFromString("{7BF80981-BF32-101A-8BBB-00AA00300CAB}");
+ //public static final GUID IIDIPropertyBag = IIDFromString("{55272A00-42CB-11CE-8135-00AA004BB851}");
+ public static final GUID IIDIPropertyNotifySink = IIDFromString("{9BFBBC02-EFF1-101A-84ED-00AA00341D07}");
+ //public static final GUID IIDIPropertyPage = IIDFromString("{B196B28D-BAB4-101A-B69C-00AA00341D07}");
+ //public static final GUID IIDIPropertyPage2 = IIDFromString("{01E44665-24AC-101B-84ED-08002B2EC713}");
+ //public static final GUID IIDIPropertyPageSite = IIDFromString("{B196B28C-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIProvideClassInfo = IIDFromString("{B196B283-BAB4-101A-B69C-00AA00341D07}");
+ public static final GUID IIDIProvideClassInfo2 = IIDFromString("{A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851}");
+ //public static final GUID IIDIPSFactoryBuffer = IIDFromString("{D5F569D0-593B-101A-B569-08002B2DBF7A}");
+ //public static final GUID IIDIRootStorage = IIDFromString("{00000012-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIROTData = IIDFromString("{F29F6BC0-5021-11CE-AA15-00006901293F}");
+ //public static final GUID IIDIRpcChannelBuffer = IIDFromString("{D5F56B60-593B-101A-B569-08002B2DBF7A}");
+ //public static final GUID IIDIRpcProxyBuffer = IIDFromString("{D5F56A34-593B-101A-B569-08002B2DBF7A}");
+ //public static final GUID IIDIRpcStubBuffer = IIDFromString("{D5F56AFC-593B-101A-B569-08002B2DBF7A}");
+ //public static final GUID IIDIRunnableObject = IIDFromString("{00000126-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIRunningObjectTable = IIDFromString("{00000010-0000-0000-C000-000000000046}");
+ //public static final GUID IIDISimpleFrameSite = IIDFromString("{742B0E01-14E6-101B-914E-00AA00300CAB}");
+ public static final GUID IIDISpecifyPropertyPages = IIDFromString("{B196B28B-BAB4-101A-B69C-00AA00341D07}");
+ //public static final GUID IIDIStdMarshalInfo = IIDFromString("{00000018-0000-0000-C000-000000000046}");
+ public static final GUID IIDIStorage = IIDFromString("{0000000B-0000-0000-C000-000000000046}");
+ public static final GUID IIDIStream = IIDFromString("{0000000C-0000-0000-C000-000000000046}");
+ //public static final GUID IIDISupportErrorInfo = IIDFromString("{DF0B3D60-548F-101B-8E65-08002B2BD119}");
+ //public static final GUID IIDITypeComp = IIDFromString("{00020403-0000-0000-C000-000000000046}");
+ //public static final GUID IIDITypeLib = IIDFromString("{00020402-0000-0000-C000-000000000046}");
+ public static final GUID IIDIUnknown = IIDFromString("{00000000-0000-0000-C000-000000000046}");
+ //public static final GUID IIDIViewObject = IIDFromString("{0000010D-0000-0000-C000-000000000046}");
+ public static final GUID IIDIViewObject2 = IIDFromString("{00000127-0000-0000-C000-000000000046}");
+
+ //public static final int ADVF_DATAONSTOP = 64;
+ //public static final int ADVF_NODATA = 1;
+ //public static final int ADVF_ONLYONCE = 2;
+ //public static final int ADVF_PRIMEFIRST = 4;
+ //public static final int ADVFCACHE_FORCEBUILTIN = 16;
+ //public static final int ADVFCACHE_NOHANDLER = 8;
+ //public static final int ADVFCACHE_ONSAVE = 32;
+ public static final int CF_TEXT = 1;
+ public static final int CF_BITMAP = 2;
+ public static final int CF_METAFILEPICT = 3;
+ public static final int CF_SYLK = 4;
+ public static final int CF_DIF = 5;
+ public static final int CF_TIFF = 6;
+ public static final int CF_OEMTEXT = 7;
+ public static final int CF_DIB = 8;
+ public static final int CF_PALETTE = 9;
+ public static final int CF_PENDATA = 10;
+ public static final int CF_RIFF = 11;
+ public static final int CF_WAVE = 12;
+ public static final int CF_UNICODETEXT = 13;
+ public static final int CF_ENHMETAFILE = 14;
+ public static final int CF_HDROP = 15;
+ public static final int CF_LOCALE = 16;
+ public static final int CF_MAX = 17;
+ public static final int CLSCTX_INPROC_HANDLER = 2;
+ public static final int CLSCTX_INPROC_SERVER = 1;
+ public static final int CLSCTX_LOCAL_SERVER = 4;
+ public static final int CLSCTX_REMOTE_SERVER = 16;
+ public static final int CO_E_CLASSSTRING = -2147221005;
+ //public static final int COINIT_APARTMENTTHREADED = 2; Apartment model
+ //public static final int COINIT_DISABLE_OLE1DDE = 4; Don't use DDE for Ole1 support.
+ //public static final int COINIT_MULTITHREADED = 0; OLE calls objects on any thread.
+ //public static final int COINIT_SPEED_OVER_MEMORY = 8; Trade memory for speed.
+ public static final int DATADIR_GET = 1;
+ public static final int DATADIR_SET = 2;
+ public static final int DISP_E_EXCEPTION = 0x80020009;
+ public static final int DISP_E_MEMBERNOTFOUND = -2147352573;
+ public static final int DISP_E_UNKNOWNINTERFACE = 0x80020001;
+ //public static final int DISPID_AMBIENT_APPEARANCE = -716;
+ //public static final int DISPID_AMBIENT_AUTOCLIP = -715;
+ public static final int DISPID_AMBIENT_BACKCOLOR = -701;
+ //public static final int DISPID_AMBIENT_CHARSET = -727;
+ //public static final int DISPID_AMBIENT_CODEPAGE = -725;
+ //public static final int DISPID_AMBIENT_DISPLAYASDEFAULT = -713;
+ //public static final int DISPID_AMBIENT_DISPLAYNAME = -702;
+ public static final int DISPID_AMBIENT_FONT = -703;
+ public static final int DISPID_AMBIENT_FORECOLOR = -704;
+ public static final int DISPID_AMBIENT_LOCALEID = -705;
+ public static final int DISPID_AMBIENT_MESSAGEREFLECT = -706;
+ public static final int DISPID_AMBIENT_OFFLINEIFNOTCONNECTED = -5501;
+ //public static final int DISPID_AMBIENT_PALETTE = -726;
+ //public static final int DISPID_AMBIENT_RIGHTTOLEFT = -732;
+ //public static final int DISPID_AMBIENT_SCALEUNITS = -707;
+ public static final int DISPID_AMBIENT_SHOWGRABHANDLES = -711;
+ public static final int DISPID_AMBIENT_SHOWHATCHING = -712;
+ public static final int DISPID_AMBIENT_SILENT = -5502;
+ public static final int DISPID_AMBIENT_SUPPORTSMNEMONICS = -714;
+ //public static final int DISPID_AMBIENT_TEXTALIGN = -708;
+ //public static final int DISPID_AMBIENT_TOPTOBOTTOM = -733;
+ //public static final int DISPID_AMBIENT_TRANSFERPRIORITY = -728;
+ public static final int DISPID_AMBIENT_UIDEAD = -710;
+ public static final int DISPID_AMBIENT_USERMODE = -709;
+ public static final int DISPID_BACKCOLOR = -501;
+ public static final int DISPID_FONT = -512;
+ public static final int DISPID_FONT_BOLD = 3;
+ public static final int DISPID_FONT_CHARSET = 8;
+ public static final int DISPID_FONT_ITALIC = 4;
+ public static final int DISPID_FONT_NAME = 0;
+ public static final int DISPID_FONT_SIZE = 2;
+ public static final int DISPID_FONT_STRIKE = 6;
+ public static final int DISPID_FONT_UNDER = 5;
+ public static final int DISPID_FONT_WEIGHT = 7;
+ public static final int DISPID_FORECOLOR = -513;
+ //public static final int DISPID_READYSTATE = -525;
+ //public static final int DISPID_READYSTATECHANGE = -609;
+ public static final int DRAGDROP_S_DROP = 0x00040100; //Successful drop took place
+ public static final int DRAGDROP_S_CANCEL = 0x00040101; // Drag-drop operation canceled
+ public static final int DRAGDROP_S_USEDEFAULTCURSORS = 0x00040102; // Use the default cursor
+ public static final int DROPEFFECT_NONE = 0; // Drop target cannot accept the data.
+ public static final int DROPEFFECT_COPY = 1; // Drop results in a copy. The original data is untouched by
+ // the drag source.
+ public static final int DROPEFFECT_MOVE = 2; // Drag source should remove the data.
+ public static final int DROPEFFECT_LINK = 4; // Drag source should create a link to the original data.
+ public static final int DROPEFFECT_SCROLL = 0x80000000; // Scrolling is about to start or is currently
+ // occurring in the target. This value is used in
+ // addition to the other values.
+ public static final int DV_E_FORMATETC = -2147221404;
+ public static final int DV_E_STGMEDIUM = -2147221402;
+ public static final int DV_E_TYMED = -2147221399;
+ public static final int DVASPECT_CONTENT = 1;
+ //public static final int DVASPECT_DOCPRINT = 8;
+ //public static final int DVASPECT_ICON = 4;
+ //public static final int DVASPECT_THUMBNAIL = 2;
+ public static final int E_FAIL = -2147467259; //Unspecified failure.
+ public static final int E_INVALIDARG = -2147024809;
+ public static final int E_NOINTERFACE = -2147467262; //QueryInterface did not recognize the requested interface.
+ public static final int E_NOTIMPL = -2147467263; //Member function contains no implementation.
+ //public static final int E_NOTLICENSED = -2147221230;
+ //public static final int E_OUTOFMEMORY = -2147024882; //Function failed to allocate necessary memory.
+ //public static final int E_POINTER = -2147467261;
+ public static final int GMEM_FIXED = 0; //Global Memory Constants
+ //public static final int GMEM_MOVABLE = 2;
+ //public static final int GMEM_NODISCARD = 32;
+ public static final int GMEM_ZEROINIT = 64;
+ public static final int GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1;
+ public static final int IMPLTYPEFLAG_FDEFAULT = 1;
+ //public static final int IMPLTYPEFLAG_FDEFAULTVTABLE = 2048;
+ public static final int IMPLTYPEFLAG_FRESTRICTED = 4;
+ public static final int IMPLTYPEFLAG_FSOURCE = 2;
+ public static final int LOCALE_SYSTEM_DEFAULT = 1024; //Locale Constants
+ public static final int LOCALE_USER_DEFAULT = 2048;
+ //public static final int MEMCTX_TASK = 1; //dwMemContext values for COM's task memory allocation service
+ //public static final int OLEACTIVATEAUTO = 3; //Object is activated based on the object's default method of activation
+ //public static final int OLEACTIVATEDOUBLECLICK = 2; //Object is activated when the OLE container control is double-clicked
+ //public static final int OLEACTIVATEGETFOCUS = 1; //Object is activated when the OLE container control gets the focus
+ //public static final int OLEACTIVATEMANUAL = 0; //OLE object isn't automatically activated
+ //public static final int OLEAUTOMATIC = 0; //Object is updated each time the linked data changes
+ //public static final int OLECHANGED = 0; //Object's data has changed
+ public static final int OLECLOSE_NOSAVE = 1;
+ //public static final int OLECLOSE_PROMPTSAVE = 2;
+ public static final int OLECLOSE_SAVEIFDIRTY = 0;
+ //public static final int OLECLOSED = 2; //Application file containing the linked object's data has been closed
+ //public static final int OLECONTF_EMBEDDINGS = 1; //The OLECONTF enumeration indicates the kind of objects to be enumerated by the returned IEnumUnknown interface
+ //public static final int OLECONTF_LINKS = 2;
+ //public static final int OLECONTF_ONLYIFRUNNING = 16;
+ //public static final int OLECONTF_ONLYUSER = 8;
+ //public static final int OLECONTF_OTHERS = 4;
+ //public static final int OLEDEACTIVATEMANUAL = 1; //The OLE object can only be deactivated programatically via the #doVerb: method."
+ //public static final int OLEDEACTIVATEONLOSEFOCUS = 0; //The OLE object is deactivated whenever focus is given to another widget in the receiver's shell.
+ //public static final int OLEDECBORDER = 1; //a border is displayed around the receiver.
+ //public static final int OLEDECBORDERANDNIBS = 3; //border and resize nibs are displayed.
+ //public static final int OLEDECNIBS = 2; //resize nibs are displayed around the reciever.
+ //public static final int OLEDECNONE = 0; //no special trimmings are displayed around the receiver.
+ //public static final int OLEDISPLAYCONTENT = 0; //Object's data is displayed in the OLE container control
+ //public static final int OLEDISPLAYICON = 1; //Object's icon is displayed in the OLE container control
+ //public static final int OLEEITHER = 2; //OLE container control can contain either a linked or an embedded object
+ public static final int OLEEMBEDDED = 1; //OLE container control contains an embedded object
+ //public static final int OLEFROZEN = 1; //Object is updated whenever the user saves the linked document from within the application in which it was created
+ public static final int OLEIVERB_DISCARDUNDOSTATE = -6; //close the OLE object and discard the undo state
+ //public static final int OLEIVERB_HIDE = -3; //hide the OLE object
+ public static final int OLEIVERB_INPLACEACTIVATE = -5; //open the OLE for editing in-place
+ //public static final int OLEIVERB_OPEN = -2; //open the OLE object for editing in a separate window
+ public static final int OLEIVERB_PRIMARY = 0; //opens the OLE object for editing
+ //public static final int OLEIVERB_PROPERTIES = -7; //request the OLE object properties dialog
+ //public static final int OLEIVERB_SHOW = -1; //show the OLE object
+ //public static final int OLEIVERB_UIACTIVATE = -4; //activate the UI for the OLE object
+ public static final int OLELINKED = 0; //OLE container control contains a linked object
+ //public static final int OLEMANUAL = 2; //Object is updated only when the Action property is set to 6 (Update)
+ //public static final int OLEMISC_ACTIVATEWHENVISIBLE = 256;
+ //public static final int OLEMISC_ACTSLIKEBUTTON = 4096;
+ //public static final int OLEMISC_ACTSLIKELABEL = 8192;
+ //public static final int OLEMISC_ALIGNABLE = 32768;
+ //public static final int OLEMISC_ALWAYSRUN = 2048;
+ //public static final int OLEMISC_CANLINKBYOLE1 = 32;
+ //public static final int OLEMISC_CANTLINKINSIDE = 16;
+ //public static final int OLEMISC_IGNOREACTIVATEWHENVISIBLE = 524288;
+ //public static final int OLEMISC_IMEMODE = 262144;
+ //public static final int OLEMISC_INSERTNOTREPLACE = 4;
+ //public static final int OLEMISC_INSIDEOUT = 128;
+ //public static final int OLEMISC_INVISIBLEATRUNTIME = 1024;
+ //public static final int OLEMISC_ISLINKOBJECT = 64;
+ //public static final int OLEMISC_NOUIACTIVATE = 16384;
+ //public static final int OLEMISC_ONLYICONIC = 2;
+ //public static final int OLEMISC_RECOMPOSEONRESIZE = 1;
+ //public static final int OLEMISC_RENDERINGISDEVICEINDEPENDENT = 512;
+ //public static final int OLEMISC_SETCLIENTSITEFIRST = 131072;
+ //public static final int OLEMISC_SIMPLEFRAME = 65536;
+ //public static final int OLEMISC_STATIC = 8;
+ //public static final int OLEMISC_SUPPORTSMULTILEVELUNDO = 2097152;
+ //public static final int OLEMISC_WANTSTOMENUMERGE = 1048576;
+ //public static final int OLENONE = 3; //OLE container control doesn't contain an object
+ //public static final int OLERENAMED = 3; //Application file containing the linked object's data has been renamed
+ //public static final int OLERENDER_ASIS = 3; //Ole Create rendering formats
+ public static final int OLERENDER_DRAW = 1;
+ //public static final int OLERENDER_FORMAT = 2;
+ //public static final int OLERENDER_NONE = 0;
+ //public static final int OLESAVED = 1; //Object's data has been saved by the application that created the object
+ //public static final int OLESIZEAUTOSIZE = 2; //OLE container control is automatically resized to display the entire object
+ //public static final int OLESIZECLIP = 0; //Object's image is clipped by the OLE container control's borders
+ //public static final int OLESIZESTRETCH = 1; //Object's image is sized to fill the OLE container control
+ //public static final int OLESIZEZOOM = 3; //Object's image is stretched but in proportion
+ //public static final int OLEWHICHMK_CONTAINER = 1;
+ //public static final int OLEWHICHMK_OBJFULL = 3;
+ //public static final int OLEWHICHMK_OBJREL = 2;
+ public static final int S_FALSE = 1; //Used for functions that semantically return a Boolean FALSE result to indicate that the function succeeded.
+ public static final int S_OK = 0; //Function succeeded.
+ public static final int STG_E_FILENOTFOUND = 0x80030002;
+ public static final int STG_S_CONVERTED = 0x00030200;
+ //public static final int STGC_CONSOLIDATE = 8;
+ //public static final int STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4;
+ public static final int STGC_DEFAULT = 0;
+ //public static final int STGC_ONLYIFCURRENT = 2;
+ //public static final int STGC_OVERWRITE = 1;
+ public static final int STGM_CONVERT = 0x00020000;
+ public static final int STGM_CREATE = 0x00001000;
+ public static final int STGM_DELETEONRELEASE = 0x04000000;
+ public static final int STGM_DIRECT = 0x00000000;
+ public static final int STGM_DIRECT_SWMR = 0x00400000;
+ public static final int STGM_FAILIFTHERE = 0x00000000;
+ public static final int STGM_NOSCRATCH = 0x00100000;
+ public static final int STGM_NOSNAPSHOT = 0x00200000;
+ public static final int STGM_PRIORITY = 0x00040000;
+ public static final int STGM_READ = 0x00000000;
+ public static final int STGM_READWRITE = 0x00000002;
+ public static final int STGM_SHARE_DENY_NONE = 0x00000040;
+ public static final int STGM_SHARE_DENY_READ = 0x00000030;
+ public static final int STGM_SHARE_DENY_WRITE = 0x00000020;
+ public static final int STGM_SHARE_EXCLUSIVE = 0x00000010;
+ public static final int STGM_SIMPLE = 0x08000000;
+ public static final int STGM_TRANSACTED = 0x00010000;
+ public static final int STGM_WRITE = 0x00000001;
+ public static final int STGTY_STORAGE = 1;
+ public static final int STGTY_STREAM = 2;
+ public static final int STGTY_LOCKBYTES = 3;
+ public static final int STGTY_PROPERTY = 4;
+ //public static final int TYMED_ENHMF = 64; //Values for tymed
+ //public static final int TYMED_FILE = 2;
+ //public static final int TYMED_GDI = 16;
+ public static final int TYMED_HGLOBAL = 1;
+ //public static final int TYMED_ISTORAGE = 8;
+ //public static final int TYMED_ISTREAM = 4;
+ //public static final int TYMED_MFPICT = 32;
+ //public static final int TYMED_NULL = 0;
+
+ public static final short DISPATCH_METHOD = 0x1; //Dispatch Constants
+ public static final short DISPATCH_PROPERTYGET = 0x2;
+ public static final short DISPATCH_PROPERTYPUT = 0x4;
+ public static final short DISPATCH_PROPERTYPUTREF = 0x8;
+ //public static final short DISPID_CONSTRUCTOR = -6;
+ //public static final short DISPID_DESTRUCTOR = -7;
+ //public static final short DISPID_EVALUATE = -5;
+ //public static final short DISPID_NEWENUM = -4;
+ public static final short DISPID_PROPERTYPUT = -3;
+ //public static final short DISPID_UNKNOWN = -1;
+ //public static final short DISPID_VALUE = 0;
+
+ // Variant types
+ public static final short VT_BOOL = 11; // Boolean; True=-1, False=0.
+ public static final short VT_BSTR = 8; // Binary String.
+ public static final short VT_BYREF = 16384; // By reference - must be combined with one of the othre VT values
+ public static final short VT_CY = 6; // Currency.
+ public static final short VT_DATE = 7; // Date.
+ public static final short VT_DISPATCH = 9; // IDispatch
+ public static final short VT_EMPTY = 0; // Not specified.
+ public static final short VT_ERROR = 10; // Scodes.
+ public static final short VT_I2 = 2; // 2-byte signed int.
+ public static final short VT_I4 = 3; // 4-byte signed int.
+ public static final short VT_NULL = 1; // Null.
+ public static final short VT_R4 = 4; // 4-byte real.
+ public static final short VT_R8 = 5; // 8-byte real.
+ public static final short VT_UI1 = 17; // Unsigned char.
+ public static final short VT_UI4 = 19; // Unsigned int.
+ public static final short VT_UNKNOWN = 13; // IUnknown FAR*.
+ public static final short VT_VARIANT = 12; // VARIANT FAR*.
+
+public static final native int CLSIDFromProgID(char[] lpszProgID, GUID pclsid);
+public static final native int CLSIDFromString(char[] lpsz, GUID pclsid);
+public static final native int CoCreateInstance(
+ GUID rclsid,
+ int pUnkOuter,
+ int dwClsContext,
+ GUID riid,
+ int[] ppv
+);
+
+public static final native void CoFreeUnusedLibraries();
+public static final native int CoGetClassObject(GUID rclsid, int dwClsContext, int pServerInfo, GUID riid, int[] ppv);
+public static final native int CoLockObjectExternal(
+ int pUnk, //Pointer to object to be locked or unlocked
+ boolean fLock, //TRUE = lock, FALSE = unlock
+ boolean fLastUnlockReleases //TRUE = release all pointers to object
+);
+public static final native int CoTaskMemAlloc(int cb); //Size in bytes of memory block to be allocated
+public static final native void CoTaskMemFree(int pv);
+public static final native int DoDragDrop(
+ int pDataObject, //Pointer to the data object
+ int pDropSource, //Pointer to the source
+ int dwOKEffect, //Effects allowed by the source
+ int[] pdwEffect //Pointer to effects on the source
+);
+
+public static final native int GetClassFile(
+ char[] szFileName, //Pointer to filename for which you are requesting a CLSID
+ GUID clsid //Pointer to location for returning the CLSID
+);
+public static final native int IIDFromString(char[] lpsz, GUID lpiid);
+private static GUID IIDFromString(String lpsz) {
+ // create a null terminated array of char
+ char[] buffer = (lpsz +"\0").toCharArray();
+
+ // invoke system method
+ GUID lpiid = new GUID();
+ if (COM.IIDFromString(buffer, lpiid) == COM.S_OK)
+ return lpiid;
+ return null;
+}
+public static final native boolean IsEqualGUID(GUID rguid1, GUID rguid2);
+public static final native void MoveMemory(int Destination, FORMATETC Source, int Length);
+public static final native void MoveMemory(int DestinationPtr, GUID Source, int Length);
+public static final native void MoveMemory(int DestinationPtr, OLEINPLACEFRAMEINFO Source, int Length);
+public static final native void MoveMemory(int Destination, STATSTG Source, int Length);
+public static final native void MoveMemory(int Destination, STGMEDIUM Source, int Length);
+public static final native void MoveMemory(STGMEDIUM Destination, int SourcePtr, int Length);
+public static final native void MoveMemory(DISPPARAMS Destination, int SourcePtr, int Length);
+public static final native void MoveMemory(FORMATETC Destination, int Source, int Length);
+public static final native void MoveMemory(GUID Destination, int SourcePtr, int Length);
+public static final native void MoveMemory(STATSTG Destination, int Source, int Length);
+public static final native void MoveMemory(TYPEATTR Destination, int SourcePtr, int Length);
+public static final native void MoveMemory(RECT Destination, int Source, int Length);
+public static final native void MoveMemory(FUNCDESC1 Destination, int Source, int Length);
+public static final native void MoveMemory(VARDESC1 Destination, int Source, int Length);
+public static final native void MoveMemory(FUNCDESC2 Destination, int Source, int Length);
+public static final native void MoveMemory(VARDESC2 Destination, int Source, int Length);
+
+public static final native int OleCreate(GUID rclsid, GUID riid, int renderopt, FORMATETC pFormatEtc, int pClientSite, int pStg, int[] ppvObject);
+public static final native int OleCreateFromFile(
+ GUID rclsid, //Reserved. Must be CLSID_NULL
+ char[] lpszFileName, //Pointer to full path of file used to create object
+ GUID riid, //Reference to the identifier of the interface to be used to
+ // communicate with new object
+ int renderopt, //Value from OLERENDER
+ FORMATETC pFormatEtc, //Pointer to the FORMATETC structure
+ int pClientSite, //Pointer to an interface
+ int pStg, //Pointer tothe interface to be used as object storage
+ int[] ppvObj); //Address of output variable that receives the interface pointer
+ // requested in riid
+public static final native int OleCreatePropertyFrame(int hwndOwner,int x, int y, char[] lpszCaption, int cObjects, int[] lplpUnk, int cPages, int lpPageClsID, int lcid, int dwReserved, int lpvReserved);
+public static final native int OleDraw(int pUnk, //Pointer to the view object to be drawn
+ int dwAspect, //How the object is to be represented
+ int hdcDraw, //Device context on which to draw
+ int lprcBounds);//Pointer to the rectangle in which the object is drawn
+public static final native int OleFlushClipboard();
+public static final native int OleGetClipboard(int[] ppDataObject);
+public static final native int OleIsCurrentClipboard(int pDataObject);
+public static final native boolean OleIsRunning(int pObject);
+public static final native int OleLoad(
+ int pStg, //Pointer to the storage object from which to load
+ GUID riid, //Reference to the identifier of the interface
+ int pClientSite, //Pointer to the client site for the object
+ int[] ppvObj //Address of output variable that receives the interface pointer requested in riid
+);
+public static final native int OleRun(int pUnknown);
+public static final native int OleSave(int pPS, int pStg,boolean fSameAsLoad);
+public static final native int OleSetClipboard(int pDataObject);
+public static final native int OleSetContainedObject(int pUnk, boolean fContained);
+public static final native int OleSetMenuDescriptor(int holemenu, int hwndFrame, int hwndActiveObject, int lpFrame, int lpActiveObj);
+public static final native int OleTranslateColor(int clr, int hpal, int[] pcolorref);
+public static final native int ProgIDFromCLSID(
+ GUID clsid, //CLSID for which the ProgID is requested
+ int[] lplpszProgID //Address of output variable that receives a pointer to the requested ProgID string
+);
+public static final native int RegisterDragDrop(
+ int hwnd, //Handle to a window that can accept drops
+ int pDropTarget //Pointer to object that is to be target of drop
+);
+public static final native void ReleaseStgMedium(
+ int pmedium //Pointer to storage medium to be freed
+);
+public static final native int RevokeDragDrop(
+ int hwnd //Handle to a window that can accept drops
+);
+public static final native int StgCreateDocfile(char[] pwcsName, int grfMode, int reserved, int[] ppstgOpen);
+public static final native int StgIsStorageFile(
+ char[] pwcsName //Points to a path of the file to check
+);
+public static final native int StgOpenStorage(
+ char[] pwcsName, //Points to the path of the file containing storage object
+ int pstgPriority, //Points to a previous opening of a root storage object
+ int grfMode, //Specifies the access mode for the object
+ int snbExclude, //Points to an SNB structure specifying elements to be excluded
+ int reserved, //Reserved; must be zero
+ int[] ppstgOpen //Address of output variable that receives the IStorage interface pointer
+);
+public static final native int SysAllocString(char [] sz);
+public static final native void SysFreeString(int bstr);
+public static final native int SysStringByteLen(int bstr);
+public static final native int VariantChangeType(int pvargDest, int pvarSrc, short wFlags, short vt);
+public static final native int VariantClear(int pvarg);
+public static final native void VariantInit(int pvarg);
+public static final native int VtblCall(int fnNumber, int ppVtbl);
+public static final native int VtblCall(int fnNumber, int ppVtbl, char[] arg0);
+public static final native int VtblCall(int fnNumber, int ppVtbl, char[] arg0, char[] arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, char[] arg0, int arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, char[] arg0, int arg1, int arg2, int arg3, int[] arg4);
+public static final native int VtblCall(int fnNumber, int ppVtbl, char[] arg0, int arg1, int arg2, int arg3, int arg4, int[] arg5);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int[] arg0);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int[] arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int arg1, int[] arg2);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int arg1, int arg2);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int arg1, int arg2, int[] arg3);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int arg1, DVTARGETDEVICE arg2, SIZE arg3);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int arg1, GUID arg2, int arg3, int[] arg4);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, FORMATETC arg1, int[] arg2);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, GUID arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, GUID arg1, int arg2, int arg3);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, GUID arg1, int arg2, int arg3, DISPPARAMS arg4, int arg5, EXCEPINFO arg6, int[] arg7);
+public static final native int VtblCall(int ppVtbl, int fnNumber, int arg0, STATSTG arg1, int[] arg2);
+public static final native int VtblCall(int fnNumber, int ppVtbl, MSG arg0);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, MSG arg1, int arg2, int arg3, int arg4, RECT arg5);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, SIZE arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, boolean arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, CAUUID arg0);
+public static final native int VtblCall(int ppVtbl, int fnNumber, CONTROLINFO arg0);
+public static final native int VtblCall(int fnNumber, int ppVtbl, FORMATETC arg0);
+public static final native int VtblCall(int fnNumber, int ppVtbl, FORMATETC arg0, STGMEDIUM arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, FORMATETC arg0, STGMEDIUM arg1, boolean arg2);
+public static final native int VtblCall(int ppVtbl, int fnNumber, GUID arg0);
+public static final native int VtblCall(int ppVtbl, int fnNumber, GUID arg0, int[] arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, GUID arg0, int arg1, int arg2, int arg3, int[] arg4);
+public static final native int VtblCall(int fnNumber, int ppVtbl, GUID arg0, int arg1, int arg2, int arg3, int arg4);
+public static final native int VtblCall(int fnNumber, int ppVtbl, GUID arg0, int arg1, OLECMD arg2, OLECMDTEXT arg3);
+public static final native int VtblCall(int fnNumber, int ppVtbl, LICINFO arg0);
+public static final native int VtblCall(int fnNumber, int ppVtbl, RECT arg0, int arg1, boolean arg2);
+public static final native int VtblCall(int fnNumber, int ppVtbl, RECT arg0, RECT arg1);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int[] arg1, int[] arg2, int[] arg3, int[] arg4);
+public static final native int VtblCall(int fnNumber, int ppVtbl, int arg0, int[] arg1, int arg2, int[] arg3);
+
+public static final native int WriteClassStg(int pStg, GUID rclsid);
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CONTROLINFO.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CONTROLINFO.java
new file mode 100644
index 0000000000..b7581ed5d6
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/CONTROLINFO.java
@@ -0,0 +1,16 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class CONTROLINFO
+{
+ public int cb;
+ public int hAccel;
+ public short cAccel;
+ public short filler;
+ public int dwFlags;
+
+ public static final int sizeof = 16;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COSERVERINFO.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COSERVERINFO.java
new file mode 100644
index 0000000000..72a3e944bc
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/COSERVERINFO.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class COSERVERINFO {
+ public int dwReserved1;
+ public int pwszName;
+ public int pAuthInfo;
+ public int dwReserved2;
+
+ public static final int sizeof = 16;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DISPPARAMS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DISPPARAMS.java
new file mode 100644
index 0000000000..95ee285d78
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DISPPARAMS.java
@@ -0,0 +1,16 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class DISPPARAMS
+{
+ public int rgvarg;
+ public int rgdispidNamedArgs;
+ public int cArgs;
+ public int cNamedArgs;
+
+ public static final int sizeof = 16;
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DVTARGETDEVICE.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DVTARGETDEVICE.java
new file mode 100644
index 0000000000..f95abbfcac
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/DVTARGETDEVICE.java
@@ -0,0 +1,17 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class DVTARGETDEVICE
+{
+ public int tdSize;
+ public short tdDriverNameOffset;
+ public short tdDeviceNameOffset;
+ public short tdPortNameOffset;
+ public short tdExtDevmodeOffset;
+ public byte tdData;
+
+ public static final int sizeof = 13;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/EXCEPINFO.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/EXCEPINFO.java
new file mode 100644
index 0000000000..2f4ceda693
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/EXCEPINFO.java
@@ -0,0 +1,20 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class EXCEPINFO
+{
+ public short wCode;
+ public short wReserved;
+ public int bstrSource;
+ public int bstrDescription;
+ public int bstrHelpFile;
+ public int dwHelpContext;
+ public int pvReserved;
+ public int pfnDeferredFillIn;
+ public int scode;
+
+ public static final int sizeof = 32;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FORMATETC.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FORMATETC.java
new file mode 100644
index 0000000000..5dc80509d4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FORMATETC.java
@@ -0,0 +1,16 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class FORMATETC
+{
+ public int cfFormat;
+ public int ptd;
+ public int dwAspect;
+ public int lindex;
+ public int tymed;
+
+ public static final int sizeof = 20;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC1.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC1.java
new file mode 100644
index 0000000000..ed25a01c40
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC1.java
@@ -0,0 +1,32 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+
+public class FUNCDESC1 {
+ public int memid;
+ public int lprgscode;
+ public int lprgelemdescParam;
+ public int funckind;
+ public int invkind;
+ public int callconv;
+ public short cParams;
+ public short cParamsOpt;
+ public short oVft;
+ public short cScodes;
+ //ELEMDESC elemdescFunc;
+ //TYPEDESC elemdescFunc.tdesc
+ public int elemdescFunc_tdesc_union;
+ public short elemdescFunc_tdesc_vt;
+ public short elemdescFunc_tdesc_filler;
+ //PARAMDESC elemdescFunc.paramdesc
+ public int elemdescFunc_paramdesc_pparamdescex;
+ public short elemdescFunc_paramdesc_wParamFlags;
+ public short elemdescFunc_paramdesc_filler;
+ public short wFuncFlags;
+
+ public static final int sizeof = 50;
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC2.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC2.java
new file mode 100644
index 0000000000..501465932e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/FUNCDESC2.java
@@ -0,0 +1,32 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+
+public class FUNCDESC2 {
+ public int memid;
+ public int lprgscode;
+ public int lprgelemdescParam;
+ public int funckind;
+ public int invkind;
+ public int callconv;
+ public short cParams;
+ public short cParamsOpt;
+ public short oVft;
+ public short cScodes;
+ //ELEMDESC elemdescFunc;
+ //TYPEDESC elemdescFunc.tdesc
+ public int elemdescFunc_tdesc_union;
+ public short elemdescFunc_tdesc_vt;
+ public short elemdescFunc_tdesc_filler;
+ //IDLDESC elemdescFunc.idldesc
+ public int elemdescFunc_idldesc_dwReserved;
+ public short elemdescFunc_idldesc_wIDLFlags;
+ public short elemdescFunc_idldesc_filler;
+ public short wFuncFlags;
+
+ public static final int sizeof = 50;
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/GUID.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/GUID.java
new file mode 100644
index 0000000000..c11d9bd26f
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/GUID.java
@@ -0,0 +1,22 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class GUID
+{
+ public int data1;
+ public short data2;
+ public short data3;
+ public byte b0;
+ public byte b1;
+ public byte b2;
+ public byte b3;
+ public byte b4;
+ public byte b5;
+ public byte b6;
+ public byte b7;
+
+ public static final int sizeof = 16;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IClassFactory2.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IClassFactory2.java
new file mode 100644
index 0000000000..8ddc0b578b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IClassFactory2.java
@@ -0,0 +1,21 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IClassFactory2 extends IUnknown
+{
+public IClassFactory2(int address) {
+ super(address);
+}
+public int CreateInstanceLic(int pUnkOuter, int pUnkReserved, GUID riid, int bstrKey, int ppvObject[]) {
+ return COM.VtblCall(7, address, pUnkOuter, pUnkReserved, riid, bstrKey, ppvObject);
+}
+public int GetLicInfo(LICINFO licInfo) {
+ return COM.VtblCall(5, address, licInfo);
+}
+public int RequestLicKey(int dwReserved, int[] pBstrKey) {
+ return COM.VtblCall(6, address, dwReserved, pBstrKey);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPoint.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPoint.java
new file mode 100644
index 0000000000..5098b0e9b1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPoint.java
@@ -0,0 +1,18 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IConnectionPoint extends IUnknown
+{
+public IConnectionPoint(int address) {
+ super(address);
+}
+public int Advise(int pUnk, int[] pdwCookie) {
+ return COM.VtblCall(5, address, pUnk, pdwCookie);
+}
+public int Unadvise(int dwCookie) {
+ return COM.VtblCall(6, address, dwCookie);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPointContainer.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPointContainer.java
new file mode 100644
index 0000000000..8eb4d505b1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IConnectionPointContainer.java
@@ -0,0 +1,15 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IConnectionPointContainer extends IUnknown
+{
+public IConnectionPointContainer(int address) {
+ super(address);
+}
+public int FindConnectionPoint(GUID riid, int[] ppCP) {
+ return COM.VtblCall(4, address, riid, ppCP);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDataObject.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDataObject.java
new file mode 100644
index 0000000000..f362cc0100
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDataObject.java
@@ -0,0 +1,37 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IDataObject extends IUnknown {
+public IDataObject(int address) {
+ super(address);
+}
+public int EnumFormatEtc(int dwDirection, int[] ppenumFormatetc) {
+ return COM.VtblCall(8, address, dwDirection, ppenumFormatetc);
+}
+public int GetData(FORMATETC pFormatetc, STGMEDIUM 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.
+ return COM.VtblCall(3, address, pFormatetc, pmedium);
+}
+public int GetDataHere(FORMATETC pFormatetc, STGMEDIUM pmedium) {
+ //Called by a data consumer to obtain data from a source data object.
+ //This method differs from the GetData method in that the caller must
+ //allocate and free the specified storage medium.
+ return COM.VtblCall(4, address, pFormatetc, pmedium);
+}
+public int QueryGetData(FORMATETC pFormatetc) {
+ return COM.VtblCall(5, address, pFormatetc);
+}
+public int SetData(
+ FORMATETC pFormatetc, // Pointer to the FORMATETC structure
+ STGMEDIUM pmedium, // Pointer to STGMEDIUM structure
+ boolean fRelease // Indicates which object owns the storage medium after the call is completed
+ ){
+ return COM.VtblCall(7, address, pFormatetc, pmedium, fRelease);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatch.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatch.java
new file mode 100644
index 0000000000..e9dc3fa832
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatch.java
@@ -0,0 +1,60 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+import org.eclipse.swt.internal.win32.*;
+
+public class IDispatch extends IUnknown
+{
+public IDispatch(int address) {
+ super(address);
+}
+public int GetIDsOfNames(GUID riid, String[] rgszNames, int cNames, int lcid, int[] rgDispId) {
+
+ char[] buffer;
+ int size = rgszNames.length;
+
+ // create an array to hold the addresses
+ int hHeap = OS.GetProcessHeap();
+ int ppNames = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, size*4);
+ int[] memTracker = new int[size];
+
+ try {
+ // add the address of each string to the array
+
+ for (int i=0; i<size; i++){
+ // create a null terminated array of char for each String
+ int nameSize = rgszNames[i].length();
+ buffer = new char[nameSize +1];
+ rgszNames[i].getChars(0, nameSize, buffer, 0);
+ // get the address of the start of the array of char
+ int pName = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, buffer.length * 2);
+ OS.MoveMemory(pName, buffer, buffer.length * 2);
+ // copy the address to the array of addresses
+ COM.MoveMemory(ppNames + 4*i, new int[]{pName}, 4);
+ // keep track of the Global Memory so we can free it
+ memTracker[i] = pName;
+ }
+
+ return COM.VtblCall(5, address, new GUID(), ppNames, cNames, lcid, rgDispId);
+
+ } finally {
+ // free the memory
+ for (int i=0; i<memTracker.length; i++){
+ OS.HeapFree(hHeap, 0, memTracker[i]);
+ }
+ OS.HeapFree(hHeap, 0, ppNames);
+ }
+}
+public int GetTypeInfo(int iTInfo, int lcid, int[] ppTInfo ){
+ return COM.VtblCall(4, address, iTInfo, lcid, ppTInfo);
+}
+public int GetTypeInfoCount(int[] pctinfo ){
+ return COM.VtblCall(3, address, pctinfo);
+}
+public int Invoke(int dispIdMember, GUID riid, int lcid, int dwFlags, DISPPARAMS pDispParams, int pVarResult, EXCEPINFO pExcepInfo, int pArgErr[]) {
+ return COM.VtblCall(6, address, dispIdMember, riid, lcid, dwFlags, pDispParams, pVarResult, pExcepInfo, pArgErr);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnum.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnum.java
new file mode 100644
index 0000000000..20bfa0d2e7
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnum.java
@@ -0,0 +1,24 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IEnum extends IUnknown
+{
+public IEnum(int address) {
+ super(address);
+}
+public int Clone( int[] ppenum ){
+ return COM.VtblCall(6, address, ppenum);
+}
+public int Next(int celt, int rgelt, int[] pceltFetched ){
+ return COM.VtblCall(3, address, celt, rgelt, pceltFetched);
+}
+public int Reset() {
+ return COM.VtblCall(5, address);
+}
+public int Skip(int celt){
+ return COM.VtblCall(4, address, celt);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumFORMATETC.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumFORMATETC.java
new file mode 100644
index 0000000000..86ef9e7204
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumFORMATETC.java
@@ -0,0 +1,11 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IEnumFORMATETC extends IEnum {
+public IEnumFORMATETC(int address) {
+ super(address);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumSTATSTG.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumSTATSTG.java
new file mode 100644
index 0000000000..73f69c2667
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IEnumSTATSTG.java
@@ -0,0 +1,11 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IEnumSTATSTG extends IEnum {
+public IEnumSTATSTG(int address) {
+ super(address);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IFont.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IFont.java
new file mode 100644
index 0000000000..1f113189f7
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IFont.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IFont extends IUnknown {
+public IFont(int address) {
+ super(address);
+}
+public int get_hFont(int[] phfont){
+ return COM.VtblCall(3, address, phfont);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IMoniker.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IMoniker.java
new file mode 100644
index 0000000000..50a7c9460d
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IMoniker.java
@@ -0,0 +1,12 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IMoniker extends IPersist
+{
+public IMoniker(int address) {
+ super(address);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleCommandTarget.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleCommandTarget.java
new file mode 100644
index 0000000000..0d86e7f55b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleCommandTarget.java
@@ -0,0 +1,30 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IOleCommandTarget extends IUnknown {
+public IOleCommandTarget(int address) {
+ super(address);
+}
+public int Exec(
+ GUID pguidCmdGroup, // Pointer to command group
+ int nCmdID, // Identifier of command to execute
+ int nCmdExecOpt, // Options for executing the command
+ int pvaIn, // Pointer to input arguments
+ int pvaOut // Pointer to command output
+){
+ return COM.VtblCall(4, address, pguidCmdGroup, nCmdID, nCmdExecOpt, pvaIn, pvaOut);
+}
+public int QueryStatus(
+ GUID pguidCmdGroup, // Pointer to command group
+ int cCmds, // Number of commands in prgCmds array
+ OLECMD prgCmds, // Array of commands
+ OLECMDTEXT pCmdText // Pointer to name or status of command
+){
+ // we only support querying for one command at a time
+ if (cCmds > 1) return COM.E_INVALIDARG;
+ return COM.VtblCall(3, address, pguidCmdGroup, cCmds, prgCmds, pCmdText);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleControl.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleControl.java
new file mode 100644
index 0000000000..51f6c3df93
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleControl.java
@@ -0,0 +1,15 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IOleControl extends IUnknown
+{
+public IOleControl(int address) {
+ super(address);
+}
+public int GetControlInfo(CONTROLINFO pCI) {
+ return COM.VtblCall(3, address, pCI);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceActiveObject.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceActiveObject.java
new file mode 100644
index 0000000000..da57f127f1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceActiveObject.java
@@ -0,0 +1,21 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+import org.eclipse.swt.internal.win32.*;
+
+public class IOleInPlaceActiveObject extends IOleWindow
+{
+public IOleInPlaceActiveObject(int address) {
+ super(address);
+}
+public int TranslateAccelerator(MSG lpmsg) {
+ //lpmsg - Pointer to message that may need translating
+ return COM.VtblCall(5, address, lpmsg);
+}
+public int ResizeBorder(RECT prcBorder, int pUIWindow, boolean fFrameWindow) {
+ return COM.VtblCall(8, address, prcBorder, pUIWindow, fFrameWindow);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceObject.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceObject.java
new file mode 100644
index 0000000000..d0c6cc4c61
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleInPlaceObject.java
@@ -0,0 +1,20 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+import org.eclipse.swt.internal.win32.*;
+
+public class IOleInPlaceObject extends IOleWindow
+{
+public IOleInPlaceObject(int address) {
+ super(address);
+}
+public int InPlaceDeactivate() {
+ return COM.VtblCall(5, address);
+}
+public int SetObjectRects(RECT lprcPosRect, RECT lprcClipRect) {
+ return COM.VtblCall(7, address, lprcPosRect, lprcClipRect);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleLink.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleLink.java
new file mode 100644
index 0000000000..a676e8090e
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleLink.java
@@ -0,0 +1,18 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IOleLink extends IUnknown
+{
+public IOleLink(int address) {
+ super(address);
+}
+public int BindIfRunning() {
+ return COM.VtblCall(10, address);
+}
+public int GetSourceMoniker(int[] ppmk) {
+ return COM.VtblCall(6, address, ppmk);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleObject.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleObject.java
new file mode 100644
index 0000000000..114232a932
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleObject.java
@@ -0,0 +1,54 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+import org.eclipse.swt.internal.win32.*;
+
+public class IOleObject extends IUnknown
+{
+public IOleObject(int address) {
+ super(address);
+}
+public int Advise(int pAdvSink, int pdwConnection[]) {
+ return COM.VtblCall(19, address, pAdvSink, pdwConnection);
+}
+public int Close(int dwSaveOption) {
+ return COM.VtblCall(6, address, dwSaveOption);
+}
+public int DoVerb(int iVerb, MSG lpmsg, int pActiveSite, int lindex, int hwndParent, RECT lprcPosRect) {
+ return COM.VtblCall(11, address, iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect);
+}
+public int GetExtent(int dwDrawAspect, SIZE pSizel) {
+ return COM.VtblCall(18, address, dwDrawAspect, pSizel);
+}
+public int SetClientSite(int pClientSite) {
+ return COM.VtblCall(3, address, pClientSite);
+}
+public int SetExtent(int dwDrawAspect, SIZE pSizel) {
+ return COM.VtblCall(17, address, dwDrawAspect, pSizel);
+}
+public int SetHostNames(String szContainerApp, String szContainerObj) {
+
+ // create a null terminated array of char
+ char[] buffer1 = null;
+ if (szContainerApp != null) {
+ int count1 = szContainerApp.length();
+ buffer1 = new char[count1 + 1];
+ szContainerApp.getChars(0, count1, buffer1, 0);
+ }
+
+ // create a null terminated array of char
+ char[] buffer2 = null;
+ if (szContainerObj != null) {
+ int count2 = szContainerObj.length();
+ buffer2 = new char[count2 + 1];
+ szContainerObj.getChars(0, count2, buffer2, 0);
+ }
+ return COM.VtblCall(5, address, buffer1, buffer2);
+}
+public int Update() {
+ return COM.VtblCall(13, address);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleWindow.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleWindow.java
new file mode 100644
index 0000000000..acb1f61664
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IOleWindow.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IOleWindow extends IUnknown {
+public IOleWindow(int address) {
+ super(address);
+}
+public int GetWindow(int phwnd[]) {
+ return COM.VtblCall(3, address, phwnd);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersist.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersist.java
new file mode 100644
index 0000000000..44f30de396
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersist.java
@@ -0,0 +1,15 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IPersist extends IUnknown
+{
+public IPersist(int address) {
+ super(address);
+}
+public int GetClassID(GUID pClassID) {
+ return COM.VtblCall(3, address, pClassID);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersistStorage.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersistStorage.java
new file mode 100644
index 0000000000..e11d8f971c
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IPersistStorage.java
@@ -0,0 +1,30 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IPersistStorage extends IPersist
+{
+public IPersistStorage(int address) {
+ super(address);
+}
+public int IsDirty() {
+ return COM.VtblCall(4, address);
+}
+public int InitNew(int pStg) {
+ return COM.VtblCall(5, address, pStg);
+}
+public int Load(int pStg) {
+ return COM.VtblCall(6, address, pStg);
+}
+public int Save(int pStgSave, boolean fSameAsLoad) {
+ return COM.VtblCall(7, address, pStgSave, fSameAsLoad);
+}
+public int SaveCompleted(int pStgNew) {
+ return COM.VtblCall(8, address, pStgNew);
+}
+public int HandsOffStorage(){
+ return COM.VtblCall(9, address);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo.java
new file mode 100644
index 0000000000..e6ae63f38b
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo.java
@@ -0,0 +1,15 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IProvideClassInfo extends IUnknown
+{
+public IProvideClassInfo(int address) {
+ super(address);
+}
+public int GetClassInfo(int[] ppTI) {
+ return COM.VtblCall(3, address, ppTI);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo2.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo2.java
new file mode 100644
index 0000000000..bcba483008
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IProvideClassInfo2.java
@@ -0,0 +1,15 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IProvideClassInfo2 extends IProvideClassInfo
+{
+public IProvideClassInfo2(int address) {
+ super(address);
+}
+public int GetGUID(int dwGuidKind, GUID pGUID) {
+ return COM.VtblCall(4, address, dwGuidKind, pGUID);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ISpecifyPropertyPages.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ISpecifyPropertyPages.java
new file mode 100644
index 0000000000..4c73a077c2
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ISpecifyPropertyPages.java
@@ -0,0 +1,15 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class ISpecifyPropertyPages extends IUnknown {
+
+public ISpecifyPropertyPages(int address) {
+ super(address);
+}
+public int GetPages(CAUUID pPages){
+ return COM.VtblCall(3, address, pPages);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStorage.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStorage.java
new file mode 100644
index 0000000000..ad840e36e3
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStorage.java
@@ -0,0 +1,143 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IStorage extends IUnknown
+{
+public IStorage(int address) {
+ super(address);
+}
+public int Commit(int grfCommitFlag) {
+ return COM.VtblCall(9, address, grfCommitFlag);
+}
+public int CopyTo(
+ int ciidExclude, //Number of elements in rgiidExclude
+ GUID rgiidExclude, //Array of interface identifiers (IIDs)
+ String[] snbExclude, //Points to a block of stream names in the storage object
+ int pstgDest //Points to destination storage object
+ ){
+ // we only support snbExclude = null
+ if (snbExclude != null) {
+ return COM.E_INVALIDARG;
+ }
+ return COM.VtblCall(7, address, ciidExclude, rgiidExclude, 0, pstgDest);
+}
+public int CreateStorage(
+ String pwcsName, //Pointer to the name of the new storage object
+ int grfMode, //Access mode for the new storage object
+ int reserved1, //Reserved; must be zero
+ int reserved2, //Reserved; must be zero
+ int[] ppStg //Pointer to new storage object
+){
+
+ // create a null terminated array of char
+ char[] buffer = null;
+ if (pwcsName != null) {
+ buffer = (pwcsName+"\0").toCharArray();
+ }
+
+ return COM.VtblCall(5, address, buffer, grfMode, reserved1, reserved2, ppStg);
+}
+public int CreateStream(
+ String pwcsName, //Pointer to the name of the new stream
+ int grfMode, //Access mode for the new stream
+ int reserved1, //Reserved; must be zero
+ int reserved2, //Reserved; must be zero
+ int[] ppStm //Pointer to new stream object
+){
+
+ // create a null terminated array of char
+ char[] buffer = null;
+ if (pwcsName != null) {
+ buffer = (pwcsName+"\0").toCharArray();
+ }
+
+ return COM.VtblCall(3, address, buffer, grfMode, reserved1, reserved2, ppStm);
+}
+public int DestroyElement(String pwcsName) {
+
+ // create a null terminated array of char
+ char[] buffer = null;
+ if (pwcsName != null) {
+ buffer = (pwcsName+"\0").toCharArray();
+ }
+ return COM.VtblCall(12, address, buffer);
+}
+public int EnumElements(
+ int reserved1, //Reserved; must be zero
+ int reserved2, //Reserved; must be NULL
+ int reserved3, //Reserved; must be zero
+ int[] ppenum //Pointer to output variable that
+ // receives the IEnumSTATSTG interface
+){
+ return COM.VtblCall(11, address, reserved1, reserved2, reserved3, ppenum);
+}
+public int OpenStorage(
+ String pwcsName, //Pointer to the name of the
+ // storage object to open
+ int pstgPriority, //Must be NULL.
+ int grfMode, //Access mode for the new storage object
+ String snbExclude[], //Must be NULL.
+ int reserved, //Reserved; must be zero
+ int[] ppStg //Pointer to opened storage object
+){
+
+ // create a null terminated array of char
+ char[] buffer = null;
+ if (pwcsName != null) {
+ buffer = (pwcsName+"\0").toCharArray();
+ }
+
+ // we only support the case where snbExclude = null
+ if (snbExclude != null) {
+ return COM.E_INVALIDARG;
+ }
+ return COM.VtblCall(6, address, buffer, pstgPriority, grfMode, 0, reserved, ppStg);
+}
+public int OpenStream(
+ String pwcsName, //Pointer to name of stream to open
+ int reserved1, //Reserved; must be NULL
+ int grfMode, //Access mode for the new stream
+ int reserved2, //Reserved; must be zero
+ int[] ppStm //Pointer to output variable
+ // that receives the IStream interface pointer
+) {
+
+ // create a null terminated array of char
+ char[] buffer = null;
+ if (pwcsName != null) {
+ buffer = (pwcsName+"\0").toCharArray();
+ }
+
+ return COM.VtblCall(4, address, buffer, reserved1, grfMode, reserved2, ppStm);
+}
+public int RenameElement(
+ String pwcsOldName, //Pointer to the name of the
+ // element to be changed
+ String pwcsNewName //Pointer to the new name for
+ // the specified element
+){
+
+ // create a null terminated array of char
+ char[] buffer1 = null;
+ if (pwcsOldName != null) {
+ buffer1 = (pwcsOldName+"\0").toCharArray();
+ }
+ // create a null terminated array of char
+ char[] buffer2 = null;
+ if (pwcsNewName != null) {
+ buffer2 = (pwcsNewName+"\0").toCharArray();
+ }
+ return COM.VtblCall(13, address, buffer1, buffer2);
+}
+public int Revert() {
+ return COM.VtblCall(10, address);
+}
+public int SetClass(
+ GUID clsid //CLSID to be assigned to the storage object
+){
+ return COM.VtblCall(15, address, clsid);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStream.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStream.java
new file mode 100644
index 0000000000..658d0d0bdc
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IStream.java
@@ -0,0 +1,29 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IStream extends IUnknown {
+public IStream(int address) {
+ super(address);
+}
+public int Clone(
+ int[] ppstm //Pointer to location for pointer to the new stream object
+){
+ return COM.VtblCall(13, address, ppstm);
+}
+public int Commit( int grfCommitFlags //Specifies how changes are committed
+){
+ return COM.VtblCall(8, address, grfCommitFlags);
+}
+public int Read(int pv, int cb, int[] pcbWritten) {
+ return COM.VtblCall(3, address, pv, cb, pcbWritten);
+}
+public int Revert(){
+ return COM.VtblCall(9, address);
+}
+public int Write(int pv, int cb, int[] pcbWritten) {
+ return COM.VtblCall(4, address, pv, cb, pcbWritten);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ITypeInfo.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ITypeInfo.java
new file mode 100644
index 0000000000..c67a5069ef
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/ITypeInfo.java
@@ -0,0 +1,154 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+
+import org.eclipse.swt.internal.win32.OS;
+
+public class ITypeInfo extends IUnknown
+{
+
+public ITypeInfo(int address) {
+ super(address);
+}
+public int GetDocumentation(int index, String[] name, String[] docString, int[] pdwHelpContext, String[] helpFile ) {
+ int[] pBstrName = null;
+ if (name != null) pBstrName = new int[1];
+ int[] pBstrDocString = null;
+ if (docString != null) pBstrDocString = new int[1];
+ int[] pBstrHelpFile = null;
+ if (helpFile != null) pBstrHelpFile = new int[1];
+ int rc = COM.VtblCall(12, address, index, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile);
+ if (name != null && pBstrName[0] != 0) {
+ int size = COM.SysStringByteLen(pBstrName[0]);
+ if (size > 0){
+ // get the unicode character array from the global memory and create a String
+ char[] buffer = new char[(size + 1) /2]; // add one to avoid rounding errors
+ COM.MoveMemory(buffer, pBstrName[0], size);
+ name[0] = new String(buffer);
+ int subindex = name[0].indexOf("\0");
+ if (subindex > 0)
+ name[0] = name[0].substring(0, subindex);
+ }
+ COM.SysFreeString(pBstrName[0]);
+ }
+ if (docString != null && pBstrDocString[0] != 0) {
+ int size = COM.SysStringByteLen(pBstrDocString[0]);
+ if (size > 0){
+ // get the unicode character array from the global memory and create a String
+ char[] buffer = new char[(size + 1) /2]; // add one to avoid rounding errors
+ COM.MoveMemory(buffer, pBstrDocString[0], size);
+ docString[0] = new String(buffer);
+ int subindex = docString[0].indexOf("\0");
+ if (subindex > 0)
+ docString[0] = docString[0].substring(0, subindex);
+ }
+ COM.SysFreeString(pBstrDocString[0]);
+ }
+ if (helpFile != null && pBstrHelpFile[0] != 0) {
+ int size = COM.SysStringByteLen(pBstrHelpFile[0]);
+ if (size > 0){
+ // get the unicode character array from the global memory and create a String
+ char[] buffer = new char[(size + 1) /2]; // add one to avoid rounding errors
+ COM.MoveMemory(buffer, pBstrHelpFile[0], size);
+ helpFile[0] = new String(buffer);
+ int subindex = helpFile[0].indexOf("\0");
+ if (subindex > 0)
+ helpFile[0] = helpFile[0].substring(0, subindex);
+ }
+ COM.SysFreeString(pBstrHelpFile[0]);
+ }
+ return rc;
+}
+public int GetFuncDesc(int index, int[] ppFuncDesc) {
+ return COM.VtblCall(5, address, index, ppFuncDesc);
+}
+public int GetIDsOfNames(String[] rgszNames, int cNames, int[] pMemId) {
+
+ char[] buffer;
+ int size = rgszNames.length;
+
+ // create an array to hold the addresses
+ int hHeap = OS.GetProcessHeap();
+ int ppNames = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, size*4);
+ int[] memTracker = new int[size];
+
+ try {
+ // add the address of each string to the array
+
+ for (int i=0; i<size; i++){
+ // create a null terminated array of char for each String
+ int nameSize = rgszNames[i].length();
+ buffer = new char[nameSize +1];
+ rgszNames[i].getChars(0, nameSize, buffer, 0);
+ // get the address of the start of the array of char
+ int pName = OS.HeapAlloc(hHeap, OS.HEAP_ZERO_MEMORY, buffer.length * 2);
+ OS.MoveMemory(pName, buffer, buffer.length * 2);
+ // copy the address to the array of addresses
+ COM.MoveMemory(ppNames + 4*i, new int[]{pName}, 4);
+ // keep track of the Global Memory so we can free it
+ memTracker[i] = pName;
+ }
+
+ return COM.VtblCall(10, address, ppNames, cNames, pMemId);
+
+ } finally {
+ // free the memory
+ for (int i=0; i<memTracker.length; i++){
+ OS.HeapFree(hHeap, 0, memTracker[i]);
+ }
+ OS.HeapFree(hHeap, 0, ppNames);
+ }
+}
+
+public int GetImplTypeFlags(int index, int[] pImplTypeFlags) {
+ return COM.VtblCall(9, address, index, pImplTypeFlags);
+}
+public int GetNames(int memid, String[] names, int cMaxNames, int[] pcNames){
+
+ int nameSize = names.length;
+ int[] rgBstrNames = new int[nameSize];
+ int rc = COM.VtblCall(7, address, memid, rgBstrNames, nameSize, pcNames);
+
+ if (rc == COM.S_OK) {
+ for (int i = 0; i < pcNames[0]; i++) {
+ int size = COM.SysStringByteLen(rgBstrNames[i]);
+ if (size > 0){
+ // get the unicode character array from the global memory and create a String
+ char[] buffer = new char[(size + 1) /2]; // add one to avoid rounding errors
+ COM.MoveMemory(buffer, rgBstrNames[i], size);
+ names[i] = new String(buffer);
+ int subindex = names[i].indexOf("\0");
+ if (subindex > 0)
+ names[i] = names[i].substring(0, subindex);
+ }
+ COM.SysFreeString(rgBstrNames[i]);
+ }
+ }
+
+ return rc;
+}
+public int GetRefTypeInfo(int hRefType, int[] ppTInfo) {
+ return COM.VtblCall(14, address, hRefType, ppTInfo);
+}
+public int GetRefTypeOfImplType(int index, int[] pRefType) {
+ return COM.VtblCall(8, address, index, pRefType);
+}
+public int GetTypeAttr(int[] ppTypeAttr) {
+ return COM.VtblCall(3, address, ppTypeAttr);
+}
+public int GetVarDesc(int index, int[] ppVarDesc ) {
+ return COM.VtblCall(6, address, index, ppVarDesc);
+}
+public int ReleaseFuncDesc(int pFuncDesc ) {
+ return COM.VtblCall(20, address, pFuncDesc);
+}
+public int ReleaseTypeAttr(int pTypeAttr) {
+ return COM.VtblCall(19, address, pTypeAttr);
+}
+public int ReleaseVarDesc(int pVarDesc ) {
+ return COM.VtblCall(21, address, pVarDesc);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IUnknown.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IUnknown.java
new file mode 100644
index 0000000000..9e168f70ae
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IUnknown.java
@@ -0,0 +1,25 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class IUnknown
+{
+ int address;
+public IUnknown(int address) {
+ this.address = address;
+}
+public int AddRef() {
+ return COM.VtblCall(1, address);
+}
+public int getAddress() {
+ return address;
+}
+public int QueryInterface(GUID riid, int ppvObject[]) {
+ return COM.VtblCall(0, address, riid, ppvObject);
+}
+public int Release() {
+ return COM.VtblCall(2, address);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IViewObject2.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IViewObject2.java
new file mode 100644
index 0000000000..7124f871e2
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IViewObject2.java
@@ -0,0 +1,20 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+import org.eclipse.swt.internal.win32.*;
+
+public class IViewObject2 extends IUnknown
+{
+public IViewObject2(int address) {
+ super(address);
+}
+public int GetExtent(int dwAspect, int lindex, DVTARGETDEVICE ptd, SIZE lpsizel) {
+ return COM.VtblCall(9, address, dwAspect, lindex, ptd, lpsizel);
+}
+public int SetAdvise(int dwAspects, int dwAdvf, int pIAdviseSink) {
+ return COM.VtblCall(7, address, dwAspects, dwAdvf, pIAdviseSink);
+}
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/LICINFO.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/LICINFO.java
new file mode 100644
index 0000000000..f4b54163b3
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/LICINFO.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class LICINFO
+{
+ public int cbLicInfo;
+ public int fRuntimeKeyAvail;
+ public int fLicVerified;
+
+ public static final int sizeof = 12;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMD.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMD.java
new file mode 100644
index 0000000000..9ded930322
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMD.java
@@ -0,0 +1,12 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class OLECMD {
+ public int cmdID;
+ public int cmdf;
+
+ public static final int sizeof = 8;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMDTEXT.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMDTEXT.java
new file mode 100644
index 0000000000..ee5594b3e4
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLECMDTEXT.java
@@ -0,0 +1,16 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class OLECMDTEXT {
+ public int cmdtextf;
+ public int cwActual;
+ public int cwBuf;
+ public short rgwz;
+
+ // Note: this is a variable sized struct. The last field rgwz can vary in size.
+ // Currently we do not use this field and do not support accessing anything more
+ // than the first char in the field.
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO.java
new file mode 100644
index 0000000000..7459b53de1
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO.java
@@ -0,0 +1,18 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class OLEINPLACEFRAMEINFO
+{
+
+ public int cb;
+ public int fMDIApp;
+ public int hwndFrame;
+ public int haccel;
+ public int cAccelEntries;
+
+ public static final int sizeof = 20;
+
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STATSTG.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STATSTG.java
new file mode 100644
index 0000000000..abb2e3ea23
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STATSTG.java
@@ -0,0 +1,38 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public class STATSTG {
+ public int pwcsName;
+ public int type;
+ public long cbSize;
+ //FILETIME mtime;
+ public int mtime_dwLowDateTime;
+ public int mtime_dwHighDateTime;
+ //FILETIME ctime;
+ public int ctime_dwLowDateTime;
+ public int ctime_dwHighDateTime;
+ //FILETIME atime;
+ public int atime_dwLowDateTime;
+ public int atime_dwHighDateTime;
+ public int grfMode;
+ public int grfLocksSupported;
+ //GUID clsid;
+ public int clsid_data1;
+ public short clsid_data2;
+ public short clsid_data3;
+ public byte clsid_b0;
+ public byte clsid_b1;
+ public byte clsid_b2;
+ public byte clsid_b3;
+ public byte clsid_b4;
+ public byte clsid_b5;
+ public byte clsid_b6;
+ public byte clsid_b7;
+ public int grfStateBits;
+ public int reserved;
+
+ public static final int sizeof = 72;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STGMEDIUM.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STGMEDIUM.java
new file mode 100644
index 0000000000..edf791bf8a
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/STGMEDIUM.java
@@ -0,0 +1,14 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class STGMEDIUM
+{
+ public int tymed;
+ public int unionField;
+ public int pUnkForRelease;
+
+ public static final int sizeof = 12;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/TYPEATTR.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/TYPEATTR.java
new file mode 100644
index 0000000000..f127ba3939
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/TYPEATTR.java
@@ -0,0 +1,49 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+public final class TYPEATTR
+{
+ //public GUID guid
+ public int guid_data1;
+ public short guid_data2;
+ public short guid_data3;
+ public byte guid_b0;
+ public byte guid_b1;
+ public byte guid_b2;
+ public byte guid_b3;
+ public byte guid_b4;
+ public byte guid_b5;
+ public byte guid_b6;
+ public byte guid_b7;
+
+ public int lcid;
+ public int dwReserved;
+ public int memidConstructor;
+ public int memidDestructor;
+ public int lpstrSchema;
+ public int cbSizeInstance;
+ public int typekind;
+ public short cFuncs;
+ public short cVars;
+ public short cImplTypes;
+ public short cbSizeVft;
+ public short cbAlignment;
+ public short wTypeFlags;
+ public short wMajorVerNum;
+ public short wMinorVerNum;
+
+ // public TYPEDESC tdescAlias
+ public int tdescAlias_unionField;
+ public short tdescAlias_vt;
+ // this filler field is required for proper byte alignment
+ public short filler;
+
+ // public IDLDESC idldesctype
+ public int idldescType_dwReserved;
+ public short idldescType_wIDLFlags;
+
+ public static final int sizeof = 74;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC1.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC1.java
new file mode 100644
index 0000000000..1f5d9cf023
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC1.java
@@ -0,0 +1,26 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+
+public class VARDESC1 {
+ public int memid;
+ public int lpstrSchema;
+ public int unionField;
+ //ELEMDESC elemdescVar
+ //TYPEDESC elemdescVar.tdesc
+ public int elemdescVar_tdesc_union;
+ public short elemdescVar_tdesc_vt;
+ public short elemdescVar_tdesc_filler;
+ //PARAMDESC elemdescFunc.paramdesc
+ public int elemdescVar_paramdesc_pparamdescex;
+ public short elemdescVar_paramdesc_wParamFlags;
+ public short elemdescVar_paramdesc_filler;
+ public short wVarFlags;
+ public short filler;
+ public int varkind;
+
+ public static final int sizeof = 36;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC2.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC2.java
new file mode 100644
index 0000000000..a422c5f454
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/VARDESC2.java
@@ -0,0 +1,26 @@
+package org.eclipse.swt.internal.ole.win32;
+
+/*
+ * (c) Copyright IBM Corp. 2000, 2001.
+ * All Rights Reserved
+ */
+
+public class VARDESC2 {
+ public int memid;
+ public int lpstrSchema;
+ public int unionField;
+ //ELEMDESC elemdescVar
+ //TYPEDESC elemdescVar.tdesc
+ public int elemdescVar_tdesc_union;
+ public short elemdescVar_tdesc_vt;
+ public short elemdescVar_tdesc_filler;
+ //IDLDESC elemdescFunc.idldesc
+ public int elemdescFunc_idldesc_dwReserved;
+ public short elemdescFunc_idldesc_wIDLFlags;
+ public short elemdescFunc_idldesc_filler;
+ public short wVarFlags;
+ public short filler;
+ public int varkind;
+
+ public static final int sizeof = 36;
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/package.html b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/package.html
new file mode 100644
index 0000000000..1c2f7fe7d9
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/package.html
@@ -0,0 +1,20 @@
+ <html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="IBM">
+ <title>Package-level Javadoc</title>
+</head>
+<body>
+SWT internal Win32 OLE implementation classes.
+<h2>
+Package Specification</h2>
+This package contains the internal classes which implement the Microsoft
+Win32 platform interface to the Object Linking and Embedding mechanism
+that the win32 variant of SWT is capable of using.
+<p>
+Referencing any of the classes in this package directly guarantees
+that the code is platform specific. Applications should not need to
+reference the classes in this package directly.
+</p>
+</body>
+</html>