Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT PI/wpf_win32/library/win32.c')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/wpf_win32/library/win32.c413
1 files changed, 413 insertions, 0 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/wpf_win32/library/win32.c b/bundles/org.eclipse.swt/Eclipse SWT PI/wpf_win32/library/win32.c
new file mode 100644
index 0000000000..54cfe03c00
--- /dev/null
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/wpf_win32/library/win32.c
@@ -0,0 +1,413 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+#include "swt.h"
+#include "win32_structs.h"
+#include "win32_stats.h"
+
+#define Win32_NATIVE(func) Java_org_eclipse_swt_internal_win32_Win32_##func
+
+#ifndef NO_CloseHandle
+JNIEXPORT jboolean JNICALL Win32_NATIVE(CloseHandle)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, CloseHandle_FUNC);
+ rc = (jboolean)CloseHandle((HANDLE)arg0);
+ Win32_NATIVE_EXIT(env, that, CloseHandle_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_CreateCursor
+JNIEXPORT jint JNICALL Win32_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 = 0;
+ Win32_NATIVE_ENTER(env, that, CreateCursor_FUNC);
+#ifdef JNI_VERSION_1_2
+ if (IS_JNI_1_2) {
+ if (arg5) if ((lparg5 = (*env)->GetPrimitiveArrayCritical(env, arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = (*env)->GetPrimitiveArrayCritical(env, arg6, NULL)) == NULL) goto fail;
+ } else
+#endif
+ {
+ if (arg5) if ((lparg5 = (*env)->GetByteArrayElements(env, arg5, NULL)) == NULL) goto fail;
+ if (arg6) if ((lparg6 = (*env)->GetByteArrayElements(env, arg6, NULL)) == NULL) goto fail;
+ }
+ rc = (jint)CreateCursor((HINSTANCE)arg0, arg1, arg2, arg3, arg4, (CONST VOID *)lparg5, (CONST VOID *)lparg6);
+fail:
+#ifdef JNI_VERSION_1_2
+ if (IS_JNI_1_2) {
+ if (arg6 && lparg6) (*env)->ReleasePrimitiveArrayCritical(env, arg6, lparg6, JNI_ABORT);
+ if (arg5 && lparg5) (*env)->ReleasePrimitiveArrayCritical(env, arg5, lparg5, JNI_ABORT);
+ } else
+#endif
+ {
+ if (arg6 && lparg6) (*env)->ReleaseByteArrayElements(env, arg6, lparg6, JNI_ABORT);
+ if (arg5 && lparg5) (*env)->ReleaseByteArrayElements(env, arg5, lparg5, JNI_ABORT);
+ }
+ Win32_NATIVE_EXIT(env, that, CreateCursor_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_CreateIconIndirect
+JNIEXPORT jint JNICALL Win32_NATIVE(CreateIconIndirect)
+ (JNIEnv *env, jclass that, jobject arg0)
+{
+ ICONINFO _arg0, *lparg0=NULL;
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, CreateIconIndirect_FUNC);
+ if (arg0) if ((lparg0 = getICONINFOFields(env, arg0, &_arg0)) == NULL) goto fail;
+ rc = (jint)CreateIconIndirect(lparg0);
+fail:
+ if (arg0 && lparg0) setICONINFOFields(env, arg0, lparg0);
+ Win32_NATIVE_EXIT(env, that, CreateIconIndirect_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_CreateProcessW
+JNIEXPORT jboolean JNICALL Win32_NATIVE(CreateProcessW)
+ (JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2, jint arg3, jboolean arg4, jint arg5, jint arg6, jint arg7, jobject arg8, jobject arg9)
+{
+ jchar *lparg1=NULL;
+ STARTUPINFOW _arg8, *lparg8=NULL;
+ PROCESS_INFORMATION _arg9, *lparg9=NULL;
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, CreateProcessW_FUNC);
+ if (arg1) if ((lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = getSTARTUPINFOWFields(env, arg8, &_arg8)) == NULL) goto fail;
+ if (arg9) if ((lparg9 = getPROCESS_INFORMATIONFields(env, arg9, &_arg9)) == NULL) goto fail;
+ rc = (jboolean)CreateProcessW((LPCWSTR)arg0, (LPWSTR)lparg1, (LPSECURITY_ATTRIBUTES)arg2, (LPSECURITY_ATTRIBUTES)arg3, arg4, (DWORD)arg5, (LPVOID)arg6, (LPCWSTR)arg7, (LPSTARTUPINFOW)lparg8, (LPPROCESS_INFORMATION)lparg9);
+fail:
+ if (arg9 && lparg9) setPROCESS_INFORMATIONFields(env, arg9, lparg9);
+ if (arg8 && lparg8) setSTARTUPINFOWFields(env, arg8, lparg8);
+ if (arg1 && lparg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, 0);
+ Win32_NATIVE_EXIT(env, that, CreateProcessW_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_DeleteObject
+JNIEXPORT jboolean JNICALL Win32_NATIVE(DeleteObject)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, DeleteObject_FUNC);
+ rc = (jboolean)DeleteObject((HGDIOBJ)arg0);
+ Win32_NATIVE_EXIT(env, that, DeleteObject_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_DestroyIcon
+JNIEXPORT jboolean JNICALL Win32_NATIVE(DestroyIcon)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, DestroyIcon_FUNC);
+ rc = (jboolean)DestroyIcon((HICON)arg0);
+ Win32_NATIVE_EXIT(env, that, DestroyIcon_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_EnableWindow
+JNIEXPORT void JNICALL Win32_NATIVE(EnableWindow)
+ (JNIEnv *env, jclass that, jint arg0, jboolean arg1)
+{
+ Win32_NATIVE_ENTER(env, that, EnableWindow_FUNC);
+ EnableWindow((HWND)arg0, arg1);
+ Win32_NATIVE_EXIT(env, that, EnableWindow_FUNC);
+}
+#endif
+
+#ifndef NO_ExtractIconExW
+JNIEXPORT jint JNICALL Win32_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 = 0;
+ Win32_NATIVE_ENTER(env, that, ExtractIconExW_FUNC);
+ if (arg0) if ((lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL)) == NULL) goto fail;
+ if (arg2) if ((lparg2 = (*env)->GetIntArrayElements(env, arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = (*env)->GetIntArrayElements(env, arg3, NULL)) == NULL) goto fail;
+ rc = (jint)ExtractIconExW((LPCWSTR)lparg0, arg1, (HICON*)lparg2, (HICON*)lparg3, (UINT)arg4);
+fail:
+ if (arg3 && lparg3) (*env)->ReleaseIntArrayElements(env, arg3, lparg3, 0);
+ if (arg2 && lparg2) (*env)->ReleaseIntArrayElements(env, arg2, lparg2, 0);
+ if (arg0 && lparg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);
+ Win32_NATIVE_EXIT(env, that, ExtractIconExW_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_GetCursorPos
+JNIEXPORT void JNICALL Win32_NATIVE(GetCursorPos)
+ (JNIEnv *env, jclass that, jobject arg0)
+{
+ POINT _arg0, *lparg0=NULL;
+ Win32_NATIVE_ENTER(env, that, GetCursorPos_FUNC);
+ if (arg0) if ((lparg0 = getPOINTFields(env, arg0, &_arg0)) == NULL) goto fail;
+ GetCursorPos((LPPOINT)lparg0);
+fail:
+ if (arg0 && lparg0) setPOINTFields(env, arg0, lparg0);
+ Win32_NATIVE_EXIT(env, that, GetCursorPos_FUNC);
+}
+#endif
+
+#ifndef NO_GetIconInfo
+JNIEXPORT jboolean JNICALL Win32_NATIVE(GetIconInfo)
+ (JNIEnv *env, jclass that, jint arg0, jobject arg1)
+{
+ ICONINFO _arg1, *lparg1=NULL;
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, GetIconInfo_FUNC);
+ if (arg1) if ((lparg1 = getICONINFOFields(env, arg1, &_arg1)) == NULL) goto fail;
+ rc = (jboolean)GetIconInfo((HICON)arg0, lparg1);
+fail:
+ if (arg1 && lparg1) setICONINFOFields(env, arg1, lparg1);
+ Win32_NATIVE_EXIT(env, that, GetIconInfo_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_GetKeyboardState
+JNIEXPORT jboolean JNICALL Win32_NATIVE(GetKeyboardState)
+ (JNIEnv *env, jclass that, jbyteArray arg0)
+{
+ jbyte *lparg0=NULL;
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, GetKeyboardState_FUNC);
+ if (arg0) if ((lparg0 = (*env)->GetByteArrayElements(env, arg0, NULL)) == NULL) goto fail;
+ rc = (jboolean)GetKeyboardState((PBYTE)lparg0);
+fail:
+ if (arg0 && lparg0) (*env)->ReleaseByteArrayElements(env, arg0, lparg0, 0);
+ Win32_NATIVE_EXIT(env, that, GetKeyboardState_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_GetModuleHandleW
+JNIEXPORT jint JNICALL Win32_NATIVE(GetModuleHandleW)
+ (JNIEnv *env, jclass that, jcharArray arg0)
+{
+ jchar *lparg0=NULL;
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, GetModuleHandleW_FUNC);
+ if (arg0) if ((lparg0 = (*env)->GetCharArrayElements(env, arg0, NULL)) == NULL) goto fail;
+ rc = (jint)GetModuleHandleW((LPCWSTR)lparg0);
+fail:
+ if (arg0 && lparg0) (*env)->ReleaseCharArrayElements(env, arg0, lparg0, 0);
+ Win32_NATIVE_EXIT(env, that, GetModuleHandleW_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_GetProcessHeap
+JNIEXPORT jint JNICALL Win32_NATIVE(GetProcessHeap)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, GetProcessHeap_FUNC);
+ rc = (jint)GetProcessHeap();
+ Win32_NATIVE_EXIT(env, that, GetProcessHeap_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_HeapAlloc
+JNIEXPORT jint JNICALL Win32_NATIVE(HeapAlloc)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, HeapAlloc_FUNC);
+ rc = (jint)HeapAlloc((HANDLE)arg0, arg1, arg2);
+ Win32_NATIVE_EXIT(env, that, HeapAlloc_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_HeapFree
+JNIEXPORT jboolean JNICALL Win32_NATIVE(HeapFree)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2)
+{
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, HeapFree_FUNC);
+ rc = (jboolean)HeapFree((HANDLE)arg0, arg1, (LPVOID)arg2);
+ Win32_NATIVE_EXIT(env, that, HeapFree_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_LoadImage
+JNIEXPORT jint JNICALL Win32_NATIVE(LoadImage)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jint arg2, jint arg3, jint arg4, jint arg5)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, LoadImage_FUNC);
+ rc = (jint)LoadImage((HINSTANCE)arg0, (LPCTSTR)arg1, (UINT)arg2, arg3, arg4, (UINT)arg5);
+ Win32_NATIVE_EXIT(env, that, LoadImage_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_MapVirtualKeyW
+JNIEXPORT jint JNICALL Win32_NATIVE(MapVirtualKeyW)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, MapVirtualKeyW_FUNC);
+ rc = (jint)MapVirtualKeyW(arg0, arg1);
+ Win32_NATIVE_EXIT(env, that, MapVirtualKeyW_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_MoveMemory
+JNIEXPORT void JNICALL Win32_NATIVE(MoveMemory)
+ (JNIEnv *env, jclass that, jint arg0, jcharArray arg1, jint arg2)
+{
+ jchar *lparg1=NULL;
+ Win32_NATIVE_ENTER(env, that, MoveMemory_FUNC);
+#ifdef JNI_VERSION_1_2
+ if (IS_JNI_1_2) {
+ if (arg1) if ((lparg1 = (*env)->GetPrimitiveArrayCritical(env, arg1, NULL)) == NULL) goto fail;
+ } else
+#endif
+ {
+ if (arg1) if ((lparg1 = (*env)->GetCharArrayElements(env, arg1, NULL)) == NULL) goto fail;
+ }
+ MoveMemory((PVOID)arg0, (CONST VOID *)lparg1, arg2);
+fail:
+#ifdef JNI_VERSION_1_2
+ if (IS_JNI_1_2) {
+ if (arg1 && lparg1) (*env)->ReleasePrimitiveArrayCritical(env, arg1, lparg1, JNI_ABORT);
+ } else
+#endif
+ {
+ if (arg1 && lparg1) (*env)->ReleaseCharArrayElements(env, arg1, lparg1, JNI_ABORT);
+ }
+ Win32_NATIVE_EXIT(env, that, MoveMemory_FUNC);
+}
+#endif
+
+#ifndef NO_OleInitialize
+JNIEXPORT jint JNICALL Win32_NATIVE(OleInitialize)
+ (JNIEnv *env, jclass that, jint arg0)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, OleInitialize_FUNC);
+ rc = (jint)OleInitialize((LPVOID)arg0);
+ Win32_NATIVE_EXIT(env, that, OleInitialize_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_OleUninitialize
+JNIEXPORT void JNICALL Win32_NATIVE(OleUninitialize)
+ (JNIEnv *env, jclass that)
+{
+ Win32_NATIVE_ENTER(env, that, OleUninitialize_FUNC);
+ OleUninitialize();
+ Win32_NATIVE_EXIT(env, that, OleUninitialize_FUNC);
+}
+#endif
+
+#ifndef NO_PROCESS_1INFORMATION_1sizeof
+JNIEXPORT jint JNICALL Win32_NATIVE(PROCESS_1INFORMATION_1sizeof)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, PROCESS_1INFORMATION_1sizeof_FUNC);
+ rc = (jint)PROCESS_INFORMATION_sizeof();
+ Win32_NATIVE_EXIT(env, that, PROCESS_1INFORMATION_1sizeof_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_SHELLEXECUTEINFOW_1sizeof
+JNIEXPORT jint JNICALL Win32_NATIVE(SHELLEXECUTEINFOW_1sizeof)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, SHELLEXECUTEINFOW_1sizeof_FUNC);
+ rc = (jint)SHELLEXECUTEINFOW_sizeof();
+ Win32_NATIVE_EXIT(env, that, SHELLEXECUTEINFOW_1sizeof_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_STARTUPINFOW_1sizeof
+JNIEXPORT jint JNICALL Win32_NATIVE(STARTUPINFOW_1sizeof)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, STARTUPINFOW_1sizeof_FUNC);
+ rc = (jint)STARTUPINFOW_sizeof();
+ Win32_NATIVE_EXIT(env, that, STARTUPINFOW_1sizeof_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_SetCursorPos
+JNIEXPORT jint JNICALL Win32_NATIVE(SetCursorPos)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1)
+{
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, SetCursorPos_FUNC);
+ rc = (jint)SetCursorPos(arg0, arg1);
+ Win32_NATIVE_EXIT(env, that, SetCursorPos_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_ShellExecuteExW
+JNIEXPORT jboolean JNICALL Win32_NATIVE(ShellExecuteExW)
+ (JNIEnv *env, jclass that, jobject arg0)
+{
+ SHELLEXECUTEINFOW _arg0, *lparg0=NULL;
+ jboolean rc = 0;
+ Win32_NATIVE_ENTER(env, that, ShellExecuteExW_FUNC);
+ if (arg0) if ((lparg0 = getSHELLEXECUTEINFOWFields(env, arg0, &_arg0)) == NULL) goto fail;
+ rc = (jboolean)ShellExecuteExW((LPSHELLEXECUTEINFOW)lparg0);
+fail:
+ if (arg0 && lparg0) setSHELLEXECUTEINFOWFields(env, arg0, lparg0);
+ Win32_NATIVE_EXIT(env, that, ShellExecuteExW_FUNC);
+ return rc;
+}
+#endif
+
+#ifndef NO_ToUnicode
+JNIEXPORT jint JNICALL Win32_NATIVE(ToUnicode)
+ (JNIEnv *env, jclass that, jint arg0, jint arg1, jbyteArray arg2, jcharArray arg3, jint arg4, jint arg5)
+{
+ jbyte *lparg2=NULL;
+ jchar *lparg3=NULL;
+ jint rc = 0;
+ Win32_NATIVE_ENTER(env, that, ToUnicode_FUNC);
+ if (arg2) if ((lparg2 = (*env)->GetByteArrayElements(env, arg2, NULL)) == NULL) goto fail;
+ if (arg3) if ((lparg3 = (*env)->GetCharArrayElements(env, arg3, NULL)) == NULL) goto fail;
+ rc = (jint)ToUnicode(arg0, arg1, (PBYTE)lparg2, (LPWSTR)lparg3, arg4, arg5);
+fail:
+ if (arg3 && lparg3) (*env)->ReleaseCharArrayElements(env, arg3, lparg3, 0);
+ if (arg2 && lparg2) (*env)->ReleaseByteArrayElements(env, arg2, lparg2, 0);
+ Win32_NATIVE_EXIT(env, that, ToUnicode_FUNC);
+ return rc;
+}
+#endif
+

Back to the top