*** keyword substitution change ***
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 2f4c679..ee27ccc 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
@@ -1,3286 +1,3286 @@
-/*******************************************************************************

- * Copyright (c) 2000, 2003 IBM Corporation and others.

- * All rights reserved. This program and the accompanying materials 

- * are made available under the terms of the Common Public License v1.0

- * which accompanies this distribution, and is available at

- * http://www.eclipse.org/legal/cpl-v10.html

- * 

- * Contributors:

- *     IBM Corporation - initial API and implementation

- *******************************************************************************/

-

-#include "swt.h"

-#include "com_structs.h"

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CLSIDFromProgID

- * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CLSIDFromProgID

-  (JNIEnv *env, jclass that, jcharArray lpszProgID, jobject pclsid)

-{

-    LPCOLESTR lpszProgID1=NULL;

-    GUID guid, *pclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CLSIDFromProgID\n");

-#endif

-

-    if (pclsid) {

-        pclsid1=&guid;

-        getGUIDFields(env, pclsid, pclsid1);

-    }

-

-    if (lpszProgID)

-        lpszProgID1 = (LPCOLESTR)(*env)->GetCharArrayElements(env, lpszProgID, NULL);

-

-    rc = (jint) CLSIDFromProgID(lpszProgID1, pclsid1);

-

-    if (lpszProgID)

-        (*env)->ReleaseCharArrayElements(env, lpszProgID, (jchar *)lpszProgID1, 0);

-    

-    if (pclsid) {

-        setGUIDFields(env, pclsid, pclsid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CLSIDFromString

- * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CLSIDFromString

-  (JNIEnv *env, jclass that, jcharArray lpsz, jobject pclsid)

-{

-    LPOLESTR lpsz1=NULL;

-    GUID guid, *pclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CLSIDFromString\n");

-#endif

-    if (pclsid) {

-        pclsid1=&guid;

-        getGUIDFields(env, pclsid, pclsid1);

-    }

-    

-    if (lpsz)

-        lpsz1 = (LPOLESTR)(*env)->GetCharArrayElements(env, lpsz, NULL);

-

-    rc = CLSIDFromString(lpsz1, pclsid1);

-

-    if (lpsz)

-        (*env)->ReleaseCharArrayElements(env, lpsz, lpsz1, 0);

-

-    if (pclsid) {

-        setGUIDFields(env, pclsid, pclsid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoCreateInstance

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoCreateInstance

-  (JNIEnv *env, jclass that, jobject rclsid, jint pUnkOuter, jint dwClsContext, jobject riid, jintArray ppv)

-{

-    LPVOID *ppv1=NULL;

-    GUID guid1, guid2, *riid1=NULL, *rclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CoCreateInstance\n");

-#endif

-

-    if (rclsid) {

-        rclsid1=&guid2;

-        getGUIDFields(env, rclsid, rclsid1);

-    }

-    if (riid) {

-        riid1=&guid1;

-        getGUIDFields(env, riid, riid1);

-    }

-    

-    if (ppv)

-        ppv1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppv, NULL);

-

-    rc = (jint) CoCreateInstance(rclsid1, (LPUNKNOWN)pUnkOuter, dwClsContext, riid1, ppv1);

-

-    if (ppv)

-        (*env)->ReleaseIntArrayElements(env, ppv, (jint *)ppv1, 0);

-

-    if (rclsid) {

-        setGUIDFields(env, rclsid, rclsid1);

-    }

-    if (riid) {

-        setGUIDFields(env, riid, riid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoFreeUnusedLibraries

- * Signature: ()V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoFreeUnusedLibraries

-  (JNIEnv *env, jclass that)

-{

-    CoFreeUnusedLibraries();

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoGetClassObject

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoGetClassObject

-  (JNIEnv *env, jclass that, jobject rclsid, jint dwClsContext, jint pServerInfo, 

-                    jobject riid, jintArray ppv)

-{

-    LPVOID *ppv1=NULL;

-    GUID guid1, *rclsid1=NULL;

-    GUID guid2, *riid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CoGetClassObject\n");

-#endif

-

-    if (rclsid) {

-        rclsid1=&guid1;

-        getGUIDFields(env, rclsid, rclsid1);

-    }

-    if (riid) {

-        riid1=&guid2;

-        getGUIDFields(env, riid, riid1);

-    }

-    if (ppv)

-        ppv1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppv, NULL);

-

-    rc = (jint) CoGetClassObject(rclsid1, dwClsContext, (COSERVERINFO *)pServerInfo, riid1, ppv1);

-    if (ppv)

-        (*env)->ReleaseIntArrayElements(env, ppv, (jint *)ppv1, 0);

-

-    if (rclsid) {

-        setGUIDFields(env, rclsid, rclsid1);

-    }

-    if (riid) {

-        setGUIDFields(env, riid, riid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoLockObjectExternal

- * Signature: (IZZ)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoLockObjectExternal

-  (JNIEnv *env, jclass that, jint pUnk, jboolean fLock, jboolean fLastUnlockReleases)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CoLockObjectExternal\n");

-#endif

-	return (jint) CoLockObjectExternal((IUnknown *)pUnk, (BOOL)fLock, (BOOL)fLastUnlockReleases);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoTaskMemAlloc

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoTaskMemAlloc

-  (JNIEnv *env, jclass that, jint cb)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CoTaskMemAlloc\n");

-#endif

-    return (jint) CoTaskMemAlloc((ULONG)cb);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoTaskMemFree

- * Signature: (I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoTaskMemFree

-  (JNIEnv *env, jclass that, jint pv)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CoTaskMemFree\n");

-#endif

-    CoTaskMemFree((LPVOID)pv);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    DoDragDrop

- * Signature: (III[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_DoDragDrop

-  (JNIEnv *env, jclass that, jint pDataObject, jint pDropSource, jint dwOKEffect, jintArray pdwEffect)

-{

-    jint *pdwEffect1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "DoDragDrop\n");

-#endif

-

-    if (pdwEffect)

-        pdwEffect1 = (*env)->GetIntArrayElements(env, pdwEffect, NULL);

-

-    rc = DoDragDrop((IDataObject *)pDataObject, (IDropSource *)pDropSource, dwOKEffect, pdwEffect1);

-

-    if (pdwEffect)

-        (*env)->ReleaseIntArrayElements(env, pdwEffect, pdwEffect1, 0);

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    GetClassFile

- * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_GetClassFile

-  (JNIEnv *env, jclass that, jcharArray szFileName, jobject clsid)

-{

-    LPCWSTR szFileName1=NULL;

-    GUID guid, *clsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "GetClassFile\n");

-#endif

-    if (clsid) {

-        clsid1=&guid;

-        getGUIDFields(env, clsid, clsid1);

-    }

-    

-    if (szFileName)

-        szFileName1 = (LPCWSTR)(*env)->GetCharArrayElements(env, szFileName, NULL);

-

-    rc = GetClassFile(szFileName1, clsid1);

-

-    if (szFileName)

-        (*env)->ReleaseCharArrayElements(env, szFileName, (jchar *)szFileName1, 0);

-

-    if (clsid) {

-        setGUIDFields(env, clsid, clsid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    IIDFromString

- * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_IIDFromString

-  (JNIEnv *env, jclass that, jcharArray lpsz, jobject lpiid)

-{

-    LPOLESTR lpsz1=NULL;

-    GUID guid, *lpiid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "IIDFromString\n");

-#endif

-

-    if (lpsz)

-        lpsz1 = (LPOLESTR)(*env)->GetCharArrayElements(env, lpsz, NULL);

-        

-    if (lpiid) {

-        lpiid1=&guid;

-        getGUIDFields(env, lpiid, lpiid1);

-    }

-

-    rc = (jint) IIDFromString(lpsz1, lpiid1);

-

-    if (lpiid) {

-        setGUIDFields(env, lpiid, lpiid1);

-    }

-

-    if (lpsz)

-        (*env)->ReleaseCharArrayElements(env, lpsz, (jchar *)lpsz1, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    IsEqualGUID

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;Lorg/eclipse/swt/internal/ole/win32/GUID;)Z

- */

-JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_IsEqualGUID

-  (JNIEnv *env, jclass that, jobject rguid1, jobject rguid2)

-{

-    GUID guid1, *rguid11=NULL;

-    GUID guid2, *rguid21=NULL;

-    jboolean rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "IsEqualGUID\n");

-#endif

-

-    if (rguid1) {

-        rguid11=&guid1;

-        getGUIDFields(env, rguid1, rguid11);

-    }

-

-    if (rguid2) {

-        rguid21=&guid2;

-        getGUIDFields(env, rguid2, rguid21);

-    }

-

-    rc = (jboolean) IsEqualGUID(rguid11, rguid21);

-

-    if (rguid1) {

-        setGUIDFields(env, rguid1, rguid11);

-    }

-    if (rguid2) {

-        setGUIDFields(env, rguid2, rguid21);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/FORMATETC;I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_FORMATETC_2I

-  (JNIEnv *env, jclass that, jint Destination, jobject Source, jint Length)

-{

-    FORMATETC formatetc, *Source1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_FORMATETC_2I\n");

-#endif

-

-    if (Source) {

-        Source1=&formatetc;

-        getFORMATETCFields(env, Source, Source1);

-    }

-    MoveMemory((PVOID)Destination, Source1, Length);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/GUID;I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_GUID_2I

-  (JNIEnv *env, jclass that, jint DestinationPtr, jobject Source, jint Length)

-{

-    GUID guid, *Source1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "MoveMemory__ILorg_eclipse_swt_internal_ole_win32_GUID_2I\n");

-#endif

-

-    if (Source) {

-        Source1=&guid;

-        getGUIDFields(env, Source, Source1);

-    }

-    MoveMemory((PVOID)DestinationPtr, Source1, Length);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO;I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_OLEINPLACEFRAMEINFO_2I

-  (JNIEnv *env, jclass that, jint DestinationPtr, jobject Source, jint Length)

-{

-    OLEINPLACEFRAMEINFO oleinplaceframeinfo, *Source1=&oleinplaceframeinfo;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_OLEINPLACEFRAMEINFO_2I\n");

-#endif

-

-    if (Source) {

-        getOLEINPLACEFRAMEINFOFields(env, Source, Source1);

-    }

-

-    MoveMemory((PVOID)DestinationPtr, Source1, Length);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/STATSTG;I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STATSTG_2I

-  (JNIEnv *env, jclass that, jint Destination, jobject Source, jint Length)

-{

-    STATSTG statstg, *Source1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STATSTG_2I\n");

-#endif

-

-    if (Source) {

-        Source1=&statstg;

-        getSTATSTGFields(env, Source, Source1);

-    }

-    MoveMemory((PVOID)Destination, Source1, Length);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/STGMEDIUM;I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2I

-  (JNIEnv *env, jclass that, jint Destination, jobject Source, jint Length)

-{

-    STGMEDIUM stgmedium, *Source1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2I\n");

-#endif

-

-    if (Source) {

-        Source1=&stgmedium;

-        getSTGMEDIUMFields(env, Source, Source1);

-    }

-    MoveMemory((PVOID)Destination, Source1, Length);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/STGMEDIUM;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)

-{

-    STGMEDIUM stgmedium, *Destination1=&stgmedium;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2II\n");

-#endif

-

-	MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);

-

-    if (Destination) {

-        setSTGMEDIUMFields(env, Destination, Destination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/DISPPARAMS;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)

-{

-    DISPPARAMS dispparams, *Destination1=&dispparams;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2II\n");

-#endif

-

-    MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);

-

-    if (Destination) {

-        setDISPPARAMSFields(env, Destination, Destination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/FORMATETC;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FORMATETC_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    FORMATETC formatetc, *Destination1=&formatetc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FORMATETC_2II\n");

-#endif

-

-    MoveMemory((PVOID)Destination1, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        setFORMATETCFields(env, Destination, Destination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_GUID_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)

-{

-    GUID guid, *Destination1=&guid;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_GUID_2II\n");

-#endif

-

-    MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);

-

-    if (Destination) {

-        setGUIDFields(env, Destination, Destination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/STATSTG;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STATSTG_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    STATSTG statstg, *Destination1=&statstg;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STATSTG_2II\n");

-#endif

-

-    MoveMemory((PVOID)Destination1, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        setSTATSTGFields(env, Destination, Destination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/TYPEATTR;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_TYPEATTR_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)

-{

-    TYPEATTR typeattr, *Destination1=&typeattr;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_TYPEATTR_2II\n");

-#endif

-    MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);

-    if (Destination) {

-        setTYPEATTRFields(env, Destination, Destination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/win32/RECT;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_win32_RECT_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    RECT rect, *lpDestination1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_win32_RECT_2II\n");

-#endif

-

-       MoveMemory((PVOID)&rect, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        lpDestination1 = ▭

-        setRECTFields(env, Destination, lpDestination1);

-    }

-}

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/FUNCDESC1;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC1_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    FUNCDESC funcdesc, *lpDestination1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC1_2II\n");

-#endif

-

-    MoveMemory((PVOID)&funcdesc, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        lpDestination1 = &funcdesc;

-        setFUNCDESC1Fields(env, Destination, lpDestination1);

-    }

-}

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/FUNCDESC2;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC2_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    FUNCDESC funcdesc, *lpDestination1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC2_2II\n");

-#endif

-

-    MoveMemory((PVOID)&funcdesc, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        lpDestination1 = &funcdesc;

-        setFUNCDESC2Fields(env, Destination, lpDestination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/VARDESC1;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC1_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    VARDESC vardesc, *lpDestination1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC1_2II\n");

-#endif

-

-       MoveMemory((PVOID)&vardesc, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        lpDestination1 = &vardesc;

-        setVARDESC1Fields(env, Destination, lpDestination1);

-    }

-}

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/VARDESC2;II)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC2_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    VARDESC vardesc, *lpDestination1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC2_2II\n");

-#endif

-

-       MoveMemory((PVOID)&vardesc, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        lpDestination1 = &vardesc;

-        setVARDESC2Fields(env, Destination, lpDestination1);

-    }

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleCreate

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;Lorg/eclipse/swt/internal/ole/win32/GUID;ILorg/eclipse/swt/internal/ole/win32/FORMATETC;II[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleCreate

-  (JNIEnv *env, jclass that, jobject rclsid, jobject riid, jint renderopt, 

-                             jobject pFormatEtc, jint pClientSite, jint pStg, jintArray ppvObject)

-{

-    LPVOID *ppvObject1=NULL;

-    GUID guid1, *rclsid1=NULL;

-    GUID guid2, *riid1=NULL;

-    FORMATETC formatec, *pFormatEtc1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleCreate\n");

-#endif

-

-    if (rclsid) {

-        rclsid1=&guid1;

-        getGUIDFields(env, rclsid, rclsid1);

-    }

-    if (riid) {

-        riid1=&guid2;

-        getGUIDFields(env, riid, riid1);

-    }

-    if (pFormatEtc) {

-        pFormatEtc1 = &formatec;

-        getFORMATETCFields(env, pFormatEtc, pFormatEtc1);

-    }

-

-    if (ppvObject)

-        ppvObject1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObject, NULL);

-

-    rc = (jint) OleCreate(rclsid1, riid1, renderopt, pFormatEtc1, (IOleClientSite * )pClientSite, (IStorage * )pStg, ppvObject1);

-

-    if (ppvObject)

-        (*env)->ReleaseIntArrayElements(env, ppvObject, (jint *)ppvObject1, 0);

-    

-/*  all of these objects are inputs so we don't not need to set the

-    fields back

-*/

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleCreateFromFile

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[CLorg/eclipse/swt/internal/ole/win32/GUID;ILorg/eclipse/swt/internal/ole/win32/FORMATETC;II[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleCreateFromFile

-  (JNIEnv *env, jclass that, jobject rclsid, jcharArray lpszFileName, jobject riid, jint renderopt, 

-			jobject pFormatEtc, jint pClientSite, jint pStg, jintArray ppvObj)

-{

-    LPVOID *ppvObj1=NULL;

-    LPCOLESTR lpszFileName1=NULL;

-    GUID guid1, *rclsid1=NULL;

-    GUID guid2, *riid1=NULL;

-    FORMATETC formatec, *pFormatEtc1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleCreateFromFile\n");

-#endif

-    

-    if (rclsid) {

-        rclsid1=&guid1;

-        getGUIDFields(env, rclsid, rclsid1);

-    }

-

-    if (riid) {

-        riid1=&guid2;

-        getGUIDFields(env, riid, riid1);

-    }

-    if (pFormatEtc) {

-        pFormatEtc1 = &formatec;

-        getFORMATETCFields(env, pFormatEtc, pFormatEtc1);

-    }

-

-    if (lpszFileName)

-        lpszFileName1 = (LPCOLESTR)(*env)->GetCharArrayElements(env, lpszFileName, NULL);

-

-    if (ppvObj)

-        ppvObj1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObj, NULL);

-

-    rc = (jint) OleCreateFromFile(rclsid1, lpszFileName1, riid1, renderopt, pFormatEtc1, (LPOLECLIENTSITE)pClientSite, (LPSTORAGE)pStg, ppvObj1);

-

-    if (ppvObj)

-        (*env)->ReleaseIntArrayElements(env, ppvObj, (jint *)ppvObj1, 0);

-    

-    if (lpszFileName)

-        (*env)->ReleaseCharArrayElements(env, lpszFileName, (jchar *)lpszFileName1, 0);

-

-/*  all of these objects are inputs so we don't not need to set the

-    fields back

-*/

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleCreatePropertyFrame

- * Signature: (III[CI[IIIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleCreatePropertyFrame

-  (JNIEnv *env, jclass that, jint hwndOwner, jint x, jint y, jcharArray lpszCaption, jint cObjects, jintArray lplpUnk, jint cPages, jint lpPageClsID, jint lcid, jint dwReserved, jint lpvReserved)

-{

-    LPCOLESTR lpszCaption1=NULL;

-    jint *lplpUnk1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleCreatePropertyFrame\n");

-#endif

-

-    if (lpszCaption)

-        lpszCaption1 = (LPCOLESTR)(*env)->GetCharArrayElements(env, lpszCaption, NULL);

-

-    if (lplpUnk)

-        lplpUnk1 = (*env)->GetIntArrayElements(env, lplpUnk, NULL);

-

-    rc = (jint) OleCreatePropertyFrame((HWND)hwndOwner, x, y, lpszCaption1, cObjects, (LPUNKNOWN FAR*)lplpUnk1, cPages, (LPCLSID)lpPageClsID, (LCID)lcid, dwReserved, (LPVOID)lpvReserved);

-

-    if (lplpUnk)

-        (*env)->ReleaseIntArrayElements(env, lplpUnk, (jint *)lplpUnk1, 0);

-

-    if (lpszCaption)

-        (*env)->ReleaseCharArrayElements(env, lpszCaption, (jchar *)lpszCaption1, 0);

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleIsRunning

- * Signature: (I)Z

- */

-JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleIsRunning

-  (JNIEnv *env, jclass that, jint pObject)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleIsRunning\n");

-#endif

-    return (jboolean) OleIsRunning((LPOLEOBJECT)pObject);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleLoad

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/GUID;I[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleLoad

-  (JNIEnv *env, jclass that, jint pStg, jobject riid, jint pClientSite, jintArray ppvObj)

-{

-    LPVOID *ppvObj1=NULL;

-    GUID guid, *riid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleLoad\n");

-#endif

-    if (riid) {

-        riid1=&guid;

-        getGUIDFields(env, riid, riid1);

-    }

-    

-    if (ppvObj)

-        ppvObj1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObj, NULL);

-

-    rc = (jint) OleLoad((IStorage *)pStg, riid1, (IOleClientSite *)pClientSite, ppvObj1); /* cast it to an OLE function returning int */

-

-    if (ppvObj)

-        (*env)->ReleaseIntArrayElements(env, ppvObj, (jint *)ppvObj1, 0);

-

-    if (riid) {

-        setGUIDFields(env, riid, riid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleRun

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleRun

-  (JNIEnv *env, jclass that, jint pUnknown)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleRun\n");

-#endif

-    return (jint) OleRun((LPUNKNOWN)pUnknown);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleSave

- * Signature: (IIZ)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSave

-  (JNIEnv *env, jclass that, jint pPS, jint pStg, jboolean fSameAsLoad)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleSave\n");

-#endif

-    return (jint) OleSave((IPersistStorage *)pPS, (IStorage *)pStg, fSameAsLoad);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleSetContainedObject

- * Signature: (IZ)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSetContainedObject

-  (JNIEnv *env, jclass that, jint pUnk, jboolean fContained)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleSetContainedObject\n");

-#endif

-    return (jint) OleSetContainedObject((LPUNKNOWN)pUnk, fContained);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleSetMenuDescriptor

- * Signature: (IIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSetMenuDescriptor

-  (JNIEnv *env, jclass that, jint holemenu, jint hwndFrame, jint hwndActiveObject, jint lpFrame, jint lpActiveObj)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleSetMenuDescriptor\n");

-#endif

-    return (jint) OleSetMenuDescriptor((HOLEMENU)holemenu, (HWND)hwndFrame, (HWND)hwndActiveObject, (LPOLEINPLACEFRAME)lpFrame, (LPOLEINPLACEACTIVEOBJECT)lpActiveObj);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleTranslateColor

- * Signature: (II[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleTranslateColor

-  (JNIEnv *env, jclass that, jint clr, jint hpal, jintArray pcolorref)

-{

-    jint *pcolorref1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleTranslateColor\n");

-#endif

-

-    if (pcolorref)

-        pcolorref1 = (*env)->GetIntArrayElements(env, pcolorref, NULL);

-

-    rc = (jint) OleTranslateColor((OLE_COLOR)clr, (HPALETTE)hpal, (COLORREF *)pcolorref1);

-

-    if (pcolorref)

-        (*env)->ReleaseIntArrayElements(env, pcolorref, pcolorref1, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    RegisterDragDrop

- * Signature: (II)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_RegisterDragDrop

-  (JNIEnv *env, jclass that, jint hwnd, jint pDropTarget)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "RegisterDragDrop\n");

-#endif

-    return (jint) RegisterDragDrop((HWND)hwnd, (IDropTarget *)pDropTarget);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    RevokeDragDrop

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_RevokeDragDrop

-  (JNIEnv *env, jclass that, jint hwnd)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "RevokeDragDrop\n");

-#endif

-    return (jint) RevokeDragDrop((HWND)hwnd);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    StgCreateDocfile

- * Signature: ([CII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StgCreateDocfile

-  (JNIEnv *env, jclass that, jcharArray pwcsName, jint grfMode, jint reserved, jintArray ppstgOpen)

-{

-    jchar *pwcsName1=NULL;

-    IStorage **ppstgOpen1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "StgCreateDocfile\n");

-#endif

-

-    if (pwcsName)

-        pwcsName1 = (*env)->GetCharArrayElements(env, pwcsName, NULL);

-

-    if (ppstgOpen)

-        ppstgOpen1 = (IStorage **)(*env)->GetIntArrayElements(env, ppstgOpen, NULL);

-

-    rc = (jint) StgCreateDocfile(pwcsName1, grfMode, reserved, ppstgOpen1);

-

-    if (ppstgOpen)

-        (*env)->ReleaseIntArrayElements(env, ppstgOpen, (jint *)ppstgOpen1, 0);

-

-    if (pwcsName)

-        (*env)->ReleaseCharArrayElements(env, pwcsName, pwcsName1, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    StgIsStorageFile

- * Signature: ([C)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StgIsStorageFile

-  (JNIEnv *env, jclass that, jcharArray pwcsName)

-{

-    const WCHAR *pwcsName1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "StgIsStorageFile\n");

-#endif

-

-    if (pwcsName)

-        pwcsName1 = (const WCHAR *)(*env)->GetCharArrayElements(env, pwcsName, NULL);

-

-    rc = (jint)StgIsStorageFile(pwcsName1);

-

-    if (pwcsName)

-        (*env)->ReleaseCharArrayElements(env, pwcsName, (jchar *)pwcsName1, 0);

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    StgOpenStorage

- * Signature: ([CIIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StgOpenStorage

-  (JNIEnv *env, jclass that, jcharArray pwcsName, jint pstgPriority, jint grfMode, jint snbExclude, jint reserved, jintArray ppstgOpen)

-{

-    const WCHAR *pwcsName1=NULL;

-    IStorage **ppstgOpen1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "StgOpenStorage\n");

-#endif

-

-    if (pwcsName)

-        pwcsName1 = (const WCHAR *)(*env)->GetCharArrayElements(env, pwcsName, NULL);

-

-    if (ppstgOpen)

-        ppstgOpen1 = (IStorage **)(*env)->GetIntArrayElements(env, ppstgOpen, NULL);

-

-    rc = (jint) StgOpenStorage(pwcsName1, (IStorage *)pstgPriority, grfMode, (SNB)snbExclude, reserved, ppstgOpen1);

-

-    if (ppstgOpen)

-        (*env)->ReleaseIntArrayElements(env, ppstgOpen, (jint *)ppstgOpen1, 0);

-

-    if (pwcsName)

-        (*env)->ReleaseCharArrayElements(env, pwcsName, (jchar *)pwcsName1, 0);

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    StringFromCLSID

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StringFromCLSID

-  (JNIEnv *env, jclass that, jobject rclsid, jintArray ppsz)

-{

-    LPOLESTR *ppsz1=NULL;

-    GUID guid, *rclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_StringFromCLSID\n");

-#endif

-

-    if (rclsid) {

-        rclsid1=&guid;

-        getGUIDFields(env, rclsid, rclsid1);

-    }

-

-    if (ppsz)

-        ppsz1 = (LPOLESTR *)(*env)->GetIntArrayElements(env, ppsz, NULL);

-

-    rc = (jint) StringFromCLSID(rclsid1, ppsz1);

-

-    if (ppsz)

-        (*env)->ReleaseIntArrayElements(env, ppsz, (jint *)ppsz1, 0);

-    

-    if (rclsid) {

-        setGUIDFields(env, rclsid, rclsid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    SysAllocString

- * Signature: ([C)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_SysAllocString

-   (JNIEnv *env, jclass that, jcharArray sz0)

-{

-	jchar *sz01=NULL;

-	jint rc;

-	

-#ifdef DEBUG_CALL_PRINTS

-	fprintf(stderr, "SysAllocString\n");

-#endif

-	if (sz0)

-		sz01 = (*env)->GetCharArrayElements(env, sz0, NULL);

-	rc = (jint) SysAllocString( (OLECHAR *) sz01);

-	if (sz0)

-		(*env)->ReleaseCharArrayElements(env, sz0, sz01, 0);

-	return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    SysFreeString

- * Signature: (I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_SysFreeString

-   (JNIEnv *env, jclass that, jint bstr)

-{

-#ifdef DEBUG_CALL_PRINTS

-	fprintf(stderr, "SysFreeString\n");

-#endif

-	SysFreeString((BSTR)bstr);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    SysStringByteLen

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_SysStringByteLen

-  (JNIEnv *env, jclass that, jint bstr)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "SysStringByteLen\n");

-#endif

-    return (jint) SysStringByteLen((BSTR)bstr);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VariantChangeType

- * Signature: (IISS)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantChangeType

-  (JNIEnv *env, jclass that, jint pvargDest, jint pvarSrc, jshort wFlags, jshort vt)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VariantChangeType\n");

-#endif

-    return (jint) VariantChangeType((VARIANTARG FAR* )pvargDest, (VARIANTARG FAR* )pvarSrc, wFlags, (VARTYPE) vt);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VariantClear

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantClear

-  (JNIEnv *env, jclass that, jint pvarg)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VariantClear\n");

-#endif

-    return (jint) VariantClear((VARIANTARG FAR* ) pvarg);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VariantInit

- * Signature: (I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantInit

-  (JNIEnv *env, jclass that, jint pvarg)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VariantInit\n");

-#endif

-    VariantInit((VARIANTARG FAR*)pvarg);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl)

-{

-    P_OLE_FN_1 fn; /* this is a function that returns int */

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II\n");

-#endif

-    fn = (P_OLE_FN_1)(*(int **)ppVtbl)[fnNumber];

-    return fn(ppVtbl); /* cast it to an OLE function returning int */

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[C)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3C

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0)

-{

-    P_OLE_FN_2 fn;

-	jchar *arg01=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3C\n");

-#endif

-

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-

-	if (arg0)

-		arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);

-

-	rc = fn(ppVtbl, (jint)arg01);

-

-	if (arg0)

-		(*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[C[C)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3C_3C

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jcharArray arg1)

-{

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jchar *arg01=NULL, *arg11=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3C_3C\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0)

-        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);

-

-    if (arg1)

-        arg11 = (*env)->GetCharArrayElements(env, arg1, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01, (jint)arg11); /* cast it to an OLE function returning int */

-

-    if (arg1)

-        (*env)->ReleaseCharArrayElements(env, arg1, arg11, 0);

-

-    if (arg0)

-        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[CI)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CI

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1)

-{

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jchar *arg01=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3CI\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0)

-        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);

-    

-    rc = fn(ppVtbl, (jint)arg01, arg1);

-

-    if (arg0)

-        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[CIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CIII_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-    P_OLE_FN_6 fn; /* this is a function that returns int */

-    jchar *arg01=NULL;

-    jint *arg41=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3CIII_3I\n");

-#endif

-

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0)

-        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);

-    if (arg4)

-        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, (jint)arg41); /* cast it to an OLE function returning int */

-

-    if (arg4)

-        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);

-    if (arg0)

-        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[CIIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CIIII_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1, jint arg2, jint arg3, jint arg4, jintArray arg5)

-{

-    P_OLE_FN_7 fn; /* this is a function that returns int */    jchar *arg01=NULL;

-    jint *arg51=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3CIIII_3I\n");

-#endif

-

-    fn = (P_OLE_FN_7)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0)

-        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);

-    if (arg5)

-        arg51 = (*env)->GetIntArrayElements(env, arg5, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, arg4, (jint)arg51); /* cast it to an OLE function returning int */

-

-    if (arg5)

-        (*env)->ReleaseIntArrayElements(env, arg5, arg51, 0);

-    if (arg0)

-        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jintArray arg0)

-{

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    jint *arg01=NULL;

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3I\n");

-#endif

-

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0)

-        arg01 = (*env)->GetIntArrayElements(env, arg0, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0)

-        (*env)->ReleaseIntArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (III)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III

-   (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0)

-{

-	P_OLE_FN_2 fn; /* this is a function that returns int */

-	jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-	fprintf(stderr, "COM_VtblCall__III\n");

-#endif

-

-	fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-

-	rc = fn(ppVtbl, arg0); /* cast it to an OLE function returning int */

-	return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIII

-   (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1)

-{

-	P_OLE_FN_3 fn; /* this is a function that returns int */

-	jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-	fprintf(stderr, "COM_VtblCall__IIII\n");

-#endif

-

-	fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-

-	rc = fn(ppVtbl, arg0, arg1); /* cast it to an OLE function returning int */

-	return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (III[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jintArray arg1)

-{

-    P_OLE_FN_3 fn;    

-

-    jint *arg11=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__III_3I\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*((jint **)ppVtbl))[fnNumber];

-

-    if (arg1)

-        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);

-

-    rc = fn(ppVtbl, arg0, (jint)arg11); 

-

-    if (arg1)

-        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIII_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jintArray arg2)

-{

-    P_OLE_FN_4 fn; /* this is a function that returns int */

-    jint *arg21=NULL;

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIII_3I\n");

-#endif

-

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg2)

-        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);

-

-    rc = fn(ppVtbl, arg0, arg1, (jint)arg21); /* cast it to an OLE function returning int */

-

-    if (arg2)

-        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2)

-{

-    P_OLE_FN_4 fn; /* this is a function that returns int */

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIII\n");

-#endif

-

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-    return fn(ppVtbl, arg0, arg1, arg2);;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIII_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-    P_OLE_FN_5 fn; /* this is a function that returns int */

-    jint *arg31=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VtblCall__IIIII_3I\n");

-#endif

-

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg3)

-        arg31 = (*env)->GetIntArrayElements(env, arg3, NULL);

-    

-    rc = fn(ppVtbl, arg0, arg1, arg2, (jint)arg31);

-

-    if (arg3)

-        (*env)->ReleaseIntArrayElements(env, arg3, arg31, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIII_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-    P_OLE_FN_6 fn;

-    jint *arg41=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3CIIII_3I\n");

-#endif

-

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-    if (arg4)

-        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);

-    

-    rc = fn(ppVtbl, arg0, arg1, arg2, arg3, (jint)arg41); 

-

-    if (arg4)

-        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIIIII[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIII_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jintArray arg5)

-{

-    P_OLE_FN_7 fn;    

-

-    jint *arg51=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIIIII_3I\n");

-#endif

-

-    fn = (P_OLE_FN_7)(*((jint **)ppVtbl))[fnNumber];

-

-    if (arg5)

-        arg51 = (*env)->GetIntArrayElements(env, arg5, NULL);

-

-    rc = fn(ppVtbl, arg0, arg1, arg2, arg3, arg4, (jint)arg51); 

-

-    if (arg5)

-        (*env)->ReleaseIntArrayElements(env, arg5, arg51, 0);

-

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIILorg/eclipse/swt/internal/ole/win32/DVTARGETDEVICE;Lorg/eclipse/swt/internal/win32/SIZE;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jobject arg2, jobject arg3)

-{

-    DVTARGETDEVICE dvtargetdevice, *arg21=NULL;

-    SIZE size, *arg31=NULL;

-    P_OLE_FN_5 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2\n");

-#endif

-

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-    if (arg2) {

-        arg21=&dvtargetdevice;

-        getDVTARGETDEVICEFields(env, arg2, arg21);

-    }

-    if (arg3) {

-        arg31=&size;

-        getSIZEFields(env, arg3, arg31);

-    }

-    

-    rc = fn(ppVtbl, arg0, arg1, (jint)arg21, (jint)arg31); /* cast it to an OLE function returning int */

-

-    if (arg2) {

-        setDVTARGETDEVICEFields(env, arg2, arg21);

-    }

-    if (arg3) {

-        setSIZEFields(env, arg3, arg31);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIILorg/eclipse/swt/internal/ole/win32/GUID;I[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jobject arg2, jint arg3, jintArray arg4)

-{

-    jint *arg41=NULL;

-    GUID guid, *arg21=NULL;

-    P_OLE_FN_6 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I\n");

-#endif

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-    if (arg2) {

-        arg21=&guid;

-        getGUIDFields(env, arg2, arg21);

-    }

-    

-    if (arg4)

-        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);

-

-    rc = fn(ppVtbl, arg0, arg1, (jint)arg21, arg3, (jint)arg41); /* cast it to an OLE function returning int */

-

-    if (arg4)

-        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);

-

-    if (arg2) {

-        setGUIDFields(env, arg2, arg21);

-    }

-    return rc;

-}

-

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/ole/win32/FORMATETC;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jintArray arg2)

-{

-    P_OLE_FN_4 fn;

-    FORMATETC formatetc, *arg11=NULL;

-    jint *arg21=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I\n");

-#endif

-

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg1) {

-        arg11 = &formatetc;

-        getFORMATETCFields(env, arg1, arg11);

-    }

-    if (arg2)

-        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);

-

-    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21);

-

-    if (arg2)

-        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);

-

-    if (arg1) {

-        setFORMATETCFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1)

-{

-    GUID guid, *arg11=NULL;

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2n");

-#endif

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&guid;

-        getGUIDFields(env, arg1, arg11);

-    }

-

-    rc = fn(ppVtbl, arg0, (jint)arg11); /* cast it to an COM function returning int */

-

-    if (arg1) {

-		setGUIDFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;II)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jint arg2, jint arg3)

-{

-    GUID guid, *arg11=NULL;

-    P_OLE_FN_5 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II\n");

-#endif

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&guid;

-        getGUIDFields(env, arg1, arg11);

-    }

-    

-    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, arg3); /* cast it to an OLE function returning int */

-

-    if (arg1) {

-        setGUIDFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;IILorg/eclipse/swt/internal/ole/win32/DISPPARAMS;ILorg/eclipse/swt/internal/ole/win32/EXCEPINFO;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_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 fnNumber, jint ppVtbl, jint arg0, jobject arg1, jint arg2, jint arg3, jobject arg4, jint arg5, jobject arg6, jintArray arg7)

-{

-    jint *arg71=NULL;

-    GUID guid, *arg11=NULL;

-    EXCEPINFO excepinfo, *arg61=NULL;

-    DISPPARAMS dispparams, *arg41=NULL;

-    P_OLE_FN_9 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I\n");

-#endif

-

-    fn = (P_OLE_FN_9)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&guid;

-        getGUIDFields(env, arg1, arg11);

-    }

-    if (arg4) {

-        arg41=&dispparams;

-        getDISPPARAMSFields(env, arg4, arg41);

-    }

-

-    if (arg6) {

-        arg61=&excepinfo;

-        getEXCEPINFOFields(env, arg6, arg61);

-    }

-

-    if (arg7)

-        arg71 = (*env)->GetIntArrayElements(env, arg7, NULL);

-

-    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, arg3, (jint)arg41, arg5, (jint)arg61, (jint)arg71); /* cast it to an OLE function returning int */

-

-    if (arg7)

-        (*env)->ReleaseIntArrayElements(env, arg7, arg71, 0);

-

-    if (arg6) {

-        setEXCEPINFOFields(env, arg6, arg61);

-    }

-

-    if (arg4) {

-        setDISPPARAMSFields(env, arg4, arg41);

-    }

-

-    if (arg1) {

-        setGUIDFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/ole/win32/STATSTG;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jintArray arg2)

-{

-    jint *arg21=NULL;

-    STATSTG statstg, *arg11=NULL;

-    P_OLE_FN_4 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I\n");

-#endif

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&statstg;

-        getSTATSTGFields(env, arg1, arg11);

-    }

-    

-    if (arg2)

-        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);

-

-    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21); /* cast it to an OLE function returning int */

-

-    if (arg2)

-        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);

-

-    if (arg1) {

-        setSTATSTGFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/win32/MSG;IIILorg/eclipse/swt/internal/win32/RECT;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jint arg2, jint arg3, jint arg4, jobject arg5)

-{

-    MSG msg, *arg11=NULL;

-    RECT rect, *arg51=NULL;

-    P_OLE_FN_7 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2\n");

-#endif

-

-    fn = (P_OLE_FN_7)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&msg;

-        getMSGFields(env, arg1, arg11);

-    }

-    if (arg5) {

-        arg51=▭

-        getRECTFields(env, arg5, arg51);

-    }

-    

-    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, arg3, arg4, (jint)arg51); /* cast it to an OLE function returning int */

-

-    if (arg1) {

-        setMSGFields(env, arg1, arg11);

-    }

-    if (arg5) {

-        setRECTFields(env, arg5, arg51);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/win32/MSG;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_MSG_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    MSG msg, *arg01=NULL;

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_MSG_2\n");

-#endif

-

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&msg;

-        getMSGFields(env, arg0, arg01);

-    }

-    

-    rc = fn(ppVtbl,  (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setMSGFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/win32/SIZE;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_win32_SIZE_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1)

-{

-    SIZE size, *arg11=NULL;

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_win32_SIZE_2\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&size;

-        getSIZEFields(env, arg1, arg11);

-    }

-    

-    rc = fn(ppVtbl, arg0, (jint)arg11); /* cast it to an COM function returning int */

-

-    if (arg1) {

-        setSIZEFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIZ)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIZ

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jboolean arg1)

-{

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIZ\n");

-#endif

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-

-    rc = fn(ppVtbl, arg0, arg1); /* cast it to an OLE function returning int */

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/CAUUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CAUUID_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    CAUUID cauuid, *arg01=&cauuid;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3C\n");

-#endif

-

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0) {

-        getCAUUIDFields(env, arg0, arg01);

-    }

-    

-    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setCAUUIDFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/CONTROLINFO;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CONTROLINFO_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    CONTROLINFO controlinfo, *arg01=NULL;

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CONTROLINFO_2\n");

-#endif

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&controlinfo;

-        getCONTROLINFOFields(env, arg0, arg01);

-    }

-    

-    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setCONTROLINFOFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/FORMATETC;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    P_OLE_FN_2 fn;

-    FORMATETC formatetc, *arg01=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2\n");

-#endif

-

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0) {

-        arg01 = &formatetc;

-        getFORMATETCFields(env, arg0, arg01);

-    }

-    rc = fn(ppVtbl, (jint)arg01);

-

-    if (arg0) {

-        setFORMATETCFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/FORMATETC;Lorg/eclipse/swt/internal/ole/win32/STGMEDIUM;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jobject arg1)

-{

-    P_OLE_FN_3 fn;

-    FORMATETC formatetc, *arg01=NULL;

-    STGMEDIUM stgmedium, *arg11=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0) {

-        arg01 = &formatetc;

-        getFORMATETCFields(env, arg0, arg01);

-    }

-    if (arg1) {

-        arg11 = &stgmedium;

-        getSTGMEDIUMFields(env, arg1, arg11);

-    }

-    rc = fn(ppVtbl, (jint)arg01, (jint)arg11);

-

-    if (arg0) {

-        setFORMATETCFields(env, arg0, arg01);

-    }

-    if (arg1) {

-        setSTGMEDIUMFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/FORMATETC;Lorg/eclipse/swt/internal/ole/win32/STGMEDIUM;Z)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2Z

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jobject arg1, jboolean arg2)

-{

-    P_OLE_FN_4 fn;

-    FORMATETC formatetc, *arg01=NULL;

-    STGMEDIUM stgmedium, *arg11=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2Z\n");

-#endif

-

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0) {

-        arg01 = &formatetc;

-        getFORMATETCFields(env, arg0, arg01);

-    }

-    if (arg1) {

-        arg11 = &stgmedium;

-        getSTGMEDIUMFields(env, arg1, arg11);

-    }

-    rc = fn(ppVtbl, (jint)arg01, (jint)arg11, (jint)arg2);

-

-    if (arg0) {

-        setFORMATETCFields(env, arg0, arg01);

-    }

-    if (arg1) {

-        setSTGMEDIUMFields(env, arg1, arg11);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    GUID guid, *arg01=NULL;

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2\n");

-#endif

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&guid;

-        getGUIDFields(env, arg0, arg01);

-    }

-

-    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setGUIDFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jintArray arg1)

-{

-    jint *arg11=NULL;

-    GUID guid, *arg01=NULL;

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I\n");

-#endif

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0) {

-        arg01=&guid;

-        getGUIDFields(env, arg0, arg01);

-    }

-    

-    if (arg1)

-        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01, (jint)arg11); /* cast it to an OLE function returning int */

-

-    if (arg1)

-        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);

-

-    if (arg0) {

-        setGUIDFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;III[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)

-{

-    jint *arg41=NULL;

-    GUID guid, *arg01=NULL;

-    P_OLE_FN_6 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I\n");

-#endif

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&guid;

-        getGUIDFields(env, arg0, arg01);

-    }

-    

-    if (arg4)

-        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, (jint)arg41); /* cast it to an OLE function returning int */

-

-    if (arg4)

-        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);

-

-    if (arg0) {

-        setGUIDFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;IIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-    GUID guid, *arg01=NULL;

-    P_OLE_FN_6 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII\n");

-#endif

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&guid;

-        getGUIDFields(env, arg0, arg01);

-    }

-    

-    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, arg4);

-

-    if (arg0) {

-        setGUIDFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;ILorg/eclipse/swt/internal/ole/win32/OLECMD;Lorg/eclipse/swt/internal/ole/win32/OLECMDTEXT;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jobject arg2, jobject arg3)

-{

-    GUID guid, *arg01=NULL;

-    OLECMD olecmd, *arg21=NULL;

-    OLECMDTEXT olecmdtext, *arg31=NULL;

-

-    P_OLE_FN_5 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2\n");

-#endif

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&guid;

-        getGUIDFields(env, arg0, arg01);

-    }

-    if (arg2) {

-        arg21=&olecmd;

-        getOLECMDFields(env, arg2, arg21);

-    }

-    if (arg3) {

-        arg31=&olecmdtext;

-        getOLECMDTEXTFields(env, arg3, arg31);

-    }

-    

-    rc = fn(ppVtbl, (jint)arg01, arg1, (jint)arg21, (jint)arg31);

-

-    if (arg0) {

-        setGUIDFields(env, arg0, arg01);

-    }

-    if (arg2) {

-        setOLECMDFields(env, arg2, arg21);

-    }

-    if (arg3) {

-        setOLECMDTEXTFields(env, arg3, arg31);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/LICINFO;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_LICINFO_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    LICINFO licinfo, *arg01=NULL;

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_LICINFO_2\n");

-#endif

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&licinfo;

-        getLICINFOFields(env, arg0, arg01);

-    }

-

-    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setLICINFOFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/win32/RECT;IZ)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jboolean arg2)

-{

-    RECT rect, *arg01=NULL;

-    P_OLE_FN_4 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ\n");

-#endif

-

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=▭

-        getRECTFields(env, arg0, arg01);

-    }

-    

-    rc = fn(ppVtbl, (jint)arg01, arg1, arg2); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setRECTFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/win32/RECT;Lorg/eclipse/swt/internal/win32/RECT;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2Lorg_eclipse_swt_internal_win32_RECT_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jobject arg1)

-{

-    RECT rect0, *arg01=NULL;

-    RECT rect1, *arg11=NULL;

-    P_OLE_FN_3 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2Lorg_eclipse_swt_internal_win32_RECT_2\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&rect0;

-        getRECTFields(env, arg0, arg01);

-    }

-    if (arg1) {

-        arg11=&rect1;

-        getRECTFields(env, arg1, arg11);

-    }

-    rc = fn(ppVtbl, (jint)arg01, (jint)arg11); /* cast it to an OLE function returning int */

-

-    if (arg1) {

-        setRECTFields(env, arg1, arg11);

-    }

-    if (arg0) {

-        setRECTFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/win32/RECT;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    RECT rect0, *arg01=NULL;

-    P_OLE_FN_2 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2\n");

-#endif

-

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&rect0;

-        getRECTFields(env, arg0, arg01);

-    }

-    

-    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */

-

-    if (arg0) {

-        setRECTFields(env, arg0, arg01);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (III[I[I[I[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III_3I_3I_3I_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jintArray arg1, jintArray arg2, jintArray arg3, jintArray arg4)

-{

-    jint *arg11=NULL;

-    jint *arg21=NULL;

-    jint *arg31=NULL;

-    jint *arg41=NULL;

-    P_OLE_FN_6 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__III_3I_3I_3I_31\n");

-#endif

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-    if (arg1)

-        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);

-        

-    if (arg2)

-        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);

-        

-    if (arg3)

-        arg31 = (*env)->GetIntArrayElements(env, arg3, NULL);

-        

-    if (arg4)

-        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);

-

-    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21, (jint)arg31, (jint)arg41); /* cast it to an OLE function returning int */

-

-    if (arg1)

-        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);

-    

-    if (arg2)

-        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);

-        

-    if (arg3)

-        (*env)->ReleaseIntArrayElements(env, arg3, arg31, 0);

-    

-    if (arg4)

-        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);

-

-

-    return rc;

-}

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (III[II[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III_3II_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jintArray arg1, jint arg2, jintArray arg3)

-{

-    jint *arg11=NULL;

-    jint *arg31=NULL;

-    P_OLE_FN_5 fn; /* this is a function that returns int */

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__III_3II_3I\n");

-#endif

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-    if (arg1)

-        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);

-        

-    if (arg3)

-        arg31 = (*env)->GetIntArrayElements(env, arg3, NULL);

-        

-    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, (jint)arg31); /* cast it to an OLE function returning int */

-

-    if (arg1)

-        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);

-            

-    if (arg3)

-        (*env)->ReleaseIntArrayElements(env, arg3, arg31, 0);

-    

-    return rc;

-}      

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    WriteClassStg

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/GUID;)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_WriteClassStg

-  (JNIEnv *env, jclass that, jint pStg, jobject rclsid)

-{

-    GUID guid, *rclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "WriteClassStg\n");

-#endif

-    if (rclsid) {

-        rclsid1=&guid;

-        getGUIDFields(env, rclsid, rclsid1);

-    }

-    rc = (jint) WriteClassStg((IStorage *)pStg, rclsid1);

-

-    if (rclsid) {

-        setGUIDFields(env, rclsid, rclsid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleGetClipboard

- * Signature: ([I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleGetClipboard

-  (JNIEnv *env, jclass that, jintArray ppDataObj)

-{

-    IDataObject **ppDataObj1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleGetClipboard\n");

-#endif

-    if (ppDataObj)

-        ppDataObj1 = (IDataObject **)(*env)->GetIntArrayElements(env, ppDataObj, NULL);

-

-    rc = (jint) OleGetClipboard(ppDataObj1);

-

-    if (ppDataObj)

-        (*env)->ReleaseIntArrayElements(env, ppDataObj, (jint *)ppDataObj1, 0);

-

-    return rc;

-}

-

-     /*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleIsCurrentClipboard

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleIsCurrentClipboard

-  (JNIEnv *env, jclass that, jint pDataObj)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleIsCurrentClipboard\n");

-#endif

-    return (jint) OleIsCurrentClipboard((IDataObject *)pDataObj);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleSetClipboard

- * Signature: (I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSetClipboard

-  (JNIEnv *env, jclass that, jint pDataObj)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleSetClipboard\n");

-#endif

-    return (jint) OleSetClipboard((IDataObject *)pDataObj);

-}

-    

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleFlushClipboard

- * Signature: ()I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleFlushClipboard

-  (JNIEnv *env, jclass that)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleFlushClipboard\n");

-#endif

-    return (jint) OleFlushClipboard();

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    OleDraw

- * Signature: (IIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleDraw

-  (JNIEnv *env, jclass that, jint pUnk, jint dwAspect, jint hdcDraw, jint lprcBounds)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "OleDraw\n");

-#endif

-    return (jint) OleDraw((LPUNKNOWN)pUnk, (DWORD)dwAspect, (HDC)hdcDraw, (LPRECT)lprcBounds);

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    ReleaseStgMedium

- * Signature: (I)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_ReleaseStgMedium

-  (JNIEnv *env, jclass that, jint pmedium)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "ReleaseStgMedium\n");

-#endif

-    ReleaseStgMedium((STGMEDIUM *)pmedium);

-}

-

-/* ------------- obsolete OLE calls ------------- */

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    DispGetParam

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/DISPPARAMS;III[I)I

- */

-/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_DispGetParam

-  (JNIEnv *env, jclass that, jobject pdispparams, jint position, jint vtTarg, jint pvarResult, jintArray puArgErr)

-{

-    unsigned int FAR *puArgErr1=NULL;

-    DISPPARAMS dispparams, *pdispparams1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "DispGetParam\n");

-#endif

-

-    if (pdispparams) {

-        pdispparams1=&dispparams;

-        cacheDispparamsFids(env, pdispparams, &DispparamsFc);

-        getDISPPARAMSFields(env, pdispparams, pdispparams1, &DispparamsFc);

-    }

-    if (puArgErr)

-        puArgErr1 = (*env)->GetIntArrayElements(env, puArgErr, NULL);

-

-    rc = (jint) DispGetParam(pdispparams1, position, (VARTYPE)vtTarg, (VARIANT FAR *)pvarResult, puArgErr1);

-

-    if (puArgErr)

-        (*env)->ReleaseIntArrayElements(env, puArgErr, puArgErr1, 0);

-

-    if (pdispparams) {

-        setDISPPARAMSFields(env, pdispparams, pdispparams1, &DispparamsFc);

-    }

-    return rc;

-}

-*/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/win32/SIZE;I)V

- */

-/*JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_win32_SIZE_2I

-  (JNIEnv *env, jclass that, jint DestinationPtr, jobject Source, jint Length)

-{

-    SIZE size, *Source1=&size;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_win32_SIZE_2I\n");

-#endif

-

-    if (Source) {

-        getSIZEFields(env, Source, Source1);

-    }

-

-    MoveMemory((PVOID)DestinationPtr, Source1, Length);

-}

-*/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (II[CI[CI)I

- */

-/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CI_3CI

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1, jcharArray arg2, jint arg3)

-{

-    P_OLE_FN_5 fn;

-    jchar *arg01=NULL, *arg21=NULL;

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__II_3CI_3CI\n");

-#endif

-

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-

-    if (arg0)

-        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);

-

-    if (arg2)

-        arg21 = (*env)->GetCharArrayElements(env, arg2, NULL);

-

-    rc = fn(ppVtbl, (jint)arg01, arg1, (jint)arg21, arg3);

-

-    if (arg2)

-        (*env)->ReleaseCharArrayElements(env, arg2, arg21, 0);

-

-    if (arg0)

-        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);

-

-    return rc;

-}

-*/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

-/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2_3I

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jintArray arg2)

-{

-    jint *arg21=NULL;

-    GUID guid, *arg11=NULL;

-    P_OLE_FN_4 fn;

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I\n");

-#endif

-    

-    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];

-    if (arg1) {

-        arg11=&guid;

-        getGUIDFields(env, arg1, arg11);

-    }

-    

-    if (arg2)

-        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);

-

-    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21);

-

-    if (arg2)

-        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);

-

-    if (arg1) {

-        setGUIDFields(env, arg1, arg11);

-    }

-    return rc;

-}

-*/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIII)I

- */

-/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1)

-{

-    P_OLE_FN_3 fn;

-    jint rc;

-    

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIII\n");

-#endif

-

-    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];

-    rc = fn(ppVtbl, arg0, arg1);

-    return rc;

-}

-*/

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/win32/MSG;)I

- */

-/*

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_MSG_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    MSG msg, *arg01=NULL;

-    P_OLE_FN_2 fn;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_MSG_2\n");

-#endif

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&msg;

-        getMSGFields(env, arg0, arg01);

-    }

-

-    rc = fn(ppVtbl, (jint)arg01);

-

-    if (arg0) {

-        setMSGFields(env, arg0, arg01);

-    }

-    return rc;

-}

-*/

-/* ------------- end obsolote OLE calls ------------- */

-

-/* ------------- deleted OLE calls ------------- */

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/TYPEATTR;)I

- */

-/*

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_TYPEATTR_2

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)

-{

-    TYPEATTR typeattr, *arg01=NULL;

-    P_OLE_FN_2 fn;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_TYPEATTR_2\n");

-#endif

-    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];

-    if (arg0) {

-        arg01=&typeattr;

-        cacheTypeattrFids(env, arg0, &TypeattrFc);

-        getTypeattrFields(env, arg0, arg01, &TypeattrFc);

-    }

-

-    rc = fn(ppVtbl, (jint)arg01);

-    if (arg0) {

-        setTYPEATTRFields(env, arg0, arg01, &TypeattrFc);

-    }

-    return rc;

-}

-*/

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    MoveMemory

- * Signature: (ILorg/eclipse/swt/internal/ole/win32/EXCEPINFO;I)V

- */

-/* JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I

-  (JNIEnv *env, jclass that, jint Destination, jobject SourcePtr, jint Length)

-{

-    EXCEPINFO excepinfo, *SourcePtr1=&excepinfo;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I\n");

-#endif

-

-    if (SourcePtr) {

-        getEXCEPINFOFields(env, SourcePtr, SourcePtr1);

-    }

-

-    MoveMemory((PVOID)Destination, SourcePtr1, Length);

-}

-*/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    ProgIDFromCLSID

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[C)I

- */

-/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3C

-  (JNIEnv *env, jclass that, jobject pclsid, jcharArray lplpszProgID)

-{

-    LPOLESTR *lplpszProgID1=NULL;

-    GUID guid, *pclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3C\n");

-#endif

-

-    if (pclsid) {

-        pclsid1=&guid;

-        getGUIDFields(env, pclsid, pclsid1);

-    }

-

-    if (lplpszProgID)

-        lplpszProgID1 = (LPOLESTR *)(*env)->GetCharArrayElements(env, lplpszProgID, NULL);

-

-    rc = (jint) ProgIDFromCLSID(pclsid1, lplpszProgID1);

-

-    if (lplpszProgID)

-        (*env)->ReleaseCharArrayElements(env, lplpszProgID, (jchar *)lplpszProgID1, 0);

-    

-    if (pclsid) {

-        setGUIDFields(env, pclsid, pclsid1);

-    }

-    return rc;

-}

-*/

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    ProgIDFromCLSID

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

- JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I

-  (JNIEnv *env, jclass that, jobject pclsid, jintArray lplpszProgID)

-{

-    LPOLESTR *lplpszProgID1=NULL;

-    GUID guid, *pclsid1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I\n");

-#endif

-

-    if (pclsid) {

-        pclsid1=&guid;

-        getGUIDFields(env, pclsid, pclsid1);

-    }

-

-    if (lplpszProgID)

-        lplpszProgID1 = (LPOLESTR *)(*env)->GetIntArrayElements(env, lplpszProgID, NULL);

-

-    rc = (jint) ProgIDFromCLSID(pclsid1, lplpszProgID1);

-

-    if (lplpszProgID)

-        (*env)->ReleaseIntArrayElements(env, lplpszProgID, (jint *)lplpszProgID1, 0);

-    

-    if (pclsid) {

-        setGUIDFields(env, pclsid, pclsid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VariantCopyInd

- * Signature: (II)I

- */

-/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantCopyInd

-  (JNIEnv *env, jclass that, jint pvarDest, jint pvarSrc)

-{

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "VariantCopyInd\n");

-#endif

-    return (jint) VariantCopyInd((VARIANT FAR*)pvarDest, (VARIANTARG FAR*)pvarSrc);

-}

-*/

-

-

-/* MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II removed after OS version 0.80 */

-/* 

- * Class:     org_eclipse_swt_internal_win32_OS

- * Method:    MoveMemory

- * Signature: (Lorg/eclipse/swt/internal/win32/NMHEADER;II)V

- */

-/* JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_win32_OS_MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II

-  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)

-{

-    NMHEADER nmheader, *lpDestination1=NULL;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II\n");

-#endif

-

-       MoveMemory((PVOID)&nmheader, (CONST VOID *)Source, Length);

-

-    if (Destination) {

-        lpDestination1 = &nmheader;

-        setNmheaderFields(env, Destination, lpDestination1);

-    }

-}

-*/

-

-/* SendMessage__IIILorg_eclipse_swt_internal_win32_HDITEM_2 removed after OS version 0.80 */

-/*

- * Class:     org_eclipse_swt_internal_win32_OS

- * Method:    SendMessage

- * Signature: (IIILorg/eclipse/swt/internal/win32/HDITEM;)I

- */

-/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_win32_OS_SendMessage__IIILorg_eclipse_swt_internal_win32_HDITEM_2

-  (JNIEnv *env, jclass that, jint hWnd, jint Msg, jint wParam, jobject lParam)

-{

-    HDITEM hditem, *lpParam1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "SendMessage__IIILorg_eclipse_swt_internal_win32_HDITEM_2\n");

-#endif

-

-    if (lParam) {

-        lpParam1 = &hditem;

-        getHditemFields(env, lParam, lpParam1);

-    }

-    rc = (jint) SendMessage((HWND)hWnd, Msg, wParam, (LPARAM)lpParam1);

-    if (lParam) {

-        setHditemFields(env, lParam, lpParam1);

-    }

-    return rc;

-}

-*/

-

-/* SendMessage__IIILorg_eclipse_swt_internal_win32_HDLAYOUT_2 removed after OS version 0.80 */

-/*

- * Class:     org_eclipse_swt_internal_win32_OS

- * Method:    SendMessage

- * Signature: (IIILorg/eclipse/swt/internal/win32/HDLAYOUT;)I

- */

-/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_win32_OS_SendMessage__IIILorg_eclipse_swt_internal_win32_HDLAYOUT_2

-  (JNIEnv *env, jclass that, jint hWnd, jint Msg, jint wParam, jobject lParam)

-{

-    HDLAYOUT hdlayout, *lpParam1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "SendMessage__IIILorg_eclipse_swt_internal_win32_HDLAYOUT_2\n");

-#endif

-

-    if (lParam) {

-        lpParam1 = &hdlayout;

-        getHdlayoutFields(env, lParam, lpParam1);

-    }

-    rc = (jint) SendMessage((HWND)hWnd, Msg, wParam, (LPARAM)lpParam1);

-    if (lParam) {

-        setHdlayoutFields(env, lParam, lpParam1);

-    }

-    return rc;

-}

-*/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CoGetInstanceFromIStorage

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/COSERVERINFO;Lorg/eclipse/swt/internal/ole/win32/GUID;IIIILorg/eclipse/swt/internal/ole/win32/MULTI_QI;)I

- */

-/*

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoGetInstanceFromIStorage

-  (JNIEnv *env, jclass that, jobject pServerInfo, jobject pclsid, jint punkOuter, jint dwClsCtx,

-				 jint pstg, jint cmq, jobject rgmqResults)

-{

-    GUID guid, *pclsid1=NULL;

-    COSERVERINFO coserverinfo, *pServerInfo1=NULL;

-    MULTI_QI multi_qi, *rgmqResults1=NULL;

-    jint rc;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CoGetInstanceFromIStorage\n");

-#endif

-

-    if (pclsid) {

-        pclsid1=&guid;

-        getGUIDFields(env, pclsid, pclsid1);

-    }

-    if (pServerInfo) {

-        pServerInfo1=&coserverinfo;

-        getCoserverinfoFields(env, pServerInfo, pServerInfo1);

-    }

-    if (rgmqResults) {

-        rgmqResults1=&multi_qi;

-        getMulti_qiFields(env, rgmqResults, rgmqResults1);

-    }

-

-    rc = CoGetInstanceFromIStorage(pServerInfo1, pclsid1, (IUnknown *)punkOuter, dwClsCtx, (IStorage *)pstg, cmq, rgmqResults1);

-

-    if (pclsid) {

-        setGUIDFields(env, pclsid, pclsid1);

-    }

-    if (pServerInfo) {

-        setCoserverinfoFields(env, pServerInfo, pServerInfo1);

-    }

-    if (rgmqResults) {

-        setMulti_qiFields(env, rgmqResults, rgmqResults1);

-    }

-    return rc;

-}

-*/

-

-/****************** ACCESSIBILITY ****************/

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    CreateStdAccessibleObject

- * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CreateStdAccessibleObject

-  (JNIEnv *env, jclass that, jint hwnd, jint idObject, jobject riidInterface, jintArray ppvObject)

-{

-    LPVOID *ppvObject1=NULL;

-	GUID guid, *riidInterface1=NULL;

-	jint rc = E_NOTIMPL;

-    HMODULE hm;

-    FARPROC fp;

-	

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "CreateStdAccessibleObject\n");

-#endif

-    

-    if (riidInterface) {

-        riidInterface1=&guid;

-        getGUIDFields(env, riidInterface, riidInterface1);

-    }

-

-	if (ppvObject)

-        ppvObject1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObject, NULL);

-

-    /*

-    *  CreateStdAccessibleObject is an oleacc specific call.

-    *  If you link it into swt.dll, a system modal entry point not found dialog will

-    *  appear as soon as swt.dll is loaded. Here we check for the entry point and

-    *  only do the call if it exists.

-    */

-    if (!(hm = GetModuleHandle("oleacc.dll"))) hm = LoadLibrary("oleacc.dll");

-    if (hm && (fp = GetProcAddress(hm, "CreateStdAccessibleObject"))) {

-		rc = (jint)fp((HWND)hwnd, idObject, riidInterface1, ppvObject1);

-	}

-    

-    if (riidInterface) {

-        setGUIDFields(env, riidInterface, riidInterface1);

-    }

-    

-    if (ppvObject)

-        (*env)->ReleaseIntArrayElements(env, ppvObject, (jint *)ppvObject1, 0);

-        

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    LresultFromObject

- * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;II)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_LresultFromObject

-  (JNIEnv *env, jclass that, jobject riid, jint wParam, jint pAcc)

-{

-    GUID guid, *riid1=NULL;

-    jint rc = E_NOTIMPL;

-    HMODULE hm;

-    FARPROC fp;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "LresultFromObject\n");

-#endif

-

-    if (riid) {

-        riid1=&guid;

-        getGUIDFields(env, riid, riid1);

-    }

-    /*

-    *  LresultFromObject is an oleacc specific call.

-    *  If you link it into swt.dll, a system modal entry point not found dialog will

-    *  appear as soon as swt.dll is loaded. Here we check for the entry point and

-    *  only do the call if it exists.

-    */

-    if (!(hm = GetModuleHandle("oleacc.dll"))) hm = LoadLibrary("oleacc.dll");

-    if (hm && (fp = GetProcAddress(hm, "LresultFromObject"))) {

-		rc = (jint)fp(riid1, wParam, (LPUNKNOWN)pAcc);

-	}

-    if (riid) {

-        setGUIDFields(env, riid, riid1);

-    }

-    return rc;

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    NotifyWinEvent

- * Signature: (IIII)V

- */

-JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_NotifyWinEvent

-  (JNIEnv *env, jclass that, jint event, jint hwnd, jint idObject, jint idChild)

-{

-    HMODULE hm;

-    FARPROC fp;

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "NotifyWinEvent\n");

-#endif

-

-    /*

-    *  NotifyWinEvent is a Win2000 and Win98 specific call

-    *  If you link it into swt.dll a system modal entry point not found dialog will

-    *  appear as soon as swt.dll is loaded. Here we check for the entry point and

-    *  only do the call if it exists.

-    */

-    if ((hm=GetModuleHandle("user32.dll")) && (fp=GetProcAddress(hm, "NotifyWinEvent"))) {

-        (fp)((DWORD)event, (HWND)hwnd, idObject, idChild);

-//		NotifyWinEvent((DWORD)event, (HWND)hwnd, idObject, idChild);

-	}

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-    P_OLE_FN_5 fn; /* this is a function that returns int */

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIIII\n");

-#endif

-    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];

-    return fn(ppVtbl, arg0, arg1, arg2, arg3); /* cast it to an OLE function returning int */

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-    P_OLE_FN_6 fn; /* this is a function that returns int */

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIIIII\n");

-#endif

-    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];

-    return fn(ppVtbl, arg0, arg1, arg2, arg3, arg4); /* cast it to an OLE function returning int */

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIIIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)

-{

-    P_OLE_FN_7 fn; /* this is a function that returns int */

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIIIIII\n");

-#endif

-    fn = (P_OLE_FN_7)(*(int **)ppVtbl)[fnNumber];

-    return fn(ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5); /* cast it to an OLE function returning int */

-}

-

-/*

- * Class:     org_eclipse_swt_internal_ole_win32_COM

- * Method:    VtblCall

- * Signature: (IIIIIIIIII)I

- */

-JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIIIIII

-  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)

-{

-    P_OLE_FN_9 fn; /* this is a function that returns int */

-

-#ifdef DEBUG_CALL_PRINTS

-    fprintf(stderr, "COM_VtblCall__IIIIIIIIII\n");

-#endif

-    fn = (P_OLE_FN_9)(*(int **)ppVtbl)[fnNumber];

-    return fn(ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); /* cast it to an OLE function returning int */

-}

+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "com_structs.h"
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CLSIDFromProgID
+ * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CLSIDFromProgID
+  (JNIEnv *env, jclass that, jcharArray lpszProgID, jobject pclsid)
+{
+    LPCOLESTR lpszProgID1=NULL;
+    GUID guid, *pclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CLSIDFromProgID\n");
+#endif
+
+    if (pclsid) {
+        pclsid1=&guid;
+        getGUIDFields(env, pclsid, pclsid1);
+    }
+
+    if (lpszProgID)
+        lpszProgID1 = (LPCOLESTR)(*env)->GetCharArrayElements(env, lpszProgID, NULL);
+
+    rc = (jint) CLSIDFromProgID(lpszProgID1, pclsid1);
+
+    if (lpszProgID)
+        (*env)->ReleaseCharArrayElements(env, lpszProgID, (jchar *)lpszProgID1, 0);
+    
+    if (pclsid) {
+        setGUIDFields(env, pclsid, pclsid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CLSIDFromString
+ * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CLSIDFromString
+  (JNIEnv *env, jclass that, jcharArray lpsz, jobject pclsid)
+{
+    LPOLESTR lpsz1=NULL;
+    GUID guid, *pclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CLSIDFromString\n");
+#endif
+    if (pclsid) {
+        pclsid1=&guid;
+        getGUIDFields(env, pclsid, pclsid1);
+    }
+    
+    if (lpsz)
+        lpsz1 = (LPOLESTR)(*env)->GetCharArrayElements(env, lpsz, NULL);
+
+    rc = CLSIDFromString(lpsz1, pclsid1);
+
+    if (lpsz)
+        (*env)->ReleaseCharArrayElements(env, lpsz, lpsz1, 0);
+
+    if (pclsid) {
+        setGUIDFields(env, pclsid, pclsid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoCreateInstance
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoCreateInstance
+  (JNIEnv *env, jclass that, jobject rclsid, jint pUnkOuter, jint dwClsContext, jobject riid, jintArray ppv)
+{
+    LPVOID *ppv1=NULL;
+    GUID guid1, guid2, *riid1=NULL, *rclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CoCreateInstance\n");
+#endif
+
+    if (rclsid) {
+        rclsid1=&guid2;
+        getGUIDFields(env, rclsid, rclsid1);
+    }
+    if (riid) {
+        riid1=&guid1;
+        getGUIDFields(env, riid, riid1);
+    }
+    
+    if (ppv)
+        ppv1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppv, NULL);
+
+    rc = (jint) CoCreateInstance(rclsid1, (LPUNKNOWN)pUnkOuter, dwClsContext, riid1, ppv1);
+
+    if (ppv)
+        (*env)->ReleaseIntArrayElements(env, ppv, (jint *)ppv1, 0);
+
+    if (rclsid) {
+        setGUIDFields(env, rclsid, rclsid1);
+    }
+    if (riid) {
+        setGUIDFields(env, riid, riid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoFreeUnusedLibraries
+ * Signature: ()V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoFreeUnusedLibraries
+  (JNIEnv *env, jclass that)
+{
+    CoFreeUnusedLibraries();
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoGetClassObject
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoGetClassObject
+  (JNIEnv *env, jclass that, jobject rclsid, jint dwClsContext, jint pServerInfo, 
+                    jobject riid, jintArray ppv)
+{
+    LPVOID *ppv1=NULL;
+    GUID guid1, *rclsid1=NULL;
+    GUID guid2, *riid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CoGetClassObject\n");
+#endif
+
+    if (rclsid) {
+        rclsid1=&guid1;
+        getGUIDFields(env, rclsid, rclsid1);
+    }
+    if (riid) {
+        riid1=&guid2;
+        getGUIDFields(env, riid, riid1);
+    }
+    if (ppv)
+        ppv1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppv, NULL);
+
+    rc = (jint) CoGetClassObject(rclsid1, dwClsContext, (COSERVERINFO *)pServerInfo, riid1, ppv1);
+    if (ppv)
+        (*env)->ReleaseIntArrayElements(env, ppv, (jint *)ppv1, 0);
+
+    if (rclsid) {
+        setGUIDFields(env, rclsid, rclsid1);
+    }
+    if (riid) {
+        setGUIDFields(env, riid, riid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoLockObjectExternal
+ * Signature: (IZZ)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoLockObjectExternal
+  (JNIEnv *env, jclass that, jint pUnk, jboolean fLock, jboolean fLastUnlockReleases)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CoLockObjectExternal\n");
+#endif
+	return (jint) CoLockObjectExternal((IUnknown *)pUnk, (BOOL)fLock, (BOOL)fLastUnlockReleases);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoTaskMemAlloc
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoTaskMemAlloc
+  (JNIEnv *env, jclass that, jint cb)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CoTaskMemAlloc\n");
+#endif
+    return (jint) CoTaskMemAlloc((ULONG)cb);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoTaskMemFree
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoTaskMemFree
+  (JNIEnv *env, jclass that, jint pv)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CoTaskMemFree\n");
+#endif
+    CoTaskMemFree((LPVOID)pv);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    DoDragDrop
+ * Signature: (III[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_DoDragDrop
+  (JNIEnv *env, jclass that, jint pDataObject, jint pDropSource, jint dwOKEffect, jintArray pdwEffect)
+{
+    jint *pdwEffect1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "DoDragDrop\n");
+#endif
+
+    if (pdwEffect)
+        pdwEffect1 = (*env)->GetIntArrayElements(env, pdwEffect, NULL);
+
+    rc = DoDragDrop((IDataObject *)pDataObject, (IDropSource *)pDropSource, dwOKEffect, pdwEffect1);
+
+    if (pdwEffect)
+        (*env)->ReleaseIntArrayElements(env, pdwEffect, pdwEffect1, 0);
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    GetClassFile
+ * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_GetClassFile
+  (JNIEnv *env, jclass that, jcharArray szFileName, jobject clsid)
+{
+    LPCWSTR szFileName1=NULL;
+    GUID guid, *clsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "GetClassFile\n");
+#endif
+    if (clsid) {
+        clsid1=&guid;
+        getGUIDFields(env, clsid, clsid1);
+    }
+    
+    if (szFileName)
+        szFileName1 = (LPCWSTR)(*env)->GetCharArrayElements(env, szFileName, NULL);
+
+    rc = GetClassFile(szFileName1, clsid1);
+
+    if (szFileName)
+        (*env)->ReleaseCharArrayElements(env, szFileName, (jchar *)szFileName1, 0);
+
+    if (clsid) {
+        setGUIDFields(env, clsid, clsid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    IIDFromString
+ * Signature: ([CLorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_IIDFromString
+  (JNIEnv *env, jclass that, jcharArray lpsz, jobject lpiid)
+{
+    LPOLESTR lpsz1=NULL;
+    GUID guid, *lpiid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "IIDFromString\n");
+#endif
+
+    if (lpsz)
+        lpsz1 = (LPOLESTR)(*env)->GetCharArrayElements(env, lpsz, NULL);
+        
+    if (lpiid) {
+        lpiid1=&guid;
+        getGUIDFields(env, lpiid, lpiid1);
+    }
+
+    rc = (jint) IIDFromString(lpsz1, lpiid1);
+
+    if (lpiid) {
+        setGUIDFields(env, lpiid, lpiid1);
+    }
+
+    if (lpsz)
+        (*env)->ReleaseCharArrayElements(env, lpsz, (jchar *)lpsz1, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    IsEqualGUID
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;Lorg/eclipse/swt/internal/ole/win32/GUID;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_IsEqualGUID
+  (JNIEnv *env, jclass that, jobject rguid1, jobject rguid2)
+{
+    GUID guid1, *rguid11=NULL;
+    GUID guid2, *rguid21=NULL;
+    jboolean rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "IsEqualGUID\n");
+#endif
+
+    if (rguid1) {
+        rguid11=&guid1;
+        getGUIDFields(env, rguid1, rguid11);
+    }
+
+    if (rguid2) {
+        rguid21=&guid2;
+        getGUIDFields(env, rguid2, rguid21);
+    }
+
+    rc = (jboolean) IsEqualGUID(rguid11, rguid21);
+
+    if (rguid1) {
+        setGUIDFields(env, rguid1, rguid11);
+    }
+    if (rguid2) {
+        setGUIDFields(env, rguid2, rguid21);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/FORMATETC;I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_FORMATETC_2I
+  (JNIEnv *env, jclass that, jint Destination, jobject Source, jint Length)
+{
+    FORMATETC formatetc, *Source1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_FORMATETC_2I\n");
+#endif
+
+    if (Source) {
+        Source1=&formatetc;
+        getFORMATETCFields(env, Source, Source1);
+    }
+    MoveMemory((PVOID)Destination, Source1, Length);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/GUID;I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_GUID_2I
+  (JNIEnv *env, jclass that, jint DestinationPtr, jobject Source, jint Length)
+{
+    GUID guid, *Source1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "MoveMemory__ILorg_eclipse_swt_internal_ole_win32_GUID_2I\n");
+#endif
+
+    if (Source) {
+        Source1=&guid;
+        getGUIDFields(env, Source, Source1);
+    }
+    MoveMemory((PVOID)DestinationPtr, Source1, Length);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/OLEINPLACEFRAMEINFO;I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_OLEINPLACEFRAMEINFO_2I
+  (JNIEnv *env, jclass that, jint DestinationPtr, jobject Source, jint Length)
+{
+    OLEINPLACEFRAMEINFO oleinplaceframeinfo, *Source1=&oleinplaceframeinfo;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_OLEINPLACEFRAMEINFO_2I\n");
+#endif
+
+    if (Source) {
+        getOLEINPLACEFRAMEINFOFields(env, Source, Source1);
+    }
+
+    MoveMemory((PVOID)DestinationPtr, Source1, Length);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/STATSTG;I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STATSTG_2I
+  (JNIEnv *env, jclass that, jint Destination, jobject Source, jint Length)
+{
+    STATSTG statstg, *Source1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STATSTG_2I\n");
+#endif
+
+    if (Source) {
+        Source1=&statstg;
+        getSTATSTGFields(env, Source, Source1);
+    }
+    MoveMemory((PVOID)Destination, Source1, Length);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/STGMEDIUM;I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2I
+  (JNIEnv *env, jclass that, jint Destination, jobject Source, jint Length)
+{
+    STGMEDIUM stgmedium, *Source1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2I\n");
+#endif
+
+    if (Source) {
+        Source1=&stgmedium;
+        getSTGMEDIUMFields(env, Source, Source1);
+    }
+    MoveMemory((PVOID)Destination, Source1, Length);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/STGMEDIUM;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)
+{
+    STGMEDIUM stgmedium, *Destination1=&stgmedium;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2II\n");
+#endif
+
+	MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);
+
+    if (Destination) {
+        setSTGMEDIUMFields(env, Destination, Destination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/DISPPARAMS;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)
+{
+    DISPPARAMS dispparams, *Destination1=&dispparams;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2II\n");
+#endif
+
+    MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);
+
+    if (Destination) {
+        setDISPPARAMSFields(env, Destination, Destination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/FORMATETC;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FORMATETC_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    FORMATETC formatetc, *Destination1=&formatetc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FORMATETC_2II\n");
+#endif
+
+    MoveMemory((PVOID)Destination1, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        setFORMATETCFields(env, Destination, Destination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_GUID_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)
+{
+    GUID guid, *Destination1=&guid;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_GUID_2II\n");
+#endif
+
+    MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);
+
+    if (Destination) {
+        setGUIDFields(env, Destination, Destination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/STATSTG;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STATSTG_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    STATSTG statstg, *Destination1=&statstg;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_STATSTG_2II\n");
+#endif
+
+    MoveMemory((PVOID)Destination1, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        setSTATSTGFields(env, Destination, Destination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/TYPEATTR;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_TYPEATTR_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint SourcePtr, jint Length)
+{
+    TYPEATTR typeattr, *Destination1=&typeattr;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_TYPEATTR_2II\n");
+#endif
+    MoveMemory((PVOID)Destination1, (CONST VOID *)SourcePtr, Length);
+    if (Destination) {
+        setTYPEATTRFields(env, Destination, Destination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/win32/RECT;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_win32_RECT_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    RECT rect, *lpDestination1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_win32_RECT_2II\n");
+#endif
+
+       MoveMemory((PVOID)&rect, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        lpDestination1 = ▭
+        setRECTFields(env, Destination, lpDestination1);
+    }
+}
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/FUNCDESC1;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC1_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    FUNCDESC funcdesc, *lpDestination1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC1_2II\n");
+#endif
+
+    MoveMemory((PVOID)&funcdesc, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        lpDestination1 = &funcdesc;
+        setFUNCDESC1Fields(env, Destination, lpDestination1);
+    }
+}
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/FUNCDESC2;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC2_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    FUNCDESC funcdesc, *lpDestination1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_FUNCDESC2_2II\n");
+#endif
+
+    MoveMemory((PVOID)&funcdesc, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        lpDestination1 = &funcdesc;
+        setFUNCDESC2Fields(env, Destination, lpDestination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/VARDESC1;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC1_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    VARDESC vardesc, *lpDestination1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC1_2II\n");
+#endif
+
+       MoveMemory((PVOID)&vardesc, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        lpDestination1 = &vardesc;
+        setVARDESC1Fields(env, Destination, lpDestination1);
+    }
+}
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/VARDESC2;II)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC2_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    VARDESC vardesc, *lpDestination1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__Lorg_eclipse_swt_internal_ole_win32_VARDESC2_2II\n");
+#endif
+
+       MoveMemory((PVOID)&vardesc, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        lpDestination1 = &vardesc;
+        setVARDESC2Fields(env, Destination, lpDestination1);
+    }
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleCreate
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;Lorg/eclipse/swt/internal/ole/win32/GUID;ILorg/eclipse/swt/internal/ole/win32/FORMATETC;II[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleCreate
+  (JNIEnv *env, jclass that, jobject rclsid, jobject riid, jint renderopt, 
+                             jobject pFormatEtc, jint pClientSite, jint pStg, jintArray ppvObject)
+{
+    LPVOID *ppvObject1=NULL;
+    GUID guid1, *rclsid1=NULL;
+    GUID guid2, *riid1=NULL;
+    FORMATETC formatec, *pFormatEtc1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleCreate\n");
+#endif
+
+    if (rclsid) {
+        rclsid1=&guid1;
+        getGUIDFields(env, rclsid, rclsid1);
+    }
+    if (riid) {
+        riid1=&guid2;
+        getGUIDFields(env, riid, riid1);
+    }
+    if (pFormatEtc) {
+        pFormatEtc1 = &formatec;
+        getFORMATETCFields(env, pFormatEtc, pFormatEtc1);
+    }
+
+    if (ppvObject)
+        ppvObject1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObject, NULL);
+
+    rc = (jint) OleCreate(rclsid1, riid1, renderopt, pFormatEtc1, (IOleClientSite * )pClientSite, (IStorage * )pStg, ppvObject1);
+
+    if (ppvObject)
+        (*env)->ReleaseIntArrayElements(env, ppvObject, (jint *)ppvObject1, 0);
+    
+/*  all of these objects are inputs so we don't not need to set the
+    fields back
+*/
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleCreateFromFile
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[CLorg/eclipse/swt/internal/ole/win32/GUID;ILorg/eclipse/swt/internal/ole/win32/FORMATETC;II[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleCreateFromFile
+  (JNIEnv *env, jclass that, jobject rclsid, jcharArray lpszFileName, jobject riid, jint renderopt, 
+			jobject pFormatEtc, jint pClientSite, jint pStg, jintArray ppvObj)
+{
+    LPVOID *ppvObj1=NULL;
+    LPCOLESTR lpszFileName1=NULL;
+    GUID guid1, *rclsid1=NULL;
+    GUID guid2, *riid1=NULL;
+    FORMATETC formatec, *pFormatEtc1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleCreateFromFile\n");
+#endif
+    
+    if (rclsid) {
+        rclsid1=&guid1;
+        getGUIDFields(env, rclsid, rclsid1);
+    }
+
+    if (riid) {
+        riid1=&guid2;
+        getGUIDFields(env, riid, riid1);
+    }
+    if (pFormatEtc) {
+        pFormatEtc1 = &formatec;
+        getFORMATETCFields(env, pFormatEtc, pFormatEtc1);
+    }
+
+    if (lpszFileName)
+        lpszFileName1 = (LPCOLESTR)(*env)->GetCharArrayElements(env, lpszFileName, NULL);
+
+    if (ppvObj)
+        ppvObj1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObj, NULL);
+
+    rc = (jint) OleCreateFromFile(rclsid1, lpszFileName1, riid1, renderopt, pFormatEtc1, (LPOLECLIENTSITE)pClientSite, (LPSTORAGE)pStg, ppvObj1);
+
+    if (ppvObj)
+        (*env)->ReleaseIntArrayElements(env, ppvObj, (jint *)ppvObj1, 0);
+    
+    if (lpszFileName)
+        (*env)->ReleaseCharArrayElements(env, lpszFileName, (jchar *)lpszFileName1, 0);
+
+/*  all of these objects are inputs so we don't not need to set the
+    fields back
+*/
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleCreatePropertyFrame
+ * Signature: (III[CI[IIIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleCreatePropertyFrame
+  (JNIEnv *env, jclass that, jint hwndOwner, jint x, jint y, jcharArray lpszCaption, jint cObjects, jintArray lplpUnk, jint cPages, jint lpPageClsID, jint lcid, jint dwReserved, jint lpvReserved)
+{
+    LPCOLESTR lpszCaption1=NULL;
+    jint *lplpUnk1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleCreatePropertyFrame\n");
+#endif
+
+    if (lpszCaption)
+        lpszCaption1 = (LPCOLESTR)(*env)->GetCharArrayElements(env, lpszCaption, NULL);
+
+    if (lplpUnk)
+        lplpUnk1 = (*env)->GetIntArrayElements(env, lplpUnk, NULL);
+
+    rc = (jint) OleCreatePropertyFrame((HWND)hwndOwner, x, y, lpszCaption1, cObjects, (LPUNKNOWN FAR*)lplpUnk1, cPages, (LPCLSID)lpPageClsID, (LCID)lcid, dwReserved, (LPVOID)lpvReserved);
+
+    if (lplpUnk)
+        (*env)->ReleaseIntArrayElements(env, lplpUnk, (jint *)lplpUnk1, 0);
+
+    if (lpszCaption)
+        (*env)->ReleaseCharArrayElements(env, lpszCaption, (jchar *)lpszCaption1, 0);
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleIsRunning
+ * Signature: (I)Z
+ */
+JNIEXPORT jboolean JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleIsRunning
+  (JNIEnv *env, jclass that, jint pObject)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleIsRunning\n");
+#endif
+    return (jboolean) OleIsRunning((LPOLEOBJECT)pObject);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleLoad
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/GUID;I[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleLoad
+  (JNIEnv *env, jclass that, jint pStg, jobject riid, jint pClientSite, jintArray ppvObj)
+{
+    LPVOID *ppvObj1=NULL;
+    GUID guid, *riid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleLoad\n");
+#endif
+    if (riid) {
+        riid1=&guid;
+        getGUIDFields(env, riid, riid1);
+    }
+    
+    if (ppvObj)
+        ppvObj1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObj, NULL);
+
+    rc = (jint) OleLoad((IStorage *)pStg, riid1, (IOleClientSite *)pClientSite, ppvObj1); /* cast it to an OLE function returning int */
+
+    if (ppvObj)
+        (*env)->ReleaseIntArrayElements(env, ppvObj, (jint *)ppvObj1, 0);
+
+    if (riid) {
+        setGUIDFields(env, riid, riid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleRun
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleRun
+  (JNIEnv *env, jclass that, jint pUnknown)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleRun\n");
+#endif
+    return (jint) OleRun((LPUNKNOWN)pUnknown);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleSave
+ * Signature: (IIZ)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSave
+  (JNIEnv *env, jclass that, jint pPS, jint pStg, jboolean fSameAsLoad)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleSave\n");
+#endif
+    return (jint) OleSave((IPersistStorage *)pPS, (IStorage *)pStg, fSameAsLoad);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleSetContainedObject
+ * Signature: (IZ)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSetContainedObject
+  (JNIEnv *env, jclass that, jint pUnk, jboolean fContained)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleSetContainedObject\n");
+#endif
+    return (jint) OleSetContainedObject((LPUNKNOWN)pUnk, fContained);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleSetMenuDescriptor
+ * Signature: (IIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSetMenuDescriptor
+  (JNIEnv *env, jclass that, jint holemenu, jint hwndFrame, jint hwndActiveObject, jint lpFrame, jint lpActiveObj)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleSetMenuDescriptor\n");
+#endif
+    return (jint) OleSetMenuDescriptor((HOLEMENU)holemenu, (HWND)hwndFrame, (HWND)hwndActiveObject, (LPOLEINPLACEFRAME)lpFrame, (LPOLEINPLACEACTIVEOBJECT)lpActiveObj);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleTranslateColor
+ * Signature: (II[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleTranslateColor
+  (JNIEnv *env, jclass that, jint clr, jint hpal, jintArray pcolorref)
+{
+    jint *pcolorref1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleTranslateColor\n");
+#endif
+
+    if (pcolorref)
+        pcolorref1 = (*env)->GetIntArrayElements(env, pcolorref, NULL);
+
+    rc = (jint) OleTranslateColor((OLE_COLOR)clr, (HPALETTE)hpal, (COLORREF *)pcolorref1);
+
+    if (pcolorref)
+        (*env)->ReleaseIntArrayElements(env, pcolorref, pcolorref1, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    RegisterDragDrop
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_RegisterDragDrop
+  (JNIEnv *env, jclass that, jint hwnd, jint pDropTarget)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "RegisterDragDrop\n");
+#endif
+    return (jint) RegisterDragDrop((HWND)hwnd, (IDropTarget *)pDropTarget);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    RevokeDragDrop
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_RevokeDragDrop
+  (JNIEnv *env, jclass that, jint hwnd)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "RevokeDragDrop\n");
+#endif
+    return (jint) RevokeDragDrop((HWND)hwnd);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    StgCreateDocfile
+ * Signature: ([CII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StgCreateDocfile
+  (JNIEnv *env, jclass that, jcharArray pwcsName, jint grfMode, jint reserved, jintArray ppstgOpen)
+{
+    jchar *pwcsName1=NULL;
+    IStorage **ppstgOpen1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "StgCreateDocfile\n");
+#endif
+
+    if (pwcsName)
+        pwcsName1 = (*env)->GetCharArrayElements(env, pwcsName, NULL);
+
+    if (ppstgOpen)
+        ppstgOpen1 = (IStorage **)(*env)->GetIntArrayElements(env, ppstgOpen, NULL);
+
+    rc = (jint) StgCreateDocfile(pwcsName1, grfMode, reserved, ppstgOpen1);
+
+    if (ppstgOpen)
+        (*env)->ReleaseIntArrayElements(env, ppstgOpen, (jint *)ppstgOpen1, 0);
+
+    if (pwcsName)
+        (*env)->ReleaseCharArrayElements(env, pwcsName, pwcsName1, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    StgIsStorageFile
+ * Signature: ([C)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StgIsStorageFile
+  (JNIEnv *env, jclass that, jcharArray pwcsName)
+{
+    const WCHAR *pwcsName1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "StgIsStorageFile\n");
+#endif
+
+    if (pwcsName)
+        pwcsName1 = (const WCHAR *)(*env)->GetCharArrayElements(env, pwcsName, NULL);
+
+    rc = (jint)StgIsStorageFile(pwcsName1);
+
+    if (pwcsName)
+        (*env)->ReleaseCharArrayElements(env, pwcsName, (jchar *)pwcsName1, 0);
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    StgOpenStorage
+ * Signature: ([CIIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StgOpenStorage
+  (JNIEnv *env, jclass that, jcharArray pwcsName, jint pstgPriority, jint grfMode, jint snbExclude, jint reserved, jintArray ppstgOpen)
+{
+    const WCHAR *pwcsName1=NULL;
+    IStorage **ppstgOpen1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "StgOpenStorage\n");
+#endif
+
+    if (pwcsName)
+        pwcsName1 = (const WCHAR *)(*env)->GetCharArrayElements(env, pwcsName, NULL);
+
+    if (ppstgOpen)
+        ppstgOpen1 = (IStorage **)(*env)->GetIntArrayElements(env, ppstgOpen, NULL);
+
+    rc = (jint) StgOpenStorage(pwcsName1, (IStorage *)pstgPriority, grfMode, (SNB)snbExclude, reserved, ppstgOpen1);
+
+    if (ppstgOpen)
+        (*env)->ReleaseIntArrayElements(env, ppstgOpen, (jint *)ppstgOpen1, 0);
+
+    if (pwcsName)
+        (*env)->ReleaseCharArrayElements(env, pwcsName, (jchar *)pwcsName1, 0);
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    StringFromCLSID
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_StringFromCLSID
+  (JNIEnv *env, jclass that, jobject rclsid, jintArray ppsz)
+{
+    LPOLESTR *ppsz1=NULL;
+    GUID guid, *rclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_StringFromCLSID\n");
+#endif
+
+    if (rclsid) {
+        rclsid1=&guid;
+        getGUIDFields(env, rclsid, rclsid1);
+    }
+
+    if (ppsz)
+        ppsz1 = (LPOLESTR *)(*env)->GetIntArrayElements(env, ppsz, NULL);
+
+    rc = (jint) StringFromCLSID(rclsid1, ppsz1);
+
+    if (ppsz)
+        (*env)->ReleaseIntArrayElements(env, ppsz, (jint *)ppsz1, 0);
+    
+    if (rclsid) {
+        setGUIDFields(env, rclsid, rclsid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    SysAllocString
+ * Signature: ([C)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_SysAllocString
+   (JNIEnv *env, jclass that, jcharArray sz0)
+{
+	jchar *sz01=NULL;
+	jint rc;
+	
+#ifdef DEBUG_CALL_PRINTS
+	fprintf(stderr, "SysAllocString\n");
+#endif
+	if (sz0)
+		sz01 = (*env)->GetCharArrayElements(env, sz0, NULL);
+	rc = (jint) SysAllocString( (OLECHAR *) sz01);
+	if (sz0)
+		(*env)->ReleaseCharArrayElements(env, sz0, sz01, 0);
+	return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    SysFreeString
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_SysFreeString
+   (JNIEnv *env, jclass that, jint bstr)
+{
+#ifdef DEBUG_CALL_PRINTS
+	fprintf(stderr, "SysFreeString\n");
+#endif
+	SysFreeString((BSTR)bstr);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    SysStringByteLen
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_SysStringByteLen
+  (JNIEnv *env, jclass that, jint bstr)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "SysStringByteLen\n");
+#endif
+    return (jint) SysStringByteLen((BSTR)bstr);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VariantChangeType
+ * Signature: (IISS)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantChangeType
+  (JNIEnv *env, jclass that, jint pvargDest, jint pvarSrc, jshort wFlags, jshort vt)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VariantChangeType\n");
+#endif
+    return (jint) VariantChangeType((VARIANTARG FAR* )pvargDest, (VARIANTARG FAR* )pvarSrc, wFlags, (VARTYPE) vt);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VariantClear
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantClear
+  (JNIEnv *env, jclass that, jint pvarg)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VariantClear\n");
+#endif
+    return (jint) VariantClear((VARIANTARG FAR* ) pvarg);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VariantInit
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantInit
+  (JNIEnv *env, jclass that, jint pvarg)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VariantInit\n");
+#endif
+    VariantInit((VARIANTARG FAR*)pvarg);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl)
+{
+    P_OLE_FN_1 fn; /* this is a function that returns int */
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II\n");
+#endif
+    fn = (P_OLE_FN_1)(*(int **)ppVtbl)[fnNumber];
+    return fn(ppVtbl); /* cast it to an OLE function returning int */
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[C)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3C
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0)
+{
+    P_OLE_FN_2 fn;
+	jchar *arg01=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3C\n");
+#endif
+
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+
+	if (arg0)
+		arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);
+
+	rc = fn(ppVtbl, (jint)arg01);
+
+	if (arg0)
+		(*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[C[C)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3C_3C
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jcharArray arg1)
+{
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jchar *arg01=NULL, *arg11=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3C_3C\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0)
+        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);
+
+    if (arg1)
+        arg11 = (*env)->GetCharArrayElements(env, arg1, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01, (jint)arg11); /* cast it to an OLE function returning int */
+
+    if (arg1)
+        (*env)->ReleaseCharArrayElements(env, arg1, arg11, 0);
+
+    if (arg0)
+        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[CI)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CI
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1)
+{
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jchar *arg01=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3CI\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0)
+        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);
+    
+    rc = fn(ppVtbl, (jint)arg01, arg1);
+
+    if (arg0)
+        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[CIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CIII_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)
+{
+    P_OLE_FN_6 fn; /* this is a function that returns int */
+    jchar *arg01=NULL;
+    jint *arg41=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3CIII_3I\n");
+#endif
+
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0)
+        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);
+    if (arg4)
+        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, (jint)arg41); /* cast it to an OLE function returning int */
+
+    if (arg4)
+        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);
+    if (arg0)
+        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[CIIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CIIII_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1, jint arg2, jint arg3, jint arg4, jintArray arg5)
+{
+    P_OLE_FN_7 fn; /* this is a function that returns int */    jchar *arg01=NULL;
+    jint *arg51=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3CIIII_3I\n");
+#endif
+
+    fn = (P_OLE_FN_7)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0)
+        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);
+    if (arg5)
+        arg51 = (*env)->GetIntArrayElements(env, arg5, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, arg4, (jint)arg51); /* cast it to an OLE function returning int */
+
+    if (arg5)
+        (*env)->ReleaseIntArrayElements(env, arg5, arg51, 0);
+    if (arg0)
+        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jintArray arg0)
+{
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    jint *arg01=NULL;
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3I\n");
+#endif
+
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0)
+        arg01 = (*env)->GetIntArrayElements(env, arg0, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0)
+        (*env)->ReleaseIntArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (III)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III
+   (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0)
+{
+	P_OLE_FN_2 fn; /* this is a function that returns int */
+	jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+	fprintf(stderr, "COM_VtblCall__III\n");
+#endif
+
+	fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+
+	rc = fn(ppVtbl, arg0); /* cast it to an OLE function returning int */
+	return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIII
+   (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1)
+{
+	P_OLE_FN_3 fn; /* this is a function that returns int */
+	jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+	fprintf(stderr, "COM_VtblCall__IIII\n");
+#endif
+
+	fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+
+	rc = fn(ppVtbl, arg0, arg1); /* cast it to an OLE function returning int */
+	return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (III[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jintArray arg1)
+{
+    P_OLE_FN_3 fn;    
+
+    jint *arg11=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__III_3I\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*((jint **)ppVtbl))[fnNumber];
+
+    if (arg1)
+        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);
+
+    rc = fn(ppVtbl, arg0, (jint)arg11); 
+
+    if (arg1)
+        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIII_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jintArray arg2)
+{
+    P_OLE_FN_4 fn; /* this is a function that returns int */
+    jint *arg21=NULL;
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIII_3I\n");
+#endif
+
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg2)
+        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);
+
+    rc = fn(ppVtbl, arg0, arg1, (jint)arg21); /* cast it to an OLE function returning int */
+
+    if (arg2)
+        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2)
+{
+    P_OLE_FN_4 fn; /* this is a function that returns int */
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIII\n");
+#endif
+
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+    return fn(ppVtbl, arg0, arg1, arg2);;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIII_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jintArray arg3)
+{
+    P_OLE_FN_5 fn; /* this is a function that returns int */
+    jint *arg31=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VtblCall__IIIII_3I\n");
+#endif
+
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg3)
+        arg31 = (*env)->GetIntArrayElements(env, arg3, NULL);
+    
+    rc = fn(ppVtbl, arg0, arg1, arg2, (jint)arg31);
+
+    if (arg3)
+        (*env)->ReleaseIntArrayElements(env, arg3, arg31, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIII_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)
+{
+    P_OLE_FN_6 fn;
+    jint *arg41=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3CIIII_3I\n");
+#endif
+
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+    if (arg4)
+        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);
+    
+    rc = fn(ppVtbl, arg0, arg1, arg2, arg3, (jint)arg41); 
+
+    if (arg4)
+        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIIIII[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIII_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jintArray arg5)
+{
+    P_OLE_FN_7 fn;    
+
+    jint *arg51=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIIIII_3I\n");
+#endif
+
+    fn = (P_OLE_FN_7)(*((jint **)ppVtbl))[fnNumber];
+
+    if (arg5)
+        arg51 = (*env)->GetIntArrayElements(env, arg5, NULL);
+
+    rc = fn(ppVtbl, arg0, arg1, arg2, arg3, arg4, (jint)arg51); 
+
+    if (arg5)
+        (*env)->ReleaseIntArrayElements(env, arg5, arg51, 0);
+
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIILorg/eclipse/swt/internal/ole/win32/DVTARGETDEVICE;Lorg/eclipse/swt/internal/win32/SIZE;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jobject arg2, jobject arg3)
+{
+    DVTARGETDEVICE dvtargetdevice, *arg21=NULL;
+    SIZE size, *arg31=NULL;
+    P_OLE_FN_5 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_DVTARGETDEVICE_2Lorg_eclipse_swt_internal_win32_SIZE_2\n");
+#endif
+
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+    if (arg2) {
+        arg21=&dvtargetdevice;
+        getDVTARGETDEVICEFields(env, arg2, arg21);
+    }
+    if (arg3) {
+        arg31=&size;
+        getSIZEFields(env, arg3, arg31);
+    }
+    
+    rc = fn(ppVtbl, arg0, arg1, (jint)arg21, (jint)arg31); /* cast it to an OLE function returning int */
+
+    if (arg2) {
+        setDVTARGETDEVICEFields(env, arg2, arg21);
+    }
+    if (arg3) {
+        setSIZEFields(env, arg3, arg31);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIILorg/eclipse/swt/internal/ole/win32/GUID;I[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jobject arg2, jint arg3, jintArray arg4)
+{
+    jint *arg41=NULL;
+    GUID guid, *arg21=NULL;
+    P_OLE_FN_6 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I\n");
+#endif
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+    if (arg2) {
+        arg21=&guid;
+        getGUIDFields(env, arg2, arg21);
+    }
+    
+    if (arg4)
+        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);
+
+    rc = fn(ppVtbl, arg0, arg1, (jint)arg21, arg3, (jint)arg41); /* cast it to an OLE function returning int */
+
+    if (arg4)
+        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);
+
+    if (arg2) {
+        setGUIDFields(env, arg2, arg21);
+    }
+    return rc;
+}
+
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/ole/win32/FORMATETC;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jintArray arg2)
+{
+    P_OLE_FN_4 fn;
+    FORMATETC formatetc, *arg11=NULL;
+    jint *arg21=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_FORMATETC_2_3I\n");
+#endif
+
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg1) {
+        arg11 = &formatetc;
+        getFORMATETCFields(env, arg1, arg11);
+    }
+    if (arg2)
+        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);
+
+    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21);
+
+    if (arg2)
+        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);
+
+    if (arg1) {
+        setFORMATETCFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1)
+{
+    GUID guid, *arg11=NULL;
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIILorg_eclipse_swt_internal_ole_win32_GUID_2n");
+#endif
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&guid;
+        getGUIDFields(env, arg1, arg11);
+    }
+
+    rc = fn(ppVtbl, arg0, (jint)arg11); /* cast it to an COM function returning int */
+
+    if (arg1) {
+		setGUIDFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;II)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jint arg2, jint arg3)
+{
+    GUID guid, *arg11=NULL;
+    P_OLE_FN_5 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2II\n");
+#endif
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&guid;
+        getGUIDFields(env, arg1, arg11);
+    }
+    
+    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, arg3); /* cast it to an OLE function returning int */
+
+    if (arg1) {
+        setGUIDFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;IILorg/eclipse/swt/internal/ole/win32/DISPPARAMS;ILorg/eclipse/swt/internal/ole/win32/EXCEPINFO;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_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 fnNumber, jint ppVtbl, jint arg0, jobject arg1, jint arg2, jint arg3, jobject arg4, jint arg5, jobject arg6, jintArray arg7)
+{
+    jint *arg71=NULL;
+    GUID guid, *arg11=NULL;
+    EXCEPINFO excepinfo, *arg61=NULL;
+    DISPPARAMS dispparams, *arg41=NULL;
+    P_OLE_FN_9 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2IILorg_eclipse_swt_internal_ole_win32_DISPPARAMS_2ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2_3I\n");
+#endif
+
+    fn = (P_OLE_FN_9)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&guid;
+        getGUIDFields(env, arg1, arg11);
+    }
+    if (arg4) {
+        arg41=&dispparams;
+        getDISPPARAMSFields(env, arg4, arg41);
+    }
+
+    if (arg6) {
+        arg61=&excepinfo;
+        getEXCEPINFOFields(env, arg6, arg61);
+    }
+
+    if (arg7)
+        arg71 = (*env)->GetIntArrayElements(env, arg7, NULL);
+
+    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, arg3, (jint)arg41, arg5, (jint)arg61, (jint)arg71); /* cast it to an OLE function returning int */
+
+    if (arg7)
+        (*env)->ReleaseIntArrayElements(env, arg7, arg71, 0);
+
+    if (arg6) {
+        setEXCEPINFOFields(env, arg6, arg61);
+    }
+
+    if (arg4) {
+        setDISPPARAMSFields(env, arg4, arg41);
+    }
+
+    if (arg1) {
+        setGUIDFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/ole/win32/STATSTG;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jintArray arg2)
+{
+    jint *arg21=NULL;
+    STATSTG statstg, *arg11=NULL;
+    P_OLE_FN_4 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VtblCall__IIILorg_eclipse_swt_internal_ole_win32_STATSTG_2_3I\n");
+#endif
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&statstg;
+        getSTATSTGFields(env, arg1, arg11);
+    }
+    
+    if (arg2)
+        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);
+
+    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21); /* cast it to an OLE function returning int */
+
+    if (arg2)
+        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);
+
+    if (arg1) {
+        setSTATSTGFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/win32/MSG;IIILorg/eclipse/swt/internal/win32/RECT;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jint arg2, jint arg3, jint arg4, jobject arg5)
+{
+    MSG msg, *arg11=NULL;
+    RECT rect, *arg51=NULL;
+    P_OLE_FN_7 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_win32_MSG_2IIILorg_eclipse_swt_internal_win32_RECT_2\n");
+#endif
+
+    fn = (P_OLE_FN_7)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&msg;
+        getMSGFields(env, arg1, arg11);
+    }
+    if (arg5) {
+        arg51=▭
+        getRECTFields(env, arg5, arg51);
+    }
+    
+    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, arg3, arg4, (jint)arg51); /* cast it to an OLE function returning int */
+
+    if (arg1) {
+        setMSGFields(env, arg1, arg11);
+    }
+    if (arg5) {
+        setRECTFields(env, arg5, arg51);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/win32/MSG;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_MSG_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    MSG msg, *arg01=NULL;
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_MSG_2\n");
+#endif
+
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&msg;
+        getMSGFields(env, arg0, arg01);
+    }
+    
+    rc = fn(ppVtbl,  (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setMSGFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/win32/SIZE;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_win32_SIZE_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1)
+{
+    SIZE size, *arg11=NULL;
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_win32_SIZE_2\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&size;
+        getSIZEFields(env, arg1, arg11);
+    }
+    
+    rc = fn(ppVtbl, arg0, (jint)arg11); /* cast it to an COM function returning int */
+
+    if (arg1) {
+        setSIZEFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIZ)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIZ
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jboolean arg1)
+{
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIZ\n");
+#endif
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+
+    rc = fn(ppVtbl, arg0, arg1); /* cast it to an OLE function returning int */
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/CAUUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CAUUID_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    CAUUID cauuid, *arg01=&cauuid;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3C\n");
+#endif
+
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0) {
+        getCAUUIDFields(env, arg0, arg01);
+    }
+    
+    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setCAUUIDFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/CONTROLINFO;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CONTROLINFO_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    CONTROLINFO controlinfo, *arg01=NULL;
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_CONTROLINFO_2\n");
+#endif
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&controlinfo;
+        getCONTROLINFOFields(env, arg0, arg01);
+    }
+    
+    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setCONTROLINFOFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/FORMATETC;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    P_OLE_FN_2 fn;
+    FORMATETC formatetc, *arg01=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2\n");
+#endif
+
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0) {
+        arg01 = &formatetc;
+        getFORMATETCFields(env, arg0, arg01);
+    }
+    rc = fn(ppVtbl, (jint)arg01);
+
+    if (arg0) {
+        setFORMATETCFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/FORMATETC;Lorg/eclipse/swt/internal/ole/win32/STGMEDIUM;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jobject arg1)
+{
+    P_OLE_FN_3 fn;
+    FORMATETC formatetc, *arg01=NULL;
+    STGMEDIUM stgmedium, *arg11=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0) {
+        arg01 = &formatetc;
+        getFORMATETCFields(env, arg0, arg01);
+    }
+    if (arg1) {
+        arg11 = &stgmedium;
+        getSTGMEDIUMFields(env, arg1, arg11);
+    }
+    rc = fn(ppVtbl, (jint)arg01, (jint)arg11);
+
+    if (arg0) {
+        setFORMATETCFields(env, arg0, arg01);
+    }
+    if (arg1) {
+        setSTGMEDIUMFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/FORMATETC;Lorg/eclipse/swt/internal/ole/win32/STGMEDIUM;Z)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2Z
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jobject arg1, jboolean arg2)
+{
+    P_OLE_FN_4 fn;
+    FORMATETC formatetc, *arg01=NULL;
+    STGMEDIUM stgmedium, *arg11=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_FORMATETC_2Lorg_eclipse_swt_internal_ole_win32_STGMEDIUM_2Z\n");
+#endif
+
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0) {
+        arg01 = &formatetc;
+        getFORMATETCFields(env, arg0, arg01);
+    }
+    if (arg1) {
+        arg11 = &stgmedium;
+        getSTGMEDIUMFields(env, arg1, arg11);
+    }
+    rc = fn(ppVtbl, (jint)arg01, (jint)arg11, (jint)arg2);
+
+    if (arg0) {
+        setFORMATETCFields(env, arg0, arg01);
+    }
+    if (arg1) {
+        setSTGMEDIUMFields(env, arg1, arg11);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    GUID guid, *arg01=NULL;
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2\n");
+#endif
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&guid;
+        getGUIDFields(env, arg0, arg01);
+    }
+
+    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setGUIDFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jintArray arg1)
+{
+    jint *arg11=NULL;
+    GUID guid, *arg01=NULL;
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2_3I\n");
+#endif
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0) {
+        arg01=&guid;
+        getGUIDFields(env, arg0, arg01);
+    }
+    
+    if (arg1)
+        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01, (jint)arg11); /* cast it to an OLE function returning int */
+
+    if (arg1)
+        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);
+
+    if (arg0) {
+        setGUIDFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;III[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)
+{
+    jint *arg41=NULL;
+    GUID guid, *arg01=NULL;
+    P_OLE_FN_6 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2III_3I\n");
+#endif
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&guid;
+        getGUIDFields(env, arg0, arg01);
+    }
+    
+    if (arg4)
+        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, (jint)arg41); /* cast it to an OLE function returning int */
+
+    if (arg4)
+        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);
+
+    if (arg0) {
+        setGUIDFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;IIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jint arg2, jint arg3, jint arg4)
+{
+    GUID guid, *arg01=NULL;
+    P_OLE_FN_6 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2IIII\n");
+#endif
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&guid;
+        getGUIDFields(env, arg0, arg01);
+    }
+    
+    rc = fn(ppVtbl, (jint)arg01, arg1, arg2, arg3, arg4);
+
+    if (arg0) {
+        setGUIDFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;ILorg/eclipse/swt/internal/ole/win32/OLECMD;Lorg/eclipse/swt/internal/ole/win32/OLECMDTEXT;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jobject arg2, jobject arg3)
+{
+    GUID guid, *arg01=NULL;
+    OLECMD olecmd, *arg21=NULL;
+    OLECMDTEXT olecmdtext, *arg31=NULL;
+
+    P_OLE_FN_5 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VtblCall__IILorg_eclipse_swt_internal_ole_win32_GUID_2ILorg_eclipse_swt_internal_ole_win32_OLECMD_2Lorg_eclipse_swt_internal_ole_win32_OLECMDTEXT_2\n");
+#endif
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&guid;
+        getGUIDFields(env, arg0, arg01);
+    }
+    if (arg2) {
+        arg21=&olecmd;
+        getOLECMDFields(env, arg2, arg21);
+    }
+    if (arg3) {
+        arg31=&olecmdtext;
+        getOLECMDTEXTFields(env, arg3, arg31);
+    }
+    
+    rc = fn(ppVtbl, (jint)arg01, arg1, (jint)arg21, (jint)arg31);
+
+    if (arg0) {
+        setGUIDFields(env, arg0, arg01);
+    }
+    if (arg2) {
+        setOLECMDFields(env, arg2, arg21);
+    }
+    if (arg3) {
+        setOLECMDTEXTFields(env, arg3, arg31);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/LICINFO;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_LICINFO_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    LICINFO licinfo, *arg01=NULL;
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_LICINFO_2\n");
+#endif
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&licinfo;
+        getLICINFOFields(env, arg0, arg01);
+    }
+
+    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setLICINFOFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/win32/RECT;IZ)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jint arg1, jboolean arg2)
+{
+    RECT rect, *arg01=NULL;
+    P_OLE_FN_4 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2IZ\n");
+#endif
+
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=▭
+        getRECTFields(env, arg0, arg01);
+    }
+    
+    rc = fn(ppVtbl, (jint)arg01, arg1, arg2); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setRECTFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/win32/RECT;Lorg/eclipse/swt/internal/win32/RECT;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2Lorg_eclipse_swt_internal_win32_RECT_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0, jobject arg1)
+{
+    RECT rect0, *arg01=NULL;
+    RECT rect1, *arg11=NULL;
+    P_OLE_FN_3 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2Lorg_eclipse_swt_internal_win32_RECT_2\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&rect0;
+        getRECTFields(env, arg0, arg01);
+    }
+    if (arg1) {
+        arg11=&rect1;
+        getRECTFields(env, arg1, arg11);
+    }
+    rc = fn(ppVtbl, (jint)arg01, (jint)arg11); /* cast it to an OLE function returning int */
+
+    if (arg1) {
+        setRECTFields(env, arg1, arg11);
+    }
+    if (arg0) {
+        setRECTFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/win32/RECT;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    RECT rect0, *arg01=NULL;
+    P_OLE_FN_2 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_win32_RECT_2\n");
+#endif
+
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&rect0;
+        getRECTFields(env, arg0, arg01);
+    }
+    
+    rc = fn(ppVtbl, (jint)arg01); /* cast it to an OLE function returning int */
+
+    if (arg0) {
+        setRECTFields(env, arg0, arg01);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (III[I[I[I[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III_3I_3I_3I_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jintArray arg1, jintArray arg2, jintArray arg3, jintArray arg4)
+{
+    jint *arg11=NULL;
+    jint *arg21=NULL;
+    jint *arg31=NULL;
+    jint *arg41=NULL;
+    P_OLE_FN_6 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__III_3I_3I_3I_31\n");
+#endif
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+    if (arg1)
+        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);
+        
+    if (arg2)
+        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);
+        
+    if (arg3)
+        arg31 = (*env)->GetIntArrayElements(env, arg3, NULL);
+        
+    if (arg4)
+        arg41 = (*env)->GetIntArrayElements(env, arg4, NULL);
+
+    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21, (jint)arg31, (jint)arg41); /* cast it to an OLE function returning int */
+
+    if (arg1)
+        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);
+    
+    if (arg2)
+        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);
+        
+    if (arg3)
+        (*env)->ReleaseIntArrayElements(env, arg3, arg31, 0);
+    
+    if (arg4)
+        (*env)->ReleaseIntArrayElements(env, arg4, arg41, 0);
+
+
+    return rc;
+}
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (III[II[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__III_3II_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jintArray arg1, jint arg2, jintArray arg3)
+{
+    jint *arg11=NULL;
+    jint *arg31=NULL;
+    P_OLE_FN_5 fn; /* this is a function that returns int */
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__III_3II_3I\n");
+#endif
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+    if (arg1)
+        arg11 = (*env)->GetIntArrayElements(env, arg1, NULL);
+        
+    if (arg3)
+        arg31 = (*env)->GetIntArrayElements(env, arg3, NULL);
+        
+    rc = fn(ppVtbl, arg0, (jint)arg11, arg2, (jint)arg31); /* cast it to an OLE function returning int */
+
+    if (arg1)
+        (*env)->ReleaseIntArrayElements(env, arg1, arg11, 0);
+            
+    if (arg3)
+        (*env)->ReleaseIntArrayElements(env, arg3, arg31, 0);
+    
+    return rc;
+}      
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    WriteClassStg
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/GUID;)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_WriteClassStg
+  (JNIEnv *env, jclass that, jint pStg, jobject rclsid)
+{
+    GUID guid, *rclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "WriteClassStg\n");
+#endif
+    if (rclsid) {
+        rclsid1=&guid;
+        getGUIDFields(env, rclsid, rclsid1);
+    }
+    rc = (jint) WriteClassStg((IStorage *)pStg, rclsid1);
+
+    if (rclsid) {
+        setGUIDFields(env, rclsid, rclsid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleGetClipboard
+ * Signature: ([I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleGetClipboard
+  (JNIEnv *env, jclass that, jintArray ppDataObj)
+{
+    IDataObject **ppDataObj1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleGetClipboard\n");
+#endif
+    if (ppDataObj)
+        ppDataObj1 = (IDataObject **)(*env)->GetIntArrayElements(env, ppDataObj, NULL);
+
+    rc = (jint) OleGetClipboard(ppDataObj1);
+
+    if (ppDataObj)
+        (*env)->ReleaseIntArrayElements(env, ppDataObj, (jint *)ppDataObj1, 0);
+
+    return rc;
+}
+
+     /*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleIsCurrentClipboard
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleIsCurrentClipboard
+  (JNIEnv *env, jclass that, jint pDataObj)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleIsCurrentClipboard\n");
+#endif
+    return (jint) OleIsCurrentClipboard((IDataObject *)pDataObj);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleSetClipboard
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleSetClipboard
+  (JNIEnv *env, jclass that, jint pDataObj)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleSetClipboard\n");
+#endif
+    return (jint) OleSetClipboard((IDataObject *)pDataObj);
+}
+    
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleFlushClipboard
+ * Signature: ()I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleFlushClipboard
+  (JNIEnv *env, jclass that)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleFlushClipboard\n");
+#endif
+    return (jint) OleFlushClipboard();
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    OleDraw
+ * Signature: (IIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_OleDraw
+  (JNIEnv *env, jclass that, jint pUnk, jint dwAspect, jint hdcDraw, jint lprcBounds)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "OleDraw\n");
+#endif
+    return (jint) OleDraw((LPUNKNOWN)pUnk, (DWORD)dwAspect, (HDC)hdcDraw, (LPRECT)lprcBounds);
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    ReleaseStgMedium
+ * Signature: (I)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_ReleaseStgMedium
+  (JNIEnv *env, jclass that, jint pmedium)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "ReleaseStgMedium\n");
+#endif
+    ReleaseStgMedium((STGMEDIUM *)pmedium);
+}
+
+/* ------------- obsolete OLE calls ------------- */
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    DispGetParam
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/DISPPARAMS;III[I)I
+ */
+/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_DispGetParam
+  (JNIEnv *env, jclass that, jobject pdispparams, jint position, jint vtTarg, jint pvarResult, jintArray puArgErr)
+{
+    unsigned int FAR *puArgErr1=NULL;
+    DISPPARAMS dispparams, *pdispparams1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "DispGetParam\n");
+#endif
+
+    if (pdispparams) {
+        pdispparams1=&dispparams;
+        cacheDispparamsFids(env, pdispparams, &DispparamsFc);
+        getDISPPARAMSFields(env, pdispparams, pdispparams1, &DispparamsFc);
+    }
+    if (puArgErr)
+        puArgErr1 = (*env)->GetIntArrayElements(env, puArgErr, NULL);
+
+    rc = (jint) DispGetParam(pdispparams1, position, (VARTYPE)vtTarg, (VARIANT FAR *)pvarResult, puArgErr1);
+
+    if (puArgErr)
+        (*env)->ReleaseIntArrayElements(env, puArgErr, puArgErr1, 0);
+
+    if (pdispparams) {
+        setDISPPARAMSFields(env, pdispparams, pdispparams1, &DispparamsFc);
+    }
+    return rc;
+}
+*/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/win32/SIZE;I)V
+ */
+/*JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_win32_SIZE_2I
+  (JNIEnv *env, jclass that, jint DestinationPtr, jobject Source, jint Length)
+{
+    SIZE size, *Source1=&size;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_win32_SIZE_2I\n");
+#endif
+
+    if (Source) {
+        getSIZEFields(env, Source, Source1);
+    }
+
+    MoveMemory((PVOID)DestinationPtr, Source1, Length);
+}
+*/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (II[CI[CI)I
+ */
+/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__II_3CI_3CI
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jcharArray arg0, jint arg1, jcharArray arg2, jint arg3)
+{
+    P_OLE_FN_5 fn;
+    jchar *arg01=NULL, *arg21=NULL;
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__II_3CI_3CI\n");
+#endif
+
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+
+    if (arg0)
+        arg01 = (*env)->GetCharArrayElements(env, arg0, NULL);
+
+    if (arg2)
+        arg21 = (*env)->GetCharArrayElements(env, arg2, NULL);
+
+    rc = fn(ppVtbl, (jint)arg01, arg1, (jint)arg21, arg3);
+
+    if (arg2)
+        (*env)->ReleaseCharArrayElements(env, arg2, arg21, 0);
+
+    if (arg0)
+        (*env)->ReleaseCharArrayElements(env, arg0, arg01, 0);
+
+    return rc;
+}
+*/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIILorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2_3I
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jobject arg1, jintArray arg2)
+{
+    jint *arg21=NULL;
+    GUID guid, *arg11=NULL;
+    P_OLE_FN_4 fn;
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIILorg_eclipse_swt_internal_ole_win32_GUID_2I_3I\n");
+#endif
+    
+    fn = (P_OLE_FN_4)(*(int **)ppVtbl)[fnNumber];
+    if (arg1) {
+        arg11=&guid;
+        getGUIDFields(env, arg1, arg11);
+    }
+    
+    if (arg2)
+        arg21 = (*env)->GetIntArrayElements(env, arg2, NULL);
+
+    rc = fn(ppVtbl, arg0, (jint)arg11, (jint)arg21);
+
+    if (arg2)
+        (*env)->ReleaseIntArrayElements(env, arg2, arg21, 0);
+
+    if (arg1) {
+        setGUIDFields(env, arg1, arg11);
+    }
+    return rc;
+}
+*/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIII)I
+ */
+/*JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1)
+{
+    P_OLE_FN_3 fn;
+    jint rc;
+    
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIII\n");
+#endif
+
+    fn = (P_OLE_FN_3)(*(int **)ppVtbl)[fnNumber];
+    rc = fn(ppVtbl, arg0, arg1);
+    return rc;
+}
+*/
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/win32/MSG;)I
+ */
+/*
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_win32_MSG_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    MSG msg, *arg01=NULL;
+    P_OLE_FN_2 fn;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_MSG_2\n");
+#endif
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&msg;
+        getMSGFields(env, arg0, arg01);
+    }
+
+    rc = fn(ppVtbl, (jint)arg01);
+
+    if (arg0) {
+        setMSGFields(env, arg0, arg01);
+    }
+    return rc;
+}
+*/
+/* ------------- end obsolote OLE calls ------------- */
+
+/* ------------- deleted OLE calls ------------- */
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/TYPEATTR;)I
+ */
+/*
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_TYPEATTR_2
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jobject arg0)
+{
+    TYPEATTR typeattr, *arg01=NULL;
+    P_OLE_FN_2 fn;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IILorg_eclipse_swt_internal_ole_win32_TYPEATTR_2\n");
+#endif
+    fn = (P_OLE_FN_2)(*(int **)ppVtbl)[fnNumber];
+    if (arg0) {
+        arg01=&typeattr;
+        cacheTypeattrFids(env, arg0, &TypeattrFc);
+        getTypeattrFields(env, arg0, arg01, &TypeattrFc);
+    }
+
+    rc = fn(ppVtbl, (jint)arg01);
+    if (arg0) {
+        setTYPEATTRFields(env, arg0, arg01, &TypeattrFc);
+    }
+    return rc;
+}
+*/
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    MoveMemory
+ * Signature: (ILorg/eclipse/swt/internal/ole/win32/EXCEPINFO;I)V
+ */
+/* JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I
+  (JNIEnv *env, jclass that, jint Destination, jobject SourcePtr, jint Length)
+{
+    EXCEPINFO excepinfo, *SourcePtr1=&excepinfo;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_MoveMemory__ILorg_eclipse_swt_internal_ole_win32_EXCEPINFO_2I\n");
+#endif
+
+    if (SourcePtr) {
+        getEXCEPINFOFields(env, SourcePtr, SourcePtr1);
+    }
+
+    MoveMemory((PVOID)Destination, SourcePtr1, Length);
+}
+*/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    ProgIDFromCLSID
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[C)I
+ */
+/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3C
+  (JNIEnv *env, jclass that, jobject pclsid, jcharArray lplpszProgID)
+{
+    LPOLESTR *lplpszProgID1=NULL;
+    GUID guid, *pclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3C\n");
+#endif
+
+    if (pclsid) {
+        pclsid1=&guid;
+        getGUIDFields(env, pclsid, pclsid1);
+    }
+
+    if (lplpszProgID)
+        lplpszProgID1 = (LPOLESTR *)(*env)->GetCharArrayElements(env, lplpszProgID, NULL);
+
+    rc = (jint) ProgIDFromCLSID(pclsid1, lplpszProgID1);
+
+    if (lplpszProgID)
+        (*env)->ReleaseCharArrayElements(env, lplpszProgID, (jchar *)lplpszProgID1, 0);
+    
+    if (pclsid) {
+        setGUIDFields(env, pclsid, pclsid1);
+    }
+    return rc;
+}
+*/
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    ProgIDFromCLSID
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+ JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I
+  (JNIEnv *env, jclass that, jobject pclsid, jintArray lplpszProgID)
+{
+    LPOLESTR *lplpszProgID1=NULL;
+    GUID guid, *pclsid1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_ProgIDFromCLSID__Lorg_eclipse_swt_internal_ole_win32_GUID_2_3I\n");
+#endif
+
+    if (pclsid) {
+        pclsid1=&guid;
+        getGUIDFields(env, pclsid, pclsid1);
+    }
+
+    if (lplpszProgID)
+        lplpszProgID1 = (LPOLESTR *)(*env)->GetIntArrayElements(env, lplpszProgID, NULL);
+
+    rc = (jint) ProgIDFromCLSID(pclsid1, lplpszProgID1);
+
+    if (lplpszProgID)
+        (*env)->ReleaseIntArrayElements(env, lplpszProgID, (jint *)lplpszProgID1, 0);
+    
+    if (pclsid) {
+        setGUIDFields(env, pclsid, pclsid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VariantCopyInd
+ * Signature: (II)I
+ */
+/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VariantCopyInd
+  (JNIEnv *env, jclass that, jint pvarDest, jint pvarSrc)
+{
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "VariantCopyInd\n");
+#endif
+    return (jint) VariantCopyInd((VARIANT FAR*)pvarDest, (VARIANTARG FAR*)pvarSrc);
+}
+*/
+
+
+/* MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II removed after OS version 0.80 */
+/* 
+ * Class:     org_eclipse_swt_internal_win32_OS
+ * Method:    MoveMemory
+ * Signature: (Lorg/eclipse/swt/internal/win32/NMHEADER;II)V
+ */
+/* JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_win32_OS_MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II
+  (JNIEnv *env, jclass that, jobject Destination, jint Source, jint Length)
+{
+    NMHEADER nmheader, *lpDestination1=NULL;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II\n");
+#endif
+
+       MoveMemory((PVOID)&nmheader, (CONST VOID *)Source, Length);
+
+    if (Destination) {
+        lpDestination1 = &nmheader;
+        setNmheaderFields(env, Destination, lpDestination1);
+    }
+}
+*/
+
+/* SendMessage__IIILorg_eclipse_swt_internal_win32_HDITEM_2 removed after OS version 0.80 */
+/*
+ * Class:     org_eclipse_swt_internal_win32_OS
+ * Method:    SendMessage
+ * Signature: (IIILorg/eclipse/swt/internal/win32/HDITEM;)I
+ */
+/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_win32_OS_SendMessage__IIILorg_eclipse_swt_internal_win32_HDITEM_2
+  (JNIEnv *env, jclass that, jint hWnd, jint Msg, jint wParam, jobject lParam)
+{
+    HDITEM hditem, *lpParam1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "SendMessage__IIILorg_eclipse_swt_internal_win32_HDITEM_2\n");
+#endif
+
+    if (lParam) {
+        lpParam1 = &hditem;
+        getHditemFields(env, lParam, lpParam1);
+    }
+    rc = (jint) SendMessage((HWND)hWnd, Msg, wParam, (LPARAM)lpParam1);
+    if (lParam) {
+        setHditemFields(env, lParam, lpParam1);
+    }
+    return rc;
+}
+*/
+
+/* SendMessage__IIILorg_eclipse_swt_internal_win32_HDLAYOUT_2 removed after OS version 0.80 */
+/*
+ * Class:     org_eclipse_swt_internal_win32_OS
+ * Method:    SendMessage
+ * Signature: (IIILorg/eclipse/swt/internal/win32/HDLAYOUT;)I
+ */
+/* JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_win32_OS_SendMessage__IIILorg_eclipse_swt_internal_win32_HDLAYOUT_2
+  (JNIEnv *env, jclass that, jint hWnd, jint Msg, jint wParam, jobject lParam)
+{
+    HDLAYOUT hdlayout, *lpParam1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "SendMessage__IIILorg_eclipse_swt_internal_win32_HDLAYOUT_2\n");
+#endif
+
+    if (lParam) {
+        lpParam1 = &hdlayout;
+        getHdlayoutFields(env, lParam, lpParam1);
+    }
+    rc = (jint) SendMessage((HWND)hWnd, Msg, wParam, (LPARAM)lpParam1);
+    if (lParam) {
+        setHdlayoutFields(env, lParam, lpParam1);
+    }
+    return rc;
+}
+*/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CoGetInstanceFromIStorage
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/COSERVERINFO;Lorg/eclipse/swt/internal/ole/win32/GUID;IIIILorg/eclipse/swt/internal/ole/win32/MULTI_QI;)I
+ */
+/*
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CoGetInstanceFromIStorage
+  (JNIEnv *env, jclass that, jobject pServerInfo, jobject pclsid, jint punkOuter, jint dwClsCtx,
+				 jint pstg, jint cmq, jobject rgmqResults)
+{
+    GUID guid, *pclsid1=NULL;
+    COSERVERINFO coserverinfo, *pServerInfo1=NULL;
+    MULTI_QI multi_qi, *rgmqResults1=NULL;
+    jint rc;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CoGetInstanceFromIStorage\n");
+#endif
+
+    if (pclsid) {
+        pclsid1=&guid;
+        getGUIDFields(env, pclsid, pclsid1);
+    }
+    if (pServerInfo) {
+        pServerInfo1=&coserverinfo;
+        getCoserverinfoFields(env, pServerInfo, pServerInfo1);
+    }
+    if (rgmqResults) {
+        rgmqResults1=&multi_qi;
+        getMulti_qiFields(env, rgmqResults, rgmqResults1);
+    }
+
+    rc = CoGetInstanceFromIStorage(pServerInfo1, pclsid1, (IUnknown *)punkOuter, dwClsCtx, (IStorage *)pstg, cmq, rgmqResults1);
+
+    if (pclsid) {
+        setGUIDFields(env, pclsid, pclsid1);
+    }
+    if (pServerInfo) {
+        setCoserverinfoFields(env, pServerInfo, pServerInfo1);
+    }
+    if (rgmqResults) {
+        setMulti_qiFields(env, rgmqResults, rgmqResults1);
+    }
+    return rc;
+}
+*/
+
+/****************** ACCESSIBILITY ****************/
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    CreateStdAccessibleObject
+ * Signature: (IILorg/eclipse/swt/internal/ole/win32/GUID;[I)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_CreateStdAccessibleObject
+  (JNIEnv *env, jclass that, jint hwnd, jint idObject, jobject riidInterface, jintArray ppvObject)
+{
+    LPVOID *ppvObject1=NULL;
+	GUID guid, *riidInterface1=NULL;
+	jint rc = E_NOTIMPL;
+    HMODULE hm;
+    FARPROC fp;
+	
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "CreateStdAccessibleObject\n");
+#endif
+    
+    if (riidInterface) {
+        riidInterface1=&guid;
+        getGUIDFields(env, riidInterface, riidInterface1);
+    }
+
+	if (ppvObject)
+        ppvObject1 = (LPVOID *)(*env)->GetIntArrayElements(env, ppvObject, NULL);
+
+    /*
+    *  CreateStdAccessibleObject is an oleacc specific call.
+    *  If you link it into swt.dll, a system modal entry point not found dialog will
+    *  appear as soon as swt.dll is loaded. Here we check for the entry point and
+    *  only do the call if it exists.
+    */
+    if (!(hm = GetModuleHandle("oleacc.dll"))) hm = LoadLibrary("oleacc.dll");
+    if (hm && (fp = GetProcAddress(hm, "CreateStdAccessibleObject"))) {
+		rc = (jint)fp((HWND)hwnd, idObject, riidInterface1, ppvObject1);
+	}
+    
+    if (riidInterface) {
+        setGUIDFields(env, riidInterface, riidInterface1);
+    }
+    
+    if (ppvObject)
+        (*env)->ReleaseIntArrayElements(env, ppvObject, (jint *)ppvObject1, 0);
+        
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    LresultFromObject
+ * Signature: (Lorg/eclipse/swt/internal/ole/win32/GUID;II)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_LresultFromObject
+  (JNIEnv *env, jclass that, jobject riid, jint wParam, jint pAcc)
+{
+    GUID guid, *riid1=NULL;
+    jint rc = E_NOTIMPL;
+    HMODULE hm;
+    FARPROC fp;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "LresultFromObject\n");
+#endif
+
+    if (riid) {
+        riid1=&guid;
+        getGUIDFields(env, riid, riid1);
+    }
+    /*
+    *  LresultFromObject is an oleacc specific call.
+    *  If you link it into swt.dll, a system modal entry point not found dialog will
+    *  appear as soon as swt.dll is loaded. Here we check for the entry point and
+    *  only do the call if it exists.
+    */
+    if (!(hm = GetModuleHandle("oleacc.dll"))) hm = LoadLibrary("oleacc.dll");
+    if (hm && (fp = GetProcAddress(hm, "LresultFromObject"))) {
+		rc = (jint)fp(riid1, wParam, (LPUNKNOWN)pAcc);
+	}
+    if (riid) {
+        setGUIDFields(env, riid, riid1);
+    }
+    return rc;
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    NotifyWinEvent
+ * Signature: (IIII)V
+ */
+JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_NotifyWinEvent
+  (JNIEnv *env, jclass that, jint event, jint hwnd, jint idObject, jint idChild)
+{
+    HMODULE hm;
+    FARPROC fp;
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "NotifyWinEvent\n");
+#endif
+
+    /*
+    *  NotifyWinEvent is a Win2000 and Win98 specific call
+    *  If you link it into swt.dll a system modal entry point not found dialog will
+    *  appear as soon as swt.dll is loaded. Here we check for the entry point and
+    *  only do the call if it exists.
+    */
+    if ((hm=GetModuleHandle("user32.dll")) && (fp=GetProcAddress(hm, "NotifyWinEvent"))) {
+        (fp)((DWORD)event, (HWND)hwnd, idObject, idChild);
+//		NotifyWinEvent((DWORD)event, (HWND)hwnd, idObject, idChild);
+	}
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3)
+{
+    P_OLE_FN_5 fn; /* this is a function that returns int */
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIIII\n");
+#endif
+    fn = (P_OLE_FN_5)(*(int **)ppVtbl)[fnNumber];
+    return fn(ppVtbl, arg0, arg1, arg2, arg3); /* cast it to an OLE function returning int */
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)
+{
+    P_OLE_FN_6 fn; /* this is a function that returns int */
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIIIII\n");
+#endif
+    fn = (P_OLE_FN_6)(*(int **)ppVtbl)[fnNumber];
+    return fn(ppVtbl, arg0, arg1, arg2, arg3, arg4); /* cast it to an OLE function returning int */
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIIIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)
+{
+    P_OLE_FN_7 fn; /* this is a function that returns int */
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIIIIII\n");
+#endif
+    fn = (P_OLE_FN_7)(*(int **)ppVtbl)[fnNumber];
+    return fn(ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5); /* cast it to an OLE function returning int */
+}
+
+/*
+ * Class:     org_eclipse_swt_internal_ole_win32_COM
+ * Method:    VtblCall
+ * Signature: (IIIIIIIIII)I
+ */
+JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_ole_win32_COM_VtblCall__IIIIIIIIII
+  (JNIEnv *env, jclass that, jint fnNumber, jint ppVtbl, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)
+{
+    P_OLE_FN_9 fn; /* this is a function that returns int */
+
+#ifdef DEBUG_CALL_PRINTS
+    fprintf(stderr, "COM_VtblCall__IIIIIIIIII\n");
+#endif
+    fn = (P_OLE_FN_9)(*(int **)ppVtbl)[fnNumber];
+    return fn(ppVtbl, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); /* cast it to an OLE function returning int */
+}
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.c
index d5b60fa..d939d62 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.c
@@ -1,1038 +1,1038 @@
-/*******************************************************************************

-* Copyright (c) 2000, 2003 IBM Corporation and others.

-* All rights reserved. This program and the accompanying materials

-* are made available under the terms of the Common Public License v1.0

-* which accompanies this distribution, and is available at

-* http://www.eclipse.org/legal/cpl-v10.html

-* 

-* Contributors:

-*     IBM Corporation - initial API and implementation

-*******************************************************************************/

-

-#include "swt.h"

-#include "com_structs.h"

-

-#ifndef NO_CAUUID

-typedef struct CAUUID_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cElems, pElems;

-} CAUUID_FID_CACHE;

-

-CAUUID_FID_CACHE CAUUIDFc;

-

-void cacheCAUUIDFids(JNIEnv *env, jobject lpObject)

-{

-	if (CAUUIDFc.cached) return;

-	CAUUIDFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	CAUUIDFc.cElems = (*env)->GetFieldID(env, CAUUIDFc.clazz, "cElems", "I");

-	CAUUIDFc.pElems = (*env)->GetFieldID(env, CAUUIDFc.clazz, "pElems", "I");

-	CAUUIDFc.cached = 1;

-}

-

-CAUUID *getCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct)

-{

-	if (!CAUUIDFc.cached) cacheCAUUIDFids(env, lpObject);

-	lpStruct->cElems = (*env)->GetIntField(env, lpObject, CAUUIDFc.cElems);

-	lpStruct->pElems = (GUID FAR *)(*env)->GetIntField(env, lpObject, CAUUIDFc.pElems);

-	return lpStruct;

-}

-

-void setCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct)

-{

-	if (!CAUUIDFc.cached) cacheCAUUIDFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, CAUUIDFc.cElems, (jint)lpStruct->cElems);

-	(*env)->SetIntField(env, lpObject, CAUUIDFc.pElems, (jint)lpStruct->pElems);

-}

-#endif /* NO_CAUUID */

-

-#ifndef NO_CONTROLINFO

-typedef struct CONTROLINFO_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cb, hAccel, cAccel, dwFlags;

-} CONTROLINFO_FID_CACHE;

-

-CONTROLINFO_FID_CACHE CONTROLINFOFc;

-

-void cacheCONTROLINFOFids(JNIEnv *env, jobject lpObject)

-{

-	if (CONTROLINFOFc.cached) return;

-	CONTROLINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	CONTROLINFOFc.cb = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "cb", "I");

-	CONTROLINFOFc.hAccel = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "hAccel", "I");

-	CONTROLINFOFc.cAccel = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "cAccel", "S");

-	CONTROLINFOFc.dwFlags = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "dwFlags", "I");

-	CONTROLINFOFc.cached = 1;

-}

-

-CONTROLINFO *getCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct)

-{

-	if (!CONTROLINFOFc.cached) cacheCONTROLINFOFids(env, lpObject);

-	lpStruct->cb = (*env)->GetIntField(env, lpObject, CONTROLINFOFc.cb);

-	lpStruct->hAccel = (HACCEL)(*env)->GetIntField(env, lpObject, CONTROLINFOFc.hAccel);

-	lpStruct->cAccel = (*env)->GetShortField(env, lpObject, CONTROLINFOFc.cAccel);

-	lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, CONTROLINFOFc.dwFlags);

-	return lpStruct;

-}

-

-void setCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct)

-{

-	if (!CONTROLINFOFc.cached) cacheCONTROLINFOFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, CONTROLINFOFc.cb, (jint)lpStruct->cb);

-	(*env)->SetIntField(env, lpObject, CONTROLINFOFc.hAccel, (jint)lpStruct->hAccel);

-	(*env)->SetShortField(env, lpObject, CONTROLINFOFc.cAccel, (jshort)lpStruct->cAccel);

-	(*env)->SetIntField(env, lpObject, CONTROLINFOFc.dwFlags, (jint)lpStruct->dwFlags);

-}

-#endif /* NO_CONTROLINFO */

-

-#ifndef NO_COSERVERINFO

-typedef struct COSERVERINFO_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID dwReserved1, pwszName, pAuthInfo, dwReserved2;

-} COSERVERINFO_FID_CACHE;

-

-COSERVERINFO_FID_CACHE COSERVERINFOFc;

-

-void cacheCOSERVERINFOFids(JNIEnv *env, jobject lpObject)

-{

-	if (COSERVERINFOFc.cached) return;

-	COSERVERINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	COSERVERINFOFc.dwReserved1 = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "dwReserved1", "I");

-	COSERVERINFOFc.pwszName = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "pwszName", "I");

-	COSERVERINFOFc.pAuthInfo = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "pAuthInfo", "I");

-	COSERVERINFOFc.dwReserved2 = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "dwReserved2", "I");

-	COSERVERINFOFc.cached = 1;

-}

-

-COSERVERINFO *getCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct)

-{

-	if (!COSERVERINFOFc.cached) cacheCOSERVERINFOFids(env, lpObject);

-	lpStruct->dwReserved1 = (*env)->GetIntField(env, lpObject, COSERVERINFOFc.dwReserved1);

-	lpStruct->pwszName = (LPWSTR)(*env)->GetIntField(env, lpObject, COSERVERINFOFc.pwszName);

-	lpStruct->pAuthInfo = (COAUTHINFO *)(*env)->GetIntField(env, lpObject, COSERVERINFOFc.pAuthInfo);

-	lpStruct->dwReserved2 = (*env)->GetIntField(env, lpObject, COSERVERINFOFc.dwReserved2);

-	return lpStruct;

-}

-

-void setCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct)

-{

-	if (!COSERVERINFOFc.cached) cacheCOSERVERINFOFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.dwReserved1, (jint)lpStruct->dwReserved1);

-	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.pwszName, (jint)lpStruct->pwszName);

-	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.pAuthInfo, (jint)lpStruct->pAuthInfo);

-	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.dwReserved2, (jint)lpStruct->dwReserved2);

-}

-#endif /* NO_COSERVERINFO */

-

-#ifndef NO_DISPPARAMS

-typedef struct DISPPARAMS_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID rgvarg, rgdispidNamedArgs, cArgs, cNamedArgs;

-} DISPPARAMS_FID_CACHE;

-

-DISPPARAMS_FID_CACHE DISPPARAMSFc;

-

-void cacheDISPPARAMSFids(JNIEnv *env, jobject lpObject)

-{

-	if (DISPPARAMSFc.cached) return;

-	DISPPARAMSFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	DISPPARAMSFc.rgvarg = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "rgvarg", "I");

-	DISPPARAMSFc.rgdispidNamedArgs = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "rgdispidNamedArgs", "I");

-	DISPPARAMSFc.cArgs = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "cArgs", "I");

-	DISPPARAMSFc.cNamedArgs = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "cNamedArgs", "I");

-	DISPPARAMSFc.cached = 1;

-}

-

-DISPPARAMS *getDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct)

-{

-	if (!DISPPARAMSFc.cached) cacheDISPPARAMSFids(env, lpObject);

-	lpStruct->rgvarg = (VARIANTARG FAR *)(*env)->GetIntField(env, lpObject, DISPPARAMSFc.rgvarg);

-	lpStruct->rgdispidNamedArgs = (DISPID FAR *)(*env)->GetIntField(env, lpObject, DISPPARAMSFc.rgdispidNamedArgs);

-	lpStruct->cArgs = (*env)->GetIntField(env, lpObject, DISPPARAMSFc.cArgs);

-	lpStruct->cNamedArgs = (*env)->GetIntField(env, lpObject, DISPPARAMSFc.cNamedArgs);

-	return lpStruct;

-}

-

-void setDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct)

-{

-	if (!DISPPARAMSFc.cached) cacheDISPPARAMSFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.rgvarg, (jint)lpStruct->rgvarg);

-	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.rgdispidNamedArgs, (jint)lpStruct->rgdispidNamedArgs);

-	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.cArgs, (jint)lpStruct->cArgs);

-	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.cNamedArgs, (jint)lpStruct->cNamedArgs);

-}

-#endif /* NO_DISPPARAMS */

-

-#ifndef NO_DVTARGETDEVICE

-typedef struct DVTARGETDEVICE_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID tdSize, tdDriverNameOffset, tdDeviceNameOffset, tdPortNameOffset, tdExtDevmodeOffset, tdData;

-} DVTARGETDEVICE_FID_CACHE;

-

-DVTARGETDEVICE_FID_CACHE DVTARGETDEVICEFc;

-

-void cacheDVTARGETDEVICEFids(JNIEnv *env, jobject lpObject)

-{

-	if (DVTARGETDEVICEFc.cached) return;

-	DVTARGETDEVICEFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	DVTARGETDEVICEFc.tdSize = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdSize", "I");

-	DVTARGETDEVICEFc.tdDriverNameOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdDriverNameOffset", "S");

-	DVTARGETDEVICEFc.tdDeviceNameOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdDeviceNameOffset", "S");

-	DVTARGETDEVICEFc.tdPortNameOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdPortNameOffset", "S");

-	DVTARGETDEVICEFc.tdExtDevmodeOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdExtDevmodeOffset", "S");

-	DVTARGETDEVICEFc.tdData = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdData", "B");

-	DVTARGETDEVICEFc.cached = 1;

-}

-

-DVTARGETDEVICE *getDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct)

-{

-	if (!DVTARGETDEVICEFc.cached) cacheDVTARGETDEVICEFids(env, lpObject);

-	lpStruct->tdSize = (*env)->GetIntField(env, lpObject, DVTARGETDEVICEFc.tdSize);

-	lpStruct->tdDriverNameOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdDriverNameOffset);

-	lpStruct->tdDeviceNameOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdDeviceNameOffset);

-	lpStruct->tdPortNameOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdPortNameOffset);

-	lpStruct->tdExtDevmodeOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdExtDevmodeOffset);

-	*lpStruct->tdData = (*env)->GetByteField(env, lpObject, DVTARGETDEVICEFc.tdData);

-	return lpStruct;

-}

-

-void setDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct)

-{

-	if (!DVTARGETDEVICEFc.cached) cacheDVTARGETDEVICEFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, DVTARGETDEVICEFc.tdSize, (jint)lpStruct->tdSize);

-	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdDriverNameOffset, (jshort)lpStruct->tdDriverNameOffset);

-	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdDeviceNameOffset, (jshort)lpStruct->tdDeviceNameOffset);

-	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdPortNameOffset, (jshort)lpStruct->tdPortNameOffset);

-	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdExtDevmodeOffset, (jshort)lpStruct->tdExtDevmodeOffset);

-	(*env)->SetByteField(env, lpObject, DVTARGETDEVICEFc.tdData, (jbyte)*lpStruct->tdData);

-}

-#endif /* NO_DVTARGETDEVICE */

-

-#ifndef NO_EXCEPINFO

-typedef struct EXCEPINFO_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID wCode, wReserved, bstrSource, bstrDescription, bstrHelpFile, dwHelpContext, pvReserved, pfnDeferredFillIn, scode;

-} EXCEPINFO_FID_CACHE;

-

-EXCEPINFO_FID_CACHE EXCEPINFOFc;

-

-void cacheEXCEPINFOFids(JNIEnv *env, jobject lpObject)

-{

-	if (EXCEPINFOFc.cached) return;

-	EXCEPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	EXCEPINFOFc.wCode = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "wCode", "S");

-	EXCEPINFOFc.wReserved = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "wReserved", "S");

-	EXCEPINFOFc.bstrSource = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "bstrSource", "I");

-	EXCEPINFOFc.bstrDescription = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "bstrDescription", "I");

-	EXCEPINFOFc.bstrHelpFile = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "bstrHelpFile", "I");

-	EXCEPINFOFc.dwHelpContext = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "dwHelpContext", "I");

-	EXCEPINFOFc.pvReserved = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "pvReserved", "I");

-	EXCEPINFOFc.pfnDeferredFillIn = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "pfnDeferredFillIn", "I");

-	EXCEPINFOFc.scode = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "scode", "I");

-	EXCEPINFOFc.cached = 1;

-}

-

-EXCEPINFO *getEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct)

-{

-	if (!EXCEPINFOFc.cached) cacheEXCEPINFOFids(env, lpObject);

-	lpStruct->wCode = (*env)->GetShortField(env, lpObject, EXCEPINFOFc.wCode);

-	lpStruct->wReserved = (*env)->GetShortField(env, lpObject, EXCEPINFOFc.wReserved);

-	lpStruct->bstrSource = (BSTR)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.bstrSource);

-	lpStruct->bstrDescription = (BSTR)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.bstrDescription);

-	lpStruct->bstrHelpFile = (BSTR)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.bstrHelpFile);

-	lpStruct->dwHelpContext = (*env)->GetIntField(env, lpObject, EXCEPINFOFc.dwHelpContext);

-	lpStruct->pvReserved = (void FAR *)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.pvReserved);

-	lpStruct->pfnDeferredFillIn = (HRESULT (STDAPICALLTYPE FAR* )(struct tagEXCEPINFO FAR*))(*env)->GetIntField(env, lpObject, EXCEPINFOFc.pfnDeferredFillIn);

-	lpStruct->scode = (*env)->GetIntField(env, lpObject, EXCEPINFOFc.scode);

-	return lpStruct;

-}

-

-void setEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct)

-{

-	if (!EXCEPINFOFc.cached) cacheEXCEPINFOFids(env, lpObject);

-	(*env)->SetShortField(env, lpObject, EXCEPINFOFc.wCode, (jshort)lpStruct->wCode);

-	(*env)->SetShortField(env, lpObject, EXCEPINFOFc.wReserved, (jshort)lpStruct->wReserved);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.bstrSource, (jint)lpStruct->bstrSource);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.bstrDescription, (jint)lpStruct->bstrDescription);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.bstrHelpFile, (jint)lpStruct->bstrHelpFile);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.dwHelpContext, (jint)lpStruct->dwHelpContext);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.pvReserved, (jint)lpStruct->pvReserved);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.pfnDeferredFillIn, (jint)lpStruct->pfnDeferredFillIn);

-	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.scode, (jint)lpStruct->scode);

-}

-#endif /* NO_EXCEPINFO */

-

-#ifndef NO_FORMATETC

-typedef struct FORMATETC_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cfFormat, ptd, dwAspect, lindex, tymed;

-} FORMATETC_FID_CACHE;

-

-FORMATETC_FID_CACHE FORMATETCFc;

-

-void cacheFORMATETCFids(JNIEnv *env, jobject lpObject)

-{

-	if (FORMATETCFc.cached) return;

-	FORMATETCFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	FORMATETCFc.cfFormat = (*env)->GetFieldID(env, FORMATETCFc.clazz, "cfFormat", "I");

-	FORMATETCFc.ptd = (*env)->GetFieldID(env, FORMATETCFc.clazz, "ptd", "I");

-	FORMATETCFc.dwAspect = (*env)->GetFieldID(env, FORMATETCFc.clazz, "dwAspect", "I");

-	FORMATETCFc.lindex = (*env)->GetFieldID(env, FORMATETCFc.clazz, "lindex", "I");

-	FORMATETCFc.tymed = (*env)->GetFieldID(env, FORMATETCFc.clazz, "tymed", "I");

-	FORMATETCFc.cached = 1;

-}

-

-FORMATETC *getFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct)

-{

-	if (!FORMATETCFc.cached) cacheFORMATETCFids(env, lpObject);

-	lpStruct->cfFormat = (CLIPFORMAT)(*env)->GetIntField(env, lpObject, FORMATETCFc.cfFormat);

-	lpStruct->ptd = (DVTARGETDEVICE *)(*env)->GetIntField(env, lpObject, FORMATETCFc.ptd);

-	lpStruct->dwAspect = (*env)->GetIntField(env, lpObject, FORMATETCFc.dwAspect);

-	lpStruct->lindex = (*env)->GetIntField(env, lpObject, FORMATETCFc.lindex);

-	lpStruct->tymed = (*env)->GetIntField(env, lpObject, FORMATETCFc.tymed);

-	return lpStruct;

-}

-

-void setFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct)

-{

-	if (!FORMATETCFc.cached) cacheFORMATETCFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, FORMATETCFc.cfFormat, (jint)lpStruct->cfFormat);

-	(*env)->SetIntField(env, lpObject, FORMATETCFc.ptd, (jint)lpStruct->ptd);

-	(*env)->SetIntField(env, lpObject, FORMATETCFc.dwAspect, (jint)lpStruct->dwAspect);

-	(*env)->SetIntField(env, lpObject, FORMATETCFc.lindex, (jint)lpStruct->lindex);

-	(*env)->SetIntField(env, lpObject, FORMATETCFc.tymed, (jint)lpStruct->tymed);

-}

-#endif /* NO_FORMATETC */

-

-#ifndef NO_FUNCDESC1

-typedef struct FUNCDESC1_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID memid, lprgscode, lprgelemdescParam, funckind, invkind, callconv, cParams, cParamsOpt, oVft, cScodes, elemdescFunc_tdesc_union, elemdescFunc_tdesc_vt, elemdescFunc_paramdesc_pparamdescex, elemdescFunc_paramdesc_wParamFlags, wFuncFlags;

-} FUNCDESC1_FID_CACHE;

-

-FUNCDESC1_FID_CACHE FUNCDESC1Fc;

-

-void cacheFUNCDESC1Fids(JNIEnv *env, jobject lpObject)

-{

-	if (FUNCDESC1Fc.cached) return;

-	FUNCDESC1Fc.clazz = (*env)->GetObjectClass(env, lpObject);

-	FUNCDESC1Fc.memid = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "memid", "I");

-	FUNCDESC1Fc.lprgscode = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "lprgscode", "I");

-	FUNCDESC1Fc.lprgelemdescParam = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "lprgelemdescParam", "I");

-	FUNCDESC1Fc.funckind = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "funckind", "I");

-	FUNCDESC1Fc.invkind = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "invkind", "I");

-	FUNCDESC1Fc.callconv = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "callconv", "I");

-	FUNCDESC1Fc.cParams = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "cParams", "S");

-	FUNCDESC1Fc.cParamsOpt = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "cParamsOpt", "S");

-	FUNCDESC1Fc.oVft = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "oVft", "S");

-	FUNCDESC1Fc.cScodes = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "cScodes", "S");

-	FUNCDESC1Fc.elemdescFunc_tdesc_union = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_tdesc_union", "I");

-	FUNCDESC1Fc.elemdescFunc_tdesc_vt = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_tdesc_vt", "S");

-	FUNCDESC1Fc.elemdescFunc_paramdesc_pparamdescex = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_paramdesc_pparamdescex", "I");

-	FUNCDESC1Fc.elemdescFunc_paramdesc_wParamFlags = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_paramdesc_wParamFlags", "S");

-	FUNCDESC1Fc.wFuncFlags = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "wFuncFlags", "S");

-	FUNCDESC1Fc.cached = 1;

-}

-

-FUNCDESC *getFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)

-{

-	if (!FUNCDESC1Fc.cached) cacheFUNCDESC1Fids(env, lpObject);

-	lpStruct->memid = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.memid);

-	lpStruct->lprgscode = (SCODE FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.lprgscode);

-	lpStruct->lprgelemdescParam = (ELEMDESC FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.lprgelemdescParam);

-	lpStruct->funckind = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.funckind);

-	lpStruct->invkind = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.invkind);

-	lpStruct->callconv = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.callconv);

-	lpStruct->cParams = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.cParams);

-	lpStruct->cParamsOpt = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.cParamsOpt);

-	lpStruct->oVft = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.oVft);

-	lpStruct->cScodes = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.cScodes);

-	lpStruct->elemdescFunc.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR* )(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_union);

-	lpStruct->elemdescFunc.tdesc.vt = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_vt);

-	lpStruct->elemdescFunc.paramdesc.pparamdescex = (LPPARAMDESCEX)(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_pparamdescex);

-	lpStruct->elemdescFunc.paramdesc.wParamFlags = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_wParamFlags);

-	lpStruct->wFuncFlags = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.wFuncFlags);

-	return lpStruct;

-}

-

-void setFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)

-{

-	if (!FUNCDESC1Fc.cached) cacheFUNCDESC1Fids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.memid, (jint)lpStruct->memid);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.lprgscode, (jint)lpStruct->lprgscode);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.lprgelemdescParam, (jint)lpStruct->lprgelemdescParam);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.funckind, (jint)lpStruct->funckind);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.invkind, (jint)lpStruct->invkind);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.callconv, (jint)lpStruct->callconv);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.cParams, (jshort)lpStruct->cParams);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.cParamsOpt, (jshort)lpStruct->cParamsOpt);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.oVft, (jshort)lpStruct->oVft);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.cScodes, (jshort)lpStruct->cScodes);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_union, (jint)lpStruct->elemdescFunc.tdesc.lptdesc);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_vt, (jshort)lpStruct->elemdescFunc.tdesc.vt);

-	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_pparamdescex, (jint)lpStruct->elemdescFunc.paramdesc.pparamdescex);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_wParamFlags, (jshort)lpStruct->elemdescFunc.paramdesc.wParamFlags);

-	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.wFuncFlags, (jshort)lpStruct->wFuncFlags);

-}

-#endif /* NO_FUNCDESC1 */

-

-#ifndef NO_FUNCDESC2

-typedef struct FUNCDESC2_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID memid, lprgscode, lprgelemdescParam, funckind, invkind, callconv, cParams, cParamsOpt, oVft, cScodes, elemdescFunc_tdesc_union, elemdescFunc_tdesc_vt, elemdescFunc_idldesc_dwReserved, elemdescFunc_idldesc_wIDLFlags, wFuncFlags;

-} FUNCDESC2_FID_CACHE;

-

-FUNCDESC2_FID_CACHE FUNCDESC2Fc;

-

-void cacheFUNCDESC2Fids(JNIEnv *env, jobject lpObject)

-{

-	if (FUNCDESC2Fc.cached) return;

-	FUNCDESC2Fc.clazz = (*env)->GetObjectClass(env, lpObject);

-	FUNCDESC2Fc.memid = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "memid", "I");

-	FUNCDESC2Fc.lprgscode = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "lprgscode", "I");

-	FUNCDESC2Fc.lprgelemdescParam = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "lprgelemdescParam", "I");

-	FUNCDESC2Fc.funckind = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "funckind", "I");

-	FUNCDESC2Fc.invkind = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "invkind", "I");

-	FUNCDESC2Fc.callconv = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "callconv", "I");

-	FUNCDESC2Fc.cParams = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "cParams", "S");

-	FUNCDESC2Fc.cParamsOpt = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "cParamsOpt", "S");

-	FUNCDESC2Fc.oVft = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "oVft", "S");

-	FUNCDESC2Fc.cScodes = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "cScodes", "S");

-	FUNCDESC2Fc.elemdescFunc_tdesc_union = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_tdesc_union", "I");

-	FUNCDESC2Fc.elemdescFunc_tdesc_vt = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_tdesc_vt", "S");

-	FUNCDESC2Fc.elemdescFunc_idldesc_dwReserved = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_idldesc_dwReserved", "I");

-	FUNCDESC2Fc.elemdescFunc_idldesc_wIDLFlags = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_idldesc_wIDLFlags", "S");

-	FUNCDESC2Fc.wFuncFlags = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "wFuncFlags", "S");

-	FUNCDESC2Fc.cached = 1;

-}

-

-FUNCDESC *getFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)

-{

-	if (!FUNCDESC2Fc.cached) cacheFUNCDESC2Fids(env, lpObject);

-	lpStruct->memid = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.memid);

-	lpStruct->lprgscode = (SCODE FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC2Fc.lprgscode);

-	lpStruct->lprgelemdescParam = (ELEMDESC FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC2Fc.lprgelemdescParam);

-	lpStruct->funckind = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.funckind);

-	lpStruct->invkind = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.invkind);

-	lpStruct->callconv = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.callconv);

-	lpStruct->cParams = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.cParams);

-	lpStruct->cParamsOpt = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.cParamsOpt);

-	lpStruct->oVft = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.oVft);

-	lpStruct->cScodes = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.cScodes);

-	lpStruct->elemdescFunc.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR* )(*env)->GetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_union);

-	lpStruct->elemdescFunc.tdesc.vt = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_vt);

-	lpStruct->elemdescFunc.idldesc.dwReserved = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_dwReserved);

-	lpStruct->elemdescFunc.idldesc.wIDLFlags = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_wIDLFlags);

-	lpStruct->wFuncFlags = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.wFuncFlags);

-	return lpStruct;

-}

-

-void setFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)

-{

-	if (!FUNCDESC2Fc.cached) cacheFUNCDESC2Fids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.memid, (jint)lpStruct->memid);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.lprgscode, (jint)lpStruct->lprgscode);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.lprgelemdescParam, (jint)lpStruct->lprgelemdescParam);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.funckind, (jint)lpStruct->funckind);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.invkind, (jint)lpStruct->invkind);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.callconv, (jint)lpStruct->callconv);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.cParams, (jshort)lpStruct->cParams);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.cParamsOpt, (jshort)lpStruct->cParamsOpt);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.oVft, (jshort)lpStruct->oVft);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.cScodes, (jshort)lpStruct->cScodes);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_union, (jint)lpStruct->elemdescFunc.tdesc.lptdesc);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_vt, (jshort)lpStruct->elemdescFunc.tdesc.vt);

-	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_dwReserved, (jint)lpStruct->elemdescFunc.idldesc.dwReserved);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_wIDLFlags, (jshort)lpStruct->elemdescFunc.idldesc.wIDLFlags);

-	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.wFuncFlags, (jshort)lpStruct->wFuncFlags);

-}

-#endif /* NO_FUNCDESC2 */

-

-#ifndef NO_GUID

-typedef struct GUID_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID data1, data2, data3, b0, b1, b2, b3, b4, b5, b6, b7;

-} GUID_FID_CACHE;

-

-GUID_FID_CACHE GUIDFc;

-

-void cacheGUIDFids(JNIEnv *env, jobject lpObject)

-{

-	if (GUIDFc.cached) return;

-	GUIDFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	GUIDFc.data1 = (*env)->GetFieldID(env, GUIDFc.clazz, "data1", "I");

-	GUIDFc.data2 = (*env)->GetFieldID(env, GUIDFc.clazz, "data2", "S");

-	GUIDFc.data3 = (*env)->GetFieldID(env, GUIDFc.clazz, "data3", "S");

-	GUIDFc.b0 = (*env)->GetFieldID(env, GUIDFc.clazz, "b0", "B");

-	GUIDFc.b1 = (*env)->GetFieldID(env, GUIDFc.clazz, "b1", "B");

-	GUIDFc.b2 = (*env)->GetFieldID(env, GUIDFc.clazz, "b2", "B");

-	GUIDFc.b3 = (*env)->GetFieldID(env, GUIDFc.clazz, "b3", "B");

-	GUIDFc.b4 = (*env)->GetFieldID(env, GUIDFc.clazz, "b4", "B");

-	GUIDFc.b5 = (*env)->GetFieldID(env, GUIDFc.clazz, "b5", "B");

-	GUIDFc.b6 = (*env)->GetFieldID(env, GUIDFc.clazz, "b6", "B");

-	GUIDFc.b7 = (*env)->GetFieldID(env, GUIDFc.clazz, "b7", "B");

-	GUIDFc.cached = 1;

-}

-

-GUID *getGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct)

-{

-	if (!GUIDFc.cached) cacheGUIDFids(env, lpObject);

-	lpStruct->Data4[7] = (*env)->GetByteField(env, lpObject, GUIDFc.b7);

-	lpStruct->Data4[6] = (*env)->GetByteField(env, lpObject, GUIDFc.b6);

-	lpStruct->Data4[5] = (*env)->GetByteField(env, lpObject, GUIDFc.b5);

-	lpStruct->Data4[4] = (*env)->GetByteField(env, lpObject, GUIDFc.b4);

-	lpStruct->Data4[3] = (*env)->GetByteField(env, lpObject, GUIDFc.b3);

-	lpStruct->Data4[2] = (*env)->GetByteField(env, lpObject, GUIDFc.b2);

-	lpStruct->Data4[1] = (*env)->GetByteField(env, lpObject, GUIDFc.b1);

-	lpStruct->Data4[0] = (*env)->GetByteField(env, lpObject, GUIDFc.b0);

-	lpStruct->Data3 = (*env)->GetShortField(env, lpObject, GUIDFc.data3);

-	lpStruct->Data2 = (*env)->GetShortField(env, lpObject, GUIDFc.data2);

-	lpStruct->Data1 = (*env)->GetIntField(env, lpObject, GUIDFc.data1);

-	return lpStruct;

-}

-

-void setGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct)

-{

-	if (!GUIDFc.cached) cacheGUIDFids(env, lpObject);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b7, lpStruct->Data4[7]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b6, lpStruct->Data4[6]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b5, lpStruct->Data4[5]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b4, lpStruct->Data4[4]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b3, lpStruct->Data4[3]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b2, lpStruct->Data4[2]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b1, lpStruct->Data4[1]);

-	(*env)->SetByteField(env, lpObject, GUIDFc.b0, lpStruct->Data4[0]);

-	(*env)->SetShortField(env, lpObject, GUIDFc.data3, lpStruct->Data3);

-	(*env)->SetShortField(env, lpObject, GUIDFc.data2, lpStruct->Data2);

-	(*env)->SetIntField(env, lpObject, GUIDFc.data1, lpStruct->Data1);

-}

-

-#endif /* NO_GUID */

-

-#ifndef NO_LICINFO

-typedef struct LICINFO_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cbLicInfo, fRuntimeKeyAvail, fLicVerified;

-} LICINFO_FID_CACHE;

-

-LICINFO_FID_CACHE LICINFOFc;

-

-void cacheLICINFOFids(JNIEnv *env, jobject lpObject)

-{

-	if (LICINFOFc.cached) return;

-	LICINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	LICINFOFc.cbLicInfo = (*env)->GetFieldID(env, LICINFOFc.clazz, "cbLicInfo", "I");

-	LICINFOFc.fRuntimeKeyAvail = (*env)->GetFieldID(env, LICINFOFc.clazz, "fRuntimeKeyAvail", "I");

-	LICINFOFc.fLicVerified = (*env)->GetFieldID(env, LICINFOFc.clazz, "fLicVerified", "I");

-	LICINFOFc.cached = 1;

-}

-

-LICINFO *getLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct)

-{

-	if (!LICINFOFc.cached) cacheLICINFOFids(env, lpObject);

-	lpStruct->cbLicInfo = (*env)->GetIntField(env, lpObject, LICINFOFc.cbLicInfo);

-	lpStruct->fRuntimeKeyAvail = (*env)->GetIntField(env, lpObject, LICINFOFc.fRuntimeKeyAvail);

-	lpStruct->fLicVerified = (*env)->GetIntField(env, lpObject, LICINFOFc.fLicVerified);

-	return lpStruct;

-}

-

-void setLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct)

-{

-	if (!LICINFOFc.cached) cacheLICINFOFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, LICINFOFc.cbLicInfo, (jint)lpStruct->cbLicInfo);

-	(*env)->SetIntField(env, lpObject, LICINFOFc.fRuntimeKeyAvail, (jint)lpStruct->fRuntimeKeyAvail);

-	(*env)->SetIntField(env, lpObject, LICINFOFc.fLicVerified, (jint)lpStruct->fLicVerified);

-}

-#endif /* NO_LICINFO */

-

-#ifndef NO_OLECMD

-typedef struct OLECMD_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cmdID, cmdf;

-} OLECMD_FID_CACHE;

-

-OLECMD_FID_CACHE OLECMDFc;

-

-void cacheOLECMDFids(JNIEnv *env, jobject lpObject)

-{

-	if (OLECMDFc.cached) return;

-	OLECMDFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	OLECMDFc.cmdID = (*env)->GetFieldID(env, OLECMDFc.clazz, "cmdID", "I");

-	OLECMDFc.cmdf = (*env)->GetFieldID(env, OLECMDFc.clazz, "cmdf", "I");

-	OLECMDFc.cached = 1;

-}

-

-OLECMD *getOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct)

-{

-	if (!OLECMDFc.cached) cacheOLECMDFids(env, lpObject);

-	lpStruct->cmdID = (*env)->GetIntField(env, lpObject, OLECMDFc.cmdID);

-	lpStruct->cmdf = (*env)->GetIntField(env, lpObject, OLECMDFc.cmdf);

-	return lpStruct;

-}

-

-void setOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct)

-{

-	if (!OLECMDFc.cached) cacheOLECMDFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, OLECMDFc.cmdID, (jint)lpStruct->cmdID);

-	(*env)->SetIntField(env, lpObject, OLECMDFc.cmdf, (jint)lpStruct->cmdf);

-}

-#endif /* NO_OLECMD */

-

-#ifndef NO_OLECMDTEXT

-typedef struct OLECMDTEXT_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cmdtextf, cwActual, cwBuf, rgwz;

-} OLECMDTEXT_FID_CACHE;

-

-OLECMDTEXT_FID_CACHE OLECMDTEXTFc;

-

-void cacheOLECMDTEXTFids(JNIEnv *env, jobject lpObject)

-{

-	if (OLECMDTEXTFc.cached) return;

-	OLECMDTEXTFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	OLECMDTEXTFc.cmdtextf = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "cmdtextf", "I");

-	OLECMDTEXTFc.cwActual = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "cwActual", "I");

-	OLECMDTEXTFc.cwBuf = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "cwBuf", "I");

-	OLECMDTEXTFc.rgwz = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "rgwz", "S");

-	OLECMDTEXTFc.cached = 1;

-}

-

-OLECMDTEXT *getOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct)

-{

-	if (!OLECMDTEXTFc.cached) cacheOLECMDTEXTFids(env, lpObject);

-	lpStruct->cmdtextf = (*env)->GetIntField(env, lpObject, OLECMDTEXTFc.cmdtextf);

-	lpStruct->cwActual = (*env)->GetIntField(env, lpObject, OLECMDTEXTFc.cwActual);

-	lpStruct->cwBuf = (*env)->GetIntField(env, lpObject, OLECMDTEXTFc.cwBuf);

-	lpStruct->rgwz[0] = (*env)->GetShortField(env, lpObject, OLECMDTEXTFc.rgwz); /* SPECIAL */

-	return lpStruct;

-}

-

-void setOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct)

-{

-	if (!OLECMDTEXTFc.cached) cacheOLECMDTEXTFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, OLECMDTEXTFc.cmdtextf, (jint)lpStruct->cmdtextf);

-	(*env)->SetIntField(env, lpObject, OLECMDTEXTFc.cwActual, (jint)lpStruct->cwActual);

-	(*env)->SetIntField(env, lpObject, OLECMDTEXTFc.cwBuf, (jint)lpStruct->cwBuf);

-	(*env)->SetShortField(env, lpObject, OLECMDTEXTFc.rgwz, (jshort)lpStruct->rgwz[0]); /* SPECIAL */

-}

-#endif /* NO_OLECMDTEXT */

-

-#ifndef NO_OLEINPLACEFRAMEINFO

-typedef struct OLEINPLACEFRAMEINFO_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID cb, fMDIApp, hwndFrame, haccel, cAccelEntries;

-} OLEINPLACEFRAMEINFO_FID_CACHE;

-

-OLEINPLACEFRAMEINFO_FID_CACHE OLEINPLACEFRAMEINFOFc;

-

-void cacheOLEINPLACEFRAMEINFOFids(JNIEnv *env, jobject lpObject)

-{

-	if (OLEINPLACEFRAMEINFOFc.cached) return;

-	OLEINPLACEFRAMEINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	OLEINPLACEFRAMEINFOFc.cb = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "cb", "I");

-	OLEINPLACEFRAMEINFOFc.fMDIApp = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "fMDIApp", "I");

-	OLEINPLACEFRAMEINFOFc.hwndFrame = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "hwndFrame", "I");

-	OLEINPLACEFRAMEINFOFc.haccel = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "haccel", "I");

-	OLEINPLACEFRAMEINFOFc.cAccelEntries = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "cAccelEntries", "I");

-	OLEINPLACEFRAMEINFOFc.cached = 1;

-}

-

-OLEINPLACEFRAMEINFO *getOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct)

-{

-	if (!OLEINPLACEFRAMEINFOFc.cached) cacheOLEINPLACEFRAMEINFOFids(env, lpObject);

-	lpStruct->cb = (*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cb);

-	lpStruct->fMDIApp = (*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.fMDIApp);

-	lpStruct->hwndFrame = (HWND)(*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.hwndFrame);

-	lpStruct->haccel = (HACCEL)(*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.haccel);

-	lpStruct->cAccelEntries = (*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cAccelEntries);

-	return lpStruct;

-}

-

-void setOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct)

-{

-	if (!OLEINPLACEFRAMEINFOFc.cached) cacheOLEINPLACEFRAMEINFOFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cb, (jint)lpStruct->cb);

-	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.fMDIApp, (jint)lpStruct->fMDIApp);

-	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.hwndFrame, (jint)lpStruct->hwndFrame);

-	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.haccel, (jint)lpStruct->haccel);

-	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cAccelEntries, (jint)lpStruct->cAccelEntries);

-}

-#endif /* NO_OLEINPLACEFRAMEINFO */

-

-#ifndef NO_STATSTG

-typedef struct STATSTG_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID pwcsName, type, cbSize, mtime_dwLowDateTime, mtime_dwHighDateTime, ctime_dwLowDateTime, ctime_dwHighDateTime, atime_dwLowDateTime, atime_dwHighDateTime, grfMode, grfLocksSupported, clsid_data1, clsid_data2, clsid_data3, clsid_b0, clsid_b1, clsid_b2, clsid_b3, clsid_b4, clsid_b5, clsid_b6, clsid_b7, grfStateBits, reserved;

-} STATSTG_FID_CACHE;

-

-STATSTG_FID_CACHE STATSTGFc;

-

-void cacheSTATSTGFids(JNIEnv *env, jobject lpObject)

-{

-	if (STATSTGFc.cached) return;

-	STATSTGFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	STATSTGFc.pwcsName = (*env)->GetFieldID(env, STATSTGFc.clazz, "pwcsName", "I");

-	STATSTGFc.type = (*env)->GetFieldID(env, STATSTGFc.clazz, "type", "I");

-	STATSTGFc.cbSize = (*env)->GetFieldID(env, STATSTGFc.clazz, "cbSize", "J");

-	STATSTGFc.mtime_dwLowDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "mtime_dwLowDateTime", "I");

-	STATSTGFc.mtime_dwHighDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "mtime_dwHighDateTime", "I");

-	STATSTGFc.ctime_dwLowDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "ctime_dwLowDateTime", "I");

-	STATSTGFc.ctime_dwHighDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "ctime_dwHighDateTime", "I");

-	STATSTGFc.atime_dwLowDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "atime_dwLowDateTime", "I");

-	STATSTGFc.atime_dwHighDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "atime_dwHighDateTime", "I");

-	STATSTGFc.grfMode = (*env)->GetFieldID(env, STATSTGFc.clazz, "grfMode", "I");

-	STATSTGFc.grfLocksSupported = (*env)->GetFieldID(env, STATSTGFc.clazz, "grfLocksSupported", "I");

-	STATSTGFc.clsid_data1 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_data1", "I");

-	STATSTGFc.clsid_data2 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_data2", "S");

-	STATSTGFc.clsid_data3 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_data3", "S");

-	STATSTGFc.clsid_b0 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b0", "B");

-	STATSTGFc.clsid_b1 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b1", "B");

-	STATSTGFc.clsid_b2 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b2", "B");

-	STATSTGFc.clsid_b3 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b3", "B");

-	STATSTGFc.clsid_b4 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b4", "B");

-	STATSTGFc.clsid_b5 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b5", "B");

-	STATSTGFc.clsid_b6 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b6", "B");

-	STATSTGFc.clsid_b7 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b7", "B");

-	STATSTGFc.grfStateBits = (*env)->GetFieldID(env, STATSTGFc.clazz, "grfStateBits", "I");

-	STATSTGFc.reserved = (*env)->GetFieldID(env, STATSTGFc.clazz, "reserved", "I");

-	STATSTGFc.cached = 1;

-}

-

-STATSTG *getSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct)

-{

-	if (!STATSTGFc.cached) cacheSTATSTGFids(env, lpObject);

-	lpStruct->pwcsName = (LPWSTR)(*env)->GetIntField(env, lpObject, STATSTGFc.pwcsName);

-	lpStruct->type = (*env)->GetIntField(env, lpObject, STATSTGFc.type);

-	lpStruct->cbSize.QuadPart = (*env)->GetLongField(env, lpObject, STATSTGFc.cbSize);

-	lpStruct->mtime.dwLowDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.mtime_dwLowDateTime);

-	lpStruct->mtime.dwHighDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.mtime_dwHighDateTime);

-	lpStruct->ctime.dwLowDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.ctime_dwLowDateTime);

-	lpStruct->ctime.dwHighDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.ctime_dwHighDateTime);

-	lpStruct->atime.dwLowDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.atime_dwLowDateTime);

-	lpStruct->atime.dwHighDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.atime_dwHighDateTime);

-	lpStruct->grfMode = (*env)->GetIntField(env, lpObject, STATSTGFc.grfMode);

-	lpStruct->grfLocksSupported = (*env)->GetIntField(env, lpObject, STATSTGFc.grfLocksSupported);

-	lpStruct->clsid.Data4[7] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b7);

-	lpStruct->clsid.Data4[6] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b6);

-	lpStruct->clsid.Data4[5] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b5);

-	lpStruct->clsid.Data4[4] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b4);

-	lpStruct->clsid.Data4[3] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b3);

-	lpStruct->clsid.Data4[2] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b2);

-	lpStruct->clsid.Data4[1] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b1);

-	lpStruct->clsid.Data4[0] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b0);

-	lpStruct->clsid.Data3 = (*env)->GetShortField(env, lpObject, STATSTGFc.clsid_data3);

-	lpStruct->clsid.Data2 = (*env)->GetShortField(env, lpObject, STATSTGFc.clsid_data2);

-	lpStruct->clsid.Data1 = (*env)->GetIntField(env, lpObject, STATSTGFc.clsid_data1);

-	lpStruct->grfStateBits = (*env)->GetIntField(env, lpObject, STATSTGFc.grfStateBits);

-	lpStruct->reserved = (*env)->GetIntField(env, lpObject, STATSTGFc.reserved);

-	return lpStruct;

-}

-

-void setSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct)

-{

-	if (!STATSTGFc.cached) cacheSTATSTGFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.pwcsName, (jint)lpStruct->pwcsName);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.type, (jint)lpStruct->type);

-	(*env)->SetLongField(env, lpObject, STATSTGFc.cbSize, (jlong)lpStruct->cbSize.QuadPart);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.mtime_dwLowDateTime, (jint)lpStruct->mtime.dwLowDateTime);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.mtime_dwHighDateTime, (jint)lpStruct->mtime.dwHighDateTime);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.ctime_dwLowDateTime, (jint)lpStruct->ctime.dwLowDateTime);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.ctime_dwHighDateTime, (jint)lpStruct->ctime.dwHighDateTime);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.atime_dwLowDateTime, (jint)lpStruct->atime.dwLowDateTime);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.atime_dwHighDateTime, (jint)lpStruct->atime.dwHighDateTime);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.grfMode, (jint)lpStruct->grfMode);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.grfLocksSupported, (jint)lpStruct->grfLocksSupported);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b7, lpStruct->clsid.Data4[7]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b6, lpStruct->clsid.Data4[6]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b5, lpStruct->clsid.Data4[5]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b4, lpStruct->clsid.Data4[4]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b3, lpStruct->clsid.Data4[3]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b2, lpStruct->clsid.Data4[2]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b1, lpStruct->clsid.Data4[1]);

-	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b0, lpStruct->clsid.Data4[0]);

-	(*env)->SetShortField(env, lpObject, STATSTGFc.clsid_data3, lpStruct->clsid.Data3);

-	(*env)->SetShortField(env, lpObject, STATSTGFc.clsid_data2, lpStruct->clsid.Data2);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.clsid_data1, lpStruct->clsid.Data1);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.grfStateBits, (jint)lpStruct->grfStateBits);

-	(*env)->SetIntField(env, lpObject, STATSTGFc.reserved, (jint)lpStruct->reserved);

-}

-#endif /* NO_STATSTG */

-

-#ifndef NO_STGMEDIUM

-typedef struct STGMEDIUM_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID tymed, unionField, pUnkForRelease;

-} STGMEDIUM_FID_CACHE;

-

-STGMEDIUM_FID_CACHE STGMEDIUMFc;

-

-void cacheSTGMEDIUMFids(JNIEnv *env, jobject lpObject)

-{

-	if (STGMEDIUMFc.cached) return;

-	STGMEDIUMFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	STGMEDIUMFc.tymed = (*env)->GetFieldID(env, STGMEDIUMFc.clazz, "tymed", "I");

-	STGMEDIUMFc.unionField = (*env)->GetFieldID(env, STGMEDIUMFc.clazz, "unionField", "I");

-	STGMEDIUMFc.pUnkForRelease = (*env)->GetFieldID(env, STGMEDIUMFc.clazz, "pUnkForRelease", "I");

-	STGMEDIUMFc.cached = 1;

-}

-

-STGMEDIUM *getSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct)

-{

-	if (!STGMEDIUMFc.cached) cacheSTGMEDIUMFids(env, lpObject);

-	lpStruct->tymed = (*env)->GetIntField(env, lpObject, STGMEDIUMFc.tymed);

-	lpStruct->hGlobal = (HGLOBAL)(*env)->GetIntField(env, lpObject, STGMEDIUMFc.unionField);

-	lpStruct->pUnkForRelease = (IUnknown *)(*env)->GetIntField(env, lpObject, STGMEDIUMFc.pUnkForRelease);

-	return lpStruct;

-}

-

-void setSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct)

-{

-	if (!STGMEDIUMFc.cached) cacheSTGMEDIUMFids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, STGMEDIUMFc.tymed, (jint)lpStruct->tymed);

-	(*env)->SetIntField(env, lpObject, STGMEDIUMFc.unionField, (jint)lpStruct->hGlobal);

-	(*env)->SetIntField(env, lpObject, STGMEDIUMFc.pUnkForRelease, (jint)lpStruct->pUnkForRelease);

-}

-#endif /* NO_STGMEDIUM */

-

-#ifndef NO_TYPEATTR

-typedef struct TYPEATTR_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID guid_data1, guid_data2, guid_data3, guid_b0, guid_b1, guid_b2, guid_b3, guid_b4, guid_b5, guid_b6, guid_b7, lcid, dwReserved, memidConstructor, memidDestructor, lpstrSchema, cbSizeInstance, typekind, cFuncs, cVars, cImplTypes, cbSizeVft, cbAlignment, wTypeFlags, wMajorVerNum, wMinorVerNum, tdescAlias_unionField, tdescAlias_vt, idldescType_dwReserved, idldescType_wIDLFlags;

-} TYPEATTR_FID_CACHE;

-

-TYPEATTR_FID_CACHE TYPEATTRFc;

-

-void cacheTYPEATTRFids(JNIEnv *env, jobject lpObject)

-{

-	if (TYPEATTRFc.cached) return;

-	TYPEATTRFc.clazz = (*env)->GetObjectClass(env, lpObject);

-	TYPEATTRFc.guid_data1 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_data1", "I");

-	TYPEATTRFc.guid_data2 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_data2", "S");

-	TYPEATTRFc.guid_data3 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_data3", "S");

-	TYPEATTRFc.guid_b0 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b0", "B");

-	TYPEATTRFc.guid_b1 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b1", "B");

-	TYPEATTRFc.guid_b2 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b2", "B");

-	TYPEATTRFc.guid_b3 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b3", "B");

-	TYPEATTRFc.guid_b4 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b4", "B");

-	TYPEATTRFc.guid_b5 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b5", "B");

-	TYPEATTRFc.guid_b6 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b6", "B");

-	TYPEATTRFc.guid_b7 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b7", "B");

-	TYPEATTRFc.lcid = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "lcid", "I");

-	TYPEATTRFc.dwReserved = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "dwReserved", "I");

-	TYPEATTRFc.memidConstructor = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "memidConstructor", "I");

-	TYPEATTRFc.memidDestructor = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "memidDestructor", "I");

-	TYPEATTRFc.lpstrSchema = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "lpstrSchema", "I");

-	TYPEATTRFc.cbSizeInstance = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cbSizeInstance", "I");

-	TYPEATTRFc.typekind = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "typekind", "I");

-	TYPEATTRFc.cFuncs = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cFuncs", "S");

-	TYPEATTRFc.cVars = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cVars", "S");

-	TYPEATTRFc.cImplTypes = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cImplTypes", "S");

-	TYPEATTRFc.cbSizeVft = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cbSizeVft", "S");

-	TYPEATTRFc.cbAlignment = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cbAlignment", "S");

-	TYPEATTRFc.wTypeFlags = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "wTypeFlags", "S");

-	TYPEATTRFc.wMajorVerNum = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "wMajorVerNum", "S");

-	TYPEATTRFc.wMinorVerNum = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "wMinorVerNum", "S");

-	TYPEATTRFc.tdescAlias_unionField = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "tdescAlias_unionField", "I");

-	TYPEATTRFc.tdescAlias_vt = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "tdescAlias_vt", "S");

-	TYPEATTRFc.idldescType_dwReserved = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "idldescType_dwReserved", "I");

-	TYPEATTRFc.idldescType_wIDLFlags = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "idldescType_wIDLFlags", "S");

-	TYPEATTRFc.cached = 1;

-}

-

-TYPEATTR *getTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct)

-{

-	if (!TYPEATTRFc.cached) cacheTYPEATTRFids(env, lpObject);

-	lpStruct->idldescType.wIDLFlags = (*env)->GetShortField(env, lpObject, TYPEATTRFc.idldescType_wIDLFlags);

-	lpStruct->idldescType.dwReserved = (*env)->GetIntField(env, lpObject, TYPEATTRFc.idldescType_dwReserved);

-	lpStruct->tdescAlias.vt = (*env)->GetShortField(env, lpObject, TYPEATTRFc.tdescAlias_vt);

-	lpStruct->tdescAlias.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR *)(*env)->GetIntField(env, lpObject, TYPEATTRFc.tdescAlias_unionField);

-	lpStruct->wMinorVerNum = (*env)->GetShortField(env, lpObject, TYPEATTRFc.wMinorVerNum);

-	lpStruct->wMajorVerNum = (*env)->GetShortField(env, lpObject, TYPEATTRFc.wMajorVerNum);

-	lpStruct->wTypeFlags = (*env)->GetShortField(env, lpObject, TYPEATTRFc.wTypeFlags);

-	lpStruct->cbAlignment = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cbAlignment);

-	lpStruct->cbSizeVft = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cbSizeVft);

-	lpStruct->cImplTypes = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cImplTypes);

-	lpStruct->cVars = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cVars);

-	lpStruct->cFuncs = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cFuncs);

-	lpStruct->typekind = (*env)->GetIntField(env, lpObject, TYPEATTRFc.typekind);

-	lpStruct->cbSizeInstance = (*env)->GetIntField(env, lpObject, TYPEATTRFc.cbSizeInstance);

-	lpStruct->lpstrSchema = (OLECHAR FAR *)(*env)->GetIntField(env, lpObject, TYPEATTRFc.lpstrSchema);

-	lpStruct->memidDestructor = (*env)->GetIntField(env, lpObject, TYPEATTRFc.memidDestructor);

-	lpStruct->memidConstructor = (*env)->GetIntField(env, lpObject, TYPEATTRFc.memidConstructor);

-	lpStruct->dwReserved = (*env)->GetIntField(env, lpObject, TYPEATTRFc.dwReserved);

-	lpStruct->lcid = (*env)->GetIntField(env, lpObject, TYPEATTRFc.lcid);

-	lpStruct->guid.Data4[7] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b7);

-	lpStruct->guid.Data4[6] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b6);

-	lpStruct->guid.Data4[5] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b5);

-	lpStruct->guid.Data4[4] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b4);

-	lpStruct->guid.Data4[3] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b3);

-	lpStruct->guid.Data4[2] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b2);

-	lpStruct->guid.Data4[1] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b1);

-	lpStruct->guid.Data4[0] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b0);

-	lpStruct->guid.Data3 = (*env)->GetShortField(env, lpObject, TYPEATTRFc.guid_data3);

-	lpStruct->guid.Data2 = (*env)->GetShortField(env, lpObject, TYPEATTRFc.guid_data2);

-	lpStruct->guid.Data1 = (*env)->GetIntField(env, lpObject, TYPEATTRFc.guid_data1);

-	return lpStruct;

-}

-

-void setTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct)

-{

-	if (!TYPEATTRFc.cached) cacheTYPEATTRFids(env, lpObject);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.idldescType_wIDLFlags, lpStruct->idldescType.wIDLFlags);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.idldescType_dwReserved, lpStruct->idldescType.dwReserved);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.tdescAlias_vt, lpStruct->tdescAlias.vt);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.tdescAlias_unionField, (jint)lpStruct->tdescAlias.lptdesc);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.wMinorVerNum, lpStruct->wMinorVerNum);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.wMajorVerNum, lpStruct->wMajorVerNum);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.wTypeFlags, lpStruct->wTypeFlags);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cbAlignment, lpStruct->cbAlignment);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cbSizeVft, lpStruct->cbSizeVft);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cImplTypes, lpStruct->cImplTypes);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cVars, lpStruct->cVars);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cFuncs, lpStruct->cFuncs);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.typekind, lpStruct->typekind);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.cbSizeInstance, lpStruct->cbSizeInstance);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.lpstrSchema, (jint)lpStruct->lpstrSchema);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.memidDestructor, lpStruct->memidDestructor);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.memidConstructor, lpStruct->memidConstructor);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.dwReserved, lpStruct->dwReserved);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.lcid, lpStruct->lcid);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b7, lpStruct->guid.Data4[7]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b6, lpStruct->guid.Data4[6]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b5, lpStruct->guid.Data4[5]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b4, lpStruct->guid.Data4[4]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b3, lpStruct->guid.Data4[3]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b2, lpStruct->guid.Data4[2]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b1, lpStruct->guid.Data4[1]);

-	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b0, lpStruct->guid.Data4[0]);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.guid_data3, lpStruct->guid.Data3);

-	(*env)->SetShortField(env, lpObject, TYPEATTRFc.guid_data2, lpStruct->guid.Data2);

-	(*env)->SetIntField(env, lpObject, TYPEATTRFc.guid_data1, lpStruct->guid.Data1);

-}

-#endif /* NO_TYPEATTR */

-

-#ifndef NO_VARDESC1

-typedef struct VARDESC1_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID memid, lpstrSchema, unionField, elemdescVar_tdesc_union, elemdescVar_tdesc_vt, elemdescVar_paramdesc_pparamdescex, elemdescVar_paramdesc_wParamFlags, wVarFlags, varkind;

-} VARDESC1_FID_CACHE;

-

-VARDESC1_FID_CACHE VARDESC1Fc;

-

-void cacheVARDESC1Fids(JNIEnv *env, jobject lpObject)

-{

-	if (VARDESC1Fc.cached) return;

-	VARDESC1Fc.clazz = (*env)->GetObjectClass(env, lpObject);

-	VARDESC1Fc.memid = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "memid", "I");

-	VARDESC1Fc.lpstrSchema = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "lpstrSchema", "I");

-	VARDESC1Fc.unionField = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "unionField", "I");

-	VARDESC1Fc.elemdescVar_tdesc_union = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_tdesc_union", "I");

-	VARDESC1Fc.elemdescVar_tdesc_vt = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_tdesc_vt", "S");

-	VARDESC1Fc.elemdescVar_paramdesc_pparamdescex = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_paramdesc_pparamdescex", "I");

-	VARDESC1Fc.elemdescVar_paramdesc_wParamFlags = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_paramdesc_wParamFlags", "S");

-	VARDESC1Fc.wVarFlags = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "wVarFlags", "S");

-	VARDESC1Fc.varkind = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "varkind", "I");

-	VARDESC1Fc.cached = 1;

-}

-

-VARDESC *getVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)

-{

-	if (!VARDESC1Fc.cached) cacheVARDESC1Fids(env, lpObject);

-	lpStruct->varkind = (*env)->GetIntField(env, lpObject, VARDESC1Fc.varkind);

-	lpStruct->wVarFlags = (*env)->GetShortField(env, lpObject, VARDESC1Fc.wVarFlags);

-	lpStruct->elemdescVar.paramdesc.wParamFlags = (*env)->GetShortField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_wParamFlags);

-	lpStruct->elemdescVar.paramdesc.pparamdescex = (LPPARAMDESCEX)(*env)->GetIntField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_pparamdescex);

-	lpStruct->elemdescVar.tdesc.vt = (*env)->GetShortField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_vt);

-	lpStruct->elemdescVar.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR *)(*env)->GetIntField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_union);

-	lpStruct->oInst = (*env)->GetIntField(env, lpObject, VARDESC1Fc.unionField);

-	lpStruct->lpstrSchema = (OLECHAR FAR *)(*env)->GetIntField(env, lpObject, VARDESC1Fc.lpstrSchema);

-	lpStruct->memid = (*env)->GetIntField(env, lpObject, VARDESC1Fc.memid);

-	return lpStruct;

-}

-

-void setVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)

-{

-	if (!VARDESC1Fc.cached) cacheVARDESC1Fids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, VARDESC1Fc.varkind, lpStruct->varkind);

-	(*env)->SetShortField(env, lpObject, VARDESC1Fc.wVarFlags, lpStruct->wVarFlags);

-	(*env)->SetShortField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_wParamFlags, lpStruct->elemdescVar.paramdesc.wParamFlags);

-	(*env)->SetIntField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_pparamdescex, (jint)lpStruct->elemdescVar.paramdesc.pparamdescex);

-	(*env)->SetShortField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_vt, lpStruct->elemdescVar.tdesc.vt);

-	(*env)->SetIntField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_union, (jint)lpStruct->elemdescVar.tdesc.lptdesc);

-	(*env)->SetIntField(env, lpObject, VARDESC1Fc.unionField, lpStruct->oInst);

-	(*env)->SetIntField(env, lpObject, VARDESC1Fc.lpstrSchema, (jint)lpStruct->lpstrSchema);

-	(*env)->SetIntField(env, lpObject, VARDESC1Fc.memid, lpStruct->memid);

-}

-#endif /* NO_VARDESC1 */

-

-#ifndef NO_VARDESC2

-typedef struct VARDESC2_FID_CACHE {

-	int cached;

-	jclass clazz;

-	jfieldID memid, lpstrSchema, unionField, elemdescVar_tdesc_union, elemdescVar_tdesc_vt, elemdescFunc_idldesc_dwReserved, elemdescFunc_idldesc_wIDLFlags, wVarFlags, varkind;

-} VARDESC2_FID_CACHE;

-

-VARDESC2_FID_CACHE VARDESC2Fc;

-

-void cacheVARDESC2Fids(JNIEnv *env, jobject lpObject)

-{

-	if (VARDESC2Fc.cached) return;

-	VARDESC2Fc.clazz = (*env)->GetObjectClass(env, lpObject);

-	VARDESC2Fc.memid = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "memid", "I");

-	VARDESC2Fc.lpstrSchema = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "lpstrSchema", "I");

-	VARDESC2Fc.unionField = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "unionField", "I");

-	VARDESC2Fc.elemdescVar_tdesc_union = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescVar_tdesc_union", "I");

-	VARDESC2Fc.elemdescVar_tdesc_vt = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescVar_tdesc_vt", "S");

-	VARDESC2Fc.elemdescFunc_idldesc_dwReserved = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescFunc_idldesc_dwReserved", "I");

-	VARDESC2Fc.elemdescFunc_idldesc_wIDLFlags = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescFunc_idldesc_wIDLFlags", "S");

-	VARDESC2Fc.wVarFlags = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "wVarFlags", "S");

-	VARDESC2Fc.varkind = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "varkind", "I");

-	VARDESC2Fc.cached = 1;

-}

-

-VARDESC *getVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)

-{

-	if (!VARDESC2Fc.cached) cacheVARDESC2Fids(env, lpObject);

-	lpStruct->varkind = (*env)->GetIntField(env, lpObject, VARDESC2Fc.varkind);

-	lpStruct->wVarFlags = (*env)->GetShortField(env, lpObject, VARDESC2Fc.wVarFlags);

-	lpStruct->elemdescVar.idldesc.wIDLFlags = (*env)->GetShortField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_wIDLFlags);

-	lpStruct->elemdescVar.idldesc.dwReserved = (*env)->GetIntField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_dwReserved);

-	lpStruct->elemdescVar.tdesc.vt = (*env)->GetShortField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_vt);

-	lpStruct->elemdescVar.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR *)(*env)->GetIntField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_union);

-	lpStruct->oInst = (*env)->GetIntField(env, lpObject, VARDESC2Fc.unionField);

-	lpStruct->lpstrSchema = (OLECHAR FAR *)(*env)->GetIntField(env, lpObject, VARDESC2Fc.lpstrSchema);

-	lpStruct->memid = (*env)->GetIntField(env, lpObject, VARDESC2Fc.memid);

-	return lpStruct;

-}

-

-void setVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)

-{

-	if (!VARDESC2Fc.cached) cacheVARDESC2Fids(env, lpObject);

-	(*env)->SetIntField(env, lpObject, VARDESC2Fc.varkind, lpStruct->varkind);

-	(*env)->SetShortField(env, lpObject, VARDESC2Fc.wVarFlags, lpStruct->wVarFlags);

-	(*env)->SetShortField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_wIDLFlags, lpStruct->elemdescVar.idldesc.wIDLFlags);

-	(*env)->SetIntField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_dwReserved, lpStruct->elemdescVar.idldesc.dwReserved);

-	(*env)->SetShortField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_vt, lpStruct->elemdescVar.tdesc.vt);

-	(*env)->SetIntField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_union, (jint)lpStruct->elemdescVar.tdesc.lptdesc);

-	(*env)->SetIntField(env, lpObject, VARDESC2Fc.unionField, lpStruct->oInst);

-	(*env)->SetIntField(env, lpObject, VARDESC2Fc.lpstrSchema, (jint)lpStruct->lpstrSchema);

-	(*env)->SetIntField(env, lpObject, VARDESC2Fc.memid, lpStruct->memid);

-}

-#endif /* NO_VARDESC2 */

+/*******************************************************************************
+* Copyright (c) 2000, 2003 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Common Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/cpl-v10.html
+* 
+* Contributors:
+*     IBM Corporation - initial API and implementation
+*******************************************************************************/
+
+#include "swt.h"
+#include "com_structs.h"
+
+#ifndef NO_CAUUID
+typedef struct CAUUID_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cElems, pElems;
+} CAUUID_FID_CACHE;
+
+CAUUID_FID_CACHE CAUUIDFc;
+
+void cacheCAUUIDFids(JNIEnv *env, jobject lpObject)
+{
+	if (CAUUIDFc.cached) return;
+	CAUUIDFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	CAUUIDFc.cElems = (*env)->GetFieldID(env, CAUUIDFc.clazz, "cElems", "I");
+	CAUUIDFc.pElems = (*env)->GetFieldID(env, CAUUIDFc.clazz, "pElems", "I");
+	CAUUIDFc.cached = 1;
+}
+
+CAUUID *getCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct)
+{
+	if (!CAUUIDFc.cached) cacheCAUUIDFids(env, lpObject);
+	lpStruct->cElems = (*env)->GetIntField(env, lpObject, CAUUIDFc.cElems);
+	lpStruct->pElems = (GUID FAR *)(*env)->GetIntField(env, lpObject, CAUUIDFc.pElems);
+	return lpStruct;
+}
+
+void setCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct)
+{
+	if (!CAUUIDFc.cached) cacheCAUUIDFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, CAUUIDFc.cElems, (jint)lpStruct->cElems);
+	(*env)->SetIntField(env, lpObject, CAUUIDFc.pElems, (jint)lpStruct->pElems);
+}
+#endif /* NO_CAUUID */
+
+#ifndef NO_CONTROLINFO
+typedef struct CONTROLINFO_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cb, hAccel, cAccel, dwFlags;
+} CONTROLINFO_FID_CACHE;
+
+CONTROLINFO_FID_CACHE CONTROLINFOFc;
+
+void cacheCONTROLINFOFids(JNIEnv *env, jobject lpObject)
+{
+	if (CONTROLINFOFc.cached) return;
+	CONTROLINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	CONTROLINFOFc.cb = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "cb", "I");
+	CONTROLINFOFc.hAccel = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "hAccel", "I");
+	CONTROLINFOFc.cAccel = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "cAccel", "S");
+	CONTROLINFOFc.dwFlags = (*env)->GetFieldID(env, CONTROLINFOFc.clazz, "dwFlags", "I");
+	CONTROLINFOFc.cached = 1;
+}
+
+CONTROLINFO *getCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct)
+{
+	if (!CONTROLINFOFc.cached) cacheCONTROLINFOFids(env, lpObject);
+	lpStruct->cb = (*env)->GetIntField(env, lpObject, CONTROLINFOFc.cb);
+	lpStruct->hAccel = (HACCEL)(*env)->GetIntField(env, lpObject, CONTROLINFOFc.hAccel);
+	lpStruct->cAccel = (*env)->GetShortField(env, lpObject, CONTROLINFOFc.cAccel);
+	lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, CONTROLINFOFc.dwFlags);
+	return lpStruct;
+}
+
+void setCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct)
+{
+	if (!CONTROLINFOFc.cached) cacheCONTROLINFOFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, CONTROLINFOFc.cb, (jint)lpStruct->cb);
+	(*env)->SetIntField(env, lpObject, CONTROLINFOFc.hAccel, (jint)lpStruct->hAccel);
+	(*env)->SetShortField(env, lpObject, CONTROLINFOFc.cAccel, (jshort)lpStruct->cAccel);
+	(*env)->SetIntField(env, lpObject, CONTROLINFOFc.dwFlags, (jint)lpStruct->dwFlags);
+}
+#endif /* NO_CONTROLINFO */
+
+#ifndef NO_COSERVERINFO
+typedef struct COSERVERINFO_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID dwReserved1, pwszName, pAuthInfo, dwReserved2;
+} COSERVERINFO_FID_CACHE;
+
+COSERVERINFO_FID_CACHE COSERVERINFOFc;
+
+void cacheCOSERVERINFOFids(JNIEnv *env, jobject lpObject)
+{
+	if (COSERVERINFOFc.cached) return;
+	COSERVERINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	COSERVERINFOFc.dwReserved1 = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "dwReserved1", "I");
+	COSERVERINFOFc.pwszName = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "pwszName", "I");
+	COSERVERINFOFc.pAuthInfo = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "pAuthInfo", "I");
+	COSERVERINFOFc.dwReserved2 = (*env)->GetFieldID(env, COSERVERINFOFc.clazz, "dwReserved2", "I");
+	COSERVERINFOFc.cached = 1;
+}
+
+COSERVERINFO *getCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct)
+{
+	if (!COSERVERINFOFc.cached) cacheCOSERVERINFOFids(env, lpObject);
+	lpStruct->dwReserved1 = (*env)->GetIntField(env, lpObject, COSERVERINFOFc.dwReserved1);
+	lpStruct->pwszName = (LPWSTR)(*env)->GetIntField(env, lpObject, COSERVERINFOFc.pwszName);
+	lpStruct->pAuthInfo = (COAUTHINFO *)(*env)->GetIntField(env, lpObject, COSERVERINFOFc.pAuthInfo);
+	lpStruct->dwReserved2 = (*env)->GetIntField(env, lpObject, COSERVERINFOFc.dwReserved2);
+	return lpStruct;
+}
+
+void setCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct)
+{
+	if (!COSERVERINFOFc.cached) cacheCOSERVERINFOFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.dwReserved1, (jint)lpStruct->dwReserved1);
+	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.pwszName, (jint)lpStruct->pwszName);
+	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.pAuthInfo, (jint)lpStruct->pAuthInfo);
+	(*env)->SetIntField(env, lpObject, COSERVERINFOFc.dwReserved2, (jint)lpStruct->dwReserved2);
+}
+#endif /* NO_COSERVERINFO */
+
+#ifndef NO_DISPPARAMS
+typedef struct DISPPARAMS_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID rgvarg, rgdispidNamedArgs, cArgs, cNamedArgs;
+} DISPPARAMS_FID_CACHE;
+
+DISPPARAMS_FID_CACHE DISPPARAMSFc;
+
+void cacheDISPPARAMSFids(JNIEnv *env, jobject lpObject)
+{
+	if (DISPPARAMSFc.cached) return;
+	DISPPARAMSFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	DISPPARAMSFc.rgvarg = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "rgvarg", "I");
+	DISPPARAMSFc.rgdispidNamedArgs = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "rgdispidNamedArgs", "I");
+	DISPPARAMSFc.cArgs = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "cArgs", "I");
+	DISPPARAMSFc.cNamedArgs = (*env)->GetFieldID(env, DISPPARAMSFc.clazz, "cNamedArgs", "I");
+	DISPPARAMSFc.cached = 1;
+}
+
+DISPPARAMS *getDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct)
+{
+	if (!DISPPARAMSFc.cached) cacheDISPPARAMSFids(env, lpObject);
+	lpStruct->rgvarg = (VARIANTARG FAR *)(*env)->GetIntField(env, lpObject, DISPPARAMSFc.rgvarg);
+	lpStruct->rgdispidNamedArgs = (DISPID FAR *)(*env)->GetIntField(env, lpObject, DISPPARAMSFc.rgdispidNamedArgs);
+	lpStruct->cArgs = (*env)->GetIntField(env, lpObject, DISPPARAMSFc.cArgs);
+	lpStruct->cNamedArgs = (*env)->GetIntField(env, lpObject, DISPPARAMSFc.cNamedArgs);
+	return lpStruct;
+}
+
+void setDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct)
+{
+	if (!DISPPARAMSFc.cached) cacheDISPPARAMSFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.rgvarg, (jint)lpStruct->rgvarg);
+	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.rgdispidNamedArgs, (jint)lpStruct->rgdispidNamedArgs);
+	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.cArgs, (jint)lpStruct->cArgs);
+	(*env)->SetIntField(env, lpObject, DISPPARAMSFc.cNamedArgs, (jint)lpStruct->cNamedArgs);
+}
+#endif /* NO_DISPPARAMS */
+
+#ifndef NO_DVTARGETDEVICE
+typedef struct DVTARGETDEVICE_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID tdSize, tdDriverNameOffset, tdDeviceNameOffset, tdPortNameOffset, tdExtDevmodeOffset, tdData;
+} DVTARGETDEVICE_FID_CACHE;
+
+DVTARGETDEVICE_FID_CACHE DVTARGETDEVICEFc;
+
+void cacheDVTARGETDEVICEFids(JNIEnv *env, jobject lpObject)
+{
+	if (DVTARGETDEVICEFc.cached) return;
+	DVTARGETDEVICEFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	DVTARGETDEVICEFc.tdSize = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdSize", "I");
+	DVTARGETDEVICEFc.tdDriverNameOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdDriverNameOffset", "S");
+	DVTARGETDEVICEFc.tdDeviceNameOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdDeviceNameOffset", "S");
+	DVTARGETDEVICEFc.tdPortNameOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdPortNameOffset", "S");
+	DVTARGETDEVICEFc.tdExtDevmodeOffset = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdExtDevmodeOffset", "S");
+	DVTARGETDEVICEFc.tdData = (*env)->GetFieldID(env, DVTARGETDEVICEFc.clazz, "tdData", "B");
+	DVTARGETDEVICEFc.cached = 1;
+}
+
+DVTARGETDEVICE *getDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct)
+{
+	if (!DVTARGETDEVICEFc.cached) cacheDVTARGETDEVICEFids(env, lpObject);
+	lpStruct->tdSize = (*env)->GetIntField(env, lpObject, DVTARGETDEVICEFc.tdSize);
+	lpStruct->tdDriverNameOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdDriverNameOffset);
+	lpStruct->tdDeviceNameOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdDeviceNameOffset);
+	lpStruct->tdPortNameOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdPortNameOffset);
+	lpStruct->tdExtDevmodeOffset = (*env)->GetShortField(env, lpObject, DVTARGETDEVICEFc.tdExtDevmodeOffset);
+	*lpStruct->tdData = (*env)->GetByteField(env, lpObject, DVTARGETDEVICEFc.tdData);
+	return lpStruct;
+}
+
+void setDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct)
+{
+	if (!DVTARGETDEVICEFc.cached) cacheDVTARGETDEVICEFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, DVTARGETDEVICEFc.tdSize, (jint)lpStruct->tdSize);
+	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdDriverNameOffset, (jshort)lpStruct->tdDriverNameOffset);
+	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdDeviceNameOffset, (jshort)lpStruct->tdDeviceNameOffset);
+	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdPortNameOffset, (jshort)lpStruct->tdPortNameOffset);
+	(*env)->SetShortField(env, lpObject, DVTARGETDEVICEFc.tdExtDevmodeOffset, (jshort)lpStruct->tdExtDevmodeOffset);
+	(*env)->SetByteField(env, lpObject, DVTARGETDEVICEFc.tdData, (jbyte)*lpStruct->tdData);
+}
+#endif /* NO_DVTARGETDEVICE */
+
+#ifndef NO_EXCEPINFO
+typedef struct EXCEPINFO_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID wCode, wReserved, bstrSource, bstrDescription, bstrHelpFile, dwHelpContext, pvReserved, pfnDeferredFillIn, scode;
+} EXCEPINFO_FID_CACHE;
+
+EXCEPINFO_FID_CACHE EXCEPINFOFc;
+
+void cacheEXCEPINFOFids(JNIEnv *env, jobject lpObject)
+{
+	if (EXCEPINFOFc.cached) return;
+	EXCEPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	EXCEPINFOFc.wCode = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "wCode", "S");
+	EXCEPINFOFc.wReserved = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "wReserved", "S");
+	EXCEPINFOFc.bstrSource = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "bstrSource", "I");
+	EXCEPINFOFc.bstrDescription = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "bstrDescription", "I");
+	EXCEPINFOFc.bstrHelpFile = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "bstrHelpFile", "I");
+	EXCEPINFOFc.dwHelpContext = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "dwHelpContext", "I");
+	EXCEPINFOFc.pvReserved = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "pvReserved", "I");
+	EXCEPINFOFc.pfnDeferredFillIn = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "pfnDeferredFillIn", "I");
+	EXCEPINFOFc.scode = (*env)->GetFieldID(env, EXCEPINFOFc.clazz, "scode", "I");
+	EXCEPINFOFc.cached = 1;
+}
+
+EXCEPINFO *getEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct)
+{
+	if (!EXCEPINFOFc.cached) cacheEXCEPINFOFids(env, lpObject);
+	lpStruct->wCode = (*env)->GetShortField(env, lpObject, EXCEPINFOFc.wCode);
+	lpStruct->wReserved = (*env)->GetShortField(env, lpObject, EXCEPINFOFc.wReserved);
+	lpStruct->bstrSource = (BSTR)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.bstrSource);
+	lpStruct->bstrDescription = (BSTR)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.bstrDescription);
+	lpStruct->bstrHelpFile = (BSTR)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.bstrHelpFile);
+	lpStruct->dwHelpContext = (*env)->GetIntField(env, lpObject, EXCEPINFOFc.dwHelpContext);
+	lpStruct->pvReserved = (void FAR *)(*env)->GetIntField(env, lpObject, EXCEPINFOFc.pvReserved);
+	lpStruct->pfnDeferredFillIn = (HRESULT (STDAPICALLTYPE FAR* )(struct tagEXCEPINFO FAR*))(*env)->GetIntField(env, lpObject, EXCEPINFOFc.pfnDeferredFillIn);
+	lpStruct->scode = (*env)->GetIntField(env, lpObject, EXCEPINFOFc.scode);
+	return lpStruct;
+}
+
+void setEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct)
+{
+	if (!EXCEPINFOFc.cached) cacheEXCEPINFOFids(env, lpObject);
+	(*env)->SetShortField(env, lpObject, EXCEPINFOFc.wCode, (jshort)lpStruct->wCode);
+	(*env)->SetShortField(env, lpObject, EXCEPINFOFc.wReserved, (jshort)lpStruct->wReserved);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.bstrSource, (jint)lpStruct->bstrSource);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.bstrDescription, (jint)lpStruct->bstrDescription);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.bstrHelpFile, (jint)lpStruct->bstrHelpFile);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.dwHelpContext, (jint)lpStruct->dwHelpContext);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.pvReserved, (jint)lpStruct->pvReserved);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.pfnDeferredFillIn, (jint)lpStruct->pfnDeferredFillIn);
+	(*env)->SetIntField(env, lpObject, EXCEPINFOFc.scode, (jint)lpStruct->scode);
+}
+#endif /* NO_EXCEPINFO */
+
+#ifndef NO_FORMATETC
+typedef struct FORMATETC_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cfFormat, ptd, dwAspect, lindex, tymed;
+} FORMATETC_FID_CACHE;
+
+FORMATETC_FID_CACHE FORMATETCFc;
+
+void cacheFORMATETCFids(JNIEnv *env, jobject lpObject)
+{
+	if (FORMATETCFc.cached) return;
+	FORMATETCFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	FORMATETCFc.cfFormat = (*env)->GetFieldID(env, FORMATETCFc.clazz, "cfFormat", "I");
+	FORMATETCFc.ptd = (*env)->GetFieldID(env, FORMATETCFc.clazz, "ptd", "I");
+	FORMATETCFc.dwAspect = (*env)->GetFieldID(env, FORMATETCFc.clazz, "dwAspect", "I");
+	FORMATETCFc.lindex = (*env)->GetFieldID(env, FORMATETCFc.clazz, "lindex", "I");
+	FORMATETCFc.tymed = (*env)->GetFieldID(env, FORMATETCFc.clazz, "tymed", "I");
+	FORMATETCFc.cached = 1;
+}
+
+FORMATETC *getFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct)
+{
+	if (!FORMATETCFc.cached) cacheFORMATETCFids(env, lpObject);
+	lpStruct->cfFormat = (CLIPFORMAT)(*env)->GetIntField(env, lpObject, FORMATETCFc.cfFormat);
+	lpStruct->ptd = (DVTARGETDEVICE *)(*env)->GetIntField(env, lpObject, FORMATETCFc.ptd);
+	lpStruct->dwAspect = (*env)->GetIntField(env, lpObject, FORMATETCFc.dwAspect);
+	lpStruct->lindex = (*env)->GetIntField(env, lpObject, FORMATETCFc.lindex);
+	lpStruct->tymed = (*env)->GetIntField(env, lpObject, FORMATETCFc.tymed);
+	return lpStruct;
+}
+
+void setFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct)
+{
+	if (!FORMATETCFc.cached) cacheFORMATETCFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, FORMATETCFc.cfFormat, (jint)lpStruct->cfFormat);
+	(*env)->SetIntField(env, lpObject, FORMATETCFc.ptd, (jint)lpStruct->ptd);
+	(*env)->SetIntField(env, lpObject, FORMATETCFc.dwAspect, (jint)lpStruct->dwAspect);
+	(*env)->SetIntField(env, lpObject, FORMATETCFc.lindex, (jint)lpStruct->lindex);
+	(*env)->SetIntField(env, lpObject, FORMATETCFc.tymed, (jint)lpStruct->tymed);
+}
+#endif /* NO_FORMATETC */
+
+#ifndef NO_FUNCDESC1
+typedef struct FUNCDESC1_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID memid, lprgscode, lprgelemdescParam, funckind, invkind, callconv, cParams, cParamsOpt, oVft, cScodes, elemdescFunc_tdesc_union, elemdescFunc_tdesc_vt, elemdescFunc_paramdesc_pparamdescex, elemdescFunc_paramdesc_wParamFlags, wFuncFlags;
+} FUNCDESC1_FID_CACHE;
+
+FUNCDESC1_FID_CACHE FUNCDESC1Fc;
+
+void cacheFUNCDESC1Fids(JNIEnv *env, jobject lpObject)
+{
+	if (FUNCDESC1Fc.cached) return;
+	FUNCDESC1Fc.clazz = (*env)->GetObjectClass(env, lpObject);
+	FUNCDESC1Fc.memid = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "memid", "I");
+	FUNCDESC1Fc.lprgscode = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "lprgscode", "I");
+	FUNCDESC1Fc.lprgelemdescParam = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "lprgelemdescParam", "I");
+	FUNCDESC1Fc.funckind = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "funckind", "I");
+	FUNCDESC1Fc.invkind = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "invkind", "I");
+	FUNCDESC1Fc.callconv = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "callconv", "I");
+	FUNCDESC1Fc.cParams = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "cParams", "S");
+	FUNCDESC1Fc.cParamsOpt = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "cParamsOpt", "S");
+	FUNCDESC1Fc.oVft = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "oVft", "S");
+	FUNCDESC1Fc.cScodes = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "cScodes", "S");
+	FUNCDESC1Fc.elemdescFunc_tdesc_union = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_tdesc_union", "I");
+	FUNCDESC1Fc.elemdescFunc_tdesc_vt = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_tdesc_vt", "S");
+	FUNCDESC1Fc.elemdescFunc_paramdesc_pparamdescex = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_paramdesc_pparamdescex", "I");
+	FUNCDESC1Fc.elemdescFunc_paramdesc_wParamFlags = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "elemdescFunc_paramdesc_wParamFlags", "S");
+	FUNCDESC1Fc.wFuncFlags = (*env)->GetFieldID(env, FUNCDESC1Fc.clazz, "wFuncFlags", "S");
+	FUNCDESC1Fc.cached = 1;
+}
+
+FUNCDESC *getFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)
+{
+	if (!FUNCDESC1Fc.cached) cacheFUNCDESC1Fids(env, lpObject);
+	lpStruct->memid = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.memid);
+	lpStruct->lprgscode = (SCODE FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.lprgscode);
+	lpStruct->lprgelemdescParam = (ELEMDESC FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.lprgelemdescParam);
+	lpStruct->funckind = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.funckind);
+	lpStruct->invkind = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.invkind);
+	lpStruct->callconv = (*env)->GetIntField(env, lpObject, FUNCDESC1Fc.callconv);
+	lpStruct->cParams = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.cParams);
+	lpStruct->cParamsOpt = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.cParamsOpt);
+	lpStruct->oVft = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.oVft);
+	lpStruct->cScodes = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.cScodes);
+	lpStruct->elemdescFunc.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR* )(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_union);
+	lpStruct->elemdescFunc.tdesc.vt = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_vt);
+	lpStruct->elemdescFunc.paramdesc.pparamdescex = (LPPARAMDESCEX)(*env)->GetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_pparamdescex);
+	lpStruct->elemdescFunc.paramdesc.wParamFlags = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_wParamFlags);
+	lpStruct->wFuncFlags = (*env)->GetShortField(env, lpObject, FUNCDESC1Fc.wFuncFlags);
+	return lpStruct;
+}
+
+void setFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)
+{
+	if (!FUNCDESC1Fc.cached) cacheFUNCDESC1Fids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.memid, (jint)lpStruct->memid);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.lprgscode, (jint)lpStruct->lprgscode);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.lprgelemdescParam, (jint)lpStruct->lprgelemdescParam);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.funckind, (jint)lpStruct->funckind);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.invkind, (jint)lpStruct->invkind);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.callconv, (jint)lpStruct->callconv);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.cParams, (jshort)lpStruct->cParams);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.cParamsOpt, (jshort)lpStruct->cParamsOpt);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.oVft, (jshort)lpStruct->oVft);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.cScodes, (jshort)lpStruct->cScodes);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_union, (jint)lpStruct->elemdescFunc.tdesc.lptdesc);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_tdesc_vt, (jshort)lpStruct->elemdescFunc.tdesc.vt);
+	(*env)->SetIntField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_pparamdescex, (jint)lpStruct->elemdescFunc.paramdesc.pparamdescex);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.elemdescFunc_paramdesc_wParamFlags, (jshort)lpStruct->elemdescFunc.paramdesc.wParamFlags);
+	(*env)->SetShortField(env, lpObject, FUNCDESC1Fc.wFuncFlags, (jshort)lpStruct->wFuncFlags);
+}
+#endif /* NO_FUNCDESC1 */
+
+#ifndef NO_FUNCDESC2
+typedef struct FUNCDESC2_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID memid, lprgscode, lprgelemdescParam, funckind, invkind, callconv, cParams, cParamsOpt, oVft, cScodes, elemdescFunc_tdesc_union, elemdescFunc_tdesc_vt, elemdescFunc_idldesc_dwReserved, elemdescFunc_idldesc_wIDLFlags, wFuncFlags;
+} FUNCDESC2_FID_CACHE;
+
+FUNCDESC2_FID_CACHE FUNCDESC2Fc;
+
+void cacheFUNCDESC2Fids(JNIEnv *env, jobject lpObject)
+{
+	if (FUNCDESC2Fc.cached) return;
+	FUNCDESC2Fc.clazz = (*env)->GetObjectClass(env, lpObject);
+	FUNCDESC2Fc.memid = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "memid", "I");
+	FUNCDESC2Fc.lprgscode = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "lprgscode", "I");
+	FUNCDESC2Fc.lprgelemdescParam = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "lprgelemdescParam", "I");
+	FUNCDESC2Fc.funckind = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "funckind", "I");
+	FUNCDESC2Fc.invkind = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "invkind", "I");
+	FUNCDESC2Fc.callconv = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "callconv", "I");
+	FUNCDESC2Fc.cParams = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "cParams", "S");
+	FUNCDESC2Fc.cParamsOpt = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "cParamsOpt", "S");
+	FUNCDESC2Fc.oVft = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "oVft", "S");
+	FUNCDESC2Fc.cScodes = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "cScodes", "S");
+	FUNCDESC2Fc.elemdescFunc_tdesc_union = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_tdesc_union", "I");
+	FUNCDESC2Fc.elemdescFunc_tdesc_vt = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_tdesc_vt", "S");
+	FUNCDESC2Fc.elemdescFunc_idldesc_dwReserved = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_idldesc_dwReserved", "I");
+	FUNCDESC2Fc.elemdescFunc_idldesc_wIDLFlags = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "elemdescFunc_idldesc_wIDLFlags", "S");
+	FUNCDESC2Fc.wFuncFlags = (*env)->GetFieldID(env, FUNCDESC2Fc.clazz, "wFuncFlags", "S");
+	FUNCDESC2Fc.cached = 1;
+}
+
+FUNCDESC *getFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)
+{
+	if (!FUNCDESC2Fc.cached) cacheFUNCDESC2Fids(env, lpObject);
+	lpStruct->memid = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.memid);
+	lpStruct->lprgscode = (SCODE FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC2Fc.lprgscode);
+	lpStruct->lprgelemdescParam = (ELEMDESC FAR *)(*env)->GetIntField(env, lpObject, FUNCDESC2Fc.lprgelemdescParam);
+	lpStruct->funckind = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.funckind);
+	lpStruct->invkind = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.invkind);
+	lpStruct->callconv = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.callconv);
+	lpStruct->cParams = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.cParams);
+	lpStruct->cParamsOpt = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.cParamsOpt);
+	lpStruct->oVft = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.oVft);
+	lpStruct->cScodes = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.cScodes);
+	lpStruct->elemdescFunc.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR* )(*env)->GetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_union);
+	lpStruct->elemdescFunc.tdesc.vt = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_vt);
+	lpStruct->elemdescFunc.idldesc.dwReserved = (*env)->GetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_dwReserved);
+	lpStruct->elemdescFunc.idldesc.wIDLFlags = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_wIDLFlags);
+	lpStruct->wFuncFlags = (*env)->GetShortField(env, lpObject, FUNCDESC2Fc.wFuncFlags);
+	return lpStruct;
+}
+
+void setFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct)
+{
+	if (!FUNCDESC2Fc.cached) cacheFUNCDESC2Fids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.memid, (jint)lpStruct->memid);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.lprgscode, (jint)lpStruct->lprgscode);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.lprgelemdescParam, (jint)lpStruct->lprgelemdescParam);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.funckind, (jint)lpStruct->funckind);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.invkind, (jint)lpStruct->invkind);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.callconv, (jint)lpStruct->callconv);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.cParams, (jshort)lpStruct->cParams);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.cParamsOpt, (jshort)lpStruct->cParamsOpt);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.oVft, (jshort)lpStruct->oVft);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.cScodes, (jshort)lpStruct->cScodes);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_union, (jint)lpStruct->elemdescFunc.tdesc.lptdesc);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_tdesc_vt, (jshort)lpStruct->elemdescFunc.tdesc.vt);
+	(*env)->SetIntField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_dwReserved, (jint)lpStruct->elemdescFunc.idldesc.dwReserved);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.elemdescFunc_idldesc_wIDLFlags, (jshort)lpStruct->elemdescFunc.idldesc.wIDLFlags);
+	(*env)->SetShortField(env, lpObject, FUNCDESC2Fc.wFuncFlags, (jshort)lpStruct->wFuncFlags);
+}
+#endif /* NO_FUNCDESC2 */
+
+#ifndef NO_GUID
+typedef struct GUID_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID data1, data2, data3, b0, b1, b2, b3, b4, b5, b6, b7;
+} GUID_FID_CACHE;
+
+GUID_FID_CACHE GUIDFc;
+
+void cacheGUIDFids(JNIEnv *env, jobject lpObject)
+{
+	if (GUIDFc.cached) return;
+	GUIDFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	GUIDFc.data1 = (*env)->GetFieldID(env, GUIDFc.clazz, "data1", "I");
+	GUIDFc.data2 = (*env)->GetFieldID(env, GUIDFc.clazz, "data2", "S");
+	GUIDFc.data3 = (*env)->GetFieldID(env, GUIDFc.clazz, "data3", "S");
+	GUIDFc.b0 = (*env)->GetFieldID(env, GUIDFc.clazz, "b0", "B");
+	GUIDFc.b1 = (*env)->GetFieldID(env, GUIDFc.clazz, "b1", "B");
+	GUIDFc.b2 = (*env)->GetFieldID(env, GUIDFc.clazz, "b2", "B");
+	GUIDFc.b3 = (*env)->GetFieldID(env, GUIDFc.clazz, "b3", "B");
+	GUIDFc.b4 = (*env)->GetFieldID(env, GUIDFc.clazz, "b4", "B");
+	GUIDFc.b5 = (*env)->GetFieldID(env, GUIDFc.clazz, "b5", "B");
+	GUIDFc.b6 = (*env)->GetFieldID(env, GUIDFc.clazz, "b6", "B");
+	GUIDFc.b7 = (*env)->GetFieldID(env, GUIDFc.clazz, "b7", "B");
+	GUIDFc.cached = 1;
+}
+
+GUID *getGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct)
+{
+	if (!GUIDFc.cached) cacheGUIDFids(env, lpObject);
+	lpStruct->Data4[7] = (*env)->GetByteField(env, lpObject, GUIDFc.b7);
+	lpStruct->Data4[6] = (*env)->GetByteField(env, lpObject, GUIDFc.b6);
+	lpStruct->Data4[5] = (*env)->GetByteField(env, lpObject, GUIDFc.b5);
+	lpStruct->Data4[4] = (*env)->GetByteField(env, lpObject, GUIDFc.b4);
+	lpStruct->Data4[3] = (*env)->GetByteField(env, lpObject, GUIDFc.b3);
+	lpStruct->Data4[2] = (*env)->GetByteField(env, lpObject, GUIDFc.b2);
+	lpStruct->Data4[1] = (*env)->GetByteField(env, lpObject, GUIDFc.b1);
+	lpStruct->Data4[0] = (*env)->GetByteField(env, lpObject, GUIDFc.b0);
+	lpStruct->Data3 = (*env)->GetShortField(env, lpObject, GUIDFc.data3);
+	lpStruct->Data2 = (*env)->GetShortField(env, lpObject, GUIDFc.data2);
+	lpStruct->Data1 = (*env)->GetIntField(env, lpObject, GUIDFc.data1);
+	return lpStruct;
+}
+
+void setGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct)
+{
+	if (!GUIDFc.cached) cacheGUIDFids(env, lpObject);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b7, lpStruct->Data4[7]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b6, lpStruct->Data4[6]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b5, lpStruct->Data4[5]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b4, lpStruct->Data4[4]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b3, lpStruct->Data4[3]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b2, lpStruct->Data4[2]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b1, lpStruct->Data4[1]);
+	(*env)->SetByteField(env, lpObject, GUIDFc.b0, lpStruct->Data4[0]);
+	(*env)->SetShortField(env, lpObject, GUIDFc.data3, lpStruct->Data3);
+	(*env)->SetShortField(env, lpObject, GUIDFc.data2, lpStruct->Data2);
+	(*env)->SetIntField(env, lpObject, GUIDFc.data1, lpStruct->Data1);
+}
+
+#endif /* NO_GUID */
+
+#ifndef NO_LICINFO
+typedef struct LICINFO_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cbLicInfo, fRuntimeKeyAvail, fLicVerified;
+} LICINFO_FID_CACHE;
+
+LICINFO_FID_CACHE LICINFOFc;
+
+void cacheLICINFOFids(JNIEnv *env, jobject lpObject)
+{
+	if (LICINFOFc.cached) return;
+	LICINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	LICINFOFc.cbLicInfo = (*env)->GetFieldID(env, LICINFOFc.clazz, "cbLicInfo", "I");
+	LICINFOFc.fRuntimeKeyAvail = (*env)->GetFieldID(env, LICINFOFc.clazz, "fRuntimeKeyAvail", "I");
+	LICINFOFc.fLicVerified = (*env)->GetFieldID(env, LICINFOFc.clazz, "fLicVerified", "I");
+	LICINFOFc.cached = 1;
+}
+
+LICINFO *getLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct)
+{
+	if (!LICINFOFc.cached) cacheLICINFOFids(env, lpObject);
+	lpStruct->cbLicInfo = (*env)->GetIntField(env, lpObject, LICINFOFc.cbLicInfo);
+	lpStruct->fRuntimeKeyAvail = (*env)->GetIntField(env, lpObject, LICINFOFc.fRuntimeKeyAvail);
+	lpStruct->fLicVerified = (*env)->GetIntField(env, lpObject, LICINFOFc.fLicVerified);
+	return lpStruct;
+}
+
+void setLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct)
+{
+	if (!LICINFOFc.cached) cacheLICINFOFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, LICINFOFc.cbLicInfo, (jint)lpStruct->cbLicInfo);
+	(*env)->SetIntField(env, lpObject, LICINFOFc.fRuntimeKeyAvail, (jint)lpStruct->fRuntimeKeyAvail);
+	(*env)->SetIntField(env, lpObject, LICINFOFc.fLicVerified, (jint)lpStruct->fLicVerified);
+}
+#endif /* NO_LICINFO */
+
+#ifndef NO_OLECMD
+typedef struct OLECMD_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cmdID, cmdf;
+} OLECMD_FID_CACHE;
+
+OLECMD_FID_CACHE OLECMDFc;
+
+void cacheOLECMDFids(JNIEnv *env, jobject lpObject)
+{
+	if (OLECMDFc.cached) return;
+	OLECMDFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	OLECMDFc.cmdID = (*env)->GetFieldID(env, OLECMDFc.clazz, "cmdID", "I");
+	OLECMDFc.cmdf = (*env)->GetFieldID(env, OLECMDFc.clazz, "cmdf", "I");
+	OLECMDFc.cached = 1;
+}
+
+OLECMD *getOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct)
+{
+	if (!OLECMDFc.cached) cacheOLECMDFids(env, lpObject);
+	lpStruct->cmdID = (*env)->GetIntField(env, lpObject, OLECMDFc.cmdID);
+	lpStruct->cmdf = (*env)->GetIntField(env, lpObject, OLECMDFc.cmdf);
+	return lpStruct;
+}
+
+void setOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct)
+{
+	if (!OLECMDFc.cached) cacheOLECMDFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, OLECMDFc.cmdID, (jint)lpStruct->cmdID);
+	(*env)->SetIntField(env, lpObject, OLECMDFc.cmdf, (jint)lpStruct->cmdf);
+}
+#endif /* NO_OLECMD */
+
+#ifndef NO_OLECMDTEXT
+typedef struct OLECMDTEXT_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cmdtextf, cwActual, cwBuf, rgwz;
+} OLECMDTEXT_FID_CACHE;
+
+OLECMDTEXT_FID_CACHE OLECMDTEXTFc;
+
+void cacheOLECMDTEXTFids(JNIEnv *env, jobject lpObject)
+{
+	if (OLECMDTEXTFc.cached) return;
+	OLECMDTEXTFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	OLECMDTEXTFc.cmdtextf = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "cmdtextf", "I");
+	OLECMDTEXTFc.cwActual = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "cwActual", "I");
+	OLECMDTEXTFc.cwBuf = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "cwBuf", "I");
+	OLECMDTEXTFc.rgwz = (*env)->GetFieldID(env, OLECMDTEXTFc.clazz, "rgwz", "S");
+	OLECMDTEXTFc.cached = 1;
+}
+
+OLECMDTEXT *getOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct)
+{
+	if (!OLECMDTEXTFc.cached) cacheOLECMDTEXTFids(env, lpObject);
+	lpStruct->cmdtextf = (*env)->GetIntField(env, lpObject, OLECMDTEXTFc.cmdtextf);
+	lpStruct->cwActual = (*env)->GetIntField(env, lpObject, OLECMDTEXTFc.cwActual);
+	lpStruct->cwBuf = (*env)->GetIntField(env, lpObject, OLECMDTEXTFc.cwBuf);
+	lpStruct->rgwz[0] = (*env)->GetShortField(env, lpObject, OLECMDTEXTFc.rgwz); /* SPECIAL */
+	return lpStruct;
+}
+
+void setOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct)
+{
+	if (!OLECMDTEXTFc.cached) cacheOLECMDTEXTFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, OLECMDTEXTFc.cmdtextf, (jint)lpStruct->cmdtextf);
+	(*env)->SetIntField(env, lpObject, OLECMDTEXTFc.cwActual, (jint)lpStruct->cwActual);
+	(*env)->SetIntField(env, lpObject, OLECMDTEXTFc.cwBuf, (jint)lpStruct->cwBuf);
+	(*env)->SetShortField(env, lpObject, OLECMDTEXTFc.rgwz, (jshort)lpStruct->rgwz[0]); /* SPECIAL */
+}
+#endif /* NO_OLECMDTEXT */
+
+#ifndef NO_OLEINPLACEFRAMEINFO
+typedef struct OLEINPLACEFRAMEINFO_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID cb, fMDIApp, hwndFrame, haccel, cAccelEntries;
+} OLEINPLACEFRAMEINFO_FID_CACHE;
+
+OLEINPLACEFRAMEINFO_FID_CACHE OLEINPLACEFRAMEINFOFc;
+
+void cacheOLEINPLACEFRAMEINFOFids(JNIEnv *env, jobject lpObject)
+{
+	if (OLEINPLACEFRAMEINFOFc.cached) return;
+	OLEINPLACEFRAMEINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	OLEINPLACEFRAMEINFOFc.cb = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "cb", "I");
+	OLEINPLACEFRAMEINFOFc.fMDIApp = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "fMDIApp", "I");
+	OLEINPLACEFRAMEINFOFc.hwndFrame = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "hwndFrame", "I");
+	OLEINPLACEFRAMEINFOFc.haccel = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "haccel", "I");
+	OLEINPLACEFRAMEINFOFc.cAccelEntries = (*env)->GetFieldID(env, OLEINPLACEFRAMEINFOFc.clazz, "cAccelEntries", "I");
+	OLEINPLACEFRAMEINFOFc.cached = 1;
+}
+
+OLEINPLACEFRAMEINFO *getOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct)
+{
+	if (!OLEINPLACEFRAMEINFOFc.cached) cacheOLEINPLACEFRAMEINFOFids(env, lpObject);
+	lpStruct->cb = (*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cb);
+	lpStruct->fMDIApp = (*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.fMDIApp);
+	lpStruct->hwndFrame = (HWND)(*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.hwndFrame);
+	lpStruct->haccel = (HACCEL)(*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.haccel);
+	lpStruct->cAccelEntries = (*env)->GetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cAccelEntries);
+	return lpStruct;
+}
+
+void setOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct)
+{
+	if (!OLEINPLACEFRAMEINFOFc.cached) cacheOLEINPLACEFRAMEINFOFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cb, (jint)lpStruct->cb);
+	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.fMDIApp, (jint)lpStruct->fMDIApp);
+	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.hwndFrame, (jint)lpStruct->hwndFrame);
+	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.haccel, (jint)lpStruct->haccel);
+	(*env)->SetIntField(env, lpObject, OLEINPLACEFRAMEINFOFc.cAccelEntries, (jint)lpStruct->cAccelEntries);
+}
+#endif /* NO_OLEINPLACEFRAMEINFO */
+
+#ifndef NO_STATSTG
+typedef struct STATSTG_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID pwcsName, type, cbSize, mtime_dwLowDateTime, mtime_dwHighDateTime, ctime_dwLowDateTime, ctime_dwHighDateTime, atime_dwLowDateTime, atime_dwHighDateTime, grfMode, grfLocksSupported, clsid_data1, clsid_data2, clsid_data3, clsid_b0, clsid_b1, clsid_b2, clsid_b3, clsid_b4, clsid_b5, clsid_b6, clsid_b7, grfStateBits, reserved;
+} STATSTG_FID_CACHE;
+
+STATSTG_FID_CACHE STATSTGFc;
+
+void cacheSTATSTGFids(JNIEnv *env, jobject lpObject)
+{
+	if (STATSTGFc.cached) return;
+	STATSTGFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	STATSTGFc.pwcsName = (*env)->GetFieldID(env, STATSTGFc.clazz, "pwcsName", "I");
+	STATSTGFc.type = (*env)->GetFieldID(env, STATSTGFc.clazz, "type", "I");
+	STATSTGFc.cbSize = (*env)->GetFieldID(env, STATSTGFc.clazz, "cbSize", "J");
+	STATSTGFc.mtime_dwLowDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "mtime_dwLowDateTime", "I");
+	STATSTGFc.mtime_dwHighDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "mtime_dwHighDateTime", "I");
+	STATSTGFc.ctime_dwLowDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "ctime_dwLowDateTime", "I");
+	STATSTGFc.ctime_dwHighDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "ctime_dwHighDateTime", "I");
+	STATSTGFc.atime_dwLowDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "atime_dwLowDateTime", "I");
+	STATSTGFc.atime_dwHighDateTime = (*env)->GetFieldID(env, STATSTGFc.clazz, "atime_dwHighDateTime", "I");
+	STATSTGFc.grfMode = (*env)->GetFieldID(env, STATSTGFc.clazz, "grfMode", "I");
+	STATSTGFc.grfLocksSupported = (*env)->GetFieldID(env, STATSTGFc.clazz, "grfLocksSupported", "I");
+	STATSTGFc.clsid_data1 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_data1", "I");
+	STATSTGFc.clsid_data2 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_data2", "S");
+	STATSTGFc.clsid_data3 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_data3", "S");
+	STATSTGFc.clsid_b0 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b0", "B");
+	STATSTGFc.clsid_b1 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b1", "B");
+	STATSTGFc.clsid_b2 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b2", "B");
+	STATSTGFc.clsid_b3 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b3", "B");
+	STATSTGFc.clsid_b4 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b4", "B");
+	STATSTGFc.clsid_b5 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b5", "B");
+	STATSTGFc.clsid_b6 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b6", "B");
+	STATSTGFc.clsid_b7 = (*env)->GetFieldID(env, STATSTGFc.clazz, "clsid_b7", "B");
+	STATSTGFc.grfStateBits = (*env)->GetFieldID(env, STATSTGFc.clazz, "grfStateBits", "I");
+	STATSTGFc.reserved = (*env)->GetFieldID(env, STATSTGFc.clazz, "reserved", "I");
+	STATSTGFc.cached = 1;
+}
+
+STATSTG *getSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct)
+{
+	if (!STATSTGFc.cached) cacheSTATSTGFids(env, lpObject);
+	lpStruct->pwcsName = (LPWSTR)(*env)->GetIntField(env, lpObject, STATSTGFc.pwcsName);
+	lpStruct->type = (*env)->GetIntField(env, lpObject, STATSTGFc.type);
+	lpStruct->cbSize.QuadPart = (*env)->GetLongField(env, lpObject, STATSTGFc.cbSize);
+	lpStruct->mtime.dwLowDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.mtime_dwLowDateTime);
+	lpStruct->mtime.dwHighDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.mtime_dwHighDateTime);
+	lpStruct->ctime.dwLowDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.ctime_dwLowDateTime);
+	lpStruct->ctime.dwHighDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.ctime_dwHighDateTime);
+	lpStruct->atime.dwLowDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.atime_dwLowDateTime);
+	lpStruct->atime.dwHighDateTime = (*env)->GetIntField(env, lpObject, STATSTGFc.atime_dwHighDateTime);
+	lpStruct->grfMode = (*env)->GetIntField(env, lpObject, STATSTGFc.grfMode);
+	lpStruct->grfLocksSupported = (*env)->GetIntField(env, lpObject, STATSTGFc.grfLocksSupported);
+	lpStruct->clsid.Data4[7] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b7);
+	lpStruct->clsid.Data4[6] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b6);
+	lpStruct->clsid.Data4[5] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b5);
+	lpStruct->clsid.Data4[4] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b4);
+	lpStruct->clsid.Data4[3] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b3);
+	lpStruct->clsid.Data4[2] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b2);
+	lpStruct->clsid.Data4[1] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b1);
+	lpStruct->clsid.Data4[0] = (*env)->GetByteField(env, lpObject, STATSTGFc.clsid_b0);
+	lpStruct->clsid.Data3 = (*env)->GetShortField(env, lpObject, STATSTGFc.clsid_data3);
+	lpStruct->clsid.Data2 = (*env)->GetShortField(env, lpObject, STATSTGFc.clsid_data2);
+	lpStruct->clsid.Data1 = (*env)->GetIntField(env, lpObject, STATSTGFc.clsid_data1);
+	lpStruct->grfStateBits = (*env)->GetIntField(env, lpObject, STATSTGFc.grfStateBits);
+	lpStruct->reserved = (*env)->GetIntField(env, lpObject, STATSTGFc.reserved);
+	return lpStruct;
+}
+
+void setSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct)
+{
+	if (!STATSTGFc.cached) cacheSTATSTGFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.pwcsName, (jint)lpStruct->pwcsName);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.type, (jint)lpStruct->type);
+	(*env)->SetLongField(env, lpObject, STATSTGFc.cbSize, (jlong)lpStruct->cbSize.QuadPart);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.mtime_dwLowDateTime, (jint)lpStruct->mtime.dwLowDateTime);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.mtime_dwHighDateTime, (jint)lpStruct->mtime.dwHighDateTime);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.ctime_dwLowDateTime, (jint)lpStruct->ctime.dwLowDateTime);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.ctime_dwHighDateTime, (jint)lpStruct->ctime.dwHighDateTime);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.atime_dwLowDateTime, (jint)lpStruct->atime.dwLowDateTime);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.atime_dwHighDateTime, (jint)lpStruct->atime.dwHighDateTime);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.grfMode, (jint)lpStruct->grfMode);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.grfLocksSupported, (jint)lpStruct->grfLocksSupported);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b7, lpStruct->clsid.Data4[7]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b6, lpStruct->clsid.Data4[6]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b5, lpStruct->clsid.Data4[5]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b4, lpStruct->clsid.Data4[4]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b3, lpStruct->clsid.Data4[3]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b2, lpStruct->clsid.Data4[2]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b1, lpStruct->clsid.Data4[1]);
+	(*env)->SetByteField(env, lpObject, STATSTGFc.clsid_b0, lpStruct->clsid.Data4[0]);
+	(*env)->SetShortField(env, lpObject, STATSTGFc.clsid_data3, lpStruct->clsid.Data3);
+	(*env)->SetShortField(env, lpObject, STATSTGFc.clsid_data2, lpStruct->clsid.Data2);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.clsid_data1, lpStruct->clsid.Data1);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.grfStateBits, (jint)lpStruct->grfStateBits);
+	(*env)->SetIntField(env, lpObject, STATSTGFc.reserved, (jint)lpStruct->reserved);
+}
+#endif /* NO_STATSTG */
+
+#ifndef NO_STGMEDIUM
+typedef struct STGMEDIUM_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID tymed, unionField, pUnkForRelease;
+} STGMEDIUM_FID_CACHE;
+
+STGMEDIUM_FID_CACHE STGMEDIUMFc;
+
+void cacheSTGMEDIUMFids(JNIEnv *env, jobject lpObject)
+{
+	if (STGMEDIUMFc.cached) return;
+	STGMEDIUMFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	STGMEDIUMFc.tymed = (*env)->GetFieldID(env, STGMEDIUMFc.clazz, "tymed", "I");
+	STGMEDIUMFc.unionField = (*env)->GetFieldID(env, STGMEDIUMFc.clazz, "unionField", "I");
+	STGMEDIUMFc.pUnkForRelease = (*env)->GetFieldID(env, STGMEDIUMFc.clazz, "pUnkForRelease", "I");
+	STGMEDIUMFc.cached = 1;
+}
+
+STGMEDIUM *getSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct)
+{
+	if (!STGMEDIUMFc.cached) cacheSTGMEDIUMFids(env, lpObject);
+	lpStruct->tymed = (*env)->GetIntField(env, lpObject, STGMEDIUMFc.tymed);
+	lpStruct->hGlobal = (HGLOBAL)(*env)->GetIntField(env, lpObject, STGMEDIUMFc.unionField);
+	lpStruct->pUnkForRelease = (IUnknown *)(*env)->GetIntField(env, lpObject, STGMEDIUMFc.pUnkForRelease);
+	return lpStruct;
+}
+
+void setSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct)
+{
+	if (!STGMEDIUMFc.cached) cacheSTGMEDIUMFids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, STGMEDIUMFc.tymed, (jint)lpStruct->tymed);
+	(*env)->SetIntField(env, lpObject, STGMEDIUMFc.unionField, (jint)lpStruct->hGlobal);
+	(*env)->SetIntField(env, lpObject, STGMEDIUMFc.pUnkForRelease, (jint)lpStruct->pUnkForRelease);
+}
+#endif /* NO_STGMEDIUM */
+
+#ifndef NO_TYPEATTR
+typedef struct TYPEATTR_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID guid_data1, guid_data2, guid_data3, guid_b0, guid_b1, guid_b2, guid_b3, guid_b4, guid_b5, guid_b6, guid_b7, lcid, dwReserved, memidConstructor, memidDestructor, lpstrSchema, cbSizeInstance, typekind, cFuncs, cVars, cImplTypes, cbSizeVft, cbAlignment, wTypeFlags, wMajorVerNum, wMinorVerNum, tdescAlias_unionField, tdescAlias_vt, idldescType_dwReserved, idldescType_wIDLFlags;
+} TYPEATTR_FID_CACHE;
+
+TYPEATTR_FID_CACHE TYPEATTRFc;
+
+void cacheTYPEATTRFids(JNIEnv *env, jobject lpObject)
+{
+	if (TYPEATTRFc.cached) return;
+	TYPEATTRFc.clazz = (*env)->GetObjectClass(env, lpObject);
+	TYPEATTRFc.guid_data1 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_data1", "I");
+	TYPEATTRFc.guid_data2 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_data2", "S");
+	TYPEATTRFc.guid_data3 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_data3", "S");
+	TYPEATTRFc.guid_b0 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b0", "B");
+	TYPEATTRFc.guid_b1 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b1", "B");
+	TYPEATTRFc.guid_b2 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b2", "B");
+	TYPEATTRFc.guid_b3 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b3", "B");
+	TYPEATTRFc.guid_b4 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b4", "B");
+	TYPEATTRFc.guid_b5 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b5", "B");
+	TYPEATTRFc.guid_b6 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b6", "B");
+	TYPEATTRFc.guid_b7 = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "guid_b7", "B");
+	TYPEATTRFc.lcid = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "lcid", "I");
+	TYPEATTRFc.dwReserved = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "dwReserved", "I");
+	TYPEATTRFc.memidConstructor = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "memidConstructor", "I");
+	TYPEATTRFc.memidDestructor = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "memidDestructor", "I");
+	TYPEATTRFc.lpstrSchema = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "lpstrSchema", "I");
+	TYPEATTRFc.cbSizeInstance = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cbSizeInstance", "I");
+	TYPEATTRFc.typekind = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "typekind", "I");
+	TYPEATTRFc.cFuncs = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cFuncs", "S");
+	TYPEATTRFc.cVars = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cVars", "S");
+	TYPEATTRFc.cImplTypes = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cImplTypes", "S");
+	TYPEATTRFc.cbSizeVft = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cbSizeVft", "S");
+	TYPEATTRFc.cbAlignment = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "cbAlignment", "S");
+	TYPEATTRFc.wTypeFlags = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "wTypeFlags", "S");
+	TYPEATTRFc.wMajorVerNum = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "wMajorVerNum", "S");
+	TYPEATTRFc.wMinorVerNum = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "wMinorVerNum", "S");
+	TYPEATTRFc.tdescAlias_unionField = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "tdescAlias_unionField", "I");
+	TYPEATTRFc.tdescAlias_vt = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "tdescAlias_vt", "S");
+	TYPEATTRFc.idldescType_dwReserved = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "idldescType_dwReserved", "I");
+	TYPEATTRFc.idldescType_wIDLFlags = (*env)->GetFieldID(env, TYPEATTRFc.clazz, "idldescType_wIDLFlags", "S");
+	TYPEATTRFc.cached = 1;
+}
+
+TYPEATTR *getTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct)
+{
+	if (!TYPEATTRFc.cached) cacheTYPEATTRFids(env, lpObject);
+	lpStruct->idldescType.wIDLFlags = (*env)->GetShortField(env, lpObject, TYPEATTRFc.idldescType_wIDLFlags);
+	lpStruct->idldescType.dwReserved = (*env)->GetIntField(env, lpObject, TYPEATTRFc.idldescType_dwReserved);
+	lpStruct->tdescAlias.vt = (*env)->GetShortField(env, lpObject, TYPEATTRFc.tdescAlias_vt);
+	lpStruct->tdescAlias.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR *)(*env)->GetIntField(env, lpObject, TYPEATTRFc.tdescAlias_unionField);
+	lpStruct->wMinorVerNum = (*env)->GetShortField(env, lpObject, TYPEATTRFc.wMinorVerNum);
+	lpStruct->wMajorVerNum = (*env)->GetShortField(env, lpObject, TYPEATTRFc.wMajorVerNum);
+	lpStruct->wTypeFlags = (*env)->GetShortField(env, lpObject, TYPEATTRFc.wTypeFlags);
+	lpStruct->cbAlignment = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cbAlignment);
+	lpStruct->cbSizeVft = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cbSizeVft);
+	lpStruct->cImplTypes = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cImplTypes);
+	lpStruct->cVars = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cVars);
+	lpStruct->cFuncs = (*env)->GetShortField(env, lpObject, TYPEATTRFc.cFuncs);
+	lpStruct->typekind = (*env)->GetIntField(env, lpObject, TYPEATTRFc.typekind);
+	lpStruct->cbSizeInstance = (*env)->GetIntField(env, lpObject, TYPEATTRFc.cbSizeInstance);
+	lpStruct->lpstrSchema = (OLECHAR FAR *)(*env)->GetIntField(env, lpObject, TYPEATTRFc.lpstrSchema);
+	lpStruct->memidDestructor = (*env)->GetIntField(env, lpObject, TYPEATTRFc.memidDestructor);
+	lpStruct->memidConstructor = (*env)->GetIntField(env, lpObject, TYPEATTRFc.memidConstructor);
+	lpStruct->dwReserved = (*env)->GetIntField(env, lpObject, TYPEATTRFc.dwReserved);
+	lpStruct->lcid = (*env)->GetIntField(env, lpObject, TYPEATTRFc.lcid);
+	lpStruct->guid.Data4[7] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b7);
+	lpStruct->guid.Data4[6] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b6);
+	lpStruct->guid.Data4[5] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b5);
+	lpStruct->guid.Data4[4] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b4);
+	lpStruct->guid.Data4[3] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b3);
+	lpStruct->guid.Data4[2] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b2);
+	lpStruct->guid.Data4[1] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b1);
+	lpStruct->guid.Data4[0] = (*env)->GetByteField(env, lpObject, TYPEATTRFc.guid_b0);
+	lpStruct->guid.Data3 = (*env)->GetShortField(env, lpObject, TYPEATTRFc.guid_data3);
+	lpStruct->guid.Data2 = (*env)->GetShortField(env, lpObject, TYPEATTRFc.guid_data2);
+	lpStruct->guid.Data1 = (*env)->GetIntField(env, lpObject, TYPEATTRFc.guid_data1);
+	return lpStruct;
+}
+
+void setTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct)
+{
+	if (!TYPEATTRFc.cached) cacheTYPEATTRFids(env, lpObject);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.idldescType_wIDLFlags, lpStruct->idldescType.wIDLFlags);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.idldescType_dwReserved, lpStruct->idldescType.dwReserved);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.tdescAlias_vt, lpStruct->tdescAlias.vt);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.tdescAlias_unionField, (jint)lpStruct->tdescAlias.lptdesc);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.wMinorVerNum, lpStruct->wMinorVerNum);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.wMajorVerNum, lpStruct->wMajorVerNum);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.wTypeFlags, lpStruct->wTypeFlags);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cbAlignment, lpStruct->cbAlignment);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cbSizeVft, lpStruct->cbSizeVft);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cImplTypes, lpStruct->cImplTypes);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cVars, lpStruct->cVars);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.cFuncs, lpStruct->cFuncs);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.typekind, lpStruct->typekind);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.cbSizeInstance, lpStruct->cbSizeInstance);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.lpstrSchema, (jint)lpStruct->lpstrSchema);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.memidDestructor, lpStruct->memidDestructor);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.memidConstructor, lpStruct->memidConstructor);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.dwReserved, lpStruct->dwReserved);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.lcid, lpStruct->lcid);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b7, lpStruct->guid.Data4[7]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b6, lpStruct->guid.Data4[6]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b5, lpStruct->guid.Data4[5]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b4, lpStruct->guid.Data4[4]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b3, lpStruct->guid.Data4[3]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b2, lpStruct->guid.Data4[2]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b1, lpStruct->guid.Data4[1]);
+	(*env)->SetByteField(env, lpObject, TYPEATTRFc.guid_b0, lpStruct->guid.Data4[0]);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.guid_data3, lpStruct->guid.Data3);
+	(*env)->SetShortField(env, lpObject, TYPEATTRFc.guid_data2, lpStruct->guid.Data2);
+	(*env)->SetIntField(env, lpObject, TYPEATTRFc.guid_data1, lpStruct->guid.Data1);
+}
+#endif /* NO_TYPEATTR */
+
+#ifndef NO_VARDESC1
+typedef struct VARDESC1_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID memid, lpstrSchema, unionField, elemdescVar_tdesc_union, elemdescVar_tdesc_vt, elemdescVar_paramdesc_pparamdescex, elemdescVar_paramdesc_wParamFlags, wVarFlags, varkind;
+} VARDESC1_FID_CACHE;
+
+VARDESC1_FID_CACHE VARDESC1Fc;
+
+void cacheVARDESC1Fids(JNIEnv *env, jobject lpObject)
+{
+	if (VARDESC1Fc.cached) return;
+	VARDESC1Fc.clazz = (*env)->GetObjectClass(env, lpObject);
+	VARDESC1Fc.memid = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "memid", "I");
+	VARDESC1Fc.lpstrSchema = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "lpstrSchema", "I");
+	VARDESC1Fc.unionField = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "unionField", "I");
+	VARDESC1Fc.elemdescVar_tdesc_union = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_tdesc_union", "I");
+	VARDESC1Fc.elemdescVar_tdesc_vt = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_tdesc_vt", "S");
+	VARDESC1Fc.elemdescVar_paramdesc_pparamdescex = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_paramdesc_pparamdescex", "I");
+	VARDESC1Fc.elemdescVar_paramdesc_wParamFlags = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "elemdescVar_paramdesc_wParamFlags", "S");
+	VARDESC1Fc.wVarFlags = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "wVarFlags", "S");
+	VARDESC1Fc.varkind = (*env)->GetFieldID(env, VARDESC1Fc.clazz, "varkind", "I");
+	VARDESC1Fc.cached = 1;
+}
+
+VARDESC *getVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)
+{
+	if (!VARDESC1Fc.cached) cacheVARDESC1Fids(env, lpObject);
+	lpStruct->varkind = (*env)->GetIntField(env, lpObject, VARDESC1Fc.varkind);
+	lpStruct->wVarFlags = (*env)->GetShortField(env, lpObject, VARDESC1Fc.wVarFlags);
+	lpStruct->elemdescVar.paramdesc.wParamFlags = (*env)->GetShortField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_wParamFlags);
+	lpStruct->elemdescVar.paramdesc.pparamdescex = (LPPARAMDESCEX)(*env)->GetIntField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_pparamdescex);
+	lpStruct->elemdescVar.tdesc.vt = (*env)->GetShortField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_vt);
+	lpStruct->elemdescVar.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR *)(*env)->GetIntField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_union);
+	lpStruct->oInst = (*env)->GetIntField(env, lpObject, VARDESC1Fc.unionField);
+	lpStruct->lpstrSchema = (OLECHAR FAR *)(*env)->GetIntField(env, lpObject, VARDESC1Fc.lpstrSchema);
+	lpStruct->memid = (*env)->GetIntField(env, lpObject, VARDESC1Fc.memid);
+	return lpStruct;
+}
+
+void setVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)
+{
+	if (!VARDESC1Fc.cached) cacheVARDESC1Fids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, VARDESC1Fc.varkind, lpStruct->varkind);
+	(*env)->SetShortField(env, lpObject, VARDESC1Fc.wVarFlags, lpStruct->wVarFlags);
+	(*env)->SetShortField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_wParamFlags, lpStruct->elemdescVar.paramdesc.wParamFlags);
+	(*env)->SetIntField(env, lpObject, VARDESC1Fc.elemdescVar_paramdesc_pparamdescex, (jint)lpStruct->elemdescVar.paramdesc.pparamdescex);
+	(*env)->SetShortField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_vt, lpStruct->elemdescVar.tdesc.vt);
+	(*env)->SetIntField(env, lpObject, VARDESC1Fc.elemdescVar_tdesc_union, (jint)lpStruct->elemdescVar.tdesc.lptdesc);
+	(*env)->SetIntField(env, lpObject, VARDESC1Fc.unionField, lpStruct->oInst);
+	(*env)->SetIntField(env, lpObject, VARDESC1Fc.lpstrSchema, (jint)lpStruct->lpstrSchema);
+	(*env)->SetIntField(env, lpObject, VARDESC1Fc.memid, lpStruct->memid);
+}
+#endif /* NO_VARDESC1 */
+
+#ifndef NO_VARDESC2
+typedef struct VARDESC2_FID_CACHE {
+	int cached;
+	jclass clazz;
+	jfieldID memid, lpstrSchema, unionField, elemdescVar_tdesc_union, elemdescVar_tdesc_vt, elemdescFunc_idldesc_dwReserved, elemdescFunc_idldesc_wIDLFlags, wVarFlags, varkind;
+} VARDESC2_FID_CACHE;
+
+VARDESC2_FID_CACHE VARDESC2Fc;
+
+void cacheVARDESC2Fids(JNIEnv *env, jobject lpObject)
+{
+	if (VARDESC2Fc.cached) return;
+	VARDESC2Fc.clazz = (*env)->GetObjectClass(env, lpObject);
+	VARDESC2Fc.memid = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "memid", "I");
+	VARDESC2Fc.lpstrSchema = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "lpstrSchema", "I");
+	VARDESC2Fc.unionField = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "unionField", "I");
+	VARDESC2Fc.elemdescVar_tdesc_union = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescVar_tdesc_union", "I");
+	VARDESC2Fc.elemdescVar_tdesc_vt = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescVar_tdesc_vt", "S");
+	VARDESC2Fc.elemdescFunc_idldesc_dwReserved = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescFunc_idldesc_dwReserved", "I");
+	VARDESC2Fc.elemdescFunc_idldesc_wIDLFlags = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "elemdescFunc_idldesc_wIDLFlags", "S");
+	VARDESC2Fc.wVarFlags = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "wVarFlags", "S");
+	VARDESC2Fc.varkind = (*env)->GetFieldID(env, VARDESC2Fc.clazz, "varkind", "I");
+	VARDESC2Fc.cached = 1;
+}
+
+VARDESC *getVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)
+{
+	if (!VARDESC2Fc.cached) cacheVARDESC2Fids(env, lpObject);
+	lpStruct->varkind = (*env)->GetIntField(env, lpObject, VARDESC2Fc.varkind);
+	lpStruct->wVarFlags = (*env)->GetShortField(env, lpObject, VARDESC2Fc.wVarFlags);
+	lpStruct->elemdescVar.idldesc.wIDLFlags = (*env)->GetShortField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_wIDLFlags);
+	lpStruct->elemdescVar.idldesc.dwReserved = (*env)->GetIntField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_dwReserved);
+	lpStruct->elemdescVar.tdesc.vt = (*env)->GetShortField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_vt);
+	lpStruct->elemdescVar.tdesc.lptdesc = (struct FARSTRUCT tagTYPEDESC FAR *)(*env)->GetIntField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_union);
+	lpStruct->oInst = (*env)->GetIntField(env, lpObject, VARDESC2Fc.unionField);
+	lpStruct->lpstrSchema = (OLECHAR FAR *)(*env)->GetIntField(env, lpObject, VARDESC2Fc.lpstrSchema);
+	lpStruct->memid = (*env)->GetIntField(env, lpObject, VARDESC2Fc.memid);
+	return lpStruct;
+}
+
+void setVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct)
+{
+	if (!VARDESC2Fc.cached) cacheVARDESC2Fids(env, lpObject);
+	(*env)->SetIntField(env, lpObject, VARDESC2Fc.varkind, lpStruct->varkind);
+	(*env)->SetShortField(env, lpObject, VARDESC2Fc.wVarFlags, lpStruct->wVarFlags);
+	(*env)->SetShortField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_wIDLFlags, lpStruct->elemdescVar.idldesc.wIDLFlags);
+	(*env)->SetIntField(env, lpObject, VARDESC2Fc.elemdescFunc_idldesc_dwReserved, lpStruct->elemdescVar.idldesc.dwReserved);
+	(*env)->SetShortField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_vt, lpStruct->elemdescVar.tdesc.vt);
+	(*env)->SetIntField(env, lpObject, VARDESC2Fc.elemdescVar_tdesc_union, (jint)lpStruct->elemdescVar.tdesc.lptdesc);
+	(*env)->SetIntField(env, lpObject, VARDESC2Fc.unionField, lpStruct->oInst);
+	(*env)->SetIntField(env, lpObject, VARDESC2Fc.lpstrSchema, (jint)lpStruct->lpstrSchema);
+	(*env)->SetIntField(env, lpObject, VARDESC2Fc.memid, lpStruct->memid);
+}
+#endif /* NO_VARDESC2 */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.h b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.h
index 066a4d6..16a103d 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/com_structs.h
@@ -1,121 +1,121 @@
-/*******************************************************************************

-* Copyright (c) 2000, 2003 IBM Corporation and others.

-* All rights reserved. This program and the accompanying materials

-* are made available under the terms of the Common Public License v1.0

-* which accompanies this distribution, and is available at

-* http://www.eclipse.org/legal/cpl-v10.html

-* 

-* Contributors:

-*     IBM Corporation - initial API and implementation

-*******************************************************************************/

-

-#include "os_structs.h"

-

-/* used to cast Vtabl entries */

-

-/* P_OLE_FN_x typedef for an OLE function returning int with x params*/

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_9)(jint, jint, jint, jint, jint, jint, jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_8)(jint, jint, jint, jint, jint, jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_7)(jint, jint, jint, jint, jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_6)(jint, jint, jint, jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_5)(jint, jint, jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_4)(jint, jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_3)(jint, jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_2)(jint, jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_1)(jint);

-typedef jint (STDMETHODCALLTYPE *P_OLE_FN_0)(void);

-

-#ifndef NO_CAUUID

-CAUUID *getCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct);

-void setCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct);

-#endif /* NO_CAUUID */

-

-#ifndef NO_CONTROLINFO

-CONTROLINFO *getCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct);

-void setCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct);

-#endif /* NO_CONTROLINFO */

-

-#ifndef NO_COSERVERINFO

-COSERVERINFO *getCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct);

-void setCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct);

-#endif /* NO_COSERVERINFO */

-

-#ifndef NO_DISPPARAMS

-DISPPARAMS *getDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct);

-void setDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct);

-#endif /* NO_DISPPARAMS */

-

-#ifndef NO_DVTARGETDEVICE

-DVTARGETDEVICE *getDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct);

-void setDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct);

-#endif /* NO_DVTARGETDEVICE */

-

-#ifndef NO_EXCEPINFO

-EXCEPINFO *getEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct);

-void setEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct);

-#endif /* NO_EXCEPINFO */

-

-#ifndef NO_FORMATETC

-FORMATETC *getFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct);

-void setFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct);

-#endif /* NO_FORMATETC */

-

-#ifndef NO_FUNCDESC1

-FUNCDESC *getFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);

-void setFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);

-#endif /* NO_FUNCDESC1 */

-

-#ifndef NO_FUNCDESC2

-FUNCDESC *getFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);

-void setFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);

-#endif /* NO_FUNCDESC2 */

-

-#ifndef NO_GUID

-GUID *getGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct);

-void setGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct);

-#endif /* NO_GUID */

-

-#ifndef NO_LICINFO

-LICINFO *getLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct);

-void setLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct);

-#endif /* NO_LICINFO */

-

-#ifndef NO_OLECMD

-OLECMD *getOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct);

-void setOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct);

-#endif /* NO_OLECMD */

-

-#ifndef NO_OLECMDTEXT

-OLECMDTEXT *getOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct);

-void setOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct);

-#endif /* NO_OLECMDTEXT */

-

-#ifndef NO_OLEINPLACEFRAMEINFO

-OLEINPLACEFRAMEINFO *getOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct);

-void setOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct);

-#endif /* NO_OLEINPLACEFRAMEINFO */

-

-#ifndef NO_STATSTG

-STATSTG *getSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct);

-void setSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct);

-#endif /* NO_STATSTG */

-

-#ifndef NO_STGMEDIUM

-STGMEDIUM *getSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct);

-void setSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct);

-#endif /* NO_STGMEDIUM */

-

-#ifndef NO_TYPEATTR

-TYPEATTR *getTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct);

-void setTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct);

-#endif /* NO_TYPEATTR */

-

-#ifndef NO_VARDESC1

-VARDESC *getVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);

-void setVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);

-#endif /* NO_VARDESC1 */

-

-#ifndef NO_VARDESC2

-VARDESC *getVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);

-void setVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);

-#endif /* NO_VARDESC2 */

+/*******************************************************************************
+* Copyright (c) 2000, 2003 IBM Corporation and others.
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Common Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/cpl-v10.html
+* 
+* Contributors:
+*     IBM Corporation - initial API and implementation
+*******************************************************************************/
+
+#include "os_structs.h"
+
+/* used to cast Vtabl entries */
+
+/* P_OLE_FN_x typedef for an OLE function returning int with x params*/
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_9)(jint, jint, jint, jint, jint, jint, jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_8)(jint, jint, jint, jint, jint, jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_7)(jint, jint, jint, jint, jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_6)(jint, jint, jint, jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_5)(jint, jint, jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_4)(jint, jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_3)(jint, jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_2)(jint, jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_1)(jint);
+typedef jint (STDMETHODCALLTYPE *P_OLE_FN_0)(void);
+
+#ifndef NO_CAUUID
+CAUUID *getCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct);
+void setCAUUIDFields(JNIEnv *env, jobject lpObject, CAUUID *lpStruct);
+#endif /* NO_CAUUID */
+
+#ifndef NO_CONTROLINFO
+CONTROLINFO *getCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct);
+void setCONTROLINFOFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpStruct);
+#endif /* NO_CONTROLINFO */
+
+#ifndef NO_COSERVERINFO
+COSERVERINFO *getCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct);
+void setCOSERVERINFOFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpStruct);
+#endif /* NO_COSERVERINFO */
+
+#ifndef NO_DISPPARAMS
+DISPPARAMS *getDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct);
+void setDISPPARAMSFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpStruct);
+#endif /* NO_DISPPARAMS */
+
+#ifndef NO_DVTARGETDEVICE
+DVTARGETDEVICE *getDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct);
+void setDVTARGETDEVICEFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpStruct);
+#endif /* NO_DVTARGETDEVICE */
+
+#ifndef NO_EXCEPINFO
+EXCEPINFO *getEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct);
+void setEXCEPINFOFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpStruct);
+#endif /* NO_EXCEPINFO */
+
+#ifndef NO_FORMATETC
+FORMATETC *getFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct);
+void setFORMATETCFields(JNIEnv *env, jobject lpObject, FORMATETC *lpStruct);
+#endif /* NO_FORMATETC */
+
+#ifndef NO_FUNCDESC1
+FUNCDESC *getFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);
+void setFUNCDESC1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);
+#endif /* NO_FUNCDESC1 */
+
+#ifndef NO_FUNCDESC2
+FUNCDESC *getFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);
+void setFUNCDESC2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpStruct);
+#endif /* NO_FUNCDESC2 */
+
+#ifndef NO_GUID
+GUID *getGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct);
+void setGUIDFields(JNIEnv *env, jobject lpObject, GUID *lpStruct);
+#endif /* NO_GUID */
+
+#ifndef NO_LICINFO
+LICINFO *getLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct);
+void setLICINFOFields(JNIEnv *env, jobject lpObject, LICINFO *lpStruct);
+#endif /* NO_LICINFO */
+
+#ifndef NO_OLECMD
+OLECMD *getOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct);
+void setOLECMDFields(JNIEnv *env, jobject lpObject, OLECMD *lpStruct);
+#endif /* NO_OLECMD */
+
+#ifndef NO_OLECMDTEXT
+OLECMDTEXT *getOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct);
+void setOLECMDTEXTFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpStruct);
+#endif /* NO_OLECMDTEXT */
+
+#ifndef NO_OLEINPLACEFRAMEINFO
+OLEINPLACEFRAMEINFO *getOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct);
+void setOLEINPLACEFRAMEINFOFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpStruct);
+#endif /* NO_OLEINPLACEFRAMEINFO */
+
+#ifndef NO_STATSTG
+STATSTG *getSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct);
+void setSTATSTGFields(JNIEnv *env, jobject lpObject, STATSTG *lpStruct);
+#endif /* NO_STATSTG */
+
+#ifndef NO_STGMEDIUM
+STGMEDIUM *getSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct);
+void setSTGMEDIUMFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStruct);
+#endif /* NO_STGMEDIUM */
+
+#ifndef NO_TYPEATTR
+TYPEATTR *getTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct);
+void setTYPEATTRFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpStruct);
+#endif /* NO_TYPEATTR */
+
+#ifndef NO_VARDESC1
+VARDESC *getVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);
+void setVARDESC1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);
+#endif /* NO_VARDESC1 */
+
+#ifndef NO_VARDESC2
+VARDESC *getVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);
+void setVARDESC2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpStruct);
+#endif /* NO_VARDESC2 */
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c
index 2d870ef..bd5ea9b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c
@@ -1,6998 +1,6998 @@
-/*******************************************************************************

-* Copyright (c) 2000, 2003 IBM Corporation and others.

-* All rights reserved. This program and the accompanying materials

-* are made available under the terms of the Common Public License v1.0

-* which accompanies this distribution, and is available at

-* http://www.eclipse.org/legal/cpl-v10.html

-* 

-* Contributors:

-*     IBM Corporation - initial API and implementation

-*******************************************************************************/

-

-#include "swt.h"

-#include "os_structs.h"

-

-#define OS_NATIVE(func) Java_org_eclipse_swt_internal_win32_OS_##func

-

-#ifndef NO_AbortDoc

-JNIEXPORT jint JNICALL OS_NATIVE(AbortDoc)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "AbortDoc\n")

-	rc = (jint)AbortDoc((HDC)arg0);

-	NATIVE_EXIT(env, that, "AbortDoc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ActivateKeyboardLayout

-JNIEXPORT jint JNICALL OS_NATIVE(ActivateKeyboardLayout)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ActivateKeyboardLayout\n")

-	rc = (jint)ActivateKeyboardLayout((HKL)arg0, arg1);

-	NATIVE_EXIT(env, that, "ActivateKeyboardLayout\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_AdjustWindowRectEx

-JNIEXPORT jboolean JNICALL OS_NATIVE(AdjustWindowRectEx)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jboolean arg2, jint arg3)

-{

-	RECT _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "AdjustWindowRectEx\n")

-	if (arg0) lparg0 = getRECTFields(env, arg0, &_arg0);

-	rc = (jboolean)AdjustWindowRectEx(lparg0, arg1, arg2, arg3);

-	if (arg0) setRECTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "AdjustWindowRectEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_Arc

-JNIEXPORT jboolean JNICALL OS_NATIVE(Arc)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "Arc\n")

-	rc = (jboolean)Arc((HDC)arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);

-	NATIVE_EXIT(env, that, "Arc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_BeginDeferWindowPos

-JNIEXPORT jint JNICALL OS_NATIVE(BeginDeferWindowPos)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "BeginDeferWindowPos\n")

-	rc = (jint)BeginDeferWindowPos(arg0);

-	NATIVE_EXIT(env, that, "BeginDeferWindowPos\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_BeginPaint

-JNIEXPORT jint JNICALL OS_NATIVE(BeginPaint)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	PAINTSTRUCT _arg1, *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "BeginPaint\n")

-	if (arg1) lparg1 = getPAINTSTRUCTFields(env, arg1, &_arg1);

-	rc = (jint)BeginPaint((HWND)arg0, lparg1);

-	if (arg1) setPAINTSTRUCTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "BeginPaint\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_BitBlt

-JNIEXPORT jboolean JNICALL OS_NATIVE(BitBlt)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "BitBlt\n")

-	rc = (jboolean)BitBlt((HDC)arg0, arg1, arg2, arg3, arg4, (HDC)arg5, arg6, arg7, arg8);

-	NATIVE_EXIT(env, that, "BitBlt\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_BringWindowToTop

-JNIEXPORT jboolean JNICALL OS_NATIVE(BringWindowToTop)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "BringWindowToTop\n")

-	rc = (jboolean)BringWindowToTop((HWND)arg0);

-	NATIVE_EXIT(env, that, "BringWindowToTop\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CallNextHookEx

-JNIEXPORT jint JNICALL OS_NATIVE(CallNextHookEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CallNextHookEx\n")

-	rc = (jint)CallNextHookEx((HHOOK)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "CallNextHookEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CallWindowProcA

-JNIEXPORT jint JNICALL OS_NATIVE(CallWindowProcA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CallWindowProcA\n")

-	rc = (jint)CallWindowProcA((WNDPROC)arg0, (HWND)arg1, arg2, arg3, arg4);

-	NATIVE_EXIT(env, that, "CallWindowProcA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CallWindowProcW

-JNIEXPORT jint JNICALL OS_NATIVE(CallWindowProcW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CallWindowProcW\n")

-	rc = (jint)CallWindowProcW((WNDPROC)arg0, (HWND)arg1, arg2, arg3, arg4);

-	NATIVE_EXIT(env, that, "CallWindowProcW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CharLowerA

-JNIEXPORT jshort JNICALL OS_NATIVE(CharLowerA)

-	(JNIEnv *env, jclass that, jshort arg0)

-{

-	jshort rc;

-	NATIVE_ENTER(env, that, "CharLowerA\n")

-	rc = (jshort)CharLowerA((LPSTR)arg0);

-	NATIVE_EXIT(env, that, "CharLowerA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CharLowerW

-JNIEXPORT jshort JNICALL OS_NATIVE(CharLowerW)

-	(JNIEnv *env, jclass that, jshort arg0)

-{

-	jshort rc;

-	NATIVE_ENTER(env, that, "CharLowerW\n")

-	rc = (jshort)CharLowerW((LPWSTR)arg0);

-	NATIVE_EXIT(env, that, "CharLowerW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CharUpperA

-JNIEXPORT jshort JNICALL OS_NATIVE(CharUpperA)

-	(JNIEnv *env, jclass that, jshort arg0)

-{

-	jshort rc;

-	NATIVE_ENTER(env, that, "CharUpperA\n")

-	rc = (jshort)CharUpperA((LPSTR)arg0);

-	NATIVE_EXIT(env, that, "CharUpperA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CharUpperW

-JNIEXPORT jshort JNICALL OS_NATIVE(CharUpperW)

-	(JNIEnv *env, jclass that, jshort arg0)

-{

-	jshort rc;

-	NATIVE_ENTER(env, that, "CharUpperW\n")

-	rc = (jshort)CharUpperW((LPWSTR)arg0);

-	NATIVE_EXIT(env, that, "CharUpperW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CheckMenuItem

-JNIEXPORT jboolean JNICALL OS_NATIVE(CheckMenuItem)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CheckMenuItem\n")

-	rc = (jboolean)CheckMenuItem((HMENU)arg0, (UINT)arg1, (UINT)arg2);

-	NATIVE_EXIT(env, that, "CheckMenuItem\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ChooseColorA

-JNIEXPORT jboolean JNICALL OS_NATIVE(ChooseColorA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	CHOOSECOLOR _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ChooseColorA\n")

-	if (arg0) lparg0 = getCHOOSECOLORFields(env, arg0, &_arg0);

-	rc = (jboolean)ChooseColorA(lparg0);

-	if (arg0) setCHOOSECOLORFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "ChooseColorA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ChooseColorW

-JNIEXPORT jboolean JNICALL OS_NATIVE(ChooseColorW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	CHOOSECOLOR _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ChooseColorW\n")

-	if (arg0) lparg0 = getCHOOSECOLORFields(env, arg0, &_arg0);

-	rc = (jboolean)ChooseColorW((LPCHOOSECOLORW)lparg0);

-	if (arg0) setCHOOSECOLORFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "ChooseColorW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ChooseFontA

-JNIEXPORT jboolean JNICALL OS_NATIVE(ChooseFontA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	CHOOSEFONT _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ChooseFontA\n")

-	if (arg0) lparg0 = getCHOOSEFONTFields(env, arg0, &_arg0);

-	rc = (jboolean)ChooseFontA(lparg0);

-	if (arg0) setCHOOSEFONTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "ChooseFontA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ChooseFontW

-JNIEXPORT jboolean JNICALL OS_NATIVE(ChooseFontW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	CHOOSEFONT _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ChooseFontW\n")

-	if (arg0) lparg0 = getCHOOSEFONTFields(env, arg0, &_arg0);

-	rc = (jboolean)ChooseFontW((LPCHOOSEFONTW)lparg0);

-	if (arg0) setCHOOSEFONTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "ChooseFontW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ClientToScreen

-JNIEXPORT jboolean JNICALL OS_NATIVE(ClientToScreen)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	POINT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ClientToScreen\n")

-	if (arg1) lparg1 = getPOINTFields(env, arg1, &_arg1);

-	rc = (jboolean)ClientToScreen((HWND)arg0, lparg1);

-	if (arg1) setPOINTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ClientToScreen\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CloseClipboard

-JNIEXPORT jboolean JNICALL OS_NATIVE(CloseClipboard)

-	(JNIEnv *env, jclass that)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CloseClipboard\n")

-	rc = (jboolean)CloseClipboard();

-	NATIVE_EXIT(env, that, "CloseClipboard\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CombineRgn

-JNIEXPORT jint JNICALL OS_NATIVE(CombineRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CombineRgn\n")

-	rc = (jint)CombineRgn((HRGN)arg0, (HRGN)arg1, (HRGN)arg2, arg3);

-	NATIVE_EXIT(env, that, "CombineRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommDlgExtendedError

-JNIEXPORT jint JNICALL OS_NATIVE(CommDlgExtendedError)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CommDlgExtendedError\n")

-	rc = (jint)CommDlgExtendedError();

-	NATIVE_EXIT(env, that, "CommDlgExtendedError\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommandBar_1AddAdornments

-JNIEXPORT jboolean JNICALL OS_NATIVE(CommandBar_1AddAdornments)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CommandBar_1AddAdornments\n")

-	rc = (jboolean)CommandBar_AddAdornments((HWND)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "CommandBar_1AddAdornments\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommandBar_1Create

-JNIEXPORT jint JNICALL OS_NATIVE(CommandBar_1Create)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CommandBar_1Create\n")

-	rc = (jint)CommandBar_Create((HINSTANCE)arg0, (HWND)arg1, arg2);

-	NATIVE_EXIT(env, that, "CommandBar_1Create\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommandBar_1Destroy

-JNIEXPORT void JNICALL OS_NATIVE(CommandBar_1Destroy)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	NATIVE_ENTER(env, that, "CommandBar_1Destroy\n")

-	CommandBar_Destroy((HWND)arg0);

-	NATIVE_EXIT(env, that, "CommandBar_1Destroy\n")

-}

-#endif

-

-#ifndef NO_CommandBar_1DrawMenuBar

-JNIEXPORT jboolean JNICALL OS_NATIVE(CommandBar_1DrawMenuBar)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CommandBar_1DrawMenuBar\n")

-	rc = (jboolean)CommandBar_DrawMenuBar((HWND)arg0, (WORD)arg1);

-	NATIVE_EXIT(env, that, "CommandBar_1DrawMenuBar\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommandBar_1Height

-JNIEXPORT jint JNICALL OS_NATIVE(CommandBar_1Height)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CommandBar_1Height\n")

-	rc = (jint)CommandBar_Height((HWND)arg0);

-	NATIVE_EXIT(env, that, "CommandBar_1Height\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommandBar_1InsertMenubarEx

-JNIEXPORT jboolean JNICALL OS_NATIVE(CommandBar_1InsertMenubarEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CommandBar_1InsertMenubarEx\n")

-	rc = (jboolean)CommandBar_InsertMenubarEx((HWND)arg0, (HINSTANCE)arg1, (LPTSTR)arg2, (WORD)arg3);

-	NATIVE_EXIT(env, that, "CommandBar_1InsertMenubarEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CommandBar_1Show

-JNIEXPORT jboolean JNICALL OS_NATIVE(CommandBar_1Show)

-	(JNIEnv *env, jclass that, jint arg0, jboolean arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CommandBar_1Show\n")

-	rc = (jboolean)CommandBar_Show((HWND)arg0, (BOOL)arg1);

-	NATIVE_EXIT(env, that, "CommandBar_1Show\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CopyImage

-JNIEXPORT jint JNICALL OS_NATIVE(CopyImage)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CopyImage\n")

-	rc = (jint)CopyImage((HANDLE)arg0, arg1, arg2, arg3, arg4);

-	NATIVE_EXIT(env, that, "CopyImage\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateAcceleratorTableA

-JNIEXPORT jint JNICALL OS_NATIVE(CreateAcceleratorTableA)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jint arg1)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateAcceleratorTableA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)CreateAcceleratorTableA((LPACCEL)lparg0, arg1);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "CreateAcceleratorTableA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateAcceleratorTableW

-JNIEXPORT jint JNICALL OS_NATIVE(CreateAcceleratorTableW)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jint arg1)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateAcceleratorTableW\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)CreateAcceleratorTableW((LPACCEL)lparg0, arg1);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "CreateAcceleratorTableW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateBitmap

-JNIEXPORT jint JNICALL OS_NATIVE(CreateBitmap)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jbyteArray arg4)

-{

-	jbyte *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateBitmap\n")

-	if (arg4) lparg4 = (*env)->GetByteArrayElements(env, arg4, NULL);

-	rc = (jint)CreateBitmap(arg0, arg1, arg2, arg3, (CONST VOID *)lparg4);

-	if (arg4) (*env)->ReleaseByteArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "CreateBitmap\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateCaret

-JNIEXPORT jboolean JNICALL OS_NATIVE(CreateCaret)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "CreateCaret\n")

-	rc = (jboolean)CreateCaret((HWND)arg0, (HBITMAP)arg1, arg2, arg3);

-	NATIVE_EXIT(env, that, "CreateCaret\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateCompatibleBitmap

-JNIEXPORT jint JNICALL OS_NATIVE(CreateCompatibleBitmap)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateCompatibleBitmap\n")

-	rc = (jint)CreateCompatibleBitmap((HDC)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "CreateCompatibleBitmap\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateCompatibleDC

-JNIEXPORT jint JNICALL OS_NATIVE(CreateCompatibleDC)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateCompatibleDC\n")

-	rc = (jint)CreateCompatibleDC((HDC)arg0);

-	NATIVE_EXIT(env, that, "CreateCompatibleDC\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateCursor

-JNIEXPORT jint JNICALL OS_NATIVE(CreateCursor)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jbyteArray arg5, jbyteArray arg6)

-{

-	jbyte *lparg5=NULL;

-	jbyte *lparg6=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateCursor\n")

-	if (arg5) lparg5 = (*env)->GetByteArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetByteArrayElements(env, arg6, NULL);

-	rc = (jint)CreateCursor((HINSTANCE)arg0, arg1, arg2, arg3, arg4, (CONST VOID *)lparg5, (CONST VOID *)lparg6);

-	if (arg5) (*env)->ReleaseByteArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseByteArrayElements(env, arg6, lparg6, 0);

-	NATIVE_EXIT(env, that, "CreateCursor\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateDCA

-JNIEXPORT jint JNICALL OS_NATIVE(CreateDCA)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jbyteArray arg1, jint arg2, jint arg3)

-{

-	jbyte *lparg0=NULL;

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateDCA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)CreateDCA((LPSTR)lparg0, (LPSTR)lparg1, (LPSTR)arg2, (CONST DEVMODE *)arg3);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "CreateDCA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateDCW

-JNIEXPORT jint JNICALL OS_NATIVE(CreateDCW)

-	(JNIEnv *env, jclass that, jcharArray arg0, jcharArray arg1, jint arg2, jint arg3)

-{

-	jchar *lparg0=NULL;

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateDCW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)CreateDCW((LPWSTR)lparg0, (LPWSTR)lparg1, (LPWSTR)arg2, (CONST DEVMODEW *)arg3);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "CreateDCW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateDIBSection

-JNIEXPORT jint JNICALL OS_NATIVE(CreateDIBSection)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jintArray arg3, jint arg4, jint arg5)

-{

-	jbyte *lparg1=NULL;

-	jint *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateDIBSection\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jint)CreateDIBSection((HDC)arg0, (BITMAPINFO *)lparg1, arg2, (VOID **)lparg3, (HANDLE)arg4, arg5);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "CreateDIBSection\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateFontIndirectA__I

-JNIEXPORT jint JNICALL OS_NATIVE(CreateFontIndirectA__I)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateFontIndirectA__I\n")

-	rc = (jint)CreateFontIndirectA((LPLOGFONTA)arg0);

-	NATIVE_EXIT(env, that, "CreateFontIndirectA__I\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateFontIndirectA__Lorg_eclipse_swt_internal_win32_LOGFONTA_2

-JNIEXPORT jint JNICALL OS_NATIVE(CreateFontIndirectA__Lorg_eclipse_swt_internal_win32_LOGFONTA_2)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	LOGFONTA _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateFontIndirectA__Lorg_eclipse_swt_internal_win32_LOGFONTA_2\n")

-	if (arg0) lparg0 = getLOGFONTAFields(env, arg0, &_arg0);

-	rc = (jint)CreateFontIndirectA(lparg0);

-	if (arg0) setLOGFONTAFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "CreateFontIndirectA__Lorg_eclipse_swt_internal_win32_LOGFONTA_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateFontIndirectW__I

-JNIEXPORT jint JNICALL OS_NATIVE(CreateFontIndirectW__I)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateFontIndirectW__I\n")

-	rc = (jint)CreateFontIndirectW((LPLOGFONTW)arg0);

-	NATIVE_EXIT(env, that, "CreateFontIndirectW__I\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateFontIndirectW__Lorg_eclipse_swt_internal_win32_LOGFONTW_2

-JNIEXPORT jint JNICALL OS_NATIVE(CreateFontIndirectW__Lorg_eclipse_swt_internal_win32_LOGFONTW_2)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	LOGFONTW _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateFontIndirectW__Lorg_eclipse_swt_internal_win32_LOGFONTW_2\n")

-	if (arg0) lparg0 = getLOGFONTWFields(env, arg0, &_arg0);

-	rc = (jint)CreateFontIndirectW(lparg0);

-	if (arg0) setLOGFONTWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "CreateFontIndirectW__Lorg_eclipse_swt_internal_win32_LOGFONTW_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateIconIndirect

-JNIEXPORT jint JNICALL OS_NATIVE(CreateIconIndirect)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	ICONINFO _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateIconIndirect\n")

-	if (arg0) lparg0 = getICONINFOFields(env, arg0, &_arg0);

-	rc = (jint)CreateIconIndirect(lparg0);

-	if (arg0) setICONINFOFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "CreateIconIndirect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateMenu

-JNIEXPORT jint JNICALL OS_NATIVE(CreateMenu)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateMenu\n")

-	rc = (jint)CreateMenu();

-	NATIVE_EXIT(env, that, "CreateMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreatePalette

-JNIEXPORT jint JNICALL OS_NATIVE(CreatePalette)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreatePalette\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)CreatePalette((LOGPALETTE *)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "CreatePalette\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreatePatternBrush

-JNIEXPORT jint JNICALL OS_NATIVE(CreatePatternBrush)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreatePatternBrush\n")

-	rc = (jint)CreatePatternBrush((HBITMAP)arg0);

-	NATIVE_EXIT(env, that, "CreatePatternBrush\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreatePen

-JNIEXPORT jint JNICALL OS_NATIVE(CreatePen)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreatePen\n")

-	rc = (jint)CreatePen(arg0, arg1, (COLORREF)arg2);

-	NATIVE_EXIT(env, that, "CreatePen\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreatePopupMenu

-JNIEXPORT jint JNICALL OS_NATIVE(CreatePopupMenu)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreatePopupMenu\n")

-	rc = (jint)CreatePopupMenu();

-	NATIVE_EXIT(env, that, "CreatePopupMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateRectRgn

-JNIEXPORT jint JNICALL OS_NATIVE(CreateRectRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateRectRgn\n")

-	rc = (jint)CreateRectRgn(arg0, arg1, arg2, arg3);

-	NATIVE_EXIT(env, that, "CreateRectRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateSolidBrush

-JNIEXPORT jint JNICALL OS_NATIVE(CreateSolidBrush)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateSolidBrush\n")

-	rc = (jint)CreateSolidBrush((COLORREF)arg0);

-	NATIVE_EXIT(env, that, "CreateSolidBrush\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateWindowExA

-JNIEXPORT jint JNICALL OS_NATIVE(CreateWindowExA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jbyteArray arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jobject arg11)

-{

-	jbyte *lparg1=NULL;

-	jbyte *lparg2=NULL;

-	CREATESTRUCT _arg11, *lparg11=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateWindowExA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	if (arg11) lparg11 = getCREATESTRUCTFields(env, arg11, &_arg11);

-	rc = (jint)CreateWindowExA(arg0, (LPSTR)lparg1, lparg2, arg3, arg4, arg5, arg6, arg7, (HWND)arg8, (HMENU)arg9, (HINSTANCE)arg10, lparg11);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	if (arg11) setCREATESTRUCTFields(env, arg11, lparg11);

-	NATIVE_EXIT(env, that, "CreateWindowExA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_CreateWindowExW

-JNIEXPORT jint JNICALL OS_NATIVE(CreateWindowExW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jcharArray arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9, jint arg10, jobject arg11)

-{

-	jchar *lparg1=NULL;

-	jchar *lparg2=NULL;

-	CREATESTRUCT _arg11, *lparg11=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "CreateWindowExW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	if (arg11) lparg11 = getCREATESTRUCTFields(env, arg11, &_arg11);

-	rc = (jint)CreateWindowExW(arg0, (LPWSTR)lparg1, (LPWSTR)lparg2, arg3, arg4, arg5, arg6, arg7, (HWND)arg8, (HMENU)arg9, (HINSTANCE)arg10, lparg11);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	if (arg11) setCREATESTRUCTFields(env, arg11, lparg11);

-	NATIVE_EXIT(env, that, "CreateWindowExW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DefFrameProcA

-JNIEXPORT jint JNICALL OS_NATIVE(DefFrameProcA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DefFrameProcA\n")

-	rc = (jint)DefFrameProcA((HWND)arg0, (HWND)arg1, arg2, (WPARAM)arg3, (LPARAM)arg4);

-	NATIVE_EXIT(env, that, "DefFrameProcA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DefFrameProcW

-JNIEXPORT jint JNICALL OS_NATIVE(DefFrameProcW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DefFrameProcW\n")

-	rc = (jint)DefFrameProcW((HWND)arg0, (HWND)arg1, arg2, (WPARAM)arg3, (LPARAM)arg4);

-	NATIVE_EXIT(env, that, "DefFrameProcW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DefMDIChildProcA

-JNIEXPORT jint JNICALL OS_NATIVE(DefMDIChildProcA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DefMDIChildProcA\n")

-	rc = (jint)DefMDIChildProcA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "DefMDIChildProcA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DefMDIChildProcW

-JNIEXPORT jint JNICALL OS_NATIVE(DefMDIChildProcW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DefMDIChildProcW\n")

-	rc = (jint)DefMDIChildProcW((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "DefMDIChildProcW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DefWindowProcA

-JNIEXPORT jint JNICALL OS_NATIVE(DefWindowProcA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DefWindowProcA\n")

-	rc = (jint)DefWindowProcA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "DefWindowProcA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DefWindowProcW

-JNIEXPORT jint JNICALL OS_NATIVE(DefWindowProcW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DefWindowProcW\n")

-	rc = (jint)DefWindowProcW((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "DefWindowProcW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DeferWindowPos

-JNIEXPORT jint JNICALL OS_NATIVE(DeferWindowPos)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "DeferWindowPos\n")

-	rc = (jint)DeferWindowPos((HDWP)arg0, (HWND)arg1, (HWND)arg2, arg3, arg4, arg5, arg6, arg7);

-	NATIVE_EXIT(env, that, "DeferWindowPos\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DeleteDC

-JNIEXPORT jboolean JNICALL OS_NATIVE(DeleteDC)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DeleteDC\n")

-	rc = (jboolean)DeleteDC((HDC)arg0);

-	NATIVE_EXIT(env, that, "DeleteDC\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DeleteMenu

-JNIEXPORT jboolean JNICALL OS_NATIVE(DeleteMenu)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DeleteMenu\n")

-	rc = (jboolean)DeleteMenu((HMENU)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "DeleteMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DeleteObject

-JNIEXPORT jboolean JNICALL OS_NATIVE(DeleteObject)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DeleteObject\n")

-	rc = (jboolean)DeleteObject((HGDIOBJ)arg0);

-	NATIVE_EXIT(env, that, "DeleteObject\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DestroyAcceleratorTable

-JNIEXPORT jboolean JNICALL OS_NATIVE(DestroyAcceleratorTable)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DestroyAcceleratorTable\n")

-	rc = (jboolean)DestroyAcceleratorTable((HACCEL)arg0);

-	NATIVE_EXIT(env, that, "DestroyAcceleratorTable\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DestroyCaret

-JNIEXPORT jboolean JNICALL OS_NATIVE(DestroyCaret)

-	(JNIEnv *env, jclass that)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DestroyCaret\n")

-	rc = (jboolean)DestroyCaret();

-	NATIVE_EXIT(env, that, "DestroyCaret\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DestroyCursor

-JNIEXPORT jboolean JNICALL OS_NATIVE(DestroyCursor)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DestroyCursor\n")

-	rc = (jboolean)DestroyCursor((HCURSOR)arg0);

-	NATIVE_EXIT(env, that, "DestroyCursor\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DestroyIcon

-JNIEXPORT jboolean JNICALL OS_NATIVE(DestroyIcon)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DestroyIcon\n")

-	rc = (jboolean)DestroyIcon((HICON)arg0);

-	NATIVE_EXIT(env, that, "DestroyIcon\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DestroyMenu

-JNIEXPORT jboolean JNICALL OS_NATIVE(DestroyMenu)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DestroyMenu\n")

-	rc = (jboolean)DestroyMenu((HMENU)arg0);

-	NATIVE_EXIT(env, that, "DestroyMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DestroyWindow

-JNIEXPORT jboolean JNICALL OS_NATIVE(DestroyWindow)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DestroyWindow\n")

-	rc = (jboolean)DestroyWindow((HWND)arg0);

-	NATIVE_EXIT(env, that, "DestroyWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DispatchMessageA

-JNIEXPORT jint JNICALL OS_NATIVE(DispatchMessageA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	MSG _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "DispatchMessageA\n")

-	if (arg0) lparg0 = getMSGFields(env, arg0, &_arg0);

-	rc = (jint)DispatchMessageA(lparg0);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "DispatchMessageA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DispatchMessageW

-JNIEXPORT jint JNICALL OS_NATIVE(DispatchMessageW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	MSG _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "DispatchMessageW\n")

-	if (arg0) lparg0 = getMSGFields(env, arg0, &_arg0);

-	rc = (jint)DispatchMessageW(lparg0);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "DispatchMessageW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DragDetect

-JNIEXPORT jboolean JNICALL OS_NATIVE(DragDetect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	POINT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DragDetect\n")

-	if (arg1) lparg1 = getPOINTFields(env, arg1, &_arg1);

-	rc = (jboolean)DragDetect((HWND)arg0, *lparg1);

-	if (arg1) setPOINTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "DragDetect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DragFinish

-JNIEXPORT void JNICALL OS_NATIVE(DragFinish)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	NATIVE_ENTER(env, that, "DragFinish\n")

-	DragFinish((HDROP)arg0);

-	NATIVE_EXIT(env, that, "DragFinish\n")

-}

-#endif

-

-#ifndef NO_DragQueryFileA

-JNIEXPORT jint JNICALL OS_NATIVE(DragQueryFileA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2, jint arg3)

-{

-	jbyte *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "DragQueryFileA\n")

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	rc = (jint)DragQueryFileA((HDROP)arg0, arg1, (LPTSTR)lparg2, arg3);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "DragQueryFileA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DragQueryFileW

-JNIEXPORT jint JNICALL OS_NATIVE(DragQueryFileW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jcharArray arg2, jint arg3)

-{

-	jchar *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "DragQueryFileW\n")

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	rc = (jint)DragQueryFileW((HDROP)arg0, arg1, (LPWSTR)lparg2, arg3);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "DragQueryFileW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawEdge

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawEdge)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jint arg3)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawEdge\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)DrawEdge((HDC)arg0, lparg1, arg2, arg3);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "DrawEdge\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawFocusRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawFocusRect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawFocusRect\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)DrawFocusRect((HDC)arg0, lparg1);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "DrawFocusRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawFrameControl

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawFrameControl)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jint arg3)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawFrameControl\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)DrawFrameControl((HDC)arg0, lparg1, arg2, arg3);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "DrawFrameControl\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawIconEx

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawIconEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawIconEx\n")

-	rc = (jboolean)DrawIconEx((HDC)arg0, arg1, arg2, (HICON)arg3, arg4, arg5, arg6, (HBRUSH)arg7, arg8);

-	NATIVE_EXIT(env, that, "DrawIconEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawMenuBar

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawMenuBar)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawMenuBar\n")

-	rc = (jboolean)DrawMenuBar((HWND)arg0);

-	NATIVE_EXIT(env, that, "DrawMenuBar\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawStateA

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawStateA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawStateA\n")

-	rc = (jboolean)DrawStateA((HDC)arg0, (HBRUSH)arg1, (DRAWSTATEPROC)arg2, (LPARAM)arg3, (WPARAM)arg4, arg5, arg6, arg7, arg8, arg9);

-	NATIVE_EXIT(env, that, "DrawStateA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawStateW

-JNIEXPORT jboolean JNICALL OS_NATIVE(DrawStateW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8, jint arg9)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "DrawStateW\n")

-	rc = (jboolean)DrawStateW((HDC)arg0, (HBRUSH)arg1, (DRAWSTATEPROC)arg2, (LPARAM)arg3, (WPARAM)arg4, arg5, arg6, arg7, arg8, arg9);

-	NATIVE_EXIT(env, that, "DrawStateW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawTextA

-JNIEXPORT jint JNICALL OS_NATIVE(DrawTextA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jobject arg3, jint arg4)

-{

-	jbyte *lparg1=NULL;

-	RECT _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "DrawTextA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = getRECTFields(env, arg3, &_arg3);

-	rc = (jint)DrawTextA((HDC)arg0, (LPSTR)lparg1, arg2, lparg3, arg4);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg3) setRECTFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "DrawTextA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_DrawTextW

-JNIEXPORT jint JNICALL OS_NATIVE(DrawTextW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jobject arg3, jint arg4)

-{

-	jchar *lparg1=NULL;

-	RECT _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "DrawTextW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = getRECTFields(env, arg3, &_arg3);

-	rc = (jint)DrawTextW((HDC)arg0, (LPWSTR)lparg1, arg2, lparg3, arg4);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg3) setRECTFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "DrawTextW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_Ellipse

-JNIEXPORT jboolean JNICALL OS_NATIVE(Ellipse)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "Ellipse\n")

-	rc = (jboolean)Ellipse((HDC)arg0, arg1, arg2, arg3, arg4);

-	NATIVE_EXIT(env, that, "Ellipse\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnableMenuItem

-JNIEXPORT jboolean JNICALL OS_NATIVE(EnableMenuItem)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EnableMenuItem\n")

-	rc = (jboolean)EnableMenuItem((HMENU)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "EnableMenuItem\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnableScrollBar

-JNIEXPORT jboolean JNICALL OS_NATIVE(EnableScrollBar)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EnableScrollBar\n")

-	rc = (jboolean)EnableScrollBar((HWND)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "EnableScrollBar\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnableWindow

-JNIEXPORT jboolean JNICALL OS_NATIVE(EnableWindow)

-	(JNIEnv *env, jclass that, jint arg0, jboolean arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EnableWindow\n")

-	rc = (jboolean)EnableWindow((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "EnableWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EndDeferWindowPos

-JNIEXPORT jboolean JNICALL OS_NATIVE(EndDeferWindowPos)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EndDeferWindowPos\n")

-	rc = (jboolean)EndDeferWindowPos((HDWP)arg0);

-	NATIVE_EXIT(env, that, "EndDeferWindowPos\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EndDoc

-JNIEXPORT jint JNICALL OS_NATIVE(EndDoc)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "EndDoc\n")

-	rc = (jint)EndDoc((HDC)arg0);

-	NATIVE_EXIT(env, that, "EndDoc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EndPage

-JNIEXPORT jint JNICALL OS_NATIVE(EndPage)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "EndPage\n")

-	rc = (jint)EndPage((HDC)arg0);

-	NATIVE_EXIT(env, that, "EndPage\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EndPaint

-JNIEXPORT jint JNICALL OS_NATIVE(EndPaint)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	PAINTSTRUCT _arg1, *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "EndPaint\n")

-	if (arg1) lparg1 = getPAINTSTRUCTFields(env, arg1, &_arg1);

-	rc = (jint)EndPaint((HWND)arg0, lparg1);

-	if (arg1) setPAINTSTRUCTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "EndPaint\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnumFontFamiliesA

-JNIEXPORT jint JNICALL OS_NATIVE(EnumFontFamiliesA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jint arg3)

-{

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "EnumFontFamiliesA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)EnumFontFamiliesA((HDC)arg0, (LPSTR)lparg1, (FONTENUMPROC)arg2, (LPARAM)arg3);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "EnumFontFamiliesA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnumFontFamiliesW

-JNIEXPORT jint JNICALL OS_NATIVE(EnumFontFamiliesW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jint arg3)

-{

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "EnumFontFamiliesW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)EnumFontFamiliesW((HDC)arg0, (LPCWSTR)lparg1, (FONTENUMPROCW)arg2, (LPARAM)arg3);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "EnumFontFamiliesW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnumSystemLocalesA

-JNIEXPORT jboolean JNICALL OS_NATIVE(EnumSystemLocalesA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EnumSystemLocalesA\n")

-	rc = (jboolean)EnumSystemLocalesA((LOCALE_ENUMPROCA)arg0, arg1);

-	NATIVE_EXIT(env, that, "EnumSystemLocalesA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EnumSystemLocalesW

-JNIEXPORT jboolean JNICALL OS_NATIVE(EnumSystemLocalesW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EnumSystemLocalesW\n")

-	rc = (jboolean)EnumSystemLocalesW((LOCALE_ENUMPROCW)arg0, arg1);

-	NATIVE_EXIT(env, that, "EnumSystemLocalesW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EqualRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(EqualRect)

-	(JNIEnv *env, jclass that, jobject arg0, jobject arg1)

-{

-	RECT _arg0, *lparg0=NULL;

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EqualRect\n")

-	if (arg0) lparg0 = getRECTFields(env, arg0, &_arg0);

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)EqualRect((CONST RECT *)lparg0, (CONST RECT *)lparg1);

-	if (arg0) setRECTFields(env, arg0, lparg0);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "EqualRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_EqualRgn

-JNIEXPORT jboolean JNICALL OS_NATIVE(EqualRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "EqualRgn\n")

-	rc = (jboolean)EqualRgn((HRGN)arg0, (HRGN)arg1);

-	NATIVE_EXIT(env, that, "EqualRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ExpandEnvironmentStringsA

-JNIEXPORT jint JNICALL OS_NATIVE(ExpandEnvironmentStringsA)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jbyteArray arg1, jint arg2)

-{

-	jbyte *lparg0=NULL;

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ExpandEnvironmentStringsA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)ExpandEnvironmentStringsA(lparg0, lparg1, arg2);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "ExpandEnvironmentStringsA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ExpandEnvironmentStringsW

-JNIEXPORT jint JNICALL OS_NATIVE(ExpandEnvironmentStringsW)

-	(JNIEnv *env, jclass that, jcharArray arg0, jcharArray arg1, jint arg2)

-{

-	jchar *lparg0=NULL;

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ExpandEnvironmentStringsW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)ExpandEnvironmentStringsW(lparg0, lparg1, arg2);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "ExpandEnvironmentStringsW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ExtTextOutA

-JNIEXPORT jboolean JNICALL OS_NATIVE(ExtTextOutA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jobject arg4, jbyteArray arg5, jint arg6, jintArray arg7)

-{

-	RECT _arg4, *lparg4=NULL;

-	jbyte *lparg5=NULL;

-	jint *lparg7=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ExtTextOutA\n")

-	if (arg4) lparg4 = getRECTFields(env, arg4, &_arg4);

-	if (arg5) lparg5 = (*env)->GetByteArrayElements(env, arg5, NULL);

-	if (arg7) lparg7 = (*env)->GetIntArrayElements(env, arg7, NULL);

-	rc = (jboolean)ExtTextOutA((HDC)arg0, arg1, arg2, arg3, lparg4, (LPSTR)lparg5, arg6, (CONST INT *)lparg7);

-	if (arg4) setRECTFields(env, arg4, lparg4);

-	if (arg5) (*env)->ReleaseByteArrayElements(env, arg5, lparg5, 0);

-	if (arg7) (*env)->ReleaseIntArrayElements(env, arg7, lparg7, 0);

-	NATIVE_EXIT(env, that, "ExtTextOutA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ExtTextOutW

-JNIEXPORT jboolean JNICALL OS_NATIVE(ExtTextOutW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jobject arg4, jcharArray arg5, jint arg6, jintArray arg7)

-{

-	RECT _arg4, *lparg4=NULL;

-	jchar *lparg5=NULL;

-	jint *lparg7=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ExtTextOutW\n")

-	if (arg4) lparg4 = getRECTFields(env, arg4, &_arg4);

-	if (arg5) lparg5 = (*env)->GetCharArrayElements(env, arg5, NULL);

-	if (arg7) lparg7 = (*env)->GetIntArrayElements(env, arg7, NULL);

-	rc = (jboolean)ExtTextOutW((HDC)arg0, arg1, arg2, arg3, lparg4, (LPWSTR)lparg5, arg6, (CONST INT *)lparg7);

-	if (arg4) setRECTFields(env, arg4, lparg4);

-	if (arg5) (*env)->ReleaseCharArrayElements(env, arg5, lparg5, 0);

-	if (arg7) (*env)->ReleaseIntArrayElements(env, arg7, lparg7, 0);

-	NATIVE_EXIT(env, that, "ExtTextOutW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ExtractIconExA

-JNIEXPORT jint JNICALL OS_NATIVE(ExtractIconExA)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jint arg1, jintArray arg2, jintArray arg3, jint arg4)

-{

-	jbyte *lparg0=NULL;

-	jint *lparg2=NULL;

-	jint *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ExtractIconExA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jint)ExtractIconExA((LPSTR)lparg0, arg1, (HICON FAR *)lparg2, (HICON FAR *)lparg3, arg4);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "ExtractIconExA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ExtractIconExW

-JNIEXPORT jint JNICALL OS_NATIVE(ExtractIconExW)

-	(JNIEnv *env, jclass that, jcharArray arg0, jint arg1, jintArray arg2, jintArray arg3, jint arg4)

-{

-	jchar *lparg0=NULL;

-	jint *lparg2=NULL;

-	jint *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ExtractIconExW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jint)ExtractIconExW((LPWSTR)lparg0, arg1, (HICON FAR *)lparg2, (HICON FAR *)lparg3, arg4);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "ExtractIconExW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_FillRect

-JNIEXPORT jint JNICALL OS_NATIVE(FillRect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	RECT _arg1, *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "FillRect\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jint)FillRect((HDC)arg0, lparg1, (HBRUSH)arg2);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "FillRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_FindWindowA

-JNIEXPORT jint JNICALL OS_NATIVE(FindWindowA)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jbyteArray arg1)

-{

-	jbyte *lparg0=NULL;

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "FindWindowA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)FindWindowA((LPSTR)lparg0, (LPSTR)lparg1);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "FindWindowA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_FindWindowW

-JNIEXPORT jint JNICALL OS_NATIVE(FindWindowW)

-	(JNIEnv *env, jclass that, jcharArray arg0, jcharArray arg1)

-{

-	jchar *lparg0=NULL;

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "FindWindowW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)FindWindowW((LPWSTR)lparg0, (LPWSTR)lparg1);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "FindWindowW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_FreeLibrary

-JNIEXPORT jboolean JNICALL OS_NATIVE(FreeLibrary)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "FreeLibrary\n")

-	rc = (jboolean)FreeLibrary((HMODULE)arg0);

-	NATIVE_EXIT(env, that, "FreeLibrary\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetACP

-JNIEXPORT jint JNICALL OS_NATIVE(GetACP)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetACP\n")

-	rc = (jint)GetACP();

-	NATIVE_EXIT(env, that, "GetACP\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetActiveWindow

-JNIEXPORT jint JNICALL OS_NATIVE(GetActiveWindow)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetActiveWindow\n")

-	rc = (jint)GetActiveWindow();

-	NATIVE_EXIT(env, that, "GetActiveWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetBkColor

-JNIEXPORT jint JNICALL OS_NATIVE(GetBkColor)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetBkColor\n")

-	rc = (jint)GetBkColor((HDC)arg0);

-	NATIVE_EXIT(env, that, "GetBkColor\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCapture

-JNIEXPORT jint JNICALL OS_NATIVE(GetCapture)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCapture\n")

-	rc = (jint)GetCapture();

-	NATIVE_EXIT(env, that, "GetCapture\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCaretPos

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetCaretPos)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	POINT _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetCaretPos\n")

-	if (arg0) lparg0 = getPOINTFields(env, arg0, &_arg0);

-	rc = (jboolean)GetCaretPos(lparg0);

-	if (arg0) setPOINTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetCaretPos\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCharABCWidthsA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetCharABCWidthsA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetCharABCWidthsA\n")

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jboolean)GetCharABCWidthsA((HDC)arg0, arg1, arg2, (LPABC)lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetCharABCWidthsA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCharABCWidthsW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetCharABCWidthsW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetCharABCWidthsW\n")

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jboolean)GetCharABCWidthsW((HDC)arg0, arg1, arg2, (LPABC)lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetCharABCWidthsW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCharWidthA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetCharWidthA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetCharWidthA\n")

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jboolean)GetCharWidthA((HDC)arg0, arg1, arg2, (LPINT)lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetCharWidthA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCharWidthW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetCharWidthW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetCharWidthW\n")

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jboolean)GetCharWidthW((HDC)arg0, arg1, arg2, (LPINT)lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetCharWidthW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCharacterPlacementA

-JNIEXPORT jint JNICALL OS_NATIVE(GetCharacterPlacementA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jint arg3, jobject arg4, jint arg5)

-{

-	jbyte *lparg1=NULL;

-	GCP_RESULTS _arg4, *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCharacterPlacementA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg4) lparg4 = getGCP_RESULTSFields(env, arg4, &_arg4);

-	rc = (jint)GetCharacterPlacementA((HDC)arg0, (LPSTR)lparg1, arg2, arg3, lparg4, arg5);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg4) setGCP_RESULTSFields(env, arg4, lparg4);

-	NATIVE_EXIT(env, that, "GetCharacterPlacementA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCharacterPlacementW

-JNIEXPORT jint JNICALL OS_NATIVE(GetCharacterPlacementW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jint arg3, jobject arg4, jint arg5)

-{

-	jchar *lparg1=NULL;

-	GCP_RESULTS _arg4, *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCharacterPlacementW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg4) lparg4 = getGCP_RESULTSFields(env, arg4, &_arg4);

-	rc = (jint)GetCharacterPlacementW((HDC)arg0, (LPWSTR)lparg1, arg2, arg3, (LPGCP_RESULTSW)lparg4, arg5);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg4) setGCP_RESULTSFields(env, arg4, lparg4);

-	NATIVE_EXIT(env, that, "GetCharacterPlacementW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClassInfoA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetClassInfoA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jobject arg2)

-{

-	jbyte *lparg1=NULL;

-	WNDCLASS _arg2, *lparg2=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetClassInfoA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = getWNDCLASSFields(env, arg2, &_arg2);

-	rc = (jboolean)GetClassInfoA((HINSTANCE)arg0, (LPSTR)lparg1, lparg2);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg2) setWNDCLASSFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetClassInfoA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClassInfoW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetClassInfoW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jobject arg2)

-{

-	jchar *lparg1=NULL;

-	WNDCLASS _arg2, *lparg2=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetClassInfoW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = getWNDCLASSFields(env, arg2, &_arg2);

-	rc = (jboolean)GetClassInfoW((HINSTANCE)arg0, (LPWSTR)lparg1, (LPWNDCLASSW)lparg2);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg2) setWNDCLASSFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetClassInfoW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClientRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetClientRect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetClientRect\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)GetClientRect((HWND)arg0, lparg1);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetClientRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClipBox

-JNIEXPORT jint JNICALL OS_NATIVE(GetClipBox)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	RECT _arg1, *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetClipBox\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jint)GetClipBox((HDC)arg0, lparg1);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetClipBox\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClipRgn

-JNIEXPORT jint JNICALL OS_NATIVE(GetClipRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetClipRgn\n")

-	rc = (jint)GetClipRgn((HDC)arg0, (HRGN)arg1);

-	NATIVE_EXIT(env, that, "GetClipRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClipboardData

-JNIEXPORT jint JNICALL OS_NATIVE(GetClipboardData)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetClipboardData\n")

-	rc = (jint)GetClipboardData(arg0);

-	NATIVE_EXIT(env, that, "GetClipboardData\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClipboardFormatNameA

-JNIEXPORT jint JNICALL OS_NATIVE(GetClipboardFormatNameA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2)

-{

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetClipboardFormatNameA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)GetClipboardFormatNameA(arg0, lparg1, arg2);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetClipboardFormatNameA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetClipboardFormatNameW

-JNIEXPORT jint JNICALL OS_NATIVE(GetClipboardFormatNameW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2)

-{

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetClipboardFormatNameW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)GetClipboardFormatNameW(arg0, (LPWSTR)lparg1, arg2);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetClipboardFormatNameW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCurrentObject

-JNIEXPORT jint JNICALL OS_NATIVE(GetCurrentObject)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCurrentObject\n")

-	rc = (jint)GetCurrentObject((HDC)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetCurrentObject\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCurrentProcessId

-JNIEXPORT jint JNICALL OS_NATIVE(GetCurrentProcessId)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCurrentProcessId\n")

-	rc = (jint)GetCurrentProcessId();

-	NATIVE_EXIT(env, that, "GetCurrentProcessId\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCurrentThreadId

-JNIEXPORT jint JNICALL OS_NATIVE(GetCurrentThreadId)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCurrentThreadId\n")

-	rc = (jint)GetCurrentThreadId();

-	NATIVE_EXIT(env, that, "GetCurrentThreadId\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCursor

-JNIEXPORT jint JNICALL OS_NATIVE(GetCursor)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetCursor\n")

-	rc = (jint)GetCursor();

-	NATIVE_EXIT(env, that, "GetCursor\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetCursorPos

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetCursorPos)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	POINT _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetCursorPos\n")

-	if (arg0) lparg0 = getPOINTFields(env, arg0, &_arg0);

-	rc = (jboolean)GetCursorPos(lparg0);

-	if (arg0) setPOINTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetCursorPos\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDC

-JNIEXPORT jint JNICALL OS_NATIVE(GetDC)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDC\n")

-	rc = (jint)GetDC((HWND)arg0);

-	NATIVE_EXIT(env, that, "GetDC\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDCEx

-JNIEXPORT jint JNICALL OS_NATIVE(GetDCEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDCEx\n")

-	rc = (jint)GetDCEx((HWND)arg0, (HRGN)arg1, arg2);

-	NATIVE_EXIT(env, that, "GetDCEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDIBColorTable

-JNIEXPORT jint JNICALL OS_NATIVE(GetDIBColorTable)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jbyteArray arg3)

-{

-	jbyte *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDIBColorTable\n")

-	if (arg3) lparg3 = (*env)->GetByteArrayElements(env, arg3, NULL);

-	rc = (jint)GetDIBColorTable((HDC)arg0, arg1, arg2, (RGBQUAD *)lparg3);

-	if (arg3) (*env)->ReleaseByteArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetDIBColorTable\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDIBits

-JNIEXPORT jint JNICALL OS_NATIVE(GetDIBits)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jbyteArray arg5, jint arg6)

-{

-	jbyte *lparg5=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDIBits\n")

-	if (arg5) lparg5 = (*env)->GetByteArrayElements(env, arg5, NULL);

-	rc = (jint)GetDIBits((HDC)arg0, (HBITMAP)arg1, arg2, arg3, (LPVOID)arg4, (LPBITMAPINFO)lparg5, arg6);

-	if (arg5) (*env)->ReleaseByteArrayElements(env, arg5, lparg5, 0);

-	NATIVE_EXIT(env, that, "GetDIBits\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDesktopWindow

-JNIEXPORT jint JNICALL OS_NATIVE(GetDesktopWindow)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDesktopWindow\n")

-	rc = (jint)GetDesktopWindow();

-	NATIVE_EXIT(env, that, "GetDesktopWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDeviceCaps

-JNIEXPORT jint JNICALL OS_NATIVE(GetDeviceCaps)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDeviceCaps\n")

-	rc = (jint)GetDeviceCaps((HDC)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetDeviceCaps\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDialogBaseUnits

-JNIEXPORT jint JNICALL OS_NATIVE(GetDialogBaseUnits)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDialogBaseUnits\n")

-	rc = (jint)GetDialogBaseUnits();

-	NATIVE_EXIT(env, that, "GetDialogBaseUnits\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDlgItem

-JNIEXPORT jint JNICALL OS_NATIVE(GetDlgItem)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDlgItem\n")

-	rc = (jint)GetDlgItem((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetDlgItem\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetDoubleClickTime

-JNIEXPORT jint JNICALL OS_NATIVE(GetDoubleClickTime)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetDoubleClickTime\n")

-	rc = (jint)GetDoubleClickTime();

-	NATIVE_EXIT(env, that, "GetDoubleClickTime\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetFocus

-JNIEXPORT jint JNICALL OS_NATIVE(GetFocus)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetFocus\n")

-	rc = (jint)GetFocus();

-	NATIVE_EXIT(env, that, "GetFocus\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetFontLanguageInfo

-JNIEXPORT jint JNICALL OS_NATIVE(GetFontLanguageInfo)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetFontLanguageInfo\n")

-	rc = (jint)GetFontLanguageInfo((HDC)arg0);

-	NATIVE_EXIT(env, that, "GetFontLanguageInfo\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetIconInfo

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetIconInfo)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	ICONINFO _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetIconInfo\n")

-	if (arg1) lparg1 = getICONINFOFields(env, arg1, &_arg1);

-	rc = (jboolean)GetIconInfo((HICON)arg0, lparg1);

-	if (arg1) setICONINFOFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetIconInfo\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetKeyNameTextA

-JNIEXPORT jint JNICALL OS_NATIVE(GetKeyNameTextA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2)

-{

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetKeyNameTextA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)GetKeyNameTextA(arg0, (LPSTR)lparg1, arg2);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetKeyNameTextA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetKeyNameTextW

-JNIEXPORT jint JNICALL OS_NATIVE(GetKeyNameTextW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2)

-{

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetKeyNameTextW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)GetKeyNameTextW(arg0, (LPWSTR)lparg1, arg2);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetKeyNameTextW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetKeyState

-JNIEXPORT jshort JNICALL OS_NATIVE(GetKeyState)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jshort rc;

-	NATIVE_ENTER(env, that, "GetKeyState\n")

-	rc = (jshort)GetKeyState(arg0);

-	NATIVE_EXIT(env, that, "GetKeyState\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetKeyboardLayout

-JNIEXPORT jint JNICALL OS_NATIVE(GetKeyboardLayout)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetKeyboardLayout\n")

-	rc = (jint)GetKeyboardLayout(arg0);

-	NATIVE_EXIT(env, that, "GetKeyboardLayout\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetKeyboardLayoutList

-JNIEXPORT jint JNICALL OS_NATIVE(GetKeyboardLayoutList)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetKeyboardLayoutList\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	rc = (jint)GetKeyboardLayoutList(arg0, (HKL FAR *)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetKeyboardLayoutList\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetKeyboardState

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetKeyboardState)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetKeyboardState\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jboolean)GetKeyboardState((PBYTE)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "GetKeyboardState\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetLastActivePopup

-JNIEXPORT jint JNICALL OS_NATIVE(GetLastActivePopup)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetLastActivePopup\n")

-	rc = (jint)GetLastActivePopup((HWND)arg0);

-	NATIVE_EXIT(env, that, "GetLastActivePopup\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetLastError

-JNIEXPORT jint JNICALL OS_NATIVE(GetLastError)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetLastError\n")

-	rc = (jint)GetLastError();

-	NATIVE_EXIT(env, that, "GetLastError\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetLocaleInfoA

-JNIEXPORT jint JNICALL OS_NATIVE(GetLocaleInfoA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2, jint arg3)

-{

-	jbyte *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetLocaleInfoA\n")

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	rc = (jint)GetLocaleInfoA(arg0, arg1, (LPSTR)lparg2, arg3);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "GetLocaleInfoA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetLocaleInfoW

-JNIEXPORT jint JNICALL OS_NATIVE(GetLocaleInfoW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jcharArray arg2, jint arg3)

-{

-	jchar *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetLocaleInfoW\n")

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	rc = (jint)GetLocaleInfoW(arg0, arg1, (LPWSTR)lparg2, arg3);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "GetLocaleInfoW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMenu

-JNIEXPORT jint JNICALL OS_NATIVE(GetMenu)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetMenu\n")

-	rc = (jint)GetMenu((HWND)arg0);

-	NATIVE_EXIT(env, that, "GetMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMenuDefaultItem

-JNIEXPORT jint JNICALL OS_NATIVE(GetMenuDefaultItem)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetMenuDefaultItem\n")

-	rc = (jint)GetMenuDefaultItem((HMENU)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "GetMenuDefaultItem\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMenuItemCount

-JNIEXPORT jint JNICALL OS_NATIVE(GetMenuItemCount)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetMenuItemCount\n")

-	rc = (jint)GetMenuItemCount((HMENU)arg0);

-	NATIVE_EXIT(env, that, "GetMenuItemCount\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMenuItemInfoA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetMenuItemInfoA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2, jobject arg3)

-{

-	MENUITEMINFO _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetMenuItemInfoA\n")

-	if (arg3) lparg3 = getMENUITEMINFOFields(env, arg3, &_arg3);

-	rc = (jboolean)GetMenuItemInfoA((HMENU)arg0, arg1, arg2, lparg3);

-	if (arg3) setMENUITEMINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "GetMenuItemInfoA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMenuItemInfoW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetMenuItemInfoW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2, jobject arg3)

-{

-	MENUITEMINFO _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetMenuItemInfoW\n")

-	if (arg3) lparg3 = getMENUITEMINFOFields(env, arg3, &_arg3);

-	rc = (jboolean)GetMenuItemInfoW((HMENU)arg0, arg1, arg2, (LPMENUITEMINFOW)lparg3);

-	if (arg3) setMENUITEMINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "GetMenuItemInfoW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMessageA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetMessageA)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2, jint arg3)

-{

-	MSG _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetMessageA\n")

-	if (arg0) lparg0 = getMSGFields(env, arg0, &_arg0);

-	rc = (jboolean)GetMessageA(lparg0, (HWND)arg1, arg2, arg3);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetMessageA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMessagePos

-JNIEXPORT jint JNICALL OS_NATIVE(GetMessagePos)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetMessagePos\n")

-	rc = (jint)GetMessagePos();

-	NATIVE_EXIT(env, that, "GetMessagePos\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMessageTime

-JNIEXPORT jint JNICALL OS_NATIVE(GetMessageTime)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetMessageTime\n")

-	rc = (jint)GetMessageTime();

-	NATIVE_EXIT(env, that, "GetMessageTime\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetMessageW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetMessageW)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2, jint arg3)

-{

-	MSG _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetMessageW\n")

-	if (arg0) lparg0 = getMSGFields(env, arg0, &_arg0);

-	rc = (jboolean)GetMessageW(lparg0, (HWND)arg1, arg2, arg3);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetMessageW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetModuleHandleA

-JNIEXPORT jint JNICALL OS_NATIVE(GetModuleHandleA)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetModuleHandleA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)GetModuleHandleA((LPSTR)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "GetModuleHandleA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetModuleHandleW

-JNIEXPORT jint JNICALL OS_NATIVE(GetModuleHandleW)

-	(JNIEnv *env, jclass that, jcharArray arg0)

-{

-	jchar *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetModuleHandleW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	rc = (jint)GetModuleHandleW((LPWSTR)lparg0);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "GetModuleHandleW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetNearestPaletteIndex

-JNIEXPORT jint JNICALL OS_NATIVE(GetNearestPaletteIndex)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetNearestPaletteIndex\n")

-	rc = (jint)GetNearestPaletteIndex((HPALETTE)arg0, (COLORREF)arg1);

-	NATIVE_EXIT(env, that, "GetNearestPaletteIndex\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectA__IILorg_eclipse_swt_internal_win32_BITMAP_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectA__IILorg_eclipse_swt_internal_win32_BITMAP_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	BITMAP _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_BITMAP_2\n")

-	if (arg2) lparg2 = getBITMAPFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectA((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setBITMAPFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_BITMAP_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectA__IILorg_eclipse_swt_internal_win32_DIBSECTION_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectA__IILorg_eclipse_swt_internal_win32_DIBSECTION_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	DIBSECTION _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_DIBSECTION_2\n")

-	if (arg2) lparg2 = getDIBSECTIONFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectA((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setDIBSECTIONFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_DIBSECTION_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectA__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectA__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	LOGBRUSH _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2\n")

-	if (arg2) lparg2 = getLOGBRUSHFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectA((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setLOGBRUSHFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectA__IILorg_eclipse_swt_internal_win32_LOGFONTA_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectA__IILorg_eclipse_swt_internal_win32_LOGFONTA_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	LOGFONTA _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_LOGFONTA_2\n")

-	if (arg2) lparg2 = getLOGFONTAFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectA((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setLOGFONTAFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_LOGFONTA_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectA__IILorg_eclipse_swt_internal_win32_LOGPEN_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectA__IILorg_eclipse_swt_internal_win32_LOGPEN_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	LOGPEN _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_LOGPEN_2\n")

-	if (arg2) lparg2 = getLOGPENFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectA((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setLOGPENFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectA__IILorg_eclipse_swt_internal_win32_LOGPEN_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectW__IILorg_eclipse_swt_internal_win32_BITMAP_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectW__IILorg_eclipse_swt_internal_win32_BITMAP_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	BITMAP _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_BITMAP_2\n")

-	if (arg2) lparg2 = getBITMAPFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectW((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setBITMAPFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_BITMAP_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectW__IILorg_eclipse_swt_internal_win32_DIBSECTION_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectW__IILorg_eclipse_swt_internal_win32_DIBSECTION_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	DIBSECTION _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_DIBSECTION_2\n")

-	if (arg2) lparg2 = getDIBSECTIONFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectW((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setDIBSECTIONFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_DIBSECTION_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectW__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectW__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	LOGBRUSH _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2\n")

-	if (arg2) lparg2 = getLOGBRUSHFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectW((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setLOGBRUSHFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_LOGBRUSH_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectW__IILorg_eclipse_swt_internal_win32_LOGFONTW_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectW__IILorg_eclipse_swt_internal_win32_LOGFONTW_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	LOGFONTW _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_LOGFONTW_2\n")

-	if (arg2) lparg2 = getLOGFONTWFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectW((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setLOGFONTWFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_LOGFONTW_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetObjectW__IILorg_eclipse_swt_internal_win32_LOGPEN_2

-JNIEXPORT jint JNICALL OS_NATIVE(GetObjectW__IILorg_eclipse_swt_internal_win32_LOGPEN_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	LOGPEN _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_LOGPEN_2\n")

-	if (arg2) lparg2 = getLOGPENFields(env, arg2, &_arg2);

-	rc = (jint)GetObjectW((HGDIOBJ)arg0, arg1, lparg2);

-	if (arg2) setLOGPENFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetObjectW__IILorg_eclipse_swt_internal_win32_LOGPEN_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetOpenFileNameA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetOpenFileNameA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	OPENFILENAME _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetOpenFileNameA\n")

-	if (arg0) lparg0 = getOPENFILENAMEFields(env, arg0, &_arg0);

-	rc = (jboolean)GetOpenFileNameA(lparg0);

-	if (arg0) setOPENFILENAMEFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetOpenFileNameA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetOpenFileNameW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetOpenFileNameW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	OPENFILENAME _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetOpenFileNameW\n")

-	if (arg0) lparg0 = getOPENFILENAMEFields(env, arg0, &_arg0);

-	rc = (jboolean)GetOpenFileNameW((LPOPENFILENAMEW)lparg0);

-	if (arg0) setOPENFILENAMEFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetOpenFileNameW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetPaletteEntries

-JNIEXPORT jint JNICALL OS_NATIVE(GetPaletteEntries)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jbyteArray arg3)

-{

-	jbyte *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetPaletteEntries\n")

-	if (arg3) lparg3 = (*env)->GetByteArrayElements(env, arg3, NULL);

-	rc = (jint)GetPaletteEntries((HPALETTE)arg0, arg1, arg2, (LPPALETTEENTRY)lparg3);

-	if (arg3) (*env)->ReleaseByteArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetPaletteEntries\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetParent

-JNIEXPORT jint JNICALL OS_NATIVE(GetParent)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetParent\n")

-	rc = (jint)GetParent((HWND)arg0);

-	NATIVE_EXIT(env, that, "GetParent\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetPixel

-JNIEXPORT jint JNICALL OS_NATIVE(GetPixel)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetPixel\n")

-	rc = (jint)GetPixel((HDC)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "GetPixel\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetProcAddress

-JNIEXPORT jint JNICALL OS_NATIVE(GetProcAddress)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1)

-{

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetProcAddress\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)GetProcAddress((HMODULE)arg0, (LPCTSTR)lparg1);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetProcAddress\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetProcessHeap

-JNIEXPORT jint JNICALL OS_NATIVE(GetProcessHeap)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetProcessHeap\n")

-	rc = (jint)GetProcessHeap();

-	NATIVE_EXIT(env, that, "GetProcessHeap\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetProfileStringA

-JNIEXPORT jint JNICALL OS_NATIVE(GetProfileStringA)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jbyteArray arg1, jbyteArray arg2, jbyteArray arg3, jint arg4)

-{

-	jbyte *lparg0=NULL;

-	jbyte *lparg1=NULL;

-	jbyte *lparg2=NULL;

-	jbyte *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetProfileStringA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetByteArrayElements(env, arg3, NULL);

-	rc = (jint)GetProfileStringA((LPSTR)lparg0, (LPSTR)lparg1, (LPSTR)lparg2, (LPSTR)lparg3, arg4);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseByteArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetProfileStringA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetProfileStringW

-JNIEXPORT jint JNICALL OS_NATIVE(GetProfileStringW)

-	(JNIEnv *env, jclass that, jcharArray arg0, jcharArray arg1, jcharArray arg2, jcharArray arg3, jint arg4)

-{

-	jchar *lparg0=NULL;

-	jchar *lparg1=NULL;

-	jchar *lparg2=NULL;

-	jchar *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetProfileStringW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetCharArrayElements(env, arg3, NULL);

-	rc = (jint)GetProfileStringW((LPWSTR)lparg0, (LPWSTR)lparg1, (LPWSTR)lparg2, (LPWSTR)lparg3, arg4);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseCharArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetProfileStringW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetROP2

-JNIEXPORT jint JNICALL OS_NATIVE(GetROP2)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetROP2\n")

-	rc = (jint)GetROP2((HDC)arg0);

-	NATIVE_EXIT(env, that, "GetROP2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetRegionData

-JNIEXPORT jint JNICALL OS_NATIVE(GetRegionData)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2)

-{

-	jint *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetRegionData\n")

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	rc = (jint)GetRegionData((HRGN)arg0, arg1, (RGNDATA *)lparg2);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "GetRegionData\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetRgnBox

-JNIEXPORT jint JNICALL OS_NATIVE(GetRgnBox)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	RECT _arg1, *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetRgnBox\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jint)GetRgnBox((HRGN)arg0, lparg1);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetRgnBox\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSaveFileNameA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetSaveFileNameA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	OPENFILENAME _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetSaveFileNameA\n")

-	if (arg0) lparg0 = getOPENFILENAMEFields(env, arg0, &_arg0);

-	rc = (jboolean)GetSaveFileNameA(lparg0);

-	if (arg0) setOPENFILENAMEFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetSaveFileNameA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSaveFileNameW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetSaveFileNameW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	OPENFILENAME _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetSaveFileNameW\n")

-	if (arg0) lparg0 = getOPENFILENAMEFields(env, arg0, &_arg0);

-	rc = (jboolean)GetSaveFileNameW((LPOPENFILENAMEW)lparg0);

-	if (arg0) setOPENFILENAMEFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetSaveFileNameW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetScrollInfo

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetScrollInfo)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2)

-{

-	SCROLLINFO _arg2, *lparg2=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetScrollInfo\n")

-	if (arg2) lparg2 = getSCROLLINFOFields(env, arg2, &_arg2);

-	rc = (jboolean)GetScrollInfo((HWND)arg0, arg1, lparg2);

-	if (arg2) setSCROLLINFOFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "GetScrollInfo\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetStockObject

-JNIEXPORT jint JNICALL OS_NATIVE(GetStockObject)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetStockObject\n")

-	rc = (jint)GetStockObject(arg0);

-	NATIVE_EXIT(env, that, "GetStockObject\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSysColor

-JNIEXPORT jint JNICALL OS_NATIVE(GetSysColor)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetSysColor\n")

-	rc = (jint)GetSysColor(arg0);

-	NATIVE_EXIT(env, that, "GetSysColor\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSysColorBrush

-JNIEXPORT jint JNICALL OS_NATIVE(GetSysColorBrush)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetSysColorBrush\n")

-	rc = (jint)GetSysColorBrush(arg0);

-	NATIVE_EXIT(env, that, "GetSysColorBrush\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSystemMenu

-JNIEXPORT jint JNICALL OS_NATIVE(GetSystemMenu)

-	(JNIEnv *env, jclass that, jint arg0, jboolean arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetSystemMenu\n")

-	rc = (jint)GetSystemMenu((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetSystemMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSystemMetrics

-JNIEXPORT jint JNICALL OS_NATIVE(GetSystemMetrics)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetSystemMetrics\n")

-	rc = (jint)GetSystemMetrics(arg0);

-	NATIVE_EXIT(env, that, "GetSystemMetrics\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetSystemPaletteEntries

-JNIEXPORT jint JNICALL OS_NATIVE(GetSystemPaletteEntries)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jbyteArray arg3)

-{

-	jbyte *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetSystemPaletteEntries\n")

-	if (arg3) lparg3 = (*env)->GetByteArrayElements(env, arg3, NULL);

-	rc = (jint)GetSystemPaletteEntries((HDC)arg0, (UINT)arg1, (UINT)arg2, (LPPALETTEENTRY)lparg3);

-	if (arg3) (*env)->ReleaseByteArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "GetSystemPaletteEntries\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTextCharset

-JNIEXPORT jint JNICALL OS_NATIVE(GetTextCharset)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetTextCharset\n")

-	rc = (jint)GetTextCharset((HDC)arg0);

-	NATIVE_EXIT(env, that, "GetTextCharset\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTextColor

-JNIEXPORT jint JNICALL OS_NATIVE(GetTextColor)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetTextColor\n")

-	rc = (jint)GetTextColor((HDC)arg0);

-	NATIVE_EXIT(env, that, "GetTextColor\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTextExtentPoint32A

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetTextExtentPoint32A)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jobject arg3)

-{

-	jbyte *lparg1=NULL;

-	SIZE _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetTextExtentPoint32A\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = getSIZEFields(env, arg3, &_arg3);

-	rc = (jboolean)GetTextExtentPoint32A((HDC)arg0, (LPSTR)lparg1, arg2, lparg3);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg3) setSIZEFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "GetTextExtentPoint32A\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTextExtentPoint32W

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetTextExtentPoint32W)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jobject arg3)

-{

-	jchar *lparg1=NULL;

-	SIZE _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetTextExtentPoint32W\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = getSIZEFields(env, arg3, &_arg3);

-	rc = (jboolean)GetTextExtentPoint32W((HDC)arg0, (LPWSTR)lparg1, arg2, lparg3);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg3) setSIZEFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "GetTextExtentPoint32W\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTextMetricsA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetTextMetricsA)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	TEXTMETRICA _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetTextMetricsA\n")

-	if (arg1) lparg1 = getTEXTMETRICAFields(env, arg1, &_arg1);

-	rc = (jboolean)GetTextMetricsA((HDC)arg0, lparg1);

-	if (arg1) setTEXTMETRICAFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetTextMetricsA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTextMetricsW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetTextMetricsW)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	TEXTMETRICW _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetTextMetricsW\n")

-	if (arg1) lparg1 = getTEXTMETRICWFields(env, arg1, &_arg1);

-	rc = (jboolean)GetTextMetricsW((HDC)arg0, lparg1);

-	if (arg1) setTEXTMETRICWFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetTextMetricsW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetTickCount

-JNIEXPORT jint JNICALL OS_NATIVE(GetTickCount)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetTickCount\n")

-	rc = (jint)GetTickCount();

-	NATIVE_EXIT(env, that, "GetTickCount\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetUpdateRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetUpdateRect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jboolean arg2)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetUpdateRect\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)GetUpdateRect((HWND)arg0, (LPRECT)lparg1, (BOOL)arg2);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetUpdateRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetUpdateRgn

-JNIEXPORT jint JNICALL OS_NATIVE(GetUpdateRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetUpdateRgn\n")

-	rc = (jint)GetUpdateRgn((HWND)arg0, (HRGN)arg1, arg2);

-	NATIVE_EXIT(env, that, "GetUpdateRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetVersionExA

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetVersionExA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	OSVERSIONINFOA _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetVersionExA\n")

-	if (arg0) lparg0 = getOSVERSIONINFOAFields(env, arg0, &_arg0);

-	rc = (jboolean)GetVersionExA(lparg0);

-	if (arg0) setOSVERSIONINFOAFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetVersionExA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetVersionExW

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetVersionExW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	OSVERSIONINFOW _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetVersionExW\n")

-	if (arg0) lparg0 = getOSVERSIONINFOWFields(env, arg0, &_arg0);

-	rc = (jboolean)GetVersionExW(lparg0);

-	if (arg0) setOSVERSIONINFOWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "GetVersionExW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindow

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindow)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindow\n")

-	rc = (jint)GetWindow((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowLongA

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowLongA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowLongA\n")

-	rc = (jint)GetWindowLongA((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetWindowLongA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowLongW

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowLongW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowLongW\n")

-	rc = (jint)GetWindowLongW((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "GetWindowLongW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowPlacement

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetWindowPlacement)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	WINDOWPLACEMENT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetWindowPlacement\n")

-	if (arg1) lparg1 = getWINDOWPLACEMENTFields(env, arg1, &_arg1);

-	rc = (jboolean)GetWindowPlacement((HWND)arg0, lparg1);

-	if (arg1) setWINDOWPLACEMENTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetWindowPlacement\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(GetWindowRect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GetWindowRect\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)GetWindowRect((HWND)arg0, lparg1);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "GetWindowRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowTextA

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowTextA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2)

-{

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowTextA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)GetWindowTextA((HWND)arg0, (LPSTR)lparg1, arg2);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetWindowTextA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowTextLengthA

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowTextLengthA)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowTextLengthA\n")

-	rc = (jint)GetWindowTextLengthA((HWND)arg0);

-	NATIVE_EXIT(env, that, "GetWindowTextLengthA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowTextLengthW

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowTextLengthW)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowTextLengthW\n")

-	rc = (jint)GetWindowTextLengthW((HWND)arg0);

-	NATIVE_EXIT(env, that, "GetWindowTextLengthW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowTextW

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowTextW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2)

-{

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowTextW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)GetWindowTextW((HWND)arg0, (LPWSTR)lparg1, arg2);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetWindowTextW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GetWindowThreadProcessId

-JNIEXPORT jint JNICALL OS_NATIVE(GetWindowThreadProcessId)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1)

-{

-	jint *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "GetWindowThreadProcessId\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	rc = (jint)GetWindowThreadProcessId((HWND)arg0, (LPDWORD)lparg1);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "GetWindowThreadProcessId\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GlobalAlloc

-JNIEXPORT jint JNICALL OS_NATIVE(GlobalAlloc)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GlobalAlloc\n")

-	rc = (jint)GlobalAlloc(arg0, arg1);

-	NATIVE_EXIT(env, that, "GlobalAlloc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GlobalFree

-JNIEXPORT jint JNICALL OS_NATIVE(GlobalFree)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GlobalFree\n")

-	rc = (jint)GlobalFree((HANDLE)arg0);

-	NATIVE_EXIT(env, that, "GlobalFree\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GlobalLock

-JNIEXPORT jint JNICALL OS_NATIVE(GlobalLock)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GlobalLock\n")

-	rc = (jint)GlobalLock((HANDLE)arg0);

-	NATIVE_EXIT(env, that, "GlobalLock\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GlobalSize

-JNIEXPORT jint JNICALL OS_NATIVE(GlobalSize)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "GlobalSize\n")

-	rc = (jint)GlobalSize((HANDLE)arg0);

-	NATIVE_EXIT(env, that, "GlobalSize\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_GlobalUnlock

-JNIEXPORT jboolean JNICALL OS_NATIVE(GlobalUnlock)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "GlobalUnlock\n")

-	rc = (jboolean)GlobalUnlock((HANDLE)arg0);

-	NATIVE_EXIT(env, that, "GlobalUnlock\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_HeapAlloc

-JNIEXPORT jint JNICALL OS_NATIVE(HeapAlloc)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "HeapAlloc\n")

-	rc = (jint)HeapAlloc((HANDLE)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "HeapAlloc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_HeapFree

-JNIEXPORT jboolean JNICALL OS_NATIVE(HeapFree)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "HeapFree\n")

-	rc = (jboolean)HeapFree((HANDLE)arg0, arg1, (LPVOID)arg2);

-	NATIVE_EXIT(env, that, "HeapFree\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_HideCaret

-JNIEXPORT jboolean JNICALL OS_NATIVE(HideCaret)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "HideCaret\n")

-	rc = (jboolean)HideCaret((HWND)arg0);

-	NATIVE_EXIT(env, that, "HideCaret\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1Add

-JNIEXPORT jint JNICALL OS_NATIVE(ImageList_1Add)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImageList_1Add\n")

-	rc = (jint)ImageList_Add((HIMAGELIST)arg0, (HBITMAP)arg1, (HBITMAP)arg2);

-	NATIVE_EXIT(env, that, "ImageList_1Add\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1AddMasked

-JNIEXPORT jint JNICALL OS_NATIVE(ImageList_1AddMasked)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImageList_1AddMasked\n")

-	rc = (jint)ImageList_AddMasked((HIMAGELIST)arg0, (HBITMAP)arg1, (COLORREF)arg2);

-	NATIVE_EXIT(env, that, "ImageList_1AddMasked\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1Create

-JNIEXPORT jint JNICALL OS_NATIVE(ImageList_1Create)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImageList_1Create\n")

-	rc = (jint)ImageList_Create(arg0, arg1, arg2, arg3, arg4);

-	NATIVE_EXIT(env, that, "ImageList_1Create\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1Destroy

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImageList_1Destroy)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImageList_1Destroy\n")

-	rc = (jboolean)ImageList_Destroy((HIMAGELIST)arg0);

-	NATIVE_EXIT(env, that, "ImageList_1Destroy\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1GetIcon

-JNIEXPORT jint JNICALL OS_NATIVE(ImageList_1GetIcon)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImageList_1GetIcon\n")

-	rc = (jint)ImageList_GetIcon((HIMAGELIST)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "ImageList_1GetIcon\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1GetIconSize

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImageList_1GetIconSize)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)

-{

-	jint *lparg1=NULL;

-	jint *lparg2=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImageList_1GetIconSize\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	rc = (jboolean)ImageList_GetIconSize((HIMAGELIST)arg0, lparg1, lparg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "ImageList_1GetIconSize\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1GetImageCount

-JNIEXPORT jint JNICALL OS_NATIVE(ImageList_1GetImageCount)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImageList_1GetImageCount\n")

-	rc = (jint)ImageList_GetImageCount((HIMAGELIST)arg0);

-	NATIVE_EXIT(env, that, "ImageList_1GetImageCount\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1Remove

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImageList_1Remove)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImageList_1Remove\n")

-	rc = (jboolean)ImageList_Remove((HIMAGELIST)arg0, arg1);

-	NATIVE_EXIT(env, that, "ImageList_1Remove\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1Replace

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImageList_1Replace)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImageList_1Replace\n")

-	rc = (jboolean)ImageList_Replace((HIMAGELIST)arg0, arg1, (HBITMAP)arg2, (HBITMAP)arg3);

-	NATIVE_EXIT(env, that, "ImageList_1Replace\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1ReplaceIcon

-JNIEXPORT jint JNICALL OS_NATIVE(ImageList_1ReplaceIcon)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImageList_1ReplaceIcon\n")

-	rc = (jint)ImageList_ReplaceIcon((HIMAGELIST)arg0, arg1, (HICON)arg2);

-	NATIVE_EXIT(env, that, "ImageList_1ReplaceIcon\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImageList_1SetIconSize

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImageList_1SetIconSize)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImageList_1SetIconSize\n")

-	rc = (jboolean)ImageList_SetIconSize((HIMAGELIST)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "ImageList_1SetIconSize\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmAssociateContext

-JNIEXPORT jint JNICALL OS_NATIVE(ImmAssociateContext)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImmAssociateContext\n")

-	rc = (jint)ImmAssociateContext((HWND)arg0, (HIMC)arg1);

-	NATIVE_EXIT(env, that, "ImmAssociateContext\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmCreateContext

-JNIEXPORT jint JNICALL OS_NATIVE(ImmCreateContext)

-	(JNIEnv *env, jclass that)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImmCreateContext\n")

-	rc = (jint)ImmCreateContext();

-	NATIVE_EXIT(env, that, "ImmCreateContext\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmDestroyContext

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmDestroyContext)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmDestroyContext\n")

-	rc = (jboolean)ImmDestroyContext((HIMC)arg0);

-	NATIVE_EXIT(env, that, "ImmDestroyContext\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetCompositionFontA

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmGetCompositionFontA)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	LOGFONTA _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmGetCompositionFontA\n")

-	if (arg1) lparg1 = getLOGFONTAFields(env, arg1, &_arg1);

-	rc = (jboolean)ImmGetCompositionFontA((HIMC)arg0, lparg1);

-	if (arg1) setLOGFONTAFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ImmGetCompositionFontA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetCompositionFontW

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmGetCompositionFontW)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	LOGFONTW _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmGetCompositionFontW\n")

-	if (arg1) lparg1 = getLOGFONTWFields(env, arg1, &_arg1);

-	rc = (jboolean)ImmGetCompositionFontW((HIMC)arg0, lparg1);

-	if (arg1) setLOGFONTWFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ImmGetCompositionFontW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetCompositionStringA

-JNIEXPORT jint JNICALL OS_NATIVE(ImmGetCompositionStringA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2, jint arg3)

-{

-	jbyte *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ImmGetCompositionStringA\n")

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	rc = (jint)ImmGetCompositionStringA((HIMC)arg0, arg1, (LPSTR)lparg2, arg3);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "ImmGetCompositionStringA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetCompositionStringW

-JNIEXPORT jint JNICALL OS_NATIVE(ImmGetCompositionStringW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jcharArray arg2, jint arg3)

-{

-	jchar *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ImmGetCompositionStringW\n")

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	rc = (jint)ImmGetCompositionStringW((HIMC)arg0, arg1, (LPWSTR)lparg2, arg3);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "ImmGetCompositionStringW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetContext

-JNIEXPORT jint JNICALL OS_NATIVE(ImmGetContext)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImmGetContext\n")

-	rc = (jint)ImmGetContext((HWND)arg0);

-	NATIVE_EXIT(env, that, "ImmGetContext\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetConversionStatus

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmGetConversionStatus)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jintArray arg2)

-{

-	jint *lparg1=NULL;

-	jint *lparg2=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmGetConversionStatus\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	rc = (jboolean)ImmGetConversionStatus((HIMC)arg0, lparg1, lparg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "ImmGetConversionStatus\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetDefaultIMEWnd

-JNIEXPORT jint JNICALL OS_NATIVE(ImmGetDefaultIMEWnd)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ImmGetDefaultIMEWnd\n")

-	rc = (jint)ImmGetDefaultIMEWnd((HWND)arg0);

-	NATIVE_EXIT(env, that, "ImmGetDefaultIMEWnd\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmGetOpenStatus

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmGetOpenStatus)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmGetOpenStatus\n")

-	rc = (jboolean)ImmGetOpenStatus((HIMC)arg0);

-	NATIVE_EXIT(env, that, "ImmGetOpenStatus\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmReleaseContext

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmReleaseContext)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmReleaseContext\n")

-	rc = (jboolean)ImmReleaseContext((HWND)arg0, (HIMC)arg1);

-	NATIVE_EXIT(env, that, "ImmReleaseContext\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmSetCompositionFontA

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmSetCompositionFontA)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	LOGFONTA _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmSetCompositionFontA\n")

-	if (arg1) lparg1 = getLOGFONTAFields(env, arg1, &_arg1);

-	rc = (jboolean)ImmSetCompositionFontA((HIMC)arg0, lparg1);

-	if (arg1) setLOGFONTAFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ImmSetCompositionFontA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmSetCompositionFontW

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmSetCompositionFontW)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	LOGFONTW _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmSetCompositionFontW\n")

-	if (arg1) lparg1 = getLOGFONTWFields(env, arg1, &_arg1);

-	rc = (jboolean)ImmSetCompositionFontW((HIMC)arg0, lparg1);

-	if (arg1) setLOGFONTWFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ImmSetCompositionFontW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmSetCompositionWindow

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmSetCompositionWindow)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	COMPOSITIONFORM _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmSetCompositionWindow\n")

-	if (arg1) lparg1 = getCOMPOSITIONFORMFields(env, arg1, &_arg1);

-	rc = (jboolean)ImmSetCompositionWindow((HIMC)arg0, lparg1);

-	if (arg1) setCOMPOSITIONFORMFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ImmSetCompositionWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmSetConversionStatus

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmSetConversionStatus)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmSetConversionStatus\n")

-	rc = (jboolean)ImmSetConversionStatus((HIMC)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "ImmSetConversionStatus\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ImmSetOpenStatus

-JNIEXPORT jboolean JNICALL OS_NATIVE(ImmSetOpenStatus)

-	(JNIEnv *env, jclass that, jint arg0, jboolean arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ImmSetOpenStatus\n")

-	rc = (jboolean)ImmSetOpenStatus((HIMC)arg0, arg1);

-	NATIVE_EXIT(env, that, "ImmSetOpenStatus\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InitCommonControls

-JNIEXPORT void JNICALL OS_NATIVE(InitCommonControls)

-	(JNIEnv *env, jclass that)

-{

-	NATIVE_ENTER(env, that, "InitCommonControls\n")

-	InitCommonControls();

-	NATIVE_EXIT(env, that, "InitCommonControls\n")

-}

-#endif

-

-#ifndef NO_InitCommonControlsEx

-JNIEXPORT jboolean JNICALL OS_NATIVE(InitCommonControlsEx)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	INITCOMMONCONTROLSEX _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InitCommonControlsEx\n")

-	if (arg0) lparg0 = getINITCOMMONCONTROLSEXFields(env, arg0, &_arg0);

-	rc = (jboolean)InitCommonControlsEx(lparg0);

-	if (arg0) setINITCOMMONCONTROLSEXFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "InitCommonControlsEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InsertMenuA

-JNIEXPORT jboolean JNICALL OS_NATIVE(InsertMenuA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jbyteArray arg4)

-{

-	jbyte *lparg4=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InsertMenuA\n")

-	if (arg4) lparg4 = (*env)->GetByteArrayElements(env, arg4, NULL);

-	rc = (jboolean)InsertMenuA((HMENU)arg0, arg1, arg2, arg3, lparg4);

-	if (arg4) (*env)->ReleaseByteArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "InsertMenuA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InsertMenuItemA

-JNIEXPORT jboolean JNICALL OS_NATIVE(InsertMenuItemA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2, jobject arg3)

-{

-	MENUITEMINFO _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InsertMenuItemA\n")

-	if (arg3) lparg3 = getMENUITEMINFOFields(env, arg3, &_arg3);

-	rc = (jboolean)InsertMenuItemA((HMENU)arg0, arg1, arg2, lparg3);

-	if (arg3) setMENUITEMINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "InsertMenuItemA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InsertMenuItemW

-JNIEXPORT jboolean JNICALL OS_NATIVE(InsertMenuItemW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2, jobject arg3)

-{

-	MENUITEMINFO _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InsertMenuItemW\n")

-	if (arg3) lparg3 = getMENUITEMINFOFields(env, arg3, &_arg3);

-	rc = (jboolean)InsertMenuItemW((HMENU)arg0, arg1, arg2, (LPMENUITEMINFOW)lparg3);

-	if (arg3) setMENUITEMINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "InsertMenuItemW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InsertMenuW

-JNIEXPORT jboolean JNICALL OS_NATIVE(InsertMenuW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jcharArray arg4)

-{

-	jchar *lparg4=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InsertMenuW\n")

-	if (arg4) lparg4 = (*env)->GetCharArrayElements(env, arg4, NULL);

-	rc = (jboolean)InsertMenuW((HMENU)arg0, arg1, arg2, arg3, lparg4);

-	if (arg4) (*env)->ReleaseCharArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "InsertMenuW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InvalidateRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(InvalidateRect)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jboolean arg2)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InvalidateRect\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)InvalidateRect((HWND)arg0, lparg1, arg2);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "InvalidateRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_InvalidateRgn

-JNIEXPORT jboolean JNICALL OS_NATIVE(InvalidateRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "InvalidateRgn\n")

-	rc = (jboolean)InvalidateRgn((HWND)arg0, (HRGN)arg1, arg2);

-	NATIVE_EXIT(env, that, "InvalidateRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_IsDBCSLeadByte

-JNIEXPORT jboolean JNICALL OS_NATIVE(IsDBCSLeadByte)

-	(JNIEnv *env, jclass that, jbyte arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "IsDBCSLeadByte\n")

-	rc = (jboolean)IsDBCSLeadByte(arg0);

-	NATIVE_EXIT(env, that, "IsDBCSLeadByte\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_IsIconic

-JNIEXPORT jboolean JNICALL OS_NATIVE(IsIconic)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "IsIconic\n")

-	rc = (jboolean)IsIconic((HWND)arg0);

-	NATIVE_EXIT(env, that, "IsIconic\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_IsWindowEnabled

-JNIEXPORT jboolean JNICALL OS_NATIVE(IsWindowEnabled)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "IsWindowEnabled\n")

-	rc = (jboolean)IsWindowEnabled((HWND)arg0);

-	NATIVE_EXIT(env, that, "IsWindowEnabled\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_IsWindowVisible

-JNIEXPORT jboolean JNICALL OS_NATIVE(IsWindowVisible)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "IsWindowVisible\n")

-	rc = (jboolean)IsWindowVisible((HWND)arg0);

-	NATIVE_EXIT(env, that, "IsWindowVisible\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_IsZoomed

-JNIEXPORT jboolean JNICALL OS_NATIVE(IsZoomed)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "IsZoomed\n")

-	rc = (jboolean)IsZoomed((HWND)arg0);

-	NATIVE_EXIT(env, that, "IsZoomed\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_KillTimer

-JNIEXPORT jboolean JNICALL OS_NATIVE(KillTimer)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "KillTimer\n")

-	rc = (jboolean)KillTimer((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "KillTimer\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LineTo

-JNIEXPORT jboolean JNICALL OS_NATIVE(LineTo)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "LineTo\n")

-	rc = (jboolean)LineTo((HDC)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "LineTo\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadBitmapA

-JNIEXPORT jint JNICALL OS_NATIVE(LoadBitmapA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadBitmapA\n")

-	rc = (jint)LoadBitmapA((HINSTANCE)arg0, (LPSTR)arg1);

-	NATIVE_EXIT(env, that, "LoadBitmapA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadBitmapW

-JNIEXPORT jint JNICALL OS_NATIVE(LoadBitmapW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadBitmapW\n")

-	rc = (jint)LoadBitmapW((HINSTANCE)arg0, (LPWSTR)arg1);

-	NATIVE_EXIT(env, that, "LoadBitmapW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadCursorA

-JNIEXPORT jint JNICALL OS_NATIVE(LoadCursorA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadCursorA\n")

-	rc = (jint)LoadCursorA((HINSTANCE)arg0, (LPSTR)arg1);

-	NATIVE_EXIT(env, that, "LoadCursorA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadCursorW

-JNIEXPORT jint JNICALL OS_NATIVE(LoadCursorW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadCursorW\n")

-	rc = (jint)LoadCursorW((HINSTANCE)arg0, (LPWSTR)arg1);

-	NATIVE_EXIT(env, that, "LoadCursorW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadIconA

-JNIEXPORT jint JNICALL OS_NATIVE(LoadIconA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadIconA\n")

-	rc = (jint)LoadIconA((HINSTANCE)arg0, (LPSTR)arg1);

-	NATIVE_EXIT(env, that, "LoadIconA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadIconW

-JNIEXPORT jint JNICALL OS_NATIVE(LoadIconW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadIconW\n")

-	rc = (jint)LoadIconW((HINSTANCE)arg0, (LPWSTR)arg1);

-	NATIVE_EXIT(env, that, "LoadIconW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadImageA

-JNIEXPORT jint JNICALL OS_NATIVE(LoadImageA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jint arg3, jint arg4, jint arg5)

-{

-	jbyte *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadImageA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jint)LoadImageA((HINSTANCE)arg0, (LPSTR)lparg1, arg2, arg3, arg4, arg5);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "LoadImageA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadImageW

-JNIEXPORT jint JNICALL OS_NATIVE(LoadImageW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jint arg3, jint arg4, jint arg5)

-{

-	jchar *lparg1=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadImageW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jint)LoadImageW((HINSTANCE)arg0, (LPWSTR)lparg1, arg2, arg3, arg4, arg5);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "LoadImageW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadLibraryA

-JNIEXPORT jint JNICALL OS_NATIVE(LoadLibraryA)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadLibraryA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)LoadLibraryA((LPSTR)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "LoadLibraryA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_LoadLibraryW

-JNIEXPORT jint JNICALL OS_NATIVE(LoadLibraryW)

-	(JNIEnv *env, jclass that, jcharArray arg0)

-{

-	jchar *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "LoadLibraryW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	rc = (jint)LoadLibraryW((LPWSTR)lparg0);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "LoadLibraryW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MapVirtualKeyA

-JNIEXPORT jint JNICALL OS_NATIVE(MapVirtualKeyA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "MapVirtualKeyA\n")

-	rc = (jint)MapVirtualKeyA(arg0, arg1);

-	NATIVE_EXIT(env, that, "MapVirtualKeyA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MapVirtualKeyW

-JNIEXPORT jint JNICALL OS_NATIVE(MapVirtualKeyW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "MapVirtualKeyW\n")

-	rc = (jint)MapVirtualKeyW(arg0, arg1);

-	NATIVE_EXIT(env, that, "MapVirtualKeyW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MapWindowPoints__IILorg_eclipse_swt_internal_win32_POINT_2I

-JNIEXPORT jint JNICALL OS_NATIVE(MapWindowPoints__IILorg_eclipse_swt_internal_win32_POINT_2I)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2, jint arg3)

-{

-	POINT _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "MapWindowPoints__IILorg_eclipse_swt_internal_win32_POINT_2I\n")

-	if (arg2) lparg2 = getPOINTFields(env, arg2, &_arg2);

-	rc = (jint)MapWindowPoints((HWND)arg0, (HWND)arg1, (LPPOINT)lparg2, arg3);

-	if (arg2) setPOINTFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "MapWindowPoints__IILorg_eclipse_swt_internal_win32_POINT_2I\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MapWindowPoints__IILorg_eclipse_swt_internal_win32_RECT_2I

-JNIEXPORT jint JNICALL OS_NATIVE(MapWindowPoints__IILorg_eclipse_swt_internal_win32_RECT_2I)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jobject arg2, jint arg3)

-{

-	RECT _arg2, *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "MapWindowPoints__IILorg_eclipse_swt_internal_win32_RECT_2I\n")

-	if (arg2) lparg2 = getRECTFields(env, arg2, &_arg2);

-	rc = (jint)MapWindowPoints((HWND)arg0, (HWND)arg1, (LPPOINT)lparg2, arg3);

-	if (arg2) setRECTFields(env, arg2, lparg2);

-	NATIVE_EXIT(env, that, "MapWindowPoints__IILorg_eclipse_swt_internal_win32_RECT_2I\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MessageBeep

-JNIEXPORT jboolean JNICALL OS_NATIVE(MessageBeep)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "MessageBeep\n")

-	rc = (jboolean)MessageBeep(arg0);

-	NATIVE_EXIT(env, that, "MessageBeep\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MessageBoxA

-JNIEXPORT jint JNICALL OS_NATIVE(MessageBoxA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jbyteArray arg2, jint arg3)

-{

-	jbyte *lparg1=NULL;

-	jbyte *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "MessageBoxA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	rc = (jint)MessageBoxA((HWND)arg0, (LPSTR)lparg1, (LPSTR)lparg2, arg3);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "MessageBoxA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MessageBoxW

-JNIEXPORT jint JNICALL OS_NATIVE(MessageBoxW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jcharArray arg2, jint arg3)

-{

-	jchar *lparg1=NULL;

-	jchar *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "MessageBoxW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	rc = (jint)MessageBoxW((HWND)arg0, (LPWSTR)lparg1, (LPWSTR)lparg2, arg3);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "MessageBoxW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_DROPFILES_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_DROPFILES_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	DROPFILES _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_DROPFILES_2I\n")

-	if (arg1) lparg1 = getDROPFILESFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_DROPFILES_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_GRADIENT_1RECT_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_GRADIENT_1RECT_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	GRADIENT_RECT _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_GRADIENT_1RECT_2I\n")

-	if (arg1) lparg1 = getGRADIENT_RECTFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_GRADIENT_1RECT_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTA_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTA_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	LOGFONTA _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTA_2I\n")

-	if (arg1) lparg1 = getLOGFONTAFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTA_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTW_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTW_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	LOGFONTW _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTW_2I\n")

-	if (arg1) lparg1 = getLOGFONTWFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_LOGFONTW_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	MEASUREITEMSTRUCT _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2I\n")

-	if (arg1) lparg1 = getMEASUREITEMSTRUCTFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	NMLVCUSTOMDRAW _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2I\n")

-	if (arg1) lparg1 = getNMLVCUSTOMDRAWFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	NMTTDISPINFOA _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2I\n")

-	if (arg1) lparg1 = getNMTTDISPINFOAFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	NMTTDISPINFOW _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2I\n")

-	if (arg1) lparg1 = getNMTTDISPINFOWFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	NMTVCUSTOMDRAW _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2I\n")

-	if (arg1) lparg1 = getNMTVCUSTOMDRAWFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_RECT_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_RECT_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	RECT _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_RECT_2I\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_RECT_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_TRIVERTEX_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_TRIVERTEX_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	TRIVERTEX _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_TRIVERTEX_2I\n")

-	if (arg1) lparg1 = getTRIVERTEXFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_TRIVERTEX_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__ILorg_eclipse_swt_internal_win32_WINDOWPOS_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__ILorg_eclipse_swt_internal_win32_WINDOWPOS_2I)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2)

-{

-	WINDOWPOS _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_WINDOWPOS_2I\n")

-	if (arg1) lparg1 = getWINDOWPOSFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) setWINDOWPOSFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "MoveMemory__ILorg_eclipse_swt_internal_win32_WINDOWPOS_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__I_3BI

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__I_3BI)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2)

-{

-	jbyte *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__I_3BI\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, JNI_ABORT);

-	NATIVE_EXIT(env, that, "MoveMemory__I_3BI\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__I_3CI

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__I_3CI)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2)

-{

-	jchar *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__I_3CI\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, JNI_ABORT);

-	NATIVE_EXIT(env, that, "MoveMemory__I_3CI\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__I_3DI

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__I_3DI)

-	(JNIEnv *env, jclass that, jint arg0, jdoubleArray arg1, jint arg2)

-{

-	jdouble *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__I_3DI\n")

-	if (arg1) lparg1 = (*env)->GetDoubleArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseDoubleArrayElements(env, arg1, lparg1, JNI_ABORT);

-	NATIVE_EXIT(env, that, "MoveMemory__I_3DI\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__I_3FI

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__I_3FI)

-	(JNIEnv *env, jclass that, jint arg0, jfloatArray arg1, jint arg2)

-{

-	jfloat *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__I_3FI\n")

-	if (arg1) lparg1 = (*env)->GetFloatArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseFloatArrayElements(env, arg1, lparg1, JNI_ABORT);

-	NATIVE_EXIT(env, that, "MoveMemory__I_3FI\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__I_3II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__I_3II)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jint arg2)

-{

-	jint *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__I_3II\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, JNI_ABORT);

-	NATIVE_EXIT(env, that, "MoveMemory__I_3II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__I_3SI

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__I_3SI)

-	(JNIEnv *env, jclass that, jint arg0, jshortArray arg1, jint arg2)

-{

-	jshort *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__I_3SI\n")

-	if (arg1) lparg1 = (*env)->GetShortArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseShortArrayElements(env, arg1, lparg1, JNI_ABORT);

-	NATIVE_EXIT(env, that, "MoveMemory__I_3SI\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2_3BI

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2_3BI)

-	(JNIEnv *env, jclass that, jobject arg0, jbyteArray arg1, jint arg2)

-{

-	BITMAPINFOHEADER _arg0, *lparg0=NULL;

-	jbyte *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2_3BI\n")

-	if (arg0) lparg0 = &_arg0;

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)lparg1, arg2);

-	if (arg0) setBITMAPINFOHEADERFields(env, arg0, lparg0);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2_3BI\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_DRAWITEMSTRUCT_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_DRAWITEMSTRUCT_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	DRAWITEMSTRUCT _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_DRAWITEMSTRUCT_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setDRAWITEMSTRUCTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_DRAWITEMSTRUCT_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_HDITEM_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_HDITEM_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	HDITEM _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_HDITEM_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setHDITEMFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_HDITEM_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_HELPINFO_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_HELPINFO_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	HELPINFO _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_HELPINFO_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setHELPINFOFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_HELPINFO_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTA_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTA_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	LOGFONTA _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTA_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setLOGFONTAFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTA_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTW_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTW_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	LOGFONTW _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTW_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setLOGFONTWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_LOGFONTW_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	MEASUREITEMSTRUCT _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setMEASUREITEMSTRUCTFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_MEASUREITEMSTRUCT_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_MSG_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_MSG_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	MSG _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_MSG_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_MSG_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMHDR_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMHDR_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMHDR _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMHDR_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMHDRFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMHDR_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMHEADER _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMHEADERFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMHEADER_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMLISTVIEW_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMLISTVIEW_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMLISTVIEW _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMLISTVIEW_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMLISTVIEWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMLISTVIEW_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMLVCUSTOMDRAW _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMLVCUSTOMDRAWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMLVCUSTOMDRAW_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMREBARCHEVRON_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMREBARCHEVRON_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMREBARCHEVRON _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMREBARCHEVRON_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMREBARCHEVRONFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMREBARCHEVRON_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMTOOLBAR_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMTOOLBAR_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMTOOLBAR _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTOOLBAR_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMTOOLBARFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTOOLBAR_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMTTDISPINFOA _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMTTDISPINFOAFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOA_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMTTDISPINFOW _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMTTDISPINFOWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTTDISPINFOW_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	NMTVCUSTOMDRAW _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setNMTVCUSTOMDRAWFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_NMTVCUSTOMDRAW_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_TVITEM_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_TVITEM_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	TVITEM _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_TVITEM_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setTVITEMFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_TVITEM_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory__Lorg_eclipse_swt_internal_win32_WINDOWPOS_2II

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory__Lorg_eclipse_swt_internal_win32_WINDOWPOS_2II)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2)

-{

-	WINDOWPOS _arg0, *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_WINDOWPOS_2II\n")

-	if (arg0) lparg0 = &_arg0;

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) setWINDOWPOSFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "MoveMemory__Lorg_eclipse_swt_internal_win32_WINDOWPOS_2II\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3BII

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3BII)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jint arg1, jint arg2)

-{

-	jbyte *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3BII\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3BII\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3BLorg_eclipse_swt_internal_win32_ACCEL_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3BLorg_eclipse_swt_internal_win32_ACCEL_2I)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jobject arg1, jint arg2)

-{

-	jbyte *lparg0=NULL;

-	ACCEL _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3BLorg_eclipse_swt_internal_win32_ACCEL_2I\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = getACCELFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)lparg1, arg2);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3BLorg_eclipse_swt_internal_win32_ACCEL_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3BLorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2I

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3BLorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2I)

-	(JNIEnv *env, jclass that, jbyteArray arg0, jobject arg1, jint arg2)

-{

-	jbyte *lparg0=NULL;

-	BITMAPINFOHEADER _arg1, *lparg1=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3BLorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2I\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	if (arg1) lparg1 = getBITMAPINFOHEADERFields(env, arg1, &_arg1);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)lparg1, arg2);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3BLorg_eclipse_swt_internal_win32_BITMAPINFOHEADER_2I\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3CII

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3CII)

-	(JNIEnv *env, jclass that, jcharArray arg0, jint arg1, jint arg2)

-{

-	jchar *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3CII\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3CII\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3DII

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3DII)

-	(JNIEnv *env, jclass that, jdoubleArray arg0, jint arg1, jint arg2)

-{

-	jdouble *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3DII\n")

-	if (arg0) lparg0 = (*env)->GetDoubleArrayElements(env, arg0, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) (*env)->ReleaseDoubleArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3DII\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3FII

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3FII)

-	(JNIEnv *env, jclass that, jfloatArray arg0, jint arg1, jint arg2)

-{

-	jfloat *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3FII\n")

-	if (arg0) lparg0 = (*env)->GetFloatArrayElements(env, arg0, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) (*env)->ReleaseFloatArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3FII\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3III

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3III)

-	(JNIEnv *env, jclass that, jintArray arg0, jint arg1, jint arg2)

-{

-	jint *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3III\n")

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3III\n")

-}

-#endif

-

-#ifndef NO_MoveMemory___3SII

-JNIEXPORT void JNICALL OS_NATIVE(MoveMemory___3SII)

-	(JNIEnv *env, jclass that, jshortArray arg0, jint arg1, jint arg2)

-{

-	jshort *lparg0=NULL;

-	NATIVE_ENTER(env, that, "MoveMemory___3SII\n")

-	if (arg0) lparg0 = (*env)->GetShortArrayElements(env, arg0, NULL);

-	MoveMemory((PVOID)lparg0, (CONST VOID *)arg1, arg2);

-	if (arg0) (*env)->ReleaseShortArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "MoveMemory___3SII\n")

-}

-#endif

-

-#ifndef NO_MoveToEx

-JNIEXPORT jboolean JNICALL OS_NATIVE(MoveToEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "MoveToEx\n")

-	rc = (jboolean)MoveToEx((HDC)arg0, arg1, arg2, (LPPOINT)arg3);

-	NATIVE_EXIT(env, that, "MoveToEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MsgWaitForMultipleObjectsEx

-JNIEXPORT jint JNICALL OS_NATIVE(MsgWaitForMultipleObjectsEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "MsgWaitForMultipleObjectsEx\n")

-	rc = (jint)MsgWaitForMultipleObjectsEx((DWORD)arg0, (LPHANDLE)arg1, (DWORD)arg2, (DWORD)arg3, (DWORD)arg4);

-	NATIVE_EXIT(env, that, "MsgWaitForMultipleObjectsEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MultiByteToWideChar__IIII_3CI

-JNIEXPORT jint JNICALL OS_NATIVE(MultiByteToWideChar__IIII_3CI)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jcharArray arg4, jint arg5)

-{

-	jchar *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "MultiByteToWideChar__IIII_3CI\n")

-	if (arg4) lparg4 = (*env)->GetCharArrayElements(env, arg4, NULL);

-	rc = (jint)MultiByteToWideChar(arg0, arg1, (LPCSTR)arg2, arg3, (LPWSTR)lparg4, arg5);

-	if (arg4) (*env)->ReleaseCharArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "MultiByteToWideChar__IIII_3CI\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_MultiByteToWideChar__II_3BI_3CI

-JNIEXPORT jint JNICALL OS_NATIVE(MultiByteToWideChar__II_3BI_3CI)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2, jint arg3, jcharArray arg4, jint arg5)

-{

-	jbyte *lparg2=NULL;

-	jchar *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "MultiByteToWideChar__II_3BI_3CI\n")

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	if (arg4) lparg4 = (*env)->GetCharArrayElements(env, arg4, NULL);

-	rc = (jint)MultiByteToWideChar(arg0, arg1, (LPCSTR)lparg2, arg3, (LPWSTR)lparg4, arg5);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	if (arg4) (*env)->ReleaseCharArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "MultiByteToWideChar__II_3BI_3CI\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_OleInitialize

-JNIEXPORT jint JNICALL OS_NATIVE(OleInitialize)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "OleInitialize\n")

-	rc = (jint)OleInitialize((LPVOID)arg0);

-	NATIVE_EXIT(env, that, "OleInitialize\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_OleUninitialize

-JNIEXPORT void JNICALL OS_NATIVE(OleUninitialize)

-	(JNIEnv *env, jclass that)

-{

-	NATIVE_ENTER(env, that, "OleUninitialize\n")

-	OleUninitialize();

-	NATIVE_EXIT(env, that, "OleUninitialize\n")

-}

-#endif

-

-#ifndef NO_OpenClipboard

-JNIEXPORT jboolean JNICALL OS_NATIVE(OpenClipboard)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "OpenClipboard\n")

-	rc = (jboolean)OpenClipboard((HWND)arg0);

-	NATIVE_EXIT(env, that, "OpenClipboard\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PatBlt

-JNIEXPORT jboolean JNICALL OS_NATIVE(PatBlt)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PatBlt\n")

-	rc = (jboolean)PatBlt((HDC)arg0, arg1, arg2, arg3, arg4, arg5);

-	NATIVE_EXIT(env, that, "PatBlt\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PeekMessageA

-JNIEXPORT jboolean JNICALL OS_NATIVE(PeekMessageA)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	MSG _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PeekMessageA\n")

-	if (arg0) lparg0 = getMSGFields(env, arg0, &_arg0);

-	rc = (jboolean)PeekMessageA(lparg0, (HWND)arg1, arg2, arg3, arg4);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "PeekMessageA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PeekMessageW

-JNIEXPORT jboolean JNICALL OS_NATIVE(PeekMessageW)

-	(JNIEnv *env, jclass that, jobject arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	MSG _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PeekMessageW\n")

-	if (arg0) lparg0 = getMSGFields(env, arg0, &_arg0);

-	rc = (jboolean)PeekMessageW(lparg0, (HWND)arg1, arg2, arg3, arg4);

-	if (arg0) setMSGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "PeekMessageW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_Pie

-JNIEXPORT jboolean JNICALL OS_NATIVE(Pie)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6, jint arg7, jint arg8)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "Pie\n")

-	rc = (jboolean)Pie((HDC)arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);

-	NATIVE_EXIT(env, that, "Pie\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_Polygon

-JNIEXPORT jboolean JNICALL OS_NATIVE(Polygon)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jint arg2)

-{

-	jint *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "Polygon\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	rc = (jboolean)Polygon((HDC)arg0, (CONST POINT *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "Polygon\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_Polyline

-JNIEXPORT jboolean JNICALL OS_NATIVE(Polyline)

-	(JNIEnv *env, jclass that, jint arg0, jintArray arg1, jint arg2)

-{

-	jint *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "Polyline\n")

-	if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);

-	rc = (jboolean)Polyline((HDC)arg0, (CONST POINT *)lparg1, arg2);

-	if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "Polyline\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PostMessageA

-JNIEXPORT jboolean JNICALL OS_NATIVE(PostMessageA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PostMessageA\n")

-	rc = (jboolean)PostMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "PostMessageA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PostMessageW

-JNIEXPORT jboolean JNICALL OS_NATIVE(PostMessageW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PostMessageW\n")

-	rc = (jboolean)PostMessageW((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "PostMessageW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PostThreadMessageA

-JNIEXPORT jboolean JNICALL OS_NATIVE(PostThreadMessageA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PostThreadMessageA\n")

-	rc = (jboolean)PostThreadMessageA(arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "PostThreadMessageA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PostThreadMessageW

-JNIEXPORT jboolean JNICALL OS_NATIVE(PostThreadMessageW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PostThreadMessageW\n")

-	rc = (jboolean)PostThreadMessageW(arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "PostThreadMessageW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PrintDlgA

-JNIEXPORT jboolean JNICALL OS_NATIVE(PrintDlgA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	PRINTDLG _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PrintDlgA\n")

-	if (arg0) lparg0 = getPRINTDLGFields(env, arg0, &_arg0);

-	rc = (jboolean)PrintDlgA(lparg0);

-	if (arg0) setPRINTDLGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "PrintDlgA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PrintDlgW

-JNIEXPORT jboolean JNICALL OS_NATIVE(PrintDlgW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	PRINTDLG _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PrintDlgW\n")

-	if (arg0) lparg0 = getPRINTDLGFields(env, arg0, &_arg0);

-	rc = (jboolean)PrintDlgW((LPPRINTDLGW)lparg0);

-	if (arg0) setPRINTDLGFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "PrintDlgW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PtInRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(PtInRect)

-	(JNIEnv *env, jclass that, jobject arg0, jobject arg1)

-{

-	RECT _arg0, *lparg0=NULL;

-	POINT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PtInRect\n")

-	if (arg0) lparg0 = getRECTFields(env, arg0, &_arg0);

-	if (arg1) lparg1 = getPOINTFields(env, arg1, &_arg1);

-	rc = (jboolean)PtInRect(lparg0, *lparg1);

-	if (arg0) setRECTFields(env, arg0, lparg0);

-	if (arg1) setPOINTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "PtInRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_PtInRegion

-JNIEXPORT jboolean JNICALL OS_NATIVE(PtInRegion)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "PtInRegion\n")

-	rc = (jboolean)PtInRegion((HRGN)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "PtInRegion\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RealizePalette

-JNIEXPORT jint JNICALL OS_NATIVE(RealizePalette)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "RealizePalette\n")

-	rc = (jint)RealizePalette((HDC)arg0);

-	NATIVE_EXIT(env, that, "RealizePalette\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RectInRegion

-JNIEXPORT jboolean JNICALL OS_NATIVE(RectInRegion)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "RectInRegion\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)RectInRegion((HRGN)arg0, lparg1);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "RectInRegion\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_Rectangle

-JNIEXPORT jboolean JNICALL OS_NATIVE(Rectangle)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "Rectangle\n")

-	rc = (jboolean)Rectangle((HDC)arg0, arg1, arg2, arg3, arg4);

-	NATIVE_EXIT(env, that, "Rectangle\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RedrawWindow

-JNIEXPORT jboolean JNICALL OS_NATIVE(RedrawWindow)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1, jint arg2, jint arg3)

-{

-	RECT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "RedrawWindow\n")

-	if (arg1) lparg1 = getRECTFields(env, arg1, &_arg1);

-	rc = (jboolean)RedrawWindow((HWND)arg0, lparg1, (HRGN)arg2, arg3);

-	if (arg1) setRECTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "RedrawWindow\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegCloseKey

-JNIEXPORT jint JNICALL OS_NATIVE(RegCloseKey)

-	(JNIEnv *env, jclass that, jint arg0)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "RegCloseKey\n")

-	rc = (jint)RegCloseKey((HKEY)arg0);

-	NATIVE_EXIT(env, that, "RegCloseKey\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegEnumKeyExA

-JNIEXPORT jint JNICALL OS_NATIVE(RegEnumKeyExA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2, jintArray arg3, jintArray arg4, jbyteArray arg5, jintArray arg6, jobject arg7)

-{

-	jbyte *lparg2=NULL;

-	jint *lparg3=NULL;

-	jint *lparg4=NULL;

-	jbyte *lparg5=NULL;

-	jint *lparg6=NULL;

-	FILETIME _arg7, *lparg7=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegEnumKeyExA\n")

-	if (arg2) lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetByteArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL);

-	if (arg7) lparg7 = getFILETIMEFields(env, arg7, &_arg7);

-	rc = (jint)RegEnumKeyExA((HKEY)arg0, arg1, (LPSTR)lparg2, lparg3, lparg4, (LPSTR)lparg5, lparg6, lparg7);

-	if (arg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseByteArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0);

-	if (arg7) setFILETIMEFields(env, arg7, lparg7);

-	NATIVE_EXIT(env, that, "RegEnumKeyExA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegEnumKeyExW

-JNIEXPORT jint JNICALL OS_NATIVE(RegEnumKeyExW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jcharArray arg2, jintArray arg3, jintArray arg4, jcharArray arg5, jintArray arg6, jobject arg7)

-{

-	jchar *lparg2=NULL;

-	jint *lparg3=NULL;

-	jint *lparg4=NULL;

-	jchar *lparg5=NULL;

-	jint *lparg6=NULL;

-	FILETIME _arg7, *lparg7=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegEnumKeyExW\n")

-	if (arg2) lparg2 = (*env)->GetCharArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetCharArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL);

-	if (arg7) lparg7 = getFILETIMEFields(env, arg7, &_arg7);

-	rc = (jint)RegEnumKeyExW((HKEY)arg0, arg1, (LPWSTR)lparg2, lparg3, lparg4, (LPWSTR)lparg5, lparg6, lparg7);

-	if (arg2) (*env)->ReleaseCharArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseCharArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0);

-	if (arg7) setFILETIMEFields(env, arg7, lparg7);

-	NATIVE_EXIT(env, that, "RegEnumKeyExW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegOpenKeyExA

-JNIEXPORT jint JNICALL OS_NATIVE(RegOpenKeyExA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jint arg3, jintArray arg4)

-{

-	jbyte *lparg1=NULL;

-	jint *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegOpenKeyExA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	rc = (jint)RegOpenKeyExA((HKEY)arg0, (LPSTR)lparg1, arg2, arg3, (PHKEY)lparg4);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "RegOpenKeyExA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegOpenKeyExW

-JNIEXPORT jint JNICALL OS_NATIVE(RegOpenKeyExW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jint arg3, jintArray arg4)

-{

-	jchar *lparg1=NULL;

-	jint *lparg4=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegOpenKeyExW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	rc = (jint)RegOpenKeyExW((HKEY)arg0, (LPWSTR)lparg1, arg2, arg3, (PHKEY)lparg4);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	NATIVE_EXIT(env, that, "RegOpenKeyExW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegQueryInfoKeyA

-JNIEXPORT jint JNICALL OS_NATIVE(RegQueryInfoKeyA)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2, jint arg3, jintArray arg4, jintArray arg5, jintArray arg6, jintArray arg7, jintArray arg8, jintArray arg9, jintArray arg10, jint arg11)

-{

-	jint *lparg2=NULL;

-	jint *lparg4=NULL;

-	jint *lparg5=NULL;

-	jint *lparg6=NULL;

-	jint *lparg7=NULL;

-	jint *lparg8=NULL;

-	jint *lparg9=NULL;

-	jint *lparg10=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegQueryInfoKeyA\n")

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL);

-	if (arg7) lparg7 = (*env)->GetIntArrayElements(env, arg7, NULL);

-	if (arg8) lparg8 = (*env)->GetIntArrayElements(env, arg8, NULL);

-	if (arg9) lparg9 = (*env)->GetIntArrayElements(env, arg9, NULL);

-	if (arg10) lparg10 = (*env)->GetIntArrayElements(env, arg10, NULL);

-	rc = (jint)RegQueryInfoKeyA((HKEY)arg0, (LPSTR)arg1, lparg2, (LPDWORD)arg3, lparg4, lparg5, lparg6, lparg7, lparg8, lparg9, lparg10, (PFILETIME)arg11);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0);

-	if (arg7) (*env)->ReleaseIntArrayElements(env, arg7, lparg7, 0);

-	if (arg8) (*env)->ReleaseIntArrayElements(env, arg8, lparg8, 0);

-	if (arg9) (*env)->ReleaseIntArrayElements(env, arg9, lparg9, 0);

-	if (arg10) (*env)->ReleaseIntArrayElements(env, arg10, lparg10, 0);

-	NATIVE_EXIT(env, that, "RegQueryInfoKeyA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegQueryInfoKeyW

-JNIEXPORT jint JNICALL OS_NATIVE(RegQueryInfoKeyW)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2, jint arg3, jintArray arg4, jintArray arg5, jintArray arg6, jintArray arg7, jintArray arg8, jintArray arg9, jintArray arg10, jint arg11)

-{

-	jint *lparg2=NULL;

-	jint *lparg4=NULL;

-	jint *lparg5=NULL;

-	jint *lparg6=NULL;

-	jint *lparg7=NULL;

-	jint *lparg8=NULL;

-	jint *lparg9=NULL;

-	jint *lparg10=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegQueryInfoKeyW\n")

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	if (arg4) lparg4 = (*env)->GetIntArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL);

-	if (arg6) lparg6 = (*env)->GetIntArrayElements(env, arg6, NULL);

-	if (arg7) lparg7 = (*env)->GetIntArrayElements(env, arg7, NULL);

-	if (arg8) lparg8 = (*env)->GetIntArrayElements(env, arg8, NULL);

-	if (arg9) lparg9 = (*env)->GetIntArrayElements(env, arg9, NULL);

-	if (arg10) lparg10 = (*env)->GetIntArrayElements(env, arg10, NULL);

-	rc = (jint)RegQueryInfoKeyW((HKEY)arg0, (LPWSTR)arg1, lparg2, (LPDWORD)arg3, lparg4, lparg5, lparg6, lparg7, lparg8, lparg9, lparg10, (PFILETIME)arg11);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	if (arg4) (*env)->ReleaseIntArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0);

-	if (arg6) (*env)->ReleaseIntArrayElements(env, arg6, lparg6, 0);

-	if (arg7) (*env)->ReleaseIntArrayElements(env, arg7, lparg7, 0);

-	if (arg8) (*env)->ReleaseIntArrayElements(env, arg8, lparg8, 0);

-	if (arg9) (*env)->ReleaseIntArrayElements(env, arg9, lparg9, 0);

-	if (arg10) (*env)->ReleaseIntArrayElements(env, arg10, lparg10, 0);

-	NATIVE_EXIT(env, that, "RegQueryInfoKeyW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegQueryValueExA

-JNIEXPORT jint JNICALL OS_NATIVE(RegQueryValueExA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1, jint arg2, jintArray arg3, jbyteArray arg4, jintArray arg5)

-{

-	jbyte *lparg1=NULL;

-	jint *lparg3=NULL;

-	jbyte *lparg4=NULL;

-	jint *lparg5=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegQueryValueExA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	if (arg4) lparg4 = (*env)->GetByteArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL);

-	rc = (jint)RegQueryValueExA((HKEY)arg0, (LPSTR)lparg1, (LPDWORD)arg2, lparg3, (LPBYTE)lparg4, lparg5);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	if (arg4) (*env)->ReleaseByteArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0);

-	NATIVE_EXIT(env, that, "RegQueryValueExA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegQueryValueExW

-JNIEXPORT jint JNICALL OS_NATIVE(RegQueryValueExW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jintArray arg3, jcharArray arg4, jintArray arg5)

-{

-	jchar *lparg1=NULL;

-	jint *lparg3=NULL;

-	jchar *lparg4=NULL;

-	jint *lparg5=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegQueryValueExW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	if (arg4) lparg4 = (*env)->GetCharArrayElements(env, arg4, NULL);

-	if (arg5) lparg5 = (*env)->GetIntArrayElements(env, arg5, NULL);

-	rc = (jint)RegQueryValueExW((HKEY)arg0, (LPWSTR)lparg1, (LPDWORD)arg2, lparg3, (LPBYTE)lparg4, lparg5);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	if (arg4) (*env)->ReleaseCharArrayElements(env, arg4, lparg4, 0);

-	if (arg5) (*env)->ReleaseIntArrayElements(env, arg5, lparg5, 0);

-	NATIVE_EXIT(env, that, "RegQueryValueExW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegisterClassA

-JNIEXPORT jint JNICALL OS_NATIVE(RegisterClassA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	WNDCLASS _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegisterClassA\n")

-	if (arg0) lparg0 = getWNDCLASSFields(env, arg0, &_arg0);

-	rc = (jint)RegisterClassA(lparg0);

-	if (arg0) setWNDCLASSFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "RegisterClassA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegisterClassW

-JNIEXPORT jint JNICALL OS_NATIVE(RegisterClassW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	WNDCLASS _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegisterClassW\n")

-	if (arg0) lparg0 = getWNDCLASSFields(env, arg0, &_arg0);

-	rc = (jint)RegisterClassW((LPWNDCLASSW)lparg0);

-	if (arg0) setWNDCLASSFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "RegisterClassW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegisterClipboardFormatA

-JNIEXPORT jint JNICALL OS_NATIVE(RegisterClipboardFormatA)

-	(JNIEnv *env, jclass that, jbyteArray arg0)

-{

-	jbyte *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegisterClipboardFormatA\n")

-	if (arg0) lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL);

-	rc = (jint)RegisterClipboardFormatA((LPTSTR)lparg0);

-	if (arg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "RegisterClipboardFormatA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RegisterClipboardFormatW

-JNIEXPORT jint JNICALL OS_NATIVE(RegisterClipboardFormatW)

-	(JNIEnv *env, jclass that, jcharArray arg0)

-{

-	jchar *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "RegisterClipboardFormatW\n")

-	if (arg0) lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL);

-	rc = (jint)RegisterClipboardFormatW((LPWSTR)lparg0);

-	if (arg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "RegisterClipboardFormatW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ReleaseCapture

-JNIEXPORT jboolean JNICALL OS_NATIVE(ReleaseCapture)

-	(JNIEnv *env, jclass that)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ReleaseCapture\n")

-	rc = (jboolean)ReleaseCapture();

-	NATIVE_EXIT(env, that, "ReleaseCapture\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ReleaseDC

-JNIEXPORT jint JNICALL OS_NATIVE(ReleaseDC)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "ReleaseDC\n")

-	rc = (jint)ReleaseDC((HWND)arg0, (HDC)arg1);

-	NATIVE_EXIT(env, that, "ReleaseDC\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RemoveMenu

-JNIEXPORT jboolean JNICALL OS_NATIVE(RemoveMenu)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "RemoveMenu\n")

-	rc = (jboolean)RemoveMenu((HMENU)arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "RemoveMenu\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_RoundRect

-JNIEXPORT jboolean JNICALL OS_NATIVE(RoundRect)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5, jint arg6)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "RoundRect\n")

-	rc = (jboolean)RoundRect((HDC)arg0, arg1, arg2, arg3, arg4, arg5, arg6);

-	NATIVE_EXIT(env, that, "RoundRect\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHBrowseForFolderA

-JNIEXPORT jint JNICALL OS_NATIVE(SHBrowseForFolderA)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	BROWSEINFO _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SHBrowseForFolderA\n")

-	if (arg0) lparg0 = getBROWSEINFOFields(env, arg0, &_arg0);

-	rc = (jint)SHBrowseForFolderA(lparg0);

-	if (arg0) setBROWSEINFOFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "SHBrowseForFolderA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHBrowseForFolderW

-JNIEXPORT jint JNICALL OS_NATIVE(SHBrowseForFolderW)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	BROWSEINFO _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SHBrowseForFolderW\n")

-	if (arg0) lparg0 = getBROWSEINFOFields(env, arg0, &_arg0);

-	rc = (jint)SHBrowseForFolderW((LPBROWSEINFOW)lparg0);

-	if (arg0) setBROWSEINFOFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "SHBrowseForFolderW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHCreateMenuBar

-JNIEXPORT jboolean JNICALL OS_NATIVE(SHCreateMenuBar)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	SHMENUBARINFO _arg0, *lparg0=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "SHCreateMenuBar\n")

-	if (arg0) lparg0 = getSHMENUBARINFOFields(env, arg0, &_arg0);

-	rc = (jboolean)SHCreateMenuBar((PSHMENUBARINFO)lparg0);

-	if (arg0) setSHMENUBARINFOFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "SHCreateMenuBar\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHGetMalloc

-JNIEXPORT jint JNICALL OS_NATIVE(SHGetMalloc)

-	(JNIEnv *env, jclass that, jintArray arg0)

-{

-	jint *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SHGetMalloc\n")

-	if (arg0) lparg0 = (*env)->GetIntArrayElements(env, arg0, NULL);

-	rc = (jint)SHGetMalloc((LPMALLOC *)lparg0);

-	if (arg0) (*env)->ReleaseIntArrayElements(env, arg0, lparg0, 0);

-	NATIVE_EXIT(env, that, "SHGetMalloc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHGetPathFromIDListA

-JNIEXPORT jboolean JNICALL OS_NATIVE(SHGetPathFromIDListA)

-	(JNIEnv *env, jclass that, jint arg0, jbyteArray arg1)

-{

-	jbyte *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "SHGetPathFromIDListA\n")

-	if (arg1) lparg1 = (*env)->GetByteArrayElements(env, arg1, NULL);

-	rc = (jboolean)SHGetPathFromIDListA((LPCITEMIDLIST)arg0, (LPSTR)lparg1);

-	if (arg1) (*env)->ReleaseByteArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "SHGetPathFromIDListA\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHGetPathFromIDListW

-JNIEXPORT jboolean JNICALL OS_NATIVE(SHGetPathFromIDListW)

-	(JNIEnv *env, jclass that, jint arg0, jcharArray arg1)

-{

-	jchar *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "SHGetPathFromIDListW\n")

-	if (arg1) lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL);

-	rc = (jboolean)SHGetPathFromIDListW((LPCITEMIDLIST)arg0, (LPWSTR)lparg1);

-	if (arg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);

-	NATIVE_EXIT(env, that, "SHGetPathFromIDListW\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHHandleWMSettingChange

-JNIEXPORT jboolean JNICALL OS_NATIVE(SHHandleWMSettingChange)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	SHACTIVATEINFO _arg3, *lparg3=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "SHHandleWMSettingChange\n")

-	if (arg3) lparg3 = getSHACTIVATEINFOFields(env, arg3, &_arg3);

-	rc = (jboolean)SHHandleWMSettingChange((HWND)arg0, arg1, arg2, lparg3);

-	if (arg3) setSHACTIVATEINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SHHandleWMSettingChange\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHRecognizeGesture

-JNIEXPORT jint JNICALL OS_NATIVE(SHRecognizeGesture)

-	(JNIEnv *env, jclass that, jobject arg0)

-{

-	SHRGINFO _arg0, *lparg0=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SHRecognizeGesture\n")

-	if (arg0) lparg0 = getSHRGINFOFields(env, arg0, &_arg0);

-	rc = (jint)SHRecognizeGesture(lparg0);

-	if (arg0) setSHRGINFOFields(env, arg0, lparg0);

-	NATIVE_EXIT(env, that, "SHRecognizeGesture\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHSendBackToFocusWindow

-JNIEXPORT void JNICALL OS_NATIVE(SHSendBackToFocusWindow)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)

-{

-	NATIVE_ENTER(env, that, "SHSendBackToFocusWindow\n")

-	SHSendBackToFocusWindow(arg0, arg1, arg2);

-	NATIVE_EXIT(env, that, "SHSendBackToFocusWindow\n")

-}

-#endif

-

-#ifndef NO_SHSetAppKeyWndAssoc

-JNIEXPORT jboolean JNICALL OS_NATIVE(SHSetAppKeyWndAssoc)

-	(JNIEnv *env, jclass that, jbyte arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "SHSetAppKeyWndAssoc\n")

-	rc = (jboolean)SHSetAppKeyWndAssoc((BYTE)arg0, (HWND)arg1);

-	NATIVE_EXIT(env, that, "SHSetAppKeyWndAssoc\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SHSipPreference

-JNIEXPORT jboolean JNICALL OS_NATIVE(SHSipPreference)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jboolean rc;

-	NATIVE_ENTER(env, that, "SHSipPreference\n")

-	rc = (jboolean)SHSipPreference((HWND)arg0, arg1);

-	NATIVE_EXIT(env, that, "SHSipPreference\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ScreenToClient

-JNIEXPORT jboolean JNICALL OS_NATIVE(ScreenToClient)

-	(JNIEnv *env, jclass that, jint arg0, jobject arg1)

-{

-	POINT _arg1, *lparg1=NULL;

-	jboolean rc;

-	NATIVE_ENTER(env, that, "ScreenToClient\n")

-	if (arg1) lparg1 = getPOINTFields(env, arg1, &_arg1);

-	rc = (jboolean)ScreenToClient((HWND)arg0, lparg1);

-	if (arg1) setPOINTFields(env, arg1, lparg1);

-	NATIVE_EXIT(env, that, "ScreenToClient\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_ScrollWindowEx

-JNIEXPORT jint JNICALL OS_NATIVE(ScrollWindowEx)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3, jobject arg4, jint arg5, jobject arg6, jint arg7)

-{

-	RECT _arg3, *lparg3=NULL;

-	RECT _arg4, *lparg4=NULL;

-	RECT _arg6, *lparg6=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "ScrollWindowEx\n")

-	if (arg3) lparg3 = getRECTFields(env, arg3, &_arg3);

-	if (arg4) lparg4 = getRECTFields(env, arg4, &_arg4);

-	if (arg6) lparg6 = getRECTFields(env, arg6, &_arg6);

-	rc = (jint)ScrollWindowEx((HWND)arg0, arg1, arg2, lparg3, lparg4, (HRGN)arg5, lparg6, arg7);

-	if (arg3) setRECTFields(env, arg3, lparg3);

-	if (arg4) setRECTFields(env, arg4, lparg4);

-	if (arg6) setRECTFields(env, arg6, lparg6);

-	NATIVE_EXIT(env, that, "ScrollWindowEx\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SelectClipRgn

-JNIEXPORT jint JNICALL OS_NATIVE(SelectClipRgn)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "SelectClipRgn\n")

-	rc = (jint)SelectClipRgn((HDC)arg0, (HRGN)arg1);

-	NATIVE_EXIT(env, that, "SelectClipRgn\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SelectObject

-JNIEXPORT jint JNICALL OS_NATIVE(SelectObject)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "SelectObject\n")

-	rc = (jint)SelectObject((HDC)arg0, (HGDIOBJ)arg1);

-	NATIVE_EXIT(env, that, "SelectObject\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SelectPalette

-JNIEXPORT jint JNICALL OS_NATIVE(SelectPalette)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jboolean arg2)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "SelectPalette\n")

-	rc = (jint)SelectPalette((HDC)arg0, (HPALETTE)arg1, arg2);

-	NATIVE_EXIT(env, that, "SelectPalette\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIII

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIII)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3)

-{

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIII\n")

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)arg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIII\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_LVCOLUMN_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_LVCOLUMN_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	LVCOLUMN _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_LVCOLUMN_2\n")

-	if (arg3) lparg3 = getLVCOLUMNFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setLVCOLUMNFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_LVCOLUMN_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_LVHITTESTINFO_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_LVHITTESTINFO_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	LVHITTESTINFO _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_LVHITTESTINFO_2\n")

-	if (arg3) lparg3 = getLVHITTESTINFOFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setLVHITTESTINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_LVHITTESTINFO_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_LVITEM_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_LVITEM_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	LVITEM _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_LVITEM_2\n")

-	if (arg3) lparg3 = getLVITEMFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setLVITEMFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_LVITEM_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_REBARBANDINFO_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_REBARBANDINFO_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	REBARBANDINFO _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_REBARBANDINFO_2\n")

-	if (arg3) lparg3 = getREBARBANDINFOFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setREBARBANDINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_REBARBANDINFO_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_RECT_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_RECT_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	RECT _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_RECT_2\n")

-	if (arg3) lparg3 = getRECTFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setRECTFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_RECT_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTONINFO_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTONINFO_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TBBUTTONINFO _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTONINFO_2\n")

-	if (arg3) lparg3 = getTBBUTTONINFOFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTBBUTTONINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTONINFO_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTON_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTON_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TBBUTTON _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTON_2\n")

-	if (arg3) lparg3 = getTBBUTTONFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTBBUTTONFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TBBUTTON_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TCITEM_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TCITEM_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TCITEM _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TCITEM_2\n")

-	if (arg3) lparg3 = getTCITEMFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTCITEMFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TCITEM_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TOOLINFO_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TOOLINFO_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TOOLINFO _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TOOLINFO_2\n")

-	if (arg3) lparg3 = getTOOLINFOFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTOOLINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TOOLINFO_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TVHITTESTINFO_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TVHITTESTINFO_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TVHITTESTINFO _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TVHITTESTINFO_2\n")

-	if (arg3) lparg3 = getTVHITTESTINFOFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTVHITTESTINFOFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TVHITTESTINFO_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TVINSERTSTRUCT_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TVINSERTSTRUCT_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TVINSERTSTRUCT _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TVINSERTSTRUCT_2\n")

-	if (arg3) lparg3 = getTVINSERTSTRUCTFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTVINSERTSTRUCTFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TVINSERTSTRUCT_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__IIILorg_eclipse_swt_internal_win32_TVITEM_2

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__IIILorg_eclipse_swt_internal_win32_TVITEM_2)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jobject arg3)

-{

-	TVITEM _arg3, *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TVITEM_2\n")

-	if (arg3) lparg3 = getTVITEMFields(env, arg3, &_arg3);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) setTVITEMFields(env, arg3, lparg3);

-	NATIVE_EXIT(env, that, "SendMessageA__IIILorg_eclipse_swt_internal_win32_TVITEM_2\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__III_3B

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__III_3B)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jbyteArray arg3)

-{

-	jbyte *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__III_3B\n")

-	if (arg3) lparg3 = (*env)->GetByteArrayElements(env, arg3, NULL);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) (*env)->ReleaseByteArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "SendMessageA__III_3B\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__III_3I

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__III_3I)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jintArray arg3)

-{

-	jint *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__III_3I\n")

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "SendMessageA__III_3I\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__III_3S

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__III_3S)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jshortArray arg3)

-{

-	jshort *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__III_3S\n")

-	if (arg3) lparg3 = (*env)->GetShortArrayElements(env, arg3, NULL);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)arg2, (LPARAM)lparg3);

-	if (arg3) (*env)->ReleaseShortArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "SendMessageA__III_3S\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__II_3II

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__II_3II)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2, jint arg3)

-{

-	jint *lparg2=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__II_3II\n")

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)lparg2, (LPARAM)arg3);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	NATIVE_EXIT(env, that, "SendMessageA__II_3II\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageA__II_3I_3I

-JNIEXPORT jint JNICALL OS_NATIVE(SendMessageA__II_3I_3I)

-	(JNIEnv *env, jclass that, jint arg0, jint arg1, jintArray arg2, jintArray arg3)

-{

-	jint *lparg2=NULL;

-	jint *lparg3=NULL;

-	jint rc;

-	NATIVE_ENTER(env, that, "SendMessageA__II_3I_3I\n")

-	if (arg2) lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL);

-	if (arg3) lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL);

-	rc = (jint)SendMessageA((HWND)arg0, arg1, (WPARAM)lparg2, (LPARAM)lparg3);

-	if (arg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);

-	if (arg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);

-	NATIVE_EXIT(env, that, "SendMessageA__II_3I_3I\n")

-	return rc;

-}

-#endif

-

-#ifndef NO_SendMessageW__IIII