From bf219895eeed085ac7691759faac06580d81d416 Mon Sep 17 00:00:00 2001 From: Grant Gayed Date: Tue, 2 Dec 2008 16:18:45 +0000 Subject: 156276 - Provide a way for JavaScript to call out to the Browser's container --- .../carbon/org/eclipse/swt/browser/Safari.java | 118 ++- .../org/eclipse/swt/browser/BrowserFunction.java | 76 ++ .../common/org/eclipse/swt/browser/WebBrowser.java | 46 + .../win32/org/eclipse/swt/browser/IE.java | 18 +- .../win32/org/eclipse/swt/browser/WebSite.java | 251 ++++- .../Eclipse SWT Mozilla/common/library/xpcom.cpp | 159 +++ .../common/library/xpcom_stats.cpp | 29 +- .../common/library/xpcom_stats.h | 25 + .../eclipse/swt/browser/AppFileLocProvider.java | 8 +- .../common/org/eclipse/swt/browser/External.java | 416 ++++++++ .../org/eclipse/swt/browser/ExternalFactory.java | 100 ++ .../common/org/eclipse/swt/browser/Mozilla.java | 93 +- .../org/eclipse/swt/internal/mozilla/XPCOM.java | 48 + .../eclipse/swt/internal/mozilla/nsIClassInfo.java | 91 ++ .../eclipse/swt/internal/mozilla/nsIDataType.java | 73 ++ .../mozilla/nsISecurityCheckedComponent.java | 33 + .../eclipse/swt/internal/mozilla/nsIVariant.java | 147 +++ .../swt/internal/mozilla/nsIWritableVariant.java | 141 +++ .../Eclipse SWT PI/carbon/library/cocoa.c | 56 + .../Eclipse SWT PI/carbon/library/cocoa.h | 5 + .../Eclipse SWT PI/carbon/library/cocoa_custom.c | 27 + .../Eclipse SWT PI/carbon/library/cocoa_stats.c | 8 +- .../Eclipse SWT PI/carbon/library/cocoa_stats.h | 4 + .../org/eclipse/swt/internal/cocoa/Cocoa.java | 31 + .../Eclipse SWT PI/win32/library/com.c | 1109 +++++++++++++++++--- .../Eclipse SWT PI/win32/library/com_stats.c | 169 ++- .../Eclipse SWT PI/win32/library/com_stats.h | 165 ++- .../org/eclipse/swt/internal/ole/win32/COM.java | 80 +- .../eclipse/swt/internal/ole/win32/IDispatch.java | 4 +- .../swt/internal/ole/win32/IDispatchEx.java | 50 + .../Eclipse SWT/common/org/eclipse/swt/SWT.java | 7 + bundles/org.eclipse.swt/components/external.idl | 10 + bundles/org.eclipse.swt/components/external.xpt | Bin 0 -> 183 bytes 33 files changed, 3349 insertions(+), 248 deletions(-) create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/BrowserFunction.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java create mode 100644 bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatchEx.java create mode 100644 bundles/org.eclipse.swt/components/external.idl create mode 100644 bundles/org.eclipse.swt/components/external.xpt (limited to 'bundles') diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/Safari.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/Safari.java index 9f79ee4104..afeeae68b7 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/Safari.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/carbon/org/eclipse/swt/browser/Safari.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.swt.browser; +import java.util.Enumeration; + import org.eclipse.swt.*; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.Rectangle; @@ -284,7 +286,7 @@ public void create (Composite parent, int style) { // delegate = [[WebResourceLoadDelegate alloc] init eventProc]; delegate = Cocoa.objc_msgSend(Cocoa.C_WebKitDelegate, Cocoa.S_alloc); delegate = Cocoa.objc_msgSend(delegate, Cocoa.S_initWithProc, callback7Address, webViewHandle); - + // [webView setFrameLoadDelegate:delegate]; Cocoa.objc_msgSend(webView, Cocoa.S_setFrameLoadDelegate, delegate); @@ -623,6 +625,8 @@ int handleCallback(int selector, int arg0, int arg1, int arg2, int arg3) { case 30: mouseDidMoveOverElement(arg0, arg1); break; case 31: didChangeLocationWithinPageForFrame(arg0); break; case 32: handleEvent(arg0); break; + case 33: windowScriptObjectAvailable(arg0); break; + case 34: ret = callJava(arg0, arg1, arg2); break; } return ret; } @@ -852,6 +856,14 @@ void didFinishLoadForFrame(int frame) { } ); } + + /* re-install registered functions */ + Enumeration elements = functions.elements (); + while (elements.hasMoreElements ()) { + BrowserFunction function = (BrowserFunction)elements.nextElement (); + execute (function.functionString); + } + /* * Feature on Safari. The identifier is used here as a marker for the events * related to the top frame and the URL changes related to that top frame as @@ -1067,6 +1079,17 @@ void didCommitLoadForFrame(int frame) { } } +void windowScriptObjectAvailable (int windowScriptObject) { + String objectName = "external"; //$NON-NLS-1$ + char[] chars = new char[objectName.length ()]; + objectName.getChars (0, chars.length, chars, 0); + int str = OS.CFStringCreateWithCharacters (0, chars, chars.length); + if (str != 0) { + Cocoa.objc_msgSend (windowScriptObject, Cocoa.S_setValue, delegate, str); + OS.CFRelease (str); + } +} + /* WebResourceLoadDelegate */ void didFinishLoadingFromDataSource(int identifier, int dataSource) { @@ -1626,4 +1649,97 @@ void handleEvent(int evt) { } } +/* external */ + +Object convertToJava (int value) { + if (Cocoa.objc_msgSend (value, Cocoa.S_isKindOfClass, Cocoa.C_NSString) != 0) { + int length = Cocoa.objc_msgSend (value, Cocoa.S_length); + char[] buffer = new char[length]; + Cocoa.objc_msgSend (value, Cocoa.S_getCharacters_, buffer); + return new String (buffer); + } + if (Cocoa.objc_msgSend (value, Cocoa.S_isKindOfClass, Cocoa.C_NSNumber) != 0) { + int ptr = Cocoa.objc_msgSend (value, Cocoa.S_objCType); + byte[] type = new byte[1]; + OS.memmove (type, ptr, 1); + if (type[0] == 'c' || type[0] == 'B') { + int result = Cocoa.objc_msgSend (value, Cocoa.S_boolValue); + return new Boolean (result != 0); + } + if ("islqISLQfd".indexOf (type[0]) != -1) { //$NON-NLS-1$ + double result = Cocoa.objc_msgSend_fpret (value, Cocoa.S_doubleValue); + return new Double (result); + } + } + if (Cocoa.objc_msgSend (value, Cocoa.S_isKindOfClass, Cocoa.C_WebScriptObject) != 0) { + String string = "length"; //$NON-NLS-1$ + char[] chars = new char[string.length ()]; + string.getChars (0, chars.length, chars, 0); + int str = OS.CFStringCreateWithCharacters (0, chars, chars.length); + int numberValue = Cocoa.objc_msgSend (value, Cocoa.S_valueForKey, str); + OS.CFRelease (str); + int length = Cocoa.objc_msgSend (numberValue, Cocoa.S_intValue); + Object[] arguments = new Object[length]; + for (int i = 0; i < length; i++) { + int current = Cocoa.objc_msgSend (value, Cocoa.S_webScriptValueAtIndex, i); + if (current != 0) { + arguments[i] = convertToJava (current); + } + } + return arguments; + } + return null; +} + +int convertToJS (Object value) { + if (value instanceof String) { + String result = (String)value; + char[] chars = new char[result.length ()]; + result.getChars (0, chars.length, chars, 0); + return OS.CFStringCreateWithCharacters (0, chars, chars.length); + } + if (value instanceof Boolean) { + int booleanValue = ((Boolean)value).booleanValue () ? 1 : 0; + return Cocoa.objc_msgSend (Cocoa.C_NSNumber, Cocoa.S_numberWithBool, booleanValue); + } + if (value instanceof Number) { + double doubleValue = ((Number)value).doubleValue (); + return Cocoa.objc_msgSend (Cocoa.C_NSNumber, Cocoa.S_numberWithDouble, doubleValue); + } + if (value instanceof Object[]) { + Object[] arrayValue = (Object[])value; + int length = arrayValue.length; + if (length > 0) { + int array = Cocoa.objc_msgSend (Cocoa.C_NSMutableArray, Cocoa.S_arrayWithCapacity, length); + for (int i = 0; i < length; i++) { + Object currentObject = arrayValue[i]; + int jsObject = convertToJS (currentObject); + Cocoa.objc_msgSend (array, Cocoa.S_addObject, jsObject); + } + return array; + } + } + return Cocoa.objc_msgSend (Cocoa.C_WebUndefined, Cocoa.S_undefined); +} + +int /*long*/ callJava (int /*long*/ index, int /*long*/ args, int /*long*/ arg1) { + Object returnValue = null; + if (Cocoa.objc_msgSend (index, Cocoa.S_isKindOfClass, Cocoa.C_NSNumber) != 0) { + Object temp = convertToJava (args); + if (temp instanceof Object[]) { + Object[] arguments = (Object[])temp; + int functionIndex = Cocoa.objc_msgSend (index, Cocoa.S_intValue); + Object key = new Integer (functionIndex); + BrowserFunction function = (BrowserFunction)functions.get (key); + if (function != null) { + try { + returnValue = function.function (arguments); + } catch (Exception e) { + returnValue = ERROR_ID + ':' + e.getLocalizedMessage (); + } + } + } + } + return convertToJS (returnValue); +} } diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/BrowserFunction.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/BrowserFunction.java new file mode 100644 index 0000000000..079f3762e9 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/BrowserFunction.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.browser; + +import org.eclipse.swt.SWT; + +/** + * @since 3.5 + */ +public class BrowserFunction { + Browser browser; + String name; + String functionString; + int index; + +/** + * + */ +public BrowserFunction (Browser browser, String name) { + super (); + if (browser == null) SWT.error (SWT.ERROR_NULL_ARGUMENT); + if (name == null) SWT.error (SWT.ERROR_NULL_ARGUMENT); + this.browser = browser; + this.name = name; + browser.webBrowser.addFunction (this); +} + +/** +* +*/ +public void dispose () { + if (index < 0) return; + browser.webBrowser.removeFunction (this); + browser = null; + name = functionString = null; + index = -1; +} + +/** +* +*/ +public Object function (Object[] arguments) { + return null; +} + +/** +* +*/ +public Browser getBrowser () { + if (index < 0) SWT.error (SWT.ERROR_FUNCTION_DISPOSED); + return browser; +} + +/** +* +*/ +public String getName () { + if (index < 0) SWT.error (SWT.ERROR_FUNCTION_DISPOSED); + return name; +} + +/** +* +*/ +public boolean isDisposed () { + return index < 0; +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/WebBrowser.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/WebBrowser.java index b304096087..918117a981 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/WebBrowser.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/common/org/eclipse/swt/browser/WebBrowser.java @@ -10,11 +10,14 @@ *******************************************************************************/ package org.eclipse.swt.browser; +import java.util.*; + import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.*; abstract class WebBrowser { Browser browser; + Hashtable functions = new Hashtable (); CloseWindowListener[] closeWindowListeners = new CloseWindowListener[0]; LocationListener[] locationListeners = new LocationListener[0]; OpenWindowListener[] openWindowListeners = new OpenWindowListener[0]; @@ -22,7 +25,9 @@ abstract class WebBrowser { StatusTextListener[] statusTextListeners = new StatusTextListener[0]; TitleListener[] titleListeners = new TitleListener[0]; VisibilityWindowListener[] visibilityWindowListeners = new VisibilityWindowListener[0]; + int nextFunctionIndex = 1; + static final String ERROR_ID = "org.eclipse.swt.browser.error"; // $NON-NLS-1$ static Runnable MozillaClearSessions; static Runnable NativeClearSessions; @@ -169,6 +174,38 @@ public void addCloseWindowListener (CloseWindowListener listener) { closeWindowListeners[closeWindowListeners.length - 1] = listener; } +public void addFunction (BrowserFunction function) { + /* + * If an existing function with the same name is found then + * remove it so that it is not recreated on subsequent pages + * (the new function overwrites the old one). + */ + Enumeration keys = functions.keys (); + while (keys.hasMoreElements ()) { + Object key = keys.nextElement (); + BrowserFunction current = (BrowserFunction)functions.get (key); + if (current.name.equals (function.name)) { + functions.remove (key); + break; + } + } + + function.index = getNextFunctionIndex (); + functions.put (new Integer (function.index), function); + + StringBuffer buffer = new StringBuffer ("function "); + buffer.append (function.name); + buffer.append ("() {var result = window.external.callJava("); + buffer.append (function.index); + buffer.append (",Array.prototype.slice.call(arguments)); if (typeof result == 'string' && result.indexOf('"); + buffer.append (ERROR_ID); + buffer.append ("') == 0) {var error = new Error(result.substring("); + buffer.append (ERROR_ID.length () + 1); + buffer.append (")); throw error;} return result;}"); + function.functionString = buffer.toString (); + execute (function.functionString); +} + public void addLocationListener (LocationListener listener) { LocationListener[] newLocationListeners = new LocationListener[locationListeners.length + 1]; System.arraycopy(locationListeners, 0, newLocationListeners, 0, locationListeners.length); @@ -226,6 +263,10 @@ public abstract boolean forward (); public abstract String getBrowserType (); +int getNextFunctionIndex () { + return nextFunctionIndex++; +} + public abstract String getText (); public abstract String getUrl (); @@ -264,6 +305,11 @@ public void removeCloseWindowListener (CloseWindowListener listener) { closeWindowListeners = newCloseWindowListeners; } +public void removeFunction (BrowserFunction function) { + execute ("window." + function.name + "=undefined;"); + functions.remove (new Integer (function.index)); +} + public void removeLocationListener (LocationListener listener) { if (locationListeners.length == 0) return; int index = -1; diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java index e127d2e0d6..e89be91f59 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/IE.java @@ -10,8 +10,11 @@ *******************************************************************************/ package org.eclipse.swt.browser; +import java.util.*; + import org.eclipse.swt.*; import org.eclipse.swt.graphics.*; +import org.eclipse.swt.internal.*; import org.eclipse.swt.internal.ole.win32.*; import org.eclipse.swt.internal.win32.*; import org.eclipse.swt.ole.win32.*; @@ -447,6 +450,14 @@ public void create(Composite parent, int style) { if (globalDispatch != 0 && dispatch.getAddress() == globalDispatch) { /* final document complete */ globalDispatch = 0; + + /* re-install registered functions */ + Enumeration elements = functions.elements (); + while (elements.hasMoreElements ()) { + BrowserFunction function = (BrowserFunction)elements.nextElement (); + execute (function.functionString); + } + ProgressEvent progressEvent = new ProgressEvent(browser); progressEvent.display = browser.getDisplay(); progressEvent.widget = browser; @@ -556,7 +567,12 @@ public void create(Composite parent, int style) { */ int[] rgdispid = auto.getIDsOfNames(new String[] { "AddressBar" }); //$NON-NLS-1$ Variant pVarResult = auto.getProperty(rgdispid[0]); - if (pVarResult != null && pVarResult.getType() == OLE.VT_BOOL) addressBar = pVarResult.getBoolean(); + if (pVarResult != null) { + if (pVarResult.getType () == OLE.VT_BOOL) { + addressBar = pVarResult.getBoolean (); + } + pVarResult.dispose (); + } } newEvent.addressBar = addressBar; newEvent.menuBar = menuBar; diff --git a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/WebSite.java b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/WebSite.java index 341180544b..b8706619d2 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/WebSite.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/WebSite.java @@ -23,6 +23,7 @@ class WebSite extends OleControlSite { COMObject iServiceProvider; COMObject iInternetSecurityManager; COMObject iOleCommandTarget; + COMObject iDispatch; boolean ignoreNextMessage; static final int OLECMDID_SHOWSCRIPTERROR = 40; @@ -94,6 +95,29 @@ protected void createCOMInterfaces () { public int /*long*/ method3(int /*long*/[] args) {return QueryStatus(args[0], (int)/*64*/args[1], args[2], args[3]);} public int /*long*/ method4(int /*long*/[] args) {return Exec(args[0], (int)/*64*/args[1], (int)/*64*/args[2], args[3], args[4]);} }; + iDispatch = new COMObject (new int[] {2, 0, 0, 1, 3, 5, 8}) { + public int /*long*/ method0 (int /*long*/[] args) { + /* + * IDispatch check must be done here instead of in the shared QueryInterface + * implementation, to avoid answering the superclass's IDispatch implementation + * instead of this one. + */ + GUID guid = new GUID (); + COM.MoveMemory (guid, args[0], GUID.sizeof); + if (COM.IsEqualGUID (guid, COM.IIDIDispatch)) { + COM.MoveMemory (args[1], new int /*long*/[] {iDispatch.getAddress ()}, OS.PTR_SIZEOF); + AddRef (); + return COM.S_OK; + } + return QueryInterface (args[0], args[1]); + } + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + public int /*long*/ method3 (int /*long*/[] args) {return GetTypeInfoCount (args[0]);} + public int /*long*/ method4 (int /*long*/[] args) {return GetTypeInfo ((int)/*64*/args[0], (int)/*64*/args[1], args[2]);} + public int /*long*/ method5 (int /*long*/[] args) {return GetIDsOfNames ((int)/*64*/args[0], args[1], (int)/*64*/args[2], (int)/*64*/args[3], args[4]);} + public int /*long*/ method6 (int /*long*/[] args) {return Invoke ((int)/*64*/args[0], (int)/*64*/args[1], (int)/*64*/args[2], (int)/*64*/args[3], args[4], args[5], args[6], args[7]);} + }; } protected void disposeCOMInterfaces() { @@ -118,6 +142,10 @@ protected void disposeCOMInterfaces() { iOleCommandTarget.dispose(); iOleCommandTarget = null; } + if (iDispatch != null) { + iDispatch.dispose (); + iDispatch = null; + } } protected int AddRef() { @@ -175,8 +203,9 @@ int GetDropTarget(int /*long*/ pDropTarget, int /*long*/ ppDropTarget) { } int GetExternal(int /*long*/ ppDispatch) { - OS.MoveMemory(ppDispatch, new int /*long*/ [] {0}, OS.PTR_SIZEOF); - return COM.S_FALSE; + OS.MoveMemory (ppDispatch, new int /*long*/[] {iDispatch.getAddress()}, C.PTR_SIZEOF); + AddRef (); + return COM.S_OK; } int GetHostInfo(int /*long*/ pInfo) { @@ -548,4 +577,222 @@ int Exec(int /*long*/ pguidCmdGroup, int nCmdID, int nCmdExecOpt, int /*long*/ p return COM.E_NOTSUPPORTED; } +/* IDispatch */ + +int GetTypeInfoCount (int /*long*/ pctinfo) { + C.memmove (pctinfo, new int[] {0}, 4); + return COM.S_OK; +} + +int GetTypeInfo (int iTInfo, int lcid, int /*long*/ ppTInfo) { + return COM.S_OK; +} + +int GetIDsOfNames (int riid, int /*long*/ rgszNames, int cNames, int lcid, int /*long*/ rgDispId) { + int /*long*/[] ptr = new int /*long*/[1]; + OS.MoveMemory (ptr, rgszNames, C.PTR_SIZEOF); + int length = OS.wcslen (ptr[0]); + char[] buffer = new char[length]; + OS.MoveMemory (buffer, ptr[0], length * 2); + String functionName = String.valueOf (buffer); + int result = COM.S_OK; + int[] ids = new int[cNames]; /* DISPIDs */ + if (functionName.equals ("callJava")) { //$NON-NLS-1$ + for (int i = 0; i < cNames; i++) { + ids[i] = i + 1; + } + } else { + result = COM.DISP_E_UNKNOWNNAME; + for (int i = 0; i < cNames; i++) { + ids[i] = COM.DISPID_UNKNOWN; + } + } + OS.MoveMemory (rgDispId, ids, cNames * 4); + return result; +} + +int Invoke (int dispIdMember, int /*long*/ riid, int lcid, int dwFlags, int /*long*/ pDispParams, int /*long*/ pVarResult, int /*long*/ pExcepInfo, int /*long*/ pArgErr) { + DISPPARAMS dispParams = new DISPPARAMS (); + COM.MoveMemory (dispParams, pDispParams, DISPPARAMS.sizeof); + if (dispParams.cArgs != 2) { + if (pVarResult != 0) { + COM.MoveMemory (pVarResult, new int /*long*/[] {0}, C.PTR_SIZEOF); + } + return COM.S_OK; + } + + int /*long*/ ptr = dispParams.rgvarg + Variant.sizeof; + Variant variant = Variant.win32_new (ptr); + int index = variant.getInt (); + variant.dispose (); + if (index <= 0) { + if (pVarResult != 0) { + COM.MoveMemory (pVarResult, new int /*long*/[] {0}, C.PTR_SIZEOF); + } + return COM.S_OK; + } + + variant = Variant.win32_new (dispParams.rgvarg); + Object temp = (Object[])convertToJava (variant); + variant.dispose (); + Object returnValue = null; + if (temp instanceof Object[]) { + Object[] args = (Object[])temp; + IE ie = (IE)((Browser)getParent ().getParent ()).webBrowser; + Object key = new Integer (index); + BrowserFunction function = (BrowserFunction)ie.functions.get (key); + if (function != null) { + try { + returnValue = function.function (args); + } catch (Exception e) { + returnValue = IE.ERROR_ID + ':' + e.getLocalizedMessage (); + } + } + } + + if (pVarResult != 0) { + if (returnValue == null) { + COM.MoveMemory (pVarResult, new int /*long*/[] {0}, C.PTR_SIZEOF); + } else { + variant = convertToJS (returnValue); + Variant.win32_copy (pVarResult, variant); + variant.dispose (); + } + } + return COM.S_OK; +} + +Object convertToJava (Variant variant) { + switch (variant.getType ()) { + case OLE.VT_NULL: return null; + case OLE.VT_BSTR: return variant.getString (); + case OLE.VT_BOOL: return new Boolean (variant.getBoolean ()); + case OLE.VT_I2: + case OLE.VT_I4: + case OLE.VT_I8: + case OLE.VT_R4: + case OLE.VT_R8: + return new Double (variant.getDouble ()); + case OLE.VT_DISPATCH: { + Object[] args = null; + OleAutomation auto = variant.getAutomation (); + TYPEATTR typeattr = auto.getTypeInfoAttributes (); + if (typeattr != null) { + GUID guid = new GUID (); + guid.Data1 = typeattr.guid_Data1; + guid.Data2 = typeattr.guid_Data2; + guid.Data3 = typeattr.guid_Data3; + guid.Data4 = typeattr.guid_Data4; + if (COM.IsEqualGUID (guid, COM.IIDIJScriptTypeInfo)) { + int[] rgdispid = auto.getIDsOfNames (new String[] {"length"}); //$NON-NLS-1$ + if (rgdispid != null) { + Variant varLength = auto.getProperty (rgdispid[0]); + int length = varLength.getInt (); + varLength.dispose (); + args = new Object[length]; + for (int i = 0; i < length; i++) { + rgdispid = auto.getIDsOfNames (new String[] {String.valueOf (i)}); + if (rgdispid != null) { + Variant current = auto.getProperty (rgdispid[0]); + args[i] = convertToJava (current); + current.dispose (); + } + } + } + } + } + auto.dispose (); + return args; + } + } + return null; +} + +Variant convertToJS (Object value) { + if (value instanceof String) { + return new Variant ((String)value); + } + if (value instanceof Boolean) { + return new Variant (((Boolean)value).booleanValue ()); + } + if (value instanceof Number) { + return new Variant (((Number)value).doubleValue ()); + } + if (value instanceof Object[]) { + Object[] arrayValue = (Object[])value; + int length = arrayValue.length; + if (length > 0) { + /* get IHTMLDocument2 */ + IE browser = (IE)((Browser)getParent ().getParent ()).webBrowser; + OleAutomation auto = browser.auto; + int[] rgdispid = auto.getIDsOfNames (new String[] {"Document"}); //$NON-NLS-1$ + if (rgdispid == null) return new Variant (); + Variant pVarResult = auto.getProperty (rgdispid[0]); + if (pVarResult == null) return new Variant (); + if (pVarResult.getType () == COM.VT_EMPTY) { + pVarResult.dispose (); + return new Variant (); + } + OleAutomation document = pVarResult.getAutomation (); + pVarResult.dispose (); + + /* get IHTMLWindow2 */ + rgdispid = document.getIDsOfNames (new String[] {"parentWindow"}); //$NON-NLS-1$ + if (rgdispid == null) { + document.dispose (); + return new Variant (); + } + pVarResult = document.getProperty (rgdispid[0]); + if (pVarResult == null || pVarResult.getType () == COM.VT_EMPTY) { + if (pVarResult != null) pVarResult.dispose (); + document.dispose (); + return new Variant (); + } + OleAutomation ihtmlWindow2 = pVarResult.getAutomation (); + pVarResult.dispose (); + document.dispose (); + + /* create a new JS array to be returned */ + rgdispid = ihtmlWindow2.getIDsOfNames (new String[] {"Array"}); //$NON-NLS-1$ + if (rgdispid == null) { + ihtmlWindow2.dispose (); + return new Variant (); + } + Variant arrayType = ihtmlWindow2.getProperty (rgdispid[0]); + ihtmlWindow2.dispose (); + IDispatch arrayTypeDispatch = arrayType.getDispatch (); + arrayType.dispose (); + + int /*long*/[] result = new int /*long*/[1]; + int rc = arrayTypeDispatch.QueryInterface (COM.IIDIDispatchEx, result); + if (rc != COM.S_OK) return new Variant (); + IDispatchEx arrayTypeDispatchEx = new IDispatchEx (result[0]); + result[0] = 0; + int /*long*/ resultPtr = OS.GlobalAlloc (OS.GMEM_FIXED | OS.GMEM_ZEROINIT, VARIANT.sizeof); + DISPPARAMS params = new DISPPARAMS (); + rc = arrayTypeDispatchEx.InvokeEx (COM.DISPID_VALUE, COM.LOCALE_USER_DEFAULT, COM.DISPATCH_CONSTRUCT, params, resultPtr, null, 0); + if (rc != COM.S_OK) { + OS.GlobalFree (resultPtr); + return new Variant (); + } + Variant array = Variant.win32_new (resultPtr); + OS.GlobalFree (resultPtr); + + /* populate the array */ + auto = array.getAutomation (); + int[] rgdispids = auto.getIDsOfNames (new String[] {"push"}); //$NON-NLS-1$ + if (rgdispids != null) { + for (int i = 0; i < length; i++) { + Object currentObject = arrayValue[i]; + Variant variant = convertToJS (currentObject); + auto.invoke (rgdispids[0], new Variant[] {variant}); + variant.dispose (); + } + } + return array; + } + } + return new Variant (); +} + } diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp index 67de0a8ff1..c851a95c79 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom.cpp @@ -124,6 +124,31 @@ JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ)(JNIEnv *env, jclass that, ji } #endif +#if (!defined(NO__1VtblCall__IID) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJD) && defined(JNI64)) +#ifndef JNI64 +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IID)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IID)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2) +#else +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJD)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJD)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jdouble arg2) +#endif +{ + jint rc = 0; +#ifndef JNI64 + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IID_FUNC); +#else + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJD_FUNC); +#endif + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jdouble))(*(jintLong **)arg1)[arg0])(arg1, arg2); +#ifndef JNI64 + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IID_FUNC); +#else + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJD_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO__1VtblCall__IIF) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJF) && defined(JNI64)) #ifndef JNI64 extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIF)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jfloat arg2); @@ -1505,6 +1530,38 @@ fail: } #endif +#if (!defined(NO__1VtblCall__III_3C_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3C_3I) && defined(JNI64)) +#ifndef JNI64 +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4) +#else +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJI_3C_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jcharArray arg3, jintArray arg4) +#endif +{ + jchar *lparg3=NULL; + jint *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__III_3C_3I_FUNC); +#else + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJI_3C_3I_FUNC); +#endif + if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail; + if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jchar *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); +fail: + if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0); + if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0); +#ifndef JNI64 + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__III_3C_3I_FUNC); +#else + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJI_3C_3I_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO__1VtblCall__III_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJI_3I) && defined(JNI64)) #ifndef JNI64 extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__III_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3); @@ -2923,6 +2980,38 @@ fail: } #endif +#if (!defined(NO__1VtblCall__IIJ_3C_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3C_3J) && defined(JNI64)) +#ifndef JNI64 +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4) +#else +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJJ_3C_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jcharArray arg3, jlongArray arg4) +#endif +{ + jchar *lparg3=NULL; + jlong *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IIJ_3C_3J_FUNC); +#else + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJJ_3C_3J_FUNC); +#endif + if (arg3) if ((lparg3 = env->GetCharArrayElements(arg3, NULL)) == NULL) goto fail; + if (arg4) if ((lparg4 = env->GetLongArrayElements(arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jchar *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); +fail: + if (arg4 && lparg4) env->ReleaseLongArrayElements(arg4, lparg4, 0); + if (arg3 && lparg3) env->ReleaseCharArrayElements(arg3, lparg3, 0); +#ifndef JNI64 + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IIJ_3C_3J_FUNC); +#else + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJJ_3C_3J_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO__1VtblCall__IIJ_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJJ_3I) && defined(JNI64)) #ifndef JNI64 extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IIJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jintArray arg3); @@ -4778,6 +4867,76 @@ fail: } #endif +#if (!defined(NO__1VtblCall__II_3SI_3I_3I) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3SI_3I_3I) && defined(JNI64)) +#ifndef JNI64 +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5) +#else +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SI_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jint arg3, jintArray arg4, jintArray arg5) +#endif +{ + jshort *lparg2=NULL; + jint *lparg4=NULL; + jint *lparg5=NULL; + jint rc = 0; +#ifndef JNI64 + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3SI_3I_3I_FUNC); +#else + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3SI_3I_3I_FUNC); +#endif + if (arg2) if ((lparg2 = env->GetShortArrayElements(arg2, NULL)) == NULL) goto fail; + if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail; + if (arg5) if ((lparg5 = env->GetIntArrayElements(arg5, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort *, jint, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5); +fail: + if (arg5 && lparg5) env->ReleaseIntArrayElements(arg5, lparg5, 0); + if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0); + if (arg2 && lparg2) env->ReleaseShortArrayElements(arg2, lparg2, 0); +#ifndef JNI64 + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3SI_3I_3I_FUNC); +#else + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3SI_3I_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO__1VtblCall__II_3SJ_3I_3J) && !defined(JNI64)) || (!defined(NO__1VtblCall__IJ_3SJ_3I_3J) && defined(JNI64)) +#ifndef JNI64 +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__II_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5) +#else +extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5); +JNIEXPORT jint JNICALL XPCOM_NATIVE(_1VtblCall__IJ_3SJ_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jshortArray arg2, jlong arg3, jintArray arg4, jlongArray arg5) +#endif +{ + jshort *lparg2=NULL; + jint *lparg4=NULL; + jlong *lparg5=NULL; + jint rc = 0; +#ifndef JNI64 + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__II_3SJ_3I_3J_FUNC); +#else + XPCOM_NATIVE_ENTER(env, that, _1VtblCall__IJ_3SJ_3I_3J_FUNC); +#endif + if (arg2) if ((lparg2 = env->GetShortArrayElements(arg2, NULL)) == NULL) goto fail; + if (arg4) if ((lparg4 = env->GetIntArrayElements(arg4, NULL)) == NULL) goto fail; + if (arg5) if ((lparg5 = env->GetLongArrayElements(arg5, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jshort *, jlong, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, lparg4, lparg5); +fail: + if (arg5 && lparg5) env->ReleaseLongArrayElements(arg5, lparg5, 0); + if (arg4 && lparg4) env->ReleaseIntArrayElements(arg4, lparg4, 0); + if (arg2 && lparg2) env->ReleaseShortArrayElements(arg2, lparg2, 0); +#ifndef JNI64 + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__II_3SJ_3I_3J_FUNC); +#else + XPCOM_NATIVE_EXIT(env, that, _1VtblCall__IJ_3SJ_3I_3J_FUNC); +#endif + return rc; +} +#endif + #ifndef NO__1XPCOMGlueShutdown extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueShutdown)(JNIEnv *env, jclass that); JNIEXPORT jint JNICALL XPCOM_NATIVE(_1XPCOMGlueShutdown) diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp index 3ddd6961bb..73ce571b4c 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.cpp @@ -14,8 +14,8 @@ #ifdef NATIVE_STATS -int XPCOM_nativeFunctionCount = 170; -int XPCOM_nativeFunctionCallCount[170]; +int XPCOM_nativeFunctionCount = 175; +int XPCOM_nativeFunctionCallCount[175]; char * XPCOM_nativeFunctionNames[] = { "_1Call", "_1NS_1GetComponentManager", @@ -27,6 +27,11 @@ char * XPCOM_nativeFunctionNames[] = { #else "_1VtblCall__IJ", #endif +#ifndef JNI64 + "_1VtblCall__IID", +#else + "_1VtblCall__IJD", +#endif #ifndef JNI64 "_1VtblCall__IIF", #else @@ -247,6 +252,11 @@ char * XPCOM_nativeFunctionNames[] = { #else "_1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I", #endif +#ifndef JNI64 + "_1VtblCall__III_3C_3I", +#else + "_1VtblCall__IJI_3C_3I", +#endif #ifndef JNI64 "_1VtblCall__III_3I", #else @@ -472,6 +482,11 @@ char * XPCOM_nativeFunctionNames[] = { #else "_1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I", #endif +#ifndef JNI64 + "_1VtblCall__IIJ_3C_3J", +#else + "_1VtblCall__IJJ_3C_3J", +#endif #ifndef JNI64 "_1VtblCall__IIJ_3I", #else @@ -751,6 +766,16 @@ char * XPCOM_nativeFunctionNames[] = { "_1VtblCall__II_3S", #else "_1VtblCall__IJ_3S", +#endif +#ifndef JNI64 + "_1VtblCall__II_3SI_3I_3I", +#else + "_1VtblCall__IJ_3SI_3I_3I", +#endif +#ifndef JNI64 + "_1VtblCall__II_3SJ_3I_3J", +#else + "_1VtblCall__IJ_3SJ_3I_3J", #endif "_1XPCOMGlueShutdown", "_1XPCOMGlueStartup", diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h index 42ba6af71e..25abbda43a 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/library/xpcom_stats.h @@ -35,6 +35,11 @@ typedef enum { #else _1VtblCall__IJ_FUNC, #endif +#ifndef JNI64 + _1VtblCall__IID_FUNC, +#else + _1VtblCall__IJD_FUNC, +#endif #ifndef JNI64 _1VtblCall__IIF_FUNC, #else @@ -255,6 +260,11 @@ typedef enum { #else _1VtblCall__IJI_3C_3C_3I_3I_3C_3I_3I_FUNC, #endif +#ifndef JNI64 + _1VtblCall__III_3C_3I_FUNC, +#else + _1VtblCall__IJI_3C_3I_FUNC, +#endif #ifndef JNI64 _1VtblCall__III_3I_FUNC, #else @@ -480,6 +490,11 @@ typedef enum { #else _1VtblCall__IJJ_3C_3C_3J_3J_3C_3I_3I_FUNC, #endif +#ifndef JNI64 + _1VtblCall__IIJ_3C_3J_FUNC, +#else + _1VtblCall__IJJ_3C_3J_FUNC, +#endif #ifndef JNI64 _1VtblCall__IIJ_3I_FUNC, #else @@ -759,6 +774,16 @@ typedef enum { _1VtblCall__II_3S_FUNC, #else _1VtblCall__IJ_3S_FUNC, +#endif +#ifndef JNI64 + _1VtblCall__II_3SI_3I_3I_FUNC, +#else + _1VtblCall__IJ_3SI_3I_3I_FUNC, +#endif +#ifndef JNI64 + _1VtblCall__II_3SJ_3I_3J_FUNC, +#else + _1VtblCall__IJ_3SJ_3I_3J_FUNC, #endif _1XPCOMGlueShutdown_FUNC, _1XPCOMGlueStartup_FUNC, diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java index e609b5aa4b..db72e34132 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/AppFileLocProvider.java @@ -20,7 +20,7 @@ class AppFileLocProvider { XPCOMObject directoryServiceProvider; XPCOMObject directoryServiceProvider2; int refCount = 0; - String mozillaPath, profilePath; + String mozillaPath, profilePath, componentsPath; String[] pluginDirs; boolean isXULRunner; @@ -118,6 +118,10 @@ int Release () { return refCount; } +void setComponentsPath (String path) { + componentsPath = path; +} + void setProfilePath (String path) { profilePath = path; if (!Compatibility.fileExists (path, "")) { //$NON-NLS-1$ @@ -270,7 +274,7 @@ int getFile(int /*long*/ prop, int /*long*/ persistent, int /*long*/ _retval) { } else if (propertyName.equals (XPCOM.NS_OS_CURRENT_PROCESS_DIR)) { propertyValue = mozillaPath; } else if (propertyName.equals (XPCOM.NS_XPCOM_COMPONENT_DIR)) { - propertyValue = mozillaPath + COMPONENTS_DIR; + propertyValue = componentsPath != null ? componentsPath : mozillaPath + COMPONENTS_DIR; } else if (propertyName.equals (XPCOM.NS_XPCOM_CURRENT_PROCESS_DIR)) { propertyValue = mozillaPath; } else if (propertyName.equals (XPCOM.NS_APP_PREF_DEFAULTS_50_DIR)) { diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java new file mode 100644 index 0000000000..59ea114fd9 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/External.java @@ -0,0 +1,416 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.browser; + +import org.eclipse.swt.internal.*; +import org.eclipse.swt.internal.mozilla.*; +import org.eclipse.swt.internal.win32.OS; + +/** + */ +class External { + public static final String EXTERNAL_IID_STR = + "ded01d20-ba6f-11dd-ad8b-0800200c9a66"; //$NON-NLS-1$ + + public static final nsID EXTERNAL_IID = + new nsID(EXTERNAL_IID_STR); + + XPCOMObject supports; + XPCOMObject external; + XPCOMObject classInfo; + XPCOMObject securityCheckedComponent; + int refCount = 0; + +External () { + createCOMInterfaces (); +} + +int AddRef () { + refCount++; + return refCount; +} + +void createCOMInterfaces () { + /* Create each of the interfaces that this object implements */ + supports = new XPCOMObject (new int[] {2, 0, 0}) { + public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);} + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + }; + + classInfo = new XPCOMObject (new int[] {2, 0, 0, 2, 2, 1, 1, 1, 1, 1, 1}) { + public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);} + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + public int /*long*/ method3 (int /*long*/[] args) {return getInterfaces (args[0], args[1]);} + public int /*long*/ method4 (int /*long*/[] args) {return getHelperForLanguage ((int)/*64*/args[0], args[1]);} + public int /*long*/ method5 (int /*long*/[] args) {return getContractID (args[0]);} + public int /*long*/ method6 (int /*long*/[] args) {return getClassDescription (args[0]);} + public int /*long*/ method7 (int /*long*/[] args) {return getClassID (args[0]);} + public int /*long*/ method8 (int /*long*/[] args) {return getImplementationLanguage (args[0]);} + public int /*long*/ method9 (int /*long*/[] args) {return getFlags (args[0]);} + public int /*long*/ method10 (int /*long*/[] args) {return getClassIDNoAlloc (args[0]);} + }; + + securityCheckedComponent = new XPCOMObject (new int[] {2, 0, 0, 2, 3, 3, 3}) { + public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);} + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + public int /*long*/ method3 (int /*long*/[] args) {return canCreateWrapper (args[0], args[1]);} + public int /*long*/ method4 (int /*long*/[] args) {return canCallMethod (args[0], args[1], args[2]);} + public int /*long*/ method5 (int /*long*/[] args) {return canGetProperty (args[0], args[1], args[2]);} + public int /*long*/ method6 (int /*long*/[] args) {return canSetProperty (args[0], args[1], args[2]);} + }; + + external = new XPCOMObject (new int[] {2, 0, 0, 3}) { + public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);} + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + public int /*long*/ method3 (int /*long*/[] args) {return callJava ((int)/*64*/args[0], args[1], args[2]);} + }; + +} + +void disposeCOMInterfaces () { + if (supports != null) { + supports.dispose (); + supports = null; + } + if (external != null) { + external.dispose (); + external = null; + } +} + +int /*long*/ getAddress () { + return external.getAddress (); +} + +int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) { + if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE; + nsID guid = new nsID (); + XPCOM.memmove (guid, riid, nsID.sizeof); + + if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) { + XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF); + AddRef(); + return XPCOM.NS_OK; + } + if (guid.Equals (nsIClassInfo.NS_ICLASSINFO_IID)) { + XPCOM.memmove (ppvObject, new int /*long*/[] {classInfo.getAddress ()}, C.PTR_SIZEOF); + AddRef(); + return XPCOM.NS_OK; + } + if (guid.Equals (nsISecurityCheckedComponent.NS_ISECURITYCHECKEDCOMPONENT_IID)) { + XPCOM.memmove (ppvObject, new int /*long*/[] {securityCheckedComponent.getAddress ()}, C.PTR_SIZEOF); + AddRef(); + return XPCOM.NS_OK; + } + if (guid.Equals (EXTERNAL_IID)) { + XPCOM.memmove (ppvObject, new int /*long*/[] {external.getAddress ()}, C.PTR_SIZEOF); + AddRef(); + return XPCOM.NS_OK; + } + + XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF); + return XPCOM.NS_ERROR_NO_INTERFACE; +} + +int Release () { + refCount--; + if (refCount == 0) disposeCOMInterfaces (); + return refCount; +} + +/* nsIClassInfo */ + +int getClassDescription (int /*long*/ _retValue) { + byte[] bytes = MozillaDelegate.wcsToMbcs (null, "external", true); //$NON-NLS-1$ + int /*long*/ ptr = C.malloc (bytes.length); + C.memmove (ptr, bytes, bytes.length); + C.memmove (_retValue, new int /*long*/[] {ptr}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +int getClassID (int /*long*/ _retValue) { + return XPCOM.NS_OK; +} + +int getClassIDNoAlloc (int /*long*/ _retValue) { + return XPCOM.NS_OK; +} + +int getContractID (int /*long*/ _retValue) { + return XPCOM.NS_OK; +} + +int getFlags (int /*long*/ flags) { + C.memmove (flags, new int[] {nsIClassInfo.MAIN_THREAD_ONLY}, 4); /* PRUint32 */ + return XPCOM.NS_OK; +} + +int getHelperForLanguage (int language, int /*long*/ _retValue) { + C.memmove (_retValue, new int /*long*/[] {0}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +int getImplementationLanguage (int /*long*/ _retValue) { + C.memmove (_retValue, new int[] {5}, 4); /* nsIProgrammingLanguage.JAVA */ /* PRUint */ + return XPCOM.NS_OK; +} + + +int getInterfaces (int /*long*/ count, int /*long*/ array) { + int /*long*/ arrayOfIIDs = C.malloc (nsID.sizeof * 2); + int /*long*/ arrayOfPtrs = C.malloc (C.PTR_SIZEOF * 2); + XPCOM.memmove (arrayOfIIDs, nsISecurityCheckedComponent.NS_ISECURITYCHECKEDCOMPONENT_IID, nsID.sizeof); + XPCOM.memmove (arrayOfPtrs, new int /*long*/[] {arrayOfIIDs}, C.PTR_SIZEOF); + XPCOM.memmove (arrayOfIIDs + nsID.sizeof, EXTERNAL_IID, nsID.sizeof); + XPCOM.memmove (arrayOfPtrs + C.PTR_SIZEOF, new int /*long*/[] {arrayOfIIDs + nsID.sizeof}, C.PTR_SIZEOF); + C.memmove (array, new int /*long*/[] {arrayOfPtrs}, C.PTR_SIZEOF); + C.memmove (count, new int[] {2}, 4); /* PRUint */ + return XPCOM.NS_OK; +} + +/* nsISecurityCheckedComponent */ + +int canCreateWrapper (int /*long*/ iid, int /*long*/ _retVal) { + byte[] bytes = MozillaDelegate.wcsToMbcs (null, "allAccess", true); //$NON-NLS-1$ + int /*long*/ ptr = C.malloc (bytes.length); + C.memmove (ptr, bytes, bytes.length); + C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +int canCallMethod (int /*long*/ iid, int /*long*/ methodName, int /*long*/ _retVal) { + int length = XPCOM.strlen_PRUnichar (methodName); + char[] dest = new char[length]; + XPCOM.memmove (dest, methodName, length * 2); + String string = new String (dest); + byte[] bytes; + if (string.equals("callJava")) { //$NON-NLS-1$ + bytes = MozillaDelegate.wcsToMbcs (null, "allAccess", true); //$NON-NLS-1$ + } else { + bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$ + } + int /*long*/ ptr = C.malloc (bytes.length); + C.memmove (ptr, bytes, bytes.length); + C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +int canGetProperty (int /*long*/ iid, int /*long*/ propertyName, int /*long*/ _retVal) { + byte[] bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$ + int /*long*/ ptr = C.malloc (bytes.length); + C.memmove (ptr, bytes, bytes.length); + C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +int canSetProperty (int /*long*/ iid, int /*long*/ propertyName, int /*long*/ _retVal) { + byte[] bytes = MozillaDelegate.wcsToMbcs (null, "noAccess", true); //$NON-NLS-1$ + int /*long*/ ptr = C.malloc (bytes.length); + C.memmove (ptr, bytes, bytes.length); + C.memmove (_retVal, new int /*long*/[] {ptr}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +/* external */ + +Object convertToJava (nsIVariant variant, short type) { + switch (type) { + case nsIDataType.VTYPE_EMPTY: + return null; + case nsIDataType.VTYPE_EMPTY_ARRAY: + return new Object[0]; + case nsIDataType.VTYPE_BOOL: + int[] boolResult = new int[1]; /*PRInt32*/ + int rc = variant.GetAsBool (boolResult); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return new Boolean (boolResult[0] != 0); + case nsIDataType.VTYPE_INT32: + int[] intResult = new int[1]; /*PRInt32*/ + rc = variant.GetAsInt32 (intResult); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return new Double (intResult[0]); + case nsIDataType.VTYPE_DOUBLE: + int /*long*/ doubleReturn = C.malloc (8); + rc = variant.GetAsDouble (doubleReturn); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + double[] doubleResult = new double[1]; + C.memmove (doubleResult, doubleReturn, 8); + C.free (doubleReturn); + return new Double (doubleResult[0]); + case nsIDataType.VTYPE_WSTRING_SIZE_IS: + int[] size = new int[1]; /* PRInt32 */ + int /*long*/[] wString = new int /*long*/[1]; + rc = variant.GetAsWStringWithSize (size, wString); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + char[] chars = new char[size[0]]; + C.memmove (chars, wString[0], size[0] * 2); + return new String (chars); + case nsIDataType.VTYPE_ARRAY: + Object[] arrayReturn = new Object[0]; + int /*long*/ iid = C.malloc (nsID.sizeof); + int[] count = new int[1]; /* PRUint32 */ + int /*long*/[] ptr = new int /*long*/[1]; + ptr[0] = C.malloc (C.PTR_SIZEOF); + short[] currentType = new short[1]; + rc = variant.GetAsArray (currentType, iid, count, ptr); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + if (ptr[0] == 0) Mozilla.error (XPCOM.NS_ERROR_NULL_POINTER); + nsID id = new nsID (); + XPCOM.memmove (id, iid, nsID.sizeof); + C.free (iid); + + if (id.Equals (nsIVariant.NS_IVARIANT_IID)) { + arrayReturn = new Object[count[0]]; + int /*long*/[] result = new int /*long*/[1]; + for (int i = 0; i < count[0]; i++) { + int /*long*/[] arrayPtr = new int /*long*/[1]; + OS.memmove (arrayPtr, ptr[0] + i * C.PTR_SIZEOF, C.PTR_SIZEOF); + nsISupports supports = new nsISupports (arrayPtr[0]); + rc = supports.QueryInterface (nsIVariant.NS_IVARIANT_IID, result); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + if (ptr[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE); + + nsIVariant currentVariant = new nsIVariant (result[0]); + result[0] = 0; + currentType[0] = 0; + rc = currentVariant.GetDataType (currentType); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + arrayReturn[i] = convertToJava (currentVariant, currentType[0]); + currentVariant.Release (); + } + } else { + switch (currentType[0]) { + case nsIDataType.VTYPE_DOUBLE: + arrayReturn = new Object[count[0]]; + for (int i = 0; i < count[0]; i++) { + double[] doubleValue = new double[1]; + C.memmove (doubleValue, ptr[0] + i * 8, 8); + arrayReturn[i] = new Double (doubleValue[0]); + } + break; + case nsIDataType.VTYPE_INT32: + arrayReturn = new Object[count[0]]; + for (int i = 0; i < count[0]; i++) { + int[] intValue = new int[1]; /* PRInt32 */ + C.memmove (intValue, ptr[0] + i * 4, 4); + arrayReturn[i] = new Double (intValue[0]); + } + break; + case nsIDataType.VTYPE_WCHAR_STR: + arrayReturn = new Object[count[0]]; + for (int i = 0; i < count[0]; i++) { + int /*long*/ currentPtr = ptr[0] + i * C.PTR_SIZEOF; + int /*long*/[] stringPtr = new int /*long*/[1]; + C.memmove (stringPtr, currentPtr, C.PTR_SIZEOF); + int length = XPCOM.strlen_PRUnichar (stringPtr[0]); + char[] dest = new char[length]; + XPCOM.memmove (dest, stringPtr[0], length * 2); + arrayReturn[i] = new String (dest); + } + break; + } + } + C.free (ptr[0]); + return arrayReturn; + } + return null; +} + +nsIVariant convertToJS (Object value, nsIComponentManager componentManager) { + int /*long*/[] result = new int /*long*/[1]; + byte[] aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_VARIANT_CONTRACTID, true); + int rc = componentManager.CreateInstanceByContractID (aContractID, 0, nsIWritableVariant.NS_IWRITABLEVARIANT_IID, result); + nsIWritableVariant variant = new nsIWritableVariant (result[0]); + result[0] = 0; + + if (value instanceof String) { + String stringValue = (String)value; + int length = stringValue.length (); + char[] chars = new char[length]; + stringValue.getChars (0, length, chars, 0); + rc = variant.SetAsWStringWithSize (length, chars); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return variant; + } + if (value instanceof Boolean) { + Boolean booleanValue = (Boolean)value; + rc = variant.SetAsBool (booleanValue.booleanValue () ? 1 : 0); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return variant; + } + if (value instanceof Number) { + Number numberValue = (Number)value; + rc = variant.SetAsDouble (numberValue.doubleValue ()); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return variant; + } + if (value instanceof Object[]) { + Object[] arrayValue = (Object[])value; + int length = arrayValue.length; + if (length > 0) { + int /*long*/ arrayPtr = C.malloc (C.PTR_SIZEOF * length); + for (int i = 0; i < length; i++) { + Object currentObject = arrayValue[i]; + nsIVariant currentVariant = convertToJS (currentObject, componentManager); + OS.memmove (arrayPtr + C.PTR_SIZEOF * i, new int /*long*/[] {currentVariant.getAddress ()}, C.PTR_SIZEOF); + } + int /*long*/ idPtr = C.malloc (nsID.sizeof); + XPCOM.memmove (idPtr, nsIVariant.NS_IVARIANT_IID, nsID.sizeof); + rc = variant.SetAsArray (nsIDataType.VTYPE_INTERFACE_IS, idPtr, length, arrayPtr); + C.free (idPtr); + C.free (arrayPtr); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return variant; + } + } + rc = variant.SetAsVoid(); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + return variant; +} + +int callJava (int functionId, int /*long*/ args, int /*long*/ returnPtr) { + Object key = new Integer (functionId); + BrowserFunction function = (BrowserFunction)Mozilla.AllFunctions.get (key); + Object returnValue = null; + + if (function != null) { + short[] type = new short[1]; /* PRUint16 */ + nsIVariant variant = new nsIVariant (args); + int rc = variant.GetDataType (type); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + Object temp = (Object[])convertToJava (variant, type[0]); + if (temp instanceof Object[]) { + Object[] arguments = (Object[])temp; + try { + returnValue = function.function (arguments); + } catch (Exception e) { + returnValue = Mozilla.ERROR_ID + ':' + e.getLocalizedMessage(); + } + } + } + + int /*long*/[] result = new int /*long*/[1]; + int rc = XPCOM.NS_GetComponentManager (result); + if (rc != XPCOM.NS_OK) Mozilla.error (rc); + if (result[0] == 0) Mozilla.error (XPCOM.NS_NOINTERFACE); + nsIComponentManager componentManager = new nsIComponentManager (result[0]); + result[0] = 0; + nsIVariant variant = convertToJS (returnValue, componentManager); + componentManager.Release (); + C.memmove (returnPtr, new int /*long*/[] {variant.getAddress ()}, C.PTR_SIZEOF); + + return XPCOM.NS_OK; +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java new file mode 100644 index 0000000000..84462ec2f0 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/ExternalFactory.java @@ -0,0 +1,100 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.browser; + +import org.eclipse.swt.internal.*; +import org.eclipse.swt.internal.mozilla.*; + +class ExternalFactory { + XPCOMObject supports; + XPCOMObject factory; + int refCount = 0; + +ExternalFactory () { + createCOMInterfaces (); +} + +int AddRef () { + refCount++; + return refCount; +} + +void createCOMInterfaces () { + /* Create each of the interfaces that this object implements */ + supports = new XPCOMObject (new int[] {2, 0, 0}) { + public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);} + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + }; + + factory = new XPCOMObject (new int[] {2, 0, 0, 3, 1}) { + public int /*long*/ method0 (int /*long*/[] args) {return QueryInterface (args[0], args[1]);} + public int /*long*/ method1 (int /*long*/[] args) {return AddRef ();} + public int /*long*/ method2 (int /*long*/[] args) {return Release ();} + public int /*long*/ method3 (int /*long*/[] args) {return CreateInstance (args[0], args[1], args[2]);} + public int /*long*/ method4 (int /*long*/[] args) {return LockFactory ((int)/*64*/args[0]);} + }; +} + +void disposeCOMInterfaces () { + if (supports != null) { + supports.dispose (); + supports = null; + } + if (factory != null) { + factory.dispose (); + factory = null; + } +} + +int /*long*/ getAddress () { + return factory.getAddress (); +} + +int QueryInterface (int /*long*/ riid, int /*long*/ ppvObject) { + if (riid == 0 || ppvObject == 0) return XPCOM.NS_ERROR_NO_INTERFACE; + nsID guid = new nsID (); + XPCOM.memmove (guid, riid, nsID.sizeof); + + if (guid.Equals (nsISupports.NS_ISUPPORTS_IID)) { + XPCOM.memmove (ppvObject, new int /*long*/[] {supports.getAddress ()}, C.PTR_SIZEOF); + AddRef (); + return XPCOM.NS_OK; + } + if (guid.Equals (nsIFactory.NS_IFACTORY_IID)) { + XPCOM.memmove (ppvObject, new int /*long*/[] {factory.getAddress ()}, C.PTR_SIZEOF); + AddRef (); + return XPCOM.NS_OK; + } + + XPCOM.memmove (ppvObject, new int /*long*/[] {0}, C.PTR_SIZEOF); + return XPCOM.NS_ERROR_NO_INTERFACE; +} + +int Release () { + refCount--; + if (refCount == 0) disposeCOMInterfaces (); + return refCount; +} + +/* nsIFactory */ + +int CreateInstance (int /*long*/ aOuter, int /*long*/ iid, int /*long*/ result) { + External external = new External (); + external.AddRef (); + XPCOM.memmove (result, new int /*long*/[] {external.getAddress ()}, C.PTR_SIZEOF); + return XPCOM.NS_OK; +} + +int LockFactory (int lock) { + return XPCOM.NS_OK; +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java index 1dd6ef2d97..fab6a1d433 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/browser/Mozilla.java @@ -13,6 +13,7 @@ package org.eclipse.swt.browser; import java.io.*; import java.lang.reflect.*; import java.util.*; + import org.eclipse.swt.*; import org.eclipse.swt.widgets.*; import org.eclipse.swt.graphics.*; @@ -52,7 +53,8 @@ class Mozilla extends WebBrowser { static nsIAppShell AppShell; static AppFileLocProvider LocationProvider; static WindowCreator2 WindowCreator; - static int BrowserCount; + static int BrowserCount, NextJSFunctionIndex = 1; + static Hashtable AllFunctions = new Hashtable (); static boolean Initialized, IsPre_1_8, PerformedVersionCheck, XPCOMWasGlued, XPCOMInitWasGlued; /* XULRunner detect constants */ @@ -374,6 +376,39 @@ public void create (Composite parent, int style) { } if (!Initialized) { + LocationProvider = new AppFileLocProvider (mozillaPath); + LocationProvider.AddRef (); + + /* extract external.xpt to temp */ + String tempPath = System.getProperty ("java.io.tmpdir"); //$NON-NLS-1$ + File componentsDir = new File (tempPath, "eclipse/mozillaComponents"); //$NON-NLS-1$ + LocationProvider.setComponentsPath (componentsDir.getAbsolutePath ()); + java.io.InputStream is = Library.class.getResourceAsStream ("/external.xpt"); //$NON-NLS-1$ + if (is != null) { + if (!componentsDir.exists ()) { + componentsDir.mkdir (); + } + int read; + byte [] buffer = new byte [4096]; + File file = new File (componentsDir, "external.xpt"); //$NON-NLS-1$ + try { + FileOutputStream os = new FileOutputStream (file); + while ((read = is.read (buffer)) != -1) { + os.write(buffer, 0, read); + } + os.close (); + is.close (); + if (!Platform.PLATFORM.equals ("win32")) { //$NON-NLS-1$ + try { + Runtime.getRuntime ().exec ( + new String [] {"chmod", "755", file.getAbsolutePath ()}).waitFor (); //$NON-NLS-1$ //$NON-NLS-2$ + } catch (Throwable e) {} + } + } catch (FileNotFoundException e) { + } catch (IOException e) { + } + } + int /*long*/[] retVal = new int /*long*/[1]; nsEmbedString pathString = new nsEmbedString (mozillaPath); int rc = XPCOM.NS_NewLocalFile (pathString.getAddress (), 1, retVal); @@ -387,9 +422,6 @@ public void create (Composite parent, int style) { error (XPCOM.NS_ERROR_NULL_POINTER); } - LocationProvider = new AppFileLocProvider (mozillaPath); - LocationProvider.AddRef (); - nsIFile localFile = new nsILocalFile (retVal[0]); rc = XPCOM.NS_InitXPCOM2 (0, localFile.getAddress(), LocationProvider.getAddress ()); localFile.Release (); @@ -603,7 +635,6 @@ public void create (Composite parent, int style) { */ aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PREFSERVICE_CONTRACTID, true); rc = serviceManager.GetServiceByContractID (aContractID, nsIPrefService.NS_IPREFSERVICE_IID, result); - serviceManager.Release (); if (rc != XPCOM.NS_OK) { browser.dispose (); error (rc); @@ -887,6 +918,8 @@ public void create (Composite parent, int style) { nsIComponentRegistrar componentRegistrar = new nsIComponentRegistrar (result[0]); result[0] = 0; + componentRegistrar.AutoRegister (0); /* detect the External component */ + aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.NS_PROMPTSERVICE_CONTRACTID, true); byte[] aClassName = MozillaDelegate.wcsToMbcs (null, "Prompt Service", true); //$NON-NLS-1$ rc = componentRegistrar.RegisterFactory (XPCOM.NS_PROMPTSERVICE_CID, aClassName, aContractID, factory.getAddress ()); @@ -895,7 +928,31 @@ public void create (Composite parent, int style) { error (rc); } factory.Release (); - + + ExternalFactory externalFactory = new ExternalFactory (); + externalFactory.AddRef (); + aContractID = MozillaDelegate.wcsToMbcs (null, XPCOM.EXTERNAL_CONTRACTID, true); + aClassName = MozillaDelegate.wcsToMbcs (null, "External", true); //$NON-NLS-1$ + rc = componentRegistrar.RegisterFactory (XPCOM.EXTERNAL_CID, aClassName, aContractID, externalFactory.getAddress ()); + if (rc != XPCOM.NS_OK) { + browser.dispose (); + error (rc); + } + externalFactory.Release (); + + rc = serviceManager.GetService (XPCOM.NS_CATEGORYMANAGER_CID, nsICategoryManager.NS_ICATEGORYMANAGER_IID, result); + if (rc != XPCOM.NS_OK) error (rc); + if (result[0] == 0) error (XPCOM.NS_NOINTERFACE); + serviceManager.Release (); + + nsICategoryManager categoryManager = new nsICategoryManager (result[0]); + result[0] = 0; + byte[] category = MozillaDelegate.wcsToMbcs (null, "JavaScript global property", true); //$NON-NLS-1$ + byte[] entry = MozillaDelegate.wcsToMbcs (null, "external", true); //$NON-NLS-1$ + rc = categoryManager.AddCategoryEntry(category, entry, aContractID, 1, 1, result); + result[0] = 0; + categoryManager.Release (); + /* * This Download factory will be used if the GRE version is < 1.8. * If the GRE version is 1.8.x then the Download factory that is registered later for @@ -1530,6 +1587,10 @@ public String getBrowserType () { return "mozilla"; //$NON-NLS-1$ } +int getNextFunctionIndex () { + return NextJSFunctionIndex++; +} + public String getText () { if (awaitingNavigate) return ""; //$NON-NLS-1$ @@ -1756,7 +1817,12 @@ void Activate () { if (rc != XPCOM.NS_OK) error (rc); webBrowserFocus.Release (); } - + +public void addFunction (BrowserFunction function) { + super.addFunction (function); + AllFunctions.put (new Integer (function.index), function); +} + void Deactivate () { int /*long*/[] result = new int /*long*/[1]; int rc = webBrowser.QueryInterface (nsIWebBrowserFocus.NS_IWEBBROWSERFOCUS_IID, result); @@ -2171,6 +2237,11 @@ int Release () { return refCount; } +public void removeFunction (BrowserFunction function) { + super.removeFunction (function); + AllFunctions.remove (new Integer (function.index)); +} + /* nsIWeakReference */ int QueryReferent (int /*long*/ riid, int /*long*/ ppvObject) { @@ -2286,6 +2357,14 @@ int OnStateChange (int /*long*/ aWebProgress, int /*long*/ aRequest, int aStateF for (int i = 0; i < statusTextListeners.length; i++) { statusTextListeners[i].changed (event); } + + /* re-install registered functions */ + Enumeration elements = functions.elements (); + while (elements.hasMoreElements ()) { + BrowserFunction function = (BrowserFunction)elements.nextElement (); + execute (function.functionString); + } + ProgressEvent event2 = new ProgressEvent (browser); event2.display = browser.getDisplay (); event2.widget = browser; diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java index 07eb7dd594..a7a51924f4 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/XPCOM.java @@ -49,6 +49,7 @@ public class XPCOM extends C { public static final String DOMEVENT_KEYPRESS = "keypress"; //$NON-NLS-1$ /* CID constants */ + public static final nsID EXTERNAL_CID = new nsID ("f2c59ad0-bd76-11dd-ad8b-0800200c9a66"); //$NON-NLS-1$ public static final nsID NS_APPSHELL_CID = new nsID("2d96b3df-c051-11d1-a827-0040959a28c9"); //$NON-NLS-1$ public static final nsID NS_CATEGORYMANAGER_CID = new nsID("16d222a6-1dd2-11b2-b693-f38b02c021b2"); //$NON-NLS-1$ public static final nsID NS_DOWNLOAD_CID = new nsID("e3fa9D0a-1dd1-11b2-bdef-8c720b597445"); //$NON-NLS-1$ @@ -59,6 +60,7 @@ public class XPCOM extends C { public static final nsID NS_LOADGROUP_CID = new nsID("e1c61582-2a84-11d3-8cce-0060b0fc14a3"); //$NON-NLS-1$ public static final nsID NS_PROMPTSERVICE_CID = new nsID("a2112d6a-0e28-421f-b46a-25c0b308cbd0"); //$NON-NLS-1$ + public static final String EXTERNAL_CONTRACTID = "@eclipse.org/external;1"; //$NON-NLS-1$ public static final String NS_CONTEXTSTACK_CONTRACTID = "@mozilla.org/js/xpc/ContextStack;1"; //$NON-NLS-1$ public static final String NS_COOKIEMANAGER_CONTRACTID = "@mozilla.org/cookiemanager;1"; //$NON-NLS-1$ public static final String NS_DIRECTORYSERVICE_CONTRACTID = "@mozilla.org/file/directory_service;1"; //$NON-NLS-1$ @@ -72,6 +74,7 @@ public class XPCOM extends C { public static final String NS_PREFSERVICE_CONTRACTID = "@mozilla.org/preferences-service;1"; //$NON-NLS-1$ public static final String NS_PROMPTSERVICE_CONTRACTID = "@mozilla.org/embedcomp/prompt-service;1"; //$NON-NLS-1$ public static final String NS_TRANSFER_CONTRACTID = "@mozilla.org/transfer;1"; //$NON-NLS-1$ + public static final String NS_VARIANT_CONTRACTID = "@mozilla.org/variant;1"; //$NON-NLS-1$ public static final String NS_WEBNAVIGATIONINFO_CONTRACTID = "@mozilla.org/webnavigation-info;1"; //$NON-NLS-1$ public static final String NS_WINDOWWATCHER_CONTRACTID = "@mozilla.org/embedcomp/window-watcher;1"; //$NON-NLS-1$ @@ -426,6 +429,15 @@ static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0) { lock.unlock(); } } +static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, double arg0); +static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, double arg0) { + lock.lock(); + try { + return _VtblCall(fnNumber, ppVtbl, arg0); + } finally { + lock.unlock(); + } +} static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, float arg0); static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, float arg0) { lock.lock(); @@ -707,6 +719,24 @@ static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] ar lock.unlock(); } } +static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, int[] arg2); +static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, char[] arg1, int[] arg2) { + lock.lock(); + try { + return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2); + } finally { + lock.unlock(); + } +} +static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, long[] arg2); +static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, long[] arg2) { + lock.lock(); + try { + return _VtblCall(fnNumber, ppVtbl, arg0, arg1, arg2); + } finally { + lock.unlock(); + } +} static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, int arg2); static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, char[] arg1, int arg2) { lock.lock(); @@ -1727,4 +1757,22 @@ static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1 lock.unlock(); } } +static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] type, int iid, int[] count, int[] ptr); +static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] type, int iid, int[] count, int[] ptr) { + lock.lock(); + try { + return _VtblCall(fnNumber, ppVtbl, type, iid, count, ptr); + } finally { + lock.unlock(); + } +} +static final native int _VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] type, long iid, int[] count, long[] ptr); +static final int VtblCall(int fnNumber, int /*long*/ ppVtbl, short[] type, long iid, int[] count, long[] ptr) { + lock.lock(); + try { + return _VtblCall(fnNumber, ppVtbl, type, iid, count, ptr); + } finally { + lock.unlock(); + } +} } diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java new file mode 100644 index 0000000000..180f72101d --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIClassInfo.java @@ -0,0 +1,91 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Communicator client code, released March 31, 1998. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by Netscape are Copyright (C) 1998-1999 + * Netscape Communications Corporation. All Rights Reserved. + * + * Contributor(s): + * + * IBM + * - Binding to permit interfacing between Mozilla and SWT + * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved. + * + * ***** END LICENSE BLOCK ***** */ +package org.eclipse.swt.internal.mozilla; + +public class nsIClassInfo extends nsISupports { + + static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 8; + + public static final String NS_ICLASSINFO_IID_STR = + "986c11d0-f340-11d4-9075-0010a4e73d9a"; + + public static final nsID NS_ICLASSINFO_IID = + new nsID(NS_ICLASSINFO_IID_STR); + + public nsIClassInfo(int /*long*/ address) { + super(address); + } + + public int GetInterfaces(int[] count, int /*long*/[] array) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), count, array); + } + + public int GetHelperForLanguage(int language, int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), language, _retval); + } + + public int GetContractID(int /*long*/[] aContractID) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), aContractID); + } + + public int GetClassDescription(int /*long*/[] aClassDescription) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), aClassDescription); + } + + public int GetClassID(int /*long*/ aClassID) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), aClassID); + } + + public int GetImplementationLanguage(int[] aImplementationLanguage) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), aImplementationLanguage); + } + + public static final int SINGLETON = 1; + + public static final int THREADSAFE = 2; + + public static final int MAIN_THREAD_ONLY = 4; + + public static final int DOM_OBJECT = 8; + + public static final int PLUGIN_OBJECT = 16; + + public static final int EAGER_CLASSINFO = 32; + + public static final int CONTENT_NODE = 64; + +// public static final int RESERVED = 2147483648; + + public int GetFlags(int[] aFlags) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), aFlags); + } + + public int GetClassIDNoAlloc(int /*long*/ aClassIDNoAlloc) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), aClassIDNoAlloc); + } +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java new file mode 100644 index 0000000000..88e6093ef5 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIDataType.java @@ -0,0 +1,73 @@ +package org.eclipse.swt.internal.mozilla; + + +public class nsIDataType extends nsISupports { + + static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 0; + + public static final String NS_IDATATYPE_IID_STR = + "4d12e540-83d7-11d5-90ed-0010a4e73d9a"; + + public static final nsID NS_IDATATYPE_IID = + new nsID(NS_IDATATYPE_IID_STR); + + public nsIDataType(int /*long*/ address) { + super(address); + } + + public static final short VTYPE_INT8 = 0; + + public static final short VTYPE_INT16 = 1; + + public static final short VTYPE_INT32 = 2; + + public static final short VTYPE_INT64 = 3; + + public static final short VTYPE_UINT8 = 4; + + public static final short VTYPE_UINT16 = 5; + + public static final short VTYPE_UINT32 = 6; + + public static final short VTYPE_UINT64 = 7; + + public static final short VTYPE_FLOAT = 8; + + public static final short VTYPE_DOUBLE = 9; + + public static final short VTYPE_BOOL = 10; + + public static final short VTYPE_CHAR = 11; + + public static final short VTYPE_WCHAR = 12; + + public static final short VTYPE_VOID = 13; + + public static final short VTYPE_ID = 14; + + public static final short VTYPE_DOMSTRING = 15; + + public static final short VTYPE_CHAR_STR = 16; + + public static final short VTYPE_WCHAR_STR = 17; + + public static final short VTYPE_INTERFACE = 18; + + public static final short VTYPE_INTERFACE_IS = 19; + + public static final short VTYPE_ARRAY = 20; + + public static final short VTYPE_STRING_SIZE_IS = 21; + + public static final short VTYPE_WSTRING_SIZE_IS = 22; + + public static final short VTYPE_UTF8STRING = 23; + + public static final short VTYPE_CSTRING = 24; + + public static final short VTYPE_ASTRING = 25; + + public static final short VTYPE_EMPTY_ARRAY = 254; + + public static final short VTYPE_EMPTY = 255; +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java new file mode 100644 index 0000000000..bc58ffae6d --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsISecurityCheckedComponent.java @@ -0,0 +1,33 @@ +package org.eclipse.swt.internal.mozilla; + + +public class nsISecurityCheckedComponent extends nsISupports { + + static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 4; + + public static final String NS_ISECURITYCHECKEDCOMPONENT_IID_STR = + "0dad9e8c-a12d-4dcb-9a6f-7d09839356e1"; + + public static final nsID NS_ISECURITYCHECKEDCOMPONENT_IID = + new nsID(NS_ISECURITYCHECKEDCOMPONENT_IID_STR); + + public nsISecurityCheckedComponent(int /*long*/ address) { + super(address); + } + + public int CanCreateWrapper(int /*long*/ iid, int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), iid, _retval); + } + + public int CanCallMethod(int /*long*/ iid, char[] methodName, int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), iid, methodName, _retval); + } + + public int CanGetProperty(int /*long*/ iid, char[] propertyName, int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), iid, propertyName, _retval); + } + + public int CanSetProperty(int /*long*/ iid, char[] propertyName, int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), iid, propertyName, _retval); + } +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java new file mode 100644 index 0000000000..2de3baf3fc --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIVariant.java @@ -0,0 +1,147 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is Mozilla Communicator client code, released March 31, 1998. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by Netscape are Copyright (C) 1998-1999 + * Netscape Communications Corporation. All Rights Reserved. + * + * Contributor(s): + * + * IBM + * - Binding to permit interfacing between Mozilla and SWT + * - Copyright (C) 2003, 2008 IBM Corp. All Rights Reserved. + * + * ***** END LICENSE BLOCK ***** */ +package org.eclipse.swt.internal.mozilla; + +public class nsIVariant extends nsISupports { + + static final int LAST_METHOD_ID = nsISupports.LAST_METHOD_ID + 26; + + public static final String NS_IVARIANT_IID_STR = + "6c9eb060-8c6a-11d5-90f3-0010a4e73d9a"; + + public static final nsID NS_IVARIANT_IID = + new nsID(NS_IVARIANT_IID_STR); + + public nsIVariant(int /*long*/ address) { + super(address); + } + + public int GetDataType(short[] aDataType) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 1, getAddress(), aDataType); + } + + public int GetAsInt8(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 2, getAddress(), _retval); + } + + public int GetAsInt16(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 3, getAddress(), _retval); + } + + public int GetAsInt32(int[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 4, getAddress(), _retval); + } + + public int GetAsInt64(long[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 5, getAddress(), _retval); + } + + public int GetAsUint8(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 6, getAddress(), _retval); + } + + public int GetAsUint16(short[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 7, getAddress(), _retval); + } + + public int GetAsUint32(int[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 8, getAddress(), _retval); + } + + public int GetAsUint64(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 9, getAddress(), _retval); + } + + public int GetAsFloat(float[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 10, getAddress(), _retval); + } + + public int GetAsDouble(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 11, getAddress(), _retval); + } + + public int GetAsBool(int[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 12, getAddress(), _retval); + } + + public int GetAsChar(byte[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 13, getAddress(), _retval); + } + + public int GetAsWChar(char[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 14, getAddress(), _retval); + } + + public int GetAsID(int /*long*/ retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 15, getAddress(), retval); + } + + public int GetAsAString(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 16, getAddress(), _retval); + } + + public int GetAsDOMString(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 17, getAddress(), _retval); + } + + public int GetAsACString(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 18, getAddress(), _retval); + } + + public int GetAsAUTF8String(int /*long*/ _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 19, getAddress(), _retval); + } + + public int GetAsString(int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 20, getAddress(), _retval); + } + + public int GetAsWString(int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 21, getAddress(), _retval); + } + + public int GetAsISupports(int /*long*/[] _retval) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 22, getAddress(), _retval); + } + + public int GetAsInterface(int /*long*/[] iid, int /*long*/[] iface) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 23, getAddress(), iid, iface); + } + + public int GetAsArray(short[] type, int /*long*/ iid, int[] count, int /*long*/[] ptr) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 24, getAddress(), type, iid, count, ptr); + } + + public int GetAsStringWithSize(int[] size, int /*long*/[] str) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 25, getAddress(), size, str); + } + + public int GetAsWStringWithSize(int[] size, int /*long*/[] str) { + return XPCOM.VtblCall(nsISupports.LAST_METHOD_ID + 26, getAddress(), size, str); + } +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java new file mode 100644 index 0000000000..30b340c4d4 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT Mozilla/common/org/eclipse/swt/internal/mozilla/nsIWritableVariant.java @@ -0,0 +1,141 @@ +package org.eclipse.swt.internal.mozilla; + + +public class nsIWritableVariant extends nsIVariant { + + static final int LAST_METHOD_ID = nsIVariant.LAST_METHOD_ID + 31; + + public static final String NS_IWRITABLEVARIANT_IID_STR = + "5586a590-8c82-11d5-90f3-0010a4e73d9a"; + + public static final nsID NS_IWRITABLEVARIANT_IID = + new nsID(NS_IWRITABLEVARIANT_IID_STR); + + public nsIWritableVariant(int /*long*/ address) { + super(address); + } + + public int GetWritable(int[] aWritable) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 1, getAddress(), aWritable); + } + + public int SetWritable(int aWritable) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 2, getAddress(), aWritable); + } + +// public int SetAsInt8(!ERROR UNKNOWN C TYPE ! aValue) { +// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 3, getAddress(), aValue); +// } +// +// public int SetAsInt16(!ERROR UNKNOWN C TYPE ! aValue) { +// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 4, getAddress(), aValue); +// } + + public int SetAsInt32(int aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 5, getAddress(), aValue); + } + + public int SetAsInt64(long aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 6, getAddress(), aValue); + } + +// public int SetAsUint8(!ERROR UNKNOWN C TYPE ! aValue) { +// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 7, getAddress(), aValue); +// } + + public int SetAsUint16(short aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 8, getAddress(), aValue); + } + + public int SetAsUint32(int aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 9, getAddress(), aValue); + } + +// public int SetAsUint64(!ERROR UNKNOWN C TYPE ! aValue) { +// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 10, getAddress(), aValue); +// } + + public int SetAsFloat(float aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 11, getAddress(), aValue); + } + + public int SetAsDouble(double aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 12, getAddress(), aValue); + } + + public int SetAsBool(int aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 13, getAddress(), aValue); + } + +// public int SetAsChar(!ERROR UNKNOWN C TYPE ! aValue) { +// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 14, getAddress(), aValue); +// } +// +// public int SetAsWChar(!ERROR UNKNOWN C TYPE ! aValue) { +// return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 15, getAddress(), aValue); +// } + + public int SetAsID(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 16, getAddress(), aValue); + } + + public int SetAsAString(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 17, getAddress(), aValue); + } + + public int SetAsDOMString(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 18, getAddress(), aValue); + } + + public int SetAsACString(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 19, getAddress(), aValue); + } + + public int SetAsAUTF8String(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 20, getAddress(), aValue); + } + + public int SetAsString(byte[] aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 21, getAddress(), aValue); + } + + public int SetAsWString(char[] aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 22, getAddress(), aValue); + } + + public int SetAsISupports(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 23, getAddress(), aValue); + } + + public int SetAsInterface(nsID iid, int /*long*/ iface) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 24, getAddress(), iid, iface); + } + + public int SetAsArray(short type, int /*long*/ iid, int count, int /*long*/ ptr) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 25, getAddress(), type, iid, count, ptr); + } + + public int SetAsStringWithSize(int size, byte[] str) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 26, getAddress(), size, str); + } + + public int SetAsWStringWithSize(int size, char[] str) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 27, getAddress(), size, str); + } + + public int SetAsVoid() { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 28, getAddress()); + } + + public int SetAsEmpty() { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 29, getAddress()); + } + + public int SetAsEmptyArray() { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 30, getAddress()); + } + + public int SetFromVariant(int /*long*/ aValue) { + return XPCOM.VtblCall(nsIVariant.LAST_METHOD_ID + 31, getAddress(), aValue); + } +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.c b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.c index 835effff43..6a673e3b41 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.c @@ -133,6 +133,22 @@ fail: } #endif +#ifndef NO_objc_1getMetaClass +JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1getMetaClass) + (JNIEnv *env, jclass that, jbyteArray arg0) +{ + jbyte *lparg0=NULL; + jint rc = 0; + Cocoa_NATIVE_ENTER(env, that, objc_1getMetaClass_FUNC); + if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail; + rc = (jint)objc_getMetaClass((const char *)lparg0); +fail: + if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0); + Cocoa_NATIVE_EXIT(env, that, objc_1getMetaClass_FUNC); + return rc; +} +#endif + #ifndef NO_objc_1msgSend__II JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__II) (JNIEnv *env, jclass that, jint arg0, jint arg1) @@ -145,6 +161,18 @@ JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__II) } #endif +#ifndef NO_objc_1msgSend__IID +JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__IID) + (JNIEnv *env, jclass that, jint arg0, jint arg1, jdouble arg2) +{ + jint rc = 0; + Cocoa_NATIVE_ENTER(env, that, objc_1msgSend__IID_FUNC); + rc = (jint)((jint (*)(id, SEL, jdouble))objc_msgSend)((id)arg0, (SEL)arg1, arg2); + Cocoa_NATIVE_EXIT(env, that, objc_1msgSend__IID_FUNC); + return rc; +} +#endif + #ifndef NO_objc_1msgSend__IIF JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__IIF) (JNIEnv *env, jclass that, jint arg0, jint arg1, jfloat arg2) @@ -367,6 +395,22 @@ fail: } #endif +#ifndef NO_objc_1msgSend__II_3C +JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__II_3C) + (JNIEnv *env, jclass that, jint arg0, jint arg1, jcharArray arg2) +{ + jchar *lparg2=NULL; + jint rc = 0; + Cocoa_NATIVE_ENTER(env, that, objc_1msgSend__II_3C_FUNC); + if (arg2) if ((lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL)) == NULL) goto fail; + rc = (jint)((jint (*)(jint, jint, jchar *))objc_msgSend)(arg0, arg1, lparg2); +fail: + if (arg2 && lparg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0); + Cocoa_NATIVE_EXIT(env, that, objc_1msgSend__II_3C_FUNC); + return rc; +} +#endif + #ifndef NO_objc_1msgSend__II_3IIIIIIIIIII JNIEXPORT jint JNICALL Cocoa_NATIVE(objc_1msgSend__II_3IIIIIIIIIII) (JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jint arg11, jint arg12) @@ -383,6 +427,18 @@ fail: } #endif +#ifndef NO_objc_1msgSend_1fpret +JNIEXPORT jdouble JNICALL Cocoa_NATIVE(objc_1msgSend_1fpret) + (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1) +{ + jdouble rc = 0; + Cocoa_NATIVE_ENTER(env, that, objc_1msgSend_1fpret_FUNC); + rc = (jdouble)((jdouble (*)(jintLong, jintLong))objc_msgSend_fpret)(arg0, arg1); + Cocoa_NATIVE_EXIT(env, that, objc_1msgSend_1fpret_FUNC); + return rc; +} +#endif + #ifndef NO_objc_1msgSend_1stret__Lorg_eclipse_swt_internal_cocoa_NSRect_2II JNIEXPORT void JNICALL Cocoa_NATIVE(objc_1msgSend_1stret__Lorg_eclipse_swt_internal_cocoa_NSRect_2II) (JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2) diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.h b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.h index d49394648d..c87d0c0ee6 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa.h @@ -16,9 +16,14 @@ #include #include #include +#import #include "cocoa_custom.h" +#ifndef __i386__ +#define objc_msgSend_fpret objc_msgSend +#endif + #ifdef __i386__ #define STRUCT_SIZE_LIMIT 8 #elif __ppc__ diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c index 4fb96860e3..4652e95179 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_custom.c @@ -137,6 +137,11 @@ fail: proc((int)sender, user_data, 31, (int)frame, 0, 0, 0); } +- (void)webView:(WebView *)sender windowScriptObjectAvailable:(WebScriptObject *)windowScriptObject +{ + proc((int)sender, user_data, 33, (int)windowScriptObject, 0, 0, 0); +} + /* WebResourceLoadDelegate */ - (void)webView:(WebView *)sender resource:(id)identifier didFinishLoadingFromDataSource:(WebDataSource *)dataSource @@ -280,5 +285,27 @@ fail: proc((int)evt, user_data, 32, (int)evt, 0, 0, 0); } +/* WebScripting */ + ++ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector +{ + return aSelector != @selector(callJava:index:arg:); +} + ++ (NSString *)webScriptNameForSelector:(SEL)aSelector +{ + if (aSelector == @selector(callJava:index:arg:)) { + return @"callJava"; + } + return 0; +} + +/* external */ + +- (id)callJava:(NSObject *)arg index:(NSObject *)index arg:(NSObject *)arg0 +{ + return (id)proc(0, user_data, 34, (int)arg, (int)index, (int)arg0, 0); +} + @end diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.c index a4f0b6710a..8178ae1925 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.c @@ -14,8 +14,8 @@ #ifdef NATIVE_STATS -int Cocoa_nativeFunctionCount = 29; -int Cocoa_nativeFunctionCallCount[29]; +int Cocoa_nativeFunctionCount = 33; +int Cocoa_nativeFunctionCallCount[33]; char * Cocoa_nativeFunctionNames[] = { "HICocoaViewCreate", "HIJavaViewCreateWithCocoaView", @@ -26,7 +26,9 @@ char * Cocoa_nativeFunctionNames[] = { "memcpy", "memmove", "objc_1getClass", + "objc_1getMetaClass", "objc_1msgSend__II", + "objc_1msgSend__IID", "objc_1msgSend__IIF", "objc_1msgSend__IIFF", "objc_1msgSend__III", @@ -42,7 +44,9 @@ char * Cocoa_nativeFunctionNames[] = { "objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I", "objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2II", "objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSSize_2", + "objc_1msgSend__II_3C", "objc_1msgSend__II_3IIIIIIIIIII", + "objc_1msgSend_1fpret", "objc_1msgSend_1stret__Lorg_eclipse_swt_internal_cocoa_NSRect_2II", "objc_1msgSend_1stret__Lorg_eclipse_swt_internal_cocoa_NSRect_2IILorg_eclipse_swt_internal_cocoa_NSRect_2I", "sel_1registerName", diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.h index a5424e6aac..4dfb9f45d7 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/library/cocoa_stats.h @@ -34,7 +34,9 @@ typedef enum { memcpy_FUNC, memmove_FUNC, objc_1getClass_FUNC, + objc_1getMetaClass_FUNC, objc_1msgSend__II_FUNC, + objc_1msgSend__IID_FUNC, objc_1msgSend__IIF_FUNC, objc_1msgSend__IIFF_FUNC, objc_1msgSend__III_FUNC, @@ -50,7 +52,9 @@ typedef enum { objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2I_FUNC, objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSRect_2II_FUNC, objc_1msgSend__IILorg_eclipse_swt_internal_cocoa_NSSize_2_FUNC, + objc_1msgSend__II_3C_FUNC, objc_1msgSend__II_3IIIIIIIIIII_FUNC, + objc_1msgSend_1fpret_FUNC, objc_1msgSend_1stret__Lorg_eclipse_swt_internal_cocoa_NSRect_2II_FUNC, objc_1msgSend_1stret__Lorg_eclipse_swt_internal_cocoa_NSRect_2IILorg_eclipse_swt_internal_cocoa_NSRect_2I_FUNC, sel_1registerName_FUNC, diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java index 169e58dd6b..ffe2606dcc 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/carbon/org/eclipse/swt/internal/cocoa/Cocoa.java @@ -39,12 +39,20 @@ public static final int C_NSImageView = Cocoa.objc_getClass("NSImageView"); //$N public static final int C_WebPreferences = Cocoa.objc_getClass("WebPreferences"); //$NON-NLS-1$ public static final int C_NSBezierPath = Cocoa.objc_getClass("NSBezierPath"); //$NON-NLS-1$ public static final int C_NSButton = Cocoa.objc_getClass("NSButton"); //$NON-NLS-1$ +public static final int C_NSObject = Cocoa.objc_getClass("NSObject"); //$NON-NLS-1$ +public static final int C_NSString = Cocoa.objc_getClass("NSString"); //$NON-NLS-1$ +public static final int C_NSMutableArray = Cocoa.objc_getClass("NSMutableArray"); //$NON-NLS-1$ +public static final int C_WebScriptObject = Cocoa.objc_getClass("WebScriptObject"); //$NON-NLS-1$ +public static final int C_WebUndefined = Cocoa.objc_getClass("WebUndefined"); //$NON-NLS-1$ /* Objective-C method selectors */ public static final int S_absoluteString = Cocoa.sel_registerName("absoluteString"); //$NON-NLS-1$ public static final int S_addObserver_selector_name_object = Cocoa.sel_registerName("addObserver:selector:name:object:"); //$NON-NLS-1$ +public static final int S_addObject = Cocoa.sel_registerName("addObject:"); //$NON-NLS-1$ public static final int S_alloc = Cocoa.sel_registerName("alloc"); //$NON-NLS-1$ +public static final int S_arrayWithCapacity = Cocoa.sel_registerName("arrayWithCapacity:"); //$NON-NLS-1$ public static final int S_autorelease = Cocoa.sel_registerName("autorelease"); //$NON-NLS-1$ +public static final int S_boolValue = Cocoa.sel_registerName("boolValue"); //$NON-NLS-1$ public static final int S_cancel = Cocoa.sel_registerName("cancel"); //$NON-NLS-1$ public static final int S_canGoBack = Cocoa.sel_registerName("canGoBack"); //$NON-NLS-1$ public static final int S_canGoForward = Cocoa.sel_registerName("canGoForward"); //$NON-NLS-1$ @@ -58,6 +66,7 @@ public static final int S_dataSource = Cocoa.sel_registerName("dataSource"); //$ public static final int S_defaultCenter = Cocoa.sel_registerName("defaultCenter"); //$NON-NLS-1$ public static final int S_deleteCookie = Cocoa.sel_registerName("deleteCookie:"); //$NON-NLS-1$ public static final int S_documentSource = Cocoa.sel_registerName("documentSource"); //$NON-NLS-1$ +public static final int S_doubleValue = Cocoa.sel_registerName("doubleValue"); //$NON-NLS-1$ public static final int S_download = Cocoa.sel_registerName("download"); //$NON-NLS-1$ public static final int S_goBack = Cocoa.sel_registerName("goBack:"); //$NON-NLS-1$ public static final int S_goForward = Cocoa.sel_registerName("goForward:"); //$NON-NLS-1$ @@ -66,11 +75,16 @@ public static final int S_ignore = Cocoa.sel_registerName("ignore"); //$NON-NLS- public static final int S_initialRequest = Cocoa.sel_registerName("initialRequest"); //$NON-NLS-1$ public static final int S_initWithFrame_frameName_groupName = Cocoa.sel_registerName("initWithFrame:frameName:groupName:"); //$NON-NLS-1$ public static final int S_initWithProc = Cocoa.sel_registerName("initWithProc:user_data:"); //$NON-NLS-1$ +public static final int S_intValue = Cocoa.sel_registerName("intValue"); //$NON-NLS-1$ +public static final int S_isKindOfClass = Cocoa.sel_registerName("isKindOfClass:"); //$NON-NLS-1$ public static final int S_isSessionOnly = Cocoa.sel_registerName("isSessionOnly"); //$NON-NLS-1$ public static final int S_loadHTMLStringbaseURL = Cocoa.sel_registerName("loadHTMLString:baseURL:"); //$NON-NLS-1$ public static final int S_loadRequest = Cocoa.sel_registerName("loadRequest:"); //$NON-NLS-1$ +public static final int S_length = Cocoa.sel_registerName("length"); //$NON-NLS-1$ public static final int S_mainFrame = Cocoa.sel_registerName("mainFrame"); //$NON-NLS-1$ public static final int S_name = Cocoa.sel_registerName("name"); //$NON-NLS-1$ +public static final int S_numberWithBool = Cocoa.sel_registerName("numberWithBool:"); //$NON-NLS-1$ +public static final int S_numberWithDouble = Cocoa.sel_registerName("numberWithDouble:"); //$NON-NLS-1$ public static final int S_numberWithInt = Cocoa.sel_registerName("numberWithInt:"); //$NON-NLS-1$ public static final int S_objectAtIndex = Cocoa.sel_registerName("objectAtIndex:"); //$NON-NLS-1$ public static final int S_pageTitle = Cocoa.sel_registerName("pageTitle"); //$NON-NLS-1$ @@ -100,6 +114,7 @@ public static final int S_standardPreferences = Cocoa.sel_registerName("standard public static final int S_stopLoading = Cocoa.sel_registerName("stopLoading:"); //$NON-NLS-1$ public static final int S_stringByEvaluatingJavaScriptFromString = Cocoa.sel_registerName("stringByEvaluatingJavaScriptFromString:"); //$NON-NLS-1$ public static final int S_takeStringURLFrom = Cocoa.sel_registerName("takeStringURLFrom:"); //$NON-NLS-1$ +public static final int S_undefined = Cocoa.sel_registerName("undefined"); //$NON-NLS-1$ public static final int S_use = Cocoa.sel_registerName("use"); //$NON-NLS-1$ public static final int S_valueForKey = Cocoa.sel_registerName("valueForKey:"); //$NON-NLS-1$ public static final int S_webFrame = Cocoa.sel_registerName("webFrame"); //$NON-NLS-1$ @@ -164,6 +179,10 @@ public static final int S_relatedTarget = Cocoa.sel_registerName("relatedTarget" public static final int S_shiftKey = Cocoa.sel_registerName("shiftKey"); //$NON-NLS-1$ public static final int S_type = Cocoa.sel_registerName("type"); //$NON-NLS-1$ public static final int S_wheelDelta = Cocoa.sel_registerName("wheelDelta"); //$NON-NLS-1$ +public static final int S_setValue = Cocoa.sel_registerName("setValue:forKey:"); //$NON-NLS-1$ +public static final int S_webScriptValueAtIndex = Cocoa.sel_registerName("webScriptValueAtIndex:"); //$NON-NLS-1$ +public static final int S_getCharacters_ = Cocoa.sel_registerName("getCharacters:"); //$NON-NLS-1$ +public static final int S_objCType = Cocoa.sel_registerName("objCType"); //$NON-NLS-1$ public static final int NSAlphaFirstBitmapFormat = 1 << 0; public static final int NSAlphaNonpremultipliedBitmapFormat = 1 << 1; @@ -191,6 +210,8 @@ public static final native int HICocoaViewCreate(int nsview, int options, int[] /* OBJ-C runtime primitives */ /** @param className cast=(const char *) */ public static final native int objc_getClass(byte[] className); +/** @param className cast=(const char *) */ +public static final native int objc_getMetaClass(byte[] className); /** * @param object cast=(id) * @param selector cast=(SEL) @@ -207,6 +228,14 @@ public static final native int objc_msgSend(int object, int selector, int arg0); * @param selector cast=(SEL) */ public static final native int objc_msgSend(int object, int selector, float arg0); +/** + * @method flags=cast + * @param object cast=(id) + * @param selector cast=(SEL) + */ +public static final native int objc_msgSend(int object, int selector, double arg0); +/** @method flags=cast */ +public static final native int objc_msgSend(int object, int selector, char[] arg0); /** * @method flags=cast * @param object cast=(id) @@ -289,6 +318,8 @@ public static final native int objc_msgSend(int object, int selector, int arg0, * @param selector cast=(SEL) */ public static final native int objc_msgSend(int object, int selector, int[] arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, int arg10); +/** @method flags=cast */ +public static final native double objc_msgSend_fpret(int /*long*/ id, int /*long*/ sel); /** * @param result cast=(void *) * @param object cast=(void *) diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com.c index e32dd7d4a3..9166e9eaa2 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com.c @@ -1335,47 +1335,47 @@ JNIEXPORT void JNICALL COM_NATIVE(VariantInit) } #endif -#if (!defined(NO_VtblCall__IIII) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJJ) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIII) && !defined(JNI64)) || (!defined(NO_VtblCall__IJII) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jintLong arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jintLong arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3) #endif { jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIII_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJJ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJII_FUNC); #endif - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, jintLong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIII_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJJ_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJII_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__IIIII) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIIJ) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIIII) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIII) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jintLong arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jintLong arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4) #endif { jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIIII_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJIIJ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJIII_FUNC); #endif - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jintLong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIIII_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJIIJ_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJIII_FUNC); #endif return rc; } @@ -1473,6 +1473,89 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJJJIIII)(JNIEnv *env, jclass that } #endif +#if (!defined(NO_VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jobject arg5, jint arg6, jobject arg7, jint arg8) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jobject arg5, jint arg6, jobject arg7, jint arg8) +#endif +{ + DISPPARAMS _arg5, *lparg5=NULL; + EXCEPINFO _arg7, *lparg7=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I_FUNC); +#endif + if (arg5) if ((lparg5 = getDISPPARAMSFields(env, arg5, &_arg5)) == NULL) goto fail; + if (arg7) if ((lparg7 = getEXCEPINFOFields(env, arg7, &_arg7)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, DISPPARAMS *, jint, EXCEPINFO *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5, arg6, lparg7, arg8); +fail: + if (arg7 && lparg7) setEXCEPINFOFields(env, arg7, lparg7); + if (arg5 && lparg5) setDISPPARAMSFields(env, arg5, lparg5); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jobject arg5, jlong arg6, jobject arg7, jlong arg8) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jint arg4, jobject arg5, jlong arg6, jobject arg7, jlong arg8) +#endif +{ + DISPPARAMS _arg5, *lparg5=NULL; + EXCEPINFO _arg7, *lparg7=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J_FUNC); +#endif + if (arg5) if ((lparg5 = getDISPPARAMSFields(env, arg5, &_arg5)) == NULL) goto fail; + if (arg7) if ((lparg7 = getEXCEPINFOFields(env, arg7, &_arg7)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jint, DISPPARAMS *, jlong, EXCEPINFO *, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4, lparg5, arg6, lparg7, arg8); +fail: + if (arg7 && lparg7) setEXCEPINFOFields(env, arg7, lparg7); + if (arg5 && lparg5) setDISPPARAMSFields(env, arg5, lparg5); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIIIJ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIIJ) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlong arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jlong arg4) +#endif +{ + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIIIJ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJIIJ_FUNC); +#endif + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, arg4); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIIIJ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJIIJ_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2) && defined(JNI64)) #ifndef JNI64 JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jobject arg4, jobject arg5) @@ -1503,41 +1586,41 @@ fail: } #endif -#if (!defined(NO_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jintLong arg3, jobject arg4, jintLong arg5, jintLongArray arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jobject arg4, jint arg5, jintArray arg6) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jintLong arg3, jobject arg4, jintLong arg5, jintLongArray arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jobject arg4, jint arg5, jintArray arg6) #endif { GUID _arg4, *lparg4=NULL; - jintLong *lparg6=NULL; + jint *lparg6=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I_FUNC); #endif if (arg4) if ((lparg4 = getGUIDFields(env, arg4, &_arg4)) == NULL) goto fail; - if (arg6) if ((lparg6 = (*env)->GetIntLongArrayElements(env, arg6, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, jintLong, GUID *, jintLong, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, lparg6); + if (arg6) if ((lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, GUID *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, lparg6); fail: - if (arg6 && lparg6) (*env)->ReleaseIntLongArrayElements(env, arg6, lparg6, 0); + if (arg6 && lparg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0); if (arg4 && lparg4) setGUIDFields(env, arg4, lparg4); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIILorg_eclipse_swt_internal_win32_POINT_2I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jintLong arg3, jobject arg4, jint arg5) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jobject arg4, jint arg5) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jintLong arg3, jobject arg4, jint arg5) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIILorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jint arg3, jobject arg4, jint arg5) #endif { POINT _arg4, *lparg4=NULL; @@ -1545,16 +1628,16 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJLorg_eclipse_swt_internal_win32_ #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #endif if (arg4) if ((lparg4 = getPOINTFields(env, arg4, &_arg4)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, jintLong, POINT *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint, POINT *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5); fail: if (arg4 && lparg4) setPOINTFields(env, arg4, lparg4); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #endif return rc; } @@ -1614,6 +1697,29 @@ fail: } #endif +#if (!defined(NO_VtblCall__IIIJ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIJ) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3) +#endif +{ + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIIJ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJIJ_FUNC); +#endif + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIIJ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJIJ_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO_VtblCall__IIIJ_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIJ_3I) && defined(JNI64)) #ifndef JNI64 JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIJ_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlong arg3, jintArray arg4) @@ -1641,31 +1747,31 @@ fail: } #endif -#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jobject arg3, jintLongArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jobject arg3, jintLongArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4) #endif { FORMATETC _arg3, *lparg3=NULL; - jintLong *lparg4=NULL; + jint *lparg4=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I_FUNC); #endif if (arg3) if ((lparg3 = getFORMATETCFields(env, arg3, &_arg3)) == NULL) goto fail; - if (arg4) if ((lparg4 = (*env)->GetIntLongArrayElements(env, arg4, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, FORMATETC *, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); + if (arg4) if ((lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, FORMATETC *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); fail: - if (arg4 && lparg4) (*env)->ReleaseIntLongArrayElements(env, arg4, lparg4, 0); + if (arg4 && lparg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); if (arg3 && lparg3) setFORMATETCFields(env, arg3, lparg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I_FUNC); #endif return rc; } @@ -1698,11 +1804,11 @@ fail: } #endif -#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2II) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintLong arg4, jintLong arg5) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintLong arg4, jintLong arg5) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2II)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5) #endif { GUID _arg3, *lparg3=NULL; @@ -1710,26 +1816,26 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2II_FUNC); #endif if (arg3) if ((lparg3 = getGUIDFields(env, arg3, &_arg3)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, GUID *, jintLong, jintLong))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, GUID *, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5); fail: if (arg3 && lparg3) setGUIDFields(env, arg3, lparg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2II_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jobject arg6, jintLong arg7, jobject arg8, jintArray arg9) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jobject arg6, jint arg7, jobject arg8, jintArray arg9) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jobject arg6, jintLong arg7, jobject arg8, jintArray arg9) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jobject arg6, jint arg7, jobject arg8, jintArray arg9) #endif { GUID _arg3, *lparg3=NULL; @@ -1740,13 +1846,13 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); #endif if (arg3) if ((lparg3 = getGUIDFields(env, arg3, &_arg3)) == NULL) goto fail; if (arg6) if ((lparg6 = getDISPPARAMSFields(env, arg6, &_arg6)) == NULL) goto fail; if (arg8) if ((lparg8 = getEXCEPINFOFields(env, arg8, &_arg8)) == NULL) goto fail; if (arg9) if ((lparg9 = (*env)->GetIntArrayElements(env, arg9, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, GUID *, jint, jint, DISPPARAMS *, jintLong, EXCEPINFO *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, lparg6, arg7, lparg8, lparg9); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, GUID *, jint, jint, DISPPARAMS *, jint, EXCEPINFO *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, lparg6, arg7, lparg8, lparg9); fail: if (arg9 && lparg9) (*env)->ReleaseIntArrayElements(env, arg9, lparg9, 0); if (arg8 && lparg8) setEXCEPINFOFields(env, arg8, lparg8); @@ -1754,6 +1860,42 @@ fail: if (arg3 && lparg3) setGUIDFields(env, arg3, lparg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jobject arg6, jlong arg7, jobject arg8, jintArray arg9) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jobject arg6, jlong arg7, jobject arg8, jintArray arg9) +#endif +{ + GUID _arg3, *lparg3=NULL; + DISPPARAMS _arg6, *lparg6=NULL; + EXCEPINFO _arg8, *lparg8=NULL; + jint *lparg9=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); +#endif + if (arg3) if ((lparg3 = getGUIDFields(env, arg3, &_arg3)) == NULL) goto fail; + if (arg6) if ((lparg6 = getDISPPARAMSFields(env, arg6, &_arg6)) == NULL) goto fail; + if (arg8) if ((lparg8 = getEXCEPINFOFields(env, arg8, &_arg8)) == NULL) goto fail; + if (arg9) if ((lparg9 = (*env)->GetIntArrayElements(env, arg9, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, GUID *, jint, jint, DISPPARAMS *, jlong, EXCEPINFO *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, lparg6, arg7, lparg8, lparg9); +fail: + if (arg9 && lparg9) (*env)->ReleaseIntArrayElements(env, arg9, lparg9, 0); + if (arg8 && lparg8) setEXCEPINFOFields(env, arg8, lparg8); + if (arg6 && lparg6) setDISPPARAMSFields(env, arg6, lparg6); + if (arg3 && lparg3) setGUIDFields(env, arg3, lparg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); #else COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC); #endif @@ -1761,41 +1903,68 @@ fail: } #endif -#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2JJ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jobject arg3, jintLongArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2JJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jlong arg4, jlong arg5) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jobject arg3, jintLongArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jlong arg4, jlong arg5) +#endif +{ + GUID _arg3, *lparg3=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC); +#endif + if (arg3) if ((lparg3 = getGUIDFields(env, arg3, &_arg3)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, GUID *, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5); +fail: + if (arg3 && lparg3) setGUIDFields(env, arg3, lparg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintArray arg4) #endif { STATSTG _arg3, *lparg3=NULL; - jintLong *lparg4=NULL; + jint *lparg4=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I_FUNC); #endif if (arg3) if ((lparg3 = getSTATSTGFields(env, arg3, &_arg3)) == NULL) goto fail; - if (arg4) if ((lparg4 = (*env)->GetIntLongArrayElements(env, arg4, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, STATSTG *, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); + if (arg4) if ((lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, STATSTG *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); fail: - if (arg4 && lparg4) (*env)->ReleaseIntLongArrayElements(env, arg4, lparg4, 0); + if (arg4 && lparg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); if (arg3 && lparg3) setSTATSTGFields(env, arg3, lparg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintLong arg4, jint arg5, jintLong arg6, jobject arg7) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jint arg6, jobject arg7) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jintLong arg4, jint arg5, jintLong arg6, jobject arg7) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4, jint arg5, jint arg6, jobject arg7) #endif { MSG _arg3, *lparg3=NULL; @@ -1804,16 +1973,46 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_win32_M #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2_FUNC); #endif if (arg3) if ((lparg3 = getMSGFields(env, arg3, &_arg3)) == NULL) goto fail; if (arg7) if ((lparg7 = getRECTFields(env, arg7, &_arg7)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, MSG *, jintLong, jint, jintLong, RECT *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, arg6, lparg7); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, MSG *, jint, jint, jint, RECT *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, arg6, lparg7); fail: if (arg7 && lparg7) setRECTFields(env, arg7, lparg7); if (arg3 && lparg3) setMSGFields(env, arg3, lparg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jlong arg4, jint arg5, jlong arg6, jobject arg7) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jlong arg4, jint arg5, jlong arg6, jobject arg7) +#endif +{ + MSG _arg3, *lparg3=NULL; + RECT _arg7, *lparg7=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC); +#endif + if (arg3) if ((lparg3 = getMSGFields(env, arg3, &_arg3)) == NULL) goto fail; + if (arg7) if ((lparg7 = getRECTFields(env, arg7, &_arg7)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, MSG *, jlong, jint, jlong, RECT *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, arg5, arg6, lparg7); +fail: + if (arg7 && lparg7) setRECTFields(env, arg7, lparg7); + if (arg3 && lparg3) setMSGFields(env, arg3, lparg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC); #else COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC); #endif @@ -1821,11 +2020,11 @@ fail: } #endif -#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJILorg_eclipse_swt_internal_win32_POINT_2I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jobject arg3, jintLong arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jobject arg3, jintLong arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJILorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jobject arg3, jint arg4) #endif { POINT _arg3, *lparg3=NULL; @@ -1833,16 +2032,16 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_win32_P #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #endif if (arg3) if ((lparg3 = getPOINTFields(env, arg3, &_arg3)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, POINT *, jintLong))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, POINT *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4); fail: if (arg3 && lparg3) setPOINTFields(env, arg3, lparg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJILorg_eclipse_swt_internal_win32_POINT_2I_FUNC); #endif return rc; } @@ -1875,24 +2074,24 @@ fail: } #endif -#if (!defined(NO_VtblCall__IIIZ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJZ) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIIZ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJIZ) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jboolean arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIIZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jboolean arg3) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jintLong arg2, jboolean arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJIZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jboolean arg3) #endif { jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IIIZ_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJZ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJIZ_FUNC); #endif - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jintLong, jboolean))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jboolean))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IIIZ_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJZ_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJIZ_FUNC); #endif return rc; } @@ -1925,121 +2124,427 @@ fail: } #endif -#if (!defined(NO_VtblCall__III_3II_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3JI_3I) && defined(JNI64)) +#if (!defined(NO_VtblCall__III_3II_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3II_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintLongArray arg3, jint arg4, jintArray arg5) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jint arg4, jintArray arg5) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3JI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintLongArray arg3, jint arg4, jintArray arg5) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3II_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jint arg4, jintArray arg5) #endif { - jintLong *lparg3=NULL; + jint *lparg3=NULL; jint *lparg5=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__III_3II_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJI_3JI_3I_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJI_3II_3I_FUNC); #endif - if (arg3) if ((lparg3 = (*env)->GetIntLongArrayElements(env, arg3, NULL)) == NULL) goto fail; + if (arg3) if ((lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL)) == NULL) goto fail; if (arg5) if ((lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jintLong *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, lparg5); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, lparg5); fail: if (arg5 && lparg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0); - if (arg3 && lparg3) (*env)->ReleaseIntLongArrayElements(env, arg3, lparg3, 0); + if (arg3 && lparg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__III_3II_3I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJI_3JI_3I_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJI_3II_3I_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__III_3I_3I_3I_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3J_3J_3I_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__III_3I_3I_3I_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3I_3I_3I_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintLongArray arg3, jintLongArray arg4, jintArray arg5, jintLongArray arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3J_3J_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintLongArray arg3, jintLongArray arg4, jintArray arg5, jintLongArray arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3I_3I_3I_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jintArray arg3, jintArray arg4, jintArray arg5, jintArray arg6) #endif { - jintLong *lparg3=NULL; - jintLong *lparg4=NULL; + jint *lparg3=NULL; + jint *lparg4=NULL; jint *lparg5=NULL; - jintLong *lparg6=NULL; + jint *lparg6=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__III_3I_3I_3I_3I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJI_3I_3I_3I_3I_FUNC); +#endif + if (arg3) if ((lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL)) == NULL) goto fail; + if (arg4) if ((lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL)) == NULL) goto fail; + if (arg5) if ((lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL)) == NULL) goto fail; + if (arg6) if ((lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jint *, jint *, jint *, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6); +fail: + if (arg6 && lparg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0); + if (arg5 && lparg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0); + if (arg4 && lparg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); + if (arg3 && lparg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__III_3I_3I_3I_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJI_3I_3I_3I_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__III_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3) +#endif +{ + jlong *lparg3=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__III_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJI_3J_FUNC); +#endif + if (arg3) if ((lparg3 = (*env)->GetLongArrayElements(env, arg3, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3); +fail: + if (arg3 && lparg3) (*env)->ReleaseLongArrayElements(env, arg3, lparg3, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__III_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJI_3J_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__III_3JI_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3JI_3I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3JI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3, jint arg4, jintArray arg5) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3JI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3, jint arg4, jintArray arg5) +#endif +{ + jlong *lparg3=NULL; + jint *lparg5=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__III_3JI_3I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJI_3JI_3I_FUNC); +#endif + if (arg3) if ((lparg3 = (*env)->GetLongArrayElements(env, arg3, NULL)) == NULL) goto fail; + if (arg5) if ((lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong *, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4, lparg5); +fail: + if (arg5 && lparg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0); + if (arg3 && lparg3) (*env)->ReleaseLongArrayElements(env, arg3, lparg3, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__III_3JI_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJI_3JI_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__III_3J_3J_3I_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3J_3J_3I_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3J_3J_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3, jlongArray arg4, jintArray arg5, jlongArray arg6) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3J_3J_3I_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3, jlongArray arg4, jintArray arg5, jlongArray arg6) +#endif +{ + jlong *lparg3=NULL; + jlong *lparg4=NULL; + jint *lparg5=NULL; + jlong *lparg6=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__III_3J_3J_3I_3J_FUNC); #else COM_NATIVE_ENTER(env, that, VtblCall__IJI_3J_3J_3I_3J_FUNC); #endif - if (arg3) if ((lparg3 = (*env)->GetIntLongArrayElements(env, arg3, NULL)) == NULL) goto fail; - if (arg4) if ((lparg4 = (*env)->GetIntLongArrayElements(env, arg4, NULL)) == NULL) goto fail; + if (arg3) if ((lparg3 = (*env)->GetLongArrayElements(env, arg3, NULL)) == NULL) goto fail; + if (arg4) if ((lparg4 = (*env)->GetLongArrayElements(env, arg4, NULL)) == NULL) goto fail; if (arg5) if ((lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL)) == NULL) goto fail; - if (arg6) if ((lparg6 = (*env)->GetIntLongArrayElements(env, arg6, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jintLong *, jintLong *, jint *, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6); + if (arg6) if ((lparg6 = (*env)->GetLongArrayElements(env, arg6, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong *, jlong *, jint *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4, lparg5, lparg6); fail: - if (arg6 && lparg6) (*env)->ReleaseIntLongArrayElements(env, arg6, lparg6, 0); + if (arg6 && lparg6) (*env)->ReleaseLongArrayElements(env, arg6, lparg6, 0); if (arg5 && lparg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0); - if (arg4 && lparg4) (*env)->ReleaseIntLongArrayElements(env, arg4, lparg4, 0); - if (arg3 && lparg3) (*env)->ReleaseIntLongArrayElements(env, arg3, lparg3, 0); + if (arg4 && lparg4) (*env)->ReleaseLongArrayElements(env, arg4, lparg4, 0); + if (arg3 && lparg3) (*env)->ReleaseLongArrayElements(env, arg3, lparg3, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__III_3J_3J_3I_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJI_3J_3J_3I_3J_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJI) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJI) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3) +#endif +{ + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJI_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJI_FUNC); +#endif + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJI_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJI_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJI_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJI_3I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jintArray arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jintArray arg4) +#endif +{ + jint *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJI_3I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJI_3I_FUNC); +#endif + if (arg4) if ((lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4); +fail: + if (arg4 && lparg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJI_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJI_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJI_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJI_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jlongArray arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jlongArray arg4) +#endif +{ + jlong *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJI_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJI_3J_FUNC); +#endif + if (arg4) if ((lparg4 = (*env)->GetLongArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4); +fail: + if (arg4 && lparg4) (*env)->ReleaseLongArrayElements(env, arg4, lparg4, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJI_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJI_3J_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJJ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJJ) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3) +#endif +{ + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJJ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJJ_FUNC); +#endif + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJJ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJJ_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jobject arg4, jlong arg5, jlongArray arg6) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jobject arg4, jlong arg5, jlongArray arg6) +#endif +{ + GUID _arg4, *lparg4=NULL; + jlong *lparg6=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC); +#endif + if (arg4) if ((lparg4 = getGUIDFields(env, arg4, &_arg4)) == NULL) goto fail; + if (arg6) if ((lparg6 = (*env)->GetLongArrayElements(env, arg6, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, GUID *, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5, lparg6); +fail: + if (arg6 && lparg6) (*env)->ReleaseLongArrayElements(env, arg6, lparg6, 0); + if (arg4 && lparg4) setGUIDFields(env, arg4, lparg4); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJJLorg_eclipse_swt_internal_win32_POINT_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJJLorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jobject arg4, jint arg5) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlong arg3, jobject arg4, jint arg5) +#endif +{ + POINT _arg4, *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC); +#endif + if (arg4) if ((lparg4 = getPOINTFields(env, arg4, &_arg4)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong, POINT *, jint))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4, arg5); +fail: + if (arg4 && lparg4) setPOINTFields(env, arg4, lparg4); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4) +#endif +{ + FORMATETC _arg3, *lparg3=NULL; + jlong *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC); +#endif + if (arg3) if ((lparg3 = getFORMATETCFields(env, arg3, &_arg3)) == NULL) goto fail; + if (arg4) if ((lparg4 = (*env)->GetLongArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, FORMATETC *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); +fail: + if (arg4 && lparg4) (*env)->ReleaseLongArrayElements(env, arg4, lparg4, 0); + if (arg3 && lparg3) setFORMATETCFields(env, arg3, lparg3); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlongArray arg4) +#endif +{ + STATSTG _arg3, *lparg3=NULL; + jlong *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC); +#endif + if (arg3) if ((lparg3 = getSTATSTGFields(env, arg3, &_arg3)) == NULL) goto fail; + if (arg4) if ((lparg4 = (*env)->GetLongArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, STATSTG *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, lparg4); +fail: + if (arg4 && lparg4) (*env)->ReleaseLongArrayElements(env, arg4, lparg4, 0); + if (arg3 && lparg3) setSTATSTGFields(env, arg3, lparg3); #ifndef JNI64 - COM_NATIVE_EXIT(env, that, VtblCall__III_3I_3I_3I_3I_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJI_3J_3J_3I_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__III_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJI_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIJLorg_eclipse_swt_internal_win32_POINT_2J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__III_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJLorg_eclipse_swt_internal_win32_POINT_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlong arg4) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJI_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jint arg2, jlongArray arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jobject arg3, jlong arg4) #endif { - jlong *lparg3=NULL; + POINT _arg3, *lparg3=NULL; jint rc = 0; #ifndef JNI64 - COM_NATIVE_ENTER(env, that, VtblCall__III_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IIJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJI_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC); #endif - if (arg3) if ((lparg3 = (*env)->GetLongArrayElements(env, arg3, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3); + if (arg3) if ((lparg3 = getPOINTFields(env, arg3, &_arg3)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, POINT *, jlong))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3, arg4); fail: - if (arg3 && lparg3) (*env)->ReleaseLongArrayElements(env, arg3, lparg3, 0); + if (arg3 && lparg3) setPOINTFields(env, arg3, lparg3); #ifndef JNI64 - COM_NATIVE_EXIT(env, that, VtblCall__III_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IIJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJI_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__IIJI_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJI_3I) && defined(JNI64)) +#if (!defined(NO_VtblCall__IIJZ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJZ) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jintArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jboolean arg3) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJI_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jint arg3, jintArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jboolean arg3) #endif { - jint *lparg4=NULL; jint rc = 0; #ifndef JNI64 - COM_NATIVE_ENTER(env, that, VtblCall__IIJI_3I_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IIJZ_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJJI_3I_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJJZ_FUNC); #endif - if (arg4) if ((lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3, lparg4); -fail: - if (arg4 && lparg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jboolean))(*(jintLong **)arg1)[arg0])(arg1, arg2, arg3); #ifndef JNI64 - COM_NATIVE_EXIT(env, that, VtblCall__IIJI_3I_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IIJZ_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJJI_3I_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJJZ_FUNC); #endif return rc; } @@ -2072,6 +2577,33 @@ fail: } #endif +#if (!defined(NO_VtblCall__IIJ_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJJ_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IIJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlongArray arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJJ_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jlong arg2, jlongArray arg3) +#endif +{ + jlong *lparg3=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IIJ_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJJ_3J_FUNC); +#endif + if (arg3) if ((lparg3 = (*env)->GetLongArrayElements(env, arg3, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jlong, jlong *))(*(jintLong **)arg1)[arg0])(arg1, arg2, lparg3); +fail: + if (arg3 && lparg3) (*env)->ReleaseLongArrayElements(env, arg3, lparg3, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IIJ_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJJ_3J_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CAUUID_2) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_CAUUID_2) && defined(JNI64)) #ifndef JNI64 JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_CAUUID_2)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2) @@ -2240,11 +2772,11 @@ fail: } #endif -#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ) && defined(JNI64)) +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIII) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jintLong arg5, jintLong arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jint arg5, jint arg6) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jintLong arg5, jintLong arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIII)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jint arg5, jint arg6) #endif { GUID _arg2, *lparg2=NULL; @@ -2252,26 +2784,26 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win3 #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIII_FUNC); #endif if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jint, jint, jintLong, jintLong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jint, jint, jint, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6); fail: if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIII_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I) && defined(JNI64)) +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2III_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLong arg3, jint arg4, jint arg5, jintArray arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jint arg5, jintArray arg6) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLong arg3, jint arg4, jint arg5, jintArray arg6) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2III_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jint arg5, jintArray arg6) #endif { GUID _arg2, *lparg2=NULL; @@ -2280,18 +2812,45 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win3 #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2III_3I_FUNC); #endif if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; if (arg6) if ((lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jintLong, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, lparg6); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jint, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, lparg6); fail: if (arg6 && lparg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0); if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2III_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jlong arg5, jlong arg6) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jint arg4, jlong arg5, jlong arg6) +#endif +{ + GUID _arg2, *lparg2=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC); +#endif + if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jint, jint, jlong, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6); +fail: + if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC); #endif return rc; } @@ -2330,32 +2889,95 @@ fail: } #endif -#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jint arg4, jint arg5, jintArray arg6) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jint arg4, jint arg5, jintArray arg6) +#endif +{ + GUID _arg2, *lparg2=NULL; + jint *lparg6=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC); +#endif + if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; + if (arg6) if ((lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jlong, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, lparg6); +fail: + if (arg6 && lparg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0); + if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintLongArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintArray arg4) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintLongArray arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jintArray arg4) #endif { GUID _arg2, *lparg2=NULL; GUID _arg3, *lparg3=NULL; - jintLong *lparg4=NULL; + jint *lparg4=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); #endif if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; if (arg3) if ((lparg3 = getGUIDFields(env, arg3, &_arg3)) == NULL) goto fail; - if (arg4) if ((lparg4 = (*env)->GetIntLongArrayElements(env, arg4, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, GUID *, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4); + if (arg4) if ((lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, GUID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4); fail: - if (arg4 && lparg4) (*env)->ReleaseIntLongArrayElements(env, arg4, lparg4, 0); + if (arg4 && lparg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0); if (arg3 && lparg3) setGUIDFields(env, arg3, lparg3); if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jlongArray arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jobject arg3, jlongArray arg4) +#endif +{ + GUID _arg2, *lparg2=NULL; + GUID _arg3, *lparg3=NULL; + jlong *lparg4=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); +#endif + if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; + if (arg3) if ((lparg3 = getGUIDFields(env, arg3, &_arg3)) == NULL) goto fail; + if (arg4) if ((lparg4 = (*env)->GetLongArrayElements(env, arg4, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, GUID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3, lparg4); +fail: + if (arg4 && lparg4) (*env)->ReleaseLongArrayElements(env, arg4, lparg4, 0); + if (arg3 && lparg3) setGUIDFields(env, arg3, lparg3); + if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); #else COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); #endif @@ -2363,29 +2985,59 @@ fail: } #endif -#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLongArray arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintArray arg3) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLongArray arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintArray arg3) #endif { GUID _arg2, *lparg2=NULL; - jintLong *lparg3=NULL; + jint *lparg3=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); #endif if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; - if (arg3) if ((lparg3 = (*env)->GetIntLongArrayElements(env, arg3, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3); + if (arg3) if ((lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3); fail: - if (arg3 && lparg3) (*env)->ReleaseIntLongArrayElements(env, arg3, lparg3, 0); + if (arg3 && lparg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0); if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlongArray arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlongArray arg3) +#endif +{ + GUID _arg2, *lparg2=NULL; + jlong *lparg3=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); +#endif + if (arg2) if ((lparg2 = getGUIDFields(env, arg2, &_arg2)) == NULL) goto fail; + if (arg3) if ((lparg3 = (*env)->GetLongArrayElements(env, arg3, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, GUID *, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, lparg3); +fail: + if (arg3 && lparg3) (*env)->ReleaseLongArrayElements(env, arg3, lparg3, 0); + if (arg2 && lparg2) setGUIDFields(env, arg2, lparg2); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); #else COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC); #endif @@ -2501,11 +3153,11 @@ fail: } #endif -#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ) && defined(JNI64)) +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2IZ) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLong arg3, jboolean arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jboolean arg4) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLong arg3, jboolean arg4) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2IZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3, jboolean arg4) #endif { RECT _arg2, *lparg2=NULL; @@ -2513,14 +3165,41 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_RE #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2IZ_FUNC); #endif if (arg2) if ((lparg2 = getRECTFields(env, arg2, &_arg2)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, RECT *, jintLong, jboolean))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, RECT *, jint, jboolean))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4); fail: if (arg2 && lparg2) setRECTFields(env, arg2, lparg2); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2IZ_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2JZ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2JZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jboolean arg4) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3, jboolean arg4) +#endif +{ + RECT _arg2, *lparg2=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC); +#endif + if (arg2) if ((lparg2 = getRECTFields(env, arg2, &_arg2)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, RECT *, jlong, jboolean))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4); +fail: + if (arg2 && lparg2) setRECTFields(env, arg2, lparg2); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC); #else COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC); #endif @@ -2558,11 +3237,11 @@ fail: } #endif -#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J) && defined(JNI64)) +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLong arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jintLong arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jint arg3) #endif { SHDRAGIMAGE _arg2, *lparg2=NULL; @@ -2570,14 +3249,41 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_SH #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I_FUNC); #endif if (arg2) if ((lparg2 = getSHDRAGIMAGEFields(env, arg2, &_arg2)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, SHDRAGIMAGE *, jintLong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, SHDRAGIMAGE *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3); fail: if (arg2 && lparg2) setSHDRAGIMAGEFields(env, arg2, lparg2); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jobject arg2, jlong arg3) +#endif +{ + SHDRAGIMAGE _arg2, *lparg2=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC); +#endif + if (arg2) if ((lparg2 = getSHDRAGIMAGEFields(env, arg2, &_arg2)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, SHDRAGIMAGE *, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3); +fail: + if (arg2 && lparg2) setSHDRAGIMAGEFields(env, arg2, lparg2); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC); #else COM_NATIVE_EXIT(env, that, VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC); #endif @@ -2635,11 +3341,11 @@ fail: } #endif -#if (!defined(NO_VtblCall__II_3CI) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CJ) && defined(JNI64)) +#if (!defined(NO_VtblCall__II_3CI) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CI) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jintLong arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jintLong arg3) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CI)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3) #endif { jchar *lparg2=NULL; @@ -2647,46 +3353,46 @@ JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CJ)(JNIEnv *env, jclass that, ji #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__II_3CI_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJ_3CJ_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJ_3CI_FUNC); #endif if (arg2) if ((lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jintLong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3); + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jint))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3); fail: if (arg2 && lparg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__II_3CI_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJ_3CJ_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJ_3CI_FUNC); #endif return rc; } #endif -#if (!defined(NO_VtblCall__II_3CIIII_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CJIII_3J) && defined(JNI64)) +#if (!defined(NO_VtblCall__II_3CIIII_3I) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CIIII_3I) && defined(JNI64)) #ifndef JNI64 -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jintLong arg3, jint arg4, jint arg5, jint arg6, jintLongArray arg7) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7) #else -JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CJIII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jintLong arg3, jint arg4, jint arg5, jint arg6, jintLongArray arg7) +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CIIII_3I)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6, jintArray arg7) #endif { jchar *lparg2=NULL; - jintLong *lparg7=NULL; + jint *lparg7=NULL; jint rc = 0; #ifndef JNI64 COM_NATIVE_ENTER(env, that, VtblCall__II_3CIIII_3I_FUNC); #else - COM_NATIVE_ENTER(env, that, VtblCall__IJ_3CJIII_3J_FUNC); + COM_NATIVE_ENTER(env, that, VtblCall__IJ_3CIIII_3I_FUNC); #endif if (arg2) if ((lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL)) == NULL) goto fail; - if (arg7) if ((lparg7 = (*env)->GetIntLongArrayElements(env, arg7, NULL)) == NULL) goto fail; - rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jintLong, jint, jint, jint, jintLong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6, lparg7); + if (arg7) if ((lparg7 = (*env)->GetIntArrayElements(env, arg7, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jint, jint, jint, jint, jint *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6, lparg7); fail: - if (arg7 && lparg7) (*env)->ReleaseIntLongArrayElements(env, arg7, lparg7, 0); + if (arg7 && lparg7) (*env)->ReleaseIntArrayElements(env, arg7, lparg7, 0); if (arg2 && lparg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0); #ifndef JNI64 COM_NATIVE_EXIT(env, that, VtblCall__II_3CIIII_3I_FUNC); #else - COM_NATIVE_EXIT(env, that, VtblCall__IJ_3CJIII_3J_FUNC); + COM_NATIVE_EXIT(env, that, VtblCall__IJ_3CIIII_3I_FUNC); #endif return rc; } @@ -2752,6 +3458,63 @@ fail: } #endif +#if (!defined(NO_VtblCall__II_3CJ) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CJ) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CJ)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3) +#endif +{ + jchar *lparg2=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__II_3CJ_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJ_3CJ_FUNC); +#endif + if (arg2) if ((lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jlong))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3); +fail: + if (arg2 && lparg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__II_3CJ_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJ_3CJ_FUNC); +#endif + return rc; +} +#endif + +#if (!defined(NO_VtblCall__II_3CJIII_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CJIII_3J) && defined(JNI64)) +#ifndef JNI64 +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CJIII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jint arg4, jint arg5, jint arg6, jlongArray arg7) +#else +JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__IJ_3CJIII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jint arg4, jint arg5, jint arg6, jlongArray arg7) +#endif +{ + jchar *lparg2=NULL; + jlong *lparg7=NULL; + jint rc = 0; +#ifndef JNI64 + COM_NATIVE_ENTER(env, that, VtblCall__II_3CJIII_3J_FUNC); +#else + COM_NATIVE_ENTER(env, that, VtblCall__IJ_3CJIII_3J_FUNC); +#endif + if (arg2) if ((lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL)) == NULL) goto fail; + if (arg7) if ((lparg7 = (*env)->GetLongArrayElements(env, arg7, NULL)) == NULL) goto fail; + rc = (jint)((jint (STDMETHODCALLTYPE *)(jintLong, jchar *, jlong, jint, jint, jint, jlong *))(*(jintLong **)arg1)[arg0])(arg1, lparg2, arg3, arg4, arg5, arg6, lparg7); +fail: + if (arg7 && lparg7) (*env)->ReleaseLongArrayElements(env, arg7, lparg7, 0); + if (arg2 && lparg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0); +#ifndef JNI64 + COM_NATIVE_EXIT(env, that, VtblCall__II_3CJIII_3J_FUNC); +#else + COM_NATIVE_EXIT(env, that, VtblCall__IJ_3CJIII_3J_FUNC); +#endif + return rc; +} +#endif + #if (!defined(NO_VtblCall__II_3CJII_3J) && !defined(JNI64)) || (!defined(NO_VtblCall__IJ_3CJII_3J) && defined(JNI64)) #ifndef JNI64 JNIEXPORT jint JNICALL COM_NATIVE(VtblCall__II_3CJII_3J)(JNIEnv *env, jclass that, jint arg0, jintLong arg1, jcharArray arg2, jlong arg3, jint arg4, jint arg5, jlongArray arg6) diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.c index 23766d834c..6660b5b12c 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.c @@ -14,8 +14,8 @@ #ifdef NATIVE_STATS -int COM_nativeFunctionCount = 157; -int COM_nativeFunctionCallCount[157]; +int COM_nativeFunctionCount = 184; +int COM_nativeFunctionCallCount[184]; char * COM_nativeFunctionNames[] = { "AccessibleObjectFromWindow", "CAUUID_1sizeof", @@ -159,12 +159,12 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__IIII", #else - "VtblCall__IJJJ", + "VtblCall__IJII", #endif #ifndef JNI64 "VtblCall__IIIII", #else - "VtblCall__IJIIJ", + "VtblCall__IJIII", #endif #ifndef JNI64 "VtblCall__IIIIII", @@ -186,6 +186,21 @@ char * COM_nativeFunctionNames[] = { #else "VtblCall__IJJJJJIIII", #endif +#ifndef JNI64 + "VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I", +#else + "VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I", +#endif +#ifndef JNI64 + "VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J", +#else + "VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J", +#endif +#ifndef JNI64 + "VtblCall__IIIIJ", +#else + "VtblCall__IJIIJ", +#endif #ifndef JNI64 "VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2", #else @@ -194,12 +209,12 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I", #else - "VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J", + "VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I", #endif #ifndef JNI64 "VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I", #else - "VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I", + "VtblCall__IJIILorg_eclipse_swt_internal_win32_POINT_2I", #endif #ifndef JNI64 "VtblCall__IIII_3I", @@ -211,6 +226,11 @@ char * COM_nativeFunctionNames[] = { #else "VtblCall__IJII_3J", #endif +#ifndef JNI64 + "VtblCall__IIIJ", +#else + "VtblCall__IJIJ", +#endif #ifndef JNI64 "VtblCall__IIIJ_3I", #else @@ -219,7 +239,7 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I", #else - "VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J", + "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I", #endif #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2", @@ -229,27 +249,42 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II", #else - "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ", + "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2II", #endif #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I", +#else + "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I", +#endif +#ifndef JNI64 + "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I", #else "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I", #endif +#ifndef JNI64 + "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2JJ", +#else + "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ", +#endif #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I", #else - "VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J", + "VtblCall__IJILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I", #endif #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2", +#else + "VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2", +#endif +#ifndef JNI64 + "VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2", #else "VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2", #endif #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I", #else - "VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J", + "VtblCall__IJILorg_eclipse_swt_internal_win32_POINT_2I", #endif #ifndef JNI64 "VtblCall__IIILorg_eclipse_swt_internal_win32_SIZE_2", @@ -259,7 +294,7 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__IIIZ", #else - "VtblCall__IJJZ", + "VtblCall__IJIZ", #endif #ifndef JNI64 "VtblCall__III_3I", @@ -269,28 +304,88 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__III_3II_3I", #else - "VtblCall__IJI_3JI_3I", + "VtblCall__IJI_3II_3I", #endif #ifndef JNI64 "VtblCall__III_3I_3I_3I_3I", #else - "VtblCall__IJI_3J_3J_3I_3J", + "VtblCall__IJI_3I_3I_3I_3I", #endif #ifndef JNI64 "VtblCall__III_3J", #else "VtblCall__IJI_3J", #endif +#ifndef JNI64 + "VtblCall__III_3JI_3I", +#else + "VtblCall__IJI_3JI_3I", +#endif +#ifndef JNI64 + "VtblCall__III_3J_3J_3I_3J", +#else + "VtblCall__IJI_3J_3J_3I_3J", +#endif +#ifndef JNI64 + "VtblCall__IIJI", +#else + "VtblCall__IJJI", +#endif #ifndef JNI64 "VtblCall__IIJI_3I", #else "VtblCall__IJJI_3I", #endif +#ifndef JNI64 + "VtblCall__IIJI_3J", +#else + "VtblCall__IJJI_3J", +#endif +#ifndef JNI64 + "VtblCall__IIJJ", +#else + "VtblCall__IJJJ", +#endif +#ifndef JNI64 + "VtblCall__IIJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J", +#else + "VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J", +#endif +#ifndef JNI64 + "VtblCall__IIJJLorg_eclipse_swt_internal_win32_POINT_2I", +#else + "VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I", +#endif +#ifndef JNI64 + "VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J", +#else + "VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J", +#endif +#ifndef JNI64 + "VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J", +#else + "VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J", +#endif +#ifndef JNI64 + "VtblCall__IIJLorg_eclipse_swt_internal_win32_POINT_2J", +#else + "VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J", +#endif +#ifndef JNI64 + "VtblCall__IIJZ", +#else + "VtblCall__IJJZ", +#endif #ifndef JNI64 "VtblCall__IIJ_3I", #else "VtblCall__IJJ_3I", #endif +#ifndef JNI64 + "VtblCall__IIJ_3J", +#else + "VtblCall__IJJ_3J", +#endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_ole_win32_CAUUID_2", #else @@ -324,25 +419,45 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII", #else - "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ", + "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIII", #endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I", #else - "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I", + "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2III_3I", +#endif +#ifndef JNI64 + "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ", +#else + "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ", #endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2", #else "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2", #endif +#ifndef JNI64 + "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I", +#else + "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I", +#endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I", +#else + "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I", +#endif +#ifndef JNI64 + "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J", #else "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J", #endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I", +#else + "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3I", +#endif +#ifndef JNI64 + "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3J", #else "VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J", #endif @@ -368,6 +483,11 @@ char * COM_nativeFunctionNames[] = { #endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ", +#else + "VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2IZ", +#endif +#ifndef JNI64 + "VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2JZ", #else "VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ", #endif @@ -378,6 +498,11 @@ char * COM_nativeFunctionNames[] = { #endif #ifndef JNI64 "VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I", +#else + "VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I", +#endif +#ifndef JNI64 + "VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J", #else "VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J", #endif @@ -394,12 +519,12 @@ char * COM_nativeFunctionNames[] = { #ifndef JNI64 "VtblCall__II_3CI", #else - "VtblCall__IJ_3CJ", + "VtblCall__IJ_3CI", #endif #ifndef JNI64 "VtblCall__II_3CIIII_3I", #else - "VtblCall__IJ_3CJIII_3J", + "VtblCall__IJ_3CIIII_3I", #endif #ifndef JNI64 "VtblCall__II_3CIII_3I", @@ -411,6 +536,16 @@ char * COM_nativeFunctionNames[] = { #else "VtblCall__IJ_3CIII_3J", #endif +#ifndef JNI64 + "VtblCall__II_3CJ", +#else + "VtblCall__IJ_3CJ", +#endif +#ifndef JNI64 + "VtblCall__II_3CJIII_3J", +#else + "VtblCall__IJ_3CJIII_3J", +#endif #ifndef JNI64 "VtblCall__II_3CJII_3J", #else diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.h index 5aca2992f2..614b321940 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.h +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_stats.h @@ -167,12 +167,12 @@ typedef enum { #ifndef JNI64 VtblCall__IIII_FUNC, #else - VtblCall__IJJJ_FUNC, + VtblCall__IJII_FUNC, #endif #ifndef JNI64 VtblCall__IIIII_FUNC, #else - VtblCall__IJIIJ_FUNC, + VtblCall__IJIII_FUNC, #endif #ifndef JNI64 VtblCall__IIIIII_FUNC, @@ -194,6 +194,21 @@ typedef enum { #else VtblCall__IJJJJJIIII_FUNC, #endif +#ifndef JNI64 + VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I_FUNC, +#else + VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J_FUNC, +#else + VtblCall__IJIIILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIIIJ_FUNC, +#else + VtblCall__IJIIJ_FUNC, +#endif #ifndef JNI64 VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2_FUNC, #else @@ -202,12 +217,12 @@ typedef enum { #ifndef JNI64 VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I_FUNC, #else - VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC, + VtblCall__IJIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I_FUNC, #endif #ifndef JNI64 VtblCall__IIIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC, #else - VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC, + VtblCall__IJIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC, #endif #ifndef JNI64 VtblCall__IIII_3I_FUNC, @@ -219,6 +234,11 @@ typedef enum { #else VtblCall__IJII_3J_FUNC, #endif +#ifndef JNI64 + VtblCall__IIIJ_FUNC, +#else + VtblCall__IJIJ_FUNC, +#endif #ifndef JNI64 VtblCall__IIIJ_3I_FUNC, #else @@ -227,7 +247,7 @@ typedef enum { #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I_FUNC, #else - VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC, + VtblCall__IJILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I_FUNC, #endif #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2_FUNC, @@ -237,27 +257,42 @@ typedef enum { #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II_FUNC, #else - VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC, + VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2II_FUNC, #endif #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC, +#else + VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC, #else VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2JLorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I_FUNC, #endif +#ifndef JNI64 + VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC, +#else + VtblCall__IJILorg_eclipse_swt_internal_ole_win32_GUID_2JJ_FUNC, +#endif #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I_FUNC, #else - VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC, + VtblCall__IJILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I_FUNC, #endif #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2_FUNC, +#else + VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC, #else VtblCall__IJILorg_eclipse_swt_internal_win32_MSG_2JIJLorg_eclipse_swt_internal_win32_RECT_2_FUNC, #endif #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_win32_POINT_2I_FUNC, #else - VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC, + VtblCall__IJILorg_eclipse_swt_internal_win32_POINT_2I_FUNC, #endif #ifndef JNI64 VtblCall__IIILorg_eclipse_swt_internal_win32_SIZE_2_FUNC, @@ -267,7 +302,7 @@ typedef enum { #ifndef JNI64 VtblCall__IIIZ_FUNC, #else - VtblCall__IJJZ_FUNC, + VtblCall__IJIZ_FUNC, #endif #ifndef JNI64 VtblCall__III_3I_FUNC, @@ -277,28 +312,88 @@ typedef enum { #ifndef JNI64 VtblCall__III_3II_3I_FUNC, #else - VtblCall__IJI_3JI_3I_FUNC, + VtblCall__IJI_3II_3I_FUNC, #endif #ifndef JNI64 VtblCall__III_3I_3I_3I_3I_FUNC, #else - VtblCall__IJI_3J_3J_3I_3J_FUNC, + VtblCall__IJI_3I_3I_3I_3I_FUNC, #endif #ifndef JNI64 VtblCall__III_3J_FUNC, #else VtblCall__IJI_3J_FUNC, #endif +#ifndef JNI64 + VtblCall__III_3JI_3I_FUNC, +#else + VtblCall__IJI_3JI_3I_FUNC, +#endif +#ifndef JNI64 + VtblCall__III_3J_3J_3I_3J_FUNC, +#else + VtblCall__IJI_3J_3J_3I_3J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJI_FUNC, +#else + VtblCall__IJJI_FUNC, +#endif #ifndef JNI64 VtblCall__IIJI_3I_FUNC, #else VtblCall__IJJI_3I_FUNC, #endif +#ifndef JNI64 + VtblCall__IIJI_3J_FUNC, +#else + VtblCall__IJJI_3J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJJ_FUNC, +#else + VtblCall__IJJJ_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC, +#else + VtblCall__IJJJLorg_eclipse_swt_internal_ole_win32_GUID_2J_3J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC, +#else + VtblCall__IJJJLorg_eclipse_swt_internal_win32_POINT_2I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC, +#else + VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC, +#else + VtblCall__IJJLorg_eclipse_swt_internal_ole_win32_STATSTG_2_3J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC, +#else + VtblCall__IJJLorg_eclipse_swt_internal_win32_POINT_2J_FUNC, +#endif +#ifndef JNI64 + VtblCall__IIJZ_FUNC, +#else + VtblCall__IJJZ_FUNC, +#endif #ifndef JNI64 VtblCall__IIJ_3I_FUNC, #else VtblCall__IJJ_3I_FUNC, #endif +#ifndef JNI64 + VtblCall__IIJ_3J_FUNC, +#else + VtblCall__IJJ_3J_FUNC, +#endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_ole_win32_CAUUID_2_FUNC, #else @@ -332,25 +427,45 @@ typedef enum { #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII_FUNC, #else - VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC, + VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIII_FUNC, #endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I_FUNC, #else - VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC, + VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2III_3I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC, +#else + VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2IIJJ_FUNC, #endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2_FUNC, #else VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2_FUNC, #endif +#ifndef JNI64 + VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC, +#else + VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2JII_3I_FUNC, +#endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC, +#else + VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC, #else VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2Lorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC, #endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC, +#else + VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC, #else VtblCall__IJLorg_eclipse_swt_internal_ole_win32_GUID_2_3J_FUNC, #endif @@ -376,6 +491,11 @@ typedef enum { #endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ_FUNC, +#else + VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2IZ_FUNC, +#endif +#ifndef JNI64 + VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC, #else VtblCall__IJLorg_eclipse_swt_internal_win32_RECT_2JZ_FUNC, #endif @@ -386,6 +506,11 @@ typedef enum { #endif #ifndef JNI64 VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I_FUNC, +#else + VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2I_FUNC, +#endif +#ifndef JNI64 + VtblCall__IILorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC, #else VtblCall__IJLorg_eclipse_swt_internal_win32_SHDRAGIMAGE_2J_FUNC, #endif @@ -402,12 +527,12 @@ typedef enum { #ifndef JNI64 VtblCall__II_3CI_FUNC, #else - VtblCall__IJ_3CJ_FUNC, + VtblCall__IJ_3CI_FUNC, #endif #ifndef JNI64 VtblCall__II_3CIIII_3I_FUNC, #else - VtblCall__IJ_3CJIII_3J_FUNC, + VtblCall__IJ_3CIIII_3I_FUNC, #endif #ifndef JNI64 VtblCall__II_3CIII_3I_FUNC, @@ -419,6 +544,16 @@ typedef enum { #else VtblCall__IJ_3CIII_3J_FUNC, #endif +#ifndef JNI64 + VtblCall__II_3CJ_FUNC, +#else + VtblCall__IJ_3CJ_FUNC, +#endif +#ifndef JNI64 + VtblCall__II_3CJIII_3J_FUNC, +#else + VtblCall__IJ_3CJIII_3J_FUNC, +#endif #ifndef JNI64 VtblCall__II_3CJII_3J_FUNC, #else 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 index f3048876b8..5bf55452b9 100644 --- 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 @@ -42,6 +42,7 @@ public class COM extends OS { //public static final GUID IIDIDataAdviseHolder = IIDFromString("{00000110-0000-0000-C000-000000000046}"); //$NON-NLS-1$ public static final GUID IIDIDataObject = IIDFromString("{0000010E-0000-0000-C000-000000000046}"); //$NON-NLS-1$ public static final GUID IIDIDispatch = IIDFromString("{00020400-0000-0000-C000-000000000046}"); //$NON-NLS-1$ + public static final GUID IIDIDispatchEx = IIDFromString("{A6EF9860-C720-11D0-9337-00A0C90DCAA9}"); //$NON-NLS-1$ public static final GUID IIDIDocHostUIHandler = IIDFromString("{BD3F23C0-D43E-11CF-893B-00AA00BDCE1A}"); //$NON-NLS-1$ public static final GUID IIDIDocHostShowUI = IIDFromString("{C4D244B0-D43E-11CF-893B-00AA00BDCE1A}"); //$NON-NLS-1$ public static final GUID IIDIDropSource = IIDFromString("{00000121-0000-0000-C000-000000000046}"); //$NON-NLS-1$ @@ -63,6 +64,7 @@ public class COM extends OS { //public static final GUID IIDIFontDisp = IIDFromString("{BEF6E003-A874-101A-8BBA-00AA00300CAB}"); //$NON-NLS-1$ public static final /*GUID*/ String IIDIHTMLDocumentEvents2 = /*IIDFromString(*/"{3050F613-98B5-11CF-BB82-00AA00BDCE0B}"/*)*/; public static final GUID IIDIInternetSecurityManager = IIDFromString("{79eac9ee-baf9-11ce-8c82-00aa004ba90b}"); //$NON-NLS-1$ + public static final GUID IIDIJScriptTypeInfo = IIDFromString("{C59C6B12-F6C1-11CF-8835-00A0C911E8B2}"); //$NON-NLS-1$ //public static final GUID IIDILockBytes = IIDFromString("{0000000A-0000-0000-C000-000000000046}"); //$NON-NLS-1$ //public static final GUID IIDIMalloc = IIDFromString("{00000002-0000-0000-C000-000000000046}"); //$NON-NLS-1$ //public static final GUID IIDIMallocSpy = IIDFromString("{0000001D-0000-0000-C000-000000000046}"); //$NON-NLS-1$ @@ -167,9 +169,11 @@ public class COM extends OS { //public static final int COINIT_SPEED_OVER_MEMORY = 8; public static final int DATADIR_GET = 1; public static final int DATADIR_SET = 2; + public static final int DISPATCH_CONSTRUCT = 0x4000; 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 DISP_E_UNKNOWNNAME = 0x80020006; //public static final int DISPID_AMBIENT_APPEARANCE = -716; //public static final int DISPID_AMBIENT_AUTOCLIP = -715; public static final int DISPID_AMBIENT_BACKCOLOR = -701; @@ -376,8 +380,8 @@ public class COM extends OS { //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; + public static final short DISPID_UNKNOWN = -1; + public static final short DISPID_VALUE = 0; public static final short VT_BOOL = 11; public static final short VT_BSTR = 8; public static final short VT_BYREF = 16384; @@ -641,52 +645,70 @@ public static final native void VariantInit(int /*long*/ pvarg); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, char[] arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int /*long*/ arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, int /*long*/ arg1, POINT arg2, int arg3); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, POINT arg1, int /*long*/ arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, long arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, POINT arg2, int arg3); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, POINT arg2, int arg3); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, POINT arg1, int arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, POINT arg1, long arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, POINT arg0, int arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, SHDRAGIMAGE arg0, int /*long*/ arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, SHDRAGIMAGE arg0, int arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, SHDRAGIMAGE arg0, long arg1); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int arg2, int arg3, int[] arg4); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int arg2, int arg3, long[] arg4); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, long arg1, int arg2, int arg3, long[] arg4); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int /*long*/ arg1, int arg2, int arg3, int arg4, int /*long*/[] arg5); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, int arg1, int arg2, int arg3, int arg4, int [] arg5); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, char[] arg0, long arg1, int arg2, int arg3, int arg4, long[] arg5); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int[] arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int[] arg1); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long[] arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int[] arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long[] arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, int /*long*/ arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int[] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, long[] arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, long[] arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long arg1, int[] arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, int arg1, int[] arg2); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int /*long*/ arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, long arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, DVTARGETDEVICE arg2, SIZE arg3); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, int /*long*/ arg1, GUID arg2, int /*long*/ arg3, int /*long*/[] arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, GUID arg2, int arg3, int [] arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, long arg1, GUID arg2, long arg3, long [] arg4); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, FORMATETC arg1, int /*long*/[] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, FORMATETC arg1, int [] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, FORMATETC arg1, long[] arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1, int /*long*/ arg2, int /*long*/ arg3); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1, int arg2, int arg3); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1, long arg2, long arg3); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1, int arg2, int arg3, DISPPARAMS arg4, int /*long*/ arg5, EXCEPINFO arg6, int[] arg7); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1, int arg2, int arg3, DISPPARAMS arg4, int arg5, EXCEPINFO arg6, int[] arg7); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, GUID arg1, int arg2, int arg3, DISPPARAMS arg4, long arg5, EXCEPINFO arg6, int[] arg7); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, STATSTG arg1, int /*long*/[] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, STATSTG arg1, int [] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, STATSTG arg1, long[] arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, MSG arg0); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, MSG arg1, int /*long*/ arg2, int arg3, int /*long*/ arg4, RECT arg5); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, MSG arg1, int arg2, int arg3, int arg4, RECT arg5); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, MSG arg1, long arg2, int arg3, long arg4, RECT arg5); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, SIZE arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int /*long*/ arg0, boolean arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, boolean arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, long arg0, boolean arg1); public static final native int VtblCall (int fnNumber, int /*long*/ ppVtbl, boolean arg0); @@ -697,26 +719,36 @@ public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, FORMA public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, FORMATETC arg0, STGMEDIUM arg1, boolean arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int /*long*/[] arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int[] arg1); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, long[] arg1); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, GUID arg1, int /*long*/[] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, GUID arg1, int[] arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, GUID arg1, long[] arg2); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int /*long*/ arg1, int arg2, int arg3, int[] arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int arg1, int arg2, int arg3, int[] arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, long arg1, int arg2, int arg3, int[] arg4); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int arg1, int arg2, int /*long*/ arg3, int /*long*/ arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int arg1, int arg2, int arg3, int arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int arg1, int arg2, long arg3, long arg4); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, GUID arg0, int arg1, OLECMD arg2, OLECMDTEXT arg3); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, LICINFO arg0); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, RECT arg0, int /*long*/ arg1, boolean arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, RECT arg0, int arg1, boolean arg2); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, RECT arg0, long arg1, boolean arg2); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, RECT arg0, RECT arg1); public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, RECT arg0); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int /*long*/[] arg1, int /*long*/[] arg2, int[] arg3, int /*long*/[] arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int [] arg1, int [] arg2, int[] arg3, int [] arg4); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long[] arg1, long[] arg2, int[] arg3, long[] arg4); + +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int [] arg1, int arg2, int[] arg3); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, long[] arg1, int arg2, int[] arg3); -public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int /*long*/[] arg1, int arg2, int[] arg3); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, DISPPARAMS arg3, int arg4, EXCEPINFO arg5, int arg6); +public static final native int VtblCall(int fnNumber, int /*long*/ ppVtbl, int arg0, int arg1, int arg2, DISPPARAMS arg3, long arg4, EXCEPINFO arg5, long arg6); /** @param pStg cast=(IStorage *) */ public static final native int WriteClassStg(int /*long*/ pStg, GUID rclsid); 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 index 76a674c100..e4e9905bf9 100644 --- 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 @@ -12,8 +12,8 @@ package org.eclipse.swt.internal.ole.win32; import org.eclipse.swt.internal.win32.*; -public class IDispatch extends IUnknown -{ +public class IDispatch extends IUnknown { + public IDispatch(int /*long*/ address) { super(address); } diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatchEx.java b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatchEx.java new file mode 100644 index 0000000000..76e18752b3 --- /dev/null +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/org/eclipse/swt/internal/ole/win32/IDispatchEx.java @@ -0,0 +1,50 @@ +/******************************************************************************* + * Copyright (c) 2008 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.internal.ole.win32; + +public class IDispatchEx extends IDispatch { + +public IDispatchEx (int /*long*/ address) { + super (address); +} + +public int GetDispID (int /*long*/ bstrName, int grfdex, int[] pid) { + return COM.VtblCall (7, address, bstrName, grfdex, pid); +} + +public int InvokeEx (int id, int lcid, int wFlags, DISPPARAMS pdp, int /*long*/ pvarRes, EXCEPINFO pei, int /*long*/ pspCaller) { + return COM.VtblCall (8, address, id, lcid, wFlags, pdp, pvarRes, pei, pspCaller); +} + +public int DeleteMemberByName (int /*long*/ bstrName, int grfdex) { + return COM.VtblCall (9, address, bstrName, grfdex); +} + +public int DeleteMemberByDispID (int id) { + return COM.VtblCall (10, address, id); +} + +public int GetMemberProperties (int id, int grfdexFetch, int[] pgrfdex) { + return COM.VtblCall (11, address, id, grfdexFetch, pgrfdex); +} + +public int GetMemberName (int id, int /*long*/[] pbstrName) { + return COM.VtblCall (12, address, id, pbstrName); +} + +public int GetNextDispID (int grfdex, int id, int[] pid) { + return COM.VtblCall (13, address, grfdex, id, pid); +} + +public int GetNameSpaceParent (int /*long*/[] ppunk) { + return COM.VtblCall (14, address, ppunk); +} +} diff --git a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java index c769ecf62b..bccdcc65e4 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/common/org/eclipse/swt/SWT.java @@ -3096,6 +3096,13 @@ public class SWT { */ public static final int ERROR_INVALID_FONT = 48; + /** + * SWT error constant indicating that an attempt was made to + * use an BrowserFunction object which had already been disposed + * (value is 49). + */ + public static final int ERROR_FUNCTION_DISPOSED = 49; + /** * Constant indicating that an image or operation is of type bitmap (value is 0). */ diff --git a/bundles/org.eclipse.swt/components/external.idl b/bundles/org.eclipse.swt/components/external.idl new file mode 100644 index 0000000000..fbc6d82b2e --- /dev/null +++ b/bundles/org.eclipse.swt/components/external.idl @@ -0,0 +1,10 @@ +// to compile: xpidl -m typelib -I J:\teamswt\swt-builddir\gecko-sdk\idl\ -e External.xpt External.idl + +#include "nsISupports.idl" +#include "nsIVariant.idl" + +[scriptable, uuid(ded01d20-ba6f-11dd-ad8b-0800200c9a66)] + +interface External : nsISupports { + nsIVariant callJava (in unsigned long index, in nsIVariant args); +}; diff --git a/bundles/org.eclipse.swt/components/external.xpt b/bundles/org.eclipse.swt/components/external.xpt new file mode 100644 index 0000000000..f57da7eddb Binary files /dev/null and b/bundles/org.eclipse.swt/components/external.xpt differ -- cgit