|
Java example source code file (awt_DataTransferer.h)
The awt_DataTransferer.h Java example source code/* * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ #ifndef AWT_DATATRANSFERER_H #define AWT_DATATRANSFERER_H #include "stdhdrs.h" struct IUnknown; class AwtDataTransferer { public: static jobject GetDataTransferer(JNIEnv* env); static jbyteArray ConvertData(JNIEnv* env, jobject source, jobject contents, jlong format, jobject formatMap); static jobject ConcatData(JNIEnv* env, jobject obj1, jobject obj2); static jbyteArray GetPaletteBytes(HGDIOBJ hGdiObj, DWORD dwGdiObjType, BOOL bFailSafe); static jbyteArray LCIDToTextEncoding(JNIEnv *env, LCID lcid); static void SecondaryMessageLoop(); }; /* * NOTE: You need these macros only if you take care of performance, since they * provide proper caching. Otherwise you can use JNU_CallMethodByName etc. */ /* * This macro defines a function which returns the class for the specified * class name with proper caching and error handling. */ #define DECLARE_JAVA_CLASS(javaclazz, name) \ static jclass \ get_ ## javaclazz(JNIEnv* env) { \ static jclass javaclazz = NULL; \ \ if (JNU_IsNull(env, javaclazz)) { \ jclass javaclazz ## Local = env->FindClass(name); \ \ if (!JNU_IsNull(env, javaclazz ## Local)) { \ javaclazz = (jclass)env->NewGlobalRef(javaclazz ## Local); \ env->DeleteLocalRef(javaclazz ## Local); \ if (JNU_IsNull(env, javaclazz)) { \ JNU_ThrowOutOfMemoryError(env, ""); \ } \ } \ \ if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { \ env->ExceptionDescribe(); \ env->ExceptionClear(); \ } \ } \ \ DASSERT(!JNU_IsNull(env, javaclazz)); \ \ return javaclazz; \ } /* * The following macros defines blocks of code which retrieve a method of the * specified class identified with the specified name and signature. * The specified class should be previously declared with DECLARE_JAVA_CLASS. * These macros should be placed at the beginning of a block, after definition * of local variables, but before the code begins. */ #define DECLARE_VOID_JAVA_METHOD(method, javaclazz, name, signature) \ static jmethodID method = NULL; \ \ if (JNU_IsNull(env, method)) { \ jclass clazz = get_ ## javaclazz(env); \ \ if (JNU_IsNull(env, clazz)) { \ return; \ } \ \ method = env->GetMethodID(clazz, name, signature); \ \ if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { \ env->ExceptionDescribe(); \ env->ExceptionClear(); \ } \ \ if (JNU_IsNull(env, method)) { \ DASSERT(FALSE); \ return; \ } \ } #define DECLARE_JINT_JAVA_METHOD(method, javaclazz, name, signature) \ static jmethodID method = NULL; \ \ if (JNU_IsNull(env, method)) { \ jclass clazz = get_ ## javaclazz(env); \ \ if (JNU_IsNull(env, clazz)) { \ return java_awt_dnd_DnDConstants_ACTION_NONE; \ } \ \ method = env->GetMethodID(clazz, name, signature); \ \ if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { \ env->ExceptionDescribe(); \ env->ExceptionClear(); \ } \ \ if (JNU_IsNull(env, method)) { \ DASSERT(FALSE); \ return java_awt_dnd_DnDConstants_ACTION_NONE; \ } \ } #define DECLARE_OBJECT_JAVA_METHOD(method, javaclazz, name, signature) \ static jmethodID method = NULL; \ \ if (JNU_IsNull(env, method)) { \ jclass clazz = get_ ## javaclazz(env); \ \ if (JNU_IsNull(env, clazz)) { \ return NULL; \ } \ \ method = env->GetMethodID(clazz, name, signature); \ \ if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { \ env->ExceptionDescribe(); \ env->ExceptionClear(); \ } \ \ if (JNU_IsNull(env, method)) { \ DASSERT(FALSE); \ return NULL; \ } \ } #define DECLARE_STATIC_OBJECT_JAVA_METHOD(method, javaclazz, name, signature) \ static jmethodID method = NULL; \ jclass clazz = get_ ## javaclazz(env); \ \ if (JNU_IsNull(env, clazz)) { \ return NULL; \ } \ \ if (JNU_IsNull(env, method)) { \ method = env->GetStaticMethodID(clazz, name, signature); \ \ if (!JNU_IsNull(env, safe_ExceptionOccurred(env))) { \ env->ExceptionDescribe(); \ env->ExceptionClear(); \ } \ \ if (JNU_IsNull(env, method)) { \ DASSERT(FALSE); \ return NULL; \ } \ } #endif /* AWT_DATATRANSFERER_H */ Other Java examples (source code examples)Here is a short list of links related to this Java awt_DataTransferer.h source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.