146 JNI_TRUE) 147 /* /NEW JNI */ 148 149 /* 150 * IS_WIN64 returns TRUE on 64-bit Itanium 151 */ 152 #if defined (_WIN64) 153 #define IS_WIN64 TRUE 154 #else 155 #define IS_WIN64 FALSE 156 #endif 157 158 /* 159 * IS_WIN2000 returns TRUE on 2000, XP and Vista 160 * IS_WINXP returns TRUE on XP and Vista 161 * IS_WINVISTA returns TRUE on Vista 162 */ 163 #define IS_WIN2000 (LOBYTE(LOWORD(::GetVersion())) >= 5) 164 #define IS_WINXP ((IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5) 165 #define IS_WINVISTA (LOBYTE(LOWORD(::GetVersion())) >= 6) 166 167 #define IS_WINVER_ATLEAST(maj, min) \ 168 ((maj) < LOBYTE(LOWORD(::GetVersion())) || \ 169 (maj) == LOBYTE(LOWORD(::GetVersion())) && \ 170 (min) <= HIBYTE(LOWORD(::GetVersion()))) 171 172 /* 173 * macros to crack a LPARAM into two ints -- used for signed coordinates, 174 * such as with mouse messages. 175 */ 176 #define LO_INT(l) ((int)(short)(l)) 177 #define HI_INT(l) ((int)(short)(((DWORD)(l) >> 16) & 0xFFFF)) 178 179 extern JavaVM *jvm; 180 181 // Platform encoding is Unicode (UTF-16), re-define JNU_ functions 182 // to proper JNI functions. 183 #define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<const jchar*>(x), static_cast<jsize>(_tcslen(x))) 184 #define JNU_GetStringPlatformChars(env, x, y) reinterpret_cast<LPCWSTR>(env->GetStringChars(x, y)) 185 #define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, reinterpret_cast<const jchar*>(y)) | 146 JNI_TRUE) 147 /* /NEW JNI */ 148 149 /* 150 * IS_WIN64 returns TRUE on 64-bit Itanium 151 */ 152 #if defined (_WIN64) 153 #define IS_WIN64 TRUE 154 #else 155 #define IS_WIN64 FALSE 156 #endif 157 158 /* 159 * IS_WIN2000 returns TRUE on 2000, XP and Vista 160 * IS_WINXP returns TRUE on XP and Vista 161 * IS_WINVISTA returns TRUE on Vista 162 */ 163 #define IS_WIN2000 (LOBYTE(LOWORD(::GetVersion())) >= 5) 164 #define IS_WINXP ((IS_WIN2000 && HIBYTE(LOWORD(::GetVersion())) >= 1) || LOBYTE(LOWORD(::GetVersion())) > 5) 165 #define IS_WINVISTA (LOBYTE(LOWORD(::GetVersion())) >= 6) 166 #define IS_WIN8 ( \ 167 (IS_WINVISTA && (HIBYTE(LOWORD(::GetVersion())) >= 2)) || \ 168 (LOBYTE(LOWORD(::GetVersion())) > 6)) 169 170 #define IS_WINVER_ATLEAST(maj, min) \ 171 ((maj) < LOBYTE(LOWORD(::GetVersion())) || \ 172 (maj) == LOBYTE(LOWORD(::GetVersion())) && \ 173 (min) <= HIBYTE(LOWORD(::GetVersion()))) 174 175 /* 176 * macros to crack a LPARAM into two ints -- used for signed coordinates, 177 * such as with mouse messages. 178 */ 179 #define LO_INT(l) ((int)(short)(l)) 180 #define HI_INT(l) ((int)(short)(((DWORD)(l) >> 16) & 0xFFFF)) 181 182 extern JavaVM *jvm; 183 184 // Platform encoding is Unicode (UTF-16), re-define JNU_ functions 185 // to proper JNI functions. 186 #define JNU_NewStringPlatform(env, x) env->NewString(reinterpret_cast<const jchar*>(x), static_cast<jsize>(_tcslen(x))) 187 #define JNU_GetStringPlatformChars(env, x, y) reinterpret_cast<LPCWSTR>(env->GetStringChars(x, y)) 188 #define JNU_ReleaseStringPlatformChars(env, x, y) env->ReleaseStringChars(x, reinterpret_cast<const jchar*>(y)) |