1 /*******************************************************************************
2 * Copyright (c) 2000, 2020 IBM Corporation and others.
3 *
4 * This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License 2.0
6 * which accompanies this distribution, and is available at
7 * https://www.eclipse.org/legal/epl-2.0/
8 *
9 * SPDX-License-Identifier: EPL-2.0
10 *
11 * Contributors:
12 * IBM Corporation - initial API and implementation
13 *******************************************************************************/
14
15 /* Note: This file was auto-generated by org.eclipse.swt.tools.internal.JNIGenerator */
16 /* DO NOT EDIT - your changes will be lost. */
17
18 #include "swt.h"
19 #include "os_structs.h"
20
21 #ifndef NO_ACCEL
22 typedef struct ACCEL_FID_CACHE {
23 int cached;
24 jclass clazz;
25 jfieldID fVirt, key, cmd;
26 } ACCEL_FID_CACHE;
27
28 ACCEL_FID_CACHE ACCELFc;
29
cacheACCELFields(JNIEnv * env,jobject lpObject)30 void cacheACCELFields(JNIEnv *env, jobject lpObject)
31 {
32 if (ACCELFc.cached) return;
33 ACCELFc.clazz = (*env)->GetObjectClass(env, lpObject);
34 ACCELFc.fVirt = (*env)->GetFieldID(env, ACCELFc.clazz, "fVirt", "B");
35 ACCELFc.key = (*env)->GetFieldID(env, ACCELFc.clazz, "key", "S");
36 ACCELFc.cmd = (*env)->GetFieldID(env, ACCELFc.clazz, "cmd", "S");
37 ACCELFc.cached = 1;
38 }
39
getACCELFields(JNIEnv * env,jobject lpObject,ACCEL * lpStruct)40 ACCEL *getACCELFields(JNIEnv *env, jobject lpObject, ACCEL *lpStruct)
41 {
42 if (!ACCELFc.cached) cacheACCELFields(env, lpObject);
43 lpStruct->fVirt = (*env)->GetByteField(env, lpObject, ACCELFc.fVirt);
44 lpStruct->key = (*env)->GetShortField(env, lpObject, ACCELFc.key);
45 lpStruct->cmd = (*env)->GetShortField(env, lpObject, ACCELFc.cmd);
46 return lpStruct;
47 }
48
setACCELFields(JNIEnv * env,jobject lpObject,ACCEL * lpStruct)49 void setACCELFields(JNIEnv *env, jobject lpObject, ACCEL *lpStruct)
50 {
51 if (!ACCELFc.cached) cacheACCELFields(env, lpObject);
52 (*env)->SetByteField(env, lpObject, ACCELFc.fVirt, (jbyte)lpStruct->fVirt);
53 (*env)->SetShortField(env, lpObject, ACCELFc.key, (jshort)lpStruct->key);
54 (*env)->SetShortField(env, lpObject, ACCELFc.cmd, (jshort)lpStruct->cmd);
55 }
56 #endif
57
58 #ifndef NO_ACTCTX
59 typedef struct ACTCTX_FID_CACHE {
60 int cached;
61 jclass clazz;
62 jfieldID cbSize, dwFlags, lpSource, wProcessorArchitecture, wLangId, lpAssemblyDirectory, lpResourceName, lpApplicationName, hModule;
63 } ACTCTX_FID_CACHE;
64
65 ACTCTX_FID_CACHE ACTCTXFc;
66
cacheACTCTXFields(JNIEnv * env,jobject lpObject)67 void cacheACTCTXFields(JNIEnv *env, jobject lpObject)
68 {
69 if (ACTCTXFc.cached) return;
70 ACTCTXFc.clazz = (*env)->GetObjectClass(env, lpObject);
71 ACTCTXFc.cbSize = (*env)->GetFieldID(env, ACTCTXFc.clazz, "cbSize", "I");
72 ACTCTXFc.dwFlags = (*env)->GetFieldID(env, ACTCTXFc.clazz, "dwFlags", "I");
73 ACTCTXFc.lpSource = (*env)->GetFieldID(env, ACTCTXFc.clazz, "lpSource", "J");
74 ACTCTXFc.wProcessorArchitecture = (*env)->GetFieldID(env, ACTCTXFc.clazz, "wProcessorArchitecture", "S");
75 ACTCTXFc.wLangId = (*env)->GetFieldID(env, ACTCTXFc.clazz, "wLangId", "S");
76 ACTCTXFc.lpAssemblyDirectory = (*env)->GetFieldID(env, ACTCTXFc.clazz, "lpAssemblyDirectory", "J");
77 ACTCTXFc.lpResourceName = (*env)->GetFieldID(env, ACTCTXFc.clazz, "lpResourceName", "J");
78 ACTCTXFc.lpApplicationName = (*env)->GetFieldID(env, ACTCTXFc.clazz, "lpApplicationName", "J");
79 ACTCTXFc.hModule = (*env)->GetFieldID(env, ACTCTXFc.clazz, "hModule", "J");
80 ACTCTXFc.cached = 1;
81 }
82
getACTCTXFields(JNIEnv * env,jobject lpObject,ACTCTX * lpStruct)83 ACTCTX *getACTCTXFields(JNIEnv *env, jobject lpObject, ACTCTX *lpStruct)
84 {
85 if (!ACTCTXFc.cached) cacheACTCTXFields(env, lpObject);
86 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, ACTCTXFc.cbSize);
87 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, ACTCTXFc.dwFlags);
88 lpStruct->lpSource = (LPCTSTR)(*env)->GetLongField(env, lpObject, ACTCTXFc.lpSource);
89 lpStruct->wProcessorArchitecture = (*env)->GetShortField(env, lpObject, ACTCTXFc.wProcessorArchitecture);
90 lpStruct->wLangId = (*env)->GetShortField(env, lpObject, ACTCTXFc.wLangId);
91 lpStruct->lpAssemblyDirectory = (LPCTSTR)(*env)->GetLongField(env, lpObject, ACTCTXFc.lpAssemblyDirectory);
92 lpStruct->lpResourceName = (LPCTSTR)(*env)->GetLongField(env, lpObject, ACTCTXFc.lpResourceName);
93 lpStruct->lpApplicationName = (LPCTSTR)(*env)->GetLongField(env, lpObject, ACTCTXFc.lpApplicationName);
94 lpStruct->hModule = (HMODULE)(*env)->GetLongField(env, lpObject, ACTCTXFc.hModule);
95 return lpStruct;
96 }
97
setACTCTXFields(JNIEnv * env,jobject lpObject,ACTCTX * lpStruct)98 void setACTCTXFields(JNIEnv *env, jobject lpObject, ACTCTX *lpStruct)
99 {
100 if (!ACTCTXFc.cached) cacheACTCTXFields(env, lpObject);
101 (*env)->SetIntField(env, lpObject, ACTCTXFc.cbSize, (jint)lpStruct->cbSize);
102 (*env)->SetIntField(env, lpObject, ACTCTXFc.dwFlags, (jint)lpStruct->dwFlags);
103 (*env)->SetLongField(env, lpObject, ACTCTXFc.lpSource, (jlong)lpStruct->lpSource);
104 (*env)->SetShortField(env, lpObject, ACTCTXFc.wProcessorArchitecture, (jshort)lpStruct->wProcessorArchitecture);
105 (*env)->SetShortField(env, lpObject, ACTCTXFc.wLangId, (jshort)lpStruct->wLangId);
106 (*env)->SetLongField(env, lpObject, ACTCTXFc.lpAssemblyDirectory, (jlong)lpStruct->lpAssemblyDirectory);
107 (*env)->SetLongField(env, lpObject, ACTCTXFc.lpResourceName, (jlong)lpStruct->lpResourceName);
108 (*env)->SetLongField(env, lpObject, ACTCTXFc.lpApplicationName, (jlong)lpStruct->lpApplicationName);
109 (*env)->SetLongField(env, lpObject, ACTCTXFc.hModule, (jlong)lpStruct->hModule);
110 }
111 #endif
112
113 #ifndef NO_BITMAP
114 typedef struct BITMAP_FID_CACHE {
115 int cached;
116 jclass clazz;
117 jfieldID bmType, bmWidth, bmHeight, bmWidthBytes, bmPlanes, bmBitsPixel, bmBits;
118 } BITMAP_FID_CACHE;
119
120 BITMAP_FID_CACHE BITMAPFc;
121
cacheBITMAPFields(JNIEnv * env,jobject lpObject)122 void cacheBITMAPFields(JNIEnv *env, jobject lpObject)
123 {
124 if (BITMAPFc.cached) return;
125 BITMAPFc.clazz = (*env)->GetObjectClass(env, lpObject);
126 BITMAPFc.bmType = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmType", "I");
127 BITMAPFc.bmWidth = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmWidth", "I");
128 BITMAPFc.bmHeight = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmHeight", "I");
129 BITMAPFc.bmWidthBytes = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmWidthBytes", "I");
130 BITMAPFc.bmPlanes = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmPlanes", "S");
131 BITMAPFc.bmBitsPixel = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmBitsPixel", "S");
132 BITMAPFc.bmBits = (*env)->GetFieldID(env, BITMAPFc.clazz, "bmBits", "J");
133 BITMAPFc.cached = 1;
134 }
135
getBITMAPFields(JNIEnv * env,jobject lpObject,BITMAP * lpStruct)136 BITMAP *getBITMAPFields(JNIEnv *env, jobject lpObject, BITMAP *lpStruct)
137 {
138 if (!BITMAPFc.cached) cacheBITMAPFields(env, lpObject);
139 lpStruct->bmType = (*env)->GetIntField(env, lpObject, BITMAPFc.bmType);
140 lpStruct->bmWidth = (*env)->GetIntField(env, lpObject, BITMAPFc.bmWidth);
141 lpStruct->bmHeight = (*env)->GetIntField(env, lpObject, BITMAPFc.bmHeight);
142 lpStruct->bmWidthBytes = (*env)->GetIntField(env, lpObject, BITMAPFc.bmWidthBytes);
143 lpStruct->bmPlanes = (*env)->GetShortField(env, lpObject, BITMAPFc.bmPlanes);
144 lpStruct->bmBitsPixel = (*env)->GetShortField(env, lpObject, BITMAPFc.bmBitsPixel);
145 lpStruct->bmBits = (LPVOID)(*env)->GetLongField(env, lpObject, BITMAPFc.bmBits);
146 return lpStruct;
147 }
148
setBITMAPFields(JNIEnv * env,jobject lpObject,BITMAP * lpStruct)149 void setBITMAPFields(JNIEnv *env, jobject lpObject, BITMAP *lpStruct)
150 {
151 if (!BITMAPFc.cached) cacheBITMAPFields(env, lpObject);
152 (*env)->SetIntField(env, lpObject, BITMAPFc.bmType, (jint)lpStruct->bmType);
153 (*env)->SetIntField(env, lpObject, BITMAPFc.bmWidth, (jint)lpStruct->bmWidth);
154 (*env)->SetIntField(env, lpObject, BITMAPFc.bmHeight, (jint)lpStruct->bmHeight);
155 (*env)->SetIntField(env, lpObject, BITMAPFc.bmWidthBytes, (jint)lpStruct->bmWidthBytes);
156 (*env)->SetShortField(env, lpObject, BITMAPFc.bmPlanes, (jshort)lpStruct->bmPlanes);
157 (*env)->SetShortField(env, lpObject, BITMAPFc.bmBitsPixel, (jshort)lpStruct->bmBitsPixel);
158 (*env)->SetLongField(env, lpObject, BITMAPFc.bmBits, (jlong)lpStruct->bmBits);
159 }
160 #endif
161
162 #ifndef NO_BITMAPINFOHEADER
163 typedef struct BITMAPINFOHEADER_FID_CACHE {
164 int cached;
165 jclass clazz;
166 jfieldID biSize, biWidth, biHeight, biPlanes, biBitCount, biCompression, biSizeImage, biXPelsPerMeter, biYPelsPerMeter, biClrUsed, biClrImportant;
167 } BITMAPINFOHEADER_FID_CACHE;
168
169 BITMAPINFOHEADER_FID_CACHE BITMAPINFOHEADERFc;
170
cacheBITMAPINFOHEADERFields(JNIEnv * env,jobject lpObject)171 void cacheBITMAPINFOHEADERFields(JNIEnv *env, jobject lpObject)
172 {
173 if (BITMAPINFOHEADERFc.cached) return;
174 BITMAPINFOHEADERFc.clazz = (*env)->GetObjectClass(env, lpObject);
175 BITMAPINFOHEADERFc.biSize = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biSize", "I");
176 BITMAPINFOHEADERFc.biWidth = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biWidth", "I");
177 BITMAPINFOHEADERFc.biHeight = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biHeight", "I");
178 BITMAPINFOHEADERFc.biPlanes = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biPlanes", "S");
179 BITMAPINFOHEADERFc.biBitCount = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biBitCount", "S");
180 BITMAPINFOHEADERFc.biCompression = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biCompression", "I");
181 BITMAPINFOHEADERFc.biSizeImage = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biSizeImage", "I");
182 BITMAPINFOHEADERFc.biXPelsPerMeter = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biXPelsPerMeter", "I");
183 BITMAPINFOHEADERFc.biYPelsPerMeter = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biYPelsPerMeter", "I");
184 BITMAPINFOHEADERFc.biClrUsed = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biClrUsed", "I");
185 BITMAPINFOHEADERFc.biClrImportant = (*env)->GetFieldID(env, BITMAPINFOHEADERFc.clazz, "biClrImportant", "I");
186 BITMAPINFOHEADERFc.cached = 1;
187 }
188
getBITMAPINFOHEADERFields(JNIEnv * env,jobject lpObject,BITMAPINFOHEADER * lpStruct)189 BITMAPINFOHEADER *getBITMAPINFOHEADERFields(JNIEnv *env, jobject lpObject, BITMAPINFOHEADER *lpStruct)
190 {
191 if (!BITMAPINFOHEADERFc.cached) cacheBITMAPINFOHEADERFields(env, lpObject);
192 lpStruct->biSize = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biSize);
193 lpStruct->biWidth = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biWidth);
194 lpStruct->biHeight = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biHeight);
195 lpStruct->biPlanes = (*env)->GetShortField(env, lpObject, BITMAPINFOHEADERFc.biPlanes);
196 lpStruct->biBitCount = (*env)->GetShortField(env, lpObject, BITMAPINFOHEADERFc.biBitCount);
197 lpStruct->biCompression = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biCompression);
198 lpStruct->biSizeImage = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biSizeImage);
199 lpStruct->biXPelsPerMeter = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biXPelsPerMeter);
200 lpStruct->biYPelsPerMeter = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biYPelsPerMeter);
201 lpStruct->biClrUsed = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biClrUsed);
202 lpStruct->biClrImportant = (*env)->GetIntField(env, lpObject, BITMAPINFOHEADERFc.biClrImportant);
203 return lpStruct;
204 }
205
setBITMAPINFOHEADERFields(JNIEnv * env,jobject lpObject,BITMAPINFOHEADER * lpStruct)206 void setBITMAPINFOHEADERFields(JNIEnv *env, jobject lpObject, BITMAPINFOHEADER *lpStruct)
207 {
208 if (!BITMAPINFOHEADERFc.cached) cacheBITMAPINFOHEADERFields(env, lpObject);
209 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biSize, (jint)lpStruct->biSize);
210 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biWidth, (jint)lpStruct->biWidth);
211 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biHeight, (jint)lpStruct->biHeight);
212 (*env)->SetShortField(env, lpObject, BITMAPINFOHEADERFc.biPlanes, (jshort)lpStruct->biPlanes);
213 (*env)->SetShortField(env, lpObject, BITMAPINFOHEADERFc.biBitCount, (jshort)lpStruct->biBitCount);
214 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biCompression, (jint)lpStruct->biCompression);
215 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biSizeImage, (jint)lpStruct->biSizeImage);
216 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biXPelsPerMeter, (jint)lpStruct->biXPelsPerMeter);
217 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biYPelsPerMeter, (jint)lpStruct->biYPelsPerMeter);
218 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biClrUsed, (jint)lpStruct->biClrUsed);
219 (*env)->SetIntField(env, lpObject, BITMAPINFOHEADERFc.biClrImportant, (jint)lpStruct->biClrImportant);
220 }
221 #endif
222
223 #ifndef NO_BLENDFUNCTION
224 typedef struct BLENDFUNCTION_FID_CACHE {
225 int cached;
226 jclass clazz;
227 jfieldID BlendOp, BlendFlags, SourceConstantAlpha, AlphaFormat;
228 } BLENDFUNCTION_FID_CACHE;
229
230 BLENDFUNCTION_FID_CACHE BLENDFUNCTIONFc;
231
cacheBLENDFUNCTIONFields(JNIEnv * env,jobject lpObject)232 void cacheBLENDFUNCTIONFields(JNIEnv *env, jobject lpObject)
233 {
234 if (BLENDFUNCTIONFc.cached) return;
235 BLENDFUNCTIONFc.clazz = (*env)->GetObjectClass(env, lpObject);
236 BLENDFUNCTIONFc.BlendOp = (*env)->GetFieldID(env, BLENDFUNCTIONFc.clazz, "BlendOp", "B");
237 BLENDFUNCTIONFc.BlendFlags = (*env)->GetFieldID(env, BLENDFUNCTIONFc.clazz, "BlendFlags", "B");
238 BLENDFUNCTIONFc.SourceConstantAlpha = (*env)->GetFieldID(env, BLENDFUNCTIONFc.clazz, "SourceConstantAlpha", "B");
239 BLENDFUNCTIONFc.AlphaFormat = (*env)->GetFieldID(env, BLENDFUNCTIONFc.clazz, "AlphaFormat", "B");
240 BLENDFUNCTIONFc.cached = 1;
241 }
242
getBLENDFUNCTIONFields(JNIEnv * env,jobject lpObject,BLENDFUNCTION * lpStruct)243 BLENDFUNCTION *getBLENDFUNCTIONFields(JNIEnv *env, jobject lpObject, BLENDFUNCTION *lpStruct)
244 {
245 if (!BLENDFUNCTIONFc.cached) cacheBLENDFUNCTIONFields(env, lpObject);
246 lpStruct->BlendOp = (*env)->GetByteField(env, lpObject, BLENDFUNCTIONFc.BlendOp);
247 lpStruct->BlendFlags = (*env)->GetByteField(env, lpObject, BLENDFUNCTIONFc.BlendFlags);
248 lpStruct->SourceConstantAlpha = (*env)->GetByteField(env, lpObject, BLENDFUNCTIONFc.SourceConstantAlpha);
249 lpStruct->AlphaFormat = (*env)->GetByteField(env, lpObject, BLENDFUNCTIONFc.AlphaFormat);
250 return lpStruct;
251 }
252
setBLENDFUNCTIONFields(JNIEnv * env,jobject lpObject,BLENDFUNCTION * lpStruct)253 void setBLENDFUNCTIONFields(JNIEnv *env, jobject lpObject, BLENDFUNCTION *lpStruct)
254 {
255 if (!BLENDFUNCTIONFc.cached) cacheBLENDFUNCTIONFields(env, lpObject);
256 (*env)->SetByteField(env, lpObject, BLENDFUNCTIONFc.BlendOp, (jbyte)lpStruct->BlendOp);
257 (*env)->SetByteField(env, lpObject, BLENDFUNCTIONFc.BlendFlags, (jbyte)lpStruct->BlendFlags);
258 (*env)->SetByteField(env, lpObject, BLENDFUNCTIONFc.SourceConstantAlpha, (jbyte)lpStruct->SourceConstantAlpha);
259 (*env)->SetByteField(env, lpObject, BLENDFUNCTIONFc.AlphaFormat, (jbyte)lpStruct->AlphaFormat);
260 }
261 #endif
262
263 #ifndef NO_BP_PAINTPARAMS
264 typedef struct BP_PAINTPARAMS_FID_CACHE {
265 int cached;
266 jclass clazz;
267 jfieldID cbSize, dwFlags, prcExclude, pBlendFunction;
268 } BP_PAINTPARAMS_FID_CACHE;
269
270 BP_PAINTPARAMS_FID_CACHE BP_PAINTPARAMSFc;
271
cacheBP_PAINTPARAMSFields(JNIEnv * env,jobject lpObject)272 void cacheBP_PAINTPARAMSFields(JNIEnv *env, jobject lpObject)
273 {
274 if (BP_PAINTPARAMSFc.cached) return;
275 BP_PAINTPARAMSFc.clazz = (*env)->GetObjectClass(env, lpObject);
276 BP_PAINTPARAMSFc.cbSize = (*env)->GetFieldID(env, BP_PAINTPARAMSFc.clazz, "cbSize", "I");
277 BP_PAINTPARAMSFc.dwFlags = (*env)->GetFieldID(env, BP_PAINTPARAMSFc.clazz, "dwFlags", "I");
278 BP_PAINTPARAMSFc.prcExclude = (*env)->GetFieldID(env, BP_PAINTPARAMSFc.clazz, "prcExclude", "J");
279 BP_PAINTPARAMSFc.pBlendFunction = (*env)->GetFieldID(env, BP_PAINTPARAMSFc.clazz, "pBlendFunction", "J");
280 BP_PAINTPARAMSFc.cached = 1;
281 }
282
getBP_PAINTPARAMSFields(JNIEnv * env,jobject lpObject,BP_PAINTPARAMS * lpStruct)283 BP_PAINTPARAMS *getBP_PAINTPARAMSFields(JNIEnv *env, jobject lpObject, BP_PAINTPARAMS *lpStruct)
284 {
285 if (!BP_PAINTPARAMSFc.cached) cacheBP_PAINTPARAMSFields(env, lpObject);
286 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, BP_PAINTPARAMSFc.cbSize);
287 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, BP_PAINTPARAMSFc.dwFlags);
288 lpStruct->prcExclude = (RECT*)(*env)->GetLongField(env, lpObject, BP_PAINTPARAMSFc.prcExclude);
289 lpStruct->pBlendFunction = (BLENDFUNCTION*)(*env)->GetLongField(env, lpObject, BP_PAINTPARAMSFc.pBlendFunction);
290 return lpStruct;
291 }
292
setBP_PAINTPARAMSFields(JNIEnv * env,jobject lpObject,BP_PAINTPARAMS * lpStruct)293 void setBP_PAINTPARAMSFields(JNIEnv *env, jobject lpObject, BP_PAINTPARAMS *lpStruct)
294 {
295 if (!BP_PAINTPARAMSFc.cached) cacheBP_PAINTPARAMSFields(env, lpObject);
296 (*env)->SetIntField(env, lpObject, BP_PAINTPARAMSFc.cbSize, (jint)lpStruct->cbSize);
297 (*env)->SetIntField(env, lpObject, BP_PAINTPARAMSFc.dwFlags, (jint)lpStruct->dwFlags);
298 (*env)->SetLongField(env, lpObject, BP_PAINTPARAMSFc.prcExclude, (jlong)lpStruct->prcExclude);
299 (*env)->SetLongField(env, lpObject, BP_PAINTPARAMSFc.pBlendFunction, (jlong)lpStruct->pBlendFunction);
300 }
301 #endif
302
303 #ifndef NO_BUTTON_IMAGELIST
304 typedef struct BUTTON_IMAGELIST_FID_CACHE {
305 int cached;
306 jclass clazz;
307 jfieldID himl, margin_left, margin_top, margin_right, margin_bottom, uAlign;
308 } BUTTON_IMAGELIST_FID_CACHE;
309
310 BUTTON_IMAGELIST_FID_CACHE BUTTON_IMAGELISTFc;
311
cacheBUTTON_IMAGELISTFields(JNIEnv * env,jobject lpObject)312 void cacheBUTTON_IMAGELISTFields(JNIEnv *env, jobject lpObject)
313 {
314 if (BUTTON_IMAGELISTFc.cached) return;
315 BUTTON_IMAGELISTFc.clazz = (*env)->GetObjectClass(env, lpObject);
316 BUTTON_IMAGELISTFc.himl = (*env)->GetFieldID(env, BUTTON_IMAGELISTFc.clazz, "himl", "J");
317 BUTTON_IMAGELISTFc.margin_left = (*env)->GetFieldID(env, BUTTON_IMAGELISTFc.clazz, "margin_left", "I");
318 BUTTON_IMAGELISTFc.margin_top = (*env)->GetFieldID(env, BUTTON_IMAGELISTFc.clazz, "margin_top", "I");
319 BUTTON_IMAGELISTFc.margin_right = (*env)->GetFieldID(env, BUTTON_IMAGELISTFc.clazz, "margin_right", "I");
320 BUTTON_IMAGELISTFc.margin_bottom = (*env)->GetFieldID(env, BUTTON_IMAGELISTFc.clazz, "margin_bottom", "I");
321 BUTTON_IMAGELISTFc.uAlign = (*env)->GetFieldID(env, BUTTON_IMAGELISTFc.clazz, "uAlign", "I");
322 BUTTON_IMAGELISTFc.cached = 1;
323 }
324
getBUTTON_IMAGELISTFields(JNIEnv * env,jobject lpObject,BUTTON_IMAGELIST * lpStruct)325 BUTTON_IMAGELIST *getBUTTON_IMAGELISTFields(JNIEnv *env, jobject lpObject, BUTTON_IMAGELIST *lpStruct)
326 {
327 if (!BUTTON_IMAGELISTFc.cached) cacheBUTTON_IMAGELISTFields(env, lpObject);
328 lpStruct->himl = (HIMAGELIST)(*env)->GetLongField(env, lpObject, BUTTON_IMAGELISTFc.himl);
329 lpStruct->margin.left = (LONG)(*env)->GetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_left);
330 lpStruct->margin.top = (LONG)(*env)->GetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_top);
331 lpStruct->margin.right = (LONG)(*env)->GetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_right);
332 lpStruct->margin.bottom = (LONG)(*env)->GetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_bottom);
333 lpStruct->uAlign = (UINT)(*env)->GetIntField(env, lpObject, BUTTON_IMAGELISTFc.uAlign);
334 return lpStruct;
335 }
336
setBUTTON_IMAGELISTFields(JNIEnv * env,jobject lpObject,BUTTON_IMAGELIST * lpStruct)337 void setBUTTON_IMAGELISTFields(JNIEnv *env, jobject lpObject, BUTTON_IMAGELIST *lpStruct)
338 {
339 if (!BUTTON_IMAGELISTFc.cached) cacheBUTTON_IMAGELISTFields(env, lpObject);
340 (*env)->SetLongField(env, lpObject, BUTTON_IMAGELISTFc.himl, (jlong)lpStruct->himl);
341 (*env)->SetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_left, (jint)lpStruct->margin.left);
342 (*env)->SetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_top, (jint)lpStruct->margin.top);
343 (*env)->SetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_right, (jint)lpStruct->margin.right);
344 (*env)->SetIntField(env, lpObject, BUTTON_IMAGELISTFc.margin_bottom, (jint)lpStruct->margin.bottom);
345 (*env)->SetIntField(env, lpObject, BUTTON_IMAGELISTFc.uAlign, (jint)lpStruct->uAlign);
346 }
347 #endif
348
349 #ifndef NO_CANDIDATEFORM
350 typedef struct CANDIDATEFORM_FID_CACHE {
351 int cached;
352 jclass clazz;
353 jfieldID dwIndex, dwStyle, ptCurrentPos, rcArea;
354 } CANDIDATEFORM_FID_CACHE;
355
356 CANDIDATEFORM_FID_CACHE CANDIDATEFORMFc;
357
cacheCANDIDATEFORMFields(JNIEnv * env,jobject lpObject)358 void cacheCANDIDATEFORMFields(JNIEnv *env, jobject lpObject)
359 {
360 if (CANDIDATEFORMFc.cached) return;
361 CANDIDATEFORMFc.clazz = (*env)->GetObjectClass(env, lpObject);
362 CANDIDATEFORMFc.dwIndex = (*env)->GetFieldID(env, CANDIDATEFORMFc.clazz, "dwIndex", "I");
363 CANDIDATEFORMFc.dwStyle = (*env)->GetFieldID(env, CANDIDATEFORMFc.clazz, "dwStyle", "I");
364 CANDIDATEFORMFc.ptCurrentPos = (*env)->GetFieldID(env, CANDIDATEFORMFc.clazz, "ptCurrentPos", "Lorg/eclipse/swt/internal/win32/POINT;");
365 CANDIDATEFORMFc.rcArea = (*env)->GetFieldID(env, CANDIDATEFORMFc.clazz, "rcArea", "Lorg/eclipse/swt/internal/win32/RECT;");
366 CANDIDATEFORMFc.cached = 1;
367 }
368
getCANDIDATEFORMFields(JNIEnv * env,jobject lpObject,CANDIDATEFORM * lpStruct)369 CANDIDATEFORM *getCANDIDATEFORMFields(JNIEnv *env, jobject lpObject, CANDIDATEFORM *lpStruct)
370 {
371 if (!CANDIDATEFORMFc.cached) cacheCANDIDATEFORMFields(env, lpObject);
372 lpStruct->dwIndex = (*env)->GetIntField(env, lpObject, CANDIDATEFORMFc.dwIndex);
373 lpStruct->dwStyle = (*env)->GetIntField(env, lpObject, CANDIDATEFORMFc.dwStyle);
374 {
375 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CANDIDATEFORMFc.ptCurrentPos);
376 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->ptCurrentPos);
377 }
378 {
379 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CANDIDATEFORMFc.rcArea);
380 if (lpObject1 != NULL) getRECTFields(env, lpObject1, &lpStruct->rcArea);
381 }
382 return lpStruct;
383 }
384
setCANDIDATEFORMFields(JNIEnv * env,jobject lpObject,CANDIDATEFORM * lpStruct)385 void setCANDIDATEFORMFields(JNIEnv *env, jobject lpObject, CANDIDATEFORM *lpStruct)
386 {
387 if (!CANDIDATEFORMFc.cached) cacheCANDIDATEFORMFields(env, lpObject);
388 (*env)->SetIntField(env, lpObject, CANDIDATEFORMFc.dwIndex, (jint)lpStruct->dwIndex);
389 (*env)->SetIntField(env, lpObject, CANDIDATEFORMFc.dwStyle, (jint)lpStruct->dwStyle);
390 {
391 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CANDIDATEFORMFc.ptCurrentPos);
392 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->ptCurrentPos);
393 }
394 {
395 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CANDIDATEFORMFc.rcArea);
396 if (lpObject1 != NULL) setRECTFields(env, lpObject1, &lpStruct->rcArea);
397 }
398 }
399 #endif
400
401 #ifndef NO_CERT_CONTEXT
402 typedef struct CERT_CONTEXT_FID_CACHE {
403 int cached;
404 jclass clazz;
405 jfieldID dwCertEncodingType, pbCertEncoded, cbCertEncoded, pCertInfo, hCertStore;
406 } CERT_CONTEXT_FID_CACHE;
407
408 CERT_CONTEXT_FID_CACHE CERT_CONTEXTFc;
409
cacheCERT_CONTEXTFields(JNIEnv * env,jobject lpObject)410 void cacheCERT_CONTEXTFields(JNIEnv *env, jobject lpObject)
411 {
412 if (CERT_CONTEXTFc.cached) return;
413 CERT_CONTEXTFc.clazz = (*env)->GetObjectClass(env, lpObject);
414 CERT_CONTEXTFc.dwCertEncodingType = (*env)->GetFieldID(env, CERT_CONTEXTFc.clazz, "dwCertEncodingType", "I");
415 CERT_CONTEXTFc.pbCertEncoded = (*env)->GetFieldID(env, CERT_CONTEXTFc.clazz, "pbCertEncoded", "J");
416 CERT_CONTEXTFc.cbCertEncoded = (*env)->GetFieldID(env, CERT_CONTEXTFc.clazz, "cbCertEncoded", "I");
417 CERT_CONTEXTFc.pCertInfo = (*env)->GetFieldID(env, CERT_CONTEXTFc.clazz, "pCertInfo", "J");
418 CERT_CONTEXTFc.hCertStore = (*env)->GetFieldID(env, CERT_CONTEXTFc.clazz, "hCertStore", "J");
419 CERT_CONTEXTFc.cached = 1;
420 }
421
getCERT_CONTEXTFields(JNIEnv * env,jobject lpObject,CERT_CONTEXT * lpStruct)422 CERT_CONTEXT *getCERT_CONTEXTFields(JNIEnv *env, jobject lpObject, CERT_CONTEXT *lpStruct)
423 {
424 if (!CERT_CONTEXTFc.cached) cacheCERT_CONTEXTFields(env, lpObject);
425 lpStruct->dwCertEncodingType = (*env)->GetIntField(env, lpObject, CERT_CONTEXTFc.dwCertEncodingType);
426 lpStruct->pbCertEncoded = (BYTE *)(*env)->GetLongField(env, lpObject, CERT_CONTEXTFc.pbCertEncoded);
427 lpStruct->cbCertEncoded = (*env)->GetIntField(env, lpObject, CERT_CONTEXTFc.cbCertEncoded);
428 lpStruct->pCertInfo = (PCERT_INFO)(*env)->GetLongField(env, lpObject, CERT_CONTEXTFc.pCertInfo);
429 lpStruct->hCertStore = (HCERTSTORE)(*env)->GetLongField(env, lpObject, CERT_CONTEXTFc.hCertStore);
430 return lpStruct;
431 }
432
setCERT_CONTEXTFields(JNIEnv * env,jobject lpObject,CERT_CONTEXT * lpStruct)433 void setCERT_CONTEXTFields(JNIEnv *env, jobject lpObject, CERT_CONTEXT *lpStruct)
434 {
435 if (!CERT_CONTEXTFc.cached) cacheCERT_CONTEXTFields(env, lpObject);
436 (*env)->SetIntField(env, lpObject, CERT_CONTEXTFc.dwCertEncodingType, (jint)lpStruct->dwCertEncodingType);
437 (*env)->SetLongField(env, lpObject, CERT_CONTEXTFc.pbCertEncoded, (jlong)lpStruct->pbCertEncoded);
438 (*env)->SetIntField(env, lpObject, CERT_CONTEXTFc.cbCertEncoded, (jint)lpStruct->cbCertEncoded);
439 (*env)->SetLongField(env, lpObject, CERT_CONTEXTFc.pCertInfo, (jlong)lpStruct->pCertInfo);
440 (*env)->SetLongField(env, lpObject, CERT_CONTEXTFc.hCertStore, (jlong)lpStruct->hCertStore);
441 }
442 #endif
443
444 #ifndef NO_CERT_INFO
445 typedef struct CERT_INFO_FID_CACHE {
446 int cached;
447 jclass clazz;
448 jfieldID dwVersion, SerialNumber, SignatureAlgorithm, Issuer, NotBefore, NotAfter, Subject, SubjectPublicKeyInfo, IssuerUniqueId, SubjectUniqueId, cExtension, rgExtension;
449 } CERT_INFO_FID_CACHE;
450
451 CERT_INFO_FID_CACHE CERT_INFOFc;
452
cacheCERT_INFOFields(JNIEnv * env,jobject lpObject)453 void cacheCERT_INFOFields(JNIEnv *env, jobject lpObject)
454 {
455 if (CERT_INFOFc.cached) return;
456 CERT_INFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
457 CERT_INFOFc.dwVersion = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "dwVersion", "I");
458 CERT_INFOFc.SerialNumber = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "SerialNumber", "Lorg/eclipse/swt/internal/win32/CRYPT_INTEGER_BLOB;");
459 CERT_INFOFc.SignatureAlgorithm = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "SignatureAlgorithm", "Lorg/eclipse/swt/internal/win32/CRYPT_ALGORITHM_IDENTIFIER;");
460 CERT_INFOFc.Issuer = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "Issuer", "Lorg/eclipse/swt/internal/win32/CERT_NAME_BLOB;");
461 CERT_INFOFc.NotBefore = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "NotBefore", "Lorg/eclipse/swt/internal/win32/FILETIME;");
462 CERT_INFOFc.NotAfter = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "NotAfter", "Lorg/eclipse/swt/internal/win32/FILETIME;");
463 CERT_INFOFc.Subject = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "Subject", "Lorg/eclipse/swt/internal/win32/CERT_NAME_BLOB;");
464 CERT_INFOFc.SubjectPublicKeyInfo = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "SubjectPublicKeyInfo", "Lorg/eclipse/swt/internal/win32/CERT_PUBLIC_KEY_INFO;");
465 CERT_INFOFc.IssuerUniqueId = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "IssuerUniqueId", "Lorg/eclipse/swt/internal/win32/CRYPT_BIT_BLOB;");
466 CERT_INFOFc.SubjectUniqueId = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "SubjectUniqueId", "Lorg/eclipse/swt/internal/win32/CRYPT_BIT_BLOB;");
467 CERT_INFOFc.cExtension = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "cExtension", "I");
468 CERT_INFOFc.rgExtension = (*env)->GetFieldID(env, CERT_INFOFc.clazz, "rgExtension", "J");
469 CERT_INFOFc.cached = 1;
470 }
471
getCERT_INFOFields(JNIEnv * env,jobject lpObject,CERT_INFO * lpStruct)472 CERT_INFO *getCERT_INFOFields(JNIEnv *env, jobject lpObject, CERT_INFO *lpStruct)
473 {
474 if (!CERT_INFOFc.cached) cacheCERT_INFOFields(env, lpObject);
475 lpStruct->dwVersion = (*env)->GetIntField(env, lpObject, CERT_INFOFc.dwVersion);
476 {
477 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SerialNumber);
478 if (lpObject1 != NULL) getCRYPT_INTEGER_BLOBFields(env, lpObject1, &lpStruct->SerialNumber);
479 }
480 {
481 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SignatureAlgorithm);
482 if (lpObject1 != NULL) getCRYPT_ALGORITHM_IDENTIFIERFields(env, lpObject1, &lpStruct->SignatureAlgorithm);
483 }
484 {
485 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.Issuer);
486 if (lpObject1 != NULL) getCERT_NAME_BLOBFields(env, lpObject1, &lpStruct->Issuer);
487 }
488 {
489 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.NotBefore);
490 if (lpObject1 != NULL) getFILETIMEFields(env, lpObject1, &lpStruct->NotBefore);
491 }
492 {
493 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.NotAfter);
494 if (lpObject1 != NULL) getFILETIMEFields(env, lpObject1, &lpStruct->NotAfter);
495 }
496 {
497 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.Subject);
498 if (lpObject1 != NULL) getCERT_NAME_BLOBFields(env, lpObject1, &lpStruct->Subject);
499 }
500 {
501 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SubjectPublicKeyInfo);
502 if (lpObject1 != NULL) getCERT_PUBLIC_KEY_INFOFields(env, lpObject1, &lpStruct->SubjectPublicKeyInfo);
503 }
504 {
505 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.IssuerUniqueId);
506 if (lpObject1 != NULL) getCRYPT_BIT_BLOBFields(env, lpObject1, &lpStruct->IssuerUniqueId);
507 }
508 {
509 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SubjectUniqueId);
510 if (lpObject1 != NULL) getCRYPT_BIT_BLOBFields(env, lpObject1, &lpStruct->SubjectUniqueId);
511 }
512 lpStruct->cExtension = (*env)->GetIntField(env, lpObject, CERT_INFOFc.cExtension);
513 lpStruct->rgExtension = (PCERT_EXTENSION)(*env)->GetLongField(env, lpObject, CERT_INFOFc.rgExtension);
514 return lpStruct;
515 }
516
setCERT_INFOFields(JNIEnv * env,jobject lpObject,CERT_INFO * lpStruct)517 void setCERT_INFOFields(JNIEnv *env, jobject lpObject, CERT_INFO *lpStruct)
518 {
519 if (!CERT_INFOFc.cached) cacheCERT_INFOFields(env, lpObject);
520 (*env)->SetIntField(env, lpObject, CERT_INFOFc.dwVersion, (jint)lpStruct->dwVersion);
521 {
522 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SerialNumber);
523 if (lpObject1 != NULL) setCRYPT_INTEGER_BLOBFields(env, lpObject1, &lpStruct->SerialNumber);
524 }
525 {
526 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SignatureAlgorithm);
527 if (lpObject1 != NULL) setCRYPT_ALGORITHM_IDENTIFIERFields(env, lpObject1, &lpStruct->SignatureAlgorithm);
528 }
529 {
530 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.Issuer);
531 if (lpObject1 != NULL) setCERT_NAME_BLOBFields(env, lpObject1, &lpStruct->Issuer);
532 }
533 {
534 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.NotBefore);
535 if (lpObject1 != NULL) setFILETIMEFields(env, lpObject1, &lpStruct->NotBefore);
536 }
537 {
538 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.NotAfter);
539 if (lpObject1 != NULL) setFILETIMEFields(env, lpObject1, &lpStruct->NotAfter);
540 }
541 {
542 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.Subject);
543 if (lpObject1 != NULL) setCERT_NAME_BLOBFields(env, lpObject1, &lpStruct->Subject);
544 }
545 {
546 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SubjectPublicKeyInfo);
547 if (lpObject1 != NULL) setCERT_PUBLIC_KEY_INFOFields(env, lpObject1, &lpStruct->SubjectPublicKeyInfo);
548 }
549 {
550 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.IssuerUniqueId);
551 if (lpObject1 != NULL) setCRYPT_BIT_BLOBFields(env, lpObject1, &lpStruct->IssuerUniqueId);
552 }
553 {
554 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_INFOFc.SubjectUniqueId);
555 if (lpObject1 != NULL) setCRYPT_BIT_BLOBFields(env, lpObject1, &lpStruct->SubjectUniqueId);
556 }
557 (*env)->SetIntField(env, lpObject, CERT_INFOFc.cExtension, (jint)lpStruct->cExtension);
558 (*env)->SetLongField(env, lpObject, CERT_INFOFc.rgExtension, (jlong)lpStruct->rgExtension);
559 }
560 #endif
561
562 #ifndef NO_CERT_NAME_BLOB
563 typedef struct CERT_NAME_BLOB_FID_CACHE {
564 int cached;
565 jclass clazz;
566 jfieldID cbData, pbData;
567 } CERT_NAME_BLOB_FID_CACHE;
568
569 CERT_NAME_BLOB_FID_CACHE CERT_NAME_BLOBFc;
570
cacheCERT_NAME_BLOBFields(JNIEnv * env,jobject lpObject)571 void cacheCERT_NAME_BLOBFields(JNIEnv *env, jobject lpObject)
572 {
573 if (CERT_NAME_BLOBFc.cached) return;
574 CERT_NAME_BLOBFc.clazz = (*env)->GetObjectClass(env, lpObject);
575 CERT_NAME_BLOBFc.cbData = (*env)->GetFieldID(env, CERT_NAME_BLOBFc.clazz, "cbData", "I");
576 CERT_NAME_BLOBFc.pbData = (*env)->GetFieldID(env, CERT_NAME_BLOBFc.clazz, "pbData", "J");
577 CERT_NAME_BLOBFc.cached = 1;
578 }
579
getCERT_NAME_BLOBFields(JNIEnv * env,jobject lpObject,CERT_NAME_BLOB * lpStruct)580 CERT_NAME_BLOB *getCERT_NAME_BLOBFields(JNIEnv *env, jobject lpObject, CERT_NAME_BLOB *lpStruct)
581 {
582 if (!CERT_NAME_BLOBFc.cached) cacheCERT_NAME_BLOBFields(env, lpObject);
583 lpStruct->cbData = (*env)->GetIntField(env, lpObject, CERT_NAME_BLOBFc.cbData);
584 lpStruct->pbData = (BYTE *)(*env)->GetLongField(env, lpObject, CERT_NAME_BLOBFc.pbData);
585 return lpStruct;
586 }
587
setCERT_NAME_BLOBFields(JNIEnv * env,jobject lpObject,CERT_NAME_BLOB * lpStruct)588 void setCERT_NAME_BLOBFields(JNIEnv *env, jobject lpObject, CERT_NAME_BLOB *lpStruct)
589 {
590 if (!CERT_NAME_BLOBFc.cached) cacheCERT_NAME_BLOBFields(env, lpObject);
591 (*env)->SetIntField(env, lpObject, CERT_NAME_BLOBFc.cbData, (jint)lpStruct->cbData);
592 (*env)->SetLongField(env, lpObject, CERT_NAME_BLOBFc.pbData, (jlong)lpStruct->pbData);
593 }
594 #endif
595
596 #ifndef NO_CERT_PUBLIC_KEY_INFO
597 typedef struct CERT_PUBLIC_KEY_INFO_FID_CACHE {
598 int cached;
599 jclass clazz;
600 jfieldID Algorithm, PublicKey;
601 } CERT_PUBLIC_KEY_INFO_FID_CACHE;
602
603 CERT_PUBLIC_KEY_INFO_FID_CACHE CERT_PUBLIC_KEY_INFOFc;
604
cacheCERT_PUBLIC_KEY_INFOFields(JNIEnv * env,jobject lpObject)605 void cacheCERT_PUBLIC_KEY_INFOFields(JNIEnv *env, jobject lpObject)
606 {
607 if (CERT_PUBLIC_KEY_INFOFc.cached) return;
608 CERT_PUBLIC_KEY_INFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
609 CERT_PUBLIC_KEY_INFOFc.Algorithm = (*env)->GetFieldID(env, CERT_PUBLIC_KEY_INFOFc.clazz, "Algorithm", "Lorg/eclipse/swt/internal/win32/CRYPT_ALGORITHM_IDENTIFIER;");
610 CERT_PUBLIC_KEY_INFOFc.PublicKey = (*env)->GetFieldID(env, CERT_PUBLIC_KEY_INFOFc.clazz, "PublicKey", "Lorg/eclipse/swt/internal/win32/CRYPT_BIT_BLOB;");
611 CERT_PUBLIC_KEY_INFOFc.cached = 1;
612 }
613
getCERT_PUBLIC_KEY_INFOFields(JNIEnv * env,jobject lpObject,CERT_PUBLIC_KEY_INFO * lpStruct)614 CERT_PUBLIC_KEY_INFO *getCERT_PUBLIC_KEY_INFOFields(JNIEnv *env, jobject lpObject, CERT_PUBLIC_KEY_INFO *lpStruct)
615 {
616 if (!CERT_PUBLIC_KEY_INFOFc.cached) cacheCERT_PUBLIC_KEY_INFOFields(env, lpObject);
617 {
618 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_PUBLIC_KEY_INFOFc.Algorithm);
619 if (lpObject1 != NULL) getCRYPT_ALGORITHM_IDENTIFIERFields(env, lpObject1, &lpStruct->Algorithm);
620 }
621 {
622 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_PUBLIC_KEY_INFOFc.PublicKey);
623 if (lpObject1 != NULL) getCRYPT_BIT_BLOBFields(env, lpObject1, &lpStruct->PublicKey);
624 }
625 return lpStruct;
626 }
627
setCERT_PUBLIC_KEY_INFOFields(JNIEnv * env,jobject lpObject,CERT_PUBLIC_KEY_INFO * lpStruct)628 void setCERT_PUBLIC_KEY_INFOFields(JNIEnv *env, jobject lpObject, CERT_PUBLIC_KEY_INFO *lpStruct)
629 {
630 if (!CERT_PUBLIC_KEY_INFOFc.cached) cacheCERT_PUBLIC_KEY_INFOFields(env, lpObject);
631 {
632 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_PUBLIC_KEY_INFOFc.Algorithm);
633 if (lpObject1 != NULL) setCRYPT_ALGORITHM_IDENTIFIERFields(env, lpObject1, &lpStruct->Algorithm);
634 }
635 {
636 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CERT_PUBLIC_KEY_INFOFc.PublicKey);
637 if (lpObject1 != NULL) setCRYPT_BIT_BLOBFields(env, lpObject1, &lpStruct->PublicKey);
638 }
639 }
640 #endif
641
642 #ifndef NO_CHOOSECOLOR
643 typedef struct CHOOSECOLOR_FID_CACHE {
644 int cached;
645 jclass clazz;
646 jfieldID lStructSize, hwndOwner, hInstance, rgbResult, lpCustColors, Flags, lCustData, lpfnHook, lpTemplateName;
647 } CHOOSECOLOR_FID_CACHE;
648
649 CHOOSECOLOR_FID_CACHE CHOOSECOLORFc;
650
cacheCHOOSECOLORFields(JNIEnv * env,jobject lpObject)651 void cacheCHOOSECOLORFields(JNIEnv *env, jobject lpObject)
652 {
653 if (CHOOSECOLORFc.cached) return;
654 CHOOSECOLORFc.clazz = (*env)->GetObjectClass(env, lpObject);
655 CHOOSECOLORFc.lStructSize = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "lStructSize", "I");
656 CHOOSECOLORFc.hwndOwner = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "hwndOwner", "J");
657 CHOOSECOLORFc.hInstance = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "hInstance", "J");
658 CHOOSECOLORFc.rgbResult = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "rgbResult", "I");
659 CHOOSECOLORFc.lpCustColors = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "lpCustColors", "J");
660 CHOOSECOLORFc.Flags = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "Flags", "I");
661 CHOOSECOLORFc.lCustData = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "lCustData", "J");
662 CHOOSECOLORFc.lpfnHook = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "lpfnHook", "J");
663 CHOOSECOLORFc.lpTemplateName = (*env)->GetFieldID(env, CHOOSECOLORFc.clazz, "lpTemplateName", "J");
664 CHOOSECOLORFc.cached = 1;
665 }
666
getCHOOSECOLORFields(JNIEnv * env,jobject lpObject,CHOOSECOLOR * lpStruct)667 CHOOSECOLOR *getCHOOSECOLORFields(JNIEnv *env, jobject lpObject, CHOOSECOLOR *lpStruct)
668 {
669 if (!CHOOSECOLORFc.cached) cacheCHOOSECOLORFields(env, lpObject);
670 lpStruct->lStructSize = (*env)->GetIntField(env, lpObject, CHOOSECOLORFc.lStructSize);
671 lpStruct->hwndOwner = (HWND)(*env)->GetLongField(env, lpObject, CHOOSECOLORFc.hwndOwner);
672 lpStruct->hInstance = (HANDLE)(*env)->GetLongField(env, lpObject, CHOOSECOLORFc.hInstance);
673 lpStruct->rgbResult = (*env)->GetIntField(env, lpObject, CHOOSECOLORFc.rgbResult);
674 lpStruct->lpCustColors = (COLORREF *)(*env)->GetLongField(env, lpObject, CHOOSECOLORFc.lpCustColors);
675 lpStruct->Flags = (*env)->GetIntField(env, lpObject, CHOOSECOLORFc.Flags);
676 lpStruct->lCustData = (*env)->GetLongField(env, lpObject, CHOOSECOLORFc.lCustData);
677 lpStruct->lpfnHook = (LPCCHOOKPROC)(*env)->GetLongField(env, lpObject, CHOOSECOLORFc.lpfnHook);
678 lpStruct->lpTemplateName = (LPCTSTR)(*env)->GetLongField(env, lpObject, CHOOSECOLORFc.lpTemplateName);
679 return lpStruct;
680 }
681
setCHOOSECOLORFields(JNIEnv * env,jobject lpObject,CHOOSECOLOR * lpStruct)682 void setCHOOSECOLORFields(JNIEnv *env, jobject lpObject, CHOOSECOLOR *lpStruct)
683 {
684 if (!CHOOSECOLORFc.cached) cacheCHOOSECOLORFields(env, lpObject);
685 (*env)->SetIntField(env, lpObject, CHOOSECOLORFc.lStructSize, (jint)lpStruct->lStructSize);
686 (*env)->SetLongField(env, lpObject, CHOOSECOLORFc.hwndOwner, (jlong)lpStruct->hwndOwner);
687 (*env)->SetLongField(env, lpObject, CHOOSECOLORFc.hInstance, (jlong)lpStruct->hInstance);
688 (*env)->SetIntField(env, lpObject, CHOOSECOLORFc.rgbResult, (jint)lpStruct->rgbResult);
689 (*env)->SetLongField(env, lpObject, CHOOSECOLORFc.lpCustColors, (jlong)lpStruct->lpCustColors);
690 (*env)->SetIntField(env, lpObject, CHOOSECOLORFc.Flags, (jint)lpStruct->Flags);
691 (*env)->SetLongField(env, lpObject, CHOOSECOLORFc.lCustData, (jlong)lpStruct->lCustData);
692 (*env)->SetLongField(env, lpObject, CHOOSECOLORFc.lpfnHook, (jlong)lpStruct->lpfnHook);
693 (*env)->SetLongField(env, lpObject, CHOOSECOLORFc.lpTemplateName, (jlong)lpStruct->lpTemplateName);
694 }
695 #endif
696
697 #ifndef NO_CHOOSEFONT
698 typedef struct CHOOSEFONT_FID_CACHE {
699 int cached;
700 jclass clazz;
701 jfieldID lStructSize, hwndOwner, hDC, lpLogFont, iPointSize, Flags, rgbColors, lCustData, lpfnHook, lpTemplateName, hInstance, lpszStyle, nFontType, nSizeMin, nSizeMax;
702 } CHOOSEFONT_FID_CACHE;
703
704 CHOOSEFONT_FID_CACHE CHOOSEFONTFc;
705
cacheCHOOSEFONTFields(JNIEnv * env,jobject lpObject)706 void cacheCHOOSEFONTFields(JNIEnv *env, jobject lpObject)
707 {
708 if (CHOOSEFONTFc.cached) return;
709 CHOOSEFONTFc.clazz = (*env)->GetObjectClass(env, lpObject);
710 CHOOSEFONTFc.lStructSize = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "lStructSize", "I");
711 CHOOSEFONTFc.hwndOwner = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "hwndOwner", "J");
712 CHOOSEFONTFc.hDC = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "hDC", "J");
713 CHOOSEFONTFc.lpLogFont = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "lpLogFont", "J");
714 CHOOSEFONTFc.iPointSize = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "iPointSize", "I");
715 CHOOSEFONTFc.Flags = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "Flags", "I");
716 CHOOSEFONTFc.rgbColors = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "rgbColors", "I");
717 CHOOSEFONTFc.lCustData = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "lCustData", "J");
718 CHOOSEFONTFc.lpfnHook = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "lpfnHook", "J");
719 CHOOSEFONTFc.lpTemplateName = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "lpTemplateName", "J");
720 CHOOSEFONTFc.hInstance = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "hInstance", "J");
721 CHOOSEFONTFc.lpszStyle = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "lpszStyle", "J");
722 CHOOSEFONTFc.nFontType = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "nFontType", "S");
723 CHOOSEFONTFc.nSizeMin = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "nSizeMin", "I");
724 CHOOSEFONTFc.nSizeMax = (*env)->GetFieldID(env, CHOOSEFONTFc.clazz, "nSizeMax", "I");
725 CHOOSEFONTFc.cached = 1;
726 }
727
getCHOOSEFONTFields(JNIEnv * env,jobject lpObject,CHOOSEFONT * lpStruct)728 CHOOSEFONT *getCHOOSEFONTFields(JNIEnv *env, jobject lpObject, CHOOSEFONT *lpStruct)
729 {
730 if (!CHOOSEFONTFc.cached) cacheCHOOSEFONTFields(env, lpObject);
731 lpStruct->lStructSize = (*env)->GetIntField(env, lpObject, CHOOSEFONTFc.lStructSize);
732 lpStruct->hwndOwner = (HWND)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.hwndOwner);
733 lpStruct->hDC = (HDC)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.hDC);
734 lpStruct->lpLogFont = (LPLOGFONT)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.lpLogFont);
735 lpStruct->iPointSize = (*env)->GetIntField(env, lpObject, CHOOSEFONTFc.iPointSize);
736 lpStruct->Flags = (*env)->GetIntField(env, lpObject, CHOOSEFONTFc.Flags);
737 lpStruct->rgbColors = (*env)->GetIntField(env, lpObject, CHOOSEFONTFc.rgbColors);
738 lpStruct->lCustData = (*env)->GetLongField(env, lpObject, CHOOSEFONTFc.lCustData);
739 lpStruct->lpfnHook = (LPCFHOOKPROC)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.lpfnHook);
740 lpStruct->lpTemplateName = (LPCTSTR)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.lpTemplateName);
741 lpStruct->hInstance = (HINSTANCE)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.hInstance);
742 lpStruct->lpszStyle = (LPTSTR)(*env)->GetLongField(env, lpObject, CHOOSEFONTFc.lpszStyle);
743 lpStruct->nFontType = (*env)->GetShortField(env, lpObject, CHOOSEFONTFc.nFontType);
744 lpStruct->nSizeMin = (*env)->GetIntField(env, lpObject, CHOOSEFONTFc.nSizeMin);
745 lpStruct->nSizeMax = (*env)->GetIntField(env, lpObject, CHOOSEFONTFc.nSizeMax);
746 return lpStruct;
747 }
748
setCHOOSEFONTFields(JNIEnv * env,jobject lpObject,CHOOSEFONT * lpStruct)749 void setCHOOSEFONTFields(JNIEnv *env, jobject lpObject, CHOOSEFONT *lpStruct)
750 {
751 if (!CHOOSEFONTFc.cached) cacheCHOOSEFONTFields(env, lpObject);
752 (*env)->SetIntField(env, lpObject, CHOOSEFONTFc.lStructSize, (jint)lpStruct->lStructSize);
753 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.hwndOwner, (jlong)lpStruct->hwndOwner);
754 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.hDC, (jlong)lpStruct->hDC);
755 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.lpLogFont, (jlong)lpStruct->lpLogFont);
756 (*env)->SetIntField(env, lpObject, CHOOSEFONTFc.iPointSize, (jint)lpStruct->iPointSize);
757 (*env)->SetIntField(env, lpObject, CHOOSEFONTFc.Flags, (jint)lpStruct->Flags);
758 (*env)->SetIntField(env, lpObject, CHOOSEFONTFc.rgbColors, (jint)lpStruct->rgbColors);
759 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.lCustData, (jlong)lpStruct->lCustData);
760 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.lpfnHook, (jlong)lpStruct->lpfnHook);
761 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.lpTemplateName, (jlong)lpStruct->lpTemplateName);
762 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.hInstance, (jlong)lpStruct->hInstance);
763 (*env)->SetLongField(env, lpObject, CHOOSEFONTFc.lpszStyle, (jlong)lpStruct->lpszStyle);
764 (*env)->SetShortField(env, lpObject, CHOOSEFONTFc.nFontType, (jshort)lpStruct->nFontType);
765 (*env)->SetIntField(env, lpObject, CHOOSEFONTFc.nSizeMin, (jint)lpStruct->nSizeMin);
766 (*env)->SetIntField(env, lpObject, CHOOSEFONTFc.nSizeMax, (jint)lpStruct->nSizeMax);
767 }
768 #endif
769
770 #ifndef NO_CIDA
771 typedef struct CIDA_FID_CACHE {
772 int cached;
773 jclass clazz;
774 jfieldID cidl, aoffset;
775 } CIDA_FID_CACHE;
776
777 CIDA_FID_CACHE CIDAFc;
778
cacheCIDAFields(JNIEnv * env,jobject lpObject)779 void cacheCIDAFields(JNIEnv *env, jobject lpObject)
780 {
781 if (CIDAFc.cached) return;
782 CIDAFc.clazz = (*env)->GetObjectClass(env, lpObject);
783 CIDAFc.cidl = (*env)->GetFieldID(env, CIDAFc.clazz, "cidl", "I");
784 CIDAFc.aoffset = (*env)->GetFieldID(env, CIDAFc.clazz, "aoffset", "I");
785 CIDAFc.cached = 1;
786 }
787
getCIDAFields(JNIEnv * env,jobject lpObject,CIDA * lpStruct)788 CIDA *getCIDAFields(JNIEnv *env, jobject lpObject, CIDA *lpStruct)
789 {
790 if (!CIDAFc.cached) cacheCIDAFields(env, lpObject);
791 lpStruct->cidl = (*env)->GetIntField(env, lpObject, CIDAFc.cidl);
792 lpStruct->aoffset[0] = (*env)->GetIntField(env, lpObject, CIDAFc.aoffset);
793 return lpStruct;
794 }
795
setCIDAFields(JNIEnv * env,jobject lpObject,CIDA * lpStruct)796 void setCIDAFields(JNIEnv *env, jobject lpObject, CIDA *lpStruct)
797 {
798 if (!CIDAFc.cached) cacheCIDAFields(env, lpObject);
799 (*env)->SetIntField(env, lpObject, CIDAFc.cidl, (jint)lpStruct->cidl);
800 (*env)->SetIntField(env, lpObject, CIDAFc.aoffset, (jint)lpStruct->aoffset[0]);
801 }
802 #endif
803
804 #ifndef NO_COMBOBOXINFO
805 typedef struct COMBOBOXINFO_FID_CACHE {
806 int cached;
807 jclass clazz;
808 jfieldID cbSize, itemLeft, itemTop, itemRight, itemBottom, buttonLeft, buttonTop, buttonRight, buttonBottom, stateButton, hwndCombo, hwndItem, hwndList;
809 } COMBOBOXINFO_FID_CACHE;
810
811 COMBOBOXINFO_FID_CACHE COMBOBOXINFOFc;
812
cacheCOMBOBOXINFOFields(JNIEnv * env,jobject lpObject)813 void cacheCOMBOBOXINFOFields(JNIEnv *env, jobject lpObject)
814 {
815 if (COMBOBOXINFOFc.cached) return;
816 COMBOBOXINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
817 COMBOBOXINFOFc.cbSize = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "cbSize", "I");
818 COMBOBOXINFOFc.itemLeft = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "itemLeft", "I");
819 COMBOBOXINFOFc.itemTop = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "itemTop", "I");
820 COMBOBOXINFOFc.itemRight = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "itemRight", "I");
821 COMBOBOXINFOFc.itemBottom = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "itemBottom", "I");
822 COMBOBOXINFOFc.buttonLeft = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "buttonLeft", "I");
823 COMBOBOXINFOFc.buttonTop = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "buttonTop", "I");
824 COMBOBOXINFOFc.buttonRight = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "buttonRight", "I");
825 COMBOBOXINFOFc.buttonBottom = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "buttonBottom", "I");
826 COMBOBOXINFOFc.stateButton = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "stateButton", "I");
827 COMBOBOXINFOFc.hwndCombo = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "hwndCombo", "J");
828 COMBOBOXINFOFc.hwndItem = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "hwndItem", "J");
829 COMBOBOXINFOFc.hwndList = (*env)->GetFieldID(env, COMBOBOXINFOFc.clazz, "hwndList", "J");
830 COMBOBOXINFOFc.cached = 1;
831 }
832
getCOMBOBOXINFOFields(JNIEnv * env,jobject lpObject,COMBOBOXINFO * lpStruct)833 COMBOBOXINFO *getCOMBOBOXINFOFields(JNIEnv *env, jobject lpObject, COMBOBOXINFO *lpStruct)
834 {
835 if (!COMBOBOXINFOFc.cached) cacheCOMBOBOXINFOFields(env, lpObject);
836 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.cbSize);
837 lpStruct->rcItem.left = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.itemLeft);
838 lpStruct->rcItem.top = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.itemTop);
839 lpStruct->rcItem.right = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.itemRight);
840 lpStruct->rcItem.bottom = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.itemBottom);
841 lpStruct->rcButton.left = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.buttonLeft);
842 lpStruct->rcButton.top = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.buttonTop);
843 lpStruct->rcButton.right = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.buttonRight);
844 lpStruct->rcButton.bottom = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.buttonBottom);
845 lpStruct->stateButton = (*env)->GetIntField(env, lpObject, COMBOBOXINFOFc.stateButton);
846 lpStruct->hwndCombo = (HWND)(*env)->GetLongField(env, lpObject, COMBOBOXINFOFc.hwndCombo);
847 lpStruct->hwndItem = (HWND)(*env)->GetLongField(env, lpObject, COMBOBOXINFOFc.hwndItem);
848 lpStruct->hwndList = (HWND)(*env)->GetLongField(env, lpObject, COMBOBOXINFOFc.hwndList);
849 return lpStruct;
850 }
851
setCOMBOBOXINFOFields(JNIEnv * env,jobject lpObject,COMBOBOXINFO * lpStruct)852 void setCOMBOBOXINFOFields(JNIEnv *env, jobject lpObject, COMBOBOXINFO *lpStruct)
853 {
854 if (!COMBOBOXINFOFc.cached) cacheCOMBOBOXINFOFields(env, lpObject);
855 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.cbSize, (jint)lpStruct->cbSize);
856 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.itemLeft, (jint)lpStruct->rcItem.left);
857 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.itemTop, (jint)lpStruct->rcItem.top);
858 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.itemRight, (jint)lpStruct->rcItem.right);
859 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.itemBottom, (jint)lpStruct->rcItem.bottom);
860 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.buttonLeft, (jint)lpStruct->rcButton.left);
861 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.buttonTop, (jint)lpStruct->rcButton.top);
862 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.buttonRight, (jint)lpStruct->rcButton.right);
863 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.buttonBottom, (jint)lpStruct->rcButton.bottom);
864 (*env)->SetIntField(env, lpObject, COMBOBOXINFOFc.stateButton, (jint)lpStruct->stateButton);
865 (*env)->SetLongField(env, lpObject, COMBOBOXINFOFc.hwndCombo, (jlong)lpStruct->hwndCombo);
866 (*env)->SetLongField(env, lpObject, COMBOBOXINFOFc.hwndItem, (jlong)lpStruct->hwndItem);
867 (*env)->SetLongField(env, lpObject, COMBOBOXINFOFc.hwndList, (jlong)lpStruct->hwndList);
868 }
869 #endif
870
871 #ifndef NO_COMPOSITIONFORM
872 typedef struct COMPOSITIONFORM_FID_CACHE {
873 int cached;
874 jclass clazz;
875 jfieldID dwStyle, x, y, left, top, right, bottom;
876 } COMPOSITIONFORM_FID_CACHE;
877
878 COMPOSITIONFORM_FID_CACHE COMPOSITIONFORMFc;
879
cacheCOMPOSITIONFORMFields(JNIEnv * env,jobject lpObject)880 void cacheCOMPOSITIONFORMFields(JNIEnv *env, jobject lpObject)
881 {
882 if (COMPOSITIONFORMFc.cached) return;
883 COMPOSITIONFORMFc.clazz = (*env)->GetObjectClass(env, lpObject);
884 COMPOSITIONFORMFc.dwStyle = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "dwStyle", "I");
885 COMPOSITIONFORMFc.x = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "x", "I");
886 COMPOSITIONFORMFc.y = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "y", "I");
887 COMPOSITIONFORMFc.left = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "left", "I");
888 COMPOSITIONFORMFc.top = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "top", "I");
889 COMPOSITIONFORMFc.right = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "right", "I");
890 COMPOSITIONFORMFc.bottom = (*env)->GetFieldID(env, COMPOSITIONFORMFc.clazz, "bottom", "I");
891 COMPOSITIONFORMFc.cached = 1;
892 }
893
getCOMPOSITIONFORMFields(JNIEnv * env,jobject lpObject,COMPOSITIONFORM * lpStruct)894 COMPOSITIONFORM *getCOMPOSITIONFORMFields(JNIEnv *env, jobject lpObject, COMPOSITIONFORM *lpStruct)
895 {
896 if (!COMPOSITIONFORMFc.cached) cacheCOMPOSITIONFORMFields(env, lpObject);
897 lpStruct->dwStyle = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.dwStyle);
898 lpStruct->ptCurrentPos.x = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.x);
899 lpStruct->ptCurrentPos.y = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.y);
900 lpStruct->rcArea.left = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.left);
901 lpStruct->rcArea.top = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.top);
902 lpStruct->rcArea.right = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.right);
903 lpStruct->rcArea.bottom = (*env)->GetIntField(env, lpObject, COMPOSITIONFORMFc.bottom);
904 return lpStruct;
905 }
906
setCOMPOSITIONFORMFields(JNIEnv * env,jobject lpObject,COMPOSITIONFORM * lpStruct)907 void setCOMPOSITIONFORMFields(JNIEnv *env, jobject lpObject, COMPOSITIONFORM *lpStruct)
908 {
909 if (!COMPOSITIONFORMFc.cached) cacheCOMPOSITIONFORMFields(env, lpObject);
910 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.dwStyle, (jint)lpStruct->dwStyle);
911 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.x, (jint)lpStruct->ptCurrentPos.x);
912 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.y, (jint)lpStruct->ptCurrentPos.y);
913 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.left, (jint)lpStruct->rcArea.left);
914 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.top, (jint)lpStruct->rcArea.top);
915 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.right, (jint)lpStruct->rcArea.right);
916 (*env)->SetIntField(env, lpObject, COMPOSITIONFORMFc.bottom, (jint)lpStruct->rcArea.bottom);
917 }
918 #endif
919
920 #ifndef NO_CREATESTRUCT
921 typedef struct CREATESTRUCT_FID_CACHE {
922 int cached;
923 jclass clazz;
924 jfieldID lpCreateParams, hInstance, hMenu, hwndParent, cy, cx, y, x, style, lpszName, lpszClass, dwExStyle;
925 } CREATESTRUCT_FID_CACHE;
926
927 CREATESTRUCT_FID_CACHE CREATESTRUCTFc;
928
cacheCREATESTRUCTFields(JNIEnv * env,jobject lpObject)929 void cacheCREATESTRUCTFields(JNIEnv *env, jobject lpObject)
930 {
931 if (CREATESTRUCTFc.cached) return;
932 CREATESTRUCTFc.clazz = (*env)->GetObjectClass(env, lpObject);
933 CREATESTRUCTFc.lpCreateParams = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "lpCreateParams", "J");
934 CREATESTRUCTFc.hInstance = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "hInstance", "J");
935 CREATESTRUCTFc.hMenu = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "hMenu", "J");
936 CREATESTRUCTFc.hwndParent = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "hwndParent", "J");
937 CREATESTRUCTFc.cy = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "cy", "I");
938 CREATESTRUCTFc.cx = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "cx", "I");
939 CREATESTRUCTFc.y = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "y", "I");
940 CREATESTRUCTFc.x = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "x", "I");
941 CREATESTRUCTFc.style = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "style", "I");
942 CREATESTRUCTFc.lpszName = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "lpszName", "J");
943 CREATESTRUCTFc.lpszClass = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "lpszClass", "J");
944 CREATESTRUCTFc.dwExStyle = (*env)->GetFieldID(env, CREATESTRUCTFc.clazz, "dwExStyle", "I");
945 CREATESTRUCTFc.cached = 1;
946 }
947
getCREATESTRUCTFields(JNIEnv * env,jobject lpObject,CREATESTRUCT * lpStruct)948 CREATESTRUCT *getCREATESTRUCTFields(JNIEnv *env, jobject lpObject, CREATESTRUCT *lpStruct)
949 {
950 if (!CREATESTRUCTFc.cached) cacheCREATESTRUCTFields(env, lpObject);
951 lpStruct->lpCreateParams = (LPVOID)(*env)->GetLongField(env, lpObject, CREATESTRUCTFc.lpCreateParams);
952 lpStruct->hInstance = (HINSTANCE)(*env)->GetLongField(env, lpObject, CREATESTRUCTFc.hInstance);
953 lpStruct->hMenu = (HMENU)(*env)->GetLongField(env, lpObject, CREATESTRUCTFc.hMenu);
954 lpStruct->hwndParent = (HWND)(*env)->GetLongField(env, lpObject, CREATESTRUCTFc.hwndParent);
955 lpStruct->cy = (*env)->GetIntField(env, lpObject, CREATESTRUCTFc.cy);
956 lpStruct->cx = (*env)->GetIntField(env, lpObject, CREATESTRUCTFc.cx);
957 lpStruct->y = (*env)->GetIntField(env, lpObject, CREATESTRUCTFc.y);
958 lpStruct->x = (*env)->GetIntField(env, lpObject, CREATESTRUCTFc.x);
959 lpStruct->style = (*env)->GetIntField(env, lpObject, CREATESTRUCTFc.style);
960 lpStruct->lpszName = (LPCTSTR)(*env)->GetLongField(env, lpObject, CREATESTRUCTFc.lpszName);
961 lpStruct->lpszClass = (LPCTSTR)(*env)->GetLongField(env, lpObject, CREATESTRUCTFc.lpszClass);
962 lpStruct->dwExStyle = (*env)->GetIntField(env, lpObject, CREATESTRUCTFc.dwExStyle);
963 return lpStruct;
964 }
965
setCREATESTRUCTFields(JNIEnv * env,jobject lpObject,CREATESTRUCT * lpStruct)966 void setCREATESTRUCTFields(JNIEnv *env, jobject lpObject, CREATESTRUCT *lpStruct)
967 {
968 if (!CREATESTRUCTFc.cached) cacheCREATESTRUCTFields(env, lpObject);
969 (*env)->SetLongField(env, lpObject, CREATESTRUCTFc.lpCreateParams, (jlong)lpStruct->lpCreateParams);
970 (*env)->SetLongField(env, lpObject, CREATESTRUCTFc.hInstance, (jlong)lpStruct->hInstance);
971 (*env)->SetLongField(env, lpObject, CREATESTRUCTFc.hMenu, (jlong)lpStruct->hMenu);
972 (*env)->SetLongField(env, lpObject, CREATESTRUCTFc.hwndParent, (jlong)lpStruct->hwndParent);
973 (*env)->SetIntField(env, lpObject, CREATESTRUCTFc.cy, (jint)lpStruct->cy);
974 (*env)->SetIntField(env, lpObject, CREATESTRUCTFc.cx, (jint)lpStruct->cx);
975 (*env)->SetIntField(env, lpObject, CREATESTRUCTFc.y, (jint)lpStruct->y);
976 (*env)->SetIntField(env, lpObject, CREATESTRUCTFc.x, (jint)lpStruct->x);
977 (*env)->SetIntField(env, lpObject, CREATESTRUCTFc.style, (jint)lpStruct->style);
978 (*env)->SetLongField(env, lpObject, CREATESTRUCTFc.lpszName, (jlong)lpStruct->lpszName);
979 (*env)->SetLongField(env, lpObject, CREATESTRUCTFc.lpszClass, (jlong)lpStruct->lpszClass);
980 (*env)->SetIntField(env, lpObject, CREATESTRUCTFc.dwExStyle, (jint)lpStruct->dwExStyle);
981 }
982 #endif
983
984 #ifndef NO_CRYPT_ALGORITHM_IDENTIFIER
985 typedef struct CRYPT_ALGORITHM_IDENTIFIER_FID_CACHE {
986 int cached;
987 jclass clazz;
988 jfieldID pszObjId, Parameters;
989 } CRYPT_ALGORITHM_IDENTIFIER_FID_CACHE;
990
991 CRYPT_ALGORITHM_IDENTIFIER_FID_CACHE CRYPT_ALGORITHM_IDENTIFIERFc;
992
cacheCRYPT_ALGORITHM_IDENTIFIERFields(JNIEnv * env,jobject lpObject)993 void cacheCRYPT_ALGORITHM_IDENTIFIERFields(JNIEnv *env, jobject lpObject)
994 {
995 if (CRYPT_ALGORITHM_IDENTIFIERFc.cached) return;
996 CRYPT_ALGORITHM_IDENTIFIERFc.clazz = (*env)->GetObjectClass(env, lpObject);
997 CRYPT_ALGORITHM_IDENTIFIERFc.pszObjId = (*env)->GetFieldID(env, CRYPT_ALGORITHM_IDENTIFIERFc.clazz, "pszObjId", "J");
998 CRYPT_ALGORITHM_IDENTIFIERFc.Parameters = (*env)->GetFieldID(env, CRYPT_ALGORITHM_IDENTIFIERFc.clazz, "Parameters", "Lorg/eclipse/swt/internal/win32/CRYPT_OBJID_BLOB;");
999 CRYPT_ALGORITHM_IDENTIFIERFc.cached = 1;
1000 }
1001
getCRYPT_ALGORITHM_IDENTIFIERFields(JNIEnv * env,jobject lpObject,CRYPT_ALGORITHM_IDENTIFIER * lpStruct)1002 CRYPT_ALGORITHM_IDENTIFIER *getCRYPT_ALGORITHM_IDENTIFIERFields(JNIEnv *env, jobject lpObject, CRYPT_ALGORITHM_IDENTIFIER *lpStruct)
1003 {
1004 if (!CRYPT_ALGORITHM_IDENTIFIERFc.cached) cacheCRYPT_ALGORITHM_IDENTIFIERFields(env, lpObject);
1005 lpStruct->pszObjId = (LPSTR)(*env)->GetLongField(env, lpObject, CRYPT_ALGORITHM_IDENTIFIERFc.pszObjId);
1006 {
1007 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CRYPT_ALGORITHM_IDENTIFIERFc.Parameters);
1008 if (lpObject1 != NULL) getCRYPT_OBJID_BLOBFields(env, lpObject1, &lpStruct->Parameters);
1009 }
1010 return lpStruct;
1011 }
1012
setCRYPT_ALGORITHM_IDENTIFIERFields(JNIEnv * env,jobject lpObject,CRYPT_ALGORITHM_IDENTIFIER * lpStruct)1013 void setCRYPT_ALGORITHM_IDENTIFIERFields(JNIEnv *env, jobject lpObject, CRYPT_ALGORITHM_IDENTIFIER *lpStruct)
1014 {
1015 if (!CRYPT_ALGORITHM_IDENTIFIERFc.cached) cacheCRYPT_ALGORITHM_IDENTIFIERFields(env, lpObject);
1016 (*env)->SetLongField(env, lpObject, CRYPT_ALGORITHM_IDENTIFIERFc.pszObjId, (jlong)lpStruct->pszObjId);
1017 {
1018 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, CRYPT_ALGORITHM_IDENTIFIERFc.Parameters);
1019 if (lpObject1 != NULL) setCRYPT_OBJID_BLOBFields(env, lpObject1, &lpStruct->Parameters);
1020 }
1021 }
1022 #endif
1023
1024 #ifndef NO_CRYPT_BIT_BLOB
1025 typedef struct CRYPT_BIT_BLOB_FID_CACHE {
1026 int cached;
1027 jclass clazz;
1028 jfieldID cbData, pbData, cUnusedBits;
1029 } CRYPT_BIT_BLOB_FID_CACHE;
1030
1031 CRYPT_BIT_BLOB_FID_CACHE CRYPT_BIT_BLOBFc;
1032
cacheCRYPT_BIT_BLOBFields(JNIEnv * env,jobject lpObject)1033 void cacheCRYPT_BIT_BLOBFields(JNIEnv *env, jobject lpObject)
1034 {
1035 if (CRYPT_BIT_BLOBFc.cached) return;
1036 CRYPT_BIT_BLOBFc.clazz = (*env)->GetObjectClass(env, lpObject);
1037 CRYPT_BIT_BLOBFc.cbData = (*env)->GetFieldID(env, CRYPT_BIT_BLOBFc.clazz, "cbData", "I");
1038 CRYPT_BIT_BLOBFc.pbData = (*env)->GetFieldID(env, CRYPT_BIT_BLOBFc.clazz, "pbData", "J");
1039 CRYPT_BIT_BLOBFc.cUnusedBits = (*env)->GetFieldID(env, CRYPT_BIT_BLOBFc.clazz, "cUnusedBits", "I");
1040 CRYPT_BIT_BLOBFc.cached = 1;
1041 }
1042
getCRYPT_BIT_BLOBFields(JNIEnv * env,jobject lpObject,CRYPT_BIT_BLOB * lpStruct)1043 CRYPT_BIT_BLOB *getCRYPT_BIT_BLOBFields(JNIEnv *env, jobject lpObject, CRYPT_BIT_BLOB *lpStruct)
1044 {
1045 if (!CRYPT_BIT_BLOBFc.cached) cacheCRYPT_BIT_BLOBFields(env, lpObject);
1046 lpStruct->cbData = (*env)->GetIntField(env, lpObject, CRYPT_BIT_BLOBFc.cbData);
1047 lpStruct->pbData = (BYTE *)(*env)->GetLongField(env, lpObject, CRYPT_BIT_BLOBFc.pbData);
1048 lpStruct->cUnusedBits = (*env)->GetIntField(env, lpObject, CRYPT_BIT_BLOBFc.cUnusedBits);
1049 return lpStruct;
1050 }
1051
setCRYPT_BIT_BLOBFields(JNIEnv * env,jobject lpObject,CRYPT_BIT_BLOB * lpStruct)1052 void setCRYPT_BIT_BLOBFields(JNIEnv *env, jobject lpObject, CRYPT_BIT_BLOB *lpStruct)
1053 {
1054 if (!CRYPT_BIT_BLOBFc.cached) cacheCRYPT_BIT_BLOBFields(env, lpObject);
1055 (*env)->SetIntField(env, lpObject, CRYPT_BIT_BLOBFc.cbData, (jint)lpStruct->cbData);
1056 (*env)->SetLongField(env, lpObject, CRYPT_BIT_BLOBFc.pbData, (jlong)lpStruct->pbData);
1057 (*env)->SetIntField(env, lpObject, CRYPT_BIT_BLOBFc.cUnusedBits, (jint)lpStruct->cUnusedBits);
1058 }
1059 #endif
1060
1061 #ifndef NO_CRYPT_INTEGER_BLOB
1062 typedef struct CRYPT_INTEGER_BLOB_FID_CACHE {
1063 int cached;
1064 jclass clazz;
1065 jfieldID cbData, pbData;
1066 } CRYPT_INTEGER_BLOB_FID_CACHE;
1067
1068 CRYPT_INTEGER_BLOB_FID_CACHE CRYPT_INTEGER_BLOBFc;
1069
cacheCRYPT_INTEGER_BLOBFields(JNIEnv * env,jobject lpObject)1070 void cacheCRYPT_INTEGER_BLOBFields(JNIEnv *env, jobject lpObject)
1071 {
1072 if (CRYPT_INTEGER_BLOBFc.cached) return;
1073 CRYPT_INTEGER_BLOBFc.clazz = (*env)->GetObjectClass(env, lpObject);
1074 CRYPT_INTEGER_BLOBFc.cbData = (*env)->GetFieldID(env, CRYPT_INTEGER_BLOBFc.clazz, "cbData", "I");
1075 CRYPT_INTEGER_BLOBFc.pbData = (*env)->GetFieldID(env, CRYPT_INTEGER_BLOBFc.clazz, "pbData", "J");
1076 CRYPT_INTEGER_BLOBFc.cached = 1;
1077 }
1078
getCRYPT_INTEGER_BLOBFields(JNIEnv * env,jobject lpObject,CRYPT_INTEGER_BLOB * lpStruct)1079 CRYPT_INTEGER_BLOB *getCRYPT_INTEGER_BLOBFields(JNIEnv *env, jobject lpObject, CRYPT_INTEGER_BLOB *lpStruct)
1080 {
1081 if (!CRYPT_INTEGER_BLOBFc.cached) cacheCRYPT_INTEGER_BLOBFields(env, lpObject);
1082 lpStruct->cbData = (*env)->GetIntField(env, lpObject, CRYPT_INTEGER_BLOBFc.cbData);
1083 lpStruct->pbData = (BYTE *)(*env)->GetLongField(env, lpObject, CRYPT_INTEGER_BLOBFc.pbData);
1084 return lpStruct;
1085 }
1086
setCRYPT_INTEGER_BLOBFields(JNIEnv * env,jobject lpObject,CRYPT_INTEGER_BLOB * lpStruct)1087 void setCRYPT_INTEGER_BLOBFields(JNIEnv *env, jobject lpObject, CRYPT_INTEGER_BLOB *lpStruct)
1088 {
1089 if (!CRYPT_INTEGER_BLOBFc.cached) cacheCRYPT_INTEGER_BLOBFields(env, lpObject);
1090 (*env)->SetIntField(env, lpObject, CRYPT_INTEGER_BLOBFc.cbData, (jint)lpStruct->cbData);
1091 (*env)->SetLongField(env, lpObject, CRYPT_INTEGER_BLOBFc.pbData, (jlong)lpStruct->pbData);
1092 }
1093 #endif
1094
1095 #ifndef NO_CRYPT_OBJID_BLOB
1096 typedef struct CRYPT_OBJID_BLOB_FID_CACHE {
1097 int cached;
1098 jclass clazz;
1099 jfieldID cbData, pbData;
1100 } CRYPT_OBJID_BLOB_FID_CACHE;
1101
1102 CRYPT_OBJID_BLOB_FID_CACHE CRYPT_OBJID_BLOBFc;
1103
cacheCRYPT_OBJID_BLOBFields(JNIEnv * env,jobject lpObject)1104 void cacheCRYPT_OBJID_BLOBFields(JNIEnv *env, jobject lpObject)
1105 {
1106 if (CRYPT_OBJID_BLOBFc.cached) return;
1107 CRYPT_OBJID_BLOBFc.clazz = (*env)->GetObjectClass(env, lpObject);
1108 CRYPT_OBJID_BLOBFc.cbData = (*env)->GetFieldID(env, CRYPT_OBJID_BLOBFc.clazz, "cbData", "I");
1109 CRYPT_OBJID_BLOBFc.pbData = (*env)->GetFieldID(env, CRYPT_OBJID_BLOBFc.clazz, "pbData", "J");
1110 CRYPT_OBJID_BLOBFc.cached = 1;
1111 }
1112
getCRYPT_OBJID_BLOBFields(JNIEnv * env,jobject lpObject,CRYPT_OBJID_BLOB * lpStruct)1113 CRYPT_OBJID_BLOB *getCRYPT_OBJID_BLOBFields(JNIEnv *env, jobject lpObject, CRYPT_OBJID_BLOB *lpStruct)
1114 {
1115 if (!CRYPT_OBJID_BLOBFc.cached) cacheCRYPT_OBJID_BLOBFields(env, lpObject);
1116 lpStruct->cbData = (*env)->GetIntField(env, lpObject, CRYPT_OBJID_BLOBFc.cbData);
1117 lpStruct->pbData = (BYTE *)(*env)->GetLongField(env, lpObject, CRYPT_OBJID_BLOBFc.pbData);
1118 return lpStruct;
1119 }
1120
setCRYPT_OBJID_BLOBFields(JNIEnv * env,jobject lpObject,CRYPT_OBJID_BLOB * lpStruct)1121 void setCRYPT_OBJID_BLOBFields(JNIEnv *env, jobject lpObject, CRYPT_OBJID_BLOB *lpStruct)
1122 {
1123 if (!CRYPT_OBJID_BLOBFc.cached) cacheCRYPT_OBJID_BLOBFields(env, lpObject);
1124 (*env)->SetIntField(env, lpObject, CRYPT_OBJID_BLOBFc.cbData, (jint)lpStruct->cbData);
1125 (*env)->SetLongField(env, lpObject, CRYPT_OBJID_BLOBFc.pbData, (jlong)lpStruct->pbData);
1126 }
1127 #endif
1128
1129 #ifndef NO_DEVMODE
1130 typedef struct DEVMODE_FID_CACHE {
1131 int cached;
1132 jclass clazz;
1133 jfieldID dmDeviceName, dmSpecVersion, dmDriverVersion, dmSize, dmDriverExtra, dmFields, dmOrientation, dmPaperSize, dmPaperLength, dmPaperWidth, dmScale, dmCopies, dmDefaultSource, dmPrintQuality, dmColor, dmDuplex, dmYResolution, dmTTOption, dmCollate, dmFormName, dmLogPixels, dmBitsPerPel, dmPelsWidth, dmPelsHeight, dmNup, dmDisplayFrequency, dmICMMethod, dmICMIntent, dmMediaType, dmDitherType, dmReserved1, dmReserved2, dmPanningWidth, dmPanningHeight;
1134 } DEVMODE_FID_CACHE;
1135
1136 DEVMODE_FID_CACHE DEVMODEFc;
1137
cacheDEVMODEFields(JNIEnv * env,jobject lpObject)1138 void cacheDEVMODEFields(JNIEnv *env, jobject lpObject)
1139 {
1140 if (DEVMODEFc.cached) return;
1141 DEVMODEFc.clazz = (*env)->GetObjectClass(env, lpObject);
1142 DEVMODEFc.dmDeviceName = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDeviceName", "[C");
1143 DEVMODEFc.dmSpecVersion = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmSpecVersion", "S");
1144 DEVMODEFc.dmDriverVersion = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDriverVersion", "S");
1145 DEVMODEFc.dmSize = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmSize", "S");
1146 DEVMODEFc.dmDriverExtra = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDriverExtra", "S");
1147 DEVMODEFc.dmFields = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmFields", "I");
1148 DEVMODEFc.dmOrientation = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmOrientation", "S");
1149 DEVMODEFc.dmPaperSize = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPaperSize", "S");
1150 DEVMODEFc.dmPaperLength = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPaperLength", "S");
1151 DEVMODEFc.dmPaperWidth = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPaperWidth", "S");
1152 DEVMODEFc.dmScale = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmScale", "S");
1153 DEVMODEFc.dmCopies = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmCopies", "S");
1154 DEVMODEFc.dmDefaultSource = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDefaultSource", "S");
1155 DEVMODEFc.dmPrintQuality = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPrintQuality", "S");
1156 DEVMODEFc.dmColor = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmColor", "S");
1157 DEVMODEFc.dmDuplex = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDuplex", "S");
1158 DEVMODEFc.dmYResolution = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmYResolution", "S");
1159 DEVMODEFc.dmTTOption = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmTTOption", "S");
1160 DEVMODEFc.dmCollate = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmCollate", "S");
1161 DEVMODEFc.dmFormName = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmFormName", "[C");
1162 DEVMODEFc.dmLogPixels = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmLogPixels", "S");
1163 DEVMODEFc.dmBitsPerPel = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmBitsPerPel", "I");
1164 DEVMODEFc.dmPelsWidth = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPelsWidth", "I");
1165 DEVMODEFc.dmPelsHeight = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPelsHeight", "I");
1166 DEVMODEFc.dmNup = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmNup", "I");
1167 DEVMODEFc.dmDisplayFrequency = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDisplayFrequency", "I");
1168 DEVMODEFc.dmICMMethod = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmICMMethod", "I");
1169 DEVMODEFc.dmICMIntent = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmICMIntent", "I");
1170 DEVMODEFc.dmMediaType = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmMediaType", "I");
1171 DEVMODEFc.dmDitherType = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmDitherType", "I");
1172 DEVMODEFc.dmReserved1 = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmReserved1", "I");
1173 DEVMODEFc.dmReserved2 = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmReserved2", "I");
1174 DEVMODEFc.dmPanningWidth = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPanningWidth", "I");
1175 DEVMODEFc.dmPanningHeight = (*env)->GetFieldID(env, DEVMODEFc.clazz, "dmPanningHeight", "I");
1176 DEVMODEFc.cached = 1;
1177 }
1178
getDEVMODEFields(JNIEnv * env,jobject lpObject,DEVMODE * lpStruct)1179 DEVMODE *getDEVMODEFields(JNIEnv *env, jobject lpObject, DEVMODE *lpStruct)
1180 {
1181 if (!DEVMODEFc.cached) cacheDEVMODEFields(env, lpObject);
1182 {
1183 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, DEVMODEFc.dmDeviceName);
1184 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->dmDeviceName) / sizeof(jchar), (jchar *)lpStruct->dmDeviceName);
1185 }
1186 lpStruct->dmSpecVersion = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmSpecVersion);
1187 lpStruct->dmDriverVersion = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmDriverVersion);
1188 lpStruct->dmSize = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmSize);
1189 lpStruct->dmDriverExtra = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmDriverExtra);
1190 lpStruct->dmFields = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmFields);
1191 lpStruct->dmOrientation = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmOrientation);
1192 lpStruct->dmPaperSize = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmPaperSize);
1193 lpStruct->dmPaperLength = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmPaperLength);
1194 lpStruct->dmPaperWidth = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmPaperWidth);
1195 lpStruct->dmScale = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmScale);
1196 lpStruct->dmCopies = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmCopies);
1197 lpStruct->dmDefaultSource = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmDefaultSource);
1198 lpStruct->dmPrintQuality = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmPrintQuality);
1199 lpStruct->dmColor = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmColor);
1200 lpStruct->dmDuplex = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmDuplex);
1201 lpStruct->dmYResolution = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmYResolution);
1202 lpStruct->dmTTOption = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmTTOption);
1203 lpStruct->dmCollate = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmCollate);
1204 {
1205 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, DEVMODEFc.dmFormName);
1206 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->dmFormName) / sizeof(jchar), (jchar *)lpStruct->dmFormName);
1207 }
1208 lpStruct->dmLogPixels = (*env)->GetShortField(env, lpObject, DEVMODEFc.dmLogPixels);
1209 lpStruct->dmBitsPerPel = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmBitsPerPel);
1210 lpStruct->dmPelsWidth = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmPelsWidth);
1211 lpStruct->dmPelsHeight = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmPelsHeight);
1212 lpStruct->dmNup = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmNup);
1213 lpStruct->dmDisplayFrequency = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmDisplayFrequency);
1214 lpStruct->dmICMMethod = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmICMMethod);
1215 lpStruct->dmICMIntent = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmICMIntent);
1216 lpStruct->dmMediaType = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmMediaType);
1217 lpStruct->dmDitherType = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmDitherType);
1218 lpStruct->dmReserved1 = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmReserved1);
1219 lpStruct->dmReserved2 = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmReserved2);
1220 lpStruct->dmPanningWidth = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmPanningWidth);
1221 lpStruct->dmPanningHeight = (*env)->GetIntField(env, lpObject, DEVMODEFc.dmPanningHeight);
1222 return lpStruct;
1223 }
1224
setDEVMODEFields(JNIEnv * env,jobject lpObject,DEVMODE * lpStruct)1225 void setDEVMODEFields(JNIEnv *env, jobject lpObject, DEVMODE *lpStruct)
1226 {
1227 if (!DEVMODEFc.cached) cacheDEVMODEFields(env, lpObject);
1228 {
1229 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, DEVMODEFc.dmDeviceName);
1230 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->dmDeviceName) / sizeof(jchar), (jchar *)lpStruct->dmDeviceName);
1231 }
1232 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmSpecVersion, (jshort)lpStruct->dmSpecVersion);
1233 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmDriverVersion, (jshort)lpStruct->dmDriverVersion);
1234 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmSize, (jshort)lpStruct->dmSize);
1235 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmDriverExtra, (jshort)lpStruct->dmDriverExtra);
1236 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmFields, (jint)lpStruct->dmFields);
1237 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmOrientation, (jshort)lpStruct->dmOrientation);
1238 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmPaperSize, (jshort)lpStruct->dmPaperSize);
1239 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmPaperLength, (jshort)lpStruct->dmPaperLength);
1240 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmPaperWidth, (jshort)lpStruct->dmPaperWidth);
1241 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmScale, (jshort)lpStruct->dmScale);
1242 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmCopies, (jshort)lpStruct->dmCopies);
1243 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmDefaultSource, (jshort)lpStruct->dmDefaultSource);
1244 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmPrintQuality, (jshort)lpStruct->dmPrintQuality);
1245 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmColor, (jshort)lpStruct->dmColor);
1246 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmDuplex, (jshort)lpStruct->dmDuplex);
1247 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmYResolution, (jshort)lpStruct->dmYResolution);
1248 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmTTOption, (jshort)lpStruct->dmTTOption);
1249 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmCollate, (jshort)lpStruct->dmCollate);
1250 {
1251 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, DEVMODEFc.dmFormName);
1252 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->dmFormName) / sizeof(jchar), (jchar *)lpStruct->dmFormName);
1253 }
1254 (*env)->SetShortField(env, lpObject, DEVMODEFc.dmLogPixels, (jshort)lpStruct->dmLogPixels);
1255 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmBitsPerPel, (jint)lpStruct->dmBitsPerPel);
1256 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmPelsWidth, (jint)lpStruct->dmPelsWidth);
1257 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmPelsHeight, (jint)lpStruct->dmPelsHeight);
1258 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmNup, (jint)lpStruct->dmNup);
1259 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmDisplayFrequency, (jint)lpStruct->dmDisplayFrequency);
1260 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmICMMethod, (jint)lpStruct->dmICMMethod);
1261 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmICMIntent, (jint)lpStruct->dmICMIntent);
1262 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmMediaType, (jint)lpStruct->dmMediaType);
1263 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmDitherType, (jint)lpStruct->dmDitherType);
1264 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmReserved1, (jint)lpStruct->dmReserved1);
1265 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmReserved2, (jint)lpStruct->dmReserved2);
1266 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmPanningWidth, (jint)lpStruct->dmPanningWidth);
1267 (*env)->SetIntField(env, lpObject, DEVMODEFc.dmPanningHeight, (jint)lpStruct->dmPanningHeight);
1268 }
1269 #endif
1270
1271 #ifndef NO_DIBSECTION
1272 typedef struct DIBSECTION_FID_CACHE {
1273 int cached;
1274 jclass clazz;
1275 jfieldID biSize, biWidth, biHeight, biPlanes, biBitCount, biCompression, biSizeImage, biXPelsPerMeter, biYPelsPerMeter, biClrUsed, biClrImportant, dsBitfields0, dsBitfields1, dsBitfields2, dshSection, dsOffset;
1276 } DIBSECTION_FID_CACHE;
1277
1278 DIBSECTION_FID_CACHE DIBSECTIONFc;
1279
cacheDIBSECTIONFields(JNIEnv * env,jobject lpObject)1280 void cacheDIBSECTIONFields(JNIEnv *env, jobject lpObject)
1281 {
1282 if (DIBSECTIONFc.cached) return;
1283 cacheBITMAPFields(env, lpObject);
1284 DIBSECTIONFc.clazz = (*env)->GetObjectClass(env, lpObject);
1285 DIBSECTIONFc.biSize = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biSize", "I");
1286 DIBSECTIONFc.biWidth = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biWidth", "I");
1287 DIBSECTIONFc.biHeight = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biHeight", "I");
1288 DIBSECTIONFc.biPlanes = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biPlanes", "S");
1289 DIBSECTIONFc.biBitCount = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biBitCount", "S");
1290 DIBSECTIONFc.biCompression = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biCompression", "I");
1291 DIBSECTIONFc.biSizeImage = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biSizeImage", "I");
1292 DIBSECTIONFc.biXPelsPerMeter = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biXPelsPerMeter", "I");
1293 DIBSECTIONFc.biYPelsPerMeter = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biYPelsPerMeter", "I");
1294 DIBSECTIONFc.biClrUsed = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biClrUsed", "I");
1295 DIBSECTIONFc.biClrImportant = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "biClrImportant", "I");
1296 DIBSECTIONFc.dsBitfields0 = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "dsBitfields0", "I");
1297 DIBSECTIONFc.dsBitfields1 = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "dsBitfields1", "I");
1298 DIBSECTIONFc.dsBitfields2 = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "dsBitfields2", "I");
1299 DIBSECTIONFc.dshSection = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "dshSection", "J");
1300 DIBSECTIONFc.dsOffset = (*env)->GetFieldID(env, DIBSECTIONFc.clazz, "dsOffset", "I");
1301 DIBSECTIONFc.cached = 1;
1302 }
1303
getDIBSECTIONFields(JNIEnv * env,jobject lpObject,DIBSECTION * lpStruct)1304 DIBSECTION *getDIBSECTIONFields(JNIEnv *env, jobject lpObject, DIBSECTION *lpStruct)
1305 {
1306 if (!DIBSECTIONFc.cached) cacheDIBSECTIONFields(env, lpObject);
1307 getBITMAPFields(env, lpObject, (BITMAP *)lpStruct);
1308 lpStruct->dsBmih.biSize = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biSize);
1309 lpStruct->dsBmih.biWidth = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biWidth);
1310 lpStruct->dsBmih.biHeight = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biHeight);
1311 lpStruct->dsBmih.biPlanes = (*env)->GetShortField(env, lpObject, DIBSECTIONFc.biPlanes);
1312 lpStruct->dsBmih.biBitCount = (*env)->GetShortField(env, lpObject, DIBSECTIONFc.biBitCount);
1313 lpStruct->dsBmih.biCompression = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biCompression);
1314 lpStruct->dsBmih.biSizeImage = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biSizeImage);
1315 lpStruct->dsBmih.biXPelsPerMeter = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biXPelsPerMeter);
1316 lpStruct->dsBmih.biYPelsPerMeter = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biYPelsPerMeter);
1317 lpStruct->dsBmih.biClrUsed = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biClrUsed);
1318 lpStruct->dsBmih.biClrImportant = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.biClrImportant);
1319 lpStruct->dsBitfields[0] = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.dsBitfields0);
1320 lpStruct->dsBitfields[1] = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.dsBitfields1);
1321 lpStruct->dsBitfields[2] = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.dsBitfields2);
1322 lpStruct->dshSection = (HANDLE)(*env)->GetLongField(env, lpObject, DIBSECTIONFc.dshSection);
1323 lpStruct->dsOffset = (*env)->GetIntField(env, lpObject, DIBSECTIONFc.dsOffset);
1324 return lpStruct;
1325 }
1326
setDIBSECTIONFields(JNIEnv * env,jobject lpObject,DIBSECTION * lpStruct)1327 void setDIBSECTIONFields(JNIEnv *env, jobject lpObject, DIBSECTION *lpStruct)
1328 {
1329 if (!DIBSECTIONFc.cached) cacheDIBSECTIONFields(env, lpObject);
1330 setBITMAPFields(env, lpObject, (BITMAP *)lpStruct);
1331 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biSize, (jint)lpStruct->dsBmih.biSize);
1332 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biWidth, (jint)lpStruct->dsBmih.biWidth);
1333 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biHeight, (jint)lpStruct->dsBmih.biHeight);
1334 (*env)->SetShortField(env, lpObject, DIBSECTIONFc.biPlanes, (jshort)lpStruct->dsBmih.biPlanes);
1335 (*env)->SetShortField(env, lpObject, DIBSECTIONFc.biBitCount, (jshort)lpStruct->dsBmih.biBitCount);
1336 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biCompression, (jint)lpStruct->dsBmih.biCompression);
1337 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biSizeImage, (jint)lpStruct->dsBmih.biSizeImage);
1338 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biXPelsPerMeter, (jint)lpStruct->dsBmih.biXPelsPerMeter);
1339 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biYPelsPerMeter, (jint)lpStruct->dsBmih.biYPelsPerMeter);
1340 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biClrUsed, (jint)lpStruct->dsBmih.biClrUsed);
1341 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.biClrImportant, (jint)lpStruct->dsBmih.biClrImportant);
1342 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.dsBitfields0, (jint)lpStruct->dsBitfields[0]);
1343 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.dsBitfields1, (jint)lpStruct->dsBitfields[1]);
1344 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.dsBitfields2, (jint)lpStruct->dsBitfields[2]);
1345 (*env)->SetLongField(env, lpObject, DIBSECTIONFc.dshSection, (jlong)lpStruct->dshSection);
1346 (*env)->SetIntField(env, lpObject, DIBSECTIONFc.dsOffset, (jint)lpStruct->dsOffset);
1347 }
1348 #endif
1349
1350 #ifndef NO_DOCHOSTUIINFO
1351 typedef struct DOCHOSTUIINFO_FID_CACHE {
1352 int cached;
1353 jclass clazz;
1354 jfieldID cbSize, dwFlags, dwDoubleClick, pchHostCss, pchHostNS;
1355 } DOCHOSTUIINFO_FID_CACHE;
1356
1357 DOCHOSTUIINFO_FID_CACHE DOCHOSTUIINFOFc;
1358
cacheDOCHOSTUIINFOFields(JNIEnv * env,jobject lpObject)1359 void cacheDOCHOSTUIINFOFields(JNIEnv *env, jobject lpObject)
1360 {
1361 if (DOCHOSTUIINFOFc.cached) return;
1362 DOCHOSTUIINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
1363 DOCHOSTUIINFOFc.cbSize = (*env)->GetFieldID(env, DOCHOSTUIINFOFc.clazz, "cbSize", "I");
1364 DOCHOSTUIINFOFc.dwFlags = (*env)->GetFieldID(env, DOCHOSTUIINFOFc.clazz, "dwFlags", "I");
1365 DOCHOSTUIINFOFc.dwDoubleClick = (*env)->GetFieldID(env, DOCHOSTUIINFOFc.clazz, "dwDoubleClick", "I");
1366 DOCHOSTUIINFOFc.pchHostCss = (*env)->GetFieldID(env, DOCHOSTUIINFOFc.clazz, "pchHostCss", "J");
1367 DOCHOSTUIINFOFc.pchHostNS = (*env)->GetFieldID(env, DOCHOSTUIINFOFc.clazz, "pchHostNS", "J");
1368 DOCHOSTUIINFOFc.cached = 1;
1369 }
1370
getDOCHOSTUIINFOFields(JNIEnv * env,jobject lpObject,DOCHOSTUIINFO * lpStruct)1371 DOCHOSTUIINFO *getDOCHOSTUIINFOFields(JNIEnv *env, jobject lpObject, DOCHOSTUIINFO *lpStruct)
1372 {
1373 if (!DOCHOSTUIINFOFc.cached) cacheDOCHOSTUIINFOFields(env, lpObject);
1374 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, DOCHOSTUIINFOFc.cbSize);
1375 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, DOCHOSTUIINFOFc.dwFlags);
1376 lpStruct->dwDoubleClick = (*env)->GetIntField(env, lpObject, DOCHOSTUIINFOFc.dwDoubleClick);
1377 lpStruct->pchHostCss = (OLECHAR *)(*env)->GetLongField(env, lpObject, DOCHOSTUIINFOFc.pchHostCss);
1378 lpStruct->pchHostNS = (OLECHAR *)(*env)->GetLongField(env, lpObject, DOCHOSTUIINFOFc.pchHostNS);
1379 return lpStruct;
1380 }
1381
setDOCHOSTUIINFOFields(JNIEnv * env,jobject lpObject,DOCHOSTUIINFO * lpStruct)1382 void setDOCHOSTUIINFOFields(JNIEnv *env, jobject lpObject, DOCHOSTUIINFO *lpStruct)
1383 {
1384 if (!DOCHOSTUIINFOFc.cached) cacheDOCHOSTUIINFOFields(env, lpObject);
1385 (*env)->SetIntField(env, lpObject, DOCHOSTUIINFOFc.cbSize, (jint)lpStruct->cbSize);
1386 (*env)->SetIntField(env, lpObject, DOCHOSTUIINFOFc.dwFlags, (jint)lpStruct->dwFlags);
1387 (*env)->SetIntField(env, lpObject, DOCHOSTUIINFOFc.dwDoubleClick, (jint)lpStruct->dwDoubleClick);
1388 (*env)->SetLongField(env, lpObject, DOCHOSTUIINFOFc.pchHostCss, (jlong)lpStruct->pchHostCss);
1389 (*env)->SetLongField(env, lpObject, DOCHOSTUIINFOFc.pchHostNS, (jlong)lpStruct->pchHostNS);
1390 }
1391 #endif
1392
1393 #ifndef NO_DOCINFO
1394 typedef struct DOCINFO_FID_CACHE {
1395 int cached;
1396 jclass clazz;
1397 jfieldID cbSize, lpszDocName, lpszOutput, lpszDatatype, fwType;
1398 } DOCINFO_FID_CACHE;
1399
1400 DOCINFO_FID_CACHE DOCINFOFc;
1401
cacheDOCINFOFields(JNIEnv * env,jobject lpObject)1402 void cacheDOCINFOFields(JNIEnv *env, jobject lpObject)
1403 {
1404 if (DOCINFOFc.cached) return;
1405 DOCINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
1406 DOCINFOFc.cbSize = (*env)->GetFieldID(env, DOCINFOFc.clazz, "cbSize", "I");
1407 DOCINFOFc.lpszDocName = (*env)->GetFieldID(env, DOCINFOFc.clazz, "lpszDocName", "J");
1408 DOCINFOFc.lpszOutput = (*env)->GetFieldID(env, DOCINFOFc.clazz, "lpszOutput", "J");
1409 DOCINFOFc.lpszDatatype = (*env)->GetFieldID(env, DOCINFOFc.clazz, "lpszDatatype", "J");
1410 DOCINFOFc.fwType = (*env)->GetFieldID(env, DOCINFOFc.clazz, "fwType", "I");
1411 DOCINFOFc.cached = 1;
1412 }
1413
getDOCINFOFields(JNIEnv * env,jobject lpObject,DOCINFO * lpStruct)1414 DOCINFO *getDOCINFOFields(JNIEnv *env, jobject lpObject, DOCINFO *lpStruct)
1415 {
1416 if (!DOCINFOFc.cached) cacheDOCINFOFields(env, lpObject);
1417 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, DOCINFOFc.cbSize);
1418 lpStruct->lpszDocName = (LPCTSTR)(*env)->GetLongField(env, lpObject, DOCINFOFc.lpszDocName);
1419 lpStruct->lpszOutput = (LPCTSTR)(*env)->GetLongField(env, lpObject, DOCINFOFc.lpszOutput);
1420 lpStruct->lpszDatatype = (LPCTSTR)(*env)->GetLongField(env, lpObject, DOCINFOFc.lpszDatatype);
1421 lpStruct->fwType = (*env)->GetIntField(env, lpObject, DOCINFOFc.fwType);
1422 return lpStruct;
1423 }
1424
setDOCINFOFields(JNIEnv * env,jobject lpObject,DOCINFO * lpStruct)1425 void setDOCINFOFields(JNIEnv *env, jobject lpObject, DOCINFO *lpStruct)
1426 {
1427 if (!DOCINFOFc.cached) cacheDOCINFOFields(env, lpObject);
1428 (*env)->SetIntField(env, lpObject, DOCINFOFc.cbSize, (jint)lpStruct->cbSize);
1429 (*env)->SetLongField(env, lpObject, DOCINFOFc.lpszDocName, (jlong)lpStruct->lpszDocName);
1430 (*env)->SetLongField(env, lpObject, DOCINFOFc.lpszOutput, (jlong)lpStruct->lpszOutput);
1431 (*env)->SetLongField(env, lpObject, DOCINFOFc.lpszDatatype, (jlong)lpStruct->lpszDatatype);
1432 (*env)->SetIntField(env, lpObject, DOCINFOFc.fwType, (jint)lpStruct->fwType);
1433 }
1434 #endif
1435
1436 #ifndef NO_DRAWITEMSTRUCT
1437 typedef struct DRAWITEMSTRUCT_FID_CACHE {
1438 int cached;
1439 jclass clazz;
1440 jfieldID CtlType, CtlID, itemID, itemAction, itemState, hwndItem, hDC, left, top, bottom, right, itemData;
1441 } DRAWITEMSTRUCT_FID_CACHE;
1442
1443 DRAWITEMSTRUCT_FID_CACHE DRAWITEMSTRUCTFc;
1444
cacheDRAWITEMSTRUCTFields(JNIEnv * env,jobject lpObject)1445 void cacheDRAWITEMSTRUCTFields(JNIEnv *env, jobject lpObject)
1446 {
1447 if (DRAWITEMSTRUCTFc.cached) return;
1448 DRAWITEMSTRUCTFc.clazz = (*env)->GetObjectClass(env, lpObject);
1449 DRAWITEMSTRUCTFc.CtlType = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "CtlType", "I");
1450 DRAWITEMSTRUCTFc.CtlID = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "CtlID", "I");
1451 DRAWITEMSTRUCTFc.itemID = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "itemID", "I");
1452 DRAWITEMSTRUCTFc.itemAction = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "itemAction", "I");
1453 DRAWITEMSTRUCTFc.itemState = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "itemState", "I");
1454 DRAWITEMSTRUCTFc.hwndItem = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "hwndItem", "J");
1455 DRAWITEMSTRUCTFc.hDC = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "hDC", "J");
1456 DRAWITEMSTRUCTFc.left = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "left", "I");
1457 DRAWITEMSTRUCTFc.top = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "top", "I");
1458 DRAWITEMSTRUCTFc.bottom = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "bottom", "I");
1459 DRAWITEMSTRUCTFc.right = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "right", "I");
1460 DRAWITEMSTRUCTFc.itemData = (*env)->GetFieldID(env, DRAWITEMSTRUCTFc.clazz, "itemData", "J");
1461 DRAWITEMSTRUCTFc.cached = 1;
1462 }
1463
getDRAWITEMSTRUCTFields(JNIEnv * env,jobject lpObject,DRAWITEMSTRUCT * lpStruct)1464 DRAWITEMSTRUCT *getDRAWITEMSTRUCTFields(JNIEnv *env, jobject lpObject, DRAWITEMSTRUCT *lpStruct)
1465 {
1466 if (!DRAWITEMSTRUCTFc.cached) cacheDRAWITEMSTRUCTFields(env, lpObject);
1467 lpStruct->CtlType = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.CtlType);
1468 lpStruct->CtlID = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.CtlID);
1469 lpStruct->itemID = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.itemID);
1470 lpStruct->itemAction = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.itemAction);
1471 lpStruct->itemState = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.itemState);
1472 lpStruct->hwndItem = (HWND)(*env)->GetLongField(env, lpObject, DRAWITEMSTRUCTFc.hwndItem);
1473 lpStruct->hDC = (HDC)(*env)->GetLongField(env, lpObject, DRAWITEMSTRUCTFc.hDC);
1474 lpStruct->rcItem.left = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.left);
1475 lpStruct->rcItem.top = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.top);
1476 lpStruct->rcItem.bottom = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.bottom);
1477 lpStruct->rcItem.right = (*env)->GetIntField(env, lpObject, DRAWITEMSTRUCTFc.right);
1478 lpStruct->itemData = (*env)->GetLongField(env, lpObject, DRAWITEMSTRUCTFc.itemData);
1479 return lpStruct;
1480 }
1481
setDRAWITEMSTRUCTFields(JNIEnv * env,jobject lpObject,DRAWITEMSTRUCT * lpStruct)1482 void setDRAWITEMSTRUCTFields(JNIEnv *env, jobject lpObject, DRAWITEMSTRUCT *lpStruct)
1483 {
1484 if (!DRAWITEMSTRUCTFc.cached) cacheDRAWITEMSTRUCTFields(env, lpObject);
1485 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.CtlType, (jint)lpStruct->CtlType);
1486 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.CtlID, (jint)lpStruct->CtlID);
1487 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.itemID, (jint)lpStruct->itemID);
1488 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.itemAction, (jint)lpStruct->itemAction);
1489 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.itemState, (jint)lpStruct->itemState);
1490 (*env)->SetLongField(env, lpObject, DRAWITEMSTRUCTFc.hwndItem, (jlong)lpStruct->hwndItem);
1491 (*env)->SetLongField(env, lpObject, DRAWITEMSTRUCTFc.hDC, (jlong)lpStruct->hDC);
1492 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.left, (jint)lpStruct->rcItem.left);
1493 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.top, (jint)lpStruct->rcItem.top);
1494 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.bottom, (jint)lpStruct->rcItem.bottom);
1495 (*env)->SetIntField(env, lpObject, DRAWITEMSTRUCTFc.right, (jint)lpStruct->rcItem.right);
1496 (*env)->SetLongField(env, lpObject, DRAWITEMSTRUCTFc.itemData, (jlong)lpStruct->itemData);
1497 }
1498 #endif
1499
1500 #ifndef NO_DROPFILES
1501 typedef struct DROPFILES_FID_CACHE {
1502 int cached;
1503 jclass clazz;
1504 jfieldID pFiles, pt_x, pt_y, fNC, fWide;
1505 } DROPFILES_FID_CACHE;
1506
1507 DROPFILES_FID_CACHE DROPFILESFc;
1508
cacheDROPFILESFields(JNIEnv * env,jobject lpObject)1509 void cacheDROPFILESFields(JNIEnv *env, jobject lpObject)
1510 {
1511 if (DROPFILESFc.cached) return;
1512 DROPFILESFc.clazz = (*env)->GetObjectClass(env, lpObject);
1513 DROPFILESFc.pFiles = (*env)->GetFieldID(env, DROPFILESFc.clazz, "pFiles", "I");
1514 DROPFILESFc.pt_x = (*env)->GetFieldID(env, DROPFILESFc.clazz, "pt_x", "I");
1515 DROPFILESFc.pt_y = (*env)->GetFieldID(env, DROPFILESFc.clazz, "pt_y", "I");
1516 DROPFILESFc.fNC = (*env)->GetFieldID(env, DROPFILESFc.clazz, "fNC", "I");
1517 DROPFILESFc.fWide = (*env)->GetFieldID(env, DROPFILESFc.clazz, "fWide", "I");
1518 DROPFILESFc.cached = 1;
1519 }
1520
getDROPFILESFields(JNIEnv * env,jobject lpObject,DROPFILES * lpStruct)1521 DROPFILES *getDROPFILESFields(JNIEnv *env, jobject lpObject, DROPFILES *lpStruct)
1522 {
1523 if (!DROPFILESFc.cached) cacheDROPFILESFields(env, lpObject);
1524 lpStruct->pFiles = (*env)->GetIntField(env, lpObject, DROPFILESFc.pFiles);
1525 lpStruct->pt.x = (*env)->GetIntField(env, lpObject, DROPFILESFc.pt_x);
1526 lpStruct->pt.y = (*env)->GetIntField(env, lpObject, DROPFILESFc.pt_y);
1527 lpStruct->fNC = (*env)->GetIntField(env, lpObject, DROPFILESFc.fNC);
1528 lpStruct->fWide = (*env)->GetIntField(env, lpObject, DROPFILESFc.fWide);
1529 return lpStruct;
1530 }
1531
setDROPFILESFields(JNIEnv * env,jobject lpObject,DROPFILES * lpStruct)1532 void setDROPFILESFields(JNIEnv *env, jobject lpObject, DROPFILES *lpStruct)
1533 {
1534 if (!DROPFILESFc.cached) cacheDROPFILESFields(env, lpObject);
1535 (*env)->SetIntField(env, lpObject, DROPFILESFc.pFiles, (jint)lpStruct->pFiles);
1536 (*env)->SetIntField(env, lpObject, DROPFILESFc.pt_x, (jint)lpStruct->pt.x);
1537 (*env)->SetIntField(env, lpObject, DROPFILESFc.pt_y, (jint)lpStruct->pt.y);
1538 (*env)->SetIntField(env, lpObject, DROPFILESFc.fNC, (jint)lpStruct->fNC);
1539 (*env)->SetIntField(env, lpObject, DROPFILESFc.fWide, (jint)lpStruct->fWide);
1540 }
1541 #endif
1542
1543 #ifndef NO_DTTOPTS
1544 typedef struct DTTOPTS_FID_CACHE {
1545 int cached;
1546 jclass clazz;
1547 jfieldID dwSize, dwFlags, crText, crBorder, crShadow, iTextShadowType, ptShadowOffset, iBorderSize, iFontPropId, iColorPropId, iStateId, fApplyOverlay, iGlowSize, pfnDrawTextCallback, lParam;
1548 } DTTOPTS_FID_CACHE;
1549
1550 DTTOPTS_FID_CACHE DTTOPTSFc;
1551
cacheDTTOPTSFields(JNIEnv * env,jobject lpObject)1552 void cacheDTTOPTSFields(JNIEnv *env, jobject lpObject)
1553 {
1554 if (DTTOPTSFc.cached) return;
1555 DTTOPTSFc.clazz = (*env)->GetObjectClass(env, lpObject);
1556 DTTOPTSFc.dwSize = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "dwSize", "I");
1557 DTTOPTSFc.dwFlags = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "dwFlags", "I");
1558 DTTOPTSFc.crText = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "crText", "I");
1559 DTTOPTSFc.crBorder = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "crBorder", "I");
1560 DTTOPTSFc.crShadow = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "crShadow", "I");
1561 DTTOPTSFc.iTextShadowType = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iTextShadowType", "I");
1562 DTTOPTSFc.ptShadowOffset = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "ptShadowOffset", "Lorg/eclipse/swt/internal/win32/POINT;");
1563 DTTOPTSFc.iBorderSize = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iBorderSize", "I");
1564 DTTOPTSFc.iFontPropId = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iFontPropId", "I");
1565 DTTOPTSFc.iColorPropId = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iColorPropId", "I");
1566 DTTOPTSFc.iStateId = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iStateId", "I");
1567 DTTOPTSFc.fApplyOverlay = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "fApplyOverlay", "Z");
1568 DTTOPTSFc.iGlowSize = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iGlowSize", "I");
1569 DTTOPTSFc.pfnDrawTextCallback = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "pfnDrawTextCallback", "J");
1570 DTTOPTSFc.lParam = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "lParam", "J");
1571 DTTOPTSFc.cached = 1;
1572 }
1573
getDTTOPTSFields(JNIEnv * env,jobject lpObject,DTTOPTS * lpStruct)1574 DTTOPTS *getDTTOPTSFields(JNIEnv *env, jobject lpObject, DTTOPTS *lpStruct)
1575 {
1576 if (!DTTOPTSFc.cached) cacheDTTOPTSFields(env, lpObject);
1577 lpStruct->dwSize = (*env)->GetIntField(env, lpObject, DTTOPTSFc.dwSize);
1578 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, DTTOPTSFc.dwFlags);
1579 lpStruct->crText = (*env)->GetIntField(env, lpObject, DTTOPTSFc.crText);
1580 lpStruct->crBorder = (*env)->GetIntField(env, lpObject, DTTOPTSFc.crBorder);
1581 lpStruct->crShadow = (*env)->GetIntField(env, lpObject, DTTOPTSFc.crShadow);
1582 lpStruct->iTextShadowType = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iTextShadowType);
1583 {
1584 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, DTTOPTSFc.ptShadowOffset);
1585 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->ptShadowOffset);
1586 }
1587 lpStruct->iBorderSize = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iBorderSize);
1588 lpStruct->iFontPropId = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iFontPropId);
1589 lpStruct->iColorPropId = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iColorPropId);
1590 lpStruct->iStateId = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iStateId);
1591 lpStruct->fApplyOverlay = (*env)->GetBooleanField(env, lpObject, DTTOPTSFc.fApplyOverlay);
1592 lpStruct->iGlowSize = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iGlowSize);
1593 lpStruct->pfnDrawTextCallback = (DTT_CALLBACK_PROC)(*env)->GetLongField(env, lpObject, DTTOPTSFc.pfnDrawTextCallback);
1594 lpStruct->lParam = (*env)->GetLongField(env, lpObject, DTTOPTSFc.lParam);
1595 return lpStruct;
1596 }
1597
setDTTOPTSFields(JNIEnv * env,jobject lpObject,DTTOPTS * lpStruct)1598 void setDTTOPTSFields(JNIEnv *env, jobject lpObject, DTTOPTS *lpStruct)
1599 {
1600 if (!DTTOPTSFc.cached) cacheDTTOPTSFields(env, lpObject);
1601 (*env)->SetIntField(env, lpObject, DTTOPTSFc.dwSize, (jint)lpStruct->dwSize);
1602 (*env)->SetIntField(env, lpObject, DTTOPTSFc.dwFlags, (jint)lpStruct->dwFlags);
1603 (*env)->SetIntField(env, lpObject, DTTOPTSFc.crText, (jint)lpStruct->crText);
1604 (*env)->SetIntField(env, lpObject, DTTOPTSFc.crBorder, (jint)lpStruct->crBorder);
1605 (*env)->SetIntField(env, lpObject, DTTOPTSFc.crShadow, (jint)lpStruct->crShadow);
1606 (*env)->SetIntField(env, lpObject, DTTOPTSFc.iTextShadowType, (jint)lpStruct->iTextShadowType);
1607 {
1608 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, DTTOPTSFc.ptShadowOffset);
1609 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->ptShadowOffset);
1610 }
1611 (*env)->SetIntField(env, lpObject, DTTOPTSFc.iBorderSize, (jint)lpStruct->iBorderSize);
1612 (*env)->SetIntField(env, lpObject, DTTOPTSFc.iFontPropId, (jint)lpStruct->iFontPropId);
1613 (*env)->SetIntField(env, lpObject, DTTOPTSFc.iColorPropId, (jint)lpStruct->iColorPropId);
1614 (*env)->SetIntField(env, lpObject, DTTOPTSFc.iStateId, (jint)lpStruct->iStateId);
1615 (*env)->SetBooleanField(env, lpObject, DTTOPTSFc.fApplyOverlay, (jboolean)lpStruct->fApplyOverlay);
1616 (*env)->SetIntField(env, lpObject, DTTOPTSFc.iGlowSize, (jint)lpStruct->iGlowSize);
1617 (*env)->SetLongField(env, lpObject, DTTOPTSFc.pfnDrawTextCallback, (jlong)lpStruct->pfnDrawTextCallback);
1618 (*env)->SetLongField(env, lpObject, DTTOPTSFc.lParam, (jlong)lpStruct->lParam);
1619 }
1620 #endif
1621
1622 #ifndef NO_EMR
1623 typedef struct EMR_FID_CACHE {
1624 int cached;
1625 jclass clazz;
1626 jfieldID iType, nSize;
1627 } EMR_FID_CACHE;
1628
1629 EMR_FID_CACHE EMRFc;
1630
cacheEMRFields(JNIEnv * env,jobject lpObject)1631 void cacheEMRFields(JNIEnv *env, jobject lpObject)
1632 {
1633 if (EMRFc.cached) return;
1634 EMRFc.clazz = (*env)->GetObjectClass(env, lpObject);
1635 EMRFc.iType = (*env)->GetFieldID(env, EMRFc.clazz, "iType", "I");
1636 EMRFc.nSize = (*env)->GetFieldID(env, EMRFc.clazz, "nSize", "I");
1637 EMRFc.cached = 1;
1638 }
1639
getEMRFields(JNIEnv * env,jobject lpObject,EMR * lpStruct)1640 EMR *getEMRFields(JNIEnv *env, jobject lpObject, EMR *lpStruct)
1641 {
1642 if (!EMRFc.cached) cacheEMRFields(env, lpObject);
1643 lpStruct->iType = (*env)->GetIntField(env, lpObject, EMRFc.iType);
1644 lpStruct->nSize = (*env)->GetIntField(env, lpObject, EMRFc.nSize);
1645 return lpStruct;
1646 }
1647
setEMRFields(JNIEnv * env,jobject lpObject,EMR * lpStruct)1648 void setEMRFields(JNIEnv *env, jobject lpObject, EMR *lpStruct)
1649 {
1650 if (!EMRFc.cached) cacheEMRFields(env, lpObject);
1651 (*env)->SetIntField(env, lpObject, EMRFc.iType, (jint)lpStruct->iType);
1652 (*env)->SetIntField(env, lpObject, EMRFc.nSize, (jint)lpStruct->nSize);
1653 }
1654 #endif
1655
1656 #ifndef NO_EMREXTCREATEFONTINDIRECTW
1657 typedef struct EMREXTCREATEFONTINDIRECTW_FID_CACHE {
1658 int cached;
1659 jclass clazz;
1660 jfieldID emr, ihFont, elfw;
1661 } EMREXTCREATEFONTINDIRECTW_FID_CACHE;
1662
1663 EMREXTCREATEFONTINDIRECTW_FID_CACHE EMREXTCREATEFONTINDIRECTWFc;
1664
cacheEMREXTCREATEFONTINDIRECTWFields(JNIEnv * env,jobject lpObject)1665 void cacheEMREXTCREATEFONTINDIRECTWFields(JNIEnv *env, jobject lpObject)
1666 {
1667 if (EMREXTCREATEFONTINDIRECTWFc.cached) return;
1668 EMREXTCREATEFONTINDIRECTWFc.clazz = (*env)->GetObjectClass(env, lpObject);
1669 EMREXTCREATEFONTINDIRECTWFc.emr = (*env)->GetFieldID(env, EMREXTCREATEFONTINDIRECTWFc.clazz, "emr", "Lorg/eclipse/swt/internal/win32/EMR;");
1670 EMREXTCREATEFONTINDIRECTWFc.ihFont = (*env)->GetFieldID(env, EMREXTCREATEFONTINDIRECTWFc.clazz, "ihFont", "I");
1671 EMREXTCREATEFONTINDIRECTWFc.elfw = (*env)->GetFieldID(env, EMREXTCREATEFONTINDIRECTWFc.clazz, "elfw", "Lorg/eclipse/swt/internal/win32/EXTLOGFONTW;");
1672 EMREXTCREATEFONTINDIRECTWFc.cached = 1;
1673 }
1674
getEMREXTCREATEFONTINDIRECTWFields(JNIEnv * env,jobject lpObject,EMREXTCREATEFONTINDIRECTW * lpStruct)1675 EMREXTCREATEFONTINDIRECTW *getEMREXTCREATEFONTINDIRECTWFields(JNIEnv *env, jobject lpObject, EMREXTCREATEFONTINDIRECTW *lpStruct)
1676 {
1677 if (!EMREXTCREATEFONTINDIRECTWFc.cached) cacheEMREXTCREATEFONTINDIRECTWFields(env, lpObject);
1678 {
1679 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EMREXTCREATEFONTINDIRECTWFc.emr);
1680 if (lpObject1 != NULL) getEMRFields(env, lpObject1, &lpStruct->emr);
1681 }
1682 lpStruct->ihFont = (*env)->GetIntField(env, lpObject, EMREXTCREATEFONTINDIRECTWFc.ihFont);
1683 {
1684 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EMREXTCREATEFONTINDIRECTWFc.elfw);
1685 if (lpObject1 != NULL) getEXTLOGFONTWFields(env, lpObject1, &lpStruct->elfw);
1686 }
1687 return lpStruct;
1688 }
1689
setEMREXTCREATEFONTINDIRECTWFields(JNIEnv * env,jobject lpObject,EMREXTCREATEFONTINDIRECTW * lpStruct)1690 void setEMREXTCREATEFONTINDIRECTWFields(JNIEnv *env, jobject lpObject, EMREXTCREATEFONTINDIRECTW *lpStruct)
1691 {
1692 if (!EMREXTCREATEFONTINDIRECTWFc.cached) cacheEMREXTCREATEFONTINDIRECTWFields(env, lpObject);
1693 {
1694 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EMREXTCREATEFONTINDIRECTWFc.emr);
1695 if (lpObject1 != NULL) setEMRFields(env, lpObject1, &lpStruct->emr);
1696 }
1697 (*env)->SetIntField(env, lpObject, EMREXTCREATEFONTINDIRECTWFc.ihFont, (jint)lpStruct->ihFont);
1698 {
1699 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EMREXTCREATEFONTINDIRECTWFc.elfw);
1700 if (lpObject1 != NULL) setEXTLOGFONTWFields(env, lpObject1, &lpStruct->elfw);
1701 }
1702 }
1703 #endif
1704
1705 #ifndef NO_EXTLOGFONTW
1706 typedef struct EXTLOGFONTW_FID_CACHE {
1707 int cached;
1708 jclass clazz;
1709 jfieldID elfLogFont, elfFullName, elfStyle, elfVersion, elfStyleSize, elfMatch, elfReserved, elfVendorId, elfCulture, elfPanose;
1710 } EXTLOGFONTW_FID_CACHE;
1711
1712 EXTLOGFONTW_FID_CACHE EXTLOGFONTWFc;
1713
cacheEXTLOGFONTWFields(JNIEnv * env,jobject lpObject)1714 void cacheEXTLOGFONTWFields(JNIEnv *env, jobject lpObject)
1715 {
1716 if (EXTLOGFONTWFc.cached) return;
1717 EXTLOGFONTWFc.clazz = (*env)->GetObjectClass(env, lpObject);
1718 EXTLOGFONTWFc.elfLogFont = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfLogFont", "Lorg/eclipse/swt/internal/win32/LOGFONT;");
1719 EXTLOGFONTWFc.elfFullName = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfFullName", "[C");
1720 EXTLOGFONTWFc.elfStyle = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfStyle", "[C");
1721 EXTLOGFONTWFc.elfVersion = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfVersion", "I");
1722 EXTLOGFONTWFc.elfStyleSize = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfStyleSize", "I");
1723 EXTLOGFONTWFc.elfMatch = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfMatch", "I");
1724 EXTLOGFONTWFc.elfReserved = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfReserved", "I");
1725 EXTLOGFONTWFc.elfVendorId = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfVendorId", "[B");
1726 EXTLOGFONTWFc.elfCulture = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfCulture", "I");
1727 EXTLOGFONTWFc.elfPanose = (*env)->GetFieldID(env, EXTLOGFONTWFc.clazz, "elfPanose", "Lorg/eclipse/swt/internal/win32/PANOSE;");
1728 EXTLOGFONTWFc.cached = 1;
1729 }
1730
getEXTLOGFONTWFields(JNIEnv * env,jobject lpObject,EXTLOGFONTW * lpStruct)1731 EXTLOGFONTW *getEXTLOGFONTWFields(JNIEnv *env, jobject lpObject, EXTLOGFONTW *lpStruct)
1732 {
1733 if (!EXTLOGFONTWFc.cached) cacheEXTLOGFONTWFields(env, lpObject);
1734 {
1735 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfLogFont);
1736 if (lpObject1 != NULL) getLOGFONTFields(env, lpObject1, &lpStruct->elfLogFont);
1737 }
1738 {
1739 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfFullName);
1740 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->elfFullName) / sizeof(jchar), (jchar *)lpStruct->elfFullName);
1741 }
1742 {
1743 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfStyle);
1744 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->elfStyle) / sizeof(jchar), (jchar *)lpStruct->elfStyle);
1745 }
1746 lpStruct->elfVersion = (*env)->GetIntField(env, lpObject, EXTLOGFONTWFc.elfVersion);
1747 lpStruct->elfStyleSize = (*env)->GetIntField(env, lpObject, EXTLOGFONTWFc.elfStyleSize);
1748 lpStruct->elfMatch = (*env)->GetIntField(env, lpObject, EXTLOGFONTWFc.elfMatch);
1749 lpStruct->elfReserved = (*env)->GetIntField(env, lpObject, EXTLOGFONTWFc.elfReserved);
1750 {
1751 jbyteArray lpObject1 = (jbyteArray)(*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfVendorId);
1752 (*env)->GetByteArrayRegion(env, lpObject1, 0, sizeof(lpStruct->elfVendorId), (jbyte *)lpStruct->elfVendorId);
1753 }
1754 lpStruct->elfCulture = (*env)->GetIntField(env, lpObject, EXTLOGFONTWFc.elfCulture);
1755 {
1756 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfPanose);
1757 if (lpObject1 != NULL) getPANOSEFields(env, lpObject1, &lpStruct->elfPanose);
1758 }
1759 return lpStruct;
1760 }
1761
setEXTLOGFONTWFields(JNIEnv * env,jobject lpObject,EXTLOGFONTW * lpStruct)1762 void setEXTLOGFONTWFields(JNIEnv *env, jobject lpObject, EXTLOGFONTW *lpStruct)
1763 {
1764 if (!EXTLOGFONTWFc.cached) cacheEXTLOGFONTWFields(env, lpObject);
1765 {
1766 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfLogFont);
1767 if (lpObject1 != NULL) setLOGFONTFields(env, lpObject1, &lpStruct->elfLogFont);
1768 }
1769 {
1770 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfFullName);
1771 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->elfFullName) / sizeof(jchar), (jchar *)lpStruct->elfFullName);
1772 }
1773 {
1774 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfStyle);
1775 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->elfStyle) / sizeof(jchar), (jchar *)lpStruct->elfStyle);
1776 }
1777 (*env)->SetIntField(env, lpObject, EXTLOGFONTWFc.elfVersion, (jint)lpStruct->elfVersion);
1778 (*env)->SetIntField(env, lpObject, EXTLOGFONTWFc.elfStyleSize, (jint)lpStruct->elfStyleSize);
1779 (*env)->SetIntField(env, lpObject, EXTLOGFONTWFc.elfMatch, (jint)lpStruct->elfMatch);
1780 (*env)->SetIntField(env, lpObject, EXTLOGFONTWFc.elfReserved, (jint)lpStruct->elfReserved);
1781 {
1782 jbyteArray lpObject1 = (jbyteArray)(*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfVendorId);
1783 (*env)->SetByteArrayRegion(env, lpObject1, 0, sizeof(lpStruct->elfVendorId), (jbyte *)lpStruct->elfVendorId);
1784 }
1785 (*env)->SetIntField(env, lpObject, EXTLOGFONTWFc.elfCulture, (jint)lpStruct->elfCulture);
1786 {
1787 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, EXTLOGFONTWFc.elfPanose);
1788 if (lpObject1 != NULL) setPANOSEFields(env, lpObject1, &lpStruct->elfPanose);
1789 }
1790 }
1791 #endif
1792
1793 #ifndef NO_FILETIME
1794 typedef struct FILETIME_FID_CACHE {
1795 int cached;
1796 jclass clazz;
1797 jfieldID dwLowDateTime, dwHighDateTime;
1798 } FILETIME_FID_CACHE;
1799
1800 FILETIME_FID_CACHE FILETIMEFc;
1801
cacheFILETIMEFields(JNIEnv * env,jobject lpObject)1802 void cacheFILETIMEFields(JNIEnv *env, jobject lpObject)
1803 {
1804 if (FILETIMEFc.cached) return;
1805 FILETIMEFc.clazz = (*env)->GetObjectClass(env, lpObject);
1806 FILETIMEFc.dwLowDateTime = (*env)->GetFieldID(env, FILETIMEFc.clazz, "dwLowDateTime", "I");
1807 FILETIMEFc.dwHighDateTime = (*env)->GetFieldID(env, FILETIMEFc.clazz, "dwHighDateTime", "I");
1808 FILETIMEFc.cached = 1;
1809 }
1810
getFILETIMEFields(JNIEnv * env,jobject lpObject,FILETIME * lpStruct)1811 FILETIME *getFILETIMEFields(JNIEnv *env, jobject lpObject, FILETIME *lpStruct)
1812 {
1813 if (!FILETIMEFc.cached) cacheFILETIMEFields(env, lpObject);
1814 lpStruct->dwLowDateTime = (*env)->GetIntField(env, lpObject, FILETIMEFc.dwLowDateTime);
1815 lpStruct->dwHighDateTime = (*env)->GetIntField(env, lpObject, FILETIMEFc.dwHighDateTime);
1816 return lpStruct;
1817 }
1818
setFILETIMEFields(JNIEnv * env,jobject lpObject,FILETIME * lpStruct)1819 void setFILETIMEFields(JNIEnv *env, jobject lpObject, FILETIME *lpStruct)
1820 {
1821 if (!FILETIMEFc.cached) cacheFILETIMEFields(env, lpObject);
1822 (*env)->SetIntField(env, lpObject, FILETIMEFc.dwLowDateTime, (jint)lpStruct->dwLowDateTime);
1823 (*env)->SetIntField(env, lpObject, FILETIMEFc.dwHighDateTime, (jint)lpStruct->dwHighDateTime);
1824 }
1825 #endif
1826
1827 #ifndef NO_FLICK_DATA
1828 typedef struct FLICK_DATA_FID_CACHE {
1829 int cached;
1830 jclass clazz;
1831 jfieldID iFlickActionCommandCode, iFlickDirection, fControlModifier, fMenuModifier, fAltGRModifier, fWinModifier, fShiftModifier, iReserved, fOnInkingSurface, iActionArgument;
1832 } FLICK_DATA_FID_CACHE;
1833
1834 FLICK_DATA_FID_CACHE FLICK_DATAFc;
1835
cacheFLICK_DATAFields(JNIEnv * env,jobject lpObject)1836 void cacheFLICK_DATAFields(JNIEnv *env, jobject lpObject)
1837 {
1838 if (FLICK_DATAFc.cached) return;
1839 FLICK_DATAFc.clazz = (*env)->GetObjectClass(env, lpObject);
1840 FLICK_DATAFc.iFlickActionCommandCode = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "iFlickActionCommandCode", "I");
1841 FLICK_DATAFc.iFlickDirection = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "iFlickDirection", "B");
1842 FLICK_DATAFc.fControlModifier = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "fControlModifier", "Z");
1843 FLICK_DATAFc.fMenuModifier = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "fMenuModifier", "Z");
1844 FLICK_DATAFc.fAltGRModifier = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "fAltGRModifier", "Z");
1845 FLICK_DATAFc.fWinModifier = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "fWinModifier", "Z");
1846 FLICK_DATAFc.fShiftModifier = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "fShiftModifier", "Z");
1847 FLICK_DATAFc.iReserved = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "iReserved", "I");
1848 FLICK_DATAFc.fOnInkingSurface = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "fOnInkingSurface", "Z");
1849 FLICK_DATAFc.iActionArgument = (*env)->GetFieldID(env, FLICK_DATAFc.clazz, "iActionArgument", "I");
1850 FLICK_DATAFc.cached = 1;
1851 }
1852
getFLICK_DATAFields(JNIEnv * env,jobject lpObject,FLICK_DATA * lpStruct)1853 FLICK_DATA *getFLICK_DATAFields(JNIEnv *env, jobject lpObject, FLICK_DATA *lpStruct)
1854 {
1855 if (!FLICK_DATAFc.cached) cacheFLICK_DATAFields(env, lpObject);
1856 lpStruct->iFlickActionCommandCode = (*env)->GetIntField(env, lpObject, FLICK_DATAFc.iFlickActionCommandCode);
1857 lpStruct->iFlickDirection = (*env)->GetByteField(env, lpObject, FLICK_DATAFc.iFlickDirection);
1858 lpStruct->fControlModifier = (*env)->GetBooleanField(env, lpObject, FLICK_DATAFc.fControlModifier);
1859 lpStruct->fMenuModifier = (*env)->GetBooleanField(env, lpObject, FLICK_DATAFc.fMenuModifier);
1860 lpStruct->fAltGRModifier = (*env)->GetBooleanField(env, lpObject, FLICK_DATAFc.fAltGRModifier);
1861 lpStruct->fWinModifier = (*env)->GetBooleanField(env, lpObject, FLICK_DATAFc.fWinModifier);
1862 lpStruct->fShiftModifier = (*env)->GetBooleanField(env, lpObject, FLICK_DATAFc.fShiftModifier);
1863 lpStruct->iReserved = (*env)->GetIntField(env, lpObject, FLICK_DATAFc.iReserved);
1864 lpStruct->fOnInkingSurface = (*env)->GetBooleanField(env, lpObject, FLICK_DATAFc.fOnInkingSurface);
1865 lpStruct->iActionArgument = (*env)->GetIntField(env, lpObject, FLICK_DATAFc.iActionArgument);
1866 return lpStruct;
1867 }
1868
setFLICK_DATAFields(JNIEnv * env,jobject lpObject,FLICK_DATA * lpStruct)1869 void setFLICK_DATAFields(JNIEnv *env, jobject lpObject, FLICK_DATA *lpStruct)
1870 {
1871 if (!FLICK_DATAFc.cached) cacheFLICK_DATAFields(env, lpObject);
1872 (*env)->SetIntField(env, lpObject, FLICK_DATAFc.iFlickActionCommandCode, (jint)lpStruct->iFlickActionCommandCode);
1873 (*env)->SetByteField(env, lpObject, FLICK_DATAFc.iFlickDirection, (jbyte)lpStruct->iFlickDirection);
1874 (*env)->SetBooleanField(env, lpObject, FLICK_DATAFc.fControlModifier, (jboolean)lpStruct->fControlModifier);
1875 (*env)->SetBooleanField(env, lpObject, FLICK_DATAFc.fMenuModifier, (jboolean)lpStruct->fMenuModifier);
1876 (*env)->SetBooleanField(env, lpObject, FLICK_DATAFc.fAltGRModifier, (jboolean)lpStruct->fAltGRModifier);
1877 (*env)->SetBooleanField(env, lpObject, FLICK_DATAFc.fWinModifier, (jboolean)lpStruct->fWinModifier);
1878 (*env)->SetBooleanField(env, lpObject, FLICK_DATAFc.fShiftModifier, (jboolean)lpStruct->fShiftModifier);
1879 (*env)->SetIntField(env, lpObject, FLICK_DATAFc.iReserved, (jint)lpStruct->iReserved);
1880 (*env)->SetBooleanField(env, lpObject, FLICK_DATAFc.fOnInkingSurface, (jboolean)lpStruct->fOnInkingSurface);
1881 (*env)->SetIntField(env, lpObject, FLICK_DATAFc.iActionArgument, (jint)lpStruct->iActionArgument);
1882 }
1883 #endif
1884
1885 #ifndef NO_FLICK_POINT
1886 typedef struct FLICK_POINT_FID_CACHE {
1887 int cached;
1888 jclass clazz;
1889 jfieldID x, y;
1890 } FLICK_POINT_FID_CACHE;
1891
1892 FLICK_POINT_FID_CACHE FLICK_POINTFc;
1893
cacheFLICK_POINTFields(JNIEnv * env,jobject lpObject)1894 void cacheFLICK_POINTFields(JNIEnv *env, jobject lpObject)
1895 {
1896 if (FLICK_POINTFc.cached) return;
1897 FLICK_POINTFc.clazz = (*env)->GetObjectClass(env, lpObject);
1898 FLICK_POINTFc.x = (*env)->GetFieldID(env, FLICK_POINTFc.clazz, "x", "I");
1899 FLICK_POINTFc.y = (*env)->GetFieldID(env, FLICK_POINTFc.clazz, "y", "I");
1900 FLICK_POINTFc.cached = 1;
1901 }
1902
getFLICK_POINTFields(JNIEnv * env,jobject lpObject,FLICK_POINT * lpStruct)1903 FLICK_POINT *getFLICK_POINTFields(JNIEnv *env, jobject lpObject, FLICK_POINT *lpStruct)
1904 {
1905 if (!FLICK_POINTFc.cached) cacheFLICK_POINTFields(env, lpObject);
1906 lpStruct->x = (*env)->GetIntField(env, lpObject, FLICK_POINTFc.x);
1907 lpStruct->y = (*env)->GetIntField(env, lpObject, FLICK_POINTFc.y);
1908 return lpStruct;
1909 }
1910
setFLICK_POINTFields(JNIEnv * env,jobject lpObject,FLICK_POINT * lpStruct)1911 void setFLICK_POINTFields(JNIEnv *env, jobject lpObject, FLICK_POINT *lpStruct)
1912 {
1913 if (!FLICK_POINTFc.cached) cacheFLICK_POINTFields(env, lpObject);
1914 (*env)->SetIntField(env, lpObject, FLICK_POINTFc.x, (jint)lpStruct->x);
1915 (*env)->SetIntField(env, lpObject, FLICK_POINTFc.y, (jint)lpStruct->y);
1916 }
1917 #endif
1918
1919 #ifndef NO_GCP_RESULTS
1920 typedef struct GCP_RESULTS_FID_CACHE {
1921 int cached;
1922 jclass clazz;
1923 jfieldID lStructSize, lpOutString, lpOrder, lpDx, lpCaretPos, lpClass, lpGlyphs, nGlyphs, nMaxFit;
1924 } GCP_RESULTS_FID_CACHE;
1925
1926 GCP_RESULTS_FID_CACHE GCP_RESULTSFc;
1927
cacheGCP_RESULTSFields(JNIEnv * env,jobject lpObject)1928 void cacheGCP_RESULTSFields(JNIEnv *env, jobject lpObject)
1929 {
1930 if (GCP_RESULTSFc.cached) return;
1931 GCP_RESULTSFc.clazz = (*env)->GetObjectClass(env, lpObject);
1932 GCP_RESULTSFc.lStructSize = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lStructSize", "I");
1933 GCP_RESULTSFc.lpOutString = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lpOutString", "J");
1934 GCP_RESULTSFc.lpOrder = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lpOrder", "J");
1935 GCP_RESULTSFc.lpDx = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lpDx", "J");
1936 GCP_RESULTSFc.lpCaretPos = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lpCaretPos", "J");
1937 GCP_RESULTSFc.lpClass = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lpClass", "J");
1938 GCP_RESULTSFc.lpGlyphs = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "lpGlyphs", "J");
1939 GCP_RESULTSFc.nGlyphs = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "nGlyphs", "I");
1940 GCP_RESULTSFc.nMaxFit = (*env)->GetFieldID(env, GCP_RESULTSFc.clazz, "nMaxFit", "I");
1941 GCP_RESULTSFc.cached = 1;
1942 }
1943
getGCP_RESULTSFields(JNIEnv * env,jobject lpObject,GCP_RESULTS * lpStruct)1944 GCP_RESULTS *getGCP_RESULTSFields(JNIEnv *env, jobject lpObject, GCP_RESULTS *lpStruct)
1945 {
1946 if (!GCP_RESULTSFc.cached) cacheGCP_RESULTSFields(env, lpObject);
1947 lpStruct->lStructSize = (*env)->GetIntField(env, lpObject, GCP_RESULTSFc.lStructSize);
1948 lpStruct->lpOutString = (LPTSTR)(*env)->GetLongField(env, lpObject, GCP_RESULTSFc.lpOutString);
1949 lpStruct->lpOrder = (UINT *)(*env)->GetLongField(env, lpObject, GCP_RESULTSFc.lpOrder);
1950 lpStruct->lpDx = (int *)(*env)->GetLongField(env, lpObject, GCP_RESULTSFc.lpDx);
1951 lpStruct->lpCaretPos = (int *)(*env)->GetLongField(env, lpObject, GCP_RESULTSFc.lpCaretPos);
1952 lpStruct->lpClass = (LPSTR)(*env)->GetLongField(env, lpObject, GCP_RESULTSFc.lpClass);
1953 lpStruct->lpGlyphs = (LPWSTR)(*env)->GetLongField(env, lpObject, GCP_RESULTSFc.lpGlyphs);
1954 lpStruct->nGlyphs = (*env)->GetIntField(env, lpObject, GCP_RESULTSFc.nGlyphs);
1955 lpStruct->nMaxFit = (*env)->GetIntField(env, lpObject, GCP_RESULTSFc.nMaxFit);
1956 return lpStruct;
1957 }
1958
setGCP_RESULTSFields(JNIEnv * env,jobject lpObject,GCP_RESULTS * lpStruct)1959 void setGCP_RESULTSFields(JNIEnv *env, jobject lpObject, GCP_RESULTS *lpStruct)
1960 {
1961 if (!GCP_RESULTSFc.cached) cacheGCP_RESULTSFields(env, lpObject);
1962 (*env)->SetIntField(env, lpObject, GCP_RESULTSFc.lStructSize, (jint)lpStruct->lStructSize);
1963 (*env)->SetLongField(env, lpObject, GCP_RESULTSFc.lpOutString, (jlong)lpStruct->lpOutString);
1964 (*env)->SetLongField(env, lpObject, GCP_RESULTSFc.lpOrder, (jlong)lpStruct->lpOrder);
1965 (*env)->SetLongField(env, lpObject, GCP_RESULTSFc.lpDx, (jlong)lpStruct->lpDx);
1966 (*env)->SetLongField(env, lpObject, GCP_RESULTSFc.lpCaretPos, (jlong)lpStruct->lpCaretPos);
1967 (*env)->SetLongField(env, lpObject, GCP_RESULTSFc.lpClass, (jlong)lpStruct->lpClass);
1968 (*env)->SetLongField(env, lpObject, GCP_RESULTSFc.lpGlyphs, (jlong)lpStruct->lpGlyphs);
1969 (*env)->SetIntField(env, lpObject, GCP_RESULTSFc.nGlyphs, (jint)lpStruct->nGlyphs);
1970 (*env)->SetIntField(env, lpObject, GCP_RESULTSFc.nMaxFit, (jint)lpStruct->nMaxFit);
1971 }
1972 #endif
1973
1974 #ifndef NO_GESTURECONFIG
1975 typedef struct GESTURECONFIG_FID_CACHE {
1976 int cached;
1977 jclass clazz;
1978 jfieldID dwID, dwWant, dwBlock;
1979 } GESTURECONFIG_FID_CACHE;
1980
1981 GESTURECONFIG_FID_CACHE GESTURECONFIGFc;
1982
cacheGESTURECONFIGFields(JNIEnv * env,jobject lpObject)1983 void cacheGESTURECONFIGFields(JNIEnv *env, jobject lpObject)
1984 {
1985 if (GESTURECONFIGFc.cached) return;
1986 GESTURECONFIGFc.clazz = (*env)->GetObjectClass(env, lpObject);
1987 GESTURECONFIGFc.dwID = (*env)->GetFieldID(env, GESTURECONFIGFc.clazz, "dwID", "I");
1988 GESTURECONFIGFc.dwWant = (*env)->GetFieldID(env, GESTURECONFIGFc.clazz, "dwWant", "I");
1989 GESTURECONFIGFc.dwBlock = (*env)->GetFieldID(env, GESTURECONFIGFc.clazz, "dwBlock", "I");
1990 GESTURECONFIGFc.cached = 1;
1991 }
1992
getGESTURECONFIGFields(JNIEnv * env,jobject lpObject,GESTURECONFIG * lpStruct)1993 GESTURECONFIG *getGESTURECONFIGFields(JNIEnv *env, jobject lpObject, GESTURECONFIG *lpStruct)
1994 {
1995 if (!GESTURECONFIGFc.cached) cacheGESTURECONFIGFields(env, lpObject);
1996 lpStruct->dwID = (*env)->GetIntField(env, lpObject, GESTURECONFIGFc.dwID);
1997 lpStruct->dwWant = (*env)->GetIntField(env, lpObject, GESTURECONFIGFc.dwWant);
1998 lpStruct->dwBlock = (*env)->GetIntField(env, lpObject, GESTURECONFIGFc.dwBlock);
1999 return lpStruct;
2000 }
2001
setGESTURECONFIGFields(JNIEnv * env,jobject lpObject,GESTURECONFIG * lpStruct)2002 void setGESTURECONFIGFields(JNIEnv *env, jobject lpObject, GESTURECONFIG *lpStruct)
2003 {
2004 if (!GESTURECONFIGFc.cached) cacheGESTURECONFIGFields(env, lpObject);
2005 (*env)->SetIntField(env, lpObject, GESTURECONFIGFc.dwID, (jint)lpStruct->dwID);
2006 (*env)->SetIntField(env, lpObject, GESTURECONFIGFc.dwWant, (jint)lpStruct->dwWant);
2007 (*env)->SetIntField(env, lpObject, GESTURECONFIGFc.dwBlock, (jint)lpStruct->dwBlock);
2008 }
2009 #endif
2010
2011 #ifndef NO_GESTUREINFO
2012 typedef struct GESTUREINFO_FID_CACHE {
2013 int cached;
2014 jclass clazz;
2015 jfieldID cbSize, dwFlags, dwID, hwndTarget, x, y, dwInstanceID, dwSequenceID, ullArguments, cbExtraArgs;
2016 } GESTUREINFO_FID_CACHE;
2017
2018 GESTUREINFO_FID_CACHE GESTUREINFOFc;
2019
cacheGESTUREINFOFields(JNIEnv * env,jobject lpObject)2020 void cacheGESTUREINFOFields(JNIEnv *env, jobject lpObject)
2021 {
2022 if (GESTUREINFOFc.cached) return;
2023 GESTUREINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
2024 GESTUREINFOFc.cbSize = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "cbSize", "I");
2025 GESTUREINFOFc.dwFlags = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "dwFlags", "I");
2026 GESTUREINFOFc.dwID = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "dwID", "I");
2027 GESTUREINFOFc.hwndTarget = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "hwndTarget", "J");
2028 GESTUREINFOFc.x = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "x", "S");
2029 GESTUREINFOFc.y = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "y", "S");
2030 GESTUREINFOFc.dwInstanceID = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "dwInstanceID", "I");
2031 GESTUREINFOFc.dwSequenceID = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "dwSequenceID", "I");
2032 GESTUREINFOFc.ullArguments = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "ullArguments", "J");
2033 GESTUREINFOFc.cbExtraArgs = (*env)->GetFieldID(env, GESTUREINFOFc.clazz, "cbExtraArgs", "I");
2034 GESTUREINFOFc.cached = 1;
2035 }
2036
getGESTUREINFOFields(JNIEnv * env,jobject lpObject,GESTUREINFO * lpStruct)2037 GESTUREINFO *getGESTUREINFOFields(JNIEnv *env, jobject lpObject, GESTUREINFO *lpStruct)
2038 {
2039 if (!GESTUREINFOFc.cached) cacheGESTUREINFOFields(env, lpObject);
2040 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, GESTUREINFOFc.cbSize);
2041 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, GESTUREINFOFc.dwFlags);
2042 lpStruct->dwID = (*env)->GetIntField(env, lpObject, GESTUREINFOFc.dwID);
2043 lpStruct->hwndTarget = (HWND)(*env)->GetLongField(env, lpObject, GESTUREINFOFc.hwndTarget);
2044 lpStruct->ptsLocation.x = (*env)->GetShortField(env, lpObject, GESTUREINFOFc.x);
2045 lpStruct->ptsLocation.y = (*env)->GetShortField(env, lpObject, GESTUREINFOFc.y);
2046 lpStruct->dwInstanceID = (*env)->GetIntField(env, lpObject, GESTUREINFOFc.dwInstanceID);
2047 lpStruct->dwSequenceID = (*env)->GetIntField(env, lpObject, GESTUREINFOFc.dwSequenceID);
2048 lpStruct->ullArguments = (*env)->GetLongField(env, lpObject, GESTUREINFOFc.ullArguments);
2049 lpStruct->cbExtraArgs = (*env)->GetIntField(env, lpObject, GESTUREINFOFc.cbExtraArgs);
2050 return lpStruct;
2051 }
2052
setGESTUREINFOFields(JNIEnv * env,jobject lpObject,GESTUREINFO * lpStruct)2053 void setGESTUREINFOFields(JNIEnv *env, jobject lpObject, GESTUREINFO *lpStruct)
2054 {
2055 if (!GESTUREINFOFc.cached) cacheGESTUREINFOFields(env, lpObject);
2056 (*env)->SetIntField(env, lpObject, GESTUREINFOFc.cbSize, (jint)lpStruct->cbSize);
2057 (*env)->SetIntField(env, lpObject, GESTUREINFOFc.dwFlags, (jint)lpStruct->dwFlags);
2058 (*env)->SetIntField(env, lpObject, GESTUREINFOFc.dwID, (jint)lpStruct->dwID);
2059 (*env)->SetLongField(env, lpObject, GESTUREINFOFc.hwndTarget, (jlong)lpStruct->hwndTarget);
2060 (*env)->SetShortField(env, lpObject, GESTUREINFOFc.x, (jshort)lpStruct->ptsLocation.x);
2061 (*env)->SetShortField(env, lpObject, GESTUREINFOFc.y, (jshort)lpStruct->ptsLocation.y);
2062 (*env)->SetIntField(env, lpObject, GESTUREINFOFc.dwInstanceID, (jint)lpStruct->dwInstanceID);
2063 (*env)->SetIntField(env, lpObject, GESTUREINFOFc.dwSequenceID, (jint)lpStruct->dwSequenceID);
2064 (*env)->SetLongField(env, lpObject, GESTUREINFOFc.ullArguments, (jlong)lpStruct->ullArguments);
2065 (*env)->SetIntField(env, lpObject, GESTUREINFOFc.cbExtraArgs, (jint)lpStruct->cbExtraArgs);
2066 }
2067 #endif
2068
2069 #ifndef NO_GRADIENT_RECT
2070 typedef struct GRADIENT_RECT_FID_CACHE {
2071 int cached;
2072 jclass clazz;
2073 jfieldID UpperLeft, LowerRight;
2074 } GRADIENT_RECT_FID_CACHE;
2075
2076 GRADIENT_RECT_FID_CACHE GRADIENT_RECTFc;
2077
cacheGRADIENT_RECTFields(JNIEnv * env,jobject lpObject)2078 void cacheGRADIENT_RECTFields(JNIEnv *env, jobject lpObject)
2079 {
2080 if (GRADIENT_RECTFc.cached) return;
2081 GRADIENT_RECTFc.clazz = (*env)->GetObjectClass(env, lpObject);
2082 GRADIENT_RECTFc.UpperLeft = (*env)->GetFieldID(env, GRADIENT_RECTFc.clazz, "UpperLeft", "I");
2083 GRADIENT_RECTFc.LowerRight = (*env)->GetFieldID(env, GRADIENT_RECTFc.clazz, "LowerRight", "I");
2084 GRADIENT_RECTFc.cached = 1;
2085 }
2086
getGRADIENT_RECTFields(JNIEnv * env,jobject lpObject,GRADIENT_RECT * lpStruct)2087 GRADIENT_RECT *getGRADIENT_RECTFields(JNIEnv *env, jobject lpObject, GRADIENT_RECT *lpStruct)
2088 {
2089 if (!GRADIENT_RECTFc.cached) cacheGRADIENT_RECTFields(env, lpObject);
2090 lpStruct->UpperLeft = (*env)->GetIntField(env, lpObject, GRADIENT_RECTFc.UpperLeft);
2091 lpStruct->LowerRight = (*env)->GetIntField(env, lpObject, GRADIENT_RECTFc.LowerRight);
2092 return lpStruct;
2093 }
2094
setGRADIENT_RECTFields(JNIEnv * env,jobject lpObject,GRADIENT_RECT * lpStruct)2095 void setGRADIENT_RECTFields(JNIEnv *env, jobject lpObject, GRADIENT_RECT *lpStruct)
2096 {
2097 if (!GRADIENT_RECTFc.cached) cacheGRADIENT_RECTFields(env, lpObject);
2098 (*env)->SetIntField(env, lpObject, GRADIENT_RECTFc.UpperLeft, (jint)lpStruct->UpperLeft);
2099 (*env)->SetIntField(env, lpObject, GRADIENT_RECTFc.LowerRight, (jint)lpStruct->LowerRight);
2100 }
2101 #endif
2102
2103 #ifndef NO_GUITHREADINFO
2104 typedef struct GUITHREADINFO_FID_CACHE {
2105 int cached;
2106 jclass clazz;
2107 jfieldID cbSize, flags, hwndActive, hwndFocus, hwndCapture, hwndMenuOwner, hwndMoveSize, hwndCaret, left, top, right, bottom;
2108 } GUITHREADINFO_FID_CACHE;
2109
2110 GUITHREADINFO_FID_CACHE GUITHREADINFOFc;
2111
cacheGUITHREADINFOFields(JNIEnv * env,jobject lpObject)2112 void cacheGUITHREADINFOFields(JNIEnv *env, jobject lpObject)
2113 {
2114 if (GUITHREADINFOFc.cached) return;
2115 GUITHREADINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
2116 GUITHREADINFOFc.cbSize = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "cbSize", "I");
2117 GUITHREADINFOFc.flags = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "flags", "I");
2118 GUITHREADINFOFc.hwndActive = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "hwndActive", "J");
2119 GUITHREADINFOFc.hwndFocus = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "hwndFocus", "J");
2120 GUITHREADINFOFc.hwndCapture = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "hwndCapture", "J");
2121 GUITHREADINFOFc.hwndMenuOwner = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "hwndMenuOwner", "J");
2122 GUITHREADINFOFc.hwndMoveSize = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "hwndMoveSize", "J");
2123 GUITHREADINFOFc.hwndCaret = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "hwndCaret", "J");
2124 GUITHREADINFOFc.left = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "left", "I");
2125 GUITHREADINFOFc.top = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "top", "I");
2126 GUITHREADINFOFc.right = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "right", "I");
2127 GUITHREADINFOFc.bottom = (*env)->GetFieldID(env, GUITHREADINFOFc.clazz, "bottom", "I");
2128 GUITHREADINFOFc.cached = 1;
2129 }
2130
getGUITHREADINFOFields(JNIEnv * env,jobject lpObject,GUITHREADINFO * lpStruct)2131 GUITHREADINFO *getGUITHREADINFOFields(JNIEnv *env, jobject lpObject, GUITHREADINFO *lpStruct)
2132 {
2133 if (!GUITHREADINFOFc.cached) cacheGUITHREADINFOFields(env, lpObject);
2134 lpStruct->cbSize = (DWORD)(*env)->GetIntField(env, lpObject, GUITHREADINFOFc.cbSize);
2135 lpStruct->flags = (DWORD)(*env)->GetIntField(env, lpObject, GUITHREADINFOFc.flags);
2136 lpStruct->hwndActive = (HWND)(*env)->GetLongField(env, lpObject, GUITHREADINFOFc.hwndActive);
2137 lpStruct->hwndFocus = (HWND)(*env)->GetLongField(env, lpObject, GUITHREADINFOFc.hwndFocus);
2138 lpStruct->hwndCapture = (HWND)(*env)->GetLongField(env, lpObject, GUITHREADINFOFc.hwndCapture);
2139 lpStruct->hwndMenuOwner = (HWND)(*env)->GetLongField(env, lpObject, GUITHREADINFOFc.hwndMenuOwner);
2140 lpStruct->hwndMoveSize = (HWND)(*env)->GetLongField(env, lpObject, GUITHREADINFOFc.hwndMoveSize);
2141 lpStruct->hwndCaret = (HWND)(*env)->GetLongField(env, lpObject, GUITHREADINFOFc.hwndCaret);
2142 lpStruct->rcCaret.left = (*env)->GetIntField(env, lpObject, GUITHREADINFOFc.left);
2143 lpStruct->rcCaret.top = (*env)->GetIntField(env, lpObject, GUITHREADINFOFc.top);
2144 lpStruct->rcCaret.right = (*env)->GetIntField(env, lpObject, GUITHREADINFOFc.right);
2145 lpStruct->rcCaret.bottom = (*env)->GetIntField(env, lpObject, GUITHREADINFOFc.bottom);
2146 return lpStruct;
2147 }
2148
setGUITHREADINFOFields(JNIEnv * env,jobject lpObject,GUITHREADINFO * lpStruct)2149 void setGUITHREADINFOFields(JNIEnv *env, jobject lpObject, GUITHREADINFO *lpStruct)
2150 {
2151 if (!GUITHREADINFOFc.cached) cacheGUITHREADINFOFields(env, lpObject);
2152 (*env)->SetIntField(env, lpObject, GUITHREADINFOFc.cbSize, (jint)lpStruct->cbSize);
2153 (*env)->SetIntField(env, lpObject, GUITHREADINFOFc.flags, (jint)lpStruct->flags);
2154 (*env)->SetLongField(env, lpObject, GUITHREADINFOFc.hwndActive, (jlong)lpStruct->hwndActive);
2155 (*env)->SetLongField(env, lpObject, GUITHREADINFOFc.hwndFocus, (jlong)lpStruct->hwndFocus);
2156 (*env)->SetLongField(env, lpObject, GUITHREADINFOFc.hwndCapture, (jlong)lpStruct->hwndCapture);
2157 (*env)->SetLongField(env, lpObject, GUITHREADINFOFc.hwndMenuOwner, (jlong)lpStruct->hwndMenuOwner);
2158 (*env)->SetLongField(env, lpObject, GUITHREADINFOFc.hwndMoveSize, (jlong)lpStruct->hwndMoveSize);
2159 (*env)->SetLongField(env, lpObject, GUITHREADINFOFc.hwndCaret, (jlong)lpStruct->hwndCaret);
2160 (*env)->SetIntField(env, lpObject, GUITHREADINFOFc.left, (jint)lpStruct->rcCaret.left);
2161 (*env)->SetIntField(env, lpObject, GUITHREADINFOFc.top, (jint)lpStruct->rcCaret.top);
2162 (*env)->SetIntField(env, lpObject, GUITHREADINFOFc.right, (jint)lpStruct->rcCaret.right);
2163 (*env)->SetIntField(env, lpObject, GUITHREADINFOFc.bottom, (jint)lpStruct->rcCaret.bottom);
2164 }
2165 #endif
2166
2167 #ifndef NO_HDHITTESTINFO
2168 typedef struct HDHITTESTINFO_FID_CACHE {
2169 int cached;
2170 jclass clazz;
2171 jfieldID x, y, flags, iItem;
2172 } HDHITTESTINFO_FID_CACHE;
2173
2174 HDHITTESTINFO_FID_CACHE HDHITTESTINFOFc;
2175
cacheHDHITTESTINFOFields(JNIEnv * env,jobject lpObject)2176 void cacheHDHITTESTINFOFields(JNIEnv *env, jobject lpObject)
2177 {
2178 if (HDHITTESTINFOFc.cached) return;
2179 HDHITTESTINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
2180 HDHITTESTINFOFc.x = (*env)->GetFieldID(env, HDHITTESTINFOFc.clazz, "x", "I");
2181 HDHITTESTINFOFc.y = (*env)->GetFieldID(env, HDHITTESTINFOFc.clazz, "y", "I");
2182 HDHITTESTINFOFc.flags = (*env)->GetFieldID(env, HDHITTESTINFOFc.clazz, "flags", "I");
2183 HDHITTESTINFOFc.iItem = (*env)->GetFieldID(env, HDHITTESTINFOFc.clazz, "iItem", "I");
2184 HDHITTESTINFOFc.cached = 1;
2185 }
2186
getHDHITTESTINFOFields(JNIEnv * env,jobject lpObject,HDHITTESTINFO * lpStruct)2187 HDHITTESTINFO *getHDHITTESTINFOFields(JNIEnv *env, jobject lpObject, HDHITTESTINFO *lpStruct)
2188 {
2189 if (!HDHITTESTINFOFc.cached) cacheHDHITTESTINFOFields(env, lpObject);
2190 lpStruct->pt.x = (*env)->GetIntField(env, lpObject, HDHITTESTINFOFc.x);
2191 lpStruct->pt.y = (*env)->GetIntField(env, lpObject, HDHITTESTINFOFc.y);
2192 lpStruct->flags = (*env)->GetIntField(env, lpObject, HDHITTESTINFOFc.flags);
2193 lpStruct->iItem = (*env)->GetIntField(env, lpObject, HDHITTESTINFOFc.iItem);
2194 return lpStruct;
2195 }
2196
setHDHITTESTINFOFields(JNIEnv * env,jobject lpObject,HDHITTESTINFO * lpStruct)2197 void setHDHITTESTINFOFields(JNIEnv *env, jobject lpObject, HDHITTESTINFO *lpStruct)
2198 {
2199 if (!HDHITTESTINFOFc.cached) cacheHDHITTESTINFOFields(env, lpObject);
2200 (*env)->SetIntField(env, lpObject, HDHITTESTINFOFc.x, (jint)lpStruct->pt.x);
2201 (*env)->SetIntField(env, lpObject, HDHITTESTINFOFc.y, (jint)lpStruct->pt.y);
2202 (*env)->SetIntField(env, lpObject, HDHITTESTINFOFc.flags, (jint)lpStruct->flags);
2203 (*env)->SetIntField(env, lpObject, HDHITTESTINFOFc.iItem, (jint)lpStruct->iItem);
2204 }
2205 #endif
2206
2207 #ifndef NO_HDITEM
2208 typedef struct HDITEM_FID_CACHE {
2209 int cached;
2210 jclass clazz;
2211 jfieldID mask, cxy, pszText, hbm, cchTextMax, fmt, lParam, iImage, iOrder, type, pvFilter;
2212 } HDITEM_FID_CACHE;
2213
2214 HDITEM_FID_CACHE HDITEMFc;
2215
cacheHDITEMFields(JNIEnv * env,jobject lpObject)2216 void cacheHDITEMFields(JNIEnv *env, jobject lpObject)
2217 {
2218 if (HDITEMFc.cached) return;
2219 HDITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
2220 HDITEMFc.mask = (*env)->GetFieldID(env, HDITEMFc.clazz, "mask", "I");
2221 HDITEMFc.cxy = (*env)->GetFieldID(env, HDITEMFc.clazz, "cxy", "I");
2222 HDITEMFc.pszText = (*env)->GetFieldID(env, HDITEMFc.clazz, "pszText", "J");
2223 HDITEMFc.hbm = (*env)->GetFieldID(env, HDITEMFc.clazz, "hbm", "J");
2224 HDITEMFc.cchTextMax = (*env)->GetFieldID(env, HDITEMFc.clazz, "cchTextMax", "I");
2225 HDITEMFc.fmt = (*env)->GetFieldID(env, HDITEMFc.clazz, "fmt", "I");
2226 HDITEMFc.lParam = (*env)->GetFieldID(env, HDITEMFc.clazz, "lParam", "J");
2227 HDITEMFc.iImage = (*env)->GetFieldID(env, HDITEMFc.clazz, "iImage", "I");
2228 HDITEMFc.iOrder = (*env)->GetFieldID(env, HDITEMFc.clazz, "iOrder", "I");
2229 HDITEMFc.type = (*env)->GetFieldID(env, HDITEMFc.clazz, "type", "I");
2230 HDITEMFc.pvFilter = (*env)->GetFieldID(env, HDITEMFc.clazz, "pvFilter", "J");
2231 HDITEMFc.cached = 1;
2232 }
2233
getHDITEMFields(JNIEnv * env,jobject lpObject,HDITEM * lpStruct)2234 HDITEM *getHDITEMFields(JNIEnv *env, jobject lpObject, HDITEM *lpStruct)
2235 {
2236 if (!HDITEMFc.cached) cacheHDITEMFields(env, lpObject);
2237 lpStruct->mask = (*env)->GetIntField(env, lpObject, HDITEMFc.mask);
2238 lpStruct->cxy = (*env)->GetIntField(env, lpObject, HDITEMFc.cxy);
2239 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, HDITEMFc.pszText);
2240 lpStruct->hbm = (HBITMAP)(*env)->GetLongField(env, lpObject, HDITEMFc.hbm);
2241 lpStruct->cchTextMax = (*env)->GetIntField(env, lpObject, HDITEMFc.cchTextMax);
2242 lpStruct->fmt = (*env)->GetIntField(env, lpObject, HDITEMFc.fmt);
2243 lpStruct->lParam = (*env)->GetLongField(env, lpObject, HDITEMFc.lParam);
2244 lpStruct->iImage = (*env)->GetIntField(env, lpObject, HDITEMFc.iImage);
2245 lpStruct->iOrder = (*env)->GetIntField(env, lpObject, HDITEMFc.iOrder);
2246 lpStruct->type = (*env)->GetIntField(env, lpObject, HDITEMFc.type);
2247 lpStruct->pvFilter = (void *)(*env)->GetLongField(env, lpObject, HDITEMFc.pvFilter);
2248 return lpStruct;
2249 }
2250
setHDITEMFields(JNIEnv * env,jobject lpObject,HDITEM * lpStruct)2251 void setHDITEMFields(JNIEnv *env, jobject lpObject, HDITEM *lpStruct)
2252 {
2253 if (!HDITEMFc.cached) cacheHDITEMFields(env, lpObject);
2254 (*env)->SetIntField(env, lpObject, HDITEMFc.mask, (jint)lpStruct->mask);
2255 (*env)->SetIntField(env, lpObject, HDITEMFc.cxy, (jint)lpStruct->cxy);
2256 (*env)->SetLongField(env, lpObject, HDITEMFc.pszText, (jlong)lpStruct->pszText);
2257 (*env)->SetLongField(env, lpObject, HDITEMFc.hbm, (jlong)lpStruct->hbm);
2258 (*env)->SetIntField(env, lpObject, HDITEMFc.cchTextMax, (jint)lpStruct->cchTextMax);
2259 (*env)->SetIntField(env, lpObject, HDITEMFc.fmt, (jint)lpStruct->fmt);
2260 (*env)->SetLongField(env, lpObject, HDITEMFc.lParam, (jlong)lpStruct->lParam);
2261 (*env)->SetIntField(env, lpObject, HDITEMFc.iImage, (jint)lpStruct->iImage);
2262 (*env)->SetIntField(env, lpObject, HDITEMFc.iOrder, (jint)lpStruct->iOrder);
2263 (*env)->SetIntField(env, lpObject, HDITEMFc.type, (jint)lpStruct->type);
2264 (*env)->SetLongField(env, lpObject, HDITEMFc.pvFilter, (jlong)lpStruct->pvFilter);
2265 }
2266 #endif
2267
2268 #ifndef NO_HDLAYOUT
2269 typedef struct HDLAYOUT_FID_CACHE {
2270 int cached;
2271 jclass clazz;
2272 jfieldID prc, pwpos;
2273 } HDLAYOUT_FID_CACHE;
2274
2275 HDLAYOUT_FID_CACHE HDLAYOUTFc;
2276
cacheHDLAYOUTFields(JNIEnv * env,jobject lpObject)2277 void cacheHDLAYOUTFields(JNIEnv *env, jobject lpObject)
2278 {
2279 if (HDLAYOUTFc.cached) return;
2280 HDLAYOUTFc.clazz = (*env)->GetObjectClass(env, lpObject);
2281 HDLAYOUTFc.prc = (*env)->GetFieldID(env, HDLAYOUTFc.clazz, "prc", "J");
2282 HDLAYOUTFc.pwpos = (*env)->GetFieldID(env, HDLAYOUTFc.clazz, "pwpos", "J");
2283 HDLAYOUTFc.cached = 1;
2284 }
2285
getHDLAYOUTFields(JNIEnv * env,jobject lpObject,HDLAYOUT * lpStruct)2286 HDLAYOUT *getHDLAYOUTFields(JNIEnv *env, jobject lpObject, HDLAYOUT *lpStruct)
2287 {
2288 if (!HDLAYOUTFc.cached) cacheHDLAYOUTFields(env, lpObject);
2289 lpStruct->prc = (RECT *)(*env)->GetLongField(env, lpObject, HDLAYOUTFc.prc);
2290 lpStruct->pwpos = (WINDOWPOS *)(*env)->GetLongField(env, lpObject, HDLAYOUTFc.pwpos);
2291 return lpStruct;
2292 }
2293
setHDLAYOUTFields(JNIEnv * env,jobject lpObject,HDLAYOUT * lpStruct)2294 void setHDLAYOUTFields(JNIEnv *env, jobject lpObject, HDLAYOUT *lpStruct)
2295 {
2296 if (!HDLAYOUTFc.cached) cacheHDLAYOUTFields(env, lpObject);
2297 (*env)->SetLongField(env, lpObject, HDLAYOUTFc.prc, (jlong)lpStruct->prc);
2298 (*env)->SetLongField(env, lpObject, HDLAYOUTFc.pwpos, (jlong)lpStruct->pwpos);
2299 }
2300 #endif
2301
2302 #ifndef NO_HELPINFO
2303 typedef struct HELPINFO_FID_CACHE {
2304 int cached;
2305 jclass clazz;
2306 jfieldID cbSize, iContextType, iCtrlId, hItemHandle, dwContextId, x, y;
2307 } HELPINFO_FID_CACHE;
2308
2309 HELPINFO_FID_CACHE HELPINFOFc;
2310
cacheHELPINFOFields(JNIEnv * env,jobject lpObject)2311 void cacheHELPINFOFields(JNIEnv *env, jobject lpObject)
2312 {
2313 if (HELPINFOFc.cached) return;
2314 HELPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
2315 HELPINFOFc.cbSize = (*env)->GetFieldID(env, HELPINFOFc.clazz, "cbSize", "I");
2316 HELPINFOFc.iContextType = (*env)->GetFieldID(env, HELPINFOFc.clazz, "iContextType", "I");
2317 HELPINFOFc.iCtrlId = (*env)->GetFieldID(env, HELPINFOFc.clazz, "iCtrlId", "I");
2318 HELPINFOFc.hItemHandle = (*env)->GetFieldID(env, HELPINFOFc.clazz, "hItemHandle", "J");
2319 HELPINFOFc.dwContextId = (*env)->GetFieldID(env, HELPINFOFc.clazz, "dwContextId", "I");
2320 HELPINFOFc.x = (*env)->GetFieldID(env, HELPINFOFc.clazz, "x", "I");
2321 HELPINFOFc.y = (*env)->GetFieldID(env, HELPINFOFc.clazz, "y", "I");
2322 HELPINFOFc.cached = 1;
2323 }
2324
getHELPINFOFields(JNIEnv * env,jobject lpObject,HELPINFO * lpStruct)2325 HELPINFO *getHELPINFOFields(JNIEnv *env, jobject lpObject, HELPINFO *lpStruct)
2326 {
2327 if (!HELPINFOFc.cached) cacheHELPINFOFields(env, lpObject);
2328 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, HELPINFOFc.cbSize);
2329 lpStruct->iContextType = (*env)->GetIntField(env, lpObject, HELPINFOFc.iContextType);
2330 lpStruct->iCtrlId = (*env)->GetIntField(env, lpObject, HELPINFOFc.iCtrlId);
2331 lpStruct->hItemHandle = (HANDLE)(*env)->GetLongField(env, lpObject, HELPINFOFc.hItemHandle);
2332 lpStruct->dwContextId = (*env)->GetIntField(env, lpObject, HELPINFOFc.dwContextId);
2333 lpStruct->MousePos.x = (*env)->GetIntField(env, lpObject, HELPINFOFc.x);
2334 lpStruct->MousePos.y = (*env)->GetIntField(env, lpObject, HELPINFOFc.y);
2335 return lpStruct;
2336 }
2337
setHELPINFOFields(JNIEnv * env,jobject lpObject,HELPINFO * lpStruct)2338 void setHELPINFOFields(JNIEnv *env, jobject lpObject, HELPINFO *lpStruct)
2339 {
2340 if (!HELPINFOFc.cached) cacheHELPINFOFields(env, lpObject);
2341 (*env)->SetIntField(env, lpObject, HELPINFOFc.cbSize, (jint)lpStruct->cbSize);
2342 (*env)->SetIntField(env, lpObject, HELPINFOFc.iContextType, (jint)lpStruct->iContextType);
2343 (*env)->SetIntField(env, lpObject, HELPINFOFc.iCtrlId, (jint)lpStruct->iCtrlId);
2344 (*env)->SetLongField(env, lpObject, HELPINFOFc.hItemHandle, (jlong)lpStruct->hItemHandle);
2345 (*env)->SetIntField(env, lpObject, HELPINFOFc.dwContextId, (jint)lpStruct->dwContextId);
2346 (*env)->SetIntField(env, lpObject, HELPINFOFc.x, (jint)lpStruct->MousePos.x);
2347 (*env)->SetIntField(env, lpObject, HELPINFOFc.y, (jint)lpStruct->MousePos.y);
2348 }
2349 #endif
2350
2351 #ifndef NO_HIGHCONTRAST
2352 typedef struct HIGHCONTRAST_FID_CACHE {
2353 int cached;
2354 jclass clazz;
2355 jfieldID cbSize, dwFlags, lpszDefaultScheme;
2356 } HIGHCONTRAST_FID_CACHE;
2357
2358 HIGHCONTRAST_FID_CACHE HIGHCONTRASTFc;
2359
cacheHIGHCONTRASTFields(JNIEnv * env,jobject lpObject)2360 void cacheHIGHCONTRASTFields(JNIEnv *env, jobject lpObject)
2361 {
2362 if (HIGHCONTRASTFc.cached) return;
2363 HIGHCONTRASTFc.clazz = (*env)->GetObjectClass(env, lpObject);
2364 HIGHCONTRASTFc.cbSize = (*env)->GetFieldID(env, HIGHCONTRASTFc.clazz, "cbSize", "I");
2365 HIGHCONTRASTFc.dwFlags = (*env)->GetFieldID(env, HIGHCONTRASTFc.clazz, "dwFlags", "I");
2366 HIGHCONTRASTFc.lpszDefaultScheme = (*env)->GetFieldID(env, HIGHCONTRASTFc.clazz, "lpszDefaultScheme", "J");
2367 HIGHCONTRASTFc.cached = 1;
2368 }
2369
getHIGHCONTRASTFields(JNIEnv * env,jobject lpObject,HIGHCONTRAST * lpStruct)2370 HIGHCONTRAST *getHIGHCONTRASTFields(JNIEnv *env, jobject lpObject, HIGHCONTRAST *lpStruct)
2371 {
2372 if (!HIGHCONTRASTFc.cached) cacheHIGHCONTRASTFields(env, lpObject);
2373 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, HIGHCONTRASTFc.cbSize);
2374 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, HIGHCONTRASTFc.dwFlags);
2375 lpStruct->lpszDefaultScheme = (LPTSTR)(*env)->GetLongField(env, lpObject, HIGHCONTRASTFc.lpszDefaultScheme);
2376 return lpStruct;
2377 }
2378
setHIGHCONTRASTFields(JNIEnv * env,jobject lpObject,HIGHCONTRAST * lpStruct)2379 void setHIGHCONTRASTFields(JNIEnv *env, jobject lpObject, HIGHCONTRAST *lpStruct)
2380 {
2381 if (!HIGHCONTRASTFc.cached) cacheHIGHCONTRASTFields(env, lpObject);
2382 (*env)->SetIntField(env, lpObject, HIGHCONTRASTFc.cbSize, (jint)lpStruct->cbSize);
2383 (*env)->SetIntField(env, lpObject, HIGHCONTRASTFc.dwFlags, (jint)lpStruct->dwFlags);
2384 (*env)->SetLongField(env, lpObject, HIGHCONTRASTFc.lpszDefaultScheme, (jlong)lpStruct->lpszDefaultScheme);
2385 }
2386 #endif
2387
2388 #ifndef NO_ICONINFO
2389 typedef struct ICONINFO_FID_CACHE {
2390 int cached;
2391 jclass clazz;
2392 jfieldID fIcon, xHotspot, yHotspot, hbmMask, hbmColor;
2393 } ICONINFO_FID_CACHE;
2394
2395 ICONINFO_FID_CACHE ICONINFOFc;
2396
cacheICONINFOFields(JNIEnv * env,jobject lpObject)2397 void cacheICONINFOFields(JNIEnv *env, jobject lpObject)
2398 {
2399 if (ICONINFOFc.cached) return;
2400 ICONINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
2401 ICONINFOFc.fIcon = (*env)->GetFieldID(env, ICONINFOFc.clazz, "fIcon", "Z");
2402 ICONINFOFc.xHotspot = (*env)->GetFieldID(env, ICONINFOFc.clazz, "xHotspot", "I");
2403 ICONINFOFc.yHotspot = (*env)->GetFieldID(env, ICONINFOFc.clazz, "yHotspot", "I");
2404 ICONINFOFc.hbmMask = (*env)->GetFieldID(env, ICONINFOFc.clazz, "hbmMask", "J");
2405 ICONINFOFc.hbmColor = (*env)->GetFieldID(env, ICONINFOFc.clazz, "hbmColor", "J");
2406 ICONINFOFc.cached = 1;
2407 }
2408
getICONINFOFields(JNIEnv * env,jobject lpObject,ICONINFO * lpStruct)2409 ICONINFO *getICONINFOFields(JNIEnv *env, jobject lpObject, ICONINFO *lpStruct)
2410 {
2411 if (!ICONINFOFc.cached) cacheICONINFOFields(env, lpObject);
2412 lpStruct->fIcon = (*env)->GetBooleanField(env, lpObject, ICONINFOFc.fIcon);
2413 lpStruct->xHotspot = (*env)->GetIntField(env, lpObject, ICONINFOFc.xHotspot);
2414 lpStruct->yHotspot = (*env)->GetIntField(env, lpObject, ICONINFOFc.yHotspot);
2415 lpStruct->hbmMask = (HBITMAP)(*env)->GetLongField(env, lpObject, ICONINFOFc.hbmMask);
2416 lpStruct->hbmColor = (HBITMAP)(*env)->GetLongField(env, lpObject, ICONINFOFc.hbmColor);
2417 return lpStruct;
2418 }
2419
setICONINFOFields(JNIEnv * env,jobject lpObject,ICONINFO * lpStruct)2420 void setICONINFOFields(JNIEnv *env, jobject lpObject, ICONINFO *lpStruct)
2421 {
2422 if (!ICONINFOFc.cached) cacheICONINFOFields(env, lpObject);
2423 (*env)->SetBooleanField(env, lpObject, ICONINFOFc.fIcon, (jboolean)lpStruct->fIcon);
2424 (*env)->SetIntField(env, lpObject, ICONINFOFc.xHotspot, (jint)lpStruct->xHotspot);
2425 (*env)->SetIntField(env, lpObject, ICONINFOFc.yHotspot, (jint)lpStruct->yHotspot);
2426 (*env)->SetLongField(env, lpObject, ICONINFOFc.hbmMask, (jlong)lpStruct->hbmMask);
2427 (*env)->SetLongField(env, lpObject, ICONINFOFc.hbmColor, (jlong)lpStruct->hbmColor);
2428 }
2429 #endif
2430
2431 #ifndef NO_INITCOMMONCONTROLSEX
2432 typedef struct INITCOMMONCONTROLSEX_FID_CACHE {
2433 int cached;
2434 jclass clazz;
2435 jfieldID dwSize, dwICC;
2436 } INITCOMMONCONTROLSEX_FID_CACHE;
2437
2438 INITCOMMONCONTROLSEX_FID_CACHE INITCOMMONCONTROLSEXFc;
2439
cacheINITCOMMONCONTROLSEXFields(JNIEnv * env,jobject lpObject)2440 void cacheINITCOMMONCONTROLSEXFields(JNIEnv *env, jobject lpObject)
2441 {
2442 if (INITCOMMONCONTROLSEXFc.cached) return;
2443 INITCOMMONCONTROLSEXFc.clazz = (*env)->GetObjectClass(env, lpObject);
2444 INITCOMMONCONTROLSEXFc.dwSize = (*env)->GetFieldID(env, INITCOMMONCONTROLSEXFc.clazz, "dwSize", "I");
2445 INITCOMMONCONTROLSEXFc.dwICC = (*env)->GetFieldID(env, INITCOMMONCONTROLSEXFc.clazz, "dwICC", "I");
2446 INITCOMMONCONTROLSEXFc.cached = 1;
2447 }
2448
getINITCOMMONCONTROLSEXFields(JNIEnv * env,jobject lpObject,INITCOMMONCONTROLSEX * lpStruct)2449 INITCOMMONCONTROLSEX *getINITCOMMONCONTROLSEXFields(JNIEnv *env, jobject lpObject, INITCOMMONCONTROLSEX *lpStruct)
2450 {
2451 if (!INITCOMMONCONTROLSEXFc.cached) cacheINITCOMMONCONTROLSEXFields(env, lpObject);
2452 lpStruct->dwSize = (*env)->GetIntField(env, lpObject, INITCOMMONCONTROLSEXFc.dwSize);
2453 lpStruct->dwICC = (*env)->GetIntField(env, lpObject, INITCOMMONCONTROLSEXFc.dwICC);
2454 return lpStruct;
2455 }
2456
setINITCOMMONCONTROLSEXFields(JNIEnv * env,jobject lpObject,INITCOMMONCONTROLSEX * lpStruct)2457 void setINITCOMMONCONTROLSEXFields(JNIEnv *env, jobject lpObject, INITCOMMONCONTROLSEX *lpStruct)
2458 {
2459 if (!INITCOMMONCONTROLSEXFc.cached) cacheINITCOMMONCONTROLSEXFields(env, lpObject);
2460 (*env)->SetIntField(env, lpObject, INITCOMMONCONTROLSEXFc.dwSize, (jint)lpStruct->dwSize);
2461 (*env)->SetIntField(env, lpObject, INITCOMMONCONTROLSEXFc.dwICC, (jint)lpStruct->dwICC);
2462 }
2463 #endif
2464
2465 #ifndef NO_INPUT
2466 typedef struct INPUT_FID_CACHE {
2467 int cached;
2468 jclass clazz;
2469 jfieldID type;
2470 } INPUT_FID_CACHE;
2471
2472 INPUT_FID_CACHE INPUTFc;
2473
cacheINPUTFields(JNIEnv * env,jobject lpObject)2474 void cacheINPUTFields(JNIEnv *env, jobject lpObject)
2475 {
2476 if (INPUTFc.cached) return;
2477 INPUTFc.clazz = (*env)->GetObjectClass(env, lpObject);
2478 INPUTFc.type = (*env)->GetFieldID(env, INPUTFc.clazz, "type", "I");
2479 INPUTFc.cached = 1;
2480 }
2481
getINPUTFields(JNIEnv * env,jobject lpObject,INPUT * lpStruct)2482 INPUT *getINPUTFields(JNIEnv *env, jobject lpObject, INPUT *lpStruct)
2483 {
2484 if (!INPUTFc.cached) cacheINPUTFields(env, lpObject);
2485 lpStruct->type = (*env)->GetIntField(env, lpObject, INPUTFc.type);
2486 return lpStruct;
2487 }
2488
setINPUTFields(JNIEnv * env,jobject lpObject,INPUT * lpStruct)2489 void setINPUTFields(JNIEnv *env, jobject lpObject, INPUT *lpStruct)
2490 {
2491 if (!INPUTFc.cached) cacheINPUTFields(env, lpObject);
2492 (*env)->SetIntField(env, lpObject, INPUTFc.type, (jint)lpStruct->type);
2493 }
2494 #endif
2495
2496 #ifndef NO_KEYBDINPUT
2497 typedef struct KEYBDINPUT_FID_CACHE {
2498 int cached;
2499 jclass clazz;
2500 jfieldID wVk, wScan, dwFlags, time, dwExtraInfo;
2501 } KEYBDINPUT_FID_CACHE;
2502
2503 KEYBDINPUT_FID_CACHE KEYBDINPUTFc;
2504
cacheKEYBDINPUTFields(JNIEnv * env,jobject lpObject)2505 void cacheKEYBDINPUTFields(JNIEnv *env, jobject lpObject)
2506 {
2507 if (KEYBDINPUTFc.cached) return;
2508 KEYBDINPUTFc.clazz = (*env)->GetObjectClass(env, lpObject);
2509 KEYBDINPUTFc.wVk = (*env)->GetFieldID(env, KEYBDINPUTFc.clazz, "wVk", "S");
2510 KEYBDINPUTFc.wScan = (*env)->GetFieldID(env, KEYBDINPUTFc.clazz, "wScan", "S");
2511 KEYBDINPUTFc.dwFlags = (*env)->GetFieldID(env, KEYBDINPUTFc.clazz, "dwFlags", "I");
2512 KEYBDINPUTFc.time = (*env)->GetFieldID(env, KEYBDINPUTFc.clazz, "time", "I");
2513 KEYBDINPUTFc.dwExtraInfo = (*env)->GetFieldID(env, KEYBDINPUTFc.clazz, "dwExtraInfo", "J");
2514 KEYBDINPUTFc.cached = 1;
2515 }
2516
getKEYBDINPUTFields(JNIEnv * env,jobject lpObject,KEYBDINPUT * lpStruct)2517 KEYBDINPUT *getKEYBDINPUTFields(JNIEnv *env, jobject lpObject, KEYBDINPUT *lpStruct)
2518 {
2519 if (!KEYBDINPUTFc.cached) cacheKEYBDINPUTFields(env, lpObject);
2520 lpStruct->wVk = (*env)->GetShortField(env, lpObject, KEYBDINPUTFc.wVk);
2521 lpStruct->wScan = (*env)->GetShortField(env, lpObject, KEYBDINPUTFc.wScan);
2522 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, KEYBDINPUTFc.dwFlags);
2523 lpStruct->time = (*env)->GetIntField(env, lpObject, KEYBDINPUTFc.time);
2524 lpStruct->dwExtraInfo = (*env)->GetLongField(env, lpObject, KEYBDINPUTFc.dwExtraInfo);
2525 return lpStruct;
2526 }
2527
setKEYBDINPUTFields(JNIEnv * env,jobject lpObject,KEYBDINPUT * lpStruct)2528 void setKEYBDINPUTFields(JNIEnv *env, jobject lpObject, KEYBDINPUT *lpStruct)
2529 {
2530 if (!KEYBDINPUTFc.cached) cacheKEYBDINPUTFields(env, lpObject);
2531 (*env)->SetShortField(env, lpObject, KEYBDINPUTFc.wVk, (jshort)lpStruct->wVk);
2532 (*env)->SetShortField(env, lpObject, KEYBDINPUTFc.wScan, (jshort)lpStruct->wScan);
2533 (*env)->SetIntField(env, lpObject, KEYBDINPUTFc.dwFlags, (jint)lpStruct->dwFlags);
2534 (*env)->SetIntField(env, lpObject, KEYBDINPUTFc.time, (jint)lpStruct->time);
2535 (*env)->SetLongField(env, lpObject, KEYBDINPUTFc.dwExtraInfo, (jlong)lpStruct->dwExtraInfo);
2536 }
2537 #endif
2538
2539 #ifndef NO_LITEM
2540 typedef struct LITEM_FID_CACHE {
2541 int cached;
2542 jclass clazz;
2543 jfieldID mask, iLink, state, stateMask, szID, szUrl;
2544 } LITEM_FID_CACHE;
2545
2546 LITEM_FID_CACHE LITEMFc;
2547
cacheLITEMFields(JNIEnv * env,jobject lpObject)2548 void cacheLITEMFields(JNIEnv *env, jobject lpObject)
2549 {
2550 if (LITEMFc.cached) return;
2551 LITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
2552 LITEMFc.mask = (*env)->GetFieldID(env, LITEMFc.clazz, "mask", "I");
2553 LITEMFc.iLink = (*env)->GetFieldID(env, LITEMFc.clazz, "iLink", "I");
2554 LITEMFc.state = (*env)->GetFieldID(env, LITEMFc.clazz, "state", "I");
2555 LITEMFc.stateMask = (*env)->GetFieldID(env, LITEMFc.clazz, "stateMask", "I");
2556 LITEMFc.szID = (*env)->GetFieldID(env, LITEMFc.clazz, "szID", "[C");
2557 LITEMFc.szUrl = (*env)->GetFieldID(env, LITEMFc.clazz, "szUrl", "[C");
2558 LITEMFc.cached = 1;
2559 }
2560
getLITEMFields(JNIEnv * env,jobject lpObject,LITEM * lpStruct)2561 LITEM *getLITEMFields(JNIEnv *env, jobject lpObject, LITEM *lpStruct)
2562 {
2563 if (!LITEMFc.cached) cacheLITEMFields(env, lpObject);
2564 lpStruct->mask = (*env)->GetIntField(env, lpObject, LITEMFc.mask);
2565 lpStruct->iLink = (*env)->GetIntField(env, lpObject, LITEMFc.iLink);
2566 lpStruct->state = (*env)->GetIntField(env, lpObject, LITEMFc.state);
2567 lpStruct->stateMask = (*env)->GetIntField(env, lpObject, LITEMFc.stateMask);
2568 {
2569 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, LITEMFc.szID);
2570 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szID) / sizeof(jchar), (jchar *)lpStruct->szID);
2571 }
2572 {
2573 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, LITEMFc.szUrl);
2574 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szUrl) / sizeof(jchar), (jchar *)lpStruct->szUrl);
2575 }
2576 return lpStruct;
2577 }
2578
setLITEMFields(JNIEnv * env,jobject lpObject,LITEM * lpStruct)2579 void setLITEMFields(JNIEnv *env, jobject lpObject, LITEM *lpStruct)
2580 {
2581 if (!LITEMFc.cached) cacheLITEMFields(env, lpObject);
2582 (*env)->SetIntField(env, lpObject, LITEMFc.mask, (jint)lpStruct->mask);
2583 (*env)->SetIntField(env, lpObject, LITEMFc.iLink, (jint)lpStruct->iLink);
2584 (*env)->SetIntField(env, lpObject, LITEMFc.state, (jint)lpStruct->state);
2585 (*env)->SetIntField(env, lpObject, LITEMFc.stateMask, (jint)lpStruct->stateMask);
2586 {
2587 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, LITEMFc.szID);
2588 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szID) / sizeof(jchar), (jchar *)lpStruct->szID);
2589 }
2590 {
2591 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, LITEMFc.szUrl);
2592 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szUrl) / sizeof(jchar), (jchar *)lpStruct->szUrl);
2593 }
2594 }
2595 #endif
2596
2597 #ifndef NO_LOGBRUSH
2598 typedef struct LOGBRUSH_FID_CACHE {
2599 int cached;
2600 jclass clazz;
2601 jfieldID lbStyle, lbColor, lbHatch;
2602 } LOGBRUSH_FID_CACHE;
2603
2604 LOGBRUSH_FID_CACHE LOGBRUSHFc;
2605
cacheLOGBRUSHFields(JNIEnv * env,jobject lpObject)2606 void cacheLOGBRUSHFields(JNIEnv *env, jobject lpObject)
2607 {
2608 if (LOGBRUSHFc.cached) return;
2609 LOGBRUSHFc.clazz = (*env)->GetObjectClass(env, lpObject);
2610 LOGBRUSHFc.lbStyle = (*env)->GetFieldID(env, LOGBRUSHFc.clazz, "lbStyle", "I");
2611 LOGBRUSHFc.lbColor = (*env)->GetFieldID(env, LOGBRUSHFc.clazz, "lbColor", "I");
2612 LOGBRUSHFc.lbHatch = (*env)->GetFieldID(env, LOGBRUSHFc.clazz, "lbHatch", "J");
2613 LOGBRUSHFc.cached = 1;
2614 }
2615
getLOGBRUSHFields(JNIEnv * env,jobject lpObject,LOGBRUSH * lpStruct)2616 LOGBRUSH *getLOGBRUSHFields(JNIEnv *env, jobject lpObject, LOGBRUSH *lpStruct)
2617 {
2618 if (!LOGBRUSHFc.cached) cacheLOGBRUSHFields(env, lpObject);
2619 lpStruct->lbStyle = (*env)->GetIntField(env, lpObject, LOGBRUSHFc.lbStyle);
2620 lpStruct->lbColor = (*env)->GetIntField(env, lpObject, LOGBRUSHFc.lbColor);
2621 lpStruct->lbHatch = (*env)->GetLongField(env, lpObject, LOGBRUSHFc.lbHatch);
2622 return lpStruct;
2623 }
2624
setLOGBRUSHFields(JNIEnv * env,jobject lpObject,LOGBRUSH * lpStruct)2625 void setLOGBRUSHFields(JNIEnv *env, jobject lpObject, LOGBRUSH *lpStruct)
2626 {
2627 if (!LOGBRUSHFc.cached) cacheLOGBRUSHFields(env, lpObject);
2628 (*env)->SetIntField(env, lpObject, LOGBRUSHFc.lbStyle, (jint)lpStruct->lbStyle);
2629 (*env)->SetIntField(env, lpObject, LOGBRUSHFc.lbColor, (jint)lpStruct->lbColor);
2630 (*env)->SetLongField(env, lpObject, LOGBRUSHFc.lbHatch, (jlong)lpStruct->lbHatch);
2631 }
2632 #endif
2633
2634 #ifndef NO_LOGFONT
2635 typedef struct LOGFONT_FID_CACHE {
2636 int cached;
2637 jclass clazz;
2638 jfieldID lfHeight, lfWidth, lfEscapement, lfOrientation, lfWeight, lfItalic, lfUnderline, lfStrikeOut, lfCharSet, lfOutPrecision, lfClipPrecision, lfQuality, lfPitchAndFamily, lfFaceName;
2639 } LOGFONT_FID_CACHE;
2640
2641 LOGFONT_FID_CACHE LOGFONTFc;
2642
cacheLOGFONTFields(JNIEnv * env,jobject lpObject)2643 void cacheLOGFONTFields(JNIEnv *env, jobject lpObject)
2644 {
2645 if (LOGFONTFc.cached) return;
2646 LOGFONTFc.clazz = (*env)->GetObjectClass(env, lpObject);
2647 LOGFONTFc.lfHeight = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfHeight", "I");
2648 LOGFONTFc.lfWidth = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfWidth", "I");
2649 LOGFONTFc.lfEscapement = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfEscapement", "I");
2650 LOGFONTFc.lfOrientation = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfOrientation", "I");
2651 LOGFONTFc.lfWeight = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfWeight", "I");
2652 LOGFONTFc.lfItalic = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfItalic", "B");
2653 LOGFONTFc.lfUnderline = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfUnderline", "B");
2654 LOGFONTFc.lfStrikeOut = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfStrikeOut", "B");
2655 LOGFONTFc.lfCharSet = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfCharSet", "B");
2656 LOGFONTFc.lfOutPrecision = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfOutPrecision", "B");
2657 LOGFONTFc.lfClipPrecision = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfClipPrecision", "B");
2658 LOGFONTFc.lfQuality = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfQuality", "B");
2659 LOGFONTFc.lfPitchAndFamily = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfPitchAndFamily", "B");
2660 LOGFONTFc.lfFaceName = (*env)->GetFieldID(env, LOGFONTFc.clazz, "lfFaceName", "[C");
2661 LOGFONTFc.cached = 1;
2662 }
2663
getLOGFONTFields(JNIEnv * env,jobject lpObject,LOGFONT * lpStruct)2664 LOGFONT *getLOGFONTFields(JNIEnv *env, jobject lpObject, LOGFONT *lpStruct)
2665 {
2666 if (!LOGFONTFc.cached) cacheLOGFONTFields(env, lpObject);
2667 lpStruct->lfHeight = (*env)->GetIntField(env, lpObject, LOGFONTFc.lfHeight);
2668 lpStruct->lfWidth = (*env)->GetIntField(env, lpObject, LOGFONTFc.lfWidth);
2669 lpStruct->lfEscapement = (*env)->GetIntField(env, lpObject, LOGFONTFc.lfEscapement);
2670 lpStruct->lfOrientation = (*env)->GetIntField(env, lpObject, LOGFONTFc.lfOrientation);
2671 lpStruct->lfWeight = (*env)->GetIntField(env, lpObject, LOGFONTFc.lfWeight);
2672 lpStruct->lfItalic = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfItalic);
2673 lpStruct->lfUnderline = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfUnderline);
2674 lpStruct->lfStrikeOut = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfStrikeOut);
2675 lpStruct->lfCharSet = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfCharSet);
2676 lpStruct->lfOutPrecision = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfOutPrecision);
2677 lpStruct->lfClipPrecision = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfClipPrecision);
2678 lpStruct->lfQuality = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfQuality);
2679 lpStruct->lfPitchAndFamily = (*env)->GetByteField(env, lpObject, LOGFONTFc.lfPitchAndFamily);
2680 {
2681 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, LOGFONTFc.lfFaceName);
2682 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->lfFaceName) / sizeof(jchar), (jchar *)lpStruct->lfFaceName);
2683 }
2684 return lpStruct;
2685 }
2686
setLOGFONTFields(JNIEnv * env,jobject lpObject,LOGFONT * lpStruct)2687 void setLOGFONTFields(JNIEnv *env, jobject lpObject, LOGFONT *lpStruct)
2688 {
2689 if (!LOGFONTFc.cached) cacheLOGFONTFields(env, lpObject);
2690 (*env)->SetIntField(env, lpObject, LOGFONTFc.lfHeight, (jint)lpStruct->lfHeight);
2691 (*env)->SetIntField(env, lpObject, LOGFONTFc.lfWidth, (jint)lpStruct->lfWidth);
2692 (*env)->SetIntField(env, lpObject, LOGFONTFc.lfEscapement, (jint)lpStruct->lfEscapement);
2693 (*env)->SetIntField(env, lpObject, LOGFONTFc.lfOrientation, (jint)lpStruct->lfOrientation);
2694 (*env)->SetIntField(env, lpObject, LOGFONTFc.lfWeight, (jint)lpStruct->lfWeight);
2695 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfItalic, (jbyte)lpStruct->lfItalic);
2696 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfUnderline, (jbyte)lpStruct->lfUnderline);
2697 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfStrikeOut, (jbyte)lpStruct->lfStrikeOut);
2698 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfCharSet, (jbyte)lpStruct->lfCharSet);
2699 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfOutPrecision, (jbyte)lpStruct->lfOutPrecision);
2700 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfClipPrecision, (jbyte)lpStruct->lfClipPrecision);
2701 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfQuality, (jbyte)lpStruct->lfQuality);
2702 (*env)->SetByteField(env, lpObject, LOGFONTFc.lfPitchAndFamily, (jbyte)lpStruct->lfPitchAndFamily);
2703 {
2704 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, LOGFONTFc.lfFaceName);
2705 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->lfFaceName) / sizeof(jchar), (jchar *)lpStruct->lfFaceName);
2706 }
2707 }
2708 #endif
2709
2710 #ifndef NO_LOGPEN
2711 typedef struct LOGPEN_FID_CACHE {
2712 int cached;
2713 jclass clazz;
2714 jfieldID lopnStyle, x, y, lopnColor;
2715 } LOGPEN_FID_CACHE;
2716
2717 LOGPEN_FID_CACHE LOGPENFc;
2718
cacheLOGPENFields(JNIEnv * env,jobject lpObject)2719 void cacheLOGPENFields(JNIEnv *env, jobject lpObject)
2720 {
2721 if (LOGPENFc.cached) return;
2722 LOGPENFc.clazz = (*env)->GetObjectClass(env, lpObject);
2723 LOGPENFc.lopnStyle = (*env)->GetFieldID(env, LOGPENFc.clazz, "lopnStyle", "I");
2724 LOGPENFc.x = (*env)->GetFieldID(env, LOGPENFc.clazz, "x", "I");
2725 LOGPENFc.y = (*env)->GetFieldID(env, LOGPENFc.clazz, "y", "I");
2726 LOGPENFc.lopnColor = (*env)->GetFieldID(env, LOGPENFc.clazz, "lopnColor", "I");
2727 LOGPENFc.cached = 1;
2728 }
2729
getLOGPENFields(JNIEnv * env,jobject lpObject,LOGPEN * lpStruct)2730 LOGPEN *getLOGPENFields(JNIEnv *env, jobject lpObject, LOGPEN *lpStruct)
2731 {
2732 if (!LOGPENFc.cached) cacheLOGPENFields(env, lpObject);
2733 lpStruct->lopnStyle = (*env)->GetIntField(env, lpObject, LOGPENFc.lopnStyle);
2734 lpStruct->lopnWidth.x = (*env)->GetIntField(env, lpObject, LOGPENFc.x);
2735 lpStruct->lopnWidth.y = (*env)->GetIntField(env, lpObject, LOGPENFc.y);
2736 lpStruct->lopnColor = (*env)->GetIntField(env, lpObject, LOGPENFc.lopnColor);
2737 return lpStruct;
2738 }
2739
setLOGPENFields(JNIEnv * env,jobject lpObject,LOGPEN * lpStruct)2740 void setLOGPENFields(JNIEnv *env, jobject lpObject, LOGPEN *lpStruct)
2741 {
2742 if (!LOGPENFc.cached) cacheLOGPENFields(env, lpObject);
2743 (*env)->SetIntField(env, lpObject, LOGPENFc.lopnStyle, (jint)lpStruct->lopnStyle);
2744 (*env)->SetIntField(env, lpObject, LOGPENFc.x, (jint)lpStruct->lopnWidth.x);
2745 (*env)->SetIntField(env, lpObject, LOGPENFc.y, (jint)lpStruct->lopnWidth.y);
2746 (*env)->SetIntField(env, lpObject, LOGPENFc.lopnColor, (jint)lpStruct->lopnColor);
2747 }
2748 #endif
2749
2750 #ifndef NO_LVCOLUMN
2751 typedef struct LVCOLUMN_FID_CACHE {
2752 int cached;
2753 jclass clazz;
2754 jfieldID mask, fmt, cx, pszText, cchTextMax, iSubItem, iImage, iOrder;
2755 } LVCOLUMN_FID_CACHE;
2756
2757 LVCOLUMN_FID_CACHE LVCOLUMNFc;
2758
cacheLVCOLUMNFields(JNIEnv * env,jobject lpObject)2759 void cacheLVCOLUMNFields(JNIEnv *env, jobject lpObject)
2760 {
2761 if (LVCOLUMNFc.cached) return;
2762 LVCOLUMNFc.clazz = (*env)->GetObjectClass(env, lpObject);
2763 LVCOLUMNFc.mask = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "mask", "I");
2764 LVCOLUMNFc.fmt = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "fmt", "I");
2765 LVCOLUMNFc.cx = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "cx", "I");
2766 LVCOLUMNFc.pszText = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "pszText", "J");
2767 LVCOLUMNFc.cchTextMax = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "cchTextMax", "I");
2768 LVCOLUMNFc.iSubItem = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "iSubItem", "I");
2769 LVCOLUMNFc.iImage = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "iImage", "I");
2770 LVCOLUMNFc.iOrder = (*env)->GetFieldID(env, LVCOLUMNFc.clazz, "iOrder", "I");
2771 LVCOLUMNFc.cached = 1;
2772 }
2773
getLVCOLUMNFields(JNIEnv * env,jobject lpObject,LVCOLUMN * lpStruct)2774 LVCOLUMN *getLVCOLUMNFields(JNIEnv *env, jobject lpObject, LVCOLUMN *lpStruct)
2775 {
2776 if (!LVCOLUMNFc.cached) cacheLVCOLUMNFields(env, lpObject);
2777 lpStruct->mask = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.mask);
2778 lpStruct->fmt = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.fmt);
2779 lpStruct->cx = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.cx);
2780 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, LVCOLUMNFc.pszText);
2781 lpStruct->cchTextMax = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.cchTextMax);
2782 lpStruct->iSubItem = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.iSubItem);
2783 lpStruct->iImage = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.iImage);
2784 lpStruct->iOrder = (*env)->GetIntField(env, lpObject, LVCOLUMNFc.iOrder);
2785 return lpStruct;
2786 }
2787
setLVCOLUMNFields(JNIEnv * env,jobject lpObject,LVCOLUMN * lpStruct)2788 void setLVCOLUMNFields(JNIEnv *env, jobject lpObject, LVCOLUMN *lpStruct)
2789 {
2790 if (!LVCOLUMNFc.cached) cacheLVCOLUMNFields(env, lpObject);
2791 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.mask, (jint)lpStruct->mask);
2792 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.fmt, (jint)lpStruct->fmt);
2793 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.cx, (jint)lpStruct->cx);
2794 (*env)->SetLongField(env, lpObject, LVCOLUMNFc.pszText, (jlong)lpStruct->pszText);
2795 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.cchTextMax, (jint)lpStruct->cchTextMax);
2796 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.iSubItem, (jint)lpStruct->iSubItem);
2797 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.iImage, (jint)lpStruct->iImage);
2798 (*env)->SetIntField(env, lpObject, LVCOLUMNFc.iOrder, (jint)lpStruct->iOrder);
2799 }
2800 #endif
2801
2802 #ifndef NO_LVHITTESTINFO
2803 typedef struct LVHITTESTINFO_FID_CACHE {
2804 int cached;
2805 jclass clazz;
2806 jfieldID x, y, flags, iItem, iSubItem;
2807 } LVHITTESTINFO_FID_CACHE;
2808
2809 LVHITTESTINFO_FID_CACHE LVHITTESTINFOFc;
2810
cacheLVHITTESTINFOFields(JNIEnv * env,jobject lpObject)2811 void cacheLVHITTESTINFOFields(JNIEnv *env, jobject lpObject)
2812 {
2813 if (LVHITTESTINFOFc.cached) return;
2814 LVHITTESTINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
2815 LVHITTESTINFOFc.x = (*env)->GetFieldID(env, LVHITTESTINFOFc.clazz, "x", "I");
2816 LVHITTESTINFOFc.y = (*env)->GetFieldID(env, LVHITTESTINFOFc.clazz, "y", "I");
2817 LVHITTESTINFOFc.flags = (*env)->GetFieldID(env, LVHITTESTINFOFc.clazz, "flags", "I");
2818 LVHITTESTINFOFc.iItem = (*env)->GetFieldID(env, LVHITTESTINFOFc.clazz, "iItem", "I");
2819 LVHITTESTINFOFc.iSubItem = (*env)->GetFieldID(env, LVHITTESTINFOFc.clazz, "iSubItem", "I");
2820 LVHITTESTINFOFc.cached = 1;
2821 }
2822
getLVHITTESTINFOFields(JNIEnv * env,jobject lpObject,LVHITTESTINFO * lpStruct)2823 LVHITTESTINFO *getLVHITTESTINFOFields(JNIEnv *env, jobject lpObject, LVHITTESTINFO *lpStruct)
2824 {
2825 if (!LVHITTESTINFOFc.cached) cacheLVHITTESTINFOFields(env, lpObject);
2826 lpStruct->pt.x = (*env)->GetIntField(env, lpObject, LVHITTESTINFOFc.x);
2827 lpStruct->pt.y = (*env)->GetIntField(env, lpObject, LVHITTESTINFOFc.y);
2828 lpStruct->flags = (*env)->GetIntField(env, lpObject, LVHITTESTINFOFc.flags);
2829 lpStruct->iItem = (*env)->GetIntField(env, lpObject, LVHITTESTINFOFc.iItem);
2830 lpStruct->iSubItem = (*env)->GetIntField(env, lpObject, LVHITTESTINFOFc.iSubItem);
2831 return lpStruct;
2832 }
2833
setLVHITTESTINFOFields(JNIEnv * env,jobject lpObject,LVHITTESTINFO * lpStruct)2834 void setLVHITTESTINFOFields(JNIEnv *env, jobject lpObject, LVHITTESTINFO *lpStruct)
2835 {
2836 if (!LVHITTESTINFOFc.cached) cacheLVHITTESTINFOFields(env, lpObject);
2837 (*env)->SetIntField(env, lpObject, LVHITTESTINFOFc.x, (jint)lpStruct->pt.x);
2838 (*env)->SetIntField(env, lpObject, LVHITTESTINFOFc.y, (jint)lpStruct->pt.y);
2839 (*env)->SetIntField(env, lpObject, LVHITTESTINFOFc.flags, (jint)lpStruct->flags);
2840 (*env)->SetIntField(env, lpObject, LVHITTESTINFOFc.iItem, (jint)lpStruct->iItem);
2841 (*env)->SetIntField(env, lpObject, LVHITTESTINFOFc.iSubItem, (jint)lpStruct->iSubItem);
2842 }
2843 #endif
2844
2845 #ifndef NO_LVINSERTMARK
2846 typedef struct LVINSERTMARK_FID_CACHE {
2847 int cached;
2848 jclass clazz;
2849 jfieldID cbSize, dwFlags, iItem, dwReserved;
2850 } LVINSERTMARK_FID_CACHE;
2851
2852 LVINSERTMARK_FID_CACHE LVINSERTMARKFc;
2853
cacheLVINSERTMARKFields(JNIEnv * env,jobject lpObject)2854 void cacheLVINSERTMARKFields(JNIEnv *env, jobject lpObject)
2855 {
2856 if (LVINSERTMARKFc.cached) return;
2857 LVINSERTMARKFc.clazz = (*env)->GetObjectClass(env, lpObject);
2858 LVINSERTMARKFc.cbSize = (*env)->GetFieldID(env, LVINSERTMARKFc.clazz, "cbSize", "I");
2859 LVINSERTMARKFc.dwFlags = (*env)->GetFieldID(env, LVINSERTMARKFc.clazz, "dwFlags", "I");
2860 LVINSERTMARKFc.iItem = (*env)->GetFieldID(env, LVINSERTMARKFc.clazz, "iItem", "I");
2861 LVINSERTMARKFc.dwReserved = (*env)->GetFieldID(env, LVINSERTMARKFc.clazz, "dwReserved", "I");
2862 LVINSERTMARKFc.cached = 1;
2863 }
2864
getLVINSERTMARKFields(JNIEnv * env,jobject lpObject,LVINSERTMARK * lpStruct)2865 LVINSERTMARK *getLVINSERTMARKFields(JNIEnv *env, jobject lpObject, LVINSERTMARK *lpStruct)
2866 {
2867 if (!LVINSERTMARKFc.cached) cacheLVINSERTMARKFields(env, lpObject);
2868 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, LVINSERTMARKFc.cbSize);
2869 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, LVINSERTMARKFc.dwFlags);
2870 lpStruct->iItem = (*env)->GetIntField(env, lpObject, LVINSERTMARKFc.iItem);
2871 lpStruct->dwReserved = (*env)->GetIntField(env, lpObject, LVINSERTMARKFc.dwReserved);
2872 return lpStruct;
2873 }
2874
setLVINSERTMARKFields(JNIEnv * env,jobject lpObject,LVINSERTMARK * lpStruct)2875 void setLVINSERTMARKFields(JNIEnv *env, jobject lpObject, LVINSERTMARK *lpStruct)
2876 {
2877 if (!LVINSERTMARKFc.cached) cacheLVINSERTMARKFields(env, lpObject);
2878 (*env)->SetIntField(env, lpObject, LVINSERTMARKFc.cbSize, (jint)lpStruct->cbSize);
2879 (*env)->SetIntField(env, lpObject, LVINSERTMARKFc.dwFlags, (jint)lpStruct->dwFlags);
2880 (*env)->SetIntField(env, lpObject, LVINSERTMARKFc.iItem, (jint)lpStruct->iItem);
2881 (*env)->SetIntField(env, lpObject, LVINSERTMARKFc.dwReserved, (jint)lpStruct->dwReserved);
2882 }
2883 #endif
2884
2885 #ifndef NO_LVITEM
2886 typedef struct LVITEM_FID_CACHE {
2887 int cached;
2888 jclass clazz;
2889 jfieldID mask, iItem, iSubItem, state, stateMask, pszText, cchTextMax, iImage, lParam, iIndent, iGroupId, cColumns, puColumns;
2890 } LVITEM_FID_CACHE;
2891
2892 LVITEM_FID_CACHE LVITEMFc;
2893
cacheLVITEMFields(JNIEnv * env,jobject lpObject)2894 void cacheLVITEMFields(JNIEnv *env, jobject lpObject)
2895 {
2896 if (LVITEMFc.cached) return;
2897 LVITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
2898 LVITEMFc.mask = (*env)->GetFieldID(env, LVITEMFc.clazz, "mask", "I");
2899 LVITEMFc.iItem = (*env)->GetFieldID(env, LVITEMFc.clazz, "iItem", "I");
2900 LVITEMFc.iSubItem = (*env)->GetFieldID(env, LVITEMFc.clazz, "iSubItem", "I");
2901 LVITEMFc.state = (*env)->GetFieldID(env, LVITEMFc.clazz, "state", "I");
2902 LVITEMFc.stateMask = (*env)->GetFieldID(env, LVITEMFc.clazz, "stateMask", "I");
2903 LVITEMFc.pszText = (*env)->GetFieldID(env, LVITEMFc.clazz, "pszText", "J");
2904 LVITEMFc.cchTextMax = (*env)->GetFieldID(env, LVITEMFc.clazz, "cchTextMax", "I");
2905 LVITEMFc.iImage = (*env)->GetFieldID(env, LVITEMFc.clazz, "iImage", "I");
2906 LVITEMFc.lParam = (*env)->GetFieldID(env, LVITEMFc.clazz, "lParam", "J");
2907 LVITEMFc.iIndent = (*env)->GetFieldID(env, LVITEMFc.clazz, "iIndent", "I");
2908 LVITEMFc.iGroupId = (*env)->GetFieldID(env, LVITEMFc.clazz, "iGroupId", "I");
2909 LVITEMFc.cColumns = (*env)->GetFieldID(env, LVITEMFc.clazz, "cColumns", "I");
2910 LVITEMFc.puColumns = (*env)->GetFieldID(env, LVITEMFc.clazz, "puColumns", "J");
2911 LVITEMFc.cached = 1;
2912 }
2913
getLVITEMFields(JNIEnv * env,jobject lpObject,LVITEM * lpStruct)2914 LVITEM *getLVITEMFields(JNIEnv *env, jobject lpObject, LVITEM *lpStruct)
2915 {
2916 if (!LVITEMFc.cached) cacheLVITEMFields(env, lpObject);
2917 lpStruct->mask = (*env)->GetIntField(env, lpObject, LVITEMFc.mask);
2918 lpStruct->iItem = (*env)->GetIntField(env, lpObject, LVITEMFc.iItem);
2919 lpStruct->iSubItem = (*env)->GetIntField(env, lpObject, LVITEMFc.iSubItem);
2920 lpStruct->state = (*env)->GetIntField(env, lpObject, LVITEMFc.state);
2921 lpStruct->stateMask = (*env)->GetIntField(env, lpObject, LVITEMFc.stateMask);
2922 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, LVITEMFc.pszText);
2923 lpStruct->cchTextMax = (*env)->GetIntField(env, lpObject, LVITEMFc.cchTextMax);
2924 lpStruct->iImage = (*env)->GetIntField(env, lpObject, LVITEMFc.iImage);
2925 lpStruct->lParam = (*env)->GetLongField(env, lpObject, LVITEMFc.lParam);
2926 lpStruct->iIndent = (*env)->GetIntField(env, lpObject, LVITEMFc.iIndent);
2927 lpStruct->iGroupId = (*env)->GetIntField(env, lpObject, LVITEMFc.iGroupId);
2928 lpStruct->cColumns = (*env)->GetIntField(env, lpObject, LVITEMFc.cColumns);
2929 lpStruct->puColumns = (PUINT)(*env)->GetLongField(env, lpObject, LVITEMFc.puColumns);
2930 return lpStruct;
2931 }
2932
setLVITEMFields(JNIEnv * env,jobject lpObject,LVITEM * lpStruct)2933 void setLVITEMFields(JNIEnv *env, jobject lpObject, LVITEM *lpStruct)
2934 {
2935 if (!LVITEMFc.cached) cacheLVITEMFields(env, lpObject);
2936 (*env)->SetIntField(env, lpObject, LVITEMFc.mask, (jint)lpStruct->mask);
2937 (*env)->SetIntField(env, lpObject, LVITEMFc.iItem, (jint)lpStruct->iItem);
2938 (*env)->SetIntField(env, lpObject, LVITEMFc.iSubItem, (jint)lpStruct->iSubItem);
2939 (*env)->SetIntField(env, lpObject, LVITEMFc.state, (jint)lpStruct->state);
2940 (*env)->SetIntField(env, lpObject, LVITEMFc.stateMask, (jint)lpStruct->stateMask);
2941 (*env)->SetLongField(env, lpObject, LVITEMFc.pszText, (jlong)lpStruct->pszText);
2942 (*env)->SetIntField(env, lpObject, LVITEMFc.cchTextMax, (jint)lpStruct->cchTextMax);
2943 (*env)->SetIntField(env, lpObject, LVITEMFc.iImage, (jint)lpStruct->iImage);
2944 (*env)->SetLongField(env, lpObject, LVITEMFc.lParam, (jlong)lpStruct->lParam);
2945 (*env)->SetIntField(env, lpObject, LVITEMFc.iIndent, (jint)lpStruct->iIndent);
2946 (*env)->SetIntField(env, lpObject, LVITEMFc.iGroupId, (jint)lpStruct->iGroupId);
2947 (*env)->SetIntField(env, lpObject, LVITEMFc.cColumns, (jint)lpStruct->cColumns);
2948 (*env)->SetLongField(env, lpObject, LVITEMFc.puColumns, (jlong)lpStruct->puColumns);
2949 }
2950 #endif
2951
2952 #ifndef NO_MARGINS
2953 typedef struct MARGINS_FID_CACHE {
2954 int cached;
2955 jclass clazz;
2956 jfieldID cxLeftWidth, cxRightWidth, cyTopHeight, cyBottomHeight;
2957 } MARGINS_FID_CACHE;
2958
2959 MARGINS_FID_CACHE MARGINSFc;
2960
cacheMARGINSFields(JNIEnv * env,jobject lpObject)2961 void cacheMARGINSFields(JNIEnv *env, jobject lpObject)
2962 {
2963 if (MARGINSFc.cached) return;
2964 MARGINSFc.clazz = (*env)->GetObjectClass(env, lpObject);
2965 MARGINSFc.cxLeftWidth = (*env)->GetFieldID(env, MARGINSFc.clazz, "cxLeftWidth", "I");
2966 MARGINSFc.cxRightWidth = (*env)->GetFieldID(env, MARGINSFc.clazz, "cxRightWidth", "I");
2967 MARGINSFc.cyTopHeight = (*env)->GetFieldID(env, MARGINSFc.clazz, "cyTopHeight", "I");
2968 MARGINSFc.cyBottomHeight = (*env)->GetFieldID(env, MARGINSFc.clazz, "cyBottomHeight", "I");
2969 MARGINSFc.cached = 1;
2970 }
2971
getMARGINSFields(JNIEnv * env,jobject lpObject,MARGINS * lpStruct)2972 MARGINS *getMARGINSFields(JNIEnv *env, jobject lpObject, MARGINS *lpStruct)
2973 {
2974 if (!MARGINSFc.cached) cacheMARGINSFields(env, lpObject);
2975 lpStruct->cxLeftWidth = (*env)->GetIntField(env, lpObject, MARGINSFc.cxLeftWidth);
2976 lpStruct->cxRightWidth = (*env)->GetIntField(env, lpObject, MARGINSFc.cxRightWidth);
2977 lpStruct->cyTopHeight = (*env)->GetIntField(env, lpObject, MARGINSFc.cyTopHeight);
2978 lpStruct->cyBottomHeight = (*env)->GetIntField(env, lpObject, MARGINSFc.cyBottomHeight);
2979 return lpStruct;
2980 }
2981
setMARGINSFields(JNIEnv * env,jobject lpObject,MARGINS * lpStruct)2982 void setMARGINSFields(JNIEnv *env, jobject lpObject, MARGINS *lpStruct)
2983 {
2984 if (!MARGINSFc.cached) cacheMARGINSFields(env, lpObject);
2985 (*env)->SetIntField(env, lpObject, MARGINSFc.cxLeftWidth, (jint)lpStruct->cxLeftWidth);
2986 (*env)->SetIntField(env, lpObject, MARGINSFc.cxRightWidth, (jint)lpStruct->cxRightWidth);
2987 (*env)->SetIntField(env, lpObject, MARGINSFc.cyTopHeight, (jint)lpStruct->cyTopHeight);
2988 (*env)->SetIntField(env, lpObject, MARGINSFc.cyBottomHeight, (jint)lpStruct->cyBottomHeight);
2989 }
2990 #endif
2991
2992 #ifndef NO_MCHITTESTINFO
2993 typedef struct MCHITTESTINFO_FID_CACHE {
2994 int cached;
2995 jclass clazz;
2996 jfieldID cbSize, pt, uHit, st;
2997 } MCHITTESTINFO_FID_CACHE;
2998
2999 MCHITTESTINFO_FID_CACHE MCHITTESTINFOFc;
3000
cacheMCHITTESTINFOFields(JNIEnv * env,jobject lpObject)3001 void cacheMCHITTESTINFOFields(JNIEnv *env, jobject lpObject)
3002 {
3003 if (MCHITTESTINFOFc.cached) return;
3004 MCHITTESTINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3005 MCHITTESTINFOFc.cbSize = (*env)->GetFieldID(env, MCHITTESTINFOFc.clazz, "cbSize", "I");
3006 MCHITTESTINFOFc.pt = (*env)->GetFieldID(env, MCHITTESTINFOFc.clazz, "pt", "Lorg/eclipse/swt/internal/win32/POINT;");
3007 MCHITTESTINFOFc.uHit = (*env)->GetFieldID(env, MCHITTESTINFOFc.clazz, "uHit", "I");
3008 MCHITTESTINFOFc.st = (*env)->GetFieldID(env, MCHITTESTINFOFc.clazz, "st", "Lorg/eclipse/swt/internal/win32/SYSTEMTIME;");
3009 MCHITTESTINFOFc.cached = 1;
3010 }
3011
getMCHITTESTINFOFields(JNIEnv * env,jobject lpObject,MCHITTESTINFO * lpStruct)3012 MCHITTESTINFO *getMCHITTESTINFOFields(JNIEnv *env, jobject lpObject, MCHITTESTINFO *lpStruct)
3013 {
3014 if (!MCHITTESTINFOFc.cached) cacheMCHITTESTINFOFields(env, lpObject);
3015 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, MCHITTESTINFOFc.cbSize);
3016 {
3017 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, MCHITTESTINFOFc.pt);
3018 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->pt);
3019 }
3020 lpStruct->uHit = (*env)->GetIntField(env, lpObject, MCHITTESTINFOFc.uHit);
3021 {
3022 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, MCHITTESTINFOFc.st);
3023 if (lpObject1 != NULL) getSYSTEMTIMEFields(env, lpObject1, &lpStruct->st);
3024 }
3025 return lpStruct;
3026 }
3027
setMCHITTESTINFOFields(JNIEnv * env,jobject lpObject,MCHITTESTINFO * lpStruct)3028 void setMCHITTESTINFOFields(JNIEnv *env, jobject lpObject, MCHITTESTINFO *lpStruct)
3029 {
3030 if (!MCHITTESTINFOFc.cached) cacheMCHITTESTINFOFields(env, lpObject);
3031 (*env)->SetIntField(env, lpObject, MCHITTESTINFOFc.cbSize, (jint)lpStruct->cbSize);
3032 {
3033 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, MCHITTESTINFOFc.pt);
3034 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->pt);
3035 }
3036 (*env)->SetIntField(env, lpObject, MCHITTESTINFOFc.uHit, (jint)lpStruct->uHit);
3037 {
3038 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, MCHITTESTINFOFc.st);
3039 if (lpObject1 != NULL) setSYSTEMTIMEFields(env, lpObject1, &lpStruct->st);
3040 }
3041 }
3042 #endif
3043
3044 #ifndef NO_MEASUREITEMSTRUCT
3045 typedef struct MEASUREITEMSTRUCT_FID_CACHE {
3046 int cached;
3047 jclass clazz;
3048 jfieldID CtlType, CtlID, itemID, itemWidth, itemHeight, itemData;
3049 } MEASUREITEMSTRUCT_FID_CACHE;
3050
3051 MEASUREITEMSTRUCT_FID_CACHE MEASUREITEMSTRUCTFc;
3052
cacheMEASUREITEMSTRUCTFields(JNIEnv * env,jobject lpObject)3053 void cacheMEASUREITEMSTRUCTFields(JNIEnv *env, jobject lpObject)
3054 {
3055 if (MEASUREITEMSTRUCTFc.cached) return;
3056 MEASUREITEMSTRUCTFc.clazz = (*env)->GetObjectClass(env, lpObject);
3057 MEASUREITEMSTRUCTFc.CtlType = (*env)->GetFieldID(env, MEASUREITEMSTRUCTFc.clazz, "CtlType", "I");
3058 MEASUREITEMSTRUCTFc.CtlID = (*env)->GetFieldID(env, MEASUREITEMSTRUCTFc.clazz, "CtlID", "I");
3059 MEASUREITEMSTRUCTFc.itemID = (*env)->GetFieldID(env, MEASUREITEMSTRUCTFc.clazz, "itemID", "I");
3060 MEASUREITEMSTRUCTFc.itemWidth = (*env)->GetFieldID(env, MEASUREITEMSTRUCTFc.clazz, "itemWidth", "I");
3061 MEASUREITEMSTRUCTFc.itemHeight = (*env)->GetFieldID(env, MEASUREITEMSTRUCTFc.clazz, "itemHeight", "I");
3062 MEASUREITEMSTRUCTFc.itemData = (*env)->GetFieldID(env, MEASUREITEMSTRUCTFc.clazz, "itemData", "J");
3063 MEASUREITEMSTRUCTFc.cached = 1;
3064 }
3065
getMEASUREITEMSTRUCTFields(JNIEnv * env,jobject lpObject,MEASUREITEMSTRUCT * lpStruct)3066 MEASUREITEMSTRUCT *getMEASUREITEMSTRUCTFields(JNIEnv *env, jobject lpObject, MEASUREITEMSTRUCT *lpStruct)
3067 {
3068 if (!MEASUREITEMSTRUCTFc.cached) cacheMEASUREITEMSTRUCTFields(env, lpObject);
3069 lpStruct->CtlType = (*env)->GetIntField(env, lpObject, MEASUREITEMSTRUCTFc.CtlType);
3070 lpStruct->CtlID = (*env)->GetIntField(env, lpObject, MEASUREITEMSTRUCTFc.CtlID);
3071 lpStruct->itemID = (*env)->GetIntField(env, lpObject, MEASUREITEMSTRUCTFc.itemID);
3072 lpStruct->itemWidth = (*env)->GetIntField(env, lpObject, MEASUREITEMSTRUCTFc.itemWidth);
3073 lpStruct->itemHeight = (*env)->GetIntField(env, lpObject, MEASUREITEMSTRUCTFc.itemHeight);
3074 lpStruct->itemData = (*env)->GetLongField(env, lpObject, MEASUREITEMSTRUCTFc.itemData);
3075 return lpStruct;
3076 }
3077
setMEASUREITEMSTRUCTFields(JNIEnv * env,jobject lpObject,MEASUREITEMSTRUCT * lpStruct)3078 void setMEASUREITEMSTRUCTFields(JNIEnv *env, jobject lpObject, MEASUREITEMSTRUCT *lpStruct)
3079 {
3080 if (!MEASUREITEMSTRUCTFc.cached) cacheMEASUREITEMSTRUCTFields(env, lpObject);
3081 (*env)->SetIntField(env, lpObject, MEASUREITEMSTRUCTFc.CtlType, (jint)lpStruct->CtlType);
3082 (*env)->SetIntField(env, lpObject, MEASUREITEMSTRUCTFc.CtlID, (jint)lpStruct->CtlID);
3083 (*env)->SetIntField(env, lpObject, MEASUREITEMSTRUCTFc.itemID, (jint)lpStruct->itemID);
3084 (*env)->SetIntField(env, lpObject, MEASUREITEMSTRUCTFc.itemWidth, (jint)lpStruct->itemWidth);
3085 (*env)->SetIntField(env, lpObject, MEASUREITEMSTRUCTFc.itemHeight, (jint)lpStruct->itemHeight);
3086 (*env)->SetLongField(env, lpObject, MEASUREITEMSTRUCTFc.itemData, (jlong)lpStruct->itemData);
3087 }
3088 #endif
3089
3090 #ifndef NO_MENUBARINFO
3091 typedef struct MENUBARINFO_FID_CACHE {
3092 int cached;
3093 jclass clazz;
3094 jfieldID cbSize, left, top, right, bottom, hMenu, hwndMenu, fBarFocused, fFocused;
3095 } MENUBARINFO_FID_CACHE;
3096
3097 MENUBARINFO_FID_CACHE MENUBARINFOFc;
3098
cacheMENUBARINFOFields(JNIEnv * env,jobject lpObject)3099 void cacheMENUBARINFOFields(JNIEnv *env, jobject lpObject)
3100 {
3101 if (MENUBARINFOFc.cached) return;
3102 MENUBARINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3103 MENUBARINFOFc.cbSize = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "cbSize", "I");
3104 MENUBARINFOFc.left = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "left", "I");
3105 MENUBARINFOFc.top = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "top", "I");
3106 MENUBARINFOFc.right = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "right", "I");
3107 MENUBARINFOFc.bottom = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "bottom", "I");
3108 MENUBARINFOFc.hMenu = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "hMenu", "J");
3109 MENUBARINFOFc.hwndMenu = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "hwndMenu", "J");
3110 MENUBARINFOFc.fBarFocused = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "fBarFocused", "Z");
3111 MENUBARINFOFc.fFocused = (*env)->GetFieldID(env, MENUBARINFOFc.clazz, "fFocused", "Z");
3112 MENUBARINFOFc.cached = 1;
3113 }
3114
getMENUBARINFOFields(JNIEnv * env,jobject lpObject,MENUBARINFO * lpStruct)3115 MENUBARINFO *getMENUBARINFOFields(JNIEnv *env, jobject lpObject, MENUBARINFO *lpStruct)
3116 {
3117 if (!MENUBARINFOFc.cached) cacheMENUBARINFOFields(env, lpObject);
3118 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, MENUBARINFOFc.cbSize);
3119 lpStruct->rcBar.left = (*env)->GetIntField(env, lpObject, MENUBARINFOFc.left);
3120 lpStruct->rcBar.top = (*env)->GetIntField(env, lpObject, MENUBARINFOFc.top);
3121 lpStruct->rcBar.right = (*env)->GetIntField(env, lpObject, MENUBARINFOFc.right);
3122 lpStruct->rcBar.bottom = (*env)->GetIntField(env, lpObject, MENUBARINFOFc.bottom);
3123 lpStruct->hMenu = (HMENU)(*env)->GetLongField(env, lpObject, MENUBARINFOFc.hMenu);
3124 lpStruct->hwndMenu = (HWND)(*env)->GetLongField(env, lpObject, MENUBARINFOFc.hwndMenu);
3125 lpStruct->fBarFocused = (*env)->GetBooleanField(env, lpObject, MENUBARINFOFc.fBarFocused);
3126 lpStruct->fFocused = (*env)->GetBooleanField(env, lpObject, MENUBARINFOFc.fFocused);
3127 return lpStruct;
3128 }
3129
setMENUBARINFOFields(JNIEnv * env,jobject lpObject,MENUBARINFO * lpStruct)3130 void setMENUBARINFOFields(JNIEnv *env, jobject lpObject, MENUBARINFO *lpStruct)
3131 {
3132 if (!MENUBARINFOFc.cached) cacheMENUBARINFOFields(env, lpObject);
3133 (*env)->SetIntField(env, lpObject, MENUBARINFOFc.cbSize, (jint)lpStruct->cbSize);
3134 (*env)->SetIntField(env, lpObject, MENUBARINFOFc.left, (jint)lpStruct->rcBar.left);
3135 (*env)->SetIntField(env, lpObject, MENUBARINFOFc.top, (jint)lpStruct->rcBar.top);
3136 (*env)->SetIntField(env, lpObject, MENUBARINFOFc.right, (jint)lpStruct->rcBar.right);
3137 (*env)->SetIntField(env, lpObject, MENUBARINFOFc.bottom, (jint)lpStruct->rcBar.bottom);
3138 (*env)->SetLongField(env, lpObject, MENUBARINFOFc.hMenu, (jlong)lpStruct->hMenu);
3139 (*env)->SetLongField(env, lpObject, MENUBARINFOFc.hwndMenu, (jlong)lpStruct->hwndMenu);
3140 (*env)->SetBooleanField(env, lpObject, MENUBARINFOFc.fBarFocused, (jboolean)lpStruct->fBarFocused);
3141 (*env)->SetBooleanField(env, lpObject, MENUBARINFOFc.fFocused, (jboolean)lpStruct->fFocused);
3142 }
3143 #endif
3144
3145 #ifndef NO_MENUINFO
3146 typedef struct MENUINFO_FID_CACHE {
3147 int cached;
3148 jclass clazz;
3149 jfieldID cbSize, fMask, dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData;
3150 } MENUINFO_FID_CACHE;
3151
3152 MENUINFO_FID_CACHE MENUINFOFc;
3153
cacheMENUINFOFields(JNIEnv * env,jobject lpObject)3154 void cacheMENUINFOFields(JNIEnv *env, jobject lpObject)
3155 {
3156 if (MENUINFOFc.cached) return;
3157 MENUINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3158 MENUINFOFc.cbSize = (*env)->GetFieldID(env, MENUINFOFc.clazz, "cbSize", "I");
3159 MENUINFOFc.fMask = (*env)->GetFieldID(env, MENUINFOFc.clazz, "fMask", "I");
3160 MENUINFOFc.dwStyle = (*env)->GetFieldID(env, MENUINFOFc.clazz, "dwStyle", "I");
3161 MENUINFOFc.cyMax = (*env)->GetFieldID(env, MENUINFOFc.clazz, "cyMax", "I");
3162 MENUINFOFc.hbrBack = (*env)->GetFieldID(env, MENUINFOFc.clazz, "hbrBack", "J");
3163 MENUINFOFc.dwContextHelpID = (*env)->GetFieldID(env, MENUINFOFc.clazz, "dwContextHelpID", "I");
3164 MENUINFOFc.dwMenuData = (*env)->GetFieldID(env, MENUINFOFc.clazz, "dwMenuData", "J");
3165 MENUINFOFc.cached = 1;
3166 }
3167
getMENUINFOFields(JNIEnv * env,jobject lpObject,MENUINFO * lpStruct)3168 MENUINFO *getMENUINFOFields(JNIEnv *env, jobject lpObject, MENUINFO *lpStruct)
3169 {
3170 if (!MENUINFOFc.cached) cacheMENUINFOFields(env, lpObject);
3171 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, MENUINFOFc.cbSize);
3172 lpStruct->fMask = (*env)->GetIntField(env, lpObject, MENUINFOFc.fMask);
3173 lpStruct->dwStyle = (*env)->GetIntField(env, lpObject, MENUINFOFc.dwStyle);
3174 lpStruct->cyMax = (*env)->GetIntField(env, lpObject, MENUINFOFc.cyMax);
3175 lpStruct->hbrBack = (HBRUSH)(*env)->GetLongField(env, lpObject, MENUINFOFc.hbrBack);
3176 lpStruct->dwContextHelpID = (*env)->GetIntField(env, lpObject, MENUINFOFc.dwContextHelpID);
3177 lpStruct->dwMenuData = (*env)->GetLongField(env, lpObject, MENUINFOFc.dwMenuData);
3178 return lpStruct;
3179 }
3180
setMENUINFOFields(JNIEnv * env,jobject lpObject,MENUINFO * lpStruct)3181 void setMENUINFOFields(JNIEnv *env, jobject lpObject, MENUINFO *lpStruct)
3182 {
3183 if (!MENUINFOFc.cached) cacheMENUINFOFields(env, lpObject);
3184 (*env)->SetIntField(env, lpObject, MENUINFOFc.cbSize, (jint)lpStruct->cbSize);
3185 (*env)->SetIntField(env, lpObject, MENUINFOFc.fMask, (jint)lpStruct->fMask);
3186 (*env)->SetIntField(env, lpObject, MENUINFOFc.dwStyle, (jint)lpStruct->dwStyle);
3187 (*env)->SetIntField(env, lpObject, MENUINFOFc.cyMax, (jint)lpStruct->cyMax);
3188 (*env)->SetLongField(env, lpObject, MENUINFOFc.hbrBack, (jlong)lpStruct->hbrBack);
3189 (*env)->SetIntField(env, lpObject, MENUINFOFc.dwContextHelpID, (jint)lpStruct->dwContextHelpID);
3190 (*env)->SetLongField(env, lpObject, MENUINFOFc.dwMenuData, (jlong)lpStruct->dwMenuData);
3191 }
3192 #endif
3193
3194 #ifndef NO_MENUITEMINFO
3195 typedef struct MENUITEMINFO_FID_CACHE {
3196 int cached;
3197 jclass clazz;
3198 jfieldID cbSize, fMask, fType, fState, wID, hSubMenu, hbmpChecked, hbmpUnchecked, dwItemData, dwTypeData, cch, hbmpItem;
3199 } MENUITEMINFO_FID_CACHE;
3200
3201 MENUITEMINFO_FID_CACHE MENUITEMINFOFc;
3202
cacheMENUITEMINFOFields(JNIEnv * env,jobject lpObject)3203 void cacheMENUITEMINFOFields(JNIEnv *env, jobject lpObject)
3204 {
3205 if (MENUITEMINFOFc.cached) return;
3206 MENUITEMINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3207 MENUITEMINFOFc.cbSize = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "cbSize", "I");
3208 MENUITEMINFOFc.fMask = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "fMask", "I");
3209 MENUITEMINFOFc.fType = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "fType", "I");
3210 MENUITEMINFOFc.fState = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "fState", "I");
3211 MENUITEMINFOFc.wID = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "wID", "I");
3212 MENUITEMINFOFc.hSubMenu = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "hSubMenu", "J");
3213 MENUITEMINFOFc.hbmpChecked = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "hbmpChecked", "J");
3214 MENUITEMINFOFc.hbmpUnchecked = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "hbmpUnchecked", "J");
3215 MENUITEMINFOFc.dwItemData = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "dwItemData", "J");
3216 MENUITEMINFOFc.dwTypeData = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "dwTypeData", "J");
3217 MENUITEMINFOFc.cch = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "cch", "I");
3218 MENUITEMINFOFc.hbmpItem = (*env)->GetFieldID(env, MENUITEMINFOFc.clazz, "hbmpItem", "J");
3219 MENUITEMINFOFc.cached = 1;
3220 }
3221
getMENUITEMINFOFields(JNIEnv * env,jobject lpObject,MENUITEMINFO * lpStruct)3222 MENUITEMINFO *getMENUITEMINFOFields(JNIEnv *env, jobject lpObject, MENUITEMINFO *lpStruct)
3223 {
3224 if (!MENUITEMINFOFc.cached) cacheMENUITEMINFOFields(env, lpObject);
3225 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, MENUITEMINFOFc.cbSize);
3226 lpStruct->fMask = (*env)->GetIntField(env, lpObject, MENUITEMINFOFc.fMask);
3227 lpStruct->fType = (*env)->GetIntField(env, lpObject, MENUITEMINFOFc.fType);
3228 lpStruct->fState = (*env)->GetIntField(env, lpObject, MENUITEMINFOFc.fState);
3229 lpStruct->wID = (*env)->GetIntField(env, lpObject, MENUITEMINFOFc.wID);
3230 lpStruct->hSubMenu = (HMENU)(*env)->GetLongField(env, lpObject, MENUITEMINFOFc.hSubMenu);
3231 lpStruct->hbmpChecked = (HBITMAP)(*env)->GetLongField(env, lpObject, MENUITEMINFOFc.hbmpChecked);
3232 lpStruct->hbmpUnchecked = (HBITMAP)(*env)->GetLongField(env, lpObject, MENUITEMINFOFc.hbmpUnchecked);
3233 lpStruct->dwItemData = (*env)->GetLongField(env, lpObject, MENUITEMINFOFc.dwItemData);
3234 lpStruct->dwTypeData = (LPTSTR)(*env)->GetLongField(env, lpObject, MENUITEMINFOFc.dwTypeData);
3235 lpStruct->cch = (*env)->GetIntField(env, lpObject, MENUITEMINFOFc.cch);
3236 lpStruct->hbmpItem = (HBITMAP)(*env)->GetLongField(env, lpObject, MENUITEMINFOFc.hbmpItem);
3237 return lpStruct;
3238 }
3239
setMENUITEMINFOFields(JNIEnv * env,jobject lpObject,MENUITEMINFO * lpStruct)3240 void setMENUITEMINFOFields(JNIEnv *env, jobject lpObject, MENUITEMINFO *lpStruct)
3241 {
3242 if (!MENUITEMINFOFc.cached) cacheMENUITEMINFOFields(env, lpObject);
3243 (*env)->SetIntField(env, lpObject, MENUITEMINFOFc.cbSize, (jint)lpStruct->cbSize);
3244 (*env)->SetIntField(env, lpObject, MENUITEMINFOFc.fMask, (jint)lpStruct->fMask);
3245 (*env)->SetIntField(env, lpObject, MENUITEMINFOFc.fType, (jint)lpStruct->fType);
3246 (*env)->SetIntField(env, lpObject, MENUITEMINFOFc.fState, (jint)lpStruct->fState);
3247 (*env)->SetIntField(env, lpObject, MENUITEMINFOFc.wID, (jint)lpStruct->wID);
3248 (*env)->SetLongField(env, lpObject, MENUITEMINFOFc.hSubMenu, (jlong)lpStruct->hSubMenu);
3249 (*env)->SetLongField(env, lpObject, MENUITEMINFOFc.hbmpChecked, (jlong)lpStruct->hbmpChecked);
3250 (*env)->SetLongField(env, lpObject, MENUITEMINFOFc.hbmpUnchecked, (jlong)lpStruct->hbmpUnchecked);
3251 (*env)->SetLongField(env, lpObject, MENUITEMINFOFc.dwItemData, (jlong)lpStruct->dwItemData);
3252 (*env)->SetLongField(env, lpObject, MENUITEMINFOFc.dwTypeData, (jlong)lpStruct->dwTypeData);
3253 (*env)->SetIntField(env, lpObject, MENUITEMINFOFc.cch, (jint)lpStruct->cch);
3254 (*env)->SetLongField(env, lpObject, MENUITEMINFOFc.hbmpItem, (jlong)lpStruct->hbmpItem);
3255 }
3256 #endif
3257
3258 #ifndef NO_MINMAXINFO
3259 typedef struct MINMAXINFO_FID_CACHE {
3260 int cached;
3261 jclass clazz;
3262 jfieldID ptReserved_x, ptReserved_y, ptMaxSize_x, ptMaxSize_y, ptMaxPosition_x, ptMaxPosition_y, ptMinTrackSize_x, ptMinTrackSize_y, ptMaxTrackSize_x, ptMaxTrackSize_y;
3263 } MINMAXINFO_FID_CACHE;
3264
3265 MINMAXINFO_FID_CACHE MINMAXINFOFc;
3266
cacheMINMAXINFOFields(JNIEnv * env,jobject lpObject)3267 void cacheMINMAXINFOFields(JNIEnv *env, jobject lpObject)
3268 {
3269 if (MINMAXINFOFc.cached) return;
3270 MINMAXINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3271 MINMAXINFOFc.ptReserved_x = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptReserved_x", "I");
3272 MINMAXINFOFc.ptReserved_y = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptReserved_y", "I");
3273 MINMAXINFOFc.ptMaxSize_x = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMaxSize_x", "I");
3274 MINMAXINFOFc.ptMaxSize_y = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMaxSize_y", "I");
3275 MINMAXINFOFc.ptMaxPosition_x = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMaxPosition_x", "I");
3276 MINMAXINFOFc.ptMaxPosition_y = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMaxPosition_y", "I");
3277 MINMAXINFOFc.ptMinTrackSize_x = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMinTrackSize_x", "I");
3278 MINMAXINFOFc.ptMinTrackSize_y = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMinTrackSize_y", "I");
3279 MINMAXINFOFc.ptMaxTrackSize_x = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMaxTrackSize_x", "I");
3280 MINMAXINFOFc.ptMaxTrackSize_y = (*env)->GetFieldID(env, MINMAXINFOFc.clazz, "ptMaxTrackSize_y", "I");
3281 MINMAXINFOFc.cached = 1;
3282 }
3283
getMINMAXINFOFields(JNIEnv * env,jobject lpObject,MINMAXINFO * lpStruct)3284 MINMAXINFO *getMINMAXINFOFields(JNIEnv *env, jobject lpObject, MINMAXINFO *lpStruct)
3285 {
3286 if (!MINMAXINFOFc.cached) cacheMINMAXINFOFields(env, lpObject);
3287 lpStruct->ptReserved.x = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptReserved_x);
3288 lpStruct->ptReserved.y = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptReserved_y);
3289 lpStruct->ptMaxSize.x = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMaxSize_x);
3290 lpStruct->ptMaxSize.y = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMaxSize_y);
3291 lpStruct->ptMaxPosition.x = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMaxPosition_x);
3292 lpStruct->ptMaxPosition.y = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMaxPosition_y);
3293 lpStruct->ptMinTrackSize.x = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMinTrackSize_x);
3294 lpStruct->ptMinTrackSize.y = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMinTrackSize_y);
3295 lpStruct->ptMaxTrackSize.x = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMaxTrackSize_x);
3296 lpStruct->ptMaxTrackSize.y = (*env)->GetIntField(env, lpObject, MINMAXINFOFc.ptMaxTrackSize_y);
3297 return lpStruct;
3298 }
3299
setMINMAXINFOFields(JNIEnv * env,jobject lpObject,MINMAXINFO * lpStruct)3300 void setMINMAXINFOFields(JNIEnv *env, jobject lpObject, MINMAXINFO *lpStruct)
3301 {
3302 if (!MINMAXINFOFc.cached) cacheMINMAXINFOFields(env, lpObject);
3303 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptReserved_x, (jint)lpStruct->ptReserved.x);
3304 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptReserved_y, (jint)lpStruct->ptReserved.y);
3305 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMaxSize_x, (jint)lpStruct->ptMaxSize.x);
3306 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMaxSize_y, (jint)lpStruct->ptMaxSize.y);
3307 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMaxPosition_x, (jint)lpStruct->ptMaxPosition.x);
3308 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMaxPosition_y, (jint)lpStruct->ptMaxPosition.y);
3309 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMinTrackSize_x, (jint)lpStruct->ptMinTrackSize.x);
3310 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMinTrackSize_y, (jint)lpStruct->ptMinTrackSize.y);
3311 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMaxTrackSize_x, (jint)lpStruct->ptMaxTrackSize.x);
3312 (*env)->SetIntField(env, lpObject, MINMAXINFOFc.ptMaxTrackSize_y, (jint)lpStruct->ptMaxTrackSize.y);
3313 }
3314 #endif
3315
3316 #ifndef NO_MONITORINFO
3317 typedef struct MONITORINFO_FID_CACHE {
3318 int cached;
3319 jclass clazz;
3320 jfieldID cbSize, rcMonitor_left, rcMonitor_top, rcMonitor_right, rcMonitor_bottom, rcWork_left, rcWork_top, rcWork_right, rcWork_bottom, dwFlags;
3321 } MONITORINFO_FID_CACHE;
3322
3323 MONITORINFO_FID_CACHE MONITORINFOFc;
3324
cacheMONITORINFOFields(JNIEnv * env,jobject lpObject)3325 void cacheMONITORINFOFields(JNIEnv *env, jobject lpObject)
3326 {
3327 if (MONITORINFOFc.cached) return;
3328 MONITORINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3329 MONITORINFOFc.cbSize = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "cbSize", "I");
3330 MONITORINFOFc.rcMonitor_left = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcMonitor_left", "I");
3331 MONITORINFOFc.rcMonitor_top = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcMonitor_top", "I");
3332 MONITORINFOFc.rcMonitor_right = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcMonitor_right", "I");
3333 MONITORINFOFc.rcMonitor_bottom = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcMonitor_bottom", "I");
3334 MONITORINFOFc.rcWork_left = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcWork_left", "I");
3335 MONITORINFOFc.rcWork_top = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcWork_top", "I");
3336 MONITORINFOFc.rcWork_right = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcWork_right", "I");
3337 MONITORINFOFc.rcWork_bottom = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "rcWork_bottom", "I");
3338 MONITORINFOFc.dwFlags = (*env)->GetFieldID(env, MONITORINFOFc.clazz, "dwFlags", "I");
3339 MONITORINFOFc.cached = 1;
3340 }
3341
getMONITORINFOFields(JNIEnv * env,jobject lpObject,MONITORINFO * lpStruct)3342 MONITORINFO *getMONITORINFOFields(JNIEnv *env, jobject lpObject, MONITORINFO *lpStruct)
3343 {
3344 if (!MONITORINFOFc.cached) cacheMONITORINFOFields(env, lpObject);
3345 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, MONITORINFOFc.cbSize);
3346 lpStruct->rcMonitor.left = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcMonitor_left);
3347 lpStruct->rcMonitor.top = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcMonitor_top);
3348 lpStruct->rcMonitor.right = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcMonitor_right);
3349 lpStruct->rcMonitor.bottom = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcMonitor_bottom);
3350 lpStruct->rcWork.left = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcWork_left);
3351 lpStruct->rcWork.top = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcWork_top);
3352 lpStruct->rcWork.right = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcWork_right);
3353 lpStruct->rcWork.bottom = (*env)->GetIntField(env, lpObject, MONITORINFOFc.rcWork_bottom);
3354 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, MONITORINFOFc.dwFlags);
3355 return lpStruct;
3356 }
3357
setMONITORINFOFields(JNIEnv * env,jobject lpObject,MONITORINFO * lpStruct)3358 void setMONITORINFOFields(JNIEnv *env, jobject lpObject, MONITORINFO *lpStruct)
3359 {
3360 if (!MONITORINFOFc.cached) cacheMONITORINFOFields(env, lpObject);
3361 (*env)->SetIntField(env, lpObject, MONITORINFOFc.cbSize, (jint)lpStruct->cbSize);
3362 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcMonitor_left, (jint)lpStruct->rcMonitor.left);
3363 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcMonitor_top, (jint)lpStruct->rcMonitor.top);
3364 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcMonitor_right, (jint)lpStruct->rcMonitor.right);
3365 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcMonitor_bottom, (jint)lpStruct->rcMonitor.bottom);
3366 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcWork_left, (jint)lpStruct->rcWork.left);
3367 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcWork_top, (jint)lpStruct->rcWork.top);
3368 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcWork_right, (jint)lpStruct->rcWork.right);
3369 (*env)->SetIntField(env, lpObject, MONITORINFOFc.rcWork_bottom, (jint)lpStruct->rcWork.bottom);
3370 (*env)->SetIntField(env, lpObject, MONITORINFOFc.dwFlags, (jint)lpStruct->dwFlags);
3371 }
3372 #endif
3373
3374 #ifndef NO_MOUSEINPUT
3375 typedef struct MOUSEINPUT_FID_CACHE {
3376 int cached;
3377 jclass clazz;
3378 jfieldID dx, dy, mouseData, dwFlags, time, dwExtraInfo;
3379 } MOUSEINPUT_FID_CACHE;
3380
3381 MOUSEINPUT_FID_CACHE MOUSEINPUTFc;
3382
cacheMOUSEINPUTFields(JNIEnv * env,jobject lpObject)3383 void cacheMOUSEINPUTFields(JNIEnv *env, jobject lpObject)
3384 {
3385 if (MOUSEINPUTFc.cached) return;
3386 MOUSEINPUTFc.clazz = (*env)->GetObjectClass(env, lpObject);
3387 MOUSEINPUTFc.dx = (*env)->GetFieldID(env, MOUSEINPUTFc.clazz, "dx", "I");
3388 MOUSEINPUTFc.dy = (*env)->GetFieldID(env, MOUSEINPUTFc.clazz, "dy", "I");
3389 MOUSEINPUTFc.mouseData = (*env)->GetFieldID(env, MOUSEINPUTFc.clazz, "mouseData", "I");
3390 MOUSEINPUTFc.dwFlags = (*env)->GetFieldID(env, MOUSEINPUTFc.clazz, "dwFlags", "I");
3391 MOUSEINPUTFc.time = (*env)->GetFieldID(env, MOUSEINPUTFc.clazz, "time", "I");
3392 MOUSEINPUTFc.dwExtraInfo = (*env)->GetFieldID(env, MOUSEINPUTFc.clazz, "dwExtraInfo", "J");
3393 MOUSEINPUTFc.cached = 1;
3394 }
3395
getMOUSEINPUTFields(JNIEnv * env,jobject lpObject,MOUSEINPUT * lpStruct)3396 MOUSEINPUT *getMOUSEINPUTFields(JNIEnv *env, jobject lpObject, MOUSEINPUT *lpStruct)
3397 {
3398 if (!MOUSEINPUTFc.cached) cacheMOUSEINPUTFields(env, lpObject);
3399 lpStruct->dx = (*env)->GetIntField(env, lpObject, MOUSEINPUTFc.dx);
3400 lpStruct->dy = (*env)->GetIntField(env, lpObject, MOUSEINPUTFc.dy);
3401 lpStruct->mouseData = (*env)->GetIntField(env, lpObject, MOUSEINPUTFc.mouseData);
3402 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, MOUSEINPUTFc.dwFlags);
3403 lpStruct->time = (*env)->GetIntField(env, lpObject, MOUSEINPUTFc.time);
3404 lpStruct->dwExtraInfo = (*env)->GetLongField(env, lpObject, MOUSEINPUTFc.dwExtraInfo);
3405 return lpStruct;
3406 }
3407
setMOUSEINPUTFields(JNIEnv * env,jobject lpObject,MOUSEINPUT * lpStruct)3408 void setMOUSEINPUTFields(JNIEnv *env, jobject lpObject, MOUSEINPUT *lpStruct)
3409 {
3410 if (!MOUSEINPUTFc.cached) cacheMOUSEINPUTFields(env, lpObject);
3411 (*env)->SetIntField(env, lpObject, MOUSEINPUTFc.dx, (jint)lpStruct->dx);
3412 (*env)->SetIntField(env, lpObject, MOUSEINPUTFc.dy, (jint)lpStruct->dy);
3413 (*env)->SetIntField(env, lpObject, MOUSEINPUTFc.mouseData, (jint)lpStruct->mouseData);
3414 (*env)->SetIntField(env, lpObject, MOUSEINPUTFc.dwFlags, (jint)lpStruct->dwFlags);
3415 (*env)->SetIntField(env, lpObject, MOUSEINPUTFc.time, (jint)lpStruct->time);
3416 (*env)->SetLongField(env, lpObject, MOUSEINPUTFc.dwExtraInfo, (jlong)lpStruct->dwExtraInfo);
3417 }
3418 #endif
3419
3420 #ifndef NO_MSG
3421 typedef struct MSG_FID_CACHE {
3422 int cached;
3423 jclass clazz;
3424 jfieldID hwnd, message, wParam, lParam, time, x, y;
3425 } MSG_FID_CACHE;
3426
3427 MSG_FID_CACHE MSGFc;
3428
cacheMSGFields(JNIEnv * env,jobject lpObject)3429 void cacheMSGFields(JNIEnv *env, jobject lpObject)
3430 {
3431 if (MSGFc.cached) return;
3432 MSGFc.clazz = (*env)->GetObjectClass(env, lpObject);
3433 MSGFc.hwnd = (*env)->GetFieldID(env, MSGFc.clazz, "hwnd", "J");
3434 MSGFc.message = (*env)->GetFieldID(env, MSGFc.clazz, "message", "I");
3435 MSGFc.wParam = (*env)->GetFieldID(env, MSGFc.clazz, "wParam", "J");
3436 MSGFc.lParam = (*env)->GetFieldID(env, MSGFc.clazz, "lParam", "J");
3437 MSGFc.time = (*env)->GetFieldID(env, MSGFc.clazz, "time", "I");
3438 MSGFc.x = (*env)->GetFieldID(env, MSGFc.clazz, "x", "I");
3439 MSGFc.y = (*env)->GetFieldID(env, MSGFc.clazz, "y", "I");
3440 MSGFc.cached = 1;
3441 }
3442
getMSGFields(JNIEnv * env,jobject lpObject,MSG * lpStruct)3443 MSG *getMSGFields(JNIEnv *env, jobject lpObject, MSG *lpStruct)
3444 {
3445 if (!MSGFc.cached) cacheMSGFields(env, lpObject);
3446 lpStruct->hwnd = (HWND)(*env)->GetLongField(env, lpObject, MSGFc.hwnd);
3447 lpStruct->message = (*env)->GetIntField(env, lpObject, MSGFc.message);
3448 lpStruct->wParam = (*env)->GetLongField(env, lpObject, MSGFc.wParam);
3449 lpStruct->lParam = (*env)->GetLongField(env, lpObject, MSGFc.lParam);
3450 lpStruct->time = (*env)->GetIntField(env, lpObject, MSGFc.time);
3451 lpStruct->pt.x = (*env)->GetIntField(env, lpObject, MSGFc.x);
3452 lpStruct->pt.y = (*env)->GetIntField(env, lpObject, MSGFc.y);
3453 return lpStruct;
3454 }
3455
setMSGFields(JNIEnv * env,jobject lpObject,MSG * lpStruct)3456 void setMSGFields(JNIEnv *env, jobject lpObject, MSG *lpStruct)
3457 {
3458 if (!MSGFc.cached) cacheMSGFields(env, lpObject);
3459 (*env)->SetLongField(env, lpObject, MSGFc.hwnd, (jlong)lpStruct->hwnd);
3460 (*env)->SetIntField(env, lpObject, MSGFc.message, (jint)lpStruct->message);
3461 (*env)->SetLongField(env, lpObject, MSGFc.wParam, (jlong)lpStruct->wParam);
3462 (*env)->SetLongField(env, lpObject, MSGFc.lParam, (jlong)lpStruct->lParam);
3463 (*env)->SetIntField(env, lpObject, MSGFc.time, (jint)lpStruct->time);
3464 (*env)->SetIntField(env, lpObject, MSGFc.x, (jint)lpStruct->pt.x);
3465 (*env)->SetIntField(env, lpObject, MSGFc.y, (jint)lpStruct->pt.y);
3466 }
3467 #endif
3468
3469 #ifndef NO_NMCUSTOMDRAW
3470 typedef struct NMCUSTOMDRAW_FID_CACHE {
3471 int cached;
3472 jclass clazz;
3473 jfieldID dwDrawStage, hdc, left, top, right, bottom, dwItemSpec, uItemState, lItemlParam;
3474 } NMCUSTOMDRAW_FID_CACHE;
3475
3476 NMCUSTOMDRAW_FID_CACHE NMCUSTOMDRAWFc;
3477
cacheNMCUSTOMDRAWFields(JNIEnv * env,jobject lpObject)3478 void cacheNMCUSTOMDRAWFields(JNIEnv *env, jobject lpObject)
3479 {
3480 if (NMCUSTOMDRAWFc.cached) return;
3481 cacheNMHDRFields(env, lpObject);
3482 NMCUSTOMDRAWFc.clazz = (*env)->GetObjectClass(env, lpObject);
3483 NMCUSTOMDRAWFc.dwDrawStage = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "dwDrawStage", "I");
3484 NMCUSTOMDRAWFc.hdc = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "hdc", "J");
3485 NMCUSTOMDRAWFc.left = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "left", "I");
3486 NMCUSTOMDRAWFc.top = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "top", "I");
3487 NMCUSTOMDRAWFc.right = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "right", "I");
3488 NMCUSTOMDRAWFc.bottom = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "bottom", "I");
3489 NMCUSTOMDRAWFc.dwItemSpec = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "dwItemSpec", "J");
3490 NMCUSTOMDRAWFc.uItemState = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "uItemState", "I");
3491 NMCUSTOMDRAWFc.lItemlParam = (*env)->GetFieldID(env, NMCUSTOMDRAWFc.clazz, "lItemlParam", "J");
3492 NMCUSTOMDRAWFc.cached = 1;
3493 }
3494
getNMCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMCUSTOMDRAW * lpStruct)3495 NMCUSTOMDRAW *getNMCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMCUSTOMDRAW *lpStruct)
3496 {
3497 if (!NMCUSTOMDRAWFc.cached) cacheNMCUSTOMDRAWFields(env, lpObject);
3498 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3499 lpStruct->dwDrawStage = (*env)->GetIntField(env, lpObject, NMCUSTOMDRAWFc.dwDrawStage);
3500 lpStruct->hdc = (HDC)(*env)->GetLongField(env, lpObject, NMCUSTOMDRAWFc.hdc);
3501 lpStruct->rc.left = (*env)->GetIntField(env, lpObject, NMCUSTOMDRAWFc.left);
3502 lpStruct->rc.top = (*env)->GetIntField(env, lpObject, NMCUSTOMDRAWFc.top);
3503 lpStruct->rc.right = (*env)->GetIntField(env, lpObject, NMCUSTOMDRAWFc.right);
3504 lpStruct->rc.bottom = (*env)->GetIntField(env, lpObject, NMCUSTOMDRAWFc.bottom);
3505 lpStruct->dwItemSpec = (*env)->GetLongField(env, lpObject, NMCUSTOMDRAWFc.dwItemSpec);
3506 lpStruct->uItemState = (*env)->GetIntField(env, lpObject, NMCUSTOMDRAWFc.uItemState);
3507 lpStruct->lItemlParam = (*env)->GetLongField(env, lpObject, NMCUSTOMDRAWFc.lItemlParam);
3508 return lpStruct;
3509 }
3510
setNMCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMCUSTOMDRAW * lpStruct)3511 void setNMCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMCUSTOMDRAW *lpStruct)
3512 {
3513 if (!NMCUSTOMDRAWFc.cached) cacheNMCUSTOMDRAWFields(env, lpObject);
3514 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3515 (*env)->SetIntField(env, lpObject, NMCUSTOMDRAWFc.dwDrawStage, (jint)lpStruct->dwDrawStage);
3516 (*env)->SetLongField(env, lpObject, NMCUSTOMDRAWFc.hdc, (jlong)lpStruct->hdc);
3517 (*env)->SetIntField(env, lpObject, NMCUSTOMDRAWFc.left, (jint)lpStruct->rc.left);
3518 (*env)->SetIntField(env, lpObject, NMCUSTOMDRAWFc.top, (jint)lpStruct->rc.top);
3519 (*env)->SetIntField(env, lpObject, NMCUSTOMDRAWFc.right, (jint)lpStruct->rc.right);
3520 (*env)->SetIntField(env, lpObject, NMCUSTOMDRAWFc.bottom, (jint)lpStruct->rc.bottom);
3521 (*env)->SetLongField(env, lpObject, NMCUSTOMDRAWFc.dwItemSpec, (jlong)lpStruct->dwItemSpec);
3522 (*env)->SetIntField(env, lpObject, NMCUSTOMDRAWFc.uItemState, (jint)lpStruct->uItemState);
3523 (*env)->SetLongField(env, lpObject, NMCUSTOMDRAWFc.lItemlParam, (jlong)lpStruct->lItemlParam);
3524 }
3525 #endif
3526
3527 #ifndef NO_NMHDR
3528 typedef struct NMHDR_FID_CACHE {
3529 int cached;
3530 jclass clazz;
3531 jfieldID hwndFrom, idFrom, code;
3532 } NMHDR_FID_CACHE;
3533
3534 NMHDR_FID_CACHE NMHDRFc;
3535
cacheNMHDRFields(JNIEnv * env,jobject lpObject)3536 void cacheNMHDRFields(JNIEnv *env, jobject lpObject)
3537 {
3538 if (NMHDRFc.cached) return;
3539 NMHDRFc.clazz = (*env)->GetObjectClass(env, lpObject);
3540 NMHDRFc.hwndFrom = (*env)->GetFieldID(env, NMHDRFc.clazz, "hwndFrom", "J");
3541 NMHDRFc.idFrom = (*env)->GetFieldID(env, NMHDRFc.clazz, "idFrom", "J");
3542 NMHDRFc.code = (*env)->GetFieldID(env, NMHDRFc.clazz, "code", "I");
3543 NMHDRFc.cached = 1;
3544 }
3545
getNMHDRFields(JNIEnv * env,jobject lpObject,NMHDR * lpStruct)3546 NMHDR *getNMHDRFields(JNIEnv *env, jobject lpObject, NMHDR *lpStruct)
3547 {
3548 if (!NMHDRFc.cached) cacheNMHDRFields(env, lpObject);
3549 lpStruct->hwndFrom = (HWND)(*env)->GetLongField(env, lpObject, NMHDRFc.hwndFrom);
3550 lpStruct->idFrom = (*env)->GetLongField(env, lpObject, NMHDRFc.idFrom);
3551 lpStruct->code = (*env)->GetIntField(env, lpObject, NMHDRFc.code);
3552 return lpStruct;
3553 }
3554
setNMHDRFields(JNIEnv * env,jobject lpObject,NMHDR * lpStruct)3555 void setNMHDRFields(JNIEnv *env, jobject lpObject, NMHDR *lpStruct)
3556 {
3557 if (!NMHDRFc.cached) cacheNMHDRFields(env, lpObject);
3558 (*env)->SetLongField(env, lpObject, NMHDRFc.hwndFrom, (jlong)lpStruct->hwndFrom);
3559 (*env)->SetLongField(env, lpObject, NMHDRFc.idFrom, (jlong)lpStruct->idFrom);
3560 (*env)->SetIntField(env, lpObject, NMHDRFc.code, (jint)lpStruct->code);
3561 }
3562 #endif
3563
3564 #ifndef NO_NMHEADER
3565 typedef struct NMHEADER_FID_CACHE {
3566 int cached;
3567 jclass clazz;
3568 jfieldID iItem, iButton, pitem;
3569 } NMHEADER_FID_CACHE;
3570
3571 NMHEADER_FID_CACHE NMHEADERFc;
3572
cacheNMHEADERFields(JNIEnv * env,jobject lpObject)3573 void cacheNMHEADERFields(JNIEnv *env, jobject lpObject)
3574 {
3575 if (NMHEADERFc.cached) return;
3576 cacheNMHDRFields(env, lpObject);
3577 NMHEADERFc.clazz = (*env)->GetObjectClass(env, lpObject);
3578 NMHEADERFc.iItem = (*env)->GetFieldID(env, NMHEADERFc.clazz, "iItem", "I");
3579 NMHEADERFc.iButton = (*env)->GetFieldID(env, NMHEADERFc.clazz, "iButton", "I");
3580 NMHEADERFc.pitem = (*env)->GetFieldID(env, NMHEADERFc.clazz, "pitem", "J");
3581 NMHEADERFc.cached = 1;
3582 }
3583
getNMHEADERFields(JNIEnv * env,jobject lpObject,NMHEADER * lpStruct)3584 NMHEADER *getNMHEADERFields(JNIEnv *env, jobject lpObject, NMHEADER *lpStruct)
3585 {
3586 if (!NMHEADERFc.cached) cacheNMHEADERFields(env, lpObject);
3587 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3588 lpStruct->iItem = (*env)->GetIntField(env, lpObject, NMHEADERFc.iItem);
3589 lpStruct->iButton = (*env)->GetIntField(env, lpObject, NMHEADERFc.iButton);
3590 lpStruct->pitem = (HDITEM FAR *)(*env)->GetLongField(env, lpObject, NMHEADERFc.pitem);
3591 return lpStruct;
3592 }
3593
setNMHEADERFields(JNIEnv * env,jobject lpObject,NMHEADER * lpStruct)3594 void setNMHEADERFields(JNIEnv *env, jobject lpObject, NMHEADER *lpStruct)
3595 {
3596 if (!NMHEADERFc.cached) cacheNMHEADERFields(env, lpObject);
3597 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3598 (*env)->SetIntField(env, lpObject, NMHEADERFc.iItem, (jint)lpStruct->iItem);
3599 (*env)->SetIntField(env, lpObject, NMHEADERFc.iButton, (jint)lpStruct->iButton);
3600 (*env)->SetLongField(env, lpObject, NMHEADERFc.pitem, (jlong)lpStruct->pitem);
3601 }
3602 #endif
3603
3604 #ifndef NO_NMLINK
3605 typedef struct NMLINK_FID_CACHE {
3606 int cached;
3607 jclass clazz;
3608 jfieldID mask, iLink, state, stateMask, szID, szUrl;
3609 } NMLINK_FID_CACHE;
3610
3611 NMLINK_FID_CACHE NMLINKFc;
3612
cacheNMLINKFields(JNIEnv * env,jobject lpObject)3613 void cacheNMLINKFields(JNIEnv *env, jobject lpObject)
3614 {
3615 if (NMLINKFc.cached) return;
3616 cacheNMHDRFields(env, lpObject);
3617 NMLINKFc.clazz = (*env)->GetObjectClass(env, lpObject);
3618 NMLINKFc.mask = (*env)->GetFieldID(env, NMLINKFc.clazz, "mask", "I");
3619 NMLINKFc.iLink = (*env)->GetFieldID(env, NMLINKFc.clazz, "iLink", "I");
3620 NMLINKFc.state = (*env)->GetFieldID(env, NMLINKFc.clazz, "state", "I");
3621 NMLINKFc.stateMask = (*env)->GetFieldID(env, NMLINKFc.clazz, "stateMask", "I");
3622 NMLINKFc.szID = (*env)->GetFieldID(env, NMLINKFc.clazz, "szID", "[C");
3623 NMLINKFc.szUrl = (*env)->GetFieldID(env, NMLINKFc.clazz, "szUrl", "[C");
3624 NMLINKFc.cached = 1;
3625 }
3626
getNMLINKFields(JNIEnv * env,jobject lpObject,NMLINK * lpStruct)3627 NMLINK *getNMLINKFields(JNIEnv *env, jobject lpObject, NMLINK *lpStruct)
3628 {
3629 if (!NMLINKFc.cached) cacheNMLINKFields(env, lpObject);
3630 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3631 lpStruct->item.mask = (*env)->GetIntField(env, lpObject, NMLINKFc.mask);
3632 lpStruct->item.iLink = (*env)->GetIntField(env, lpObject, NMLINKFc.iLink);
3633 lpStruct->item.state = (*env)->GetIntField(env, lpObject, NMLINKFc.state);
3634 lpStruct->item.stateMask = (*env)->GetIntField(env, lpObject, NMLINKFc.stateMask);
3635 {
3636 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NMLINKFc.szID);
3637 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->item.szID) / sizeof(jchar), (jchar *)lpStruct->item.szID);
3638 }
3639 {
3640 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NMLINKFc.szUrl);
3641 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->item.szUrl) / sizeof(jchar), (jchar *)lpStruct->item.szUrl);
3642 }
3643 return lpStruct;
3644 }
3645
setNMLINKFields(JNIEnv * env,jobject lpObject,NMLINK * lpStruct)3646 void setNMLINKFields(JNIEnv *env, jobject lpObject, NMLINK *lpStruct)
3647 {
3648 if (!NMLINKFc.cached) cacheNMLINKFields(env, lpObject);
3649 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3650 (*env)->SetIntField(env, lpObject, NMLINKFc.mask, (jint)lpStruct->item.mask);
3651 (*env)->SetIntField(env, lpObject, NMLINKFc.iLink, (jint)lpStruct->item.iLink);
3652 (*env)->SetIntField(env, lpObject, NMLINKFc.state, (jint)lpStruct->item.state);
3653 (*env)->SetIntField(env, lpObject, NMLINKFc.stateMask, (jint)lpStruct->item.stateMask);
3654 {
3655 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NMLINKFc.szID);
3656 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->item.szID) / sizeof(jchar), (jchar *)lpStruct->item.szID);
3657 }
3658 {
3659 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NMLINKFc.szUrl);
3660 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->item.szUrl) / sizeof(jchar), (jchar *)lpStruct->item.szUrl);
3661 }
3662 }
3663 #endif
3664
3665 #ifndef NO_NMLISTVIEW
3666 typedef struct NMLISTVIEW_FID_CACHE {
3667 int cached;
3668 jclass clazz;
3669 jfieldID iItem, iSubItem, uNewState, uOldState, uChanged, x, y, lParam;
3670 } NMLISTVIEW_FID_CACHE;
3671
3672 NMLISTVIEW_FID_CACHE NMLISTVIEWFc;
3673
cacheNMLISTVIEWFields(JNIEnv * env,jobject lpObject)3674 void cacheNMLISTVIEWFields(JNIEnv *env, jobject lpObject)
3675 {
3676 if (NMLISTVIEWFc.cached) return;
3677 cacheNMHDRFields(env, lpObject);
3678 NMLISTVIEWFc.clazz = (*env)->GetObjectClass(env, lpObject);
3679 NMLISTVIEWFc.iItem = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "iItem", "I");
3680 NMLISTVIEWFc.iSubItem = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "iSubItem", "I");
3681 NMLISTVIEWFc.uNewState = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "uNewState", "I");
3682 NMLISTVIEWFc.uOldState = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "uOldState", "I");
3683 NMLISTVIEWFc.uChanged = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "uChanged", "I");
3684 NMLISTVIEWFc.x = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "x", "I");
3685 NMLISTVIEWFc.y = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "y", "I");
3686 NMLISTVIEWFc.lParam = (*env)->GetFieldID(env, NMLISTVIEWFc.clazz, "lParam", "J");
3687 NMLISTVIEWFc.cached = 1;
3688 }
3689
getNMLISTVIEWFields(JNIEnv * env,jobject lpObject,NMLISTVIEW * lpStruct)3690 NMLISTVIEW *getNMLISTVIEWFields(JNIEnv *env, jobject lpObject, NMLISTVIEW *lpStruct)
3691 {
3692 if (!NMLISTVIEWFc.cached) cacheNMLISTVIEWFields(env, lpObject);
3693 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3694 lpStruct->iItem = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.iItem);
3695 lpStruct->iSubItem = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.iSubItem);
3696 lpStruct->uNewState = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.uNewState);
3697 lpStruct->uOldState = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.uOldState);
3698 lpStruct->uChanged = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.uChanged);
3699 lpStruct->ptAction.x = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.x);
3700 lpStruct->ptAction.y = (*env)->GetIntField(env, lpObject, NMLISTVIEWFc.y);
3701 lpStruct->lParam = (*env)->GetLongField(env, lpObject, NMLISTVIEWFc.lParam);
3702 return lpStruct;
3703 }
3704
setNMLISTVIEWFields(JNIEnv * env,jobject lpObject,NMLISTVIEW * lpStruct)3705 void setNMLISTVIEWFields(JNIEnv *env, jobject lpObject, NMLISTVIEW *lpStruct)
3706 {
3707 if (!NMLISTVIEWFc.cached) cacheNMLISTVIEWFields(env, lpObject);
3708 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3709 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.iItem, (jint)lpStruct->iItem);
3710 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.iSubItem, (jint)lpStruct->iSubItem);
3711 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.uNewState, (jint)lpStruct->uNewState);
3712 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.uOldState, (jint)lpStruct->uOldState);
3713 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.uChanged, (jint)lpStruct->uChanged);
3714 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.x, (jint)lpStruct->ptAction.x);
3715 (*env)->SetIntField(env, lpObject, NMLISTVIEWFc.y, (jint)lpStruct->ptAction.y);
3716 (*env)->SetLongField(env, lpObject, NMLISTVIEWFc.lParam, (jlong)lpStruct->lParam);
3717 }
3718 #endif
3719
3720 #ifndef NO_NMLVCUSTOMDRAW
3721 typedef struct NMLVCUSTOMDRAW_FID_CACHE {
3722 int cached;
3723 jclass clazz;
3724 jfieldID clrText, clrTextBk, iSubItem, dwItemType, clrFace, iIconEffect, iIconPhase, iPartId, iStateId, rcText_left, rcText_top, rcText_right, rcText_bottom, uAlign;
3725 } NMLVCUSTOMDRAW_FID_CACHE;
3726
3727 NMLVCUSTOMDRAW_FID_CACHE NMLVCUSTOMDRAWFc;
3728
cacheNMLVCUSTOMDRAWFields(JNIEnv * env,jobject lpObject)3729 void cacheNMLVCUSTOMDRAWFields(JNIEnv *env, jobject lpObject)
3730 {
3731 if (NMLVCUSTOMDRAWFc.cached) return;
3732 cacheNMCUSTOMDRAWFields(env, lpObject);
3733 NMLVCUSTOMDRAWFc.clazz = (*env)->GetObjectClass(env, lpObject);
3734 NMLVCUSTOMDRAWFc.clrText = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "clrText", "I");
3735 NMLVCUSTOMDRAWFc.clrTextBk = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "clrTextBk", "I");
3736 NMLVCUSTOMDRAWFc.iSubItem = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "iSubItem", "I");
3737 NMLVCUSTOMDRAWFc.dwItemType = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "dwItemType", "I");
3738 NMLVCUSTOMDRAWFc.clrFace = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "clrFace", "I");
3739 NMLVCUSTOMDRAWFc.iIconEffect = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "iIconEffect", "I");
3740 NMLVCUSTOMDRAWFc.iIconPhase = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "iIconPhase", "I");
3741 NMLVCUSTOMDRAWFc.iPartId = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "iPartId", "I");
3742 NMLVCUSTOMDRAWFc.iStateId = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "iStateId", "I");
3743 NMLVCUSTOMDRAWFc.rcText_left = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "rcText_left", "I");
3744 NMLVCUSTOMDRAWFc.rcText_top = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "rcText_top", "I");
3745 NMLVCUSTOMDRAWFc.rcText_right = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "rcText_right", "I");
3746 NMLVCUSTOMDRAWFc.rcText_bottom = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "rcText_bottom", "I");
3747 NMLVCUSTOMDRAWFc.uAlign = (*env)->GetFieldID(env, NMLVCUSTOMDRAWFc.clazz, "uAlign", "I");
3748 NMLVCUSTOMDRAWFc.cached = 1;
3749 }
3750
getNMLVCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMLVCUSTOMDRAW * lpStruct)3751 NMLVCUSTOMDRAW *getNMLVCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMLVCUSTOMDRAW *lpStruct)
3752 {
3753 if (!NMLVCUSTOMDRAWFc.cached) cacheNMLVCUSTOMDRAWFields(env, lpObject);
3754 getNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
3755 lpStruct->clrText = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.clrText);
3756 lpStruct->clrTextBk = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.clrTextBk);
3757 lpStruct->iSubItem = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iSubItem);
3758 lpStruct->dwItemType = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.dwItemType);
3759 lpStruct->clrFace = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.clrFace);
3760 lpStruct->iIconEffect = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iIconEffect);
3761 lpStruct->iIconPhase = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iIconPhase);
3762 lpStruct->iPartId = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iPartId);
3763 lpStruct->iStateId = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iStateId);
3764 lpStruct->rcText.left = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_left);
3765 lpStruct->rcText.top = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_top);
3766 lpStruct->rcText.right = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_right);
3767 lpStruct->rcText.bottom = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_bottom);
3768 lpStruct->uAlign = (*env)->GetIntField(env, lpObject, NMLVCUSTOMDRAWFc.uAlign);
3769 return lpStruct;
3770 }
3771
setNMLVCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMLVCUSTOMDRAW * lpStruct)3772 void setNMLVCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMLVCUSTOMDRAW *lpStruct)
3773 {
3774 if (!NMLVCUSTOMDRAWFc.cached) cacheNMLVCUSTOMDRAWFields(env, lpObject);
3775 setNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
3776 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.clrText, (jint)lpStruct->clrText);
3777 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.clrTextBk, (jint)lpStruct->clrTextBk);
3778 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iSubItem, (jint)lpStruct->iSubItem);
3779 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.dwItemType, (jint)lpStruct->dwItemType);
3780 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.clrFace, (jint)lpStruct->clrFace);
3781 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iIconEffect, (jint)lpStruct->iIconEffect);
3782 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iIconPhase, (jint)lpStruct->iIconPhase);
3783 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iPartId, (jint)lpStruct->iPartId);
3784 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.iStateId, (jint)lpStruct->iStateId);
3785 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_left, (jint)lpStruct->rcText.left);
3786 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_top, (jint)lpStruct->rcText.top);
3787 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_right, (jint)lpStruct->rcText.right);
3788 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.rcText_bottom, (jint)lpStruct->rcText.bottom);
3789 (*env)->SetIntField(env, lpObject, NMLVCUSTOMDRAWFc.uAlign, (jint)lpStruct->uAlign);
3790 }
3791 #endif
3792
3793 #ifndef NO_NMLVDISPINFO
3794 typedef struct NMLVDISPINFO_FID_CACHE {
3795 int cached;
3796 jclass clazz;
3797 jfieldID mask, iItem, iSubItem, state, stateMask, pszText, cchTextMax, iImage, lParam, iIndent, iGroupId, cColumns, puColumns;
3798 } NMLVDISPINFO_FID_CACHE;
3799
3800 NMLVDISPINFO_FID_CACHE NMLVDISPINFOFc;
3801
cacheNMLVDISPINFOFields(JNIEnv * env,jobject lpObject)3802 void cacheNMLVDISPINFOFields(JNIEnv *env, jobject lpObject)
3803 {
3804 if (NMLVDISPINFOFc.cached) return;
3805 cacheNMHDRFields(env, lpObject);
3806 NMLVDISPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
3807 NMLVDISPINFOFc.mask = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "mask", "I");
3808 NMLVDISPINFOFc.iItem = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "iItem", "I");
3809 NMLVDISPINFOFc.iSubItem = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "iSubItem", "I");
3810 NMLVDISPINFOFc.state = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "state", "I");
3811 NMLVDISPINFOFc.stateMask = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "stateMask", "I");
3812 NMLVDISPINFOFc.pszText = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "pszText", "J");
3813 NMLVDISPINFOFc.cchTextMax = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "cchTextMax", "I");
3814 NMLVDISPINFOFc.iImage = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "iImage", "I");
3815 NMLVDISPINFOFc.lParam = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "lParam", "J");
3816 NMLVDISPINFOFc.iIndent = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "iIndent", "I");
3817 NMLVDISPINFOFc.iGroupId = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "iGroupId", "I");
3818 NMLVDISPINFOFc.cColumns = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "cColumns", "I");
3819 NMLVDISPINFOFc.puColumns = (*env)->GetFieldID(env, NMLVDISPINFOFc.clazz, "puColumns", "J");
3820 NMLVDISPINFOFc.cached = 1;
3821 }
3822
getNMLVDISPINFOFields(JNIEnv * env,jobject lpObject,NMLVDISPINFO * lpStruct)3823 NMLVDISPINFO *getNMLVDISPINFOFields(JNIEnv *env, jobject lpObject, NMLVDISPINFO *lpStruct)
3824 {
3825 if (!NMLVDISPINFOFc.cached) cacheNMLVDISPINFOFields(env, lpObject);
3826 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3827 lpStruct->item.mask = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.mask);
3828 lpStruct->item.iItem = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.iItem);
3829 lpStruct->item.iSubItem = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.iSubItem);
3830 lpStruct->item.state = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.state);
3831 lpStruct->item.stateMask = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.stateMask);
3832 lpStruct->item.pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, NMLVDISPINFOFc.pszText);
3833 lpStruct->item.cchTextMax = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.cchTextMax);
3834 lpStruct->item.iImage = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.iImage);
3835 lpStruct->item.lParam = (*env)->GetLongField(env, lpObject, NMLVDISPINFOFc.lParam);
3836 lpStruct->item.iIndent = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.iIndent);
3837 lpStruct->item.iGroupId = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.iGroupId);
3838 lpStruct->item.cColumns = (*env)->GetIntField(env, lpObject, NMLVDISPINFOFc.cColumns);
3839 lpStruct->item.puColumns = (PUINT)(*env)->GetLongField(env, lpObject, NMLVDISPINFOFc.puColumns);
3840 return lpStruct;
3841 }
3842
setNMLVDISPINFOFields(JNIEnv * env,jobject lpObject,NMLVDISPINFO * lpStruct)3843 void setNMLVDISPINFOFields(JNIEnv *env, jobject lpObject, NMLVDISPINFO *lpStruct)
3844 {
3845 if (!NMLVDISPINFOFc.cached) cacheNMLVDISPINFOFields(env, lpObject);
3846 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3847 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.mask, (jint)lpStruct->item.mask);
3848 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.iItem, (jint)lpStruct->item.iItem);
3849 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.iSubItem, (jint)lpStruct->item.iSubItem);
3850 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.state, (jint)lpStruct->item.state);
3851 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.stateMask, (jint)lpStruct->item.stateMask);
3852 (*env)->SetLongField(env, lpObject, NMLVDISPINFOFc.pszText, (jlong)lpStruct->item.pszText);
3853 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.cchTextMax, (jint)lpStruct->item.cchTextMax);
3854 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.iImage, (jint)lpStruct->item.iImage);
3855 (*env)->SetLongField(env, lpObject, NMLVDISPINFOFc.lParam, (jlong)lpStruct->item.lParam);
3856 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.iIndent, (jint)lpStruct->item.iIndent);
3857 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.iGroupId, (jint)lpStruct->item.iGroupId);
3858 (*env)->SetIntField(env, lpObject, NMLVDISPINFOFc.cColumns, (jint)lpStruct->item.cColumns);
3859 (*env)->SetLongField(env, lpObject, NMLVDISPINFOFc.puColumns, (jlong)lpStruct->item.puColumns);
3860 }
3861 #endif
3862
3863 #ifndef NO_NMLVFINDITEM
3864 typedef struct NMLVFINDITEM_FID_CACHE {
3865 int cached;
3866 jclass clazz;
3867 jfieldID iStart, flags, psz, lParam, x, y, vkDirection;
3868 } NMLVFINDITEM_FID_CACHE;
3869
3870 NMLVFINDITEM_FID_CACHE NMLVFINDITEMFc;
3871
cacheNMLVFINDITEMFields(JNIEnv * env,jobject lpObject)3872 void cacheNMLVFINDITEMFields(JNIEnv *env, jobject lpObject)
3873 {
3874 if (NMLVFINDITEMFc.cached) return;
3875 cacheNMHDRFields(env, lpObject);
3876 NMLVFINDITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
3877 NMLVFINDITEMFc.iStart = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "iStart", "I");
3878 NMLVFINDITEMFc.flags = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "flags", "I");
3879 NMLVFINDITEMFc.psz = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "psz", "J");
3880 NMLVFINDITEMFc.lParam = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "lParam", "J");
3881 NMLVFINDITEMFc.x = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "x", "I");
3882 NMLVFINDITEMFc.y = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "y", "I");
3883 NMLVFINDITEMFc.vkDirection = (*env)->GetFieldID(env, NMLVFINDITEMFc.clazz, "vkDirection", "I");
3884 NMLVFINDITEMFc.cached = 1;
3885 }
3886
getNMLVFINDITEMFields(JNIEnv * env,jobject lpObject,NMLVFINDITEM * lpStruct)3887 NMLVFINDITEM *getNMLVFINDITEMFields(JNIEnv *env, jobject lpObject, NMLVFINDITEM *lpStruct)
3888 {
3889 if (!NMLVFINDITEMFc.cached) cacheNMLVFINDITEMFields(env, lpObject);
3890 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3891 lpStruct->iStart = (*env)->GetIntField(env, lpObject, NMLVFINDITEMFc.iStart);
3892 lpStruct->lvfi.flags = (*env)->GetIntField(env, lpObject, NMLVFINDITEMFc.flags);
3893 lpStruct->lvfi.psz = (LPCTSTR)(*env)->GetLongField(env, lpObject, NMLVFINDITEMFc.psz);
3894 lpStruct->lvfi.lParam = (*env)->GetLongField(env, lpObject, NMLVFINDITEMFc.lParam);
3895 lpStruct->lvfi.pt.x = (*env)->GetIntField(env, lpObject, NMLVFINDITEMFc.x);
3896 lpStruct->lvfi.pt.y = (*env)->GetIntField(env, lpObject, NMLVFINDITEMFc.y);
3897 lpStruct->lvfi.vkDirection = (*env)->GetIntField(env, lpObject, NMLVFINDITEMFc.vkDirection);
3898 return lpStruct;
3899 }
3900
setNMLVFINDITEMFields(JNIEnv * env,jobject lpObject,NMLVFINDITEM * lpStruct)3901 void setNMLVFINDITEMFields(JNIEnv *env, jobject lpObject, NMLVFINDITEM *lpStruct)
3902 {
3903 if (!NMLVFINDITEMFc.cached) cacheNMLVFINDITEMFields(env, lpObject);
3904 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3905 (*env)->SetIntField(env, lpObject, NMLVFINDITEMFc.iStart, (jint)lpStruct->iStart);
3906 (*env)->SetIntField(env, lpObject, NMLVFINDITEMFc.flags, (jint)lpStruct->lvfi.flags);
3907 (*env)->SetLongField(env, lpObject, NMLVFINDITEMFc.psz, (jlong)lpStruct->lvfi.psz);
3908 (*env)->SetLongField(env, lpObject, NMLVFINDITEMFc.lParam, (jlong)lpStruct->lvfi.lParam);
3909 (*env)->SetIntField(env, lpObject, NMLVFINDITEMFc.x, (jint)lpStruct->lvfi.pt.x);
3910 (*env)->SetIntField(env, lpObject, NMLVFINDITEMFc.y, (jint)lpStruct->lvfi.pt.y);
3911 (*env)->SetIntField(env, lpObject, NMLVFINDITEMFc.vkDirection, (jint)lpStruct->lvfi.vkDirection);
3912 }
3913 #endif
3914
3915 #ifndef NO_NMLVODSTATECHANGE
3916 typedef struct NMLVODSTATECHANGE_FID_CACHE {
3917 int cached;
3918 jclass clazz;
3919 jfieldID iFrom, iTo, uNewState, uOldState;
3920 } NMLVODSTATECHANGE_FID_CACHE;
3921
3922 NMLVODSTATECHANGE_FID_CACHE NMLVODSTATECHANGEFc;
3923
cacheNMLVODSTATECHANGEFields(JNIEnv * env,jobject lpObject)3924 void cacheNMLVODSTATECHANGEFields(JNIEnv *env, jobject lpObject)
3925 {
3926 if (NMLVODSTATECHANGEFc.cached) return;
3927 cacheNMHDRFields(env, lpObject);
3928 NMLVODSTATECHANGEFc.clazz = (*env)->GetObjectClass(env, lpObject);
3929 NMLVODSTATECHANGEFc.iFrom = (*env)->GetFieldID(env, NMLVODSTATECHANGEFc.clazz, "iFrom", "I");
3930 NMLVODSTATECHANGEFc.iTo = (*env)->GetFieldID(env, NMLVODSTATECHANGEFc.clazz, "iTo", "I");
3931 NMLVODSTATECHANGEFc.uNewState = (*env)->GetFieldID(env, NMLVODSTATECHANGEFc.clazz, "uNewState", "I");
3932 NMLVODSTATECHANGEFc.uOldState = (*env)->GetFieldID(env, NMLVODSTATECHANGEFc.clazz, "uOldState", "I");
3933 NMLVODSTATECHANGEFc.cached = 1;
3934 }
3935
getNMLVODSTATECHANGEFields(JNIEnv * env,jobject lpObject,NMLVODSTATECHANGE * lpStruct)3936 NMLVODSTATECHANGE *getNMLVODSTATECHANGEFields(JNIEnv *env, jobject lpObject, NMLVODSTATECHANGE *lpStruct)
3937 {
3938 if (!NMLVODSTATECHANGEFc.cached) cacheNMLVODSTATECHANGEFields(env, lpObject);
3939 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3940 lpStruct->iFrom = (*env)->GetIntField(env, lpObject, NMLVODSTATECHANGEFc.iFrom);
3941 lpStruct->iTo = (*env)->GetIntField(env, lpObject, NMLVODSTATECHANGEFc.iTo);
3942 lpStruct->uNewState = (*env)->GetIntField(env, lpObject, NMLVODSTATECHANGEFc.uNewState);
3943 lpStruct->uOldState = (*env)->GetIntField(env, lpObject, NMLVODSTATECHANGEFc.uOldState);
3944 return lpStruct;
3945 }
3946
setNMLVODSTATECHANGEFields(JNIEnv * env,jobject lpObject,NMLVODSTATECHANGE * lpStruct)3947 void setNMLVODSTATECHANGEFields(JNIEnv *env, jobject lpObject, NMLVODSTATECHANGE *lpStruct)
3948 {
3949 if (!NMLVODSTATECHANGEFc.cached) cacheNMLVODSTATECHANGEFields(env, lpObject);
3950 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3951 (*env)->SetIntField(env, lpObject, NMLVODSTATECHANGEFc.iFrom, (jint)lpStruct->iFrom);
3952 (*env)->SetIntField(env, lpObject, NMLVODSTATECHANGEFc.iTo, (jint)lpStruct->iTo);
3953 (*env)->SetIntField(env, lpObject, NMLVODSTATECHANGEFc.uNewState, (jint)lpStruct->uNewState);
3954 (*env)->SetIntField(env, lpObject, NMLVODSTATECHANGEFc.uOldState, (jint)lpStruct->uOldState);
3955 }
3956 #endif
3957
3958 #ifndef NO_NMREBARCHEVRON
3959 typedef struct NMREBARCHEVRON_FID_CACHE {
3960 int cached;
3961 jclass clazz;
3962 jfieldID uBand, wID, lParam, left, top, right, bottom, lParamNM;
3963 } NMREBARCHEVRON_FID_CACHE;
3964
3965 NMREBARCHEVRON_FID_CACHE NMREBARCHEVRONFc;
3966
cacheNMREBARCHEVRONFields(JNIEnv * env,jobject lpObject)3967 void cacheNMREBARCHEVRONFields(JNIEnv *env, jobject lpObject)
3968 {
3969 if (NMREBARCHEVRONFc.cached) return;
3970 cacheNMHDRFields(env, lpObject);
3971 NMREBARCHEVRONFc.clazz = (*env)->GetObjectClass(env, lpObject);
3972 NMREBARCHEVRONFc.uBand = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "uBand", "I");
3973 NMREBARCHEVRONFc.wID = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "wID", "I");
3974 NMREBARCHEVRONFc.lParam = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "lParam", "J");
3975 NMREBARCHEVRONFc.left = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "left", "I");
3976 NMREBARCHEVRONFc.top = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "top", "I");
3977 NMREBARCHEVRONFc.right = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "right", "I");
3978 NMREBARCHEVRONFc.bottom = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "bottom", "I");
3979 NMREBARCHEVRONFc.lParamNM = (*env)->GetFieldID(env, NMREBARCHEVRONFc.clazz, "lParamNM", "J");
3980 NMREBARCHEVRONFc.cached = 1;
3981 }
3982
getNMREBARCHEVRONFields(JNIEnv * env,jobject lpObject,NMREBARCHEVRON * lpStruct)3983 NMREBARCHEVRON *getNMREBARCHEVRONFields(JNIEnv *env, jobject lpObject, NMREBARCHEVRON *lpStruct)
3984 {
3985 if (!NMREBARCHEVRONFc.cached) cacheNMREBARCHEVRONFields(env, lpObject);
3986 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
3987 lpStruct->uBand = (*env)->GetIntField(env, lpObject, NMREBARCHEVRONFc.uBand);
3988 lpStruct->wID = (*env)->GetIntField(env, lpObject, NMREBARCHEVRONFc.wID);
3989 lpStruct->lParam = (*env)->GetLongField(env, lpObject, NMREBARCHEVRONFc.lParam);
3990 lpStruct->rc.left = (*env)->GetIntField(env, lpObject, NMREBARCHEVRONFc.left);
3991 lpStruct->rc.top = (*env)->GetIntField(env, lpObject, NMREBARCHEVRONFc.top);
3992 lpStruct->rc.right = (*env)->GetIntField(env, lpObject, NMREBARCHEVRONFc.right);
3993 lpStruct->rc.bottom = (*env)->GetIntField(env, lpObject, NMREBARCHEVRONFc.bottom);
3994 lpStruct->lParamNM = (*env)->GetLongField(env, lpObject, NMREBARCHEVRONFc.lParamNM);
3995 return lpStruct;
3996 }
3997
setNMREBARCHEVRONFields(JNIEnv * env,jobject lpObject,NMREBARCHEVRON * lpStruct)3998 void setNMREBARCHEVRONFields(JNIEnv *env, jobject lpObject, NMREBARCHEVRON *lpStruct)
3999 {
4000 if (!NMREBARCHEVRONFc.cached) cacheNMREBARCHEVRONFields(env, lpObject);
4001 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4002 (*env)->SetIntField(env, lpObject, NMREBARCHEVRONFc.uBand, (jint)lpStruct->uBand);
4003 (*env)->SetIntField(env, lpObject, NMREBARCHEVRONFc.wID, (jint)lpStruct->wID);
4004 (*env)->SetLongField(env, lpObject, NMREBARCHEVRONFc.lParam, (jlong)lpStruct->lParam);
4005 (*env)->SetIntField(env, lpObject, NMREBARCHEVRONFc.left, (jint)lpStruct->rc.left);
4006 (*env)->SetIntField(env, lpObject, NMREBARCHEVRONFc.top, (jint)lpStruct->rc.top);
4007 (*env)->SetIntField(env, lpObject, NMREBARCHEVRONFc.right, (jint)lpStruct->rc.right);
4008 (*env)->SetIntField(env, lpObject, NMREBARCHEVRONFc.bottom, (jint)lpStruct->rc.bottom);
4009 (*env)->SetLongField(env, lpObject, NMREBARCHEVRONFc.lParamNM, (jlong)lpStruct->lParamNM);
4010 }
4011 #endif
4012
4013 #ifndef NO_NMREBARCHILDSIZE
4014 typedef struct NMREBARCHILDSIZE_FID_CACHE {
4015 int cached;
4016 jclass clazz;
4017 jfieldID uBand, wID, rcChild_left, rcChild_top, rcChild_right, rcChild_bottom, rcBand_left, rcBand_top, rcBand_right, rcBand_bottom;
4018 } NMREBARCHILDSIZE_FID_CACHE;
4019
4020 NMREBARCHILDSIZE_FID_CACHE NMREBARCHILDSIZEFc;
4021
cacheNMREBARCHILDSIZEFields(JNIEnv * env,jobject lpObject)4022 void cacheNMREBARCHILDSIZEFields(JNIEnv *env, jobject lpObject)
4023 {
4024 if (NMREBARCHILDSIZEFc.cached) return;
4025 cacheNMHDRFields(env, lpObject);
4026 NMREBARCHILDSIZEFc.clazz = (*env)->GetObjectClass(env, lpObject);
4027 NMREBARCHILDSIZEFc.uBand = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "uBand", "I");
4028 NMREBARCHILDSIZEFc.wID = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "wID", "I");
4029 NMREBARCHILDSIZEFc.rcChild_left = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcChild_left", "I");
4030 NMREBARCHILDSIZEFc.rcChild_top = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcChild_top", "I");
4031 NMREBARCHILDSIZEFc.rcChild_right = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcChild_right", "I");
4032 NMREBARCHILDSIZEFc.rcChild_bottom = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcChild_bottom", "I");
4033 NMREBARCHILDSIZEFc.rcBand_left = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcBand_left", "I");
4034 NMREBARCHILDSIZEFc.rcBand_top = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcBand_top", "I");
4035 NMREBARCHILDSIZEFc.rcBand_right = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcBand_right", "I");
4036 NMREBARCHILDSIZEFc.rcBand_bottom = (*env)->GetFieldID(env, NMREBARCHILDSIZEFc.clazz, "rcBand_bottom", "I");
4037 NMREBARCHILDSIZEFc.cached = 1;
4038 }
4039
getNMREBARCHILDSIZEFields(JNIEnv * env,jobject lpObject,NMREBARCHILDSIZE * lpStruct)4040 NMREBARCHILDSIZE *getNMREBARCHILDSIZEFields(JNIEnv *env, jobject lpObject, NMREBARCHILDSIZE *lpStruct)
4041 {
4042 if (!NMREBARCHILDSIZEFc.cached) cacheNMREBARCHILDSIZEFields(env, lpObject);
4043 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4044 lpStruct->uBand = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.uBand);
4045 lpStruct->wID = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.wID);
4046 lpStruct->rcChild.left = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_left);
4047 lpStruct->rcChild.top = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_top);
4048 lpStruct->rcChild.right = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_right);
4049 lpStruct->rcChild.bottom = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_bottom);
4050 lpStruct->rcBand.left = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_left);
4051 lpStruct->rcBand.top = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_top);
4052 lpStruct->rcBand.right = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_right);
4053 lpStruct->rcBand.bottom = (*env)->GetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_bottom);
4054 return lpStruct;
4055 }
4056
setNMREBARCHILDSIZEFields(JNIEnv * env,jobject lpObject,NMREBARCHILDSIZE * lpStruct)4057 void setNMREBARCHILDSIZEFields(JNIEnv *env, jobject lpObject, NMREBARCHILDSIZE *lpStruct)
4058 {
4059 if (!NMREBARCHILDSIZEFc.cached) cacheNMREBARCHILDSIZEFields(env, lpObject);
4060 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4061 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.uBand, (jint)lpStruct->uBand);
4062 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.wID, (jint)lpStruct->wID);
4063 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_left, (jint)lpStruct->rcChild.left);
4064 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_top, (jint)lpStruct->rcChild.top);
4065 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_right, (jint)lpStruct->rcChild.right);
4066 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcChild_bottom, (jint)lpStruct->rcChild.bottom);
4067 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_left, (jint)lpStruct->rcBand.left);
4068 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_top, (jint)lpStruct->rcBand.top);
4069 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_right, (jint)lpStruct->rcBand.right);
4070 (*env)->SetIntField(env, lpObject, NMREBARCHILDSIZEFc.rcBand_bottom, (jint)lpStruct->rcBand.bottom);
4071 }
4072 #endif
4073
4074 #ifndef NO_NMTBCUSTOMDRAW
4075 typedef struct NMTBCUSTOMDRAW_FID_CACHE {
4076 int cached;
4077 jclass clazz;
4078 jfieldID nmcd, hbrMonoDither, hbrLines, hpenLines, clrText, clrMark, clrTextHighlight, clrBtnFace, clrBtnHighlight, clrHighlightHotTrack, rcText_left, rcText_top, rcText_right, rcText_bottom, nStringBkMode, nHLStringBkMode, iListGap;
4079 } NMTBCUSTOMDRAW_FID_CACHE;
4080
4081 NMTBCUSTOMDRAW_FID_CACHE NMTBCUSTOMDRAWFc;
4082
cacheNMTBCUSTOMDRAWFields(JNIEnv * env,jobject lpObject)4083 void cacheNMTBCUSTOMDRAWFields(JNIEnv *env, jobject lpObject)
4084 {
4085 if (NMTBCUSTOMDRAWFc.cached) return;
4086 cacheNMCUSTOMDRAWFields(env, lpObject);
4087 NMTBCUSTOMDRAWFc.clazz = (*env)->GetObjectClass(env, lpObject);
4088 NMTBCUSTOMDRAWFc.nmcd = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "nmcd", "Lorg/eclipse/swt/internal/win32/NMCUSTOMDRAW;");
4089 NMTBCUSTOMDRAWFc.hbrMonoDither = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "hbrMonoDither", "J");
4090 NMTBCUSTOMDRAWFc.hbrLines = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "hbrLines", "J");
4091 NMTBCUSTOMDRAWFc.hpenLines = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "hpenLines", "J");
4092 NMTBCUSTOMDRAWFc.clrText = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "clrText", "I");
4093 NMTBCUSTOMDRAWFc.clrMark = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "clrMark", "I");
4094 NMTBCUSTOMDRAWFc.clrTextHighlight = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "clrTextHighlight", "I");
4095 NMTBCUSTOMDRAWFc.clrBtnFace = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "clrBtnFace", "I");
4096 NMTBCUSTOMDRAWFc.clrBtnHighlight = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "clrBtnHighlight", "I");
4097 NMTBCUSTOMDRAWFc.clrHighlightHotTrack = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "clrHighlightHotTrack", "I");
4098 NMTBCUSTOMDRAWFc.rcText_left = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "rcText_left", "I");
4099 NMTBCUSTOMDRAWFc.rcText_top = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "rcText_top", "I");
4100 NMTBCUSTOMDRAWFc.rcText_right = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "rcText_right", "I");
4101 NMTBCUSTOMDRAWFc.rcText_bottom = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "rcText_bottom", "I");
4102 NMTBCUSTOMDRAWFc.nStringBkMode = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "nStringBkMode", "I");
4103 NMTBCUSTOMDRAWFc.nHLStringBkMode = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "nHLStringBkMode", "I");
4104 NMTBCUSTOMDRAWFc.iListGap = (*env)->GetFieldID(env, NMTBCUSTOMDRAWFc.clazz, "iListGap", "I");
4105 NMTBCUSTOMDRAWFc.cached = 1;
4106 }
4107
getNMTBCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMTBCUSTOMDRAW * lpStruct)4108 NMTBCUSTOMDRAW *getNMTBCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMTBCUSTOMDRAW *lpStruct)
4109 {
4110 if (!NMTBCUSTOMDRAWFc.cached) cacheNMTBCUSTOMDRAWFields(env, lpObject);
4111 getNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
4112 {
4113 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTBCUSTOMDRAWFc.nmcd);
4114 if (lpObject1 != NULL) getNMCUSTOMDRAWFields(env, lpObject1, &lpStruct->nmcd);
4115 }
4116 lpStruct->hbrMonoDither = (HBRUSH)(*env)->GetLongField(env, lpObject, NMTBCUSTOMDRAWFc.hbrMonoDither);
4117 lpStruct->hbrLines = (HBRUSH)(*env)->GetLongField(env, lpObject, NMTBCUSTOMDRAWFc.hbrLines);
4118 lpStruct->hpenLines = (HPEN)(*env)->GetLongField(env, lpObject, NMTBCUSTOMDRAWFc.hpenLines);
4119 lpStruct->clrText = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrText);
4120 lpStruct->clrMark = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrMark);
4121 lpStruct->clrTextHighlight = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrTextHighlight);
4122 lpStruct->clrBtnFace = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrBtnFace);
4123 lpStruct->clrBtnHighlight = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrBtnHighlight);
4124 lpStruct->clrHighlightHotTrack = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrHighlightHotTrack);
4125 lpStruct->rcText.left = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_left);
4126 lpStruct->rcText.top = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_top);
4127 lpStruct->rcText.right = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_right);
4128 lpStruct->rcText.bottom = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_bottom);
4129 lpStruct->nStringBkMode = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.nStringBkMode);
4130 lpStruct->nHLStringBkMode = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.nHLStringBkMode);
4131 lpStruct->iListGap = (*env)->GetIntField(env, lpObject, NMTBCUSTOMDRAWFc.iListGap);
4132 return lpStruct;
4133 }
4134
setNMTBCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMTBCUSTOMDRAW * lpStruct)4135 void setNMTBCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMTBCUSTOMDRAW *lpStruct)
4136 {
4137 if (!NMTBCUSTOMDRAWFc.cached) cacheNMTBCUSTOMDRAWFields(env, lpObject);
4138 setNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
4139 {
4140 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTBCUSTOMDRAWFc.nmcd);
4141 if (lpObject1 != NULL) setNMCUSTOMDRAWFields(env, lpObject1, &lpStruct->nmcd);
4142 }
4143 (*env)->SetLongField(env, lpObject, NMTBCUSTOMDRAWFc.hbrMonoDither, (jlong)lpStruct->hbrMonoDither);
4144 (*env)->SetLongField(env, lpObject, NMTBCUSTOMDRAWFc.hbrLines, (jlong)lpStruct->hbrLines);
4145 (*env)->SetLongField(env, lpObject, NMTBCUSTOMDRAWFc.hpenLines, (jlong)lpStruct->hpenLines);
4146 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrText, (jint)lpStruct->clrText);
4147 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrMark, (jint)lpStruct->clrMark);
4148 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrTextHighlight, (jint)lpStruct->clrTextHighlight);
4149 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrBtnFace, (jint)lpStruct->clrBtnFace);
4150 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrBtnHighlight, (jint)lpStruct->clrBtnHighlight);
4151 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.clrHighlightHotTrack, (jint)lpStruct->clrHighlightHotTrack);
4152 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_left, (jint)lpStruct->rcText.left);
4153 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_top, (jint)lpStruct->rcText.top);
4154 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_right, (jint)lpStruct->rcText.right);
4155 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.rcText_bottom, (jint)lpStruct->rcText.bottom);
4156 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.nStringBkMode, (jint)lpStruct->nStringBkMode);
4157 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.nHLStringBkMode, (jint)lpStruct->nHLStringBkMode);
4158 (*env)->SetIntField(env, lpObject, NMTBCUSTOMDRAWFc.iListGap, (jint)lpStruct->iListGap);
4159 }
4160 #endif
4161
4162 #ifndef NO_NMTBHOTITEM
4163 typedef struct NMTBHOTITEM_FID_CACHE {
4164 int cached;
4165 jclass clazz;
4166 jfieldID idOld, idNew, dwFlags;
4167 } NMTBHOTITEM_FID_CACHE;
4168
4169 NMTBHOTITEM_FID_CACHE NMTBHOTITEMFc;
4170
cacheNMTBHOTITEMFields(JNIEnv * env,jobject lpObject)4171 void cacheNMTBHOTITEMFields(JNIEnv *env, jobject lpObject)
4172 {
4173 if (NMTBHOTITEMFc.cached) return;
4174 cacheNMHDRFields(env, lpObject);
4175 NMTBHOTITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
4176 NMTBHOTITEMFc.idOld = (*env)->GetFieldID(env, NMTBHOTITEMFc.clazz, "idOld", "I");
4177 NMTBHOTITEMFc.idNew = (*env)->GetFieldID(env, NMTBHOTITEMFc.clazz, "idNew", "I");
4178 NMTBHOTITEMFc.dwFlags = (*env)->GetFieldID(env, NMTBHOTITEMFc.clazz, "dwFlags", "I");
4179 NMTBHOTITEMFc.cached = 1;
4180 }
4181
getNMTBHOTITEMFields(JNIEnv * env,jobject lpObject,NMTBHOTITEM * lpStruct)4182 NMTBHOTITEM *getNMTBHOTITEMFields(JNIEnv *env, jobject lpObject, NMTBHOTITEM *lpStruct)
4183 {
4184 if (!NMTBHOTITEMFc.cached) cacheNMTBHOTITEMFields(env, lpObject);
4185 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4186 lpStruct->idOld = (*env)->GetIntField(env, lpObject, NMTBHOTITEMFc.idOld);
4187 lpStruct->idNew = (*env)->GetIntField(env, lpObject, NMTBHOTITEMFc.idNew);
4188 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, NMTBHOTITEMFc.dwFlags);
4189 return lpStruct;
4190 }
4191
setNMTBHOTITEMFields(JNIEnv * env,jobject lpObject,NMTBHOTITEM * lpStruct)4192 void setNMTBHOTITEMFields(JNIEnv *env, jobject lpObject, NMTBHOTITEM *lpStruct)
4193 {
4194 if (!NMTBHOTITEMFc.cached) cacheNMTBHOTITEMFields(env, lpObject);
4195 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4196 (*env)->SetIntField(env, lpObject, NMTBHOTITEMFc.idOld, (jint)lpStruct->idOld);
4197 (*env)->SetIntField(env, lpObject, NMTBHOTITEMFc.idNew, (jint)lpStruct->idNew);
4198 (*env)->SetIntField(env, lpObject, NMTBHOTITEMFc.dwFlags, (jint)lpStruct->dwFlags);
4199 }
4200 #endif
4201
4202 #ifndef NO_NMTOOLBAR
4203 typedef struct NMTOOLBAR_FID_CACHE {
4204 int cached;
4205 jclass clazz;
4206 jfieldID iItem, iBitmap, idCommand, fsState, fsStyle, dwData, iString, cchText, pszText, left, top, right, bottom;
4207 } NMTOOLBAR_FID_CACHE;
4208
4209 NMTOOLBAR_FID_CACHE NMTOOLBARFc;
4210
cacheNMTOOLBARFields(JNIEnv * env,jobject lpObject)4211 void cacheNMTOOLBARFields(JNIEnv *env, jobject lpObject)
4212 {
4213 if (NMTOOLBARFc.cached) return;
4214 cacheNMHDRFields(env, lpObject);
4215 NMTOOLBARFc.clazz = (*env)->GetObjectClass(env, lpObject);
4216 NMTOOLBARFc.iItem = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "iItem", "I");
4217 NMTOOLBARFc.iBitmap = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "iBitmap", "I");
4218 NMTOOLBARFc.idCommand = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "idCommand", "I");
4219 NMTOOLBARFc.fsState = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "fsState", "B");
4220 NMTOOLBARFc.fsStyle = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "fsStyle", "B");
4221 NMTOOLBARFc.dwData = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "dwData", "J");
4222 NMTOOLBARFc.iString = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "iString", "J");
4223 NMTOOLBARFc.cchText = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "cchText", "I");
4224 NMTOOLBARFc.pszText = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "pszText", "J");
4225 NMTOOLBARFc.left = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "left", "I");
4226 NMTOOLBARFc.top = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "top", "I");
4227 NMTOOLBARFc.right = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "right", "I");
4228 NMTOOLBARFc.bottom = (*env)->GetFieldID(env, NMTOOLBARFc.clazz, "bottom", "I");
4229 NMTOOLBARFc.cached = 1;
4230 }
4231
getNMTOOLBARFields(JNIEnv * env,jobject lpObject,NMTOOLBAR * lpStruct)4232 NMTOOLBAR *getNMTOOLBARFields(JNIEnv *env, jobject lpObject, NMTOOLBAR *lpStruct)
4233 {
4234 if (!NMTOOLBARFc.cached) cacheNMTOOLBARFields(env, lpObject);
4235 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4236 lpStruct->iItem = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.iItem);
4237 lpStruct->tbButton.iBitmap = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.iBitmap);
4238 lpStruct->tbButton.idCommand = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.idCommand);
4239 lpStruct->tbButton.fsState = (*env)->GetByteField(env, lpObject, NMTOOLBARFc.fsState);
4240 lpStruct->tbButton.fsStyle = (*env)->GetByteField(env, lpObject, NMTOOLBARFc.fsStyle);
4241 lpStruct->tbButton.dwData = (*env)->GetLongField(env, lpObject, NMTOOLBARFc.dwData);
4242 lpStruct->tbButton.iString = (*env)->GetLongField(env, lpObject, NMTOOLBARFc.iString);
4243 lpStruct->cchText = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.cchText);
4244 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, NMTOOLBARFc.pszText);
4245 lpStruct->rcButton.left = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.left);
4246 lpStruct->rcButton.top = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.top);
4247 lpStruct->rcButton.right = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.right);
4248 lpStruct->rcButton.bottom = (*env)->GetIntField(env, lpObject, NMTOOLBARFc.bottom);
4249 return lpStruct;
4250 }
4251
setNMTOOLBARFields(JNIEnv * env,jobject lpObject,NMTOOLBAR * lpStruct)4252 void setNMTOOLBARFields(JNIEnv *env, jobject lpObject, NMTOOLBAR *lpStruct)
4253 {
4254 if (!NMTOOLBARFc.cached) cacheNMTOOLBARFields(env, lpObject);
4255 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4256 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.iItem, (jint)lpStruct->iItem);
4257 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.iBitmap, (jint)lpStruct->tbButton.iBitmap);
4258 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.idCommand, (jint)lpStruct->tbButton.idCommand);
4259 (*env)->SetByteField(env, lpObject, NMTOOLBARFc.fsState, (jbyte)lpStruct->tbButton.fsState);
4260 (*env)->SetByteField(env, lpObject, NMTOOLBARFc.fsStyle, (jbyte)lpStruct->tbButton.fsStyle);
4261 (*env)->SetLongField(env, lpObject, NMTOOLBARFc.dwData, (jlong)lpStruct->tbButton.dwData);
4262 (*env)->SetLongField(env, lpObject, NMTOOLBARFc.iString, (jlong)lpStruct->tbButton.iString);
4263 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.cchText, (jint)lpStruct->cchText);
4264 (*env)->SetLongField(env, lpObject, NMTOOLBARFc.pszText, (jlong)lpStruct->pszText);
4265 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.left, (jint)lpStruct->rcButton.left);
4266 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.top, (jint)lpStruct->rcButton.top);
4267 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.right, (jint)lpStruct->rcButton.right);
4268 (*env)->SetIntField(env, lpObject, NMTOOLBARFc.bottom, (jint)lpStruct->rcButton.bottom);
4269 }
4270 #endif
4271
4272 #ifndef NO_NMTREEVIEW
4273 typedef struct NMTREEVIEW_FID_CACHE {
4274 int cached;
4275 jclass clazz;
4276 jfieldID hdr, action, itemOld, itemNew, ptDrag;
4277 } NMTREEVIEW_FID_CACHE;
4278
4279 NMTREEVIEW_FID_CACHE NMTREEVIEWFc;
4280
cacheNMTREEVIEWFields(JNIEnv * env,jobject lpObject)4281 void cacheNMTREEVIEWFields(JNIEnv *env, jobject lpObject)
4282 {
4283 if (NMTREEVIEWFc.cached) return;
4284 NMTREEVIEWFc.clazz = (*env)->GetObjectClass(env, lpObject);
4285 NMTREEVIEWFc.hdr = (*env)->GetFieldID(env, NMTREEVIEWFc.clazz, "hdr", "Lorg/eclipse/swt/internal/win32/NMHDR;");
4286 NMTREEVIEWFc.action = (*env)->GetFieldID(env, NMTREEVIEWFc.clazz, "action", "I");
4287 NMTREEVIEWFc.itemOld = (*env)->GetFieldID(env, NMTREEVIEWFc.clazz, "itemOld", "Lorg/eclipse/swt/internal/win32/TVITEM;");
4288 NMTREEVIEWFc.itemNew = (*env)->GetFieldID(env, NMTREEVIEWFc.clazz, "itemNew", "Lorg/eclipse/swt/internal/win32/TVITEM;");
4289 NMTREEVIEWFc.ptDrag = (*env)->GetFieldID(env, NMTREEVIEWFc.clazz, "ptDrag", "Lorg/eclipse/swt/internal/win32/POINT;");
4290 NMTREEVIEWFc.cached = 1;
4291 }
4292
getNMTREEVIEWFields(JNIEnv * env,jobject lpObject,NMTREEVIEW * lpStruct)4293 NMTREEVIEW *getNMTREEVIEWFields(JNIEnv *env, jobject lpObject, NMTREEVIEW *lpStruct)
4294 {
4295 if (!NMTREEVIEWFc.cached) cacheNMTREEVIEWFields(env, lpObject);
4296 {
4297 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.hdr);
4298 if (lpObject1 != NULL) getNMHDRFields(env, lpObject1, &lpStruct->hdr);
4299 }
4300 lpStruct->action = (*env)->GetIntField(env, lpObject, NMTREEVIEWFc.action);
4301 {
4302 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.itemOld);
4303 if (lpObject1 != NULL) getTVITEMFields(env, lpObject1, &lpStruct->itemOld);
4304 }
4305 {
4306 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.itemNew);
4307 if (lpObject1 != NULL) getTVITEMFields(env, lpObject1, &lpStruct->itemNew);
4308 }
4309 {
4310 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.ptDrag);
4311 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->ptDrag);
4312 }
4313 return lpStruct;
4314 }
4315
setNMTREEVIEWFields(JNIEnv * env,jobject lpObject,NMTREEVIEW * lpStruct)4316 void setNMTREEVIEWFields(JNIEnv *env, jobject lpObject, NMTREEVIEW *lpStruct)
4317 {
4318 if (!NMTREEVIEWFc.cached) cacheNMTREEVIEWFields(env, lpObject);
4319 {
4320 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.hdr);
4321 if (lpObject1 != NULL) setNMHDRFields(env, lpObject1, &lpStruct->hdr);
4322 }
4323 (*env)->SetIntField(env, lpObject, NMTREEVIEWFc.action, (jint)lpStruct->action);
4324 {
4325 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.itemOld);
4326 if (lpObject1 != NULL) setTVITEMFields(env, lpObject1, &lpStruct->itemOld);
4327 }
4328 {
4329 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.itemNew);
4330 if (lpObject1 != NULL) setTVITEMFields(env, lpObject1, &lpStruct->itemNew);
4331 }
4332 {
4333 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NMTREEVIEWFc.ptDrag);
4334 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->ptDrag);
4335 }
4336 }
4337 #endif
4338
4339 #ifndef NO_NMTTCUSTOMDRAW
4340 typedef struct NMTTCUSTOMDRAW_FID_CACHE {
4341 int cached;
4342 jclass clazz;
4343 jfieldID uDrawFlags;
4344 } NMTTCUSTOMDRAW_FID_CACHE;
4345
4346 NMTTCUSTOMDRAW_FID_CACHE NMTTCUSTOMDRAWFc;
4347
cacheNMTTCUSTOMDRAWFields(JNIEnv * env,jobject lpObject)4348 void cacheNMTTCUSTOMDRAWFields(JNIEnv *env, jobject lpObject)
4349 {
4350 if (NMTTCUSTOMDRAWFc.cached) return;
4351 cacheNMCUSTOMDRAWFields(env, lpObject);
4352 NMTTCUSTOMDRAWFc.clazz = (*env)->GetObjectClass(env, lpObject);
4353 NMTTCUSTOMDRAWFc.uDrawFlags = (*env)->GetFieldID(env, NMTTCUSTOMDRAWFc.clazz, "uDrawFlags", "I");
4354 NMTTCUSTOMDRAWFc.cached = 1;
4355 }
4356
getNMTTCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMTTCUSTOMDRAW * lpStruct)4357 NMTTCUSTOMDRAW *getNMTTCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMTTCUSTOMDRAW *lpStruct)
4358 {
4359 if (!NMTTCUSTOMDRAWFc.cached) cacheNMTTCUSTOMDRAWFields(env, lpObject);
4360 getNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
4361 lpStruct->uDrawFlags = (*env)->GetIntField(env, lpObject, NMTTCUSTOMDRAWFc.uDrawFlags);
4362 return lpStruct;
4363 }
4364
setNMTTCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMTTCUSTOMDRAW * lpStruct)4365 void setNMTTCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMTTCUSTOMDRAW *lpStruct)
4366 {
4367 if (!NMTTCUSTOMDRAWFc.cached) cacheNMTTCUSTOMDRAWFields(env, lpObject);
4368 setNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
4369 (*env)->SetIntField(env, lpObject, NMTTCUSTOMDRAWFc.uDrawFlags, (jint)lpStruct->uDrawFlags);
4370 }
4371 #endif
4372
4373 #ifndef NO_NMTTDISPINFO
4374 typedef struct NMTTDISPINFO_FID_CACHE {
4375 int cached;
4376 jclass clazz;
4377 jfieldID lpszText, szText, hinst, uFlags, lParam;
4378 } NMTTDISPINFO_FID_CACHE;
4379
4380 NMTTDISPINFO_FID_CACHE NMTTDISPINFOFc;
4381
cacheNMTTDISPINFOFields(JNIEnv * env,jobject lpObject)4382 void cacheNMTTDISPINFOFields(JNIEnv *env, jobject lpObject)
4383 {
4384 if (NMTTDISPINFOFc.cached) return;
4385 cacheNMHDRFields(env, lpObject);
4386 NMTTDISPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
4387 NMTTDISPINFOFc.lpszText = (*env)->GetFieldID(env, NMTTDISPINFOFc.clazz, "lpszText", "J");
4388 NMTTDISPINFOFc.szText = (*env)->GetFieldID(env, NMTTDISPINFOFc.clazz, "szText", "[C");
4389 NMTTDISPINFOFc.hinst = (*env)->GetFieldID(env, NMTTDISPINFOFc.clazz, "hinst", "J");
4390 NMTTDISPINFOFc.uFlags = (*env)->GetFieldID(env, NMTTDISPINFOFc.clazz, "uFlags", "I");
4391 NMTTDISPINFOFc.lParam = (*env)->GetFieldID(env, NMTTDISPINFOFc.clazz, "lParam", "J");
4392 NMTTDISPINFOFc.cached = 1;
4393 }
4394
getNMTTDISPINFOFields(JNIEnv * env,jobject lpObject,NMTTDISPINFO * lpStruct)4395 NMTTDISPINFO *getNMTTDISPINFOFields(JNIEnv *env, jobject lpObject, NMTTDISPINFO *lpStruct)
4396 {
4397 if (!NMTTDISPINFOFc.cached) cacheNMTTDISPINFOFields(env, lpObject);
4398 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4399 lpStruct->lpszText = (void *)(*env)->GetLongField(env, lpObject, NMTTDISPINFOFc.lpszText);
4400 {
4401 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NMTTDISPINFOFc.szText);
4402 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szText) / sizeof(jchar), (jchar *)lpStruct->szText);
4403 }
4404 lpStruct->hinst = (HINSTANCE)(*env)->GetLongField(env, lpObject, NMTTDISPINFOFc.hinst);
4405 lpStruct->uFlags = (*env)->GetIntField(env, lpObject, NMTTDISPINFOFc.uFlags);
4406 lpStruct->lParam = (*env)->GetLongField(env, lpObject, NMTTDISPINFOFc.lParam);
4407 return lpStruct;
4408 }
4409
setNMTTDISPINFOFields(JNIEnv * env,jobject lpObject,NMTTDISPINFO * lpStruct)4410 void setNMTTDISPINFOFields(JNIEnv *env, jobject lpObject, NMTTDISPINFO *lpStruct)
4411 {
4412 if (!NMTTDISPINFOFc.cached) cacheNMTTDISPINFOFields(env, lpObject);
4413 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4414 (*env)->SetLongField(env, lpObject, NMTTDISPINFOFc.lpszText, (jlong)lpStruct->lpszText);
4415 {
4416 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NMTTDISPINFOFc.szText);
4417 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szText) / sizeof(jchar), (jchar *)lpStruct->szText);
4418 }
4419 (*env)->SetLongField(env, lpObject, NMTTDISPINFOFc.hinst, (jlong)lpStruct->hinst);
4420 (*env)->SetIntField(env, lpObject, NMTTDISPINFOFc.uFlags, (jint)lpStruct->uFlags);
4421 (*env)->SetLongField(env, lpObject, NMTTDISPINFOFc.lParam, (jlong)lpStruct->lParam);
4422 }
4423 #endif
4424
4425 #ifndef NO_NMTVCUSTOMDRAW
4426 typedef struct NMTVCUSTOMDRAW_FID_CACHE {
4427 int cached;
4428 jclass clazz;
4429 jfieldID clrText, clrTextBk, iLevel;
4430 } NMTVCUSTOMDRAW_FID_CACHE;
4431
4432 NMTVCUSTOMDRAW_FID_CACHE NMTVCUSTOMDRAWFc;
4433
cacheNMTVCUSTOMDRAWFields(JNIEnv * env,jobject lpObject)4434 void cacheNMTVCUSTOMDRAWFields(JNIEnv *env, jobject lpObject)
4435 {
4436 if (NMTVCUSTOMDRAWFc.cached) return;
4437 cacheNMCUSTOMDRAWFields(env, lpObject);
4438 NMTVCUSTOMDRAWFc.clazz = (*env)->GetObjectClass(env, lpObject);
4439 NMTVCUSTOMDRAWFc.clrText = (*env)->GetFieldID(env, NMTVCUSTOMDRAWFc.clazz, "clrText", "I");
4440 NMTVCUSTOMDRAWFc.clrTextBk = (*env)->GetFieldID(env, NMTVCUSTOMDRAWFc.clazz, "clrTextBk", "I");
4441 NMTVCUSTOMDRAWFc.iLevel = (*env)->GetFieldID(env, NMTVCUSTOMDRAWFc.clazz, "iLevel", "I");
4442 NMTVCUSTOMDRAWFc.cached = 1;
4443 }
4444
getNMTVCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMTVCUSTOMDRAW * lpStruct)4445 NMTVCUSTOMDRAW *getNMTVCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMTVCUSTOMDRAW *lpStruct)
4446 {
4447 if (!NMTVCUSTOMDRAWFc.cached) cacheNMTVCUSTOMDRAWFields(env, lpObject);
4448 getNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
4449 lpStruct->clrText = (*env)->GetIntField(env, lpObject, NMTVCUSTOMDRAWFc.clrText);
4450 lpStruct->clrTextBk = (*env)->GetIntField(env, lpObject, NMTVCUSTOMDRAWFc.clrTextBk);
4451 lpStruct->iLevel = (*env)->GetIntField(env, lpObject, NMTVCUSTOMDRAWFc.iLevel);
4452 return lpStruct;
4453 }
4454
setNMTVCUSTOMDRAWFields(JNIEnv * env,jobject lpObject,NMTVCUSTOMDRAW * lpStruct)4455 void setNMTVCUSTOMDRAWFields(JNIEnv *env, jobject lpObject, NMTVCUSTOMDRAW *lpStruct)
4456 {
4457 if (!NMTVCUSTOMDRAWFc.cached) cacheNMTVCUSTOMDRAWFields(env, lpObject);
4458 setNMCUSTOMDRAWFields(env, lpObject, (NMCUSTOMDRAW *)lpStruct);
4459 (*env)->SetIntField(env, lpObject, NMTVCUSTOMDRAWFc.clrText, (jint)lpStruct->clrText);
4460 (*env)->SetIntField(env, lpObject, NMTVCUSTOMDRAWFc.clrTextBk, (jint)lpStruct->clrTextBk);
4461 (*env)->SetIntField(env, lpObject, NMTVCUSTOMDRAWFc.iLevel, (jint)lpStruct->iLevel);
4462 }
4463 #endif
4464
4465 #ifndef NO_NMTVDISPINFO
4466 typedef struct NMTVDISPINFO_FID_CACHE {
4467 int cached;
4468 jclass clazz;
4469 jfieldID mask, hItem, state, stateMask, pszText, cchTextMax, iImage, iSelectedImage, cChildren, lParam;
4470 } NMTVDISPINFO_FID_CACHE;
4471
4472 NMTVDISPINFO_FID_CACHE NMTVDISPINFOFc;
4473
cacheNMTVDISPINFOFields(JNIEnv * env,jobject lpObject)4474 void cacheNMTVDISPINFOFields(JNIEnv *env, jobject lpObject)
4475 {
4476 if (NMTVDISPINFOFc.cached) return;
4477 cacheNMHDRFields(env, lpObject);
4478 NMTVDISPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
4479 NMTVDISPINFOFc.mask = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "mask", "I");
4480 NMTVDISPINFOFc.hItem = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "hItem", "J");
4481 NMTVDISPINFOFc.state = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "state", "I");
4482 NMTVDISPINFOFc.stateMask = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "stateMask", "I");
4483 NMTVDISPINFOFc.pszText = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "pszText", "J");
4484 NMTVDISPINFOFc.cchTextMax = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "cchTextMax", "I");
4485 NMTVDISPINFOFc.iImage = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "iImage", "I");
4486 NMTVDISPINFOFc.iSelectedImage = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "iSelectedImage", "I");
4487 NMTVDISPINFOFc.cChildren = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "cChildren", "I");
4488 NMTVDISPINFOFc.lParam = (*env)->GetFieldID(env, NMTVDISPINFOFc.clazz, "lParam", "J");
4489 NMTVDISPINFOFc.cached = 1;
4490 }
4491
getNMTVDISPINFOFields(JNIEnv * env,jobject lpObject,NMTVDISPINFO * lpStruct)4492 NMTVDISPINFO *getNMTVDISPINFOFields(JNIEnv *env, jobject lpObject, NMTVDISPINFO *lpStruct)
4493 {
4494 if (!NMTVDISPINFOFc.cached) cacheNMTVDISPINFOFields(env, lpObject);
4495 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4496 lpStruct->item.mask = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.mask);
4497 lpStruct->item.hItem = (HTREEITEM)(*env)->GetLongField(env, lpObject, NMTVDISPINFOFc.hItem);
4498 lpStruct->item.state = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.state);
4499 lpStruct->item.stateMask = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.stateMask);
4500 lpStruct->item.pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, NMTVDISPINFOFc.pszText);
4501 lpStruct->item.cchTextMax = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.cchTextMax);
4502 lpStruct->item.iImage = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.iImage);
4503 lpStruct->item.iSelectedImage = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.iSelectedImage);
4504 lpStruct->item.cChildren = (*env)->GetIntField(env, lpObject, NMTVDISPINFOFc.cChildren);
4505 lpStruct->item.lParam = (*env)->GetLongField(env, lpObject, NMTVDISPINFOFc.lParam);
4506 return lpStruct;
4507 }
4508
setNMTVDISPINFOFields(JNIEnv * env,jobject lpObject,NMTVDISPINFO * lpStruct)4509 void setNMTVDISPINFOFields(JNIEnv *env, jobject lpObject, NMTVDISPINFO *lpStruct)
4510 {
4511 if (!NMTVDISPINFOFc.cached) cacheNMTVDISPINFOFields(env, lpObject);
4512 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4513 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.mask, (jint)lpStruct->item.mask);
4514 (*env)->SetLongField(env, lpObject, NMTVDISPINFOFc.hItem, (jlong)lpStruct->item.hItem);
4515 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.state, (jint)lpStruct->item.state);
4516 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.stateMask, (jint)lpStruct->item.stateMask);
4517 (*env)->SetLongField(env, lpObject, NMTVDISPINFOFc.pszText, (jlong)lpStruct->item.pszText);
4518 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.cchTextMax, (jint)lpStruct->item.cchTextMax);
4519 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.iImage, (jint)lpStruct->item.iImage);
4520 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.iSelectedImage, (jint)lpStruct->item.iSelectedImage);
4521 (*env)->SetIntField(env, lpObject, NMTVDISPINFOFc.cChildren, (jint)lpStruct->item.cChildren);
4522 (*env)->SetLongField(env, lpObject, NMTVDISPINFOFc.lParam, (jlong)lpStruct->item.lParam);
4523 }
4524 #endif
4525
4526 #ifndef NO_NMTVITEMCHANGE
4527 typedef struct NMTVITEMCHANGE_FID_CACHE {
4528 int cached;
4529 jclass clazz;
4530 jfieldID uChanged, hItem, uStateNew, uStateOld, lParam;
4531 } NMTVITEMCHANGE_FID_CACHE;
4532
4533 NMTVITEMCHANGE_FID_CACHE NMTVITEMCHANGEFc;
4534
cacheNMTVITEMCHANGEFields(JNIEnv * env,jobject lpObject)4535 void cacheNMTVITEMCHANGEFields(JNIEnv *env, jobject lpObject)
4536 {
4537 if (NMTVITEMCHANGEFc.cached) return;
4538 cacheNMHDRFields(env, lpObject);
4539 NMTVITEMCHANGEFc.clazz = (*env)->GetObjectClass(env, lpObject);
4540 NMTVITEMCHANGEFc.uChanged = (*env)->GetFieldID(env, NMTVITEMCHANGEFc.clazz, "uChanged", "I");
4541 NMTVITEMCHANGEFc.hItem = (*env)->GetFieldID(env, NMTVITEMCHANGEFc.clazz, "hItem", "J");
4542 NMTVITEMCHANGEFc.uStateNew = (*env)->GetFieldID(env, NMTVITEMCHANGEFc.clazz, "uStateNew", "I");
4543 NMTVITEMCHANGEFc.uStateOld = (*env)->GetFieldID(env, NMTVITEMCHANGEFc.clazz, "uStateOld", "I");
4544 NMTVITEMCHANGEFc.lParam = (*env)->GetFieldID(env, NMTVITEMCHANGEFc.clazz, "lParam", "J");
4545 NMTVITEMCHANGEFc.cached = 1;
4546 }
4547
getNMTVITEMCHANGEFields(JNIEnv * env,jobject lpObject,NMTVITEMCHANGE * lpStruct)4548 NMTVITEMCHANGE *getNMTVITEMCHANGEFields(JNIEnv *env, jobject lpObject, NMTVITEMCHANGE *lpStruct)
4549 {
4550 if (!NMTVITEMCHANGEFc.cached) cacheNMTVITEMCHANGEFields(env, lpObject);
4551 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4552 lpStruct->uChanged = (*env)->GetIntField(env, lpObject, NMTVITEMCHANGEFc.uChanged);
4553 lpStruct->hItem = (HTREEITEM)(*env)->GetLongField(env, lpObject, NMTVITEMCHANGEFc.hItem);
4554 lpStruct->uStateNew = (*env)->GetIntField(env, lpObject, NMTVITEMCHANGEFc.uStateNew);
4555 lpStruct->uStateOld = (*env)->GetIntField(env, lpObject, NMTVITEMCHANGEFc.uStateOld);
4556 lpStruct->lParam = (*env)->GetLongField(env, lpObject, NMTVITEMCHANGEFc.lParam);
4557 return lpStruct;
4558 }
4559
setNMTVITEMCHANGEFields(JNIEnv * env,jobject lpObject,NMTVITEMCHANGE * lpStruct)4560 void setNMTVITEMCHANGEFields(JNIEnv *env, jobject lpObject, NMTVITEMCHANGE *lpStruct)
4561 {
4562 if (!NMTVITEMCHANGEFc.cached) cacheNMTVITEMCHANGEFields(env, lpObject);
4563 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4564 (*env)->SetIntField(env, lpObject, NMTVITEMCHANGEFc.uChanged, (jint)lpStruct->uChanged);
4565 (*env)->SetLongField(env, lpObject, NMTVITEMCHANGEFc.hItem, (jlong)lpStruct->hItem);
4566 (*env)->SetIntField(env, lpObject, NMTVITEMCHANGEFc.uStateNew, (jint)lpStruct->uStateNew);
4567 (*env)->SetIntField(env, lpObject, NMTVITEMCHANGEFc.uStateOld, (jint)lpStruct->uStateOld);
4568 (*env)->SetLongField(env, lpObject, NMTVITEMCHANGEFc.lParam, (jlong)lpStruct->lParam);
4569 }
4570 #endif
4571
4572 #ifndef NO_NMUPDOWN
4573 typedef struct NMUPDOWN_FID_CACHE {
4574 int cached;
4575 jclass clazz;
4576 jfieldID iPos, iDelta;
4577 } NMUPDOWN_FID_CACHE;
4578
4579 NMUPDOWN_FID_CACHE NMUPDOWNFc;
4580
cacheNMUPDOWNFields(JNIEnv * env,jobject lpObject)4581 void cacheNMUPDOWNFields(JNIEnv *env, jobject lpObject)
4582 {
4583 if (NMUPDOWNFc.cached) return;
4584 cacheNMHDRFields(env, lpObject);
4585 NMUPDOWNFc.clazz = (*env)->GetObjectClass(env, lpObject);
4586 NMUPDOWNFc.iPos = (*env)->GetFieldID(env, NMUPDOWNFc.clazz, "iPos", "I");
4587 NMUPDOWNFc.iDelta = (*env)->GetFieldID(env, NMUPDOWNFc.clazz, "iDelta", "I");
4588 NMUPDOWNFc.cached = 1;
4589 }
4590
getNMUPDOWNFields(JNIEnv * env,jobject lpObject,NMUPDOWN * lpStruct)4591 NMUPDOWN *getNMUPDOWNFields(JNIEnv *env, jobject lpObject, NMUPDOWN *lpStruct)
4592 {
4593 if (!NMUPDOWNFc.cached) cacheNMUPDOWNFields(env, lpObject);
4594 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4595 lpStruct->iPos = (*env)->GetIntField(env, lpObject, NMUPDOWNFc.iPos);
4596 lpStruct->iDelta = (*env)->GetIntField(env, lpObject, NMUPDOWNFc.iDelta);
4597 return lpStruct;
4598 }
4599
setNMUPDOWNFields(JNIEnv * env,jobject lpObject,NMUPDOWN * lpStruct)4600 void setNMUPDOWNFields(JNIEnv *env, jobject lpObject, NMUPDOWN *lpStruct)
4601 {
4602 if (!NMUPDOWNFc.cached) cacheNMUPDOWNFields(env, lpObject);
4603 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4604 (*env)->SetIntField(env, lpObject, NMUPDOWNFc.iPos, (jint)lpStruct->iPos);
4605 (*env)->SetIntField(env, lpObject, NMUPDOWNFc.iDelta, (jint)lpStruct->iDelta);
4606 }
4607 #endif
4608
4609 #ifndef NO_NONCLIENTMETRICS
4610 typedef struct NONCLIENTMETRICS_FID_CACHE {
4611 int cached;
4612 jclass clazz;
4613 jfieldID cbSize, iBorderWidth, iScrollWidth, iScrollHeight, iCaptionWidth, iCaptionHeight, lfCaptionFont, iSmCaptionWidth, iSmCaptionHeight, lfSmCaptionFont, iMenuWidth, iMenuHeight, lfMenuFont, lfStatusFont, lfMessageFont;
4614 } NONCLIENTMETRICS_FID_CACHE;
4615
4616 NONCLIENTMETRICS_FID_CACHE NONCLIENTMETRICSFc;
4617
cacheNONCLIENTMETRICSFields(JNIEnv * env,jobject lpObject)4618 void cacheNONCLIENTMETRICSFields(JNIEnv *env, jobject lpObject)
4619 {
4620 if (NONCLIENTMETRICSFc.cached) return;
4621 NONCLIENTMETRICSFc.clazz = (*env)->GetObjectClass(env, lpObject);
4622 NONCLIENTMETRICSFc.cbSize = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "cbSize", "I");
4623 NONCLIENTMETRICSFc.iBorderWidth = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iBorderWidth", "I");
4624 NONCLIENTMETRICSFc.iScrollWidth = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iScrollWidth", "I");
4625 NONCLIENTMETRICSFc.iScrollHeight = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iScrollHeight", "I");
4626 NONCLIENTMETRICSFc.iCaptionWidth = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iCaptionWidth", "I");
4627 NONCLIENTMETRICSFc.iCaptionHeight = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iCaptionHeight", "I");
4628 NONCLIENTMETRICSFc.lfCaptionFont = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "lfCaptionFont", "Lorg/eclipse/swt/internal/win32/LOGFONT;");
4629 NONCLIENTMETRICSFc.iSmCaptionWidth = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iSmCaptionWidth", "I");
4630 NONCLIENTMETRICSFc.iSmCaptionHeight = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iSmCaptionHeight", "I");
4631 NONCLIENTMETRICSFc.lfSmCaptionFont = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "lfSmCaptionFont", "Lorg/eclipse/swt/internal/win32/LOGFONT;");
4632 NONCLIENTMETRICSFc.iMenuWidth = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iMenuWidth", "I");
4633 NONCLIENTMETRICSFc.iMenuHeight = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "iMenuHeight", "I");
4634 NONCLIENTMETRICSFc.lfMenuFont = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "lfMenuFont", "Lorg/eclipse/swt/internal/win32/LOGFONT;");
4635 NONCLIENTMETRICSFc.lfStatusFont = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "lfStatusFont", "Lorg/eclipse/swt/internal/win32/LOGFONT;");
4636 NONCLIENTMETRICSFc.lfMessageFont = (*env)->GetFieldID(env, NONCLIENTMETRICSFc.clazz, "lfMessageFont", "Lorg/eclipse/swt/internal/win32/LOGFONT;");
4637 NONCLIENTMETRICSFc.cached = 1;
4638 }
4639
getNONCLIENTMETRICSFields(JNIEnv * env,jobject lpObject,NONCLIENTMETRICS * lpStruct)4640 NONCLIENTMETRICS *getNONCLIENTMETRICSFields(JNIEnv *env, jobject lpObject, NONCLIENTMETRICS *lpStruct)
4641 {
4642 if (!NONCLIENTMETRICSFc.cached) cacheNONCLIENTMETRICSFields(env, lpObject);
4643 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.cbSize);
4644 lpStruct->iBorderWidth = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iBorderWidth);
4645 lpStruct->iScrollWidth = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iScrollWidth);
4646 lpStruct->iScrollHeight = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iScrollHeight);
4647 lpStruct->iCaptionWidth = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iCaptionWidth);
4648 lpStruct->iCaptionHeight = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iCaptionHeight);
4649 {
4650 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfCaptionFont);
4651 if (lpObject1 != NULL) getLOGFONTFields(env, lpObject1, &lpStruct->lfCaptionFont);
4652 }
4653 lpStruct->iSmCaptionWidth = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iSmCaptionWidth);
4654 lpStruct->iSmCaptionHeight = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iSmCaptionHeight);
4655 {
4656 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfSmCaptionFont);
4657 if (lpObject1 != NULL) getLOGFONTFields(env, lpObject1, &lpStruct->lfSmCaptionFont);
4658 }
4659 lpStruct->iMenuWidth = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iMenuWidth);
4660 lpStruct->iMenuHeight = (*env)->GetIntField(env, lpObject, NONCLIENTMETRICSFc.iMenuHeight);
4661 {
4662 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfMenuFont);
4663 if (lpObject1 != NULL) getLOGFONTFields(env, lpObject1, &lpStruct->lfMenuFont);
4664 }
4665 {
4666 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfStatusFont);
4667 if (lpObject1 != NULL) getLOGFONTFields(env, lpObject1, &lpStruct->lfStatusFont);
4668 }
4669 {
4670 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfMessageFont);
4671 if (lpObject1 != NULL) getLOGFONTFields(env, lpObject1, &lpStruct->lfMessageFont);
4672 }
4673 return lpStruct;
4674 }
4675
setNONCLIENTMETRICSFields(JNIEnv * env,jobject lpObject,NONCLIENTMETRICS * lpStruct)4676 void setNONCLIENTMETRICSFields(JNIEnv *env, jobject lpObject, NONCLIENTMETRICS *lpStruct)
4677 {
4678 if (!NONCLIENTMETRICSFc.cached) cacheNONCLIENTMETRICSFields(env, lpObject);
4679 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.cbSize, (jint)lpStruct->cbSize);
4680 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iBorderWidth, (jint)lpStruct->iBorderWidth);
4681 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iScrollWidth, (jint)lpStruct->iScrollWidth);
4682 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iScrollHeight, (jint)lpStruct->iScrollHeight);
4683 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iCaptionWidth, (jint)lpStruct->iCaptionWidth);
4684 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iCaptionHeight, (jint)lpStruct->iCaptionHeight);
4685 {
4686 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfCaptionFont);
4687 if (lpObject1 != NULL) setLOGFONTFields(env, lpObject1, &lpStruct->lfCaptionFont);
4688 }
4689 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iSmCaptionWidth, (jint)lpStruct->iSmCaptionWidth);
4690 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iSmCaptionHeight, (jint)lpStruct->iSmCaptionHeight);
4691 {
4692 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfSmCaptionFont);
4693 if (lpObject1 != NULL) setLOGFONTFields(env, lpObject1, &lpStruct->lfSmCaptionFont);
4694 }
4695 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iMenuWidth, (jint)lpStruct->iMenuWidth);
4696 (*env)->SetIntField(env, lpObject, NONCLIENTMETRICSFc.iMenuHeight, (jint)lpStruct->iMenuHeight);
4697 {
4698 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfMenuFont);
4699 if (lpObject1 != NULL) setLOGFONTFields(env, lpObject1, &lpStruct->lfMenuFont);
4700 }
4701 {
4702 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfStatusFont);
4703 if (lpObject1 != NULL) setLOGFONTFields(env, lpObject1, &lpStruct->lfStatusFont);
4704 }
4705 {
4706 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, NONCLIENTMETRICSFc.lfMessageFont);
4707 if (lpObject1 != NULL) setLOGFONTFields(env, lpObject1, &lpStruct->lfMessageFont);
4708 }
4709 }
4710 #endif
4711
4712 #ifndef NO_NOTIFYICONDATA
4713 typedef struct NOTIFYICONDATA_FID_CACHE {
4714 int cached;
4715 jclass clazz;
4716 jfieldID cbSize, hWnd, uID, uFlags, uCallbackMessage, hIcon, szTip, dwState, dwStateMask, szInfo, szInfoTitle, uVersion, dwInfoFlags;
4717 } NOTIFYICONDATA_FID_CACHE;
4718
4719 NOTIFYICONDATA_FID_CACHE NOTIFYICONDATAFc;
4720
cacheNOTIFYICONDATAFields(JNIEnv * env,jobject lpObject)4721 void cacheNOTIFYICONDATAFields(JNIEnv *env, jobject lpObject)
4722 {
4723 if (NOTIFYICONDATAFc.cached) return;
4724 NOTIFYICONDATAFc.clazz = (*env)->GetObjectClass(env, lpObject);
4725 NOTIFYICONDATAFc.cbSize = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "cbSize", "I");
4726 NOTIFYICONDATAFc.hWnd = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "hWnd", "J");
4727 NOTIFYICONDATAFc.uID = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "uID", "I");
4728 NOTIFYICONDATAFc.uFlags = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "uFlags", "I");
4729 NOTIFYICONDATAFc.uCallbackMessage = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "uCallbackMessage", "I");
4730 NOTIFYICONDATAFc.hIcon = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "hIcon", "J");
4731 NOTIFYICONDATAFc.szTip = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "szTip", "[C");
4732 NOTIFYICONDATAFc.dwState = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "dwState", "I");
4733 NOTIFYICONDATAFc.dwStateMask = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "dwStateMask", "I");
4734 NOTIFYICONDATAFc.szInfo = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "szInfo", "[C");
4735 NOTIFYICONDATAFc.szInfoTitle = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "szInfoTitle", "[C");
4736 NOTIFYICONDATAFc.uVersion = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "uVersion", "I");
4737 NOTIFYICONDATAFc.dwInfoFlags = (*env)->GetFieldID(env, NOTIFYICONDATAFc.clazz, "dwInfoFlags", "I");
4738 NOTIFYICONDATAFc.cached = 1;
4739 }
4740
getNOTIFYICONDATAFields(JNIEnv * env,jobject lpObject,NOTIFYICONDATA * lpStruct)4741 NOTIFYICONDATA *getNOTIFYICONDATAFields(JNIEnv *env, jobject lpObject, NOTIFYICONDATA *lpStruct)
4742 {
4743 if (!NOTIFYICONDATAFc.cached) cacheNOTIFYICONDATAFields(env, lpObject);
4744 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.cbSize);
4745 lpStruct->hWnd = (HWND)(*env)->GetLongField(env, lpObject, NOTIFYICONDATAFc.hWnd);
4746 lpStruct->uID = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.uID);
4747 lpStruct->uFlags = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.uFlags);
4748 lpStruct->uCallbackMessage = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.uCallbackMessage);
4749 lpStruct->hIcon = (HICON)(*env)->GetLongField(env, lpObject, NOTIFYICONDATAFc.hIcon);
4750 {
4751 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NOTIFYICONDATAFc.szTip);
4752 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szTip) / sizeof(jchar), (jchar *)lpStruct->szTip);
4753 }
4754 lpStruct->dwState = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.dwState);
4755 lpStruct->dwStateMask = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.dwStateMask);
4756 {
4757 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NOTIFYICONDATAFc.szInfo);
4758 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szInfo) / sizeof(jchar), (jchar *)lpStruct->szInfo);
4759 }
4760 {
4761 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NOTIFYICONDATAFc.szInfoTitle);
4762 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szInfoTitle) / sizeof(jchar), (jchar *)lpStruct->szInfoTitle);
4763 }
4764 lpStruct->uVersion = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.uVersion);
4765 lpStruct->dwInfoFlags = (*env)->GetIntField(env, lpObject, NOTIFYICONDATAFc.dwInfoFlags);
4766 return lpStruct;
4767 }
4768
setNOTIFYICONDATAFields(JNIEnv * env,jobject lpObject,NOTIFYICONDATA * lpStruct)4769 void setNOTIFYICONDATAFields(JNIEnv *env, jobject lpObject, NOTIFYICONDATA *lpStruct)
4770 {
4771 if (!NOTIFYICONDATAFc.cached) cacheNOTIFYICONDATAFields(env, lpObject);
4772 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.cbSize, (jint)lpStruct->cbSize);
4773 (*env)->SetLongField(env, lpObject, NOTIFYICONDATAFc.hWnd, (jlong)lpStruct->hWnd);
4774 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.uID, (jint)lpStruct->uID);
4775 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.uFlags, (jint)lpStruct->uFlags);
4776 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.uCallbackMessage, (jint)lpStruct->uCallbackMessage);
4777 (*env)->SetLongField(env, lpObject, NOTIFYICONDATAFc.hIcon, (jlong)lpStruct->hIcon);
4778 {
4779 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NOTIFYICONDATAFc.szTip);
4780 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szTip) / sizeof(jchar), (jchar *)lpStruct->szTip);
4781 }
4782 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.dwState, (jint)lpStruct->dwState);
4783 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.dwStateMask, (jint)lpStruct->dwStateMask);
4784 {
4785 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NOTIFYICONDATAFc.szInfo);
4786 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szInfo) / sizeof(jchar), (jchar *)lpStruct->szInfo);
4787 }
4788 {
4789 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, NOTIFYICONDATAFc.szInfoTitle);
4790 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szInfoTitle) / sizeof(jchar), (jchar *)lpStruct->szInfoTitle);
4791 }
4792 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.uVersion, (jint)lpStruct->uVersion);
4793 (*env)->SetIntField(env, lpObject, NOTIFYICONDATAFc.dwInfoFlags, (jint)lpStruct->dwInfoFlags);
4794 }
4795 #endif
4796
4797 #ifndef NO_OFNOTIFY
4798 typedef struct OFNOTIFY_FID_CACHE {
4799 int cached;
4800 jclass clazz;
4801 jfieldID lpOFN, pszFile;
4802 } OFNOTIFY_FID_CACHE;
4803
4804 OFNOTIFY_FID_CACHE OFNOTIFYFc;
4805
cacheOFNOTIFYFields(JNIEnv * env,jobject lpObject)4806 void cacheOFNOTIFYFields(JNIEnv *env, jobject lpObject)
4807 {
4808 if (OFNOTIFYFc.cached) return;
4809 cacheNMHDRFields(env, lpObject);
4810 OFNOTIFYFc.clazz = (*env)->GetObjectClass(env, lpObject);
4811 OFNOTIFYFc.lpOFN = (*env)->GetFieldID(env, OFNOTIFYFc.clazz, "lpOFN", "J");
4812 OFNOTIFYFc.pszFile = (*env)->GetFieldID(env, OFNOTIFYFc.clazz, "pszFile", "J");
4813 OFNOTIFYFc.cached = 1;
4814 }
4815
getOFNOTIFYFields(JNIEnv * env,jobject lpObject,OFNOTIFY * lpStruct)4816 OFNOTIFY *getOFNOTIFYFields(JNIEnv *env, jobject lpObject, OFNOTIFY *lpStruct)
4817 {
4818 if (!OFNOTIFYFc.cached) cacheOFNOTIFYFields(env, lpObject);
4819 getNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4820 lpStruct->lpOFN = (LPOPENFILENAME)(*env)->GetLongField(env, lpObject, OFNOTIFYFc.lpOFN);
4821 lpStruct->pszFile = (LPTSTR)(*env)->GetLongField(env, lpObject, OFNOTIFYFc.pszFile);
4822 return lpStruct;
4823 }
4824
setOFNOTIFYFields(JNIEnv * env,jobject lpObject,OFNOTIFY * lpStruct)4825 void setOFNOTIFYFields(JNIEnv *env, jobject lpObject, OFNOTIFY *lpStruct)
4826 {
4827 if (!OFNOTIFYFc.cached) cacheOFNOTIFYFields(env, lpObject);
4828 setNMHDRFields(env, lpObject, (NMHDR *)lpStruct);
4829 (*env)->SetLongField(env, lpObject, OFNOTIFYFc.lpOFN, (jlong)lpStruct->lpOFN);
4830 (*env)->SetLongField(env, lpObject, OFNOTIFYFc.pszFile, (jlong)lpStruct->pszFile);
4831 }
4832 #endif
4833
4834 #ifndef NO_OPENFILENAME
4835 typedef struct OPENFILENAME_FID_CACHE {
4836 int cached;
4837 jclass clazz;
4838 jfieldID lStructSize, hwndOwner, hInstance, lpstrFilter, lpstrCustomFilter, nMaxCustFilter, nFilterIndex, lpstrFile, nMaxFile, lpstrFileTitle, nMaxFileTitle, lpstrInitialDir, lpstrTitle, Flags, nFileOffset, nFileExtension, lpstrDefExt, lCustData, lpfnHook, lpTemplateName, pvReserved, dwReserved, FlagsEx;
4839 } OPENFILENAME_FID_CACHE;
4840
4841 OPENFILENAME_FID_CACHE OPENFILENAMEFc;
4842
cacheOPENFILENAMEFields(JNIEnv * env,jobject lpObject)4843 void cacheOPENFILENAMEFields(JNIEnv *env, jobject lpObject)
4844 {
4845 if (OPENFILENAMEFc.cached) return;
4846 OPENFILENAMEFc.clazz = (*env)->GetObjectClass(env, lpObject);
4847 OPENFILENAMEFc.lStructSize = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lStructSize", "I");
4848 OPENFILENAMEFc.hwndOwner = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "hwndOwner", "J");
4849 OPENFILENAMEFc.hInstance = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "hInstance", "J");
4850 OPENFILENAMEFc.lpstrFilter = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrFilter", "J");
4851 OPENFILENAMEFc.lpstrCustomFilter = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrCustomFilter", "J");
4852 OPENFILENAMEFc.nMaxCustFilter = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "nMaxCustFilter", "I");
4853 OPENFILENAMEFc.nFilterIndex = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "nFilterIndex", "I");
4854 OPENFILENAMEFc.lpstrFile = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrFile", "J");
4855 OPENFILENAMEFc.nMaxFile = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "nMaxFile", "I");
4856 OPENFILENAMEFc.lpstrFileTitle = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrFileTitle", "J");
4857 OPENFILENAMEFc.nMaxFileTitle = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "nMaxFileTitle", "I");
4858 OPENFILENAMEFc.lpstrInitialDir = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrInitialDir", "J");
4859 OPENFILENAMEFc.lpstrTitle = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrTitle", "J");
4860 OPENFILENAMEFc.Flags = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "Flags", "I");
4861 OPENFILENAMEFc.nFileOffset = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "nFileOffset", "S");
4862 OPENFILENAMEFc.nFileExtension = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "nFileExtension", "S");
4863 OPENFILENAMEFc.lpstrDefExt = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpstrDefExt", "J");
4864 OPENFILENAMEFc.lCustData = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lCustData", "J");
4865 OPENFILENAMEFc.lpfnHook = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpfnHook", "J");
4866 OPENFILENAMEFc.lpTemplateName = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "lpTemplateName", "J");
4867 OPENFILENAMEFc.pvReserved = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "pvReserved", "J");
4868 OPENFILENAMEFc.dwReserved = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "dwReserved", "I");
4869 OPENFILENAMEFc.FlagsEx = (*env)->GetFieldID(env, OPENFILENAMEFc.clazz, "FlagsEx", "I");
4870 OPENFILENAMEFc.cached = 1;
4871 }
4872
getOPENFILENAMEFields(JNIEnv * env,jobject lpObject,OPENFILENAME * lpStruct)4873 OPENFILENAME *getOPENFILENAMEFields(JNIEnv *env, jobject lpObject, OPENFILENAME *lpStruct)
4874 {
4875 if (!OPENFILENAMEFc.cached) cacheOPENFILENAMEFields(env, lpObject);
4876 lpStruct->lStructSize = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.lStructSize);
4877 lpStruct->hwndOwner = (HWND)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.hwndOwner);
4878 lpStruct->hInstance = (HINSTANCE)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.hInstance);
4879 lpStruct->lpstrFilter = (LPCTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrFilter);
4880 lpStruct->lpstrCustomFilter = (LPTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrCustomFilter);
4881 lpStruct->nMaxCustFilter = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.nMaxCustFilter);
4882 lpStruct->nFilterIndex = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.nFilterIndex);
4883 lpStruct->lpstrFile = (LPTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrFile);
4884 lpStruct->nMaxFile = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.nMaxFile);
4885 lpStruct->lpstrFileTitle = (LPTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrFileTitle);
4886 lpStruct->nMaxFileTitle = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.nMaxFileTitle);
4887 lpStruct->lpstrInitialDir = (LPCTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrInitialDir);
4888 lpStruct->lpstrTitle = (LPCTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrTitle);
4889 lpStruct->Flags = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.Flags);
4890 lpStruct->nFileOffset = (*env)->GetShortField(env, lpObject, OPENFILENAMEFc.nFileOffset);
4891 lpStruct->nFileExtension = (*env)->GetShortField(env, lpObject, OPENFILENAMEFc.nFileExtension);
4892 lpStruct->lpstrDefExt = (LPCTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpstrDefExt);
4893 lpStruct->lCustData = (*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lCustData);
4894 lpStruct->lpfnHook = (LPOFNHOOKPROC)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpfnHook);
4895 lpStruct->lpTemplateName = (LPCTSTR)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.lpTemplateName);
4896 lpStruct->pvReserved = (void *)(*env)->GetLongField(env, lpObject, OPENFILENAMEFc.pvReserved);
4897 lpStruct->dwReserved = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.dwReserved);
4898 lpStruct->FlagsEx = (*env)->GetIntField(env, lpObject, OPENFILENAMEFc.FlagsEx);
4899 return lpStruct;
4900 }
4901
setOPENFILENAMEFields(JNIEnv * env,jobject lpObject,OPENFILENAME * lpStruct)4902 void setOPENFILENAMEFields(JNIEnv *env, jobject lpObject, OPENFILENAME *lpStruct)
4903 {
4904 if (!OPENFILENAMEFc.cached) cacheOPENFILENAMEFields(env, lpObject);
4905 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.lStructSize, (jint)lpStruct->lStructSize);
4906 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.hwndOwner, (jlong)lpStruct->hwndOwner);
4907 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.hInstance, (jlong)lpStruct->hInstance);
4908 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrFilter, (jlong)lpStruct->lpstrFilter);
4909 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrCustomFilter, (jlong)lpStruct->lpstrCustomFilter);
4910 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.nMaxCustFilter, (jint)lpStruct->nMaxCustFilter);
4911 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.nFilterIndex, (jint)lpStruct->nFilterIndex);
4912 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrFile, (jlong)lpStruct->lpstrFile);
4913 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.nMaxFile, (jint)lpStruct->nMaxFile);
4914 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrFileTitle, (jlong)lpStruct->lpstrFileTitle);
4915 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.nMaxFileTitle, (jint)lpStruct->nMaxFileTitle);
4916 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrInitialDir, (jlong)lpStruct->lpstrInitialDir);
4917 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrTitle, (jlong)lpStruct->lpstrTitle);
4918 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.Flags, (jint)lpStruct->Flags);
4919 (*env)->SetShortField(env, lpObject, OPENFILENAMEFc.nFileOffset, (jshort)lpStruct->nFileOffset);
4920 (*env)->SetShortField(env, lpObject, OPENFILENAMEFc.nFileExtension, (jshort)lpStruct->nFileExtension);
4921 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpstrDefExt, (jlong)lpStruct->lpstrDefExt);
4922 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lCustData, (jlong)lpStruct->lCustData);
4923 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpfnHook, (jlong)lpStruct->lpfnHook);
4924 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.lpTemplateName, (jlong)lpStruct->lpTemplateName);
4925 (*env)->SetLongField(env, lpObject, OPENFILENAMEFc.pvReserved, (jlong)lpStruct->pvReserved);
4926 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.dwReserved, (jint)lpStruct->dwReserved);
4927 (*env)->SetIntField(env, lpObject, OPENFILENAMEFc.FlagsEx, (jint)lpStruct->FlagsEx);
4928 }
4929 #endif
4930
4931 #ifndef NO_OUTLINETEXTMETRIC
4932 typedef struct OUTLINETEXTMETRIC_FID_CACHE {
4933 int cached;
4934 jclass clazz;
4935 jfieldID otmSize, otmTextMetrics, otmFiller, otmPanoseNumber_bFamilyType, otmPanoseNumber_bSerifStyle, otmPanoseNumber_bWeight, otmPanoseNumber_bProportion, otmPanoseNumber_bContrast, otmPanoseNumber_bStrokeVariation, otmPanoseNumber_bArmStyle, otmPanoseNumber_bLetterform, otmPanoseNumber_bMidline, otmPanoseNumber_bXHeight, otmfsSelection, otmfsType, otmsCharSlopeRise, otmsCharSlopeRun, otmItalicAngle, otmEMSquare, otmAscent, otmDescent, otmLineGap, otmsCapEmHeight, otmsXHeight, otmrcFontBox, otmMacAscent, otmMacDescent, otmMacLineGap, otmusMinimumPPEM, otmptSubscriptSize, otmptSubscriptOffset, otmptSuperscriptSize, otmptSuperscriptOffset, otmsStrikeoutSize, otmsStrikeoutPosition, otmsUnderscoreSize, otmsUnderscorePosition, otmpFamilyName, otmpFaceName, otmpStyleName, otmpFullName;
4936 } OUTLINETEXTMETRIC_FID_CACHE;
4937
4938 OUTLINETEXTMETRIC_FID_CACHE OUTLINETEXTMETRICFc;
4939
cacheOUTLINETEXTMETRICFields(JNIEnv * env,jobject lpObject)4940 void cacheOUTLINETEXTMETRICFields(JNIEnv *env, jobject lpObject)
4941 {
4942 if (OUTLINETEXTMETRICFc.cached) return;
4943 OUTLINETEXTMETRICFc.clazz = (*env)->GetObjectClass(env, lpObject);
4944 OUTLINETEXTMETRICFc.otmSize = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmSize", "I");
4945 OUTLINETEXTMETRICFc.otmTextMetrics = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmTextMetrics", "Lorg/eclipse/swt/internal/win32/TEXTMETRIC;");
4946 OUTLINETEXTMETRICFc.otmFiller = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmFiller", "B");
4947 OUTLINETEXTMETRICFc.otmPanoseNumber_bFamilyType = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bFamilyType", "B");
4948 OUTLINETEXTMETRICFc.otmPanoseNumber_bSerifStyle = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bSerifStyle", "B");
4949 OUTLINETEXTMETRICFc.otmPanoseNumber_bWeight = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bWeight", "B");
4950 OUTLINETEXTMETRICFc.otmPanoseNumber_bProportion = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bProportion", "B");
4951 OUTLINETEXTMETRICFc.otmPanoseNumber_bContrast = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bContrast", "B");
4952 OUTLINETEXTMETRICFc.otmPanoseNumber_bStrokeVariation = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bStrokeVariation", "B");
4953 OUTLINETEXTMETRICFc.otmPanoseNumber_bArmStyle = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bArmStyle", "B");
4954 OUTLINETEXTMETRICFc.otmPanoseNumber_bLetterform = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bLetterform", "B");
4955 OUTLINETEXTMETRICFc.otmPanoseNumber_bMidline = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bMidline", "B");
4956 OUTLINETEXTMETRICFc.otmPanoseNumber_bXHeight = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmPanoseNumber_bXHeight", "B");
4957 OUTLINETEXTMETRICFc.otmfsSelection = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmfsSelection", "I");
4958 OUTLINETEXTMETRICFc.otmfsType = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmfsType", "I");
4959 OUTLINETEXTMETRICFc.otmsCharSlopeRise = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsCharSlopeRise", "I");
4960 OUTLINETEXTMETRICFc.otmsCharSlopeRun = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsCharSlopeRun", "I");
4961 OUTLINETEXTMETRICFc.otmItalicAngle = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmItalicAngle", "I");
4962 OUTLINETEXTMETRICFc.otmEMSquare = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmEMSquare", "I");
4963 OUTLINETEXTMETRICFc.otmAscent = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmAscent", "I");
4964 OUTLINETEXTMETRICFc.otmDescent = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmDescent", "I");
4965 OUTLINETEXTMETRICFc.otmLineGap = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmLineGap", "I");
4966 OUTLINETEXTMETRICFc.otmsCapEmHeight = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsCapEmHeight", "I");
4967 OUTLINETEXTMETRICFc.otmsXHeight = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsXHeight", "I");
4968 OUTLINETEXTMETRICFc.otmrcFontBox = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmrcFontBox", "Lorg/eclipse/swt/internal/win32/RECT;");
4969 OUTLINETEXTMETRICFc.otmMacAscent = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmMacAscent", "I");
4970 OUTLINETEXTMETRICFc.otmMacDescent = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmMacDescent", "I");
4971 OUTLINETEXTMETRICFc.otmMacLineGap = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmMacLineGap", "I");
4972 OUTLINETEXTMETRICFc.otmusMinimumPPEM = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmusMinimumPPEM", "I");
4973 OUTLINETEXTMETRICFc.otmptSubscriptSize = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmptSubscriptSize", "Lorg/eclipse/swt/internal/win32/POINT;");
4974 OUTLINETEXTMETRICFc.otmptSubscriptOffset = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmptSubscriptOffset", "Lorg/eclipse/swt/internal/win32/POINT;");
4975 OUTLINETEXTMETRICFc.otmptSuperscriptSize = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmptSuperscriptSize", "Lorg/eclipse/swt/internal/win32/POINT;");
4976 OUTLINETEXTMETRICFc.otmptSuperscriptOffset = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmptSuperscriptOffset", "Lorg/eclipse/swt/internal/win32/POINT;");
4977 OUTLINETEXTMETRICFc.otmsStrikeoutSize = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsStrikeoutSize", "I");
4978 OUTLINETEXTMETRICFc.otmsStrikeoutPosition = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsStrikeoutPosition", "I");
4979 OUTLINETEXTMETRICFc.otmsUnderscoreSize = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsUnderscoreSize", "I");
4980 OUTLINETEXTMETRICFc.otmsUnderscorePosition = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmsUnderscorePosition", "I");
4981 OUTLINETEXTMETRICFc.otmpFamilyName = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmpFamilyName", "J");
4982 OUTLINETEXTMETRICFc.otmpFaceName = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmpFaceName", "J");
4983 OUTLINETEXTMETRICFc.otmpStyleName = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmpStyleName", "J");
4984 OUTLINETEXTMETRICFc.otmpFullName = (*env)->GetFieldID(env, OUTLINETEXTMETRICFc.clazz, "otmpFullName", "J");
4985 OUTLINETEXTMETRICFc.cached = 1;
4986 }
4987
getOUTLINETEXTMETRICFields(JNIEnv * env,jobject lpObject,OUTLINETEXTMETRIC * lpStruct)4988 OUTLINETEXTMETRIC *getOUTLINETEXTMETRICFields(JNIEnv *env, jobject lpObject, OUTLINETEXTMETRIC *lpStruct)
4989 {
4990 if (!OUTLINETEXTMETRICFc.cached) cacheOUTLINETEXTMETRICFields(env, lpObject);
4991 lpStruct->otmSize = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmSize);
4992 {
4993 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmTextMetrics);
4994 if (lpObject1 != NULL) getTEXTMETRICFields(env, lpObject1, &lpStruct->otmTextMetrics);
4995 }
4996 lpStruct->otmFiller = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmFiller);
4997 lpStruct->otmPanoseNumber.bFamilyType = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bFamilyType);
4998 lpStruct->otmPanoseNumber.bSerifStyle = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bSerifStyle);
4999 lpStruct->otmPanoseNumber.bWeight = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bWeight);
5000 lpStruct->otmPanoseNumber.bProportion = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bProportion);
5001 lpStruct->otmPanoseNumber.bContrast = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bContrast);
5002 lpStruct->otmPanoseNumber.bStrokeVariation = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bStrokeVariation);
5003 lpStruct->otmPanoseNumber.bArmStyle = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bArmStyle);
5004 lpStruct->otmPanoseNumber.bLetterform = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bLetterform);
5005 lpStruct->otmPanoseNumber.bMidline = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bMidline);
5006 lpStruct->otmPanoseNumber.bXHeight = (*env)->GetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bXHeight);
5007 lpStruct->otmfsSelection = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmfsSelection);
5008 lpStruct->otmfsType = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmfsType);
5009 lpStruct->otmsCharSlopeRise = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsCharSlopeRise);
5010 lpStruct->otmsCharSlopeRun = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsCharSlopeRun);
5011 lpStruct->otmItalicAngle = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmItalicAngle);
5012 lpStruct->otmEMSquare = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmEMSquare);
5013 lpStruct->otmAscent = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmAscent);
5014 lpStruct->otmDescent = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmDescent);
5015 lpStruct->otmLineGap = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmLineGap);
5016 lpStruct->otmsCapEmHeight = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsCapEmHeight);
5017 lpStruct->otmsXHeight = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsXHeight);
5018 {
5019 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmrcFontBox);
5020 if (lpObject1 != NULL) getRECTFields(env, lpObject1, &lpStruct->otmrcFontBox);
5021 }
5022 lpStruct->otmMacAscent = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmMacAscent);
5023 lpStruct->otmMacDescent = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmMacDescent);
5024 lpStruct->otmMacLineGap = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmMacLineGap);
5025 lpStruct->otmusMinimumPPEM = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmusMinimumPPEM);
5026 {
5027 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSubscriptSize);
5028 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->otmptSubscriptSize);
5029 }
5030 {
5031 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSubscriptOffset);
5032 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->otmptSubscriptOffset);
5033 }
5034 {
5035 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSuperscriptSize);
5036 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->otmptSuperscriptSize);
5037 }
5038 {
5039 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSuperscriptOffset);
5040 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->otmptSuperscriptOffset);
5041 }
5042 lpStruct->otmsStrikeoutSize = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsStrikeoutSize);
5043 lpStruct->otmsStrikeoutPosition = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsStrikeoutPosition);
5044 lpStruct->otmsUnderscoreSize = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsUnderscoreSize);
5045 lpStruct->otmsUnderscorePosition = (*env)->GetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsUnderscorePosition);
5046 lpStruct->otmpFamilyName = (PSTR)(*env)->GetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpFamilyName);
5047 lpStruct->otmpFaceName = (PSTR)(*env)->GetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpFaceName);
5048 lpStruct->otmpStyleName = (PSTR)(*env)->GetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpStyleName);
5049 lpStruct->otmpFullName = (PSTR)(*env)->GetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpFullName);
5050 return lpStruct;
5051 }
5052
setOUTLINETEXTMETRICFields(JNIEnv * env,jobject lpObject,OUTLINETEXTMETRIC * lpStruct)5053 void setOUTLINETEXTMETRICFields(JNIEnv *env, jobject lpObject, OUTLINETEXTMETRIC *lpStruct)
5054 {
5055 if (!OUTLINETEXTMETRICFc.cached) cacheOUTLINETEXTMETRICFields(env, lpObject);
5056 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmSize, (jint)lpStruct->otmSize);
5057 {
5058 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmTextMetrics);
5059 if (lpObject1 != NULL) setTEXTMETRICFields(env, lpObject1, &lpStruct->otmTextMetrics);
5060 }
5061 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmFiller, (jbyte)lpStruct->otmFiller);
5062 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bFamilyType, (jbyte)lpStruct->otmPanoseNumber.bFamilyType);
5063 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bSerifStyle, (jbyte)lpStruct->otmPanoseNumber.bSerifStyle);
5064 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bWeight, (jbyte)lpStruct->otmPanoseNumber.bWeight);
5065 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bProportion, (jbyte)lpStruct->otmPanoseNumber.bProportion);
5066 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bContrast, (jbyte)lpStruct->otmPanoseNumber.bContrast);
5067 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bStrokeVariation, (jbyte)lpStruct->otmPanoseNumber.bStrokeVariation);
5068 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bArmStyle, (jbyte)lpStruct->otmPanoseNumber.bArmStyle);
5069 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bLetterform, (jbyte)lpStruct->otmPanoseNumber.bLetterform);
5070 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bMidline, (jbyte)lpStruct->otmPanoseNumber.bMidline);
5071 (*env)->SetByteField(env, lpObject, OUTLINETEXTMETRICFc.otmPanoseNumber_bXHeight, (jbyte)lpStruct->otmPanoseNumber.bXHeight);
5072 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmfsSelection, (jint)lpStruct->otmfsSelection);
5073 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmfsType, (jint)lpStruct->otmfsType);
5074 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsCharSlopeRise, (jint)lpStruct->otmsCharSlopeRise);
5075 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsCharSlopeRun, (jint)lpStruct->otmsCharSlopeRun);
5076 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmItalicAngle, (jint)lpStruct->otmItalicAngle);
5077 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmEMSquare, (jint)lpStruct->otmEMSquare);
5078 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmAscent, (jint)lpStruct->otmAscent);
5079 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmDescent, (jint)lpStruct->otmDescent);
5080 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmLineGap, (jint)lpStruct->otmLineGap);
5081 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsCapEmHeight, (jint)lpStruct->otmsCapEmHeight);
5082 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsXHeight, (jint)lpStruct->otmsXHeight);
5083 {
5084 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmrcFontBox);
5085 if (lpObject1 != NULL) setRECTFields(env, lpObject1, &lpStruct->otmrcFontBox);
5086 }
5087 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmMacAscent, (jint)lpStruct->otmMacAscent);
5088 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmMacDescent, (jint)lpStruct->otmMacDescent);
5089 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmMacLineGap, (jint)lpStruct->otmMacLineGap);
5090 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmusMinimumPPEM, (jint)lpStruct->otmusMinimumPPEM);
5091 {
5092 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSubscriptSize);
5093 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->otmptSubscriptSize);
5094 }
5095 {
5096 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSubscriptOffset);
5097 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->otmptSubscriptOffset);
5098 }
5099 {
5100 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSuperscriptSize);
5101 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->otmptSuperscriptSize);
5102 }
5103 {
5104 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, OUTLINETEXTMETRICFc.otmptSuperscriptOffset);
5105 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->otmptSuperscriptOffset);
5106 }
5107 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsStrikeoutSize, (jint)lpStruct->otmsStrikeoutSize);
5108 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsStrikeoutPosition, (jint)lpStruct->otmsStrikeoutPosition);
5109 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsUnderscoreSize, (jint)lpStruct->otmsUnderscoreSize);
5110 (*env)->SetIntField(env, lpObject, OUTLINETEXTMETRICFc.otmsUnderscorePosition, (jint)lpStruct->otmsUnderscorePosition);
5111 (*env)->SetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpFamilyName, (jlong)lpStruct->otmpFamilyName);
5112 (*env)->SetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpFaceName, (jlong)lpStruct->otmpFaceName);
5113 (*env)->SetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpStyleName, (jlong)lpStruct->otmpStyleName);
5114 (*env)->SetLongField(env, lpObject, OUTLINETEXTMETRICFc.otmpFullName, (jlong)lpStruct->otmpFullName);
5115 }
5116 #endif
5117
5118 #ifndef NO_PAINTSTRUCT
5119 typedef struct PAINTSTRUCT_FID_CACHE {
5120 int cached;
5121 jclass clazz;
5122 jfieldID hdc, fErase, left, top, right, bottom, fRestore, fIncUpdate, rgbReserved;
5123 } PAINTSTRUCT_FID_CACHE;
5124
5125 PAINTSTRUCT_FID_CACHE PAINTSTRUCTFc;
5126
cachePAINTSTRUCTFields(JNIEnv * env,jobject lpObject)5127 void cachePAINTSTRUCTFields(JNIEnv *env, jobject lpObject)
5128 {
5129 if (PAINTSTRUCTFc.cached) return;
5130 PAINTSTRUCTFc.clazz = (*env)->GetObjectClass(env, lpObject);
5131 PAINTSTRUCTFc.hdc = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "hdc", "J");
5132 PAINTSTRUCTFc.fErase = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "fErase", "Z");
5133 PAINTSTRUCTFc.left = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "left", "I");
5134 PAINTSTRUCTFc.top = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "top", "I");
5135 PAINTSTRUCTFc.right = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "right", "I");
5136 PAINTSTRUCTFc.bottom = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "bottom", "I");
5137 PAINTSTRUCTFc.fRestore = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "fRestore", "Z");
5138 PAINTSTRUCTFc.fIncUpdate = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "fIncUpdate", "Z");
5139 PAINTSTRUCTFc.rgbReserved = (*env)->GetFieldID(env, PAINTSTRUCTFc.clazz, "rgbReserved", "[B");
5140 PAINTSTRUCTFc.cached = 1;
5141 }
5142
getPAINTSTRUCTFields(JNIEnv * env,jobject lpObject,PAINTSTRUCT * lpStruct)5143 PAINTSTRUCT *getPAINTSTRUCTFields(JNIEnv *env, jobject lpObject, PAINTSTRUCT *lpStruct)
5144 {
5145 if (!PAINTSTRUCTFc.cached) cachePAINTSTRUCTFields(env, lpObject);
5146 lpStruct->hdc = (HDC)(*env)->GetLongField(env, lpObject, PAINTSTRUCTFc.hdc);
5147 lpStruct->fErase = (*env)->GetBooleanField(env, lpObject, PAINTSTRUCTFc.fErase);
5148 lpStruct->rcPaint.left = (*env)->GetIntField(env, lpObject, PAINTSTRUCTFc.left);
5149 lpStruct->rcPaint.top = (*env)->GetIntField(env, lpObject, PAINTSTRUCTFc.top);
5150 lpStruct->rcPaint.right = (*env)->GetIntField(env, lpObject, PAINTSTRUCTFc.right);
5151 lpStruct->rcPaint.bottom = (*env)->GetIntField(env, lpObject, PAINTSTRUCTFc.bottom);
5152 lpStruct->fRestore = (*env)->GetBooleanField(env, lpObject, PAINTSTRUCTFc.fRestore);
5153 lpStruct->fIncUpdate = (*env)->GetBooleanField(env, lpObject, PAINTSTRUCTFc.fIncUpdate);
5154 {
5155 jbyteArray lpObject1 = (jbyteArray)(*env)->GetObjectField(env, lpObject, PAINTSTRUCTFc.rgbReserved);
5156 (*env)->GetByteArrayRegion(env, lpObject1, 0, sizeof(lpStruct->rgbReserved), (jbyte *)lpStruct->rgbReserved);
5157 }
5158 return lpStruct;
5159 }
5160
setPAINTSTRUCTFields(JNIEnv * env,jobject lpObject,PAINTSTRUCT * lpStruct)5161 void setPAINTSTRUCTFields(JNIEnv *env, jobject lpObject, PAINTSTRUCT *lpStruct)
5162 {
5163 if (!PAINTSTRUCTFc.cached) cachePAINTSTRUCTFields(env, lpObject);
5164 (*env)->SetLongField(env, lpObject, PAINTSTRUCTFc.hdc, (jlong)lpStruct->hdc);
5165 (*env)->SetBooleanField(env, lpObject, PAINTSTRUCTFc.fErase, (jboolean)lpStruct->fErase);
5166 (*env)->SetIntField(env, lpObject, PAINTSTRUCTFc.left, (jint)lpStruct->rcPaint.left);
5167 (*env)->SetIntField(env, lpObject, PAINTSTRUCTFc.top, (jint)lpStruct->rcPaint.top);
5168 (*env)->SetIntField(env, lpObject, PAINTSTRUCTFc.right, (jint)lpStruct->rcPaint.right);
5169 (*env)->SetIntField(env, lpObject, PAINTSTRUCTFc.bottom, (jint)lpStruct->rcPaint.bottom);
5170 (*env)->SetBooleanField(env, lpObject, PAINTSTRUCTFc.fRestore, (jboolean)lpStruct->fRestore);
5171 (*env)->SetBooleanField(env, lpObject, PAINTSTRUCTFc.fIncUpdate, (jboolean)lpStruct->fIncUpdate);
5172 {
5173 jbyteArray lpObject1 = (jbyteArray)(*env)->GetObjectField(env, lpObject, PAINTSTRUCTFc.rgbReserved);
5174 (*env)->SetByteArrayRegion(env, lpObject1, 0, sizeof(lpStruct->rgbReserved), (jbyte *)lpStruct->rgbReserved);
5175 }
5176 }
5177 #endif
5178
5179 #ifndef NO_PANOSE
5180 typedef struct PANOSE_FID_CACHE {
5181 int cached;
5182 jclass clazz;
5183 jfieldID bFamilyType, bSerifStyle, bWeight, bProportion, bContrast, bStrokeVariation, bArmStyle, bLetterform, bMidline, bXHeight;
5184 } PANOSE_FID_CACHE;
5185
5186 PANOSE_FID_CACHE PANOSEFc;
5187
cachePANOSEFields(JNIEnv * env,jobject lpObject)5188 void cachePANOSEFields(JNIEnv *env, jobject lpObject)
5189 {
5190 if (PANOSEFc.cached) return;
5191 PANOSEFc.clazz = (*env)->GetObjectClass(env, lpObject);
5192 PANOSEFc.bFamilyType = (*env)->GetFieldID(env, PANOSEFc.clazz, "bFamilyType", "B");
5193 PANOSEFc.bSerifStyle = (*env)->GetFieldID(env, PANOSEFc.clazz, "bSerifStyle", "B");
5194 PANOSEFc.bWeight = (*env)->GetFieldID(env, PANOSEFc.clazz, "bWeight", "B");
5195 PANOSEFc.bProportion = (*env)->GetFieldID(env, PANOSEFc.clazz, "bProportion", "B");
5196 PANOSEFc.bContrast = (*env)->GetFieldID(env, PANOSEFc.clazz, "bContrast", "B");
5197 PANOSEFc.bStrokeVariation = (*env)->GetFieldID(env, PANOSEFc.clazz, "bStrokeVariation", "B");
5198 PANOSEFc.bArmStyle = (*env)->GetFieldID(env, PANOSEFc.clazz, "bArmStyle", "B");
5199 PANOSEFc.bLetterform = (*env)->GetFieldID(env, PANOSEFc.clazz, "bLetterform", "B");
5200 PANOSEFc.bMidline = (*env)->GetFieldID(env, PANOSEFc.clazz, "bMidline", "B");
5201 PANOSEFc.bXHeight = (*env)->GetFieldID(env, PANOSEFc.clazz, "bXHeight", "B");
5202 PANOSEFc.cached = 1;
5203 }
5204
getPANOSEFields(JNIEnv * env,jobject lpObject,PANOSE * lpStruct)5205 PANOSE *getPANOSEFields(JNIEnv *env, jobject lpObject, PANOSE *lpStruct)
5206 {
5207 if (!PANOSEFc.cached) cachePANOSEFields(env, lpObject);
5208 lpStruct->bFamilyType = (*env)->GetByteField(env, lpObject, PANOSEFc.bFamilyType);
5209 lpStruct->bSerifStyle = (*env)->GetByteField(env, lpObject, PANOSEFc.bSerifStyle);
5210 lpStruct->bWeight = (*env)->GetByteField(env, lpObject, PANOSEFc.bWeight);
5211 lpStruct->bProportion = (*env)->GetByteField(env, lpObject, PANOSEFc.bProportion);
5212 lpStruct->bContrast = (*env)->GetByteField(env, lpObject, PANOSEFc.bContrast);
5213 lpStruct->bStrokeVariation = (*env)->GetByteField(env, lpObject, PANOSEFc.bStrokeVariation);
5214 lpStruct->bArmStyle = (*env)->GetByteField(env, lpObject, PANOSEFc.bArmStyle);
5215 lpStruct->bLetterform = (*env)->GetByteField(env, lpObject, PANOSEFc.bLetterform);
5216 lpStruct->bMidline = (*env)->GetByteField(env, lpObject, PANOSEFc.bMidline);
5217 lpStruct->bXHeight = (*env)->GetByteField(env, lpObject, PANOSEFc.bXHeight);
5218 return lpStruct;
5219 }
5220
setPANOSEFields(JNIEnv * env,jobject lpObject,PANOSE * lpStruct)5221 void setPANOSEFields(JNIEnv *env, jobject lpObject, PANOSE *lpStruct)
5222 {
5223 if (!PANOSEFc.cached) cachePANOSEFields(env, lpObject);
5224 (*env)->SetByteField(env, lpObject, PANOSEFc.bFamilyType, (jbyte)lpStruct->bFamilyType);
5225 (*env)->SetByteField(env, lpObject, PANOSEFc.bSerifStyle, (jbyte)lpStruct->bSerifStyle);
5226 (*env)->SetByteField(env, lpObject, PANOSEFc.bWeight, (jbyte)lpStruct->bWeight);
5227 (*env)->SetByteField(env, lpObject, PANOSEFc.bProportion, (jbyte)lpStruct->bProportion);
5228 (*env)->SetByteField(env, lpObject, PANOSEFc.bContrast, (jbyte)lpStruct->bContrast);
5229 (*env)->SetByteField(env, lpObject, PANOSEFc.bStrokeVariation, (jbyte)lpStruct->bStrokeVariation);
5230 (*env)->SetByteField(env, lpObject, PANOSEFc.bArmStyle, (jbyte)lpStruct->bArmStyle);
5231 (*env)->SetByteField(env, lpObject, PANOSEFc.bLetterform, (jbyte)lpStruct->bLetterform);
5232 (*env)->SetByteField(env, lpObject, PANOSEFc.bMidline, (jbyte)lpStruct->bMidline);
5233 (*env)->SetByteField(env, lpObject, PANOSEFc.bXHeight, (jbyte)lpStruct->bXHeight);
5234 }
5235 #endif
5236
5237 #ifndef NO_POINT
5238 typedef struct POINT_FID_CACHE {
5239 int cached;
5240 jclass clazz;
5241 jfieldID x, y;
5242 } POINT_FID_CACHE;
5243
5244 POINT_FID_CACHE POINTFc;
5245
cachePOINTFields(JNIEnv * env,jobject lpObject)5246 void cachePOINTFields(JNIEnv *env, jobject lpObject)
5247 {
5248 if (POINTFc.cached) return;
5249 POINTFc.clazz = (*env)->GetObjectClass(env, lpObject);
5250 POINTFc.x = (*env)->GetFieldID(env, POINTFc.clazz, "x", "I");
5251 POINTFc.y = (*env)->GetFieldID(env, POINTFc.clazz, "y", "I");
5252 POINTFc.cached = 1;
5253 }
5254
getPOINTFields(JNIEnv * env,jobject lpObject,POINT * lpStruct)5255 POINT *getPOINTFields(JNIEnv *env, jobject lpObject, POINT *lpStruct)
5256 {
5257 if (!POINTFc.cached) cachePOINTFields(env, lpObject);
5258 lpStruct->x = (*env)->GetIntField(env, lpObject, POINTFc.x);
5259 lpStruct->y = (*env)->GetIntField(env, lpObject, POINTFc.y);
5260 return lpStruct;
5261 }
5262
setPOINTFields(JNIEnv * env,jobject lpObject,POINT * lpStruct)5263 void setPOINTFields(JNIEnv *env, jobject lpObject, POINT *lpStruct)
5264 {
5265 if (!POINTFc.cached) cachePOINTFields(env, lpObject);
5266 (*env)->SetIntField(env, lpObject, POINTFc.x, (jint)lpStruct->x);
5267 (*env)->SetIntField(env, lpObject, POINTFc.y, (jint)lpStruct->y);
5268 }
5269 #endif
5270
5271 #ifndef NO_PRINTDLG
5272 typedef struct PRINTDLG_FID_CACHE {
5273 int cached;
5274 jclass clazz;
5275 jfieldID lStructSize, hwndOwner, hDevMode, hDevNames, hDC, Flags, nFromPage, nToPage, nMinPage, nMaxPage, nCopies, hInstance, lCustData, lpfnPrintHook, lpfnSetupHook, lpPrintTemplateName, lpSetupTemplateName, hPrintTemplate, hSetupTemplate;
5276 } PRINTDLG_FID_CACHE;
5277
5278 PRINTDLG_FID_CACHE PRINTDLGFc;
5279
cachePRINTDLGFields(JNIEnv * env,jobject lpObject)5280 void cachePRINTDLGFields(JNIEnv *env, jobject lpObject)
5281 {
5282 if (PRINTDLGFc.cached) return;
5283 PRINTDLGFc.clazz = (*env)->GetObjectClass(env, lpObject);
5284 PRINTDLGFc.lStructSize = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "lStructSize", "I");
5285 PRINTDLGFc.hwndOwner = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hwndOwner", "J");
5286 PRINTDLGFc.hDevMode = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hDevMode", "J");
5287 PRINTDLGFc.hDevNames = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hDevNames", "J");
5288 PRINTDLGFc.hDC = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hDC", "J");
5289 PRINTDLGFc.Flags = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "Flags", "I");
5290 PRINTDLGFc.nFromPage = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "nFromPage", "S");
5291 PRINTDLGFc.nToPage = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "nToPage", "S");
5292 PRINTDLGFc.nMinPage = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "nMinPage", "S");
5293 PRINTDLGFc.nMaxPage = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "nMaxPage", "S");
5294 PRINTDLGFc.nCopies = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "nCopies", "S");
5295 PRINTDLGFc.hInstance = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hInstance", "J");
5296 PRINTDLGFc.lCustData = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "lCustData", "J");
5297 PRINTDLGFc.lpfnPrintHook = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "lpfnPrintHook", "J");
5298 PRINTDLGFc.lpfnSetupHook = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "lpfnSetupHook", "J");
5299 PRINTDLGFc.lpPrintTemplateName = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "lpPrintTemplateName", "J");
5300 PRINTDLGFc.lpSetupTemplateName = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "lpSetupTemplateName", "J");
5301 PRINTDLGFc.hPrintTemplate = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hPrintTemplate", "J");
5302 PRINTDLGFc.hSetupTemplate = (*env)->GetFieldID(env, PRINTDLGFc.clazz, "hSetupTemplate", "J");
5303 PRINTDLGFc.cached = 1;
5304 }
5305
getPRINTDLGFields(JNIEnv * env,jobject lpObject,PRINTDLG * lpStruct)5306 PRINTDLG *getPRINTDLGFields(JNIEnv *env, jobject lpObject, PRINTDLG *lpStruct)
5307 {
5308 if (!PRINTDLGFc.cached) cachePRINTDLGFields(env, lpObject);
5309 lpStruct->lStructSize = (*env)->GetIntField(env, lpObject, PRINTDLGFc.lStructSize);
5310 lpStruct->hwndOwner = (HWND)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hwndOwner);
5311 lpStruct->hDevMode = (HGLOBAL)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hDevMode);
5312 lpStruct->hDevNames = (HGLOBAL)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hDevNames);
5313 lpStruct->hDC = (HDC)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hDC);
5314 lpStruct->Flags = (*env)->GetIntField(env, lpObject, PRINTDLGFc.Flags);
5315 lpStruct->nFromPage = (*env)->GetShortField(env, lpObject, PRINTDLGFc.nFromPage);
5316 lpStruct->nToPage = (*env)->GetShortField(env, lpObject, PRINTDLGFc.nToPage);
5317 lpStruct->nMinPage = (*env)->GetShortField(env, lpObject, PRINTDLGFc.nMinPage);
5318 lpStruct->nMaxPage = (*env)->GetShortField(env, lpObject, PRINTDLGFc.nMaxPage);
5319 lpStruct->nCopies = (*env)->GetShortField(env, lpObject, PRINTDLGFc.nCopies);
5320 lpStruct->hInstance = (HINSTANCE)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hInstance);
5321 lpStruct->lCustData = (*env)->GetLongField(env, lpObject, PRINTDLGFc.lCustData);
5322 lpStruct->lpfnPrintHook = (LPPRINTHOOKPROC)(*env)->GetLongField(env, lpObject, PRINTDLGFc.lpfnPrintHook);
5323 lpStruct->lpfnSetupHook = (LPPRINTHOOKPROC)(*env)->GetLongField(env, lpObject, PRINTDLGFc.lpfnSetupHook);
5324 lpStruct->lpPrintTemplateName = (LPCTSTR)(*env)->GetLongField(env, lpObject, PRINTDLGFc.lpPrintTemplateName);
5325 lpStruct->lpSetupTemplateName = (LPCTSTR)(*env)->GetLongField(env, lpObject, PRINTDLGFc.lpSetupTemplateName);
5326 lpStruct->hPrintTemplate = (HGLOBAL)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hPrintTemplate);
5327 lpStruct->hSetupTemplate = (HGLOBAL)(*env)->GetLongField(env, lpObject, PRINTDLGFc.hSetupTemplate);
5328 return lpStruct;
5329 }
5330
setPRINTDLGFields(JNIEnv * env,jobject lpObject,PRINTDLG * lpStruct)5331 void setPRINTDLGFields(JNIEnv *env, jobject lpObject, PRINTDLG *lpStruct)
5332 {
5333 if (!PRINTDLGFc.cached) cachePRINTDLGFields(env, lpObject);
5334 (*env)->SetIntField(env, lpObject, PRINTDLGFc.lStructSize, (jint)lpStruct->lStructSize);
5335 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hwndOwner, (jlong)lpStruct->hwndOwner);
5336 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hDevMode, (jlong)lpStruct->hDevMode);
5337 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hDevNames, (jlong)lpStruct->hDevNames);
5338 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hDC, (jlong)lpStruct->hDC);
5339 (*env)->SetIntField(env, lpObject, PRINTDLGFc.Flags, (jint)lpStruct->Flags);
5340 (*env)->SetShortField(env, lpObject, PRINTDLGFc.nFromPage, (jshort)lpStruct->nFromPage);
5341 (*env)->SetShortField(env, lpObject, PRINTDLGFc.nToPage, (jshort)lpStruct->nToPage);
5342 (*env)->SetShortField(env, lpObject, PRINTDLGFc.nMinPage, (jshort)lpStruct->nMinPage);
5343 (*env)->SetShortField(env, lpObject, PRINTDLGFc.nMaxPage, (jshort)lpStruct->nMaxPage);
5344 (*env)->SetShortField(env, lpObject, PRINTDLGFc.nCopies, (jshort)lpStruct->nCopies);
5345 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hInstance, (jlong)lpStruct->hInstance);
5346 (*env)->SetLongField(env, lpObject, PRINTDLGFc.lCustData, (jlong)lpStruct->lCustData);
5347 (*env)->SetLongField(env, lpObject, PRINTDLGFc.lpfnPrintHook, (jlong)lpStruct->lpfnPrintHook);
5348 (*env)->SetLongField(env, lpObject, PRINTDLGFc.lpfnSetupHook, (jlong)lpStruct->lpfnSetupHook);
5349 (*env)->SetLongField(env, lpObject, PRINTDLGFc.lpPrintTemplateName, (jlong)lpStruct->lpPrintTemplateName);
5350 (*env)->SetLongField(env, lpObject, PRINTDLGFc.lpSetupTemplateName, (jlong)lpStruct->lpSetupTemplateName);
5351 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hPrintTemplate, (jlong)lpStruct->hPrintTemplate);
5352 (*env)->SetLongField(env, lpObject, PRINTDLGFc.hSetupTemplate, (jlong)lpStruct->hSetupTemplate);
5353 }
5354 #endif
5355
5356 #ifndef NO_PROCESS_INFORMATION
5357 typedef struct PROCESS_INFORMATION_FID_CACHE {
5358 int cached;
5359 jclass clazz;
5360 jfieldID hProcess, hThread, dwProcessId, dwThreadId;
5361 } PROCESS_INFORMATION_FID_CACHE;
5362
5363 PROCESS_INFORMATION_FID_CACHE PROCESS_INFORMATIONFc;
5364
cachePROCESS_INFORMATIONFields(JNIEnv * env,jobject lpObject)5365 void cachePROCESS_INFORMATIONFields(JNIEnv *env, jobject lpObject)
5366 {
5367 if (PROCESS_INFORMATIONFc.cached) return;
5368 PROCESS_INFORMATIONFc.clazz = (*env)->GetObjectClass(env, lpObject);
5369 PROCESS_INFORMATIONFc.hProcess = (*env)->GetFieldID(env, PROCESS_INFORMATIONFc.clazz, "hProcess", "J");
5370 PROCESS_INFORMATIONFc.hThread = (*env)->GetFieldID(env, PROCESS_INFORMATIONFc.clazz, "hThread", "J");
5371 PROCESS_INFORMATIONFc.dwProcessId = (*env)->GetFieldID(env, PROCESS_INFORMATIONFc.clazz, "dwProcessId", "I");
5372 PROCESS_INFORMATIONFc.dwThreadId = (*env)->GetFieldID(env, PROCESS_INFORMATIONFc.clazz, "dwThreadId", "I");
5373 PROCESS_INFORMATIONFc.cached = 1;
5374 }
5375
getPROCESS_INFORMATIONFields(JNIEnv * env,jobject lpObject,PROCESS_INFORMATION * lpStruct)5376 PROCESS_INFORMATION *getPROCESS_INFORMATIONFields(JNIEnv *env, jobject lpObject, PROCESS_INFORMATION *lpStruct)
5377 {
5378 if (!PROCESS_INFORMATIONFc.cached) cachePROCESS_INFORMATIONFields(env, lpObject);
5379 lpStruct->hProcess = (HANDLE)(*env)->GetLongField(env, lpObject, PROCESS_INFORMATIONFc.hProcess);
5380 lpStruct->hThread = (HANDLE)(*env)->GetLongField(env, lpObject, PROCESS_INFORMATIONFc.hThread);
5381 lpStruct->dwProcessId = (*env)->GetIntField(env, lpObject, PROCESS_INFORMATIONFc.dwProcessId);
5382 lpStruct->dwThreadId = (*env)->GetIntField(env, lpObject, PROCESS_INFORMATIONFc.dwThreadId);
5383 return lpStruct;
5384 }
5385
setPROCESS_INFORMATIONFields(JNIEnv * env,jobject lpObject,PROCESS_INFORMATION * lpStruct)5386 void setPROCESS_INFORMATIONFields(JNIEnv *env, jobject lpObject, PROCESS_INFORMATION *lpStruct)
5387 {
5388 if (!PROCESS_INFORMATIONFc.cached) cachePROCESS_INFORMATIONFields(env, lpObject);
5389 (*env)->SetLongField(env, lpObject, PROCESS_INFORMATIONFc.hProcess, (jlong)lpStruct->hProcess);
5390 (*env)->SetLongField(env, lpObject, PROCESS_INFORMATIONFc.hThread, (jlong)lpStruct->hThread);
5391 (*env)->SetIntField(env, lpObject, PROCESS_INFORMATIONFc.dwProcessId, (jint)lpStruct->dwProcessId);
5392 (*env)->SetIntField(env, lpObject, PROCESS_INFORMATIONFc.dwThreadId, (jint)lpStruct->dwThreadId);
5393 }
5394 #endif
5395
5396 #ifndef NO_PROPERTYKEY
5397 typedef struct PROPERTYKEY_FID_CACHE {
5398 int cached;
5399 jclass clazz;
5400 jfieldID fmtid, pid;
5401 } PROPERTYKEY_FID_CACHE;
5402
5403 PROPERTYKEY_FID_CACHE PROPERTYKEYFc;
5404
cachePROPERTYKEYFields(JNIEnv * env,jobject lpObject)5405 void cachePROPERTYKEYFields(JNIEnv *env, jobject lpObject)
5406 {
5407 if (PROPERTYKEYFc.cached) return;
5408 PROPERTYKEYFc.clazz = (*env)->GetObjectClass(env, lpObject);
5409 PROPERTYKEYFc.fmtid = (*env)->GetFieldID(env, PROPERTYKEYFc.clazz, "fmtid", "[B");
5410 PROPERTYKEYFc.pid = (*env)->GetFieldID(env, PROPERTYKEYFc.clazz, "pid", "I");
5411 PROPERTYKEYFc.cached = 1;
5412 }
5413
getPROPERTYKEYFields(JNIEnv * env,jobject lpObject,PROPERTYKEY * lpStruct)5414 PROPERTYKEY *getPROPERTYKEYFields(JNIEnv *env, jobject lpObject, PROPERTYKEY *lpStruct)
5415 {
5416 if (!PROPERTYKEYFc.cached) cachePROPERTYKEYFields(env, lpObject);
5417 {
5418 jbyteArray lpObject1 = (jbyteArray)(*env)->GetObjectField(env, lpObject, PROPERTYKEYFc.fmtid);
5419 (*env)->GetByteArrayRegion(env, lpObject1, 0, sizeof(lpStruct->fmtid), (jbyte *)&lpStruct->fmtid);
5420 }
5421 lpStruct->pid = (*env)->GetIntField(env, lpObject, PROPERTYKEYFc.pid);
5422 return lpStruct;
5423 }
5424
setPROPERTYKEYFields(JNIEnv * env,jobject lpObject,PROPERTYKEY * lpStruct)5425 void setPROPERTYKEYFields(JNIEnv *env, jobject lpObject, PROPERTYKEY *lpStruct)
5426 {
5427 if (!PROPERTYKEYFc.cached) cachePROPERTYKEYFields(env, lpObject);
5428 {
5429 jbyteArray lpObject1 = (jbyteArray)(*env)->GetObjectField(env, lpObject, PROPERTYKEYFc.fmtid);
5430 (*env)->SetByteArrayRegion(env, lpObject1, 0, sizeof(lpStruct->fmtid), (jbyte *)&lpStruct->fmtid);
5431 }
5432 (*env)->SetIntField(env, lpObject, PROPERTYKEYFc.pid, (jint)lpStruct->pid);
5433 }
5434 #endif
5435
5436 #ifndef NO_REBARBANDINFO
5437 typedef struct REBARBANDINFO_FID_CACHE {
5438 int cached;
5439 jclass clazz;
5440 jfieldID cbSize, fMask, fStyle, clrFore, clrBack, lpText, cch, iImage, hwndChild, cxMinChild, cyMinChild, cx, hbmBack, wID, cyChild, cyMaxChild, cyIntegral, cxIdeal, lParam, cxHeader;
5441 } REBARBANDINFO_FID_CACHE;
5442
5443 REBARBANDINFO_FID_CACHE REBARBANDINFOFc;
5444
cacheREBARBANDINFOFields(JNIEnv * env,jobject lpObject)5445 void cacheREBARBANDINFOFields(JNIEnv *env, jobject lpObject)
5446 {
5447 if (REBARBANDINFOFc.cached) return;
5448 REBARBANDINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
5449 REBARBANDINFOFc.cbSize = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cbSize", "I");
5450 REBARBANDINFOFc.fMask = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "fMask", "I");
5451 REBARBANDINFOFc.fStyle = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "fStyle", "I");
5452 REBARBANDINFOFc.clrFore = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "clrFore", "I");
5453 REBARBANDINFOFc.clrBack = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "clrBack", "I");
5454 REBARBANDINFOFc.lpText = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "lpText", "J");
5455 REBARBANDINFOFc.cch = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cch", "I");
5456 REBARBANDINFOFc.iImage = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "iImage", "I");
5457 REBARBANDINFOFc.hwndChild = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "hwndChild", "J");
5458 REBARBANDINFOFc.cxMinChild = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cxMinChild", "I");
5459 REBARBANDINFOFc.cyMinChild = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cyMinChild", "I");
5460 REBARBANDINFOFc.cx = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cx", "I");
5461 REBARBANDINFOFc.hbmBack = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "hbmBack", "J");
5462 REBARBANDINFOFc.wID = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "wID", "I");
5463 REBARBANDINFOFc.cyChild = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cyChild", "I");
5464 REBARBANDINFOFc.cyMaxChild = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cyMaxChild", "I");
5465 REBARBANDINFOFc.cyIntegral = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cyIntegral", "I");
5466 REBARBANDINFOFc.cxIdeal = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cxIdeal", "I");
5467 REBARBANDINFOFc.lParam = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "lParam", "J");
5468 REBARBANDINFOFc.cxHeader = (*env)->GetFieldID(env, REBARBANDINFOFc.clazz, "cxHeader", "I");
5469 REBARBANDINFOFc.cached = 1;
5470 }
5471
getREBARBANDINFOFields(JNIEnv * env,jobject lpObject,REBARBANDINFO * lpStruct)5472 REBARBANDINFO *getREBARBANDINFOFields(JNIEnv *env, jobject lpObject, REBARBANDINFO *lpStruct)
5473 {
5474 if (!REBARBANDINFOFc.cached) cacheREBARBANDINFOFields(env, lpObject);
5475 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cbSize);
5476 lpStruct->fMask = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.fMask);
5477 lpStruct->fStyle = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.fStyle);
5478 lpStruct->clrFore = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.clrFore);
5479 lpStruct->clrBack = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.clrBack);
5480 lpStruct->lpText = (LPTSTR)(*env)->GetLongField(env, lpObject, REBARBANDINFOFc.lpText);
5481 lpStruct->cch = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cch);
5482 lpStruct->iImage = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.iImage);
5483 lpStruct->hwndChild = (HWND)(*env)->GetLongField(env, lpObject, REBARBANDINFOFc.hwndChild);
5484 lpStruct->cxMinChild = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cxMinChild);
5485 lpStruct->cyMinChild = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cyMinChild);
5486 lpStruct->cx = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cx);
5487 lpStruct->hbmBack = (HBITMAP)(*env)->GetLongField(env, lpObject, REBARBANDINFOFc.hbmBack);
5488 lpStruct->wID = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.wID);
5489 lpStruct->cyChild = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cyChild);
5490 lpStruct->cyMaxChild = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cyMaxChild);
5491 lpStruct->cyIntegral = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cyIntegral);
5492 lpStruct->cxIdeal = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cxIdeal);
5493 lpStruct->lParam = (*env)->GetLongField(env, lpObject, REBARBANDINFOFc.lParam);
5494 lpStruct->cxHeader = (*env)->GetIntField(env, lpObject, REBARBANDINFOFc.cxHeader);
5495 return lpStruct;
5496 }
5497
setREBARBANDINFOFields(JNIEnv * env,jobject lpObject,REBARBANDINFO * lpStruct)5498 void setREBARBANDINFOFields(JNIEnv *env, jobject lpObject, REBARBANDINFO *lpStruct)
5499 {
5500 if (!REBARBANDINFOFc.cached) cacheREBARBANDINFOFields(env, lpObject);
5501 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cbSize, (jint)lpStruct->cbSize);
5502 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.fMask, (jint)lpStruct->fMask);
5503 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.fStyle, (jint)lpStruct->fStyle);
5504 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.clrFore, (jint)lpStruct->clrFore);
5505 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.clrBack, (jint)lpStruct->clrBack);
5506 (*env)->SetLongField(env, lpObject, REBARBANDINFOFc.lpText, (jlong)lpStruct->lpText);
5507 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cch, (jint)lpStruct->cch);
5508 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.iImage, (jint)lpStruct->iImage);
5509 (*env)->SetLongField(env, lpObject, REBARBANDINFOFc.hwndChild, (jlong)lpStruct->hwndChild);
5510 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cxMinChild, (jint)lpStruct->cxMinChild);
5511 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cyMinChild, (jint)lpStruct->cyMinChild);
5512 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cx, (jint)lpStruct->cx);
5513 (*env)->SetLongField(env, lpObject, REBARBANDINFOFc.hbmBack, (jlong)lpStruct->hbmBack);
5514 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.wID, (jint)lpStruct->wID);
5515 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cyChild, (jint)lpStruct->cyChild);
5516 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cyMaxChild, (jint)lpStruct->cyMaxChild);
5517 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cyIntegral, (jint)lpStruct->cyIntegral);
5518 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cxIdeal, (jint)lpStruct->cxIdeal);
5519 (*env)->SetLongField(env, lpObject, REBARBANDINFOFc.lParam, (jlong)lpStruct->lParam);
5520 (*env)->SetIntField(env, lpObject, REBARBANDINFOFc.cxHeader, (jint)lpStruct->cxHeader);
5521 }
5522 #endif
5523
5524 #ifndef NO_RECT
5525 typedef struct RECT_FID_CACHE {
5526 int cached;
5527 jclass clazz;
5528 jfieldID left, top, right, bottom;
5529 } RECT_FID_CACHE;
5530
5531 RECT_FID_CACHE RECTFc;
5532
cacheRECTFields(JNIEnv * env,jobject lpObject)5533 void cacheRECTFields(JNIEnv *env, jobject lpObject)
5534 {
5535 if (RECTFc.cached) return;
5536 RECTFc.clazz = (*env)->GetObjectClass(env, lpObject);
5537 RECTFc.left = (*env)->GetFieldID(env, RECTFc.clazz, "left", "I");
5538 RECTFc.top = (*env)->GetFieldID(env, RECTFc.clazz, "top", "I");
5539 RECTFc.right = (*env)->GetFieldID(env, RECTFc.clazz, "right", "I");
5540 RECTFc.bottom = (*env)->GetFieldID(env, RECTFc.clazz, "bottom", "I");
5541 RECTFc.cached = 1;
5542 }
5543
getRECTFields(JNIEnv * env,jobject lpObject,RECT * lpStruct)5544 RECT *getRECTFields(JNIEnv *env, jobject lpObject, RECT *lpStruct)
5545 {
5546 if (!RECTFc.cached) cacheRECTFields(env, lpObject);
5547 lpStruct->left = (*env)->GetIntField(env, lpObject, RECTFc.left);
5548 lpStruct->top = (*env)->GetIntField(env, lpObject, RECTFc.top);
5549 lpStruct->right = (*env)->GetIntField(env, lpObject, RECTFc.right);
5550 lpStruct->bottom = (*env)->GetIntField(env, lpObject, RECTFc.bottom);
5551 return lpStruct;
5552 }
5553
setRECTFields(JNIEnv * env,jobject lpObject,RECT * lpStruct)5554 void setRECTFields(JNIEnv *env, jobject lpObject, RECT *lpStruct)
5555 {
5556 if (!RECTFc.cached) cacheRECTFields(env, lpObject);
5557 (*env)->SetIntField(env, lpObject, RECTFc.left, (jint)lpStruct->left);
5558 (*env)->SetIntField(env, lpObject, RECTFc.top, (jint)lpStruct->top);
5559 (*env)->SetIntField(env, lpObject, RECTFc.right, (jint)lpStruct->right);
5560 (*env)->SetIntField(env, lpObject, RECTFc.bottom, (jint)lpStruct->bottom);
5561 }
5562 #endif
5563
5564 #ifndef NO_SAFEARRAY
5565 typedef struct SAFEARRAY_FID_CACHE {
5566 int cached;
5567 jclass clazz;
5568 jfieldID cDims, fFeatures, cbElements, cLocks, pvData, rgsabound;
5569 } SAFEARRAY_FID_CACHE;
5570
5571 SAFEARRAY_FID_CACHE SAFEARRAYFc;
5572
cacheSAFEARRAYFields(JNIEnv * env,jobject lpObject)5573 void cacheSAFEARRAYFields(JNIEnv *env, jobject lpObject)
5574 {
5575 if (SAFEARRAYFc.cached) return;
5576 SAFEARRAYFc.clazz = (*env)->GetObjectClass(env, lpObject);
5577 SAFEARRAYFc.cDims = (*env)->GetFieldID(env, SAFEARRAYFc.clazz, "cDims", "S");
5578 SAFEARRAYFc.fFeatures = (*env)->GetFieldID(env, SAFEARRAYFc.clazz, "fFeatures", "S");
5579 SAFEARRAYFc.cbElements = (*env)->GetFieldID(env, SAFEARRAYFc.clazz, "cbElements", "I");
5580 SAFEARRAYFc.cLocks = (*env)->GetFieldID(env, SAFEARRAYFc.clazz, "cLocks", "I");
5581 SAFEARRAYFc.pvData = (*env)->GetFieldID(env, SAFEARRAYFc.clazz, "pvData", "J");
5582 SAFEARRAYFc.rgsabound = (*env)->GetFieldID(env, SAFEARRAYFc.clazz, "rgsabound", "Lorg/eclipse/swt/internal/win32/SAFEARRAYBOUND;");
5583 SAFEARRAYFc.cached = 1;
5584 }
5585
getSAFEARRAYFields(JNIEnv * env,jobject lpObject,SAFEARRAY * lpStruct)5586 SAFEARRAY *getSAFEARRAYFields(JNIEnv *env, jobject lpObject, SAFEARRAY *lpStruct)
5587 {
5588 if (!SAFEARRAYFc.cached) cacheSAFEARRAYFields(env, lpObject);
5589 lpStruct->cDims = (*env)->GetShortField(env, lpObject, SAFEARRAYFc.cDims);
5590 lpStruct->fFeatures = (*env)->GetShortField(env, lpObject, SAFEARRAYFc.fFeatures);
5591 lpStruct->cbElements = (*env)->GetIntField(env, lpObject, SAFEARRAYFc.cbElements);
5592 lpStruct->cLocks = (*env)->GetIntField(env, lpObject, SAFEARRAYFc.cLocks);
5593 lpStruct->pvData = (PVOID)(*env)->GetLongField(env, lpObject, SAFEARRAYFc.pvData);
5594 {
5595 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SAFEARRAYFc.rgsabound);
5596 if (lpObject1 != NULL) getSAFEARRAYBOUNDFields(env, lpObject1, &lpStruct->rgsabound[0]);
5597 }
5598 return lpStruct;
5599 }
5600
setSAFEARRAYFields(JNIEnv * env,jobject lpObject,SAFEARRAY * lpStruct)5601 void setSAFEARRAYFields(JNIEnv *env, jobject lpObject, SAFEARRAY *lpStruct)
5602 {
5603 if (!SAFEARRAYFc.cached) cacheSAFEARRAYFields(env, lpObject);
5604 (*env)->SetShortField(env, lpObject, SAFEARRAYFc.cDims, (jshort)lpStruct->cDims);
5605 (*env)->SetShortField(env, lpObject, SAFEARRAYFc.fFeatures, (jshort)lpStruct->fFeatures);
5606 (*env)->SetIntField(env, lpObject, SAFEARRAYFc.cbElements, (jint)lpStruct->cbElements);
5607 (*env)->SetIntField(env, lpObject, SAFEARRAYFc.cLocks, (jint)lpStruct->cLocks);
5608 (*env)->SetLongField(env, lpObject, SAFEARRAYFc.pvData, (jlong)lpStruct->pvData);
5609 {
5610 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SAFEARRAYFc.rgsabound);
5611 if (lpObject1 != NULL) setSAFEARRAYBOUNDFields(env, lpObject1, &lpStruct->rgsabound[0]);
5612 }
5613 }
5614 #endif
5615
5616 #ifndef NO_SAFEARRAYBOUND
5617 typedef struct SAFEARRAYBOUND_FID_CACHE {
5618 int cached;
5619 jclass clazz;
5620 jfieldID cElements, lLbound;
5621 } SAFEARRAYBOUND_FID_CACHE;
5622
5623 SAFEARRAYBOUND_FID_CACHE SAFEARRAYBOUNDFc;
5624
cacheSAFEARRAYBOUNDFields(JNIEnv * env,jobject lpObject)5625 void cacheSAFEARRAYBOUNDFields(JNIEnv *env, jobject lpObject)
5626 {
5627 if (SAFEARRAYBOUNDFc.cached) return;
5628 SAFEARRAYBOUNDFc.clazz = (*env)->GetObjectClass(env, lpObject);
5629 SAFEARRAYBOUNDFc.cElements = (*env)->GetFieldID(env, SAFEARRAYBOUNDFc.clazz, "cElements", "I");
5630 SAFEARRAYBOUNDFc.lLbound = (*env)->GetFieldID(env, SAFEARRAYBOUNDFc.clazz, "lLbound", "I");
5631 SAFEARRAYBOUNDFc.cached = 1;
5632 }
5633
getSAFEARRAYBOUNDFields(JNIEnv * env,jobject lpObject,SAFEARRAYBOUND * lpStruct)5634 SAFEARRAYBOUND *getSAFEARRAYBOUNDFields(JNIEnv *env, jobject lpObject, SAFEARRAYBOUND *lpStruct)
5635 {
5636 if (!SAFEARRAYBOUNDFc.cached) cacheSAFEARRAYBOUNDFields(env, lpObject);
5637 lpStruct->cElements = (*env)->GetIntField(env, lpObject, SAFEARRAYBOUNDFc.cElements);
5638 lpStruct->lLbound = (*env)->GetIntField(env, lpObject, SAFEARRAYBOUNDFc.lLbound);
5639 return lpStruct;
5640 }
5641
setSAFEARRAYBOUNDFields(JNIEnv * env,jobject lpObject,SAFEARRAYBOUND * lpStruct)5642 void setSAFEARRAYBOUNDFields(JNIEnv *env, jobject lpObject, SAFEARRAYBOUND *lpStruct)
5643 {
5644 if (!SAFEARRAYBOUNDFc.cached) cacheSAFEARRAYBOUNDFields(env, lpObject);
5645 (*env)->SetIntField(env, lpObject, SAFEARRAYBOUNDFc.cElements, (jint)lpStruct->cElements);
5646 (*env)->SetIntField(env, lpObject, SAFEARRAYBOUNDFc.lLbound, (jint)lpStruct->lLbound);
5647 }
5648 #endif
5649
5650 #ifndef NO_SCRIPT_ANALYSIS
5651 typedef struct SCRIPT_ANALYSIS_FID_CACHE {
5652 int cached;
5653 jclass clazz;
5654 jfieldID eScript, fRTL, fLayoutRTL, fLinkBefore, fLinkAfter, fLogicalOrder, fNoGlyphIndex, s;
5655 } SCRIPT_ANALYSIS_FID_CACHE;
5656
5657 SCRIPT_ANALYSIS_FID_CACHE SCRIPT_ANALYSISFc;
5658
cacheSCRIPT_ANALYSISFields(JNIEnv * env,jobject lpObject)5659 void cacheSCRIPT_ANALYSISFields(JNIEnv *env, jobject lpObject)
5660 {
5661 if (SCRIPT_ANALYSISFc.cached) return;
5662 SCRIPT_ANALYSISFc.clazz = (*env)->GetObjectClass(env, lpObject);
5663 SCRIPT_ANALYSISFc.eScript = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "eScript", "S");
5664 SCRIPT_ANALYSISFc.fRTL = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "fRTL", "Z");
5665 SCRIPT_ANALYSISFc.fLayoutRTL = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "fLayoutRTL", "Z");
5666 SCRIPT_ANALYSISFc.fLinkBefore = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "fLinkBefore", "Z");
5667 SCRIPT_ANALYSISFc.fLinkAfter = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "fLinkAfter", "Z");
5668 SCRIPT_ANALYSISFc.fLogicalOrder = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "fLogicalOrder", "Z");
5669 SCRIPT_ANALYSISFc.fNoGlyphIndex = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "fNoGlyphIndex", "Z");
5670 SCRIPT_ANALYSISFc.s = (*env)->GetFieldID(env, SCRIPT_ANALYSISFc.clazz, "s", "Lorg/eclipse/swt/internal/win32/SCRIPT_STATE;");
5671 SCRIPT_ANALYSISFc.cached = 1;
5672 }
5673
getSCRIPT_ANALYSISFields(JNIEnv * env,jobject lpObject,SCRIPT_ANALYSIS * lpStruct)5674 SCRIPT_ANALYSIS *getSCRIPT_ANALYSISFields(JNIEnv *env, jobject lpObject, SCRIPT_ANALYSIS *lpStruct)
5675 {
5676 if (!SCRIPT_ANALYSISFc.cached) cacheSCRIPT_ANALYSISFields(env, lpObject);
5677 lpStruct->eScript = (*env)->GetShortField(env, lpObject, SCRIPT_ANALYSISFc.eScript);
5678 lpStruct->fRTL = (*env)->GetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fRTL);
5679 lpStruct->fLayoutRTL = (*env)->GetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLayoutRTL);
5680 lpStruct->fLinkBefore = (*env)->GetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLinkBefore);
5681 lpStruct->fLinkAfter = (*env)->GetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLinkAfter);
5682 lpStruct->fLogicalOrder = (*env)->GetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLogicalOrder);
5683 lpStruct->fNoGlyphIndex = (*env)->GetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fNoGlyphIndex);
5684 {
5685 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SCRIPT_ANALYSISFc.s);
5686 if (lpObject1 != NULL) getSCRIPT_STATEFields(env, lpObject1, &lpStruct->s);
5687 }
5688 return lpStruct;
5689 }
5690
setSCRIPT_ANALYSISFields(JNIEnv * env,jobject lpObject,SCRIPT_ANALYSIS * lpStruct)5691 void setSCRIPT_ANALYSISFields(JNIEnv *env, jobject lpObject, SCRIPT_ANALYSIS *lpStruct)
5692 {
5693 if (!SCRIPT_ANALYSISFc.cached) cacheSCRIPT_ANALYSISFields(env, lpObject);
5694 (*env)->SetShortField(env, lpObject, SCRIPT_ANALYSISFc.eScript, (jshort)lpStruct->eScript);
5695 (*env)->SetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fRTL, (jboolean)lpStruct->fRTL);
5696 (*env)->SetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLayoutRTL, (jboolean)lpStruct->fLayoutRTL);
5697 (*env)->SetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLinkBefore, (jboolean)lpStruct->fLinkBefore);
5698 (*env)->SetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLinkAfter, (jboolean)lpStruct->fLinkAfter);
5699 (*env)->SetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fLogicalOrder, (jboolean)lpStruct->fLogicalOrder);
5700 (*env)->SetBooleanField(env, lpObject, SCRIPT_ANALYSISFc.fNoGlyphIndex, (jboolean)lpStruct->fNoGlyphIndex);
5701 {
5702 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SCRIPT_ANALYSISFc.s);
5703 if (lpObject1 != NULL) setSCRIPT_STATEFields(env, lpObject1, &lpStruct->s);
5704 }
5705 }
5706 #endif
5707
5708 #ifndef NO_SCRIPT_CONTROL
5709 typedef struct SCRIPT_CONTROL_FID_CACHE {
5710 int cached;
5711 jclass clazz;
5712 jfieldID uDefaultLanguage, fContextDigits, fInvertPreBoundDir, fInvertPostBoundDir, fLinkStringBefore, fLinkStringAfter, fNeutralOverride, fNumericOverride, fLegacyBidiClass, fMergeNeutralItems, fUseStandardBidi, fReserved;
5713 } SCRIPT_CONTROL_FID_CACHE;
5714
5715 SCRIPT_CONTROL_FID_CACHE SCRIPT_CONTROLFc;
5716
cacheSCRIPT_CONTROLFields(JNIEnv * env,jobject lpObject)5717 void cacheSCRIPT_CONTROLFields(JNIEnv *env, jobject lpObject)
5718 {
5719 if (SCRIPT_CONTROLFc.cached) return;
5720 SCRIPT_CONTROLFc.clazz = (*env)->GetObjectClass(env, lpObject);
5721 SCRIPT_CONTROLFc.uDefaultLanguage = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "uDefaultLanguage", "I");
5722 SCRIPT_CONTROLFc.fContextDigits = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fContextDigits", "Z");
5723 SCRIPT_CONTROLFc.fInvertPreBoundDir = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fInvertPreBoundDir", "Z");
5724 SCRIPT_CONTROLFc.fInvertPostBoundDir = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fInvertPostBoundDir", "Z");
5725 SCRIPT_CONTROLFc.fLinkStringBefore = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fLinkStringBefore", "Z");
5726 SCRIPT_CONTROLFc.fLinkStringAfter = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fLinkStringAfter", "Z");
5727 SCRIPT_CONTROLFc.fNeutralOverride = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fNeutralOverride", "Z");
5728 SCRIPT_CONTROLFc.fNumericOverride = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fNumericOverride", "Z");
5729 SCRIPT_CONTROLFc.fLegacyBidiClass = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fLegacyBidiClass", "Z");
5730 SCRIPT_CONTROLFc.fMergeNeutralItems = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fMergeNeutralItems", "Z");
5731 SCRIPT_CONTROLFc.fUseStandardBidi = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fUseStandardBidi", "Z");
5732 SCRIPT_CONTROLFc.fReserved = (*env)->GetFieldID(env, SCRIPT_CONTROLFc.clazz, "fReserved", "I");
5733 SCRIPT_CONTROLFc.cached = 1;
5734 }
5735
getSCRIPT_CONTROLFields(JNIEnv * env,jobject lpObject,SCRIPT_CONTROL * lpStruct)5736 SCRIPT_CONTROL *getSCRIPT_CONTROLFields(JNIEnv *env, jobject lpObject, SCRIPT_CONTROL *lpStruct)
5737 {
5738 if (!SCRIPT_CONTROLFc.cached) cacheSCRIPT_CONTROLFields(env, lpObject);
5739 lpStruct->uDefaultLanguage = (*env)->GetIntField(env, lpObject, SCRIPT_CONTROLFc.uDefaultLanguage);
5740 lpStruct->fContextDigits = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fContextDigits);
5741 lpStruct->fInvertPreBoundDir = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fInvertPreBoundDir);
5742 lpStruct->fInvertPostBoundDir = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fInvertPostBoundDir);
5743 lpStruct->fLinkStringBefore = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fLinkStringBefore);
5744 lpStruct->fLinkStringAfter = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fLinkStringAfter);
5745 lpStruct->fNeutralOverride = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fNeutralOverride);
5746 lpStruct->fNumericOverride = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fNumericOverride);
5747 lpStruct->fLegacyBidiClass = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fLegacyBidiClass);
5748 lpStruct->fMergeNeutralItems = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fMergeNeutralItems);
5749 lpStruct->fUseStandardBidi = (*env)->GetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fUseStandardBidi);
5750 lpStruct->fReserved = (*env)->GetIntField(env, lpObject, SCRIPT_CONTROLFc.fReserved);
5751 return lpStruct;
5752 }
5753
setSCRIPT_CONTROLFields(JNIEnv * env,jobject lpObject,SCRIPT_CONTROL * lpStruct)5754 void setSCRIPT_CONTROLFields(JNIEnv *env, jobject lpObject, SCRIPT_CONTROL *lpStruct)
5755 {
5756 if (!SCRIPT_CONTROLFc.cached) cacheSCRIPT_CONTROLFields(env, lpObject);
5757 (*env)->SetIntField(env, lpObject, SCRIPT_CONTROLFc.uDefaultLanguage, (jint)lpStruct->uDefaultLanguage);
5758 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fContextDigits, (jboolean)lpStruct->fContextDigits);
5759 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fInvertPreBoundDir, (jboolean)lpStruct->fInvertPreBoundDir);
5760 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fInvertPostBoundDir, (jboolean)lpStruct->fInvertPostBoundDir);
5761 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fLinkStringBefore, (jboolean)lpStruct->fLinkStringBefore);
5762 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fLinkStringAfter, (jboolean)lpStruct->fLinkStringAfter);
5763 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fNeutralOverride, (jboolean)lpStruct->fNeutralOverride);
5764 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fNumericOverride, (jboolean)lpStruct->fNumericOverride);
5765 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fLegacyBidiClass, (jboolean)lpStruct->fLegacyBidiClass);
5766 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fMergeNeutralItems, (jboolean)lpStruct->fMergeNeutralItems);
5767 (*env)->SetBooleanField(env, lpObject, SCRIPT_CONTROLFc.fUseStandardBidi, (jboolean)lpStruct->fUseStandardBidi);
5768 (*env)->SetIntField(env, lpObject, SCRIPT_CONTROLFc.fReserved, (jint)lpStruct->fReserved);
5769 }
5770 #endif
5771
5772 #ifndef NO_SCRIPT_DIGITSUBSTITUTE
5773 typedef struct SCRIPT_DIGITSUBSTITUTE_FID_CACHE {
5774 int cached;
5775 jclass clazz;
5776 jfieldID NationalDigitLanguage, TraditionalDigitLanguage, DigitSubstitute, dwReserved;
5777 } SCRIPT_DIGITSUBSTITUTE_FID_CACHE;
5778
5779 SCRIPT_DIGITSUBSTITUTE_FID_CACHE SCRIPT_DIGITSUBSTITUTEFc;
5780
cacheSCRIPT_DIGITSUBSTITUTEFields(JNIEnv * env,jobject lpObject)5781 void cacheSCRIPT_DIGITSUBSTITUTEFields(JNIEnv *env, jobject lpObject)
5782 {
5783 if (SCRIPT_DIGITSUBSTITUTEFc.cached) return;
5784 SCRIPT_DIGITSUBSTITUTEFc.clazz = (*env)->GetObjectClass(env, lpObject);
5785 SCRIPT_DIGITSUBSTITUTEFc.NationalDigitLanguage = (*env)->GetFieldID(env, SCRIPT_DIGITSUBSTITUTEFc.clazz, "NationalDigitLanguage", "S");
5786 SCRIPT_DIGITSUBSTITUTEFc.TraditionalDigitLanguage = (*env)->GetFieldID(env, SCRIPT_DIGITSUBSTITUTEFc.clazz, "TraditionalDigitLanguage", "S");
5787 SCRIPT_DIGITSUBSTITUTEFc.DigitSubstitute = (*env)->GetFieldID(env, SCRIPT_DIGITSUBSTITUTEFc.clazz, "DigitSubstitute", "B");
5788 SCRIPT_DIGITSUBSTITUTEFc.dwReserved = (*env)->GetFieldID(env, SCRIPT_DIGITSUBSTITUTEFc.clazz, "dwReserved", "I");
5789 SCRIPT_DIGITSUBSTITUTEFc.cached = 1;
5790 }
5791
getSCRIPT_DIGITSUBSTITUTEFields(JNIEnv * env,jobject lpObject,SCRIPT_DIGITSUBSTITUTE * lpStruct)5792 SCRIPT_DIGITSUBSTITUTE *getSCRIPT_DIGITSUBSTITUTEFields(JNIEnv *env, jobject lpObject, SCRIPT_DIGITSUBSTITUTE *lpStruct)
5793 {
5794 if (!SCRIPT_DIGITSUBSTITUTEFc.cached) cacheSCRIPT_DIGITSUBSTITUTEFields(env, lpObject);
5795 lpStruct->NationalDigitLanguage = (*env)->GetShortField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.NationalDigitLanguage);
5796 lpStruct->TraditionalDigitLanguage = (*env)->GetShortField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.TraditionalDigitLanguage);
5797 lpStruct->DigitSubstitute = (*env)->GetByteField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.DigitSubstitute);
5798 lpStruct->dwReserved = (*env)->GetIntField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.dwReserved);
5799 return lpStruct;
5800 }
5801
setSCRIPT_DIGITSUBSTITUTEFields(JNIEnv * env,jobject lpObject,SCRIPT_DIGITSUBSTITUTE * lpStruct)5802 void setSCRIPT_DIGITSUBSTITUTEFields(JNIEnv *env, jobject lpObject, SCRIPT_DIGITSUBSTITUTE *lpStruct)
5803 {
5804 if (!SCRIPT_DIGITSUBSTITUTEFc.cached) cacheSCRIPT_DIGITSUBSTITUTEFields(env, lpObject);
5805 (*env)->SetShortField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.NationalDigitLanguage, (jshort)lpStruct->NationalDigitLanguage);
5806 (*env)->SetShortField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.TraditionalDigitLanguage, (jshort)lpStruct->TraditionalDigitLanguage);
5807 (*env)->SetByteField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.DigitSubstitute, (jbyte)lpStruct->DigitSubstitute);
5808 (*env)->SetIntField(env, lpObject, SCRIPT_DIGITSUBSTITUTEFc.dwReserved, (jint)lpStruct->dwReserved);
5809 }
5810 #endif
5811
5812 #ifndef NO_SCRIPT_FONTPROPERTIES
5813 typedef struct SCRIPT_FONTPROPERTIES_FID_CACHE {
5814 int cached;
5815 jclass clazz;
5816 jfieldID cBytes, wgBlank, wgDefault, wgInvalid, wgKashida, iKashidaWidth;
5817 } SCRIPT_FONTPROPERTIES_FID_CACHE;
5818
5819 SCRIPT_FONTPROPERTIES_FID_CACHE SCRIPT_FONTPROPERTIESFc;
5820
cacheSCRIPT_FONTPROPERTIESFields(JNIEnv * env,jobject lpObject)5821 void cacheSCRIPT_FONTPROPERTIESFields(JNIEnv *env, jobject lpObject)
5822 {
5823 if (SCRIPT_FONTPROPERTIESFc.cached) return;
5824 SCRIPT_FONTPROPERTIESFc.clazz = (*env)->GetObjectClass(env, lpObject);
5825 SCRIPT_FONTPROPERTIESFc.cBytes = (*env)->GetFieldID(env, SCRIPT_FONTPROPERTIESFc.clazz, "cBytes", "I");
5826 SCRIPT_FONTPROPERTIESFc.wgBlank = (*env)->GetFieldID(env, SCRIPT_FONTPROPERTIESFc.clazz, "wgBlank", "S");
5827 SCRIPT_FONTPROPERTIESFc.wgDefault = (*env)->GetFieldID(env, SCRIPT_FONTPROPERTIESFc.clazz, "wgDefault", "S");
5828 SCRIPT_FONTPROPERTIESFc.wgInvalid = (*env)->GetFieldID(env, SCRIPT_FONTPROPERTIESFc.clazz, "wgInvalid", "S");
5829 SCRIPT_FONTPROPERTIESFc.wgKashida = (*env)->GetFieldID(env, SCRIPT_FONTPROPERTIESFc.clazz, "wgKashida", "S");
5830 SCRIPT_FONTPROPERTIESFc.iKashidaWidth = (*env)->GetFieldID(env, SCRIPT_FONTPROPERTIESFc.clazz, "iKashidaWidth", "I");
5831 SCRIPT_FONTPROPERTIESFc.cached = 1;
5832 }
5833
getSCRIPT_FONTPROPERTIESFields(JNIEnv * env,jobject lpObject,SCRIPT_FONTPROPERTIES * lpStruct)5834 SCRIPT_FONTPROPERTIES *getSCRIPT_FONTPROPERTIESFields(JNIEnv *env, jobject lpObject, SCRIPT_FONTPROPERTIES *lpStruct)
5835 {
5836 if (!SCRIPT_FONTPROPERTIESFc.cached) cacheSCRIPT_FONTPROPERTIESFields(env, lpObject);
5837 lpStruct->cBytes = (*env)->GetIntField(env, lpObject, SCRIPT_FONTPROPERTIESFc.cBytes);
5838 lpStruct->wgBlank = (*env)->GetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgBlank);
5839 lpStruct->wgDefault = (*env)->GetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgDefault);
5840 lpStruct->wgInvalid = (*env)->GetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgInvalid);
5841 lpStruct->wgKashida = (*env)->GetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgKashida);
5842 lpStruct->iKashidaWidth = (*env)->GetIntField(env, lpObject, SCRIPT_FONTPROPERTIESFc.iKashidaWidth);
5843 return lpStruct;
5844 }
5845
setSCRIPT_FONTPROPERTIESFields(JNIEnv * env,jobject lpObject,SCRIPT_FONTPROPERTIES * lpStruct)5846 void setSCRIPT_FONTPROPERTIESFields(JNIEnv *env, jobject lpObject, SCRIPT_FONTPROPERTIES *lpStruct)
5847 {
5848 if (!SCRIPT_FONTPROPERTIESFc.cached) cacheSCRIPT_FONTPROPERTIESFields(env, lpObject);
5849 (*env)->SetIntField(env, lpObject, SCRIPT_FONTPROPERTIESFc.cBytes, (jint)lpStruct->cBytes);
5850 (*env)->SetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgBlank, (jshort)lpStruct->wgBlank);
5851 (*env)->SetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgDefault, (jshort)lpStruct->wgDefault);
5852 (*env)->SetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgInvalid, (jshort)lpStruct->wgInvalid);
5853 (*env)->SetShortField(env, lpObject, SCRIPT_FONTPROPERTIESFc.wgKashida, (jshort)lpStruct->wgKashida);
5854 (*env)->SetIntField(env, lpObject, SCRIPT_FONTPROPERTIESFc.iKashidaWidth, (jint)lpStruct->iKashidaWidth);
5855 }
5856 #endif
5857
5858 #ifndef NO_SCRIPT_ITEM
5859 typedef struct SCRIPT_ITEM_FID_CACHE {
5860 int cached;
5861 jclass clazz;
5862 jfieldID iCharPos, a;
5863 } SCRIPT_ITEM_FID_CACHE;
5864
5865 SCRIPT_ITEM_FID_CACHE SCRIPT_ITEMFc;
5866
cacheSCRIPT_ITEMFields(JNIEnv * env,jobject lpObject)5867 void cacheSCRIPT_ITEMFields(JNIEnv *env, jobject lpObject)
5868 {
5869 if (SCRIPT_ITEMFc.cached) return;
5870 SCRIPT_ITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
5871 SCRIPT_ITEMFc.iCharPos = (*env)->GetFieldID(env, SCRIPT_ITEMFc.clazz, "iCharPos", "I");
5872 SCRIPT_ITEMFc.a = (*env)->GetFieldID(env, SCRIPT_ITEMFc.clazz, "a", "Lorg/eclipse/swt/internal/win32/SCRIPT_ANALYSIS;");
5873 SCRIPT_ITEMFc.cached = 1;
5874 }
5875
getSCRIPT_ITEMFields(JNIEnv * env,jobject lpObject,SCRIPT_ITEM * lpStruct)5876 SCRIPT_ITEM *getSCRIPT_ITEMFields(JNIEnv *env, jobject lpObject, SCRIPT_ITEM *lpStruct)
5877 {
5878 if (!SCRIPT_ITEMFc.cached) cacheSCRIPT_ITEMFields(env, lpObject);
5879 lpStruct->iCharPos = (*env)->GetIntField(env, lpObject, SCRIPT_ITEMFc.iCharPos);
5880 {
5881 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SCRIPT_ITEMFc.a);
5882 if (lpObject1 != NULL) getSCRIPT_ANALYSISFields(env, lpObject1, &lpStruct->a);
5883 }
5884 return lpStruct;
5885 }
5886
setSCRIPT_ITEMFields(JNIEnv * env,jobject lpObject,SCRIPT_ITEM * lpStruct)5887 void setSCRIPT_ITEMFields(JNIEnv *env, jobject lpObject, SCRIPT_ITEM *lpStruct)
5888 {
5889 if (!SCRIPT_ITEMFc.cached) cacheSCRIPT_ITEMFields(env, lpObject);
5890 (*env)->SetIntField(env, lpObject, SCRIPT_ITEMFc.iCharPos, (jint)lpStruct->iCharPos);
5891 {
5892 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SCRIPT_ITEMFc.a);
5893 if (lpObject1 != NULL) setSCRIPT_ANALYSISFields(env, lpObject1, &lpStruct->a);
5894 }
5895 }
5896 #endif
5897
5898 #ifndef NO_SCRIPT_LOGATTR
5899 typedef struct SCRIPT_LOGATTR_FID_CACHE {
5900 int cached;
5901 jclass clazz;
5902 jfieldID fSoftBreak, fWhiteSpace, fCharStop, fWordStop, fInvalid, fReserved;
5903 } SCRIPT_LOGATTR_FID_CACHE;
5904
5905 SCRIPT_LOGATTR_FID_CACHE SCRIPT_LOGATTRFc;
5906
cacheSCRIPT_LOGATTRFields(JNIEnv * env,jobject lpObject)5907 void cacheSCRIPT_LOGATTRFields(JNIEnv *env, jobject lpObject)
5908 {
5909 if (SCRIPT_LOGATTRFc.cached) return;
5910 SCRIPT_LOGATTRFc.clazz = (*env)->GetObjectClass(env, lpObject);
5911 SCRIPT_LOGATTRFc.fSoftBreak = (*env)->GetFieldID(env, SCRIPT_LOGATTRFc.clazz, "fSoftBreak", "Z");
5912 SCRIPT_LOGATTRFc.fWhiteSpace = (*env)->GetFieldID(env, SCRIPT_LOGATTRFc.clazz, "fWhiteSpace", "Z");
5913 SCRIPT_LOGATTRFc.fCharStop = (*env)->GetFieldID(env, SCRIPT_LOGATTRFc.clazz, "fCharStop", "Z");
5914 SCRIPT_LOGATTRFc.fWordStop = (*env)->GetFieldID(env, SCRIPT_LOGATTRFc.clazz, "fWordStop", "Z");
5915 SCRIPT_LOGATTRFc.fInvalid = (*env)->GetFieldID(env, SCRIPT_LOGATTRFc.clazz, "fInvalid", "Z");
5916 SCRIPT_LOGATTRFc.fReserved = (*env)->GetFieldID(env, SCRIPT_LOGATTRFc.clazz, "fReserved", "B");
5917 SCRIPT_LOGATTRFc.cached = 1;
5918 }
5919
getSCRIPT_LOGATTRFields(JNIEnv * env,jobject lpObject,SCRIPT_LOGATTR * lpStruct)5920 SCRIPT_LOGATTR *getSCRIPT_LOGATTRFields(JNIEnv *env, jobject lpObject, SCRIPT_LOGATTR *lpStruct)
5921 {
5922 if (!SCRIPT_LOGATTRFc.cached) cacheSCRIPT_LOGATTRFields(env, lpObject);
5923 lpStruct->fSoftBreak = (*env)->GetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fSoftBreak);
5924 lpStruct->fWhiteSpace = (*env)->GetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fWhiteSpace);
5925 lpStruct->fCharStop = (*env)->GetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fCharStop);
5926 lpStruct->fWordStop = (*env)->GetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fWordStop);
5927 lpStruct->fInvalid = (*env)->GetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fInvalid);
5928 lpStruct->fReserved = (*env)->GetByteField(env, lpObject, SCRIPT_LOGATTRFc.fReserved);
5929 return lpStruct;
5930 }
5931
setSCRIPT_LOGATTRFields(JNIEnv * env,jobject lpObject,SCRIPT_LOGATTR * lpStruct)5932 void setSCRIPT_LOGATTRFields(JNIEnv *env, jobject lpObject, SCRIPT_LOGATTR *lpStruct)
5933 {
5934 if (!SCRIPT_LOGATTRFc.cached) cacheSCRIPT_LOGATTRFields(env, lpObject);
5935 (*env)->SetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fSoftBreak, (jboolean)lpStruct->fSoftBreak);
5936 (*env)->SetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fWhiteSpace, (jboolean)lpStruct->fWhiteSpace);
5937 (*env)->SetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fCharStop, (jboolean)lpStruct->fCharStop);
5938 (*env)->SetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fWordStop, (jboolean)lpStruct->fWordStop);
5939 (*env)->SetBooleanField(env, lpObject, SCRIPT_LOGATTRFc.fInvalid, (jboolean)lpStruct->fInvalid);
5940 (*env)->SetByteField(env, lpObject, SCRIPT_LOGATTRFc.fReserved, (jbyte)lpStruct->fReserved);
5941 }
5942 #endif
5943
5944 #ifndef NO_SCRIPT_PROPERTIES
5945 typedef struct SCRIPT_PROPERTIES_FID_CACHE {
5946 int cached;
5947 jclass clazz;
5948 jfieldID langid, fNumeric, fComplex, fNeedsWordBreaking, fNeedsCaretInfo, bCharSet, fControl, fPrivateUseArea, fNeedsCharacterJustify, fInvalidGlyph, fInvalidLogAttr, fCDM, fAmbiguousCharSet, fClusterSizeVaries, fRejectInvalid;
5949 } SCRIPT_PROPERTIES_FID_CACHE;
5950
5951 SCRIPT_PROPERTIES_FID_CACHE SCRIPT_PROPERTIESFc;
5952
cacheSCRIPT_PROPERTIESFields(JNIEnv * env,jobject lpObject)5953 void cacheSCRIPT_PROPERTIESFields(JNIEnv *env, jobject lpObject)
5954 {
5955 if (SCRIPT_PROPERTIESFc.cached) return;
5956 SCRIPT_PROPERTIESFc.clazz = (*env)->GetObjectClass(env, lpObject);
5957 SCRIPT_PROPERTIESFc.langid = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "langid", "S");
5958 SCRIPT_PROPERTIESFc.fNumeric = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fNumeric", "Z");
5959 SCRIPT_PROPERTIESFc.fComplex = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fComplex", "Z");
5960 SCRIPT_PROPERTIESFc.fNeedsWordBreaking = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fNeedsWordBreaking", "Z");
5961 SCRIPT_PROPERTIESFc.fNeedsCaretInfo = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fNeedsCaretInfo", "Z");
5962 SCRIPT_PROPERTIESFc.bCharSet = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "bCharSet", "B");
5963 SCRIPT_PROPERTIESFc.fControl = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fControl", "Z");
5964 SCRIPT_PROPERTIESFc.fPrivateUseArea = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fPrivateUseArea", "Z");
5965 SCRIPT_PROPERTIESFc.fNeedsCharacterJustify = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fNeedsCharacterJustify", "Z");
5966 SCRIPT_PROPERTIESFc.fInvalidGlyph = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fInvalidGlyph", "Z");
5967 SCRIPT_PROPERTIESFc.fInvalidLogAttr = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fInvalidLogAttr", "Z");
5968 SCRIPT_PROPERTIESFc.fCDM = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fCDM", "Z");
5969 SCRIPT_PROPERTIESFc.fAmbiguousCharSet = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fAmbiguousCharSet", "Z");
5970 SCRIPT_PROPERTIESFc.fClusterSizeVaries = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fClusterSizeVaries", "Z");
5971 SCRIPT_PROPERTIESFc.fRejectInvalid = (*env)->GetFieldID(env, SCRIPT_PROPERTIESFc.clazz, "fRejectInvalid", "Z");
5972 SCRIPT_PROPERTIESFc.cached = 1;
5973 }
5974
getSCRIPT_PROPERTIESFields(JNIEnv * env,jobject lpObject,SCRIPT_PROPERTIES * lpStruct)5975 SCRIPT_PROPERTIES *getSCRIPT_PROPERTIESFields(JNIEnv *env, jobject lpObject, SCRIPT_PROPERTIES *lpStruct)
5976 {
5977 if (!SCRIPT_PROPERTIESFc.cached) cacheSCRIPT_PROPERTIESFields(env, lpObject);
5978 lpStruct->langid = (*env)->GetShortField(env, lpObject, SCRIPT_PROPERTIESFc.langid);
5979 lpStruct->fNumeric = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNumeric);
5980 lpStruct->fComplex = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fComplex);
5981 lpStruct->fNeedsWordBreaking = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNeedsWordBreaking);
5982 lpStruct->fNeedsCaretInfo = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNeedsCaretInfo);
5983 lpStruct->bCharSet = (*env)->GetByteField(env, lpObject, SCRIPT_PROPERTIESFc.bCharSet);
5984 lpStruct->fControl = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fControl);
5985 lpStruct->fPrivateUseArea = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fPrivateUseArea);
5986 lpStruct->fNeedsCharacterJustify = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNeedsCharacterJustify);
5987 lpStruct->fInvalidGlyph = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fInvalidGlyph);
5988 lpStruct->fInvalidLogAttr = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fInvalidLogAttr);
5989 lpStruct->fCDM = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fCDM);
5990 lpStruct->fAmbiguousCharSet = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fAmbiguousCharSet);
5991 lpStruct->fClusterSizeVaries = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fClusterSizeVaries);
5992 lpStruct->fRejectInvalid = (*env)->GetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fRejectInvalid);
5993 return lpStruct;
5994 }
5995
setSCRIPT_PROPERTIESFields(JNIEnv * env,jobject lpObject,SCRIPT_PROPERTIES * lpStruct)5996 void setSCRIPT_PROPERTIESFields(JNIEnv *env, jobject lpObject, SCRIPT_PROPERTIES *lpStruct)
5997 {
5998 if (!SCRIPT_PROPERTIESFc.cached) cacheSCRIPT_PROPERTIESFields(env, lpObject);
5999 (*env)->SetShortField(env, lpObject, SCRIPT_PROPERTIESFc.langid, (jshort)lpStruct->langid);
6000 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNumeric, (jboolean)lpStruct->fNumeric);
6001 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fComplex, (jboolean)lpStruct->fComplex);
6002 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNeedsWordBreaking, (jboolean)lpStruct->fNeedsWordBreaking);
6003 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNeedsCaretInfo, (jboolean)lpStruct->fNeedsCaretInfo);
6004 (*env)->SetByteField(env, lpObject, SCRIPT_PROPERTIESFc.bCharSet, (jbyte)lpStruct->bCharSet);
6005 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fControl, (jboolean)lpStruct->fControl);
6006 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fPrivateUseArea, (jboolean)lpStruct->fPrivateUseArea);
6007 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fNeedsCharacterJustify, (jboolean)lpStruct->fNeedsCharacterJustify);
6008 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fInvalidGlyph, (jboolean)lpStruct->fInvalidGlyph);
6009 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fInvalidLogAttr, (jboolean)lpStruct->fInvalidLogAttr);
6010 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fCDM, (jboolean)lpStruct->fCDM);
6011 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fAmbiguousCharSet, (jboolean)lpStruct->fAmbiguousCharSet);
6012 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fClusterSizeVaries, (jboolean)lpStruct->fClusterSizeVaries);
6013 (*env)->SetBooleanField(env, lpObject, SCRIPT_PROPERTIESFc.fRejectInvalid, (jboolean)lpStruct->fRejectInvalid);
6014 }
6015 #endif
6016
6017 #ifndef NO_SCRIPT_STATE
6018 typedef struct SCRIPT_STATE_FID_CACHE {
6019 int cached;
6020 jclass clazz;
6021 jfieldID uBidiLevel, fOverrideDirection, fInhibitSymSwap, fCharShape, fDigitSubstitute, fInhibitLigate, fDisplayZWG, fArabicNumContext, fGcpClusters, fReserved, fEngineReserved;
6022 } SCRIPT_STATE_FID_CACHE;
6023
6024 SCRIPT_STATE_FID_CACHE SCRIPT_STATEFc;
6025
cacheSCRIPT_STATEFields(JNIEnv * env,jobject lpObject)6026 void cacheSCRIPT_STATEFields(JNIEnv *env, jobject lpObject)
6027 {
6028 if (SCRIPT_STATEFc.cached) return;
6029 SCRIPT_STATEFc.clazz = (*env)->GetObjectClass(env, lpObject);
6030 SCRIPT_STATEFc.uBidiLevel = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "uBidiLevel", "S");
6031 SCRIPT_STATEFc.fOverrideDirection = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fOverrideDirection", "Z");
6032 SCRIPT_STATEFc.fInhibitSymSwap = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fInhibitSymSwap", "Z");
6033 SCRIPT_STATEFc.fCharShape = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fCharShape", "Z");
6034 SCRIPT_STATEFc.fDigitSubstitute = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fDigitSubstitute", "Z");
6035 SCRIPT_STATEFc.fInhibitLigate = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fInhibitLigate", "Z");
6036 SCRIPT_STATEFc.fDisplayZWG = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fDisplayZWG", "Z");
6037 SCRIPT_STATEFc.fArabicNumContext = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fArabicNumContext", "Z");
6038 SCRIPT_STATEFc.fGcpClusters = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fGcpClusters", "Z");
6039 SCRIPT_STATEFc.fReserved = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fReserved", "Z");
6040 SCRIPT_STATEFc.fEngineReserved = (*env)->GetFieldID(env, SCRIPT_STATEFc.clazz, "fEngineReserved", "S");
6041 SCRIPT_STATEFc.cached = 1;
6042 }
6043
getSCRIPT_STATEFields(JNIEnv * env,jobject lpObject,SCRIPT_STATE * lpStruct)6044 SCRIPT_STATE *getSCRIPT_STATEFields(JNIEnv *env, jobject lpObject, SCRIPT_STATE *lpStruct)
6045 {
6046 if (!SCRIPT_STATEFc.cached) cacheSCRIPT_STATEFields(env, lpObject);
6047 lpStruct->uBidiLevel = (*env)->GetShortField(env, lpObject, SCRIPT_STATEFc.uBidiLevel);
6048 lpStruct->fOverrideDirection = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fOverrideDirection);
6049 lpStruct->fInhibitSymSwap = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fInhibitSymSwap);
6050 lpStruct->fCharShape = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fCharShape);
6051 lpStruct->fDigitSubstitute = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fDigitSubstitute);
6052 lpStruct->fInhibitLigate = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fInhibitLigate);
6053 lpStruct->fDisplayZWG = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fDisplayZWG);
6054 lpStruct->fArabicNumContext = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fArabicNumContext);
6055 lpStruct->fGcpClusters = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fGcpClusters);
6056 lpStruct->fReserved = (*env)->GetBooleanField(env, lpObject, SCRIPT_STATEFc.fReserved);
6057 lpStruct->fEngineReserved = (*env)->GetShortField(env, lpObject, SCRIPT_STATEFc.fEngineReserved);
6058 return lpStruct;
6059 }
6060
setSCRIPT_STATEFields(JNIEnv * env,jobject lpObject,SCRIPT_STATE * lpStruct)6061 void setSCRIPT_STATEFields(JNIEnv *env, jobject lpObject, SCRIPT_STATE *lpStruct)
6062 {
6063 if (!SCRIPT_STATEFc.cached) cacheSCRIPT_STATEFields(env, lpObject);
6064 (*env)->SetShortField(env, lpObject, SCRIPT_STATEFc.uBidiLevel, (jshort)lpStruct->uBidiLevel);
6065 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fOverrideDirection, (jboolean)lpStruct->fOverrideDirection);
6066 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fInhibitSymSwap, (jboolean)lpStruct->fInhibitSymSwap);
6067 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fCharShape, (jboolean)lpStruct->fCharShape);
6068 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fDigitSubstitute, (jboolean)lpStruct->fDigitSubstitute);
6069 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fInhibitLigate, (jboolean)lpStruct->fInhibitLigate);
6070 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fDisplayZWG, (jboolean)lpStruct->fDisplayZWG);
6071 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fArabicNumContext, (jboolean)lpStruct->fArabicNumContext);
6072 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fGcpClusters, (jboolean)lpStruct->fGcpClusters);
6073 (*env)->SetBooleanField(env, lpObject, SCRIPT_STATEFc.fReserved, (jboolean)lpStruct->fReserved);
6074 (*env)->SetShortField(env, lpObject, SCRIPT_STATEFc.fEngineReserved, (jshort)lpStruct->fEngineReserved);
6075 }
6076 #endif
6077
6078 #ifndef NO_SCROLLBARINFO
6079 typedef struct SCROLLBARINFO_FID_CACHE {
6080 int cached;
6081 jclass clazz;
6082 jfieldID cbSize, rcScrollBar, dxyLineButton, xyThumbTop, xyThumbBottom, reserved, rgstate;
6083 } SCROLLBARINFO_FID_CACHE;
6084
6085 SCROLLBARINFO_FID_CACHE SCROLLBARINFOFc;
6086
cacheSCROLLBARINFOFields(JNIEnv * env,jobject lpObject)6087 void cacheSCROLLBARINFOFields(JNIEnv *env, jobject lpObject)
6088 {
6089 if (SCROLLBARINFOFc.cached) return;
6090 SCROLLBARINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6091 SCROLLBARINFOFc.cbSize = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "cbSize", "I");
6092 SCROLLBARINFOFc.rcScrollBar = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "rcScrollBar", "Lorg/eclipse/swt/internal/win32/RECT;");
6093 SCROLLBARINFOFc.dxyLineButton = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "dxyLineButton", "I");
6094 SCROLLBARINFOFc.xyThumbTop = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "xyThumbTop", "I");
6095 SCROLLBARINFOFc.xyThumbBottom = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "xyThumbBottom", "I");
6096 SCROLLBARINFOFc.reserved = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "reserved", "I");
6097 SCROLLBARINFOFc.rgstate = (*env)->GetFieldID(env, SCROLLBARINFOFc.clazz, "rgstate", "[I");
6098 SCROLLBARINFOFc.cached = 1;
6099 }
6100
getSCROLLBARINFOFields(JNIEnv * env,jobject lpObject,SCROLLBARINFO * lpStruct)6101 SCROLLBARINFO *getSCROLLBARINFOFields(JNIEnv *env, jobject lpObject, SCROLLBARINFO *lpStruct)
6102 {
6103 if (!SCROLLBARINFOFc.cached) cacheSCROLLBARINFOFields(env, lpObject);
6104 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, SCROLLBARINFOFc.cbSize);
6105 {
6106 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SCROLLBARINFOFc.rcScrollBar);
6107 if (lpObject1 != NULL) getRECTFields(env, lpObject1, &lpStruct->rcScrollBar);
6108 }
6109 lpStruct->dxyLineButton = (*env)->GetIntField(env, lpObject, SCROLLBARINFOFc.dxyLineButton);
6110 lpStruct->xyThumbTop = (*env)->GetIntField(env, lpObject, SCROLLBARINFOFc.xyThumbTop);
6111 lpStruct->xyThumbBottom = (*env)->GetIntField(env, lpObject, SCROLLBARINFOFc.xyThumbBottom);
6112 lpStruct->reserved = (*env)->GetIntField(env, lpObject, SCROLLBARINFOFc.reserved);
6113 {
6114 jintArray lpObject1 = (jintArray)(*env)->GetObjectField(env, lpObject, SCROLLBARINFOFc.rgstate);
6115 (*env)->GetIntArrayRegion(env, lpObject1, 0, sizeof(lpStruct->rgstate) / sizeof(jint), (jint *)lpStruct->rgstate);
6116 }
6117 return lpStruct;
6118 }
6119
setSCROLLBARINFOFields(JNIEnv * env,jobject lpObject,SCROLLBARINFO * lpStruct)6120 void setSCROLLBARINFOFields(JNIEnv *env, jobject lpObject, SCROLLBARINFO *lpStruct)
6121 {
6122 if (!SCROLLBARINFOFc.cached) cacheSCROLLBARINFOFields(env, lpObject);
6123 (*env)->SetIntField(env, lpObject, SCROLLBARINFOFc.cbSize, (jint)lpStruct->cbSize);
6124 {
6125 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SCROLLBARINFOFc.rcScrollBar);
6126 if (lpObject1 != NULL) setRECTFields(env, lpObject1, &lpStruct->rcScrollBar);
6127 }
6128 (*env)->SetIntField(env, lpObject, SCROLLBARINFOFc.dxyLineButton, (jint)lpStruct->dxyLineButton);
6129 (*env)->SetIntField(env, lpObject, SCROLLBARINFOFc.xyThumbTop, (jint)lpStruct->xyThumbTop);
6130 (*env)->SetIntField(env, lpObject, SCROLLBARINFOFc.xyThumbBottom, (jint)lpStruct->xyThumbBottom);
6131 (*env)->SetIntField(env, lpObject, SCROLLBARINFOFc.reserved, (jint)lpStruct->reserved);
6132 {
6133 jintArray lpObject1 = (jintArray)(*env)->GetObjectField(env, lpObject, SCROLLBARINFOFc.rgstate);
6134 (*env)->SetIntArrayRegion(env, lpObject1, 0, sizeof(lpStruct->rgstate) / sizeof(jint), (jint *)lpStruct->rgstate);
6135 }
6136 }
6137 #endif
6138
6139 #ifndef NO_SCROLLINFO
6140 typedef struct SCROLLINFO_FID_CACHE {
6141 int cached;
6142 jclass clazz;
6143 jfieldID cbSize, fMask, nMin, nMax, nPage, nPos, nTrackPos;
6144 } SCROLLINFO_FID_CACHE;
6145
6146 SCROLLINFO_FID_CACHE SCROLLINFOFc;
6147
cacheSCROLLINFOFields(JNIEnv * env,jobject lpObject)6148 void cacheSCROLLINFOFields(JNIEnv *env, jobject lpObject)
6149 {
6150 if (SCROLLINFOFc.cached) return;
6151 SCROLLINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6152 SCROLLINFOFc.cbSize = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "cbSize", "I");
6153 SCROLLINFOFc.fMask = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "fMask", "I");
6154 SCROLLINFOFc.nMin = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "nMin", "I");
6155 SCROLLINFOFc.nMax = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "nMax", "I");
6156 SCROLLINFOFc.nPage = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "nPage", "I");
6157 SCROLLINFOFc.nPos = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "nPos", "I");
6158 SCROLLINFOFc.nTrackPos = (*env)->GetFieldID(env, SCROLLINFOFc.clazz, "nTrackPos", "I");
6159 SCROLLINFOFc.cached = 1;
6160 }
6161
getSCROLLINFOFields(JNIEnv * env,jobject lpObject,SCROLLINFO * lpStruct)6162 SCROLLINFO *getSCROLLINFOFields(JNIEnv *env, jobject lpObject, SCROLLINFO *lpStruct)
6163 {
6164 if (!SCROLLINFOFc.cached) cacheSCROLLINFOFields(env, lpObject);
6165 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.cbSize);
6166 lpStruct->fMask = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.fMask);
6167 lpStruct->nMin = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.nMin);
6168 lpStruct->nMax = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.nMax);
6169 lpStruct->nPage = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.nPage);
6170 lpStruct->nPos = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.nPos);
6171 lpStruct->nTrackPos = (*env)->GetIntField(env, lpObject, SCROLLINFOFc.nTrackPos);
6172 return lpStruct;
6173 }
6174
setSCROLLINFOFields(JNIEnv * env,jobject lpObject,SCROLLINFO * lpStruct)6175 void setSCROLLINFOFields(JNIEnv *env, jobject lpObject, SCROLLINFO *lpStruct)
6176 {
6177 if (!SCROLLINFOFc.cached) cacheSCROLLINFOFields(env, lpObject);
6178 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.cbSize, (jint)lpStruct->cbSize);
6179 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.fMask, (jint)lpStruct->fMask);
6180 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.nMin, (jint)lpStruct->nMin);
6181 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.nMax, (jint)lpStruct->nMax);
6182 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.nPage, (jint)lpStruct->nPage);
6183 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.nPos, (jint)lpStruct->nPos);
6184 (*env)->SetIntField(env, lpObject, SCROLLINFOFc.nTrackPos, (jint)lpStruct->nTrackPos);
6185 }
6186 #endif
6187
6188 #ifndef NO_SHDRAGIMAGE
6189 typedef struct SHDRAGIMAGE_FID_CACHE {
6190 int cached;
6191 jclass clazz;
6192 jfieldID sizeDragImage, ptOffset, hbmpDragImage, crColorKey;
6193 } SHDRAGIMAGE_FID_CACHE;
6194
6195 SHDRAGIMAGE_FID_CACHE SHDRAGIMAGEFc;
6196
cacheSHDRAGIMAGEFields(JNIEnv * env,jobject lpObject)6197 void cacheSHDRAGIMAGEFields(JNIEnv *env, jobject lpObject)
6198 {
6199 if (SHDRAGIMAGEFc.cached) return;
6200 SHDRAGIMAGEFc.clazz = (*env)->GetObjectClass(env, lpObject);
6201 SHDRAGIMAGEFc.sizeDragImage = (*env)->GetFieldID(env, SHDRAGIMAGEFc.clazz, "sizeDragImage", "Lorg/eclipse/swt/internal/win32/SIZE;");
6202 SHDRAGIMAGEFc.ptOffset = (*env)->GetFieldID(env, SHDRAGIMAGEFc.clazz, "ptOffset", "Lorg/eclipse/swt/internal/win32/POINT;");
6203 SHDRAGIMAGEFc.hbmpDragImage = (*env)->GetFieldID(env, SHDRAGIMAGEFc.clazz, "hbmpDragImage", "J");
6204 SHDRAGIMAGEFc.crColorKey = (*env)->GetFieldID(env, SHDRAGIMAGEFc.clazz, "crColorKey", "I");
6205 SHDRAGIMAGEFc.cached = 1;
6206 }
6207
getSHDRAGIMAGEFields(JNIEnv * env,jobject lpObject,SHDRAGIMAGE * lpStruct)6208 SHDRAGIMAGE *getSHDRAGIMAGEFields(JNIEnv *env, jobject lpObject, SHDRAGIMAGE *lpStruct)
6209 {
6210 if (!SHDRAGIMAGEFc.cached) cacheSHDRAGIMAGEFields(env, lpObject);
6211 {
6212 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SHDRAGIMAGEFc.sizeDragImage);
6213 if (lpObject1 != NULL) getSIZEFields(env, lpObject1, &lpStruct->sizeDragImage);
6214 }
6215 {
6216 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SHDRAGIMAGEFc.ptOffset);
6217 if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->ptOffset);
6218 }
6219 lpStruct->hbmpDragImage = (HBITMAP)(*env)->GetLongField(env, lpObject, SHDRAGIMAGEFc.hbmpDragImage);
6220 lpStruct->crColorKey = (*env)->GetIntField(env, lpObject, SHDRAGIMAGEFc.crColorKey);
6221 return lpStruct;
6222 }
6223
setSHDRAGIMAGEFields(JNIEnv * env,jobject lpObject,SHDRAGIMAGE * lpStruct)6224 void setSHDRAGIMAGEFields(JNIEnv *env, jobject lpObject, SHDRAGIMAGE *lpStruct)
6225 {
6226 if (!SHDRAGIMAGEFc.cached) cacheSHDRAGIMAGEFields(env, lpObject);
6227 {
6228 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SHDRAGIMAGEFc.sizeDragImage);
6229 if (lpObject1 != NULL) setSIZEFields(env, lpObject1, &lpStruct->sizeDragImage);
6230 }
6231 {
6232 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, SHDRAGIMAGEFc.ptOffset);
6233 if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->ptOffset);
6234 }
6235 (*env)->SetLongField(env, lpObject, SHDRAGIMAGEFc.hbmpDragImage, (jlong)lpStruct->hbmpDragImage);
6236 (*env)->SetIntField(env, lpObject, SHDRAGIMAGEFc.crColorKey, (jint)lpStruct->crColorKey);
6237 }
6238 #endif
6239
6240 #ifndef NO_SHELLEXECUTEINFO
6241 typedef struct SHELLEXECUTEINFO_FID_CACHE {
6242 int cached;
6243 jclass clazz;
6244 jfieldID cbSize, fMask, hwnd, lpVerb, lpFile, lpParameters, lpDirectory, nShow, hInstApp, lpIDList, lpClass, hkeyClass, dwHotKey, hIcon, hProcess;
6245 } SHELLEXECUTEINFO_FID_CACHE;
6246
6247 SHELLEXECUTEINFO_FID_CACHE SHELLEXECUTEINFOFc;
6248
cacheSHELLEXECUTEINFOFields(JNIEnv * env,jobject lpObject)6249 void cacheSHELLEXECUTEINFOFields(JNIEnv *env, jobject lpObject)
6250 {
6251 if (SHELLEXECUTEINFOFc.cached) return;
6252 SHELLEXECUTEINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6253 SHELLEXECUTEINFOFc.cbSize = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "cbSize", "I");
6254 SHELLEXECUTEINFOFc.fMask = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "fMask", "I");
6255 SHELLEXECUTEINFOFc.hwnd = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "hwnd", "J");
6256 SHELLEXECUTEINFOFc.lpVerb = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "lpVerb", "J");
6257 SHELLEXECUTEINFOFc.lpFile = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "lpFile", "J");
6258 SHELLEXECUTEINFOFc.lpParameters = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "lpParameters", "J");
6259 SHELLEXECUTEINFOFc.lpDirectory = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "lpDirectory", "J");
6260 SHELLEXECUTEINFOFc.nShow = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "nShow", "I");
6261 SHELLEXECUTEINFOFc.hInstApp = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "hInstApp", "J");
6262 SHELLEXECUTEINFOFc.lpIDList = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "lpIDList", "J");
6263 SHELLEXECUTEINFOFc.lpClass = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "lpClass", "J");
6264 SHELLEXECUTEINFOFc.hkeyClass = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "hkeyClass", "J");
6265 SHELLEXECUTEINFOFc.dwHotKey = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "dwHotKey", "I");
6266 SHELLEXECUTEINFOFc.hIcon = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "hIcon", "J");
6267 SHELLEXECUTEINFOFc.hProcess = (*env)->GetFieldID(env, SHELLEXECUTEINFOFc.clazz, "hProcess", "J");
6268 SHELLEXECUTEINFOFc.cached = 1;
6269 }
6270
getSHELLEXECUTEINFOFields(JNIEnv * env,jobject lpObject,SHELLEXECUTEINFO * lpStruct)6271 SHELLEXECUTEINFO *getSHELLEXECUTEINFOFields(JNIEnv *env, jobject lpObject, SHELLEXECUTEINFO *lpStruct)
6272 {
6273 if (!SHELLEXECUTEINFOFc.cached) cacheSHELLEXECUTEINFOFields(env, lpObject);
6274 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, SHELLEXECUTEINFOFc.cbSize);
6275 lpStruct->fMask = (*env)->GetIntField(env, lpObject, SHELLEXECUTEINFOFc.fMask);
6276 lpStruct->hwnd = (HWND)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.hwnd);
6277 lpStruct->lpVerb = (LPCTSTR)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpVerb);
6278 lpStruct->lpFile = (LPCTSTR)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpFile);
6279 lpStruct->lpParameters = (LPCTSTR)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpParameters);
6280 lpStruct->lpDirectory = (LPCTSTR)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpDirectory);
6281 lpStruct->nShow = (*env)->GetIntField(env, lpObject, SHELLEXECUTEINFOFc.nShow);
6282 lpStruct->hInstApp = (HINSTANCE)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.hInstApp);
6283 lpStruct->lpIDList = (LPVOID)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpIDList);
6284 lpStruct->lpClass = (LPCTSTR)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpClass);
6285 lpStruct->hkeyClass = (HKEY)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.hkeyClass);
6286 lpStruct->dwHotKey = (*env)->GetIntField(env, lpObject, SHELLEXECUTEINFOFc.dwHotKey);
6287 lpStruct->hIcon = (HANDLE)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.hIcon);
6288 lpStruct->hProcess = (HANDLE)(*env)->GetLongField(env, lpObject, SHELLEXECUTEINFOFc.hProcess);
6289 return lpStruct;
6290 }
6291
setSHELLEXECUTEINFOFields(JNIEnv * env,jobject lpObject,SHELLEXECUTEINFO * lpStruct)6292 void setSHELLEXECUTEINFOFields(JNIEnv *env, jobject lpObject, SHELLEXECUTEINFO *lpStruct)
6293 {
6294 if (!SHELLEXECUTEINFOFc.cached) cacheSHELLEXECUTEINFOFields(env, lpObject);
6295 (*env)->SetIntField(env, lpObject, SHELLEXECUTEINFOFc.cbSize, (jint)lpStruct->cbSize);
6296 (*env)->SetIntField(env, lpObject, SHELLEXECUTEINFOFc.fMask, (jint)lpStruct->fMask);
6297 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.hwnd, (jlong)lpStruct->hwnd);
6298 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpVerb, (jlong)lpStruct->lpVerb);
6299 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpFile, (jlong)lpStruct->lpFile);
6300 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpParameters, (jlong)lpStruct->lpParameters);
6301 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpDirectory, (jlong)lpStruct->lpDirectory);
6302 (*env)->SetIntField(env, lpObject, SHELLEXECUTEINFOFc.nShow, (jint)lpStruct->nShow);
6303 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.hInstApp, (jlong)lpStruct->hInstApp);
6304 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpIDList, (jlong)lpStruct->lpIDList);
6305 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.lpClass, (jlong)lpStruct->lpClass);
6306 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.hkeyClass, (jlong)lpStruct->hkeyClass);
6307 (*env)->SetIntField(env, lpObject, SHELLEXECUTEINFOFc.dwHotKey, (jint)lpStruct->dwHotKey);
6308 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.hIcon, (jlong)lpStruct->hIcon);
6309 (*env)->SetLongField(env, lpObject, SHELLEXECUTEINFOFc.hProcess, (jlong)lpStruct->hProcess);
6310 }
6311 #endif
6312
6313 #ifndef NO_SHFILEINFO
6314 typedef struct SHFILEINFO_FID_CACHE {
6315 int cached;
6316 jclass clazz;
6317 jfieldID hIcon, iIcon, dwAttributes, szDisplayName, szTypeName;
6318 } SHFILEINFO_FID_CACHE;
6319
6320 SHFILEINFO_FID_CACHE SHFILEINFOFc;
6321
cacheSHFILEINFOFields(JNIEnv * env,jobject lpObject)6322 void cacheSHFILEINFOFields(JNIEnv *env, jobject lpObject)
6323 {
6324 if (SHFILEINFOFc.cached) return;
6325 SHFILEINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6326 SHFILEINFOFc.hIcon = (*env)->GetFieldID(env, SHFILEINFOFc.clazz, "hIcon", "J");
6327 SHFILEINFOFc.iIcon = (*env)->GetFieldID(env, SHFILEINFOFc.clazz, "iIcon", "I");
6328 SHFILEINFOFc.dwAttributes = (*env)->GetFieldID(env, SHFILEINFOFc.clazz, "dwAttributes", "I");
6329 SHFILEINFOFc.szDisplayName = (*env)->GetFieldID(env, SHFILEINFOFc.clazz, "szDisplayName", "[C");
6330 SHFILEINFOFc.szTypeName = (*env)->GetFieldID(env, SHFILEINFOFc.clazz, "szTypeName", "[C");
6331 SHFILEINFOFc.cached = 1;
6332 }
6333
getSHFILEINFOFields(JNIEnv * env,jobject lpObject,SHFILEINFO * lpStruct)6334 SHFILEINFO *getSHFILEINFOFields(JNIEnv *env, jobject lpObject, SHFILEINFO *lpStruct)
6335 {
6336 if (!SHFILEINFOFc.cached) cacheSHFILEINFOFields(env, lpObject);
6337 lpStruct->hIcon = (HICON)(*env)->GetLongField(env, lpObject, SHFILEINFOFc.hIcon);
6338 lpStruct->iIcon = (*env)->GetIntField(env, lpObject, SHFILEINFOFc.iIcon);
6339 lpStruct->dwAttributes = (*env)->GetIntField(env, lpObject, SHFILEINFOFc.dwAttributes);
6340 {
6341 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, SHFILEINFOFc.szDisplayName);
6342 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szDisplayName) / sizeof(jchar), (jchar *)lpStruct->szDisplayName);
6343 }
6344 {
6345 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, SHFILEINFOFc.szTypeName);
6346 (*env)->GetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szTypeName) / sizeof(jchar), (jchar *)lpStruct->szTypeName);
6347 }
6348 return lpStruct;
6349 }
6350
setSHFILEINFOFields(JNIEnv * env,jobject lpObject,SHFILEINFO * lpStruct)6351 void setSHFILEINFOFields(JNIEnv *env, jobject lpObject, SHFILEINFO *lpStruct)
6352 {
6353 if (!SHFILEINFOFc.cached) cacheSHFILEINFOFields(env, lpObject);
6354 (*env)->SetLongField(env, lpObject, SHFILEINFOFc.hIcon, (jlong)lpStruct->hIcon);
6355 (*env)->SetIntField(env, lpObject, SHFILEINFOFc.iIcon, (jint)lpStruct->iIcon);
6356 (*env)->SetIntField(env, lpObject, SHFILEINFOFc.dwAttributes, (jint)lpStruct->dwAttributes);
6357 {
6358 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, SHFILEINFOFc.szDisplayName);
6359 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szDisplayName) / sizeof(jchar), (jchar *)lpStruct->szDisplayName);
6360 }
6361 {
6362 jcharArray lpObject1 = (jcharArray)(*env)->GetObjectField(env, lpObject, SHFILEINFOFc.szTypeName);
6363 (*env)->SetCharArrayRegion(env, lpObject1, 0, sizeof(lpStruct->szTypeName) / sizeof(jchar), (jchar *)lpStruct->szTypeName);
6364 }
6365 }
6366 #endif
6367
6368 #ifndef NO_SIZE
6369 typedef struct SIZE_FID_CACHE {
6370 int cached;
6371 jclass clazz;
6372 jfieldID cx, cy;
6373 } SIZE_FID_CACHE;
6374
6375 SIZE_FID_CACHE SIZEFc;
6376
cacheSIZEFields(JNIEnv * env,jobject lpObject)6377 void cacheSIZEFields(JNIEnv *env, jobject lpObject)
6378 {
6379 if (SIZEFc.cached) return;
6380 SIZEFc.clazz = (*env)->GetObjectClass(env, lpObject);
6381 SIZEFc.cx = (*env)->GetFieldID(env, SIZEFc.clazz, "cx", "I");
6382 SIZEFc.cy = (*env)->GetFieldID(env, SIZEFc.clazz, "cy", "I");
6383 SIZEFc.cached = 1;
6384 }
6385
getSIZEFields(JNIEnv * env,jobject lpObject,SIZE * lpStruct)6386 SIZE *getSIZEFields(JNIEnv *env, jobject lpObject, SIZE *lpStruct)
6387 {
6388 if (!SIZEFc.cached) cacheSIZEFields(env, lpObject);
6389 lpStruct->cx = (*env)->GetIntField(env, lpObject, SIZEFc.cx);
6390 lpStruct->cy = (*env)->GetIntField(env, lpObject, SIZEFc.cy);
6391 return lpStruct;
6392 }
6393
setSIZEFields(JNIEnv * env,jobject lpObject,SIZE * lpStruct)6394 void setSIZEFields(JNIEnv *env, jobject lpObject, SIZE *lpStruct)
6395 {
6396 if (!SIZEFc.cached) cacheSIZEFields(env, lpObject);
6397 (*env)->SetIntField(env, lpObject, SIZEFc.cx, (jint)lpStruct->cx);
6398 (*env)->SetIntField(env, lpObject, SIZEFc.cy, (jint)lpStruct->cy);
6399 }
6400 #endif
6401
6402 #ifndef NO_STARTUPINFO
6403 typedef struct STARTUPINFO_FID_CACHE {
6404 int cached;
6405 jclass clazz;
6406 jfieldID cb, lpReserved, lpDesktop, lpTitle, dwX, dwY, dwXSize, dwYSize, dwXCountChars, dwYCountChars, dwFillAttribute, dwFlags, wShowWindow, cbReserved2, lpReserved2, hStdInput, hStdOutput, hStdError;
6407 } STARTUPINFO_FID_CACHE;
6408
6409 STARTUPINFO_FID_CACHE STARTUPINFOFc;
6410
cacheSTARTUPINFOFields(JNIEnv * env,jobject lpObject)6411 void cacheSTARTUPINFOFields(JNIEnv *env, jobject lpObject)
6412 {
6413 if (STARTUPINFOFc.cached) return;
6414 STARTUPINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6415 STARTUPINFOFc.cb = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "cb", "I");
6416 STARTUPINFOFc.lpReserved = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "lpReserved", "J");
6417 STARTUPINFOFc.lpDesktop = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "lpDesktop", "J");
6418 STARTUPINFOFc.lpTitle = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "lpTitle", "J");
6419 STARTUPINFOFc.dwX = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwX", "I");
6420 STARTUPINFOFc.dwY = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwY", "I");
6421 STARTUPINFOFc.dwXSize = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwXSize", "I");
6422 STARTUPINFOFc.dwYSize = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwYSize", "I");
6423 STARTUPINFOFc.dwXCountChars = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwXCountChars", "I");
6424 STARTUPINFOFc.dwYCountChars = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwYCountChars", "I");
6425 STARTUPINFOFc.dwFillAttribute = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwFillAttribute", "I");
6426 STARTUPINFOFc.dwFlags = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "dwFlags", "I");
6427 STARTUPINFOFc.wShowWindow = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "wShowWindow", "S");
6428 STARTUPINFOFc.cbReserved2 = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "cbReserved2", "S");
6429 STARTUPINFOFc.lpReserved2 = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "lpReserved2", "J");
6430 STARTUPINFOFc.hStdInput = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "hStdInput", "J");
6431 STARTUPINFOFc.hStdOutput = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "hStdOutput", "J");
6432 STARTUPINFOFc.hStdError = (*env)->GetFieldID(env, STARTUPINFOFc.clazz, "hStdError", "J");
6433 STARTUPINFOFc.cached = 1;
6434 }
6435
getSTARTUPINFOFields(JNIEnv * env,jobject lpObject,STARTUPINFO * lpStruct)6436 STARTUPINFO *getSTARTUPINFOFields(JNIEnv *env, jobject lpObject, STARTUPINFO *lpStruct)
6437 {
6438 if (!STARTUPINFOFc.cached) cacheSTARTUPINFOFields(env, lpObject);
6439 lpStruct->cb = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.cb);
6440 lpStruct->lpReserved = (LPTSTR)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.lpReserved);
6441 lpStruct->lpDesktop = (LPTSTR)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.lpDesktop);
6442 lpStruct->lpTitle = (LPTSTR)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.lpTitle);
6443 lpStruct->dwX = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwX);
6444 lpStruct->dwY = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwY);
6445 lpStruct->dwXSize = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwXSize);
6446 lpStruct->dwYSize = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwYSize);
6447 lpStruct->dwXCountChars = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwXCountChars);
6448 lpStruct->dwYCountChars = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwYCountChars);
6449 lpStruct->dwFillAttribute = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwFillAttribute);
6450 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, STARTUPINFOFc.dwFlags);
6451 lpStruct->wShowWindow = (*env)->GetShortField(env, lpObject, STARTUPINFOFc.wShowWindow);
6452 lpStruct->cbReserved2 = (*env)->GetShortField(env, lpObject, STARTUPINFOFc.cbReserved2);
6453 lpStruct->lpReserved2 = (LPBYTE)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.lpReserved2);
6454 lpStruct->hStdInput = (HANDLE)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.hStdInput);
6455 lpStruct->hStdOutput = (HANDLE)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.hStdOutput);
6456 lpStruct->hStdError = (HANDLE)(*env)->GetLongField(env, lpObject, STARTUPINFOFc.hStdError);
6457 return lpStruct;
6458 }
6459
setSTARTUPINFOFields(JNIEnv * env,jobject lpObject,STARTUPINFO * lpStruct)6460 void setSTARTUPINFOFields(JNIEnv *env, jobject lpObject, STARTUPINFO *lpStruct)
6461 {
6462 if (!STARTUPINFOFc.cached) cacheSTARTUPINFOFields(env, lpObject);
6463 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.cb, (jint)lpStruct->cb);
6464 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.lpReserved, (jlong)lpStruct->lpReserved);
6465 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.lpDesktop, (jlong)lpStruct->lpDesktop);
6466 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.lpTitle, (jlong)lpStruct->lpTitle);
6467 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwX, (jint)lpStruct->dwX);
6468 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwY, (jint)lpStruct->dwY);
6469 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwXSize, (jint)lpStruct->dwXSize);
6470 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwYSize, (jint)lpStruct->dwYSize);
6471 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwXCountChars, (jint)lpStruct->dwXCountChars);
6472 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwYCountChars, (jint)lpStruct->dwYCountChars);
6473 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwFillAttribute, (jint)lpStruct->dwFillAttribute);
6474 (*env)->SetIntField(env, lpObject, STARTUPINFOFc.dwFlags, (jint)lpStruct->dwFlags);
6475 (*env)->SetShortField(env, lpObject, STARTUPINFOFc.wShowWindow, (jshort)lpStruct->wShowWindow);
6476 (*env)->SetShortField(env, lpObject, STARTUPINFOFc.cbReserved2, (jshort)lpStruct->cbReserved2);
6477 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.lpReserved2, (jlong)lpStruct->lpReserved2);
6478 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.hStdInput, (jlong)lpStruct->hStdInput);
6479 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.hStdOutput, (jlong)lpStruct->hStdOutput);
6480 (*env)->SetLongField(env, lpObject, STARTUPINFOFc.hStdError, (jlong)lpStruct->hStdError);
6481 }
6482 #endif
6483
6484 #ifndef NO_SYSTEMTIME
6485 typedef struct SYSTEMTIME_FID_CACHE {
6486 int cached;
6487 jclass clazz;
6488 jfieldID wYear, wMonth, wDayOfWeek, wDay, wHour, wMinute, wSecond, wMilliseconds;
6489 } SYSTEMTIME_FID_CACHE;
6490
6491 SYSTEMTIME_FID_CACHE SYSTEMTIMEFc;
6492
cacheSYSTEMTIMEFields(JNIEnv * env,jobject lpObject)6493 void cacheSYSTEMTIMEFields(JNIEnv *env, jobject lpObject)
6494 {
6495 if (SYSTEMTIMEFc.cached) return;
6496 SYSTEMTIMEFc.clazz = (*env)->GetObjectClass(env, lpObject);
6497 SYSTEMTIMEFc.wYear = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wYear", "S");
6498 SYSTEMTIMEFc.wMonth = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wMonth", "S");
6499 SYSTEMTIMEFc.wDayOfWeek = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wDayOfWeek", "S");
6500 SYSTEMTIMEFc.wDay = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wDay", "S");
6501 SYSTEMTIMEFc.wHour = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wHour", "S");
6502 SYSTEMTIMEFc.wMinute = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wMinute", "S");
6503 SYSTEMTIMEFc.wSecond = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wSecond", "S");
6504 SYSTEMTIMEFc.wMilliseconds = (*env)->GetFieldID(env, SYSTEMTIMEFc.clazz, "wMilliseconds", "S");
6505 SYSTEMTIMEFc.cached = 1;
6506 }
6507
getSYSTEMTIMEFields(JNIEnv * env,jobject lpObject,SYSTEMTIME * lpStruct)6508 SYSTEMTIME *getSYSTEMTIMEFields(JNIEnv *env, jobject lpObject, SYSTEMTIME *lpStruct)
6509 {
6510 if (!SYSTEMTIMEFc.cached) cacheSYSTEMTIMEFields(env, lpObject);
6511 lpStruct->wYear = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wYear);
6512 lpStruct->wMonth = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wMonth);
6513 lpStruct->wDayOfWeek = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wDayOfWeek);
6514 lpStruct->wDay = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wDay);
6515 lpStruct->wHour = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wHour);
6516 lpStruct->wMinute = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wMinute);
6517 lpStruct->wSecond = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wSecond);
6518 lpStruct->wMilliseconds = (*env)->GetShortField(env, lpObject, SYSTEMTIMEFc.wMilliseconds);
6519 return lpStruct;
6520 }
6521
setSYSTEMTIMEFields(JNIEnv * env,jobject lpObject,SYSTEMTIME * lpStruct)6522 void setSYSTEMTIMEFields(JNIEnv *env, jobject lpObject, SYSTEMTIME *lpStruct)
6523 {
6524 if (!SYSTEMTIMEFc.cached) cacheSYSTEMTIMEFields(env, lpObject);
6525 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wYear, (jshort)lpStruct->wYear);
6526 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wMonth, (jshort)lpStruct->wMonth);
6527 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wDayOfWeek, (jshort)lpStruct->wDayOfWeek);
6528 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wDay, (jshort)lpStruct->wDay);
6529 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wHour, (jshort)lpStruct->wHour);
6530 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wMinute, (jshort)lpStruct->wMinute);
6531 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wSecond, (jshort)lpStruct->wSecond);
6532 (*env)->SetShortField(env, lpObject, SYSTEMTIMEFc.wMilliseconds, (jshort)lpStruct->wMilliseconds);
6533 }
6534 #endif
6535
6536 #ifndef NO_TBBUTTON
6537 typedef struct TBBUTTON_FID_CACHE {
6538 int cached;
6539 jclass clazz;
6540 jfieldID iBitmap, idCommand, fsState, fsStyle, dwData, iString;
6541 } TBBUTTON_FID_CACHE;
6542
6543 TBBUTTON_FID_CACHE TBBUTTONFc;
6544
cacheTBBUTTONFields(JNIEnv * env,jobject lpObject)6545 void cacheTBBUTTONFields(JNIEnv *env, jobject lpObject)
6546 {
6547 if (TBBUTTONFc.cached) return;
6548 TBBUTTONFc.clazz = (*env)->GetObjectClass(env, lpObject);
6549 TBBUTTONFc.iBitmap = (*env)->GetFieldID(env, TBBUTTONFc.clazz, "iBitmap", "I");
6550 TBBUTTONFc.idCommand = (*env)->GetFieldID(env, TBBUTTONFc.clazz, "idCommand", "I");
6551 TBBUTTONFc.fsState = (*env)->GetFieldID(env, TBBUTTONFc.clazz, "fsState", "B");
6552 TBBUTTONFc.fsStyle = (*env)->GetFieldID(env, TBBUTTONFc.clazz, "fsStyle", "B");
6553 TBBUTTONFc.dwData = (*env)->GetFieldID(env, TBBUTTONFc.clazz, "dwData", "J");
6554 TBBUTTONFc.iString = (*env)->GetFieldID(env, TBBUTTONFc.clazz, "iString", "J");
6555 TBBUTTONFc.cached = 1;
6556 }
6557
getTBBUTTONFields(JNIEnv * env,jobject lpObject,TBBUTTON * lpStruct)6558 TBBUTTON *getTBBUTTONFields(JNIEnv *env, jobject lpObject, TBBUTTON *lpStruct)
6559 {
6560 if (!TBBUTTONFc.cached) cacheTBBUTTONFields(env, lpObject);
6561 lpStruct->iBitmap = (*env)->GetIntField(env, lpObject, TBBUTTONFc.iBitmap);
6562 lpStruct->idCommand = (*env)->GetIntField(env, lpObject, TBBUTTONFc.idCommand);
6563 lpStruct->fsState = (*env)->GetByteField(env, lpObject, TBBUTTONFc.fsState);
6564 lpStruct->fsStyle = (*env)->GetByteField(env, lpObject, TBBUTTONFc.fsStyle);
6565 lpStruct->dwData = (*env)->GetLongField(env, lpObject, TBBUTTONFc.dwData);
6566 lpStruct->iString = (*env)->GetLongField(env, lpObject, TBBUTTONFc.iString);
6567 return lpStruct;
6568 }
6569
setTBBUTTONFields(JNIEnv * env,jobject lpObject,TBBUTTON * lpStruct)6570 void setTBBUTTONFields(JNIEnv *env, jobject lpObject, TBBUTTON *lpStruct)
6571 {
6572 if (!TBBUTTONFc.cached) cacheTBBUTTONFields(env, lpObject);
6573 (*env)->SetIntField(env, lpObject, TBBUTTONFc.iBitmap, (jint)lpStruct->iBitmap);
6574 (*env)->SetIntField(env, lpObject, TBBUTTONFc.idCommand, (jint)lpStruct->idCommand);
6575 (*env)->SetByteField(env, lpObject, TBBUTTONFc.fsState, (jbyte)lpStruct->fsState);
6576 (*env)->SetByteField(env, lpObject, TBBUTTONFc.fsStyle, (jbyte)lpStruct->fsStyle);
6577 (*env)->SetLongField(env, lpObject, TBBUTTONFc.dwData, (jlong)lpStruct->dwData);
6578 (*env)->SetLongField(env, lpObject, TBBUTTONFc.iString, (jlong)lpStruct->iString);
6579 }
6580 #endif
6581
6582 #ifndef NO_TBBUTTONINFO
6583 typedef struct TBBUTTONINFO_FID_CACHE {
6584 int cached;
6585 jclass clazz;
6586 jfieldID cbSize, dwMask, idCommand, iImage, fsState, fsStyle, cx, lParam, pszText, cchText;
6587 } TBBUTTONINFO_FID_CACHE;
6588
6589 TBBUTTONINFO_FID_CACHE TBBUTTONINFOFc;
6590
cacheTBBUTTONINFOFields(JNIEnv * env,jobject lpObject)6591 void cacheTBBUTTONINFOFields(JNIEnv *env, jobject lpObject)
6592 {
6593 if (TBBUTTONINFOFc.cached) return;
6594 TBBUTTONINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6595 TBBUTTONINFOFc.cbSize = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "cbSize", "I");
6596 TBBUTTONINFOFc.dwMask = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "dwMask", "I");
6597 TBBUTTONINFOFc.idCommand = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "idCommand", "I");
6598 TBBUTTONINFOFc.iImage = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "iImage", "I");
6599 TBBUTTONINFOFc.fsState = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "fsState", "B");
6600 TBBUTTONINFOFc.fsStyle = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "fsStyle", "B");
6601 TBBUTTONINFOFc.cx = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "cx", "S");
6602 TBBUTTONINFOFc.lParam = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "lParam", "J");
6603 TBBUTTONINFOFc.pszText = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "pszText", "J");
6604 TBBUTTONINFOFc.cchText = (*env)->GetFieldID(env, TBBUTTONINFOFc.clazz, "cchText", "I");
6605 TBBUTTONINFOFc.cached = 1;
6606 }
6607
getTBBUTTONINFOFields(JNIEnv * env,jobject lpObject,TBBUTTONINFO * lpStruct)6608 TBBUTTONINFO *getTBBUTTONINFOFields(JNIEnv *env, jobject lpObject, TBBUTTONINFO *lpStruct)
6609 {
6610 if (!TBBUTTONINFOFc.cached) cacheTBBUTTONINFOFields(env, lpObject);
6611 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, TBBUTTONINFOFc.cbSize);
6612 lpStruct->dwMask = (*env)->GetIntField(env, lpObject, TBBUTTONINFOFc.dwMask);
6613 lpStruct->idCommand = (*env)->GetIntField(env, lpObject, TBBUTTONINFOFc.idCommand);
6614 lpStruct->iImage = (*env)->GetIntField(env, lpObject, TBBUTTONINFOFc.iImage);
6615 lpStruct->fsState = (*env)->GetByteField(env, lpObject, TBBUTTONINFOFc.fsState);
6616 lpStruct->fsStyle = (*env)->GetByteField(env, lpObject, TBBUTTONINFOFc.fsStyle);
6617 lpStruct->cx = (*env)->GetShortField(env, lpObject, TBBUTTONINFOFc.cx);
6618 lpStruct->lParam = (*env)->GetLongField(env, lpObject, TBBUTTONINFOFc.lParam);
6619 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, TBBUTTONINFOFc.pszText);
6620 lpStruct->cchText = (*env)->GetIntField(env, lpObject, TBBUTTONINFOFc.cchText);
6621 return lpStruct;
6622 }
6623
setTBBUTTONINFOFields(JNIEnv * env,jobject lpObject,TBBUTTONINFO * lpStruct)6624 void setTBBUTTONINFOFields(JNIEnv *env, jobject lpObject, TBBUTTONINFO *lpStruct)
6625 {
6626 if (!TBBUTTONINFOFc.cached) cacheTBBUTTONINFOFields(env, lpObject);
6627 (*env)->SetIntField(env, lpObject, TBBUTTONINFOFc.cbSize, (jint)lpStruct->cbSize);
6628 (*env)->SetIntField(env, lpObject, TBBUTTONINFOFc.dwMask, (jint)lpStruct->dwMask);
6629 (*env)->SetIntField(env, lpObject, TBBUTTONINFOFc.idCommand, (jint)lpStruct->idCommand);
6630 (*env)->SetIntField(env, lpObject, TBBUTTONINFOFc.iImage, (jint)lpStruct->iImage);
6631 (*env)->SetByteField(env, lpObject, TBBUTTONINFOFc.fsState, (jbyte)lpStruct->fsState);
6632 (*env)->SetByteField(env, lpObject, TBBUTTONINFOFc.fsStyle, (jbyte)lpStruct->fsStyle);
6633 (*env)->SetShortField(env, lpObject, TBBUTTONINFOFc.cx, (jshort)lpStruct->cx);
6634 (*env)->SetLongField(env, lpObject, TBBUTTONINFOFc.lParam, (jlong)lpStruct->lParam);
6635 (*env)->SetLongField(env, lpObject, TBBUTTONINFOFc.pszText, (jlong)lpStruct->pszText);
6636 (*env)->SetIntField(env, lpObject, TBBUTTONINFOFc.cchText, (jint)lpStruct->cchText);
6637 }
6638 #endif
6639
6640 #ifndef NO_TCHITTESTINFO
6641 typedef struct TCHITTESTINFO_FID_CACHE {
6642 int cached;
6643 jclass clazz;
6644 jfieldID x, y, flags;
6645 } TCHITTESTINFO_FID_CACHE;
6646
6647 TCHITTESTINFO_FID_CACHE TCHITTESTINFOFc;
6648
cacheTCHITTESTINFOFields(JNIEnv * env,jobject lpObject)6649 void cacheTCHITTESTINFOFields(JNIEnv *env, jobject lpObject)
6650 {
6651 if (TCHITTESTINFOFc.cached) return;
6652 TCHITTESTINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6653 TCHITTESTINFOFc.x = (*env)->GetFieldID(env, TCHITTESTINFOFc.clazz, "x", "I");
6654 TCHITTESTINFOFc.y = (*env)->GetFieldID(env, TCHITTESTINFOFc.clazz, "y", "I");
6655 TCHITTESTINFOFc.flags = (*env)->GetFieldID(env, TCHITTESTINFOFc.clazz, "flags", "I");
6656 TCHITTESTINFOFc.cached = 1;
6657 }
6658
getTCHITTESTINFOFields(JNIEnv * env,jobject lpObject,TCHITTESTINFO * lpStruct)6659 TCHITTESTINFO *getTCHITTESTINFOFields(JNIEnv *env, jobject lpObject, TCHITTESTINFO *lpStruct)
6660 {
6661 if (!TCHITTESTINFOFc.cached) cacheTCHITTESTINFOFields(env, lpObject);
6662 lpStruct->pt.x = (*env)->GetIntField(env, lpObject, TCHITTESTINFOFc.x);
6663 lpStruct->pt.y = (*env)->GetIntField(env, lpObject, TCHITTESTINFOFc.y);
6664 lpStruct->flags = (*env)->GetIntField(env, lpObject, TCHITTESTINFOFc.flags);
6665 return lpStruct;
6666 }
6667
setTCHITTESTINFOFields(JNIEnv * env,jobject lpObject,TCHITTESTINFO * lpStruct)6668 void setTCHITTESTINFOFields(JNIEnv *env, jobject lpObject, TCHITTESTINFO *lpStruct)
6669 {
6670 if (!TCHITTESTINFOFc.cached) cacheTCHITTESTINFOFields(env, lpObject);
6671 (*env)->SetIntField(env, lpObject, TCHITTESTINFOFc.x, (jint)lpStruct->pt.x);
6672 (*env)->SetIntField(env, lpObject, TCHITTESTINFOFc.y, (jint)lpStruct->pt.y);
6673 (*env)->SetIntField(env, lpObject, TCHITTESTINFOFc.flags, (jint)lpStruct->flags);
6674 }
6675 #endif
6676
6677 #ifndef NO_TCITEM
6678 typedef struct TCITEM_FID_CACHE {
6679 int cached;
6680 jclass clazz;
6681 jfieldID mask, dwState, dwStateMask, pszText, cchTextMax, iImage, lParam;
6682 } TCITEM_FID_CACHE;
6683
6684 TCITEM_FID_CACHE TCITEMFc;
6685
cacheTCITEMFields(JNIEnv * env,jobject lpObject)6686 void cacheTCITEMFields(JNIEnv *env, jobject lpObject)
6687 {
6688 if (TCITEMFc.cached) return;
6689 TCITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
6690 TCITEMFc.mask = (*env)->GetFieldID(env, TCITEMFc.clazz, "mask", "I");
6691 TCITEMFc.dwState = (*env)->GetFieldID(env, TCITEMFc.clazz, "dwState", "I");
6692 TCITEMFc.dwStateMask = (*env)->GetFieldID(env, TCITEMFc.clazz, "dwStateMask", "I");
6693 TCITEMFc.pszText = (*env)->GetFieldID(env, TCITEMFc.clazz, "pszText", "J");
6694 TCITEMFc.cchTextMax = (*env)->GetFieldID(env, TCITEMFc.clazz, "cchTextMax", "I");
6695 TCITEMFc.iImage = (*env)->GetFieldID(env, TCITEMFc.clazz, "iImage", "I");
6696 TCITEMFc.lParam = (*env)->GetFieldID(env, TCITEMFc.clazz, "lParam", "J");
6697 TCITEMFc.cached = 1;
6698 }
6699
getTCITEMFields(JNIEnv * env,jobject lpObject,TCITEM * lpStruct)6700 TCITEM *getTCITEMFields(JNIEnv *env, jobject lpObject, TCITEM *lpStruct)
6701 {
6702 if (!TCITEMFc.cached) cacheTCITEMFields(env, lpObject);
6703 lpStruct->mask = (*env)->GetIntField(env, lpObject, TCITEMFc.mask);
6704 lpStruct->dwState = (*env)->GetIntField(env, lpObject, TCITEMFc.dwState);
6705 lpStruct->dwStateMask = (*env)->GetIntField(env, lpObject, TCITEMFc.dwStateMask);
6706 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, TCITEMFc.pszText);
6707 lpStruct->cchTextMax = (*env)->GetIntField(env, lpObject, TCITEMFc.cchTextMax);
6708 lpStruct->iImage = (*env)->GetIntField(env, lpObject, TCITEMFc.iImage);
6709 lpStruct->lParam = (*env)->GetLongField(env, lpObject, TCITEMFc.lParam);
6710 return lpStruct;
6711 }
6712
setTCITEMFields(JNIEnv * env,jobject lpObject,TCITEM * lpStruct)6713 void setTCITEMFields(JNIEnv *env, jobject lpObject, TCITEM *lpStruct)
6714 {
6715 if (!TCITEMFc.cached) cacheTCITEMFields(env, lpObject);
6716 (*env)->SetIntField(env, lpObject, TCITEMFc.mask, (jint)lpStruct->mask);
6717 (*env)->SetIntField(env, lpObject, TCITEMFc.dwState, (jint)lpStruct->dwState);
6718 (*env)->SetIntField(env, lpObject, TCITEMFc.dwStateMask, (jint)lpStruct->dwStateMask);
6719 (*env)->SetLongField(env, lpObject, TCITEMFc.pszText, (jlong)lpStruct->pszText);
6720 (*env)->SetIntField(env, lpObject, TCITEMFc.cchTextMax, (jint)lpStruct->cchTextMax);
6721 (*env)->SetIntField(env, lpObject, TCITEMFc.iImage, (jint)lpStruct->iImage);
6722 (*env)->SetLongField(env, lpObject, TCITEMFc.lParam, (jlong)lpStruct->lParam);
6723 }
6724 #endif
6725
6726 #ifndef NO_TEXTMETRIC
6727 typedef struct TEXTMETRIC_FID_CACHE {
6728 int cached;
6729 jclass clazz;
6730 jfieldID tmHeight, tmAscent, tmDescent, tmInternalLeading, tmExternalLeading, tmAveCharWidth, tmMaxCharWidth, tmWeight, tmOverhang, tmDigitizedAspectX, tmDigitizedAspectY, tmFirstChar, tmLastChar, tmDefaultChar, tmBreakChar, tmItalic, tmUnderlined, tmStruckOut, tmPitchAndFamily, tmCharSet;
6731 } TEXTMETRIC_FID_CACHE;
6732
6733 TEXTMETRIC_FID_CACHE TEXTMETRICFc;
6734
cacheTEXTMETRICFields(JNIEnv * env,jobject lpObject)6735 void cacheTEXTMETRICFields(JNIEnv *env, jobject lpObject)
6736 {
6737 if (TEXTMETRICFc.cached) return;
6738 TEXTMETRICFc.clazz = (*env)->GetObjectClass(env, lpObject);
6739 TEXTMETRICFc.tmHeight = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmHeight", "I");
6740 TEXTMETRICFc.tmAscent = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmAscent", "I");
6741 TEXTMETRICFc.tmDescent = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmDescent", "I");
6742 TEXTMETRICFc.tmInternalLeading = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmInternalLeading", "I");
6743 TEXTMETRICFc.tmExternalLeading = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmExternalLeading", "I");
6744 TEXTMETRICFc.tmAveCharWidth = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmAveCharWidth", "I");
6745 TEXTMETRICFc.tmMaxCharWidth = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmMaxCharWidth", "I");
6746 TEXTMETRICFc.tmWeight = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmWeight", "I");
6747 TEXTMETRICFc.tmOverhang = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmOverhang", "I");
6748 TEXTMETRICFc.tmDigitizedAspectX = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmDigitizedAspectX", "I");
6749 TEXTMETRICFc.tmDigitizedAspectY = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmDigitizedAspectY", "I");
6750 TEXTMETRICFc.tmFirstChar = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmFirstChar", "C");
6751 TEXTMETRICFc.tmLastChar = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmLastChar", "C");
6752 TEXTMETRICFc.tmDefaultChar = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmDefaultChar", "C");
6753 TEXTMETRICFc.tmBreakChar = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmBreakChar", "C");
6754 TEXTMETRICFc.tmItalic = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmItalic", "B");
6755 TEXTMETRICFc.tmUnderlined = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmUnderlined", "B");
6756 TEXTMETRICFc.tmStruckOut = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmStruckOut", "B");
6757 TEXTMETRICFc.tmPitchAndFamily = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmPitchAndFamily", "B");
6758 TEXTMETRICFc.tmCharSet = (*env)->GetFieldID(env, TEXTMETRICFc.clazz, "tmCharSet", "B");
6759 TEXTMETRICFc.cached = 1;
6760 }
6761
getTEXTMETRICFields(JNIEnv * env,jobject lpObject,TEXTMETRIC * lpStruct)6762 TEXTMETRIC *getTEXTMETRICFields(JNIEnv *env, jobject lpObject, TEXTMETRIC *lpStruct)
6763 {
6764 if (!TEXTMETRICFc.cached) cacheTEXTMETRICFields(env, lpObject);
6765 lpStruct->tmHeight = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmHeight);
6766 lpStruct->tmAscent = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmAscent);
6767 lpStruct->tmDescent = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmDescent);
6768 lpStruct->tmInternalLeading = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmInternalLeading);
6769 lpStruct->tmExternalLeading = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmExternalLeading);
6770 lpStruct->tmAveCharWidth = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmAveCharWidth);
6771 lpStruct->tmMaxCharWidth = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmMaxCharWidth);
6772 lpStruct->tmWeight = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmWeight);
6773 lpStruct->tmOverhang = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmOverhang);
6774 lpStruct->tmDigitizedAspectX = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmDigitizedAspectX);
6775 lpStruct->tmDigitizedAspectY = (*env)->GetIntField(env, lpObject, TEXTMETRICFc.tmDigitizedAspectY);
6776 lpStruct->tmFirstChar = (*env)->GetCharField(env, lpObject, TEXTMETRICFc.tmFirstChar);
6777 lpStruct->tmLastChar = (*env)->GetCharField(env, lpObject, TEXTMETRICFc.tmLastChar);
6778 lpStruct->tmDefaultChar = (*env)->GetCharField(env, lpObject, TEXTMETRICFc.tmDefaultChar);
6779 lpStruct->tmBreakChar = (*env)->GetCharField(env, lpObject, TEXTMETRICFc.tmBreakChar);
6780 lpStruct->tmItalic = (*env)->GetByteField(env, lpObject, TEXTMETRICFc.tmItalic);
6781 lpStruct->tmUnderlined = (*env)->GetByteField(env, lpObject, TEXTMETRICFc.tmUnderlined);
6782 lpStruct->tmStruckOut = (*env)->GetByteField(env, lpObject, TEXTMETRICFc.tmStruckOut);
6783 lpStruct->tmPitchAndFamily = (*env)->GetByteField(env, lpObject, TEXTMETRICFc.tmPitchAndFamily);
6784 lpStruct->tmCharSet = (*env)->GetByteField(env, lpObject, TEXTMETRICFc.tmCharSet);
6785 return lpStruct;
6786 }
6787
setTEXTMETRICFields(JNIEnv * env,jobject lpObject,TEXTMETRIC * lpStruct)6788 void setTEXTMETRICFields(JNIEnv *env, jobject lpObject, TEXTMETRIC *lpStruct)
6789 {
6790 if (!TEXTMETRICFc.cached) cacheTEXTMETRICFields(env, lpObject);
6791 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmHeight, (jint)lpStruct->tmHeight);
6792 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmAscent, (jint)lpStruct->tmAscent);
6793 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmDescent, (jint)lpStruct->tmDescent);
6794 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmInternalLeading, (jint)lpStruct->tmInternalLeading);
6795 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmExternalLeading, (jint)lpStruct->tmExternalLeading);
6796 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmAveCharWidth, (jint)lpStruct->tmAveCharWidth);
6797 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmMaxCharWidth, (jint)lpStruct->tmMaxCharWidth);
6798 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmWeight, (jint)lpStruct->tmWeight);
6799 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmOverhang, (jint)lpStruct->tmOverhang);
6800 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmDigitizedAspectX, (jint)lpStruct->tmDigitizedAspectX);
6801 (*env)->SetIntField(env, lpObject, TEXTMETRICFc.tmDigitizedAspectY, (jint)lpStruct->tmDigitizedAspectY);
6802 (*env)->SetCharField(env, lpObject, TEXTMETRICFc.tmFirstChar, (jchar)lpStruct->tmFirstChar);
6803 (*env)->SetCharField(env, lpObject, TEXTMETRICFc.tmLastChar, (jchar)lpStruct->tmLastChar);
6804 (*env)->SetCharField(env, lpObject, TEXTMETRICFc.tmDefaultChar, (jchar)lpStruct->tmDefaultChar);
6805 (*env)->SetCharField(env, lpObject, TEXTMETRICFc.tmBreakChar, (jchar)lpStruct->tmBreakChar);
6806 (*env)->SetByteField(env, lpObject, TEXTMETRICFc.tmItalic, (jbyte)lpStruct->tmItalic);
6807 (*env)->SetByteField(env, lpObject, TEXTMETRICFc.tmUnderlined, (jbyte)lpStruct->tmUnderlined);
6808 (*env)->SetByteField(env, lpObject, TEXTMETRICFc.tmStruckOut, (jbyte)lpStruct->tmStruckOut);
6809 (*env)->SetByteField(env, lpObject, TEXTMETRICFc.tmPitchAndFamily, (jbyte)lpStruct->tmPitchAndFamily);
6810 (*env)->SetByteField(env, lpObject, TEXTMETRICFc.tmCharSet, (jbyte)lpStruct->tmCharSet);
6811 }
6812 #endif
6813
6814 #ifndef NO_TF_DA_COLOR
6815 typedef struct TF_DA_COLOR_FID_CACHE {
6816 int cached;
6817 jclass clazz;
6818 jfieldID type, cr;
6819 } TF_DA_COLOR_FID_CACHE;
6820
6821 TF_DA_COLOR_FID_CACHE TF_DA_COLORFc;
6822
cacheTF_DA_COLORFields(JNIEnv * env,jobject lpObject)6823 void cacheTF_DA_COLORFields(JNIEnv *env, jobject lpObject)
6824 {
6825 if (TF_DA_COLORFc.cached) return;
6826 TF_DA_COLORFc.clazz = (*env)->GetObjectClass(env, lpObject);
6827 TF_DA_COLORFc.type = (*env)->GetFieldID(env, TF_DA_COLORFc.clazz, "type", "I");
6828 TF_DA_COLORFc.cr = (*env)->GetFieldID(env, TF_DA_COLORFc.clazz, "cr", "I");
6829 TF_DA_COLORFc.cached = 1;
6830 }
6831
getTF_DA_COLORFields(JNIEnv * env,jobject lpObject,TF_DA_COLOR * lpStruct)6832 TF_DA_COLOR *getTF_DA_COLORFields(JNIEnv *env, jobject lpObject, TF_DA_COLOR *lpStruct)
6833 {
6834 if (!TF_DA_COLORFc.cached) cacheTF_DA_COLORFields(env, lpObject);
6835 lpStruct->type = (*env)->GetIntField(env, lpObject, TF_DA_COLORFc.type);
6836 lpStruct->cr = (*env)->GetIntField(env, lpObject, TF_DA_COLORFc.cr);
6837 return lpStruct;
6838 }
6839
setTF_DA_COLORFields(JNIEnv * env,jobject lpObject,TF_DA_COLOR * lpStruct)6840 void setTF_DA_COLORFields(JNIEnv *env, jobject lpObject, TF_DA_COLOR *lpStruct)
6841 {
6842 if (!TF_DA_COLORFc.cached) cacheTF_DA_COLORFields(env, lpObject);
6843 (*env)->SetIntField(env, lpObject, TF_DA_COLORFc.type, (jint)lpStruct->type);
6844 (*env)->SetIntField(env, lpObject, TF_DA_COLORFc.cr, (jint)lpStruct->cr);
6845 }
6846 #endif
6847
6848 #ifndef NO_TF_DISPLAYATTRIBUTE
6849 typedef struct TF_DISPLAYATTRIBUTE_FID_CACHE {
6850 int cached;
6851 jclass clazz;
6852 jfieldID crText, crBk, lsStyle, fBoldLine, crLine, bAttr;
6853 } TF_DISPLAYATTRIBUTE_FID_CACHE;
6854
6855 TF_DISPLAYATTRIBUTE_FID_CACHE TF_DISPLAYATTRIBUTEFc;
6856
cacheTF_DISPLAYATTRIBUTEFields(JNIEnv * env,jobject lpObject)6857 void cacheTF_DISPLAYATTRIBUTEFields(JNIEnv *env, jobject lpObject)
6858 {
6859 if (TF_DISPLAYATTRIBUTEFc.cached) return;
6860 TF_DISPLAYATTRIBUTEFc.clazz = (*env)->GetObjectClass(env, lpObject);
6861 TF_DISPLAYATTRIBUTEFc.crText = (*env)->GetFieldID(env, TF_DISPLAYATTRIBUTEFc.clazz, "crText", "Lorg/eclipse/swt/internal/win32/TF_DA_COLOR;");
6862 TF_DISPLAYATTRIBUTEFc.crBk = (*env)->GetFieldID(env, TF_DISPLAYATTRIBUTEFc.clazz, "crBk", "Lorg/eclipse/swt/internal/win32/TF_DA_COLOR;");
6863 TF_DISPLAYATTRIBUTEFc.lsStyle = (*env)->GetFieldID(env, TF_DISPLAYATTRIBUTEFc.clazz, "lsStyle", "I");
6864 TF_DISPLAYATTRIBUTEFc.fBoldLine = (*env)->GetFieldID(env, TF_DISPLAYATTRIBUTEFc.clazz, "fBoldLine", "Z");
6865 TF_DISPLAYATTRIBUTEFc.crLine = (*env)->GetFieldID(env, TF_DISPLAYATTRIBUTEFc.clazz, "crLine", "Lorg/eclipse/swt/internal/win32/TF_DA_COLOR;");
6866 TF_DISPLAYATTRIBUTEFc.bAttr = (*env)->GetFieldID(env, TF_DISPLAYATTRIBUTEFc.clazz, "bAttr", "I");
6867 TF_DISPLAYATTRIBUTEFc.cached = 1;
6868 }
6869
getTF_DISPLAYATTRIBUTEFields(JNIEnv * env,jobject lpObject,TF_DISPLAYATTRIBUTE * lpStruct)6870 TF_DISPLAYATTRIBUTE *getTF_DISPLAYATTRIBUTEFields(JNIEnv *env, jobject lpObject, TF_DISPLAYATTRIBUTE *lpStruct)
6871 {
6872 if (!TF_DISPLAYATTRIBUTEFc.cached) cacheTF_DISPLAYATTRIBUTEFields(env, lpObject);
6873 {
6874 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, TF_DISPLAYATTRIBUTEFc.crText);
6875 if (lpObject1 != NULL) getTF_DA_COLORFields(env, lpObject1, &lpStruct->crText);
6876 }
6877 {
6878 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, TF_DISPLAYATTRIBUTEFc.crBk);
6879 if (lpObject1 != NULL) getTF_DA_COLORFields(env, lpObject1, &lpStruct->crBk);
6880 }
6881 lpStruct->lsStyle = (*env)->GetIntField(env, lpObject, TF_DISPLAYATTRIBUTEFc.lsStyle);
6882 lpStruct->fBoldLine = (*env)->GetBooleanField(env, lpObject, TF_DISPLAYATTRIBUTEFc.fBoldLine);
6883 {
6884 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, TF_DISPLAYATTRIBUTEFc.crLine);
6885 if (lpObject1 != NULL) getTF_DA_COLORFields(env, lpObject1, &lpStruct->crLine);
6886 }
6887 lpStruct->bAttr = (*env)->GetIntField(env, lpObject, TF_DISPLAYATTRIBUTEFc.bAttr);
6888 return lpStruct;
6889 }
6890
setTF_DISPLAYATTRIBUTEFields(JNIEnv * env,jobject lpObject,TF_DISPLAYATTRIBUTE * lpStruct)6891 void setTF_DISPLAYATTRIBUTEFields(JNIEnv *env, jobject lpObject, TF_DISPLAYATTRIBUTE *lpStruct)
6892 {
6893 if (!TF_DISPLAYATTRIBUTEFc.cached) cacheTF_DISPLAYATTRIBUTEFields(env, lpObject);
6894 {
6895 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, TF_DISPLAYATTRIBUTEFc.crText);
6896 if (lpObject1 != NULL) setTF_DA_COLORFields(env, lpObject1, &lpStruct->crText);
6897 }
6898 {
6899 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, TF_DISPLAYATTRIBUTEFc.crBk);
6900 if (lpObject1 != NULL) setTF_DA_COLORFields(env, lpObject1, &lpStruct->crBk);
6901 }
6902 (*env)->SetIntField(env, lpObject, TF_DISPLAYATTRIBUTEFc.lsStyle, (jint)lpStruct->lsStyle);
6903 (*env)->SetBooleanField(env, lpObject, TF_DISPLAYATTRIBUTEFc.fBoldLine, (jboolean)lpStruct->fBoldLine);
6904 {
6905 jobject lpObject1 = (*env)->GetObjectField(env, lpObject, TF_DISPLAYATTRIBUTEFc.crLine);
6906 if (lpObject1 != NULL) setTF_DA_COLORFields(env, lpObject1, &lpStruct->crLine);
6907 }
6908 (*env)->SetIntField(env, lpObject, TF_DISPLAYATTRIBUTEFc.bAttr, (jint)lpStruct->bAttr);
6909 }
6910 #endif
6911
6912 #ifndef NO_TOOLINFO
6913 typedef struct TOOLINFO_FID_CACHE {
6914 int cached;
6915 jclass clazz;
6916 jfieldID cbSize, uFlags, hwnd, uId, left, top, right, bottom, hinst, lpszText, lParam, lpReserved;
6917 } TOOLINFO_FID_CACHE;
6918
6919 TOOLINFO_FID_CACHE TOOLINFOFc;
6920
cacheTOOLINFOFields(JNIEnv * env,jobject lpObject)6921 void cacheTOOLINFOFields(JNIEnv *env, jobject lpObject)
6922 {
6923 if (TOOLINFOFc.cached) return;
6924 TOOLINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
6925 TOOLINFOFc.cbSize = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "cbSize", "I");
6926 TOOLINFOFc.uFlags = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "uFlags", "I");
6927 TOOLINFOFc.hwnd = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "hwnd", "J");
6928 TOOLINFOFc.uId = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "uId", "J");
6929 TOOLINFOFc.left = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "left", "I");
6930 TOOLINFOFc.top = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "top", "I");
6931 TOOLINFOFc.right = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "right", "I");
6932 TOOLINFOFc.bottom = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "bottom", "I");
6933 TOOLINFOFc.hinst = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "hinst", "J");
6934 TOOLINFOFc.lpszText = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "lpszText", "J");
6935 TOOLINFOFc.lParam = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "lParam", "J");
6936 TOOLINFOFc.lpReserved = (*env)->GetFieldID(env, TOOLINFOFc.clazz, "lpReserved", "J");
6937 TOOLINFOFc.cached = 1;
6938 }
6939
getTOOLINFOFields(JNIEnv * env,jobject lpObject,TOOLINFO * lpStruct)6940 TOOLINFO *getTOOLINFOFields(JNIEnv *env, jobject lpObject, TOOLINFO *lpStruct)
6941 {
6942 if (!TOOLINFOFc.cached) cacheTOOLINFOFields(env, lpObject);
6943 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, TOOLINFOFc.cbSize);
6944 lpStruct->uFlags = (*env)->GetIntField(env, lpObject, TOOLINFOFc.uFlags);
6945 lpStruct->hwnd = (HWND)(*env)->GetLongField(env, lpObject, TOOLINFOFc.hwnd);
6946 lpStruct->uId = (*env)->GetLongField(env, lpObject, TOOLINFOFc.uId);
6947 lpStruct->rect.left = (*env)->GetIntField(env, lpObject, TOOLINFOFc.left);
6948 lpStruct->rect.top = (*env)->GetIntField(env, lpObject, TOOLINFOFc.top);
6949 lpStruct->rect.right = (*env)->GetIntField(env, lpObject, TOOLINFOFc.right);
6950 lpStruct->rect.bottom = (*env)->GetIntField(env, lpObject, TOOLINFOFc.bottom);
6951 lpStruct->hinst = (HINSTANCE)(*env)->GetLongField(env, lpObject, TOOLINFOFc.hinst);
6952 lpStruct->lpszText = (LPTSTR)(*env)->GetLongField(env, lpObject, TOOLINFOFc.lpszText);
6953 lpStruct->lParam = (*env)->GetLongField(env, lpObject, TOOLINFOFc.lParam);
6954 lpStruct->lpReserved = (void *)(*env)->GetLongField(env, lpObject, TOOLINFOFc.lpReserved);
6955 return lpStruct;
6956 }
6957
setTOOLINFOFields(JNIEnv * env,jobject lpObject,TOOLINFO * lpStruct)6958 void setTOOLINFOFields(JNIEnv *env, jobject lpObject, TOOLINFO *lpStruct)
6959 {
6960 if (!TOOLINFOFc.cached) cacheTOOLINFOFields(env, lpObject);
6961 (*env)->SetIntField(env, lpObject, TOOLINFOFc.cbSize, (jint)lpStruct->cbSize);
6962 (*env)->SetIntField(env, lpObject, TOOLINFOFc.uFlags, (jint)lpStruct->uFlags);
6963 (*env)->SetLongField(env, lpObject, TOOLINFOFc.hwnd, (jlong)lpStruct->hwnd);
6964 (*env)->SetLongField(env, lpObject, TOOLINFOFc.uId, (jlong)lpStruct->uId);
6965 (*env)->SetIntField(env, lpObject, TOOLINFOFc.left, (jint)lpStruct->rect.left);
6966 (*env)->SetIntField(env, lpObject, TOOLINFOFc.top, (jint)lpStruct->rect.top);
6967 (*env)->SetIntField(env, lpObject, TOOLINFOFc.right, (jint)lpStruct->rect.right);
6968 (*env)->SetIntField(env, lpObject, TOOLINFOFc.bottom, (jint)lpStruct->rect.bottom);
6969 (*env)->SetLongField(env, lpObject, TOOLINFOFc.hinst, (jlong)lpStruct->hinst);
6970 (*env)->SetLongField(env, lpObject, TOOLINFOFc.lpszText, (jlong)lpStruct->lpszText);
6971 (*env)->SetLongField(env, lpObject, TOOLINFOFc.lParam, (jlong)lpStruct->lParam);
6972 (*env)->SetLongField(env, lpObject, TOOLINFOFc.lpReserved, (jlong)lpStruct->lpReserved);
6973 }
6974 #endif
6975
6976 #ifndef NO_TOUCHINPUT
6977 typedef struct TOUCHINPUT_FID_CACHE {
6978 int cached;
6979 jclass clazz;
6980 jfieldID x, y, hSource, dwID, dwFlags, dwMask, dwTime, dwExtraInfo, cxContact, cyContact;
6981 } TOUCHINPUT_FID_CACHE;
6982
6983 TOUCHINPUT_FID_CACHE TOUCHINPUTFc;
6984
cacheTOUCHINPUTFields(JNIEnv * env,jobject lpObject)6985 void cacheTOUCHINPUTFields(JNIEnv *env, jobject lpObject)
6986 {
6987 if (TOUCHINPUTFc.cached) return;
6988 TOUCHINPUTFc.clazz = (*env)->GetObjectClass(env, lpObject);
6989 TOUCHINPUTFc.x = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "x", "I");
6990 TOUCHINPUTFc.y = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "y", "I");
6991 TOUCHINPUTFc.hSource = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "hSource", "J");
6992 TOUCHINPUTFc.dwID = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "dwID", "I");
6993 TOUCHINPUTFc.dwFlags = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "dwFlags", "I");
6994 TOUCHINPUTFc.dwMask = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "dwMask", "I");
6995 TOUCHINPUTFc.dwTime = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "dwTime", "I");
6996 TOUCHINPUTFc.dwExtraInfo = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "dwExtraInfo", "J");
6997 TOUCHINPUTFc.cxContact = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "cxContact", "I");
6998 TOUCHINPUTFc.cyContact = (*env)->GetFieldID(env, TOUCHINPUTFc.clazz, "cyContact", "I");
6999 TOUCHINPUTFc.cached = 1;
7000 }
7001
getTOUCHINPUTFields(JNIEnv * env,jobject lpObject,TOUCHINPUT * lpStruct)7002 TOUCHINPUT *getTOUCHINPUTFields(JNIEnv *env, jobject lpObject, TOUCHINPUT *lpStruct)
7003 {
7004 if (!TOUCHINPUTFc.cached) cacheTOUCHINPUTFields(env, lpObject);
7005 lpStruct->x = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.x);
7006 lpStruct->y = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.y);
7007 lpStruct->hSource = (HWND)(*env)->GetLongField(env, lpObject, TOUCHINPUTFc.hSource);
7008 lpStruct->dwID = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.dwID);
7009 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.dwFlags);
7010 lpStruct->dwMask = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.dwMask);
7011 lpStruct->dwTime = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.dwTime);
7012 lpStruct->dwExtraInfo = (*env)->GetLongField(env, lpObject, TOUCHINPUTFc.dwExtraInfo);
7013 lpStruct->cxContact = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.cxContact);
7014 lpStruct->cyContact = (*env)->GetIntField(env, lpObject, TOUCHINPUTFc.cyContact);
7015 return lpStruct;
7016 }
7017
setTOUCHINPUTFields(JNIEnv * env,jobject lpObject,TOUCHINPUT * lpStruct)7018 void setTOUCHINPUTFields(JNIEnv *env, jobject lpObject, TOUCHINPUT *lpStruct)
7019 {
7020 if (!TOUCHINPUTFc.cached) cacheTOUCHINPUTFields(env, lpObject);
7021 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.x, (jint)lpStruct->x);
7022 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.y, (jint)lpStruct->y);
7023 (*env)->SetLongField(env, lpObject, TOUCHINPUTFc.hSource, (jlong)lpStruct->hSource);
7024 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.dwID, (jint)lpStruct->dwID);
7025 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.dwFlags, (jint)lpStruct->dwFlags);
7026 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.dwMask, (jint)lpStruct->dwMask);
7027 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.dwTime, (jint)lpStruct->dwTime);
7028 (*env)->SetLongField(env, lpObject, TOUCHINPUTFc.dwExtraInfo, (jlong)lpStruct->dwExtraInfo);
7029 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.cxContact, (jint)lpStruct->cxContact);
7030 (*env)->SetIntField(env, lpObject, TOUCHINPUTFc.cyContact, (jint)lpStruct->cyContact);
7031 }
7032 #endif
7033
7034 #ifndef NO_TRACKMOUSEEVENT
7035 typedef struct TRACKMOUSEEVENT_FID_CACHE {
7036 int cached;
7037 jclass clazz;
7038 jfieldID cbSize, dwFlags, hwndTrack, dwHoverTime;
7039 } TRACKMOUSEEVENT_FID_CACHE;
7040
7041 TRACKMOUSEEVENT_FID_CACHE TRACKMOUSEEVENTFc;
7042
cacheTRACKMOUSEEVENTFields(JNIEnv * env,jobject lpObject)7043 void cacheTRACKMOUSEEVENTFields(JNIEnv *env, jobject lpObject)
7044 {
7045 if (TRACKMOUSEEVENTFc.cached) return;
7046 TRACKMOUSEEVENTFc.clazz = (*env)->GetObjectClass(env, lpObject);
7047 TRACKMOUSEEVENTFc.cbSize = (*env)->GetFieldID(env, TRACKMOUSEEVENTFc.clazz, "cbSize", "I");
7048 TRACKMOUSEEVENTFc.dwFlags = (*env)->GetFieldID(env, TRACKMOUSEEVENTFc.clazz, "dwFlags", "I");
7049 TRACKMOUSEEVENTFc.hwndTrack = (*env)->GetFieldID(env, TRACKMOUSEEVENTFc.clazz, "hwndTrack", "J");
7050 TRACKMOUSEEVENTFc.dwHoverTime = (*env)->GetFieldID(env, TRACKMOUSEEVENTFc.clazz, "dwHoverTime", "I");
7051 TRACKMOUSEEVENTFc.cached = 1;
7052 }
7053
getTRACKMOUSEEVENTFields(JNIEnv * env,jobject lpObject,TRACKMOUSEEVENT * lpStruct)7054 TRACKMOUSEEVENT *getTRACKMOUSEEVENTFields(JNIEnv *env, jobject lpObject, TRACKMOUSEEVENT *lpStruct)
7055 {
7056 if (!TRACKMOUSEEVENTFc.cached) cacheTRACKMOUSEEVENTFields(env, lpObject);
7057 lpStruct->cbSize = (*env)->GetIntField(env, lpObject, TRACKMOUSEEVENTFc.cbSize);
7058 lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, TRACKMOUSEEVENTFc.dwFlags);
7059 lpStruct->hwndTrack = (HWND)(*env)->GetLongField(env, lpObject, TRACKMOUSEEVENTFc.hwndTrack);
7060 lpStruct->dwHoverTime = (*env)->GetIntField(env, lpObject, TRACKMOUSEEVENTFc.dwHoverTime);
7061 return lpStruct;
7062 }
7063
setTRACKMOUSEEVENTFields(JNIEnv * env,jobject lpObject,TRACKMOUSEEVENT * lpStruct)7064 void setTRACKMOUSEEVENTFields(JNIEnv *env, jobject lpObject, TRACKMOUSEEVENT *lpStruct)
7065 {
7066 if (!TRACKMOUSEEVENTFc.cached) cacheTRACKMOUSEEVENTFields(env, lpObject);
7067 (*env)->SetIntField(env, lpObject, TRACKMOUSEEVENTFc.cbSize, (jint)lpStruct->cbSize);
7068 (*env)->SetIntField(env, lpObject, TRACKMOUSEEVENTFc.dwFlags, (jint)lpStruct->dwFlags);
7069 (*env)->SetLongField(env, lpObject, TRACKMOUSEEVENTFc.hwndTrack, (jlong)lpStruct->hwndTrack);
7070 (*env)->SetIntField(env, lpObject, TRACKMOUSEEVENTFc.dwHoverTime, (jint)lpStruct->dwHoverTime);
7071 }
7072 #endif
7073
7074 #ifndef NO_TRIVERTEX
7075 typedef struct TRIVERTEX_FID_CACHE {
7076 int cached;
7077 jclass clazz;
7078 jfieldID x, y, Red, Green, Blue, Alpha;
7079 } TRIVERTEX_FID_CACHE;
7080
7081 TRIVERTEX_FID_CACHE TRIVERTEXFc;
7082
cacheTRIVERTEXFields(JNIEnv * env,jobject lpObject)7083 void cacheTRIVERTEXFields(JNIEnv *env, jobject lpObject)
7084 {
7085 if (TRIVERTEXFc.cached) return;
7086 TRIVERTEXFc.clazz = (*env)->GetObjectClass(env, lpObject);
7087 TRIVERTEXFc.x = (*env)->GetFieldID(env, TRIVERTEXFc.clazz, "x", "I");
7088 TRIVERTEXFc.y = (*env)->GetFieldID(env, TRIVERTEXFc.clazz, "y", "I");
7089 TRIVERTEXFc.Red = (*env)->GetFieldID(env, TRIVERTEXFc.clazz, "Red", "S");
7090 TRIVERTEXFc.Green = (*env)->GetFieldID(env, TRIVERTEXFc.clazz, "Green", "S");
7091 TRIVERTEXFc.Blue = (*env)->GetFieldID(env, TRIVERTEXFc.clazz, "Blue", "S");
7092 TRIVERTEXFc.Alpha = (*env)->GetFieldID(env, TRIVERTEXFc.clazz, "Alpha", "S");
7093 TRIVERTEXFc.cached = 1;
7094 }
7095
getTRIVERTEXFields(JNIEnv * env,jobject lpObject,TRIVERTEX * lpStruct)7096 TRIVERTEX *getTRIVERTEXFields(JNIEnv *env, jobject lpObject, TRIVERTEX *lpStruct)
7097 {
7098 if (!TRIVERTEXFc.cached) cacheTRIVERTEXFields(env, lpObject);
7099 lpStruct->x = (*env)->GetIntField(env, lpObject, TRIVERTEXFc.x);
7100 lpStruct->y = (*env)->GetIntField(env, lpObject, TRIVERTEXFc.y);
7101 lpStruct->Red = (*env)->GetShortField(env, lpObject, TRIVERTEXFc.Red);
7102 lpStruct->Green = (*env)->GetShortField(env, lpObject, TRIVERTEXFc.Green);
7103 lpStruct->Blue = (*env)->GetShortField(env, lpObject, TRIVERTEXFc.Blue);
7104 lpStruct->Alpha = (*env)->GetShortField(env, lpObject, TRIVERTEXFc.Alpha);
7105 return lpStruct;
7106 }
7107
setTRIVERTEXFields(JNIEnv * env,jobject lpObject,TRIVERTEX * lpStruct)7108 void setTRIVERTEXFields(JNIEnv *env, jobject lpObject, TRIVERTEX *lpStruct)
7109 {
7110 if (!TRIVERTEXFc.cached) cacheTRIVERTEXFields(env, lpObject);
7111 (*env)->SetIntField(env, lpObject, TRIVERTEXFc.x, (jint)lpStruct->x);
7112 (*env)->SetIntField(env, lpObject, TRIVERTEXFc.y, (jint)lpStruct->y);
7113 (*env)->SetShortField(env, lpObject, TRIVERTEXFc.Red, (jshort)lpStruct->Red);
7114 (*env)->SetShortField(env, lpObject, TRIVERTEXFc.Green, (jshort)lpStruct->Green);
7115 (*env)->SetShortField(env, lpObject, TRIVERTEXFc.Blue, (jshort)lpStruct->Blue);
7116 (*env)->SetShortField(env, lpObject, TRIVERTEXFc.Alpha, (jshort)lpStruct->Alpha);
7117 }
7118 #endif
7119
7120 #ifndef NO_TVHITTESTINFO
7121 typedef struct TVHITTESTINFO_FID_CACHE {
7122 int cached;
7123 jclass clazz;
7124 jfieldID x, y, flags, hItem;
7125 } TVHITTESTINFO_FID_CACHE;
7126
7127 TVHITTESTINFO_FID_CACHE TVHITTESTINFOFc;
7128
cacheTVHITTESTINFOFields(JNIEnv * env,jobject lpObject)7129 void cacheTVHITTESTINFOFields(JNIEnv *env, jobject lpObject)
7130 {
7131 if (TVHITTESTINFOFc.cached) return;
7132 TVHITTESTINFOFc.clazz = (*env)->GetObjectClass(env, lpObject);
7133 TVHITTESTINFOFc.x = (*env)->GetFieldID(env, TVHITTESTINFOFc.clazz, "x", "I");
7134 TVHITTESTINFOFc.y = (*env)->GetFieldID(env, TVHITTESTINFOFc.clazz, "y", "I");
7135 TVHITTESTINFOFc.flags = (*env)->GetFieldID(env, TVHITTESTINFOFc.clazz, "flags", "I");
7136 TVHITTESTINFOFc.hItem = (*env)->GetFieldID(env, TVHITTESTINFOFc.clazz, "hItem", "J");
7137 TVHITTESTINFOFc.cached = 1;
7138 }
7139
getTVHITTESTINFOFields(JNIEnv * env,jobject lpObject,TVHITTESTINFO * lpStruct)7140 TVHITTESTINFO *getTVHITTESTINFOFields(JNIEnv *env, jobject lpObject, TVHITTESTINFO *lpStruct)
7141 {
7142 if (!TVHITTESTINFOFc.cached) cacheTVHITTESTINFOFields(env, lpObject);
7143 lpStruct->pt.x = (*env)->GetIntField(env, lpObject, TVHITTESTINFOFc.x);
7144 lpStruct->pt.y = (*env)->GetIntField(env, lpObject, TVHITTESTINFOFc.y);
7145 lpStruct->flags = (*env)->GetIntField(env, lpObject, TVHITTESTINFOFc.flags);
7146 lpStruct->hItem = (HTREEITEM)(*env)->GetLongField(env, lpObject, TVHITTESTINFOFc.hItem);
7147 return lpStruct;
7148 }
7149
setTVHITTESTINFOFields(JNIEnv * env,jobject lpObject,TVHITTESTINFO * lpStruct)7150 void setTVHITTESTINFOFields(JNIEnv *env, jobject lpObject, TVHITTESTINFO *lpStruct)
7151 {
7152 if (!TVHITTESTINFOFc.cached) cacheTVHITTESTINFOFields(env, lpObject);
7153 (*env)->SetIntField(env, lpObject, TVHITTESTINFOFc.x, (jint)lpStruct->pt.x);
7154 (*env)->SetIntField(env, lpObject, TVHITTESTINFOFc.y, (jint)lpStruct->pt.y);
7155 (*env)->SetIntField(env, lpObject, TVHITTESTINFOFc.flags, (jint)lpStruct->flags);
7156 (*env)->SetLongField(env, lpObject, TVHITTESTINFOFc.hItem, (jlong)lpStruct->hItem);
7157 }
7158 #endif
7159
7160 #ifndef NO_TVINSERTSTRUCT
7161 typedef struct TVINSERTSTRUCT_FID_CACHE {
7162 int cached;
7163 jclass clazz;
7164 jfieldID hParent, hInsertAfter, mask, hItem, state, stateMask, pszText, cchTextMax, iImage, iSelectedImage, cChildren, lParam, iIntegral;
7165 } TVINSERTSTRUCT_FID_CACHE;
7166
7167 TVINSERTSTRUCT_FID_CACHE TVINSERTSTRUCTFc;
7168
cacheTVINSERTSTRUCTFields(JNIEnv * env,jobject lpObject)7169 void cacheTVINSERTSTRUCTFields(JNIEnv *env, jobject lpObject)
7170 {
7171 if (TVINSERTSTRUCTFc.cached) return;
7172 TVINSERTSTRUCTFc.clazz = (*env)->GetObjectClass(env, lpObject);
7173 TVINSERTSTRUCTFc.hParent = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "hParent", "J");
7174 TVINSERTSTRUCTFc.hInsertAfter = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "hInsertAfter", "J");
7175 TVINSERTSTRUCTFc.mask = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "mask", "I");
7176 TVINSERTSTRUCTFc.hItem = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "hItem", "J");
7177 TVINSERTSTRUCTFc.state = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "state", "I");
7178 TVINSERTSTRUCTFc.stateMask = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "stateMask", "I");
7179 TVINSERTSTRUCTFc.pszText = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "pszText", "J");
7180 TVINSERTSTRUCTFc.cchTextMax = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "cchTextMax", "I");
7181 TVINSERTSTRUCTFc.iImage = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "iImage", "I");
7182 TVINSERTSTRUCTFc.iSelectedImage = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "iSelectedImage", "I");
7183 TVINSERTSTRUCTFc.cChildren = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "cChildren", "I");
7184 TVINSERTSTRUCTFc.lParam = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "lParam", "J");
7185 TVINSERTSTRUCTFc.iIntegral = (*env)->GetFieldID(env, TVINSERTSTRUCTFc.clazz, "iIntegral", "I");
7186 TVINSERTSTRUCTFc.cached = 1;
7187 }
7188
getTVINSERTSTRUCTFields(JNIEnv * env,jobject lpObject,TVINSERTSTRUCT * lpStruct)7189 TVINSERTSTRUCT *getTVINSERTSTRUCTFields(JNIEnv *env, jobject lpObject, TVINSERTSTRUCT *lpStruct)
7190 {
7191 if (!TVINSERTSTRUCTFc.cached) cacheTVINSERTSTRUCTFields(env, lpObject);
7192 lpStruct->hParent = (HTREEITEM)(*env)->GetLongField(env, lpObject, TVINSERTSTRUCTFc.hParent);
7193 lpStruct->hInsertAfter = (HTREEITEM)(*env)->GetLongField(env, lpObject, TVINSERTSTRUCTFc.hInsertAfter);
7194 lpStruct->item.mask = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.mask);
7195 lpStruct->item.hItem = (HTREEITEM)(*env)->GetLongField(env, lpObject, TVINSERTSTRUCTFc.hItem);
7196 lpStruct->item.state = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.state);
7197 lpStruct->item.stateMask = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.stateMask);
7198 lpStruct->item.pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, TVINSERTSTRUCTFc.pszText);
7199 lpStruct->item.cchTextMax = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.cchTextMax);
7200 lpStruct->item.iImage = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.iImage);
7201 lpStruct->item.iSelectedImage = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.iSelectedImage);
7202 lpStruct->item.cChildren = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.cChildren);
7203 lpStruct->item.lParam = (*env)->GetLongField(env, lpObject, TVINSERTSTRUCTFc.lParam);
7204 lpStruct->itemex.iIntegral = (*env)->GetIntField(env, lpObject, TVINSERTSTRUCTFc.iIntegral);
7205 return lpStruct;
7206 }
7207
setTVINSERTSTRUCTFields(JNIEnv * env,jobject lpObject,TVINSERTSTRUCT * lpStruct)7208 void setTVINSERTSTRUCTFields(JNIEnv *env, jobject lpObject, TVINSERTSTRUCT *lpStruct)
7209 {
7210 if (!TVINSERTSTRUCTFc.cached) cacheTVINSERTSTRUCTFields(env, lpObject);
7211 (*env)->SetLongField(env, lpObject, TVINSERTSTRUCTFc.hParent, (jlong)lpStruct->hParent);
7212 (*env)->SetLongField(env, lpObject, TVINSERTSTRUCTFc.hInsertAfter, (jlong)lpStruct->hInsertAfter);
7213 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.mask, (jint)lpStruct->item.mask);
7214 (*env)->SetLongField(env, lpObject, TVINSERTSTRUCTFc.hItem, (jlong)lpStruct->item.hItem);
7215 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.state, (jint)lpStruct->item.state);
7216 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.stateMask, (jint)lpStruct->item.stateMask);
7217 (*env)->SetLongField(env, lpObject, TVINSERTSTRUCTFc.pszText, (jlong)lpStruct->item.pszText);
7218 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.cchTextMax, (jint)lpStruct->item.cchTextMax);
7219 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.iImage, (jint)lpStruct->item.iImage);
7220 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.iSelectedImage, (jint)lpStruct->item.iSelectedImage);
7221 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.cChildren, (jint)lpStruct->item.cChildren);
7222 (*env)->SetLongField(env, lpObject, TVINSERTSTRUCTFc.lParam, (jlong)lpStruct->item.lParam);
7223 (*env)->SetIntField(env, lpObject, TVINSERTSTRUCTFc.iIntegral, (jint)lpStruct->itemex.iIntegral);
7224 }
7225 #endif
7226
7227 #ifndef NO_TVITEM
7228 typedef struct TVITEM_FID_CACHE {
7229 int cached;
7230 jclass clazz;
7231 jfieldID mask, hItem, state, stateMask, pszText, cchTextMax, iImage, iSelectedImage, cChildren, lParam;
7232 } TVITEM_FID_CACHE;
7233
7234 TVITEM_FID_CACHE TVITEMFc;
7235
cacheTVITEMFields(JNIEnv * env,jobject lpObject)7236 void cacheTVITEMFields(JNIEnv *env, jobject lpObject)
7237 {
7238 if (TVITEMFc.cached) return;
7239 TVITEMFc.clazz = (*env)->GetObjectClass(env, lpObject);
7240 TVITEMFc.mask = (*env)->GetFieldID(env, TVITEMFc.clazz, "mask", "I");
7241 TVITEMFc.hItem = (*env)->GetFieldID(env, TVITEMFc.clazz, "hItem", "J");
7242 TVITEMFc.state = (*env)->GetFieldID(env, TVITEMFc.clazz, "state", "I");
7243 TVITEMFc.stateMask = (*env)->GetFieldID(env, TVITEMFc.clazz, "stateMask", "I");
7244 TVITEMFc.pszText = (*env)->GetFieldID(env, TVITEMFc.clazz, "pszText", "J");
7245 TVITEMFc.cchTextMax = (*env)->GetFieldID(env, TVITEMFc.clazz, "cchTextMax", "I");
7246 TVITEMFc.iImage = (*env)->GetFieldID(env, TVITEMFc.clazz, "iImage", "I");
7247 TVITEMFc.iSelectedImage = (*env)->GetFieldID(env, TVITEMFc.clazz, "iSelectedImage", "I");
7248 TVITEMFc.cChildren = (*env)->GetFieldID(env, TVITEMFc.clazz, "cChildren", "I");
7249 TVITEMFc.lParam = (*env)->GetFieldID(env, TVITEMFc.clazz, "lParam", "J");
7250 TVITEMFc.cached = 1;
7251 }
7252
getTVITEMFields(JNIEnv * env,jobject lpObject,TVITEM * lpStruct)7253 TVITEM *getTVITEMFields(JNIEnv *env, jobject lpObject, TVITEM *lpStruct)
7254 {
7255 if (!TVITEMFc.cached) cacheTVITEMFields(env, lpObject);
7256 lpStruct->mask = (*env)->GetIntField(env, lpObject, TVITEMFc.mask);
7257 lpStruct->hItem = (HTREEITEM)(*env)->GetLongField(env, lpObject, TVITEMFc.hItem);
7258 lpStruct->state = (*env)->GetIntField(env, lpObject, TVITEMFc.state);
7259 lpStruct->stateMask = (*env)->GetIntField(env, lpObject, TVITEMFc.stateMask);
7260 lpStruct->pszText = (LPTSTR)(*env)->GetLongField(env, lpObject, TVITEMFc.pszText);
7261 lpStruct->cchTextMax = (*env)->GetIntField(env, lpObject, TVITEMFc.cchTextMax);
7262 lpStruct->iImage = (*env)->GetIntField(env, lpObject, TVITEMFc.iImage);
7263 lpStruct->iSelectedImage = (*env)->GetIntField(env, lpObject, TVITEMFc.iSelectedImage);
7264 lpStruct->cChildren = (*env)->GetIntField(env, lpObject, TVITEMFc.cChildren);
7265 lpStruct->lParam = (*env)->GetLongField(env, lpObject, TVITEMFc.lParam);
7266 return lpStruct;
7267 }
7268
setTVITEMFields(JNIEnv * env,jobject lpObject,TVITEM * lpStruct)7269 void setTVITEMFields(JNIEnv *env, jobject lpObject, TVITEM *lpStruct)
7270 {
7271 if (!TVITEMFc.cached) cacheTVITEMFields(env, lpObject);
7272 (*env)->SetIntField(env, lpObject, TVITEMFc.mask, (jint)lpStruct->mask);
7273 (*env)->SetLongField(env, lpObject, TVITEMFc.hItem, (jlong)lpStruct->hItem);
7274 (*env)->SetIntField(env, lpObject, TVITEMFc.state, (jint)lpStruct->state);
7275 (*env)->SetIntField(env, lpObject, TVITEMFc.stateMask, (jint)lpStruct->stateMask);
7276 (*env)->SetLongField(env, lpObject, TVITEMFc.pszText, (jlong)lpStruct->pszText);
7277 (*env)->SetIntField(env, lpObject, TVITEMFc.cchTextMax, (jint)lpStruct->cchTextMax);
7278 (*env)->SetIntField(env, lpObject, TVITEMFc.iImage, (jint)lpStruct->iImage);
7279 (*env)->SetIntField(env, lpObject, TVITEMFc.iSelectedImage, (jint)lpStruct->iSelectedImage);
7280 (*env)->SetIntField(env, lpObject, TVITEMFc.cChildren, (jint)lpStruct->cChildren);
7281 (*env)->SetLongField(env, lpObject, TVITEMFc.lParam, (jlong)lpStruct->lParam);
7282 }
7283 #endif
7284
7285 #ifndef NO_TVITEMEX
7286 typedef struct TVITEMEX_FID_CACHE {
7287 int cached;
7288 jclass clazz;
7289 jfieldID iIntegral;
7290 } TVITEMEX_FID_CACHE;
7291
7292 TVITEMEX_FID_CACHE TVITEMEXFc;
7293
cacheTVITEMEXFields(JNIEnv * env,jobject lpObject)7294 void cacheTVITEMEXFields(JNIEnv *env, jobject lpObject)
7295 {
7296 if (TVITEMEXFc.cached) return;
7297 cacheTVITEMFields(env, lpObject);
7298 TVITEMEXFc.clazz = (*env)->GetObjectClass(env, lpObject);
7299 TVITEMEXFc.iIntegral = (*env)->GetFieldID(env, TVITEMEXFc.clazz, "iIntegral", "I");
7300 TVITEMEXFc.cached = 1;
7301 }
7302
getTVITEMEXFields(JNIEnv * env,jobject lpObject,TVITEMEX * lpStruct)7303 TVITEMEX *getTVITEMEXFields(JNIEnv *env, jobject lpObject, TVITEMEX *lpStruct)
7304 {
7305 if (!TVITEMEXFc.cached) cacheTVITEMEXFields(env, lpObject);
7306 getTVITEMFields(env, lpObject, (TVITEM *)lpStruct);
7307 lpStruct->iIntegral = (*env)->GetIntField(env, lpObject, TVITEMEXFc.iIntegral);
7308 return lpStruct;
7309 }
7310
setTVITEMEXFields(JNIEnv * env,jobject lpObject,TVITEMEX * lpStruct)7311 void setTVITEMEXFields(JNIEnv *env, jobject lpObject, TVITEMEX *lpStruct)
7312 {
7313 if (!TVITEMEXFc.cached) cacheTVITEMEXFields(env, lpObject);
7314 setTVITEMFields(env, lpObject, (TVITEM *)lpStruct);
7315 (*env)->SetIntField(env, lpObject, TVITEMEXFc.iIntegral, (jint)lpStruct->iIntegral);
7316 }
7317 #endif
7318
7319 #ifndef NO_TVSORTCB
7320 typedef struct TVSORTCB_FID_CACHE {
7321 int cached;
7322 jclass clazz;
7323 jfieldID hParent, lpfnCompare, lParam;
7324 } TVSORTCB_FID_CACHE;
7325
7326 TVSORTCB_FID_CACHE TVSORTCBFc;
7327
cacheTVSORTCBFields(JNIEnv * env,jobject lpObject)7328 void cacheTVSORTCBFields(JNIEnv *env, jobject lpObject)
7329 {
7330 if (TVSORTCBFc.cached) return;
7331 TVSORTCBFc.clazz = (*env)->GetObjectClass(env, lpObject);
7332 TVSORTCBFc.hParent = (*env)->GetFieldID(env, TVSORTCBFc.clazz, "hParent", "J");
7333 TVSORTCBFc.lpfnCompare = (*env)->GetFieldID(env, TVSORTCBFc.clazz, "lpfnCompare", "J");
7334 TVSORTCBFc.lParam = (*env)->GetFieldID(env, TVSORTCBFc.clazz, "lParam", "J");
7335 TVSORTCBFc.cached = 1;
7336 }
7337
getTVSORTCBFields(JNIEnv * env,jobject lpObject,TVSORTCB * lpStruct)7338 TVSORTCB *getTVSORTCBFields(JNIEnv *env, jobject lpObject, TVSORTCB *lpStruct)
7339 {
7340 if (!TVSORTCBFc.cached) cacheTVSORTCBFields(env, lpObject);
7341 lpStruct->hParent = (HTREEITEM)(*env)->GetLongField(env, lpObject, TVSORTCBFc.hParent);
7342 lpStruct->lpfnCompare = (PFNTVCOMPARE)(*env)->GetLongField(env, lpObject, TVSORTCBFc.lpfnCompare);
7343 lpStruct->lParam = (LPARAM)(*env)->GetLongField(env, lpObject, TVSORTCBFc.lParam);
7344 return lpStruct;
7345 }
7346
setTVSORTCBFields(JNIEnv * env,jobject lpObject,TVSORTCB * lpStruct)7347 void setTVSORTCBFields(JNIEnv *env, jobject lpObject, TVSORTCB *lpStruct)
7348 {
7349 if (!TVSORTCBFc.cached) cacheTVSORTCBFields(env, lpObject);
7350 (*env)->SetLongField(env, lpObject, TVSORTCBFc.hParent, (jlong)lpStruct->hParent);
7351 (*env)->SetLongField(env, lpObject, TVSORTCBFc.lpfnCompare, (jlong)lpStruct->lpfnCompare);
7352 (*env)->SetLongField(env, lpObject, TVSORTCBFc.lParam, (jlong)lpStruct->lParam);
7353 }
7354 #endif
7355
7356 #ifndef NO_UDACCEL
7357 typedef struct UDACCEL_FID_CACHE {
7358 int cached;
7359 jclass clazz;
7360 jfieldID nSec, nInc;
7361 } UDACCEL_FID_CACHE;
7362
7363 UDACCEL_FID_CACHE UDACCELFc;
7364
cacheUDACCELFields(JNIEnv * env,jobject lpObject)7365 void cacheUDACCELFields(JNIEnv *env, jobject lpObject)
7366 {
7367 if (UDACCELFc.cached) return;
7368 UDACCELFc.clazz = (*env)->GetObjectClass(env, lpObject);
7369 UDACCELFc.nSec = (*env)->GetFieldID(env, UDACCELFc.clazz, "nSec", "I");
7370 UDACCELFc.nInc = (*env)->GetFieldID(env, UDACCELFc.clazz, "nInc", "I");
7371 UDACCELFc.cached = 1;
7372 }
7373
getUDACCELFields(JNIEnv * env,jobject lpObject,UDACCEL * lpStruct)7374 UDACCEL *getUDACCELFields(JNIEnv *env, jobject lpObject, UDACCEL *lpStruct)
7375 {
7376 if (!UDACCELFc.cached) cacheUDACCELFields(env, lpObject);
7377 lpStruct->nSec = (*env)->GetIntField(env, lpObject, UDACCELFc.nSec);
7378 lpStruct->nInc = (*env)->GetIntField(env, lpObject, UDACCELFc.nInc);
7379 return lpStruct;
7380 }
7381
setUDACCELFields(JNIEnv * env,jobject lpObject,UDACCEL * lpStruct)7382 void setUDACCELFields(JNIEnv *env, jobject lpObject, UDACCEL *lpStruct)
7383 {
7384 if (!UDACCELFc.cached) cacheUDACCELFields(env, lpObject);
7385 (*env)->SetIntField(env, lpObject, UDACCELFc.nSec, (jint)lpStruct->nSec);
7386 (*env)->SetIntField(env, lpObject, UDACCELFc.nInc, (jint)lpStruct->nInc);
7387 }
7388 #endif
7389
7390 #ifndef NO_WINDOWPLACEMENT
7391 typedef struct WINDOWPLACEMENT_FID_CACHE {
7392 int cached;
7393 jclass clazz;
7394 jfieldID length, flags, showCmd, ptMinPosition_x, ptMinPosition_y, ptMaxPosition_x, ptMaxPosition_y, left, top, right, bottom;
7395 } WINDOWPLACEMENT_FID_CACHE;
7396
7397 WINDOWPLACEMENT_FID_CACHE WINDOWPLACEMENTFc;
7398
cacheWINDOWPLACEMENTFields(JNIEnv * env,jobject lpObject)7399 void cacheWINDOWPLACEMENTFields(JNIEnv *env, jobject lpObject)
7400 {
7401 if (WINDOWPLACEMENTFc.cached) return;
7402 WINDOWPLACEMENTFc.clazz = (*env)->GetObjectClass(env, lpObject);
7403 WINDOWPLACEMENTFc.length = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "length", "I");
7404 WINDOWPLACEMENTFc.flags = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "flags", "I");
7405 WINDOWPLACEMENTFc.showCmd = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "showCmd", "I");
7406 WINDOWPLACEMENTFc.ptMinPosition_x = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "ptMinPosition_x", "I");
7407 WINDOWPLACEMENTFc.ptMinPosition_y = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "ptMinPosition_y", "I");
7408 WINDOWPLACEMENTFc.ptMaxPosition_x = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "ptMaxPosition_x", "I");
7409 WINDOWPLACEMENTFc.ptMaxPosition_y = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "ptMaxPosition_y", "I");
7410 WINDOWPLACEMENTFc.left = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "left", "I");
7411 WINDOWPLACEMENTFc.top = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "top", "I");
7412 WINDOWPLACEMENTFc.right = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "right", "I");
7413 WINDOWPLACEMENTFc.bottom = (*env)->GetFieldID(env, WINDOWPLACEMENTFc.clazz, "bottom", "I");
7414 WINDOWPLACEMENTFc.cached = 1;
7415 }
7416
getWINDOWPLACEMENTFields(JNIEnv * env,jobject lpObject,WINDOWPLACEMENT * lpStruct)7417 WINDOWPLACEMENT *getWINDOWPLACEMENTFields(JNIEnv *env, jobject lpObject, WINDOWPLACEMENT *lpStruct)
7418 {
7419 if (!WINDOWPLACEMENTFc.cached) cacheWINDOWPLACEMENTFields(env, lpObject);
7420 lpStruct->length = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.length);
7421 lpStruct->flags = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.flags);
7422 lpStruct->showCmd = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.showCmd);
7423 lpStruct->ptMinPosition.x = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMinPosition_x);
7424 lpStruct->ptMinPosition.y = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMinPosition_y);
7425 lpStruct->ptMaxPosition.x = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMaxPosition_x);
7426 lpStruct->ptMaxPosition.y = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMaxPosition_y);
7427 lpStruct->rcNormalPosition.left = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.left);
7428 lpStruct->rcNormalPosition.top = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.top);
7429 lpStruct->rcNormalPosition.right = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.right);
7430 lpStruct->rcNormalPosition.bottom = (*env)->GetIntField(env, lpObject, WINDOWPLACEMENTFc.bottom);
7431 return lpStruct;
7432 }
7433
setWINDOWPLACEMENTFields(JNIEnv * env,jobject lpObject,WINDOWPLACEMENT * lpStruct)7434 void setWINDOWPLACEMENTFields(JNIEnv *env, jobject lpObject, WINDOWPLACEMENT *lpStruct)
7435 {
7436 if (!WINDOWPLACEMENTFc.cached) cacheWINDOWPLACEMENTFields(env, lpObject);
7437 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.length, (jint)lpStruct->length);
7438 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.flags, (jint)lpStruct->flags);
7439 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.showCmd, (jint)lpStruct->showCmd);
7440 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMinPosition_x, (jint)lpStruct->ptMinPosition.x);
7441 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMinPosition_y, (jint)lpStruct->ptMinPosition.y);
7442 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMaxPosition_x, (jint)lpStruct->ptMaxPosition.x);
7443 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.ptMaxPosition_y, (jint)lpStruct->ptMaxPosition.y);
7444 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.left, (jint)lpStruct->rcNormalPosition.left);
7445 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.top, (jint)lpStruct->rcNormalPosition.top);
7446 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.right, (jint)lpStruct->rcNormalPosition.right);
7447 (*env)->SetIntField(env, lpObject, WINDOWPLACEMENTFc.bottom, (jint)lpStruct->rcNormalPosition.bottom);
7448 }
7449 #endif
7450
7451 #ifndef NO_WINDOWPOS
7452 typedef struct WINDOWPOS_FID_CACHE {
7453 int cached;
7454 jclass clazz;
7455 jfieldID hwnd, hwndInsertAfter, x, y, cx, cy, flags;
7456 } WINDOWPOS_FID_CACHE;
7457
7458 WINDOWPOS_FID_CACHE WINDOWPOSFc;
7459
cacheWINDOWPOSFields(JNIEnv * env,jobject lpObject)7460 void cacheWINDOWPOSFields(JNIEnv *env, jobject lpObject)
7461 {
7462 if (WINDOWPOSFc.cached) return;
7463 WINDOWPOSFc.clazz = (*env)->GetObjectClass(env, lpObject);
7464 WINDOWPOSFc.hwnd = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "hwnd", "J");
7465 WINDOWPOSFc.hwndInsertAfter = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "hwndInsertAfter", "J");
7466 WINDOWPOSFc.x = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "x", "I");
7467 WINDOWPOSFc.y = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "y", "I");
7468 WINDOWPOSFc.cx = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "cx", "I");
7469 WINDOWPOSFc.cy = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "cy", "I");
7470 WINDOWPOSFc.flags = (*env)->GetFieldID(env, WINDOWPOSFc.clazz, "flags", "I");
7471 WINDOWPOSFc.cached = 1;
7472 }
7473
getWINDOWPOSFields(JNIEnv * env,jobject lpObject,WINDOWPOS * lpStruct)7474 WINDOWPOS *getWINDOWPOSFields(JNIEnv *env, jobject lpObject, WINDOWPOS *lpStruct)
7475 {
7476 if (!WINDOWPOSFc.cached) cacheWINDOWPOSFields(env, lpObject);
7477 lpStruct->hwnd = (HWND)(*env)->GetLongField(env, lpObject, WINDOWPOSFc.hwnd);
7478 lpStruct->hwndInsertAfter = (HWND)(*env)->GetLongField(env, lpObject, WINDOWPOSFc.hwndInsertAfter);
7479 lpStruct->x = (*env)->GetIntField(env, lpObject, WINDOWPOSFc.x);
7480 lpStruct->y = (*env)->GetIntField(env, lpObject, WINDOWPOSFc.y);
7481 lpStruct->cx = (*env)->GetIntField(env, lpObject, WINDOWPOSFc.cx);
7482 lpStruct->cy = (*env)->GetIntField(env, lpObject, WINDOWPOSFc.cy);
7483 lpStruct->flags = (*env)->GetIntField(env, lpObject, WINDOWPOSFc.flags);
7484 return lpStruct;
7485 }
7486
setWINDOWPOSFields(JNIEnv * env,jobject lpObject,WINDOWPOS * lpStruct)7487 void setWINDOWPOSFields(JNIEnv *env, jobject lpObject, WINDOWPOS *lpStruct)
7488 {
7489 if (!WINDOWPOSFc.cached) cacheWINDOWPOSFields(env, lpObject);
7490 (*env)->SetLongField(env, lpObject, WINDOWPOSFc.hwnd, (jlong)lpStruct->hwnd);
7491 (*env)->SetLongField(env, lpObject, WINDOWPOSFc.hwndInsertAfter, (jlong)lpStruct->hwndInsertAfter);
7492 (*env)->SetIntField(env, lpObject, WINDOWPOSFc.x, (jint)lpStruct->x);
7493 (*env)->SetIntField(env, lpObject, WINDOWPOSFc.y, (jint)lpStruct->y);
7494 (*env)->SetIntField(env, lpObject, WINDOWPOSFc.cx, (jint)lpStruct->cx);
7495 (*env)->SetIntField(env, lpObject, WINDOWPOSFc.cy, (jint)lpStruct->cy);
7496 (*env)->SetIntField(env, lpObject, WINDOWPOSFc.flags, (jint)lpStruct->flags);
7497 }
7498 #endif
7499
7500 #ifndef NO_WNDCLASS
7501 typedef struct WNDCLASS_FID_CACHE {
7502 int cached;
7503 jclass clazz;
7504 jfieldID style, lpfnWndProc, cbClsExtra, cbWndExtra, hInstance, hIcon, hCursor, hbrBackground, lpszMenuName, lpszClassName;
7505 } WNDCLASS_FID_CACHE;
7506
7507 WNDCLASS_FID_CACHE WNDCLASSFc;
7508
cacheWNDCLASSFields(JNIEnv * env,jobject lpObject)7509 void cacheWNDCLASSFields(JNIEnv *env, jobject lpObject)
7510 {
7511 if (WNDCLASSFc.cached) return;
7512 WNDCLASSFc.clazz = (*env)->GetObjectClass(env, lpObject);
7513 WNDCLASSFc.style = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "style", "I");
7514 WNDCLASSFc.lpfnWndProc = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "lpfnWndProc", "J");
7515 WNDCLASSFc.cbClsExtra = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "cbClsExtra", "I");
7516 WNDCLASSFc.cbWndExtra = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "cbWndExtra", "I");
7517 WNDCLASSFc.hInstance = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "hInstance", "J");
7518 WNDCLASSFc.hIcon = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "hIcon", "J");
7519 WNDCLASSFc.hCursor = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "hCursor", "J");
7520 WNDCLASSFc.hbrBackground = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "hbrBackground", "J");
7521 WNDCLASSFc.lpszMenuName = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "lpszMenuName", "J");
7522 WNDCLASSFc.lpszClassName = (*env)->GetFieldID(env, WNDCLASSFc.clazz, "lpszClassName", "J");
7523 WNDCLASSFc.cached = 1;
7524 }
7525
getWNDCLASSFields(JNIEnv * env,jobject lpObject,WNDCLASS * lpStruct)7526 WNDCLASS *getWNDCLASSFields(JNIEnv *env, jobject lpObject, WNDCLASS *lpStruct)
7527 {
7528 if (!WNDCLASSFc.cached) cacheWNDCLASSFields(env, lpObject);
7529 lpStruct->style = (*env)->GetIntField(env, lpObject, WNDCLASSFc.style);
7530 lpStruct->lpfnWndProc = (WNDPROC)(*env)->GetLongField(env, lpObject, WNDCLASSFc.lpfnWndProc);
7531 lpStruct->cbClsExtra = (*env)->GetIntField(env, lpObject, WNDCLASSFc.cbClsExtra);
7532 lpStruct->cbWndExtra = (*env)->GetIntField(env, lpObject, WNDCLASSFc.cbWndExtra);
7533 lpStruct->hInstance = (HINSTANCE)(*env)->GetLongField(env, lpObject, WNDCLASSFc.hInstance);
7534 lpStruct->hIcon = (HICON)(*env)->GetLongField(env, lpObject, WNDCLASSFc.hIcon);
7535 lpStruct->hCursor = (HCURSOR)(*env)->GetLongField(env, lpObject, WNDCLASSFc.hCursor);
7536 lpStruct->hbrBackground = (HBRUSH)(*env)->GetLongField(env, lpObject, WNDCLASSFc.hbrBackground);
7537 lpStruct->lpszMenuName = (LPCTSTR)(*env)->GetLongField(env, lpObject, WNDCLASSFc.lpszMenuName);
7538 lpStruct->lpszClassName = (LPCTSTR)(*env)->GetLongField(env, lpObject, WNDCLASSFc.lpszClassName);
7539 return lpStruct;
7540 }
7541
setWNDCLASSFields(JNIEnv * env,jobject lpObject,WNDCLASS * lpStruct)7542 void setWNDCLASSFields(JNIEnv *env, jobject lpObject, WNDCLASS *lpStruct)
7543 {
7544 if (!WNDCLASSFc.cached) cacheWNDCLASSFields(env, lpObject);
7545 (*env)->SetIntField(env, lpObject, WNDCLASSFc.style, (jint)lpStruct->style);
7546 (*env)->SetLongField(env, lpObject, WNDCLASSFc.lpfnWndProc, (jlong)lpStruct->lpfnWndProc);
7547 (*env)->SetIntField(env, lpObject, WNDCLASSFc.cbClsExtra, (jint)lpStruct->cbClsExtra);
7548 (*env)->SetIntField(env, lpObject, WNDCLASSFc.cbWndExtra, (jint)lpStruct->cbWndExtra);
7549 (*env)->SetLongField(env, lpObject, WNDCLASSFc.hInstance, (jlong)lpStruct->hInstance);
7550 (*env)->SetLongField(env, lpObject, WNDCLASSFc.hIcon, (jlong)lpStruct->hIcon);
7551 (*env)->SetLongField(env, lpObject, WNDCLASSFc.hCursor, (jlong)lpStruct->hCursor);
7552 (*env)->SetLongField(env, lpObject, WNDCLASSFc.hbrBackground, (jlong)lpStruct->hbrBackground);
7553 (*env)->SetLongField(env, lpObject, WNDCLASSFc.lpszMenuName, (jlong)lpStruct->lpszMenuName);
7554 (*env)->SetLongField(env, lpObject, WNDCLASSFc.lpszClassName, (jlong)lpStruct->lpszClassName);
7555 }
7556 #endif
7557
7558