summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT/win32/library/structs.h
blob: 11e62e815436093eab4aeac9b1aaf90019b1fb1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
/**
 * JNI SWT object field getters and setters declarations for Windows structs.
 */

#ifndef INC_structs_H
#define INC_structs_H

#define USE_2000_CALLS
//#undef USE_2000_CALLS

#ifdef USE_2000_CALLS
#define WINVER 0x0500
#define _WIN32_IE 0x0500
#endif

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define VC_EXTRALEAN

#include <windows.h>
#include <winuser.h>
#include <commctrl.h>
#include <oaidl.h>
#include <shlobj.h>
#include <ole2.h>
#include <olectl.h>
#include <objbase.h>
#include <richedit.h>
#include <shlwapi.h>

/* All globals to be declared in globals.h */
#define FID_CACHE_GLOBALS \
	MULTI_QI_FID_CACHE MultiqiFc; \
	OLEINPLACEFRAMEINFO_FID_CACHE OleinplaceframeinfoFc; \
	CAUUID_FID_CACHE CauuidFc; \
	HDLAYOUT_FID_CACHE HdlayoutFc; \
	OLECMD_FID_CACHE OlecmdFc; \
	TYPEATTR_FID_CACHE TypeattrFc; \
	FORMATETC_FID_CACHE FormatetcFc; \
	OLECMDTEXT_FID_CACHE OlecmdtextFc; \
	GUID_FID_CACHE GuidFc; \
	COSERVERINFO_FID_CACHE CoserverinfoFc; \
	STGMEDIUM_FID_CACHE StgmediumFc; \
	EXCEPINFO_FID_CACHE ExcepinfoFc; \
	DVTARGETDEVICE_FID_CACHE DvtargetdeviceFc; \
	DISPPARAMS_FID_CACHE DispparamsFc; \
	CONTROLINFO_FID_CACHE ControlinfoFc; \
	STATSTG_FID_CACHE StatstgFc; \
	LICINFO_FID_CACHE LicinfoFc; \
	DROPFILES_FID_CACHE DropfilesFc; \
	TVHITTESTINFO_FID_CACHE TvhittestinfoFc; \
	WINDOWPOS_FID_CACHE WindowposFc; \
	ACCEL_FID_CACHE AccelFc; \
	DRAWITEMSTRUCT_FID_CACHE DrawitemstructFc; \
	NMLISTVIEW_FID_CACHE NmlistviewFc; \
	TEXTMETRIC_FID_CACHE TextmetricFc; \
	RECT_FID_CACHE RectFc; \
	LOGBRUSH_FID_CACHE LogbrushFc; \
	CHOOSECOLOR_FID_CACHE ChoosecolorFc; \
	TOOLINFO_FID_CACHE ToolinfoFc; \
	SCROLLINFO_FID_CACHE ScrollinfoFc; \
	MEASUREITEMSTRUCT_FID_CACHE MeasureitemstructFc; \
	CREATESTRUCT_FID_CACHE CreatestructFc; \
	OPENFILENAME_FID_CACHE OpenfilenameFc; \
	LVITEM_FID_CACHE LvitemFc; \
	TVITEM_FID_CACHE TvitemFc; \
	LVHITTESTINFO_FID_CACHE LvhittestinfoFc; \
	NMTVCUSTOMDRAW_FID_CACHE NmtvcustomdrawFc; \
	CHOOSEFONT_FID_CACHE ChoosefontFc; \
	HDITEM_FID_CACHE HditemFc; \
	NMTOOLBAR_FID_CACHE NmtoolbarFc; \
	TBBUTTON_FID_CACHE TbbuttonFc; \
	NMTTDISPINFO_FID_CACHE NmttdispinfoFc; \
	WINDOWPLACEMENT_FID_CACHE WindowplacementFc; \
	REBARBANDINFO_FID_CACHE RebarbandinfoFc; \
	POINT_FID_CACHE PointFc; \
	TBBUTTONINFO_FID_CACHE TbbuttoninfoFc; \
	NMHDR_FID_CACHE NmhdrFc; \
	SIZE_FID_CACHE SizeFc; \
	INITCOMMONCONTROLSEX_FID_CACHE InitcommoncontrolsexFc; \
	DLLVERSIONINFO_FID_CACHE DllversioninfoFc; \
	MSGFILTER_FID_CACHE MsgfilterFc; \
	BITMAP_FID_CACHE BitmapFc; \
	PAINTSTRUCT_FID_CACHE PaintstructFc; \
	MENUITEMINFO_FID_CACHE MenuiteminfoFc; \
	ICONINFO_FID_CACHE IconinfoFc; \
	WNDCLASSEX_FID_CACHE WndclassexFc; \
	MENUINFO_FID_CACHE MenuinfoFc; \
	LOGPEN_FID_CACHE LogpenFc; \
	COMPOSITIONFORM_FID_CACHE CompositionformFc; \
	LVCOLUMN_FID_CACHE LvcolumnFc; \
	BROWSEINFO_FID_CACHE BrowseinfoFc; \
	DOCINFO_FID_CACHE DocinfoFc; \
	TVINSERTSTRUCT_FID_CACHE TvinsertstructFc; \
	HELPINFO_FID_CACHE HelpinfoFc; \
	LOGFONT_FID_CACHE LogfontFc; \
	DIBSECTION_FID_CACHE DibsectionFc; \
	NMHEADER_FID_CACHE NmheaderFc; \
	TCITEM_FID_CACHE TcitemFc; \
	PRINTDLG_FID_CACHE PrintdlgFc; \
	MSG_FID_CACHE MsgFc; \
	PAGESETUPDLG_FID_CACHE PagesetupdlgFc; \
	TRACKMOUSEEVENT_FID_CACHE TrackmouseeventFc; \
	FUNCDESC1_FID_CACHE Funcdesc1Fc; \
	FUNCDESC2_FID_CACHE Funcdesc2Fc; \
	VARDESC1_FID_CACHE Vardesc1Fc; \
	VARDESC2_FID_CACHE Vardesc2Fc;

/*	PARAFORMAT_FID_CACHE ParaformatFc; \*/
/*	CHARFORMAT_FID_CACHE CharformatFc; \*/
/*	CHARFORMAT2_FID_CACHE Charformat2Fc; \*/
/*	SHFILEINFO_FID_CACHE ShfileinfoFc; \*/
/*	EXTLOGPEN_FID_CACHE ExtlogpenFc; \*/
	
/* ----------- fid and class caches  ----------- */
/**
 * Used for Java objects passed into JNI that are
 * declared like:
 *
 * 	nativeFunction (Rectangle p1, Rectangle p2, Rectangle p3)
 *
 * and not like this
 *
 * 	nativeFunction (Object p1, Object p2, Object p3)
 *
 *
 */

/* ----------- fid cache structures  ----------- */

/* CALLBACK struct */
typedef struct CALLBACK_FID_CACHE {

    int cached;
    jclass callbackClass;
    jfieldID object, method, signature, isStatic;

} CALLBACK_FID_CACHE;

typedef CALLBACK_FID_CACHE *PCALLBACK_FID_CACHE;

/* ACCEL struct */
typedef struct ACCEL_FID_CACHE {
    
    int cached;
    jclass accelClass;
    jfieldID fVirt, key, cmd;

} ACCEL_FID_CACHE;

typedef ACCEL_FID_CACHE *PACCEL_FID_CACHE;

/* BITMAP struct */
typedef struct BITMAP_FID_CACHE {
    
    int cached;
    jclass bitmapClass;
    jfieldID bmType, bmWidth, bmHeight, bmWidthBytes, bmPlanes, \
             bmBitsPixel, bmBits;

} BITMAP_FID_CACHE;

typedef BITMAP_FID_CACHE *PBITMAP_FID_CACHE;

/* BROWSEINFO struct */
typedef struct BROWSEINFO_FID_CACHE {
    
    int cached;
    jclass browseinfoClass;
    jfieldID hwndOwner, pidlRoot, pszDisplayName, lpszTitle, ulFlags, \
             lpfn, lParam, iImage;

} BROWSEINFO_FID_CACHE;

typedef BROWSEINFO_FID_CACHE *PBROWSEINFO_FID_CACHE;

/* CHARFORMAT struct */
/*
typedef struct CHARFORMAT_FID_CACHE {
    
    int cached;
    jclass charformatClass;
    jfieldID cbSize, dwMask, dwEffects, yHeight, yOffset, crTextColor, \
             bCharSet, bPitchAndFamily, \
             szFaceName0, szFaceName1, szFaceName2, szFaceName3, szFaceName4, \
             szFaceName5, szFaceName6, szFaceName7, szFaceName8, szFaceName9, \
             szFaceName10, szFaceName11, szFaceName12, szFaceName13, szFaceName14, \
             szFaceName15, szFaceName16, szFaceName17, szFaceName18, szFaceName19, \
             szFaceName20, szFaceName21, szFaceName22, szFaceName23, szFaceName24, \
             szFaceName25, szFaceName26, szFaceName27, szFaceName28, szFaceName29, \
             szFaceName30, szFaceName31;

} CHARFORMAT_FID_CACHE;
typedef CHARFORMAT_FID_CACHE *PCHARFORMAT_FID_CACHE;
*/

/* CHARFORMAT2 struct */
/*
typedef struct CHARFORMAT2_FID_CACHE {
    
    int cached;
    jclass charformat2Class;
    jfieldID cbSize, dwMask, dwEffects, yHeight, yOffset, crTextColor, \
             bCharSet, bPitchAndFamily, \
             szFaceName0, szFaceName1, szFaceName2, szFaceName3, szFaceName4, \
             szFaceName5, szFaceName6, szFaceName7, szFaceName8, szFaceName9, \
             szFaceName10, szFaceName11, szFaceName12, szFaceName13, szFaceName14, \
             szFaceName15, szFaceName16, szFaceName17, szFaceName18, szFaceName19, \
             szFaceName20, szFaceName21, szFaceName22, szFaceName23, szFaceName24, \
             szFaceName25, szFaceName26, szFaceName27, szFaceName28, szFaceName29, \
             szFaceName30, szFaceName31, \
             wWeight, sSpacing, crBackColor, lcid, dwReserved, sStyle, wKerning, \
             bUnderlineType, bAnimation, bRevAuthor, bReserved1;
} CHARFORMAT2_FID_CACHE;
typedef CHARFORMAT2_FID_CACHE *PCHARFORMAT2_FID_CACHE;
*/

/* CHOOSECOLOR struct */
typedef struct CHOOSECOLOR_FID_CACHE {
    
    int cached;
    jclass choosecolorClass;
    jfieldID lStructSize, hwndOwner, hInstance, rgbResult, lpCustColors, \
             Flags, lCustData, lpfnHook, lpTemplateName;

} CHOOSECOLOR_FID_CACHE;

typedef CHOOSECOLOR_FID_CACHE *PCHOOSECOLOR_FID_CACHE;

/* CHOOSEFONT struct */
typedef struct CHOOSEFONT_FID_CACHE {
    
    int cached;
    jclass choosefontClass;
    jfieldID lStructSize, hwndOwner, hDC, lpLogFont, \
             iPointSize, Flags, rgbColors, lCustData, lpfnHook, \
             lpTemplateName, hInstance, lpszStyle, nFontType, \
             ___MISSING_ALIGNMENT__, nSizeMin, nSizeMax;

} CHOOSEFONT_FID_CACHE;

typedef CHOOSEFONT_FID_CACHE *PCHOOSEFONT_FID_CACHE;

/* COMPOSITIONFORM struct */
typedef struct COMPOSITIONFORM_FID_CACHE {
    
    int cached;
    jclass compositionformClass;
    jfieldID dwStyle, x, y, left, top, right, bottom;

} COMPOSITIONFORM_FID_CACHE;

typedef COMPOSITIONFORM_FID_CACHE *PCOMPOSITIONFORM_FID_CACHE;

/* CREATESTRUCT struct */
typedef struct CREATESTRUCT_FID_CACHE {
    
    int cached;
    jclass createstructClass;
    jfieldID lpCreateParams, hInstance, hMenu, hwndParent, \
             cx, cy, x, y, style, lpszName, lpszClass, \
             dwExStyle;

} CREATESTRUCT_FID_CACHE;

typedef CREATESTRUCT_FID_CACHE *PCREATESTRUCT_FID_CACHE;

/* DIBSECTION struct */
typedef struct DIBSECTION_FID_CACHE {
    
    int cached;
    jclass dibsectionClass;
    jfieldID bmType, bmWidth, bmHeight, bmWidthBytes, bmPlanes, \
             bmBitsPixel, bmBits,\
             biSize, biWidth, biHeight, biPlanes, biBitCount, \
             biCompression, biSizeImage, biXPelsPerMeter, biYPelsPerMeter, \
             biClrUsed, biClrImportant, dsBitfields0, dsBitfields1, \
             dsBitfields2, dshSection, dsOffset;

} DIBSECTION_FID_CACHE;

typedef DIBSECTION_FID_CACHE *PDIBSECTION_FID_CACHE;

/* DLLVERSIONINFO struct */
typedef struct DLLVERSIONINFO_FID_CACHE {
    
    int cached;
    jclass dllversioninfoClass;
    jfieldID cbSize, dwMajorVersion, dwMinorVersion, dwBuildNumber, dwPlatformID;

} DLLVERSIONINFO_FID_CACHE;

typedef DLLVERSIONINFO_FID_CACHE *PDLLVERSIONINFO_FID_CACHE;

/* DOCINFO struct */
typedef struct DOCINFO_FID_CACHE {
    
    int cached;
    jclass docinfoClass;
    jfieldID cbSize, lpszDocName, lpszOutput, lpszDatatype, fwType;

} DOCINFO_FID_CACHE;

typedef DOCINFO_FID_CACHE *PDOCINFO_FID_CACHE;

/* DRAWITEMSTRUCT struct */
typedef struct DRAWITEMSTRUCT_FID_CACHE {
    
    int cached;
    jclass drawitemstructClass;
    jfieldID CtlType, CtlID, itemID, itemAction, \
             itemState, hwndItem, hDC, left, top, \
             right, bottom, itemData;

} DRAWITEMSTRUCT_FID_CACHE;

typedef DRAWITEMSTRUCT_FID_CACHE *PDRAWITEMSTRUCT_FID_CACHE;

/* HDITEM struct */
typedef struct HDITEM_FID_CACHE {
    
    int cached;
    jclass hditemClass;
    jfieldID mask, cxy, pszText, hbm, cchTextMax, fmt, \
             lParam, iImage, iOrder;

} HDITEM_FID_CACHE;

typedef HDITEM_FID_CACHE *PHDITEM_FID_CACHE;

/* HDLAYOUT struct */
typedef struct HDLAYOUT_FID_CACHE {
    
    int cached;
    jclass hdlayoutClass;
    jfieldID prc, pwpos;

} HDLAYOUT_FID_CACHE;

typedef HDLAYOUT_FID_CACHE *PHDLAYOUT_FID_CACHE;

/* HELPINFO struct */
typedef struct HELPINFO_FID_CACHE {
    
    int cached;
    jclass helpinfoClass;
    jfieldID cbSize, iContextType, iCtrlId, hItemHandle, dwContextId, x, y;

} HELPINFO_FID_CACHE;

typedef HELPINFO_FID_CACHE *PHELPINFO_FID_CACHE;

/* ICONINFO struct */
typedef struct ICONINFO_FID_CACHE {
    
    int cached;
    jclass iconinfoClass;
    jfieldID fIcon, xHotspot, yHotspot, hbmMask, hbmColor;

} ICONINFO_FID_CACHE;

typedef ICONINFO_FID_CACHE *PICONINFO_FID_CACHE;

/* INITCOMMONCONTROLSEX struct */
typedef struct INITCOMMONCONTROLSEX_FID_CACHE {
    
    int cached;
    jclass initcommoncontrolsexClass;
    jfieldID dwSize, dwICC;

} INITCOMMONCONTROLSEX_FID_CACHE;

typedef INITCOMMONCONTROLSEX_FID_CACHE *PINITCOMMONCONTROLSEX_FID_CACHE;

/* LOGFONT struct */
typedef struct LOGFONT_FID_CACHE {
    
    int cached;
    jclass logfontClass;
    jfieldID lfHeight, lfWidth, lfEscapement, lfOrientation, \
             lfWeight, lfItalic, lfUnderline, lfStrikeOut, \
             lfCharSet, lfOutPrecision, lfClipPrecision, \
             lfQuality, lfPitchAndFamily, \
             lfFaceName0, lfFaceName1, lfFaceName2, lfFaceName3, \
             lfFaceName4, lfFaceName5, lfFaceName6, lfFaceName7, \
             lfFaceName8, lfFaceName9, lfFaceName10, lfFaceName11, \
             lfFaceName12, lfFaceName13, lfFaceName14, lfFaceName15, \
             lfFaceName16, lfFaceName17, lfFaceName18, lfFaceName19, \
             lfFaceName20, lfFaceName21, lfFaceName22, lfFaceName23, \
             lfFaceName24, lfFaceName25, lfFaceName26, lfFaceName27, \
             lfFaceName28, lfFaceName29, lfFaceName30, lfFaceName31;

} LOGFONT_FID_CACHE;

typedef LOGFONT_FID_CACHE *PLOGFONT_FID_CACHE;


/* LOGPEN struct */
typedef struct LOGPEN_FID_CACHE {

    int cached;
    jclass logpenClass;
    jfieldID lopnStyle, x, y, lopnColor;

} LOGPEN_FID_CACHE;

typedef LOGPEN_FID_CACHE *PLOGPEN_FID_CACHE;

/* EXTLOGPEN struct */
/*
typedef struct EXTLOGPEN_FID_CACHE { 

	int cached;
    jclass extlogpenClass;
    jfieldID elpPenStyle, elpWidth, elpBrushStyle, elpColor, \
			 elpHatch, elpNumEntries;
} EXTLOGPEN_FID_CACHE; 

typedef EXTLOGPEN_FID_CACHE *PEXTLOGPEN_FID_CACHE;
*/

/* LVCOLUMN struct */
typedef struct LVCOLUMN_FID_CACHE {
    
    int cached;
    jclass lvcolumnClass;
    jfieldID mask, fmt, cx, pszText, cchTextMax, iSubItem, \
             iImage, iOrder;

} LVCOLUMN_FID_CACHE;

typedef LVCOLUMN_FID_CACHE *PLVCOLUMN_FID_CACHE;

/* LVHITTESTINFO struct */
typedef struct LVHITTESTINFO_FID_CACHE {
    
    int cached;
    jclass lvhittestinfoClass;
    jfieldID x, y, flags, iItem, iSubItem;

} LVHITTESTINFO_FID_CACHE;

typedef LVHITTESTINFO_FID_CACHE *PLVHITTESTINFO_FID_CACHE;

/* LVITEM struct */
typedef struct LVITEM_FID_CACHE {

    int cached;
    jclass lvitemClass;    
    jfieldID mask, iItem, iSubItem, state, \
             stateMask, pszText, cchTextMax, iImage, \
             lParam, iIndent;

} LVITEM_FID_CACHE;

typedef LVITEM_FID_CACHE *PLVITEM_FID_CACHE;

/* LOGBRUSH struct */
typedef struct LOGBRUSH_FID_CACHE {
    
    int cached;
    jclass logbrushClass;
    jfieldID lbStyle, lbColor, lbHatch;

} LOGBRUSH_FID_CACHE;

typedef LOGBRUSH_FID_CACHE *PLOGBRUSH_FID_CACHE;

/* MEASUREITEMSTRUCT struct */
typedef struct MEASUREITEMSTRUCT_FID_CACHE {
    
    int cached;
    jclass measureitemstructClass;
    jfieldID CtlType, CtlID, itemID, itemWidth, itemHeight, itemData;

} MEASUREITEMSTRUCT_FID_CACHE;

typedef MEASUREITEMSTRUCT_FID_CACHE *PMEASUREITEMSTRUCT_FID_CACHE;

/* MENUINFO struct */
typedef struct MENUINFO_FID_CACHE {
    
    int cached;
    jclass menuinfoClass;
    jfieldID cbSize, fMask, dwStyle, cyMax, hbrBack, dwContextHelpID, dwMenuData;

} MENUINFO_FID_CACHE;

typedef MENUINFO_FID_CACHE *PMENUINFO_FID_CACHE;


/*  struct MENUITEMINFO*/
typedef struct MENUITEMINFO_FID_CACHE {
    
    int cached;
    jclass menuiteminfoClass;
    jfieldID cbSize, fMask, fType, fState, wID, hSubMenu, \
             hbmpChecked, hbmpUnchecked, dwItemData, dwTypeData, \
             cch
#ifdef USE_2000_CALLS
             ,hbmpItem       
#endif
              ;

} MENUITEMINFO_FID_CACHE ;

typedef MENUITEMINFO_FID_CACHE *PMENUITEMINFO_FID_CACHE;

/* MSG struct */
typedef struct MSG_FID_CACHE {
    
    int cached;
    jclass msgClass;
    jfieldID hwnd, message, wParam, lParam, time, x, y;

} MSG_FID_CACHE;

typedef MSG_FID_CACHE *PMSG_FID_CACHE;

/* MSGFILTER struct */
typedef struct MSGFILTER_FID_CACHE {
    
    int cached;
    jclass msgfilterClass;
    jfieldID hwndFrom, idFrom, code, msg, wParam, lParam;

} MSGFILTER_FID_CACHE;

typedef MSGFILTER_FID_CACHE *PMSGFILTER_FID_CACHE;

/* NMHDR struct */
typedef struct NMHDR_FID_CACHE {
    
    int cached;
    jclass nmhdrClass;
    jfieldID hwndFrom, idFrom, code;

} NMHDR_FID_CACHE;

typedef NMHDR_FID_CACHE *PNMHDR_FID_CACHE;

/* NMHEADER struct */
typedef struct NMHEADER_FID_CACHE {
    
    int cached;
    jclass nmheaderClass;
    jfieldID hwndFrom, idFrom, code, iItem, iButton, pitem;

} NMHEADER_FID_CACHE;

typedef NMHEADER_FID_CACHE *PNMHEADER_FID_CACHE;

/* NMLISTVIEW struct */
typedef struct NMLISTVIEW_FID_CACHE {

    int cached;
    jclass nmlistviewClass;
    jfieldID hwndFrom, idFrom, code, iItem, iSubItem, uNewState, \
             uOldState, uChanged, x, y, lParam;

} NMLISTVIEW_FID_CACHE;

typedef NMLISTVIEW_FID_CACHE *PNMLISTVIEW_FID_CACHE;

/* NMTOOLBAR struct */
typedef struct NMTOOLBAR_FID_CACHE {

    int cached;
    jclass nmtoolbarClass;
    jfieldID hwndFrom, idFrom, code, iItem, iBitmap, idCommand,
             fsState, fsStyle, ___MISSING_ALIGNMENT__, dwData,
             iString, cchText, pszText, left, top, right, bottom; 

} NMTOOLBAR_FID_CACHE;

typedef NMTOOLBAR_FID_CACHE *PNMTOOLBAR_FID_CACHE;

/* NMTTDISPINFO struct */
typedef struct NMTTDISPINFO_FID_CACHE {
    
    int cached;
    jclass nmttdispinfoClass;
    jfieldID hwndFrom, idFrom, code, lpszText, pad0, pad1, pad2, pad3, \
             pad4, pad5, pad6, pad7, pad8, pad9, pad10, pad11, pad12, \
             pad13, pad14, pad15, pad16, pad17, pad18, pad19, hinst, \
             uFlags, lParam;

} NMTTDISPINFO_FID_CACHE;

typedef NMTTDISPINFO_FID_CACHE *PNMTTDISPINFO_FID_CACHE;

/* NMTVCUSTOMDRAW struct */
typedef struct NMTVCUSTOMDRAW_FID_CACHE {
    
    int cached;
    jclass nmtvcustomdrawClass;
    jfieldID hwndFrom, idFrom, code, dwDrawStage, hdc, left, top, \
             right, bottom, dwItemSpec, uItemState, lItemlParam, \
             clrText, clrTextBk, iLevel;

} NMTVCUSTOMDRAW_FID_CACHE;

typedef NMTVCUSTOMDRAW_FID_CACHE *PNMTVCUSTOMDRAW_FID_CACHE;

/* OPENFILENAME struct */
typedef struct OPENFILENAME_FID_CACHE {
    
    int cached;
    jclass openfilenameClass;
    jfieldID lStructSize, hwndOwner, hInstance, lpstrFilter, \
             lpstrCustomFilter, nMaxCustFilter, nFilterIndex, lpstrFile, \
             nMaxFile, lpstrFileTitle, nMaxFileTitle, lpstrInitialDir, \
             lpstrTitle, Flags, nFileOffset, nFileExtension, lpstrDefExt, \
             lCustData, lpfnHook, lpTemplateName;

} OPENFILENAME_FID_CACHE;

typedef OPENFILENAME_FID_CACHE *POPENFILENAME_FID_CACHE;

/* PAINTSTRUCT struct */
typedef struct PAINTSTRUCT_FID_CACHE {
    
    int cached;
    jclass paintClass;
    jfieldID hdc, fErase, left, top, right, bottom, \
             fRestore, fIncUpdate;

} PAINTSTRUCT_FID_CACHE;

typedef PAINTSTRUCT_FID_CACHE *PPAINTSTRUCT_FID_CACHE;

/* PAGESETUPDLG struct */
typedef struct PAGESETUPDLG_FID_CACHE {
    
    int cached;
    jclass pagesetupdlgClass;
    jfieldID lStructSize, hwndOwner, hDevMode, hDevNames, Flags, \
             ptPaperSize_x, ptPaperSize_y, rtMinMargin_left, rtMinMargin_top, \
             rtMinMargin_right, rtMinMargin_bottom, rtMargin_left, rtMargin_top, \
             rtMargin_right, rtMargin_bottom, hInstance, lCustData, lpfnPageSetupHook, \
             lpfnPagePaintHook, lpPageSetupTemplateName, hPageSetupTemplate;

} PAGESETUPDLG_FID_CACHE;

typedef PAGESETUPDLG_FID_CACHE *PPAGESETUPDLG_FID_CACHE;

/* PARAFORMAT struct */
/*
typedef struct PARAFORMAT_FID_CACHE {
    int cached;
    jclass paraformatClass;
    jfieldID cbSize, dwMask, wNumbering, wEffects, dxStartIndent, \
             dxRightIndent, dxOffset, wAlignment, cTabCount, \
             rgxTabs0, rgxTabs1, rgxTabs2, rgxTabs3, rgxTabs4, \
             rgxTabs5, rgxTabs6, rgxTabs7, rgxTabs8, rgxTabs9, \
             rgxTabs10, rgxTabs11, rgxTabs12, rgxTabs13, rgxTabs14, \
             rgxTabs15, rgxTabs16, rgxTabs17, rgxTabs18, rgxTabs19, \
             rgxTabs20, rgxTabs21, rgxTabs22, rgxTabs23, rgxTabs24, \
             rgxTabs25, rgxTabs26, rgxTabs27, rgxTabs28, rgxTabs29, \
             rgxTabs30, rgxTabs31;
} PARAFORMAT_FID_CACHE;
typedef PARAFORMAT_FID_CACHE *PPARAFORMAT_FID_CACHE;
*/

/* POINT struct */
typedef struct POINT_FID_CACHE {
    
    int cached;
    jclass pointClass;
    jfieldID x, y;

} POINT_FID_CACHE;

typedef POINT_FID_CACHE *PPOINT_FID_CACHE;

/* PRINTDLG struct */
typedef struct PRINTDLG_FID_CACHE {
    
    int cached;
    jclass printdlgClass;
    jfieldID lStructSize, hwndOwner, hDevMode, hDevNames, hDC, Flags, \
             nFromPage, nToPage, nMinPage, nMaxPage, nCopies, hInstance, \
             lCustData, lpfnPrintHook, lpfnSetupHook, lpPrintTemplateName, \
             lpSetupTemplateName, hPrintTemplate, hSetupTemplate;

} PRINTDLG_FID_CACHE;

typedef PRINTDLG_FID_CACHE *PPRINTDLG_FID_CACHE;

/* REBARBANDINFO struct */
typedef struct REBARBANDINFO_FID_CACHE {
    
    int cached;
    jclass rebarbandinfoClass;
    jfieldID cbSize, fMask, fStyle, clrFore, clrBack, lpText, cch, \
             iImage, hwndChild, cxMinChild, cyMinChild, cx, hbmBack, \
             wID, cyChild, cyMaxChild, cyIntegral, cxIdeal, lParam, cxHeader;

} REBARBANDINFO_FID_CACHE;

typedef REBARBANDINFO_FID_CACHE *PREBARBANDINFO_FID_CACHE;

/* RECT struct */
typedef struct RECT_FID_CACHE {
    
    int cached;
    jclass rectClass;
    jfieldID left, top, right, bottom;

} RECT_FID_CACHE;

typedef RECT_FID_CACHE *PRECT_FID_CACHE;

/* SCROLLINFO struct */
typedef struct SCROLLINFO_FID_CACHE {
    
    int cached;
    jclass scrollinfoClass;
    jfieldID cbSize, fMask, nMin, nMax, nPage, nPos, nTrackPos;

} SCROLLINFO_FID_CACHE;

typedef SCROLLINFO_FID_CACHE *PSCROLLINFO_FID_CACHE;

/* SIZE struct */
typedef struct SIZE_FID_CACHE {
    
    int cached;
    jclass sizeClass;
    jfieldID cx, cy;

} SIZE_FID_CACHE;

typedef SIZE_FID_CACHE *PSIZE_FID_CACHE;

/* TBBUTTON struct */
typedef struct TBBUTTON_FID_CACHE {
    
    int cached;
    jclass tbbuttonClass;
    jfieldID iBitmap, idCommand, fsState, fsStyle, dwData, iString;

} TBBUTTON_FID_CACHE;

typedef TBBUTTON_FID_CACHE *PTBBUTTON_FID_CACHE;

/* TBBUTTONINFO struct */
typedef struct TBBUTTONINFO_FID_CACHE {
    
    int cached;
    jclass tbbuttoninfoClass;
    jfieldID cbSize, dwMask, idCommand, iImage, fsState, fsStyle, cx, lParam, pszText, cchText;

} TBBUTTONINFO_FID_CACHE;

typedef TBBUTTONINFO_FID_CACHE *PTBBUTTONINFO_FID_CACHE;

/* TCITEM struct */
typedef struct TCITEM_FID_CACHE {
    
    int cached;
    jclass tcitemClass;
    jfieldID mask, dwState, dwStateMask, pszText, cchTextMax, iImage, lParam;

} TCITEM_FID_CACHE;

typedef TCITEM_FID_CACHE *PTCITEM_FID_CACHE;

/* TEXTMETRIC struct */
typedef struct TEXTMETRIC_FID_CACHE {
    
    int cached;
    jclass textmetricClass;
    jfieldID tmHeight, tmAscent, tmDescent, tmInternalLeading, tmExternalLeading, \
             tmAveCharWidth, tmMaxCharWidth, tmWeight, tmOverhang, tmDigitizedAspectX, \
             tmDigitizedAspectY, tmFirstChar, tmLastChar, tmDefaultChar, tmBreakChar, tmItalic, \
             tmUnderlined, tmStruckOut, tmPitchAndFamily, tmCharSet;

} TEXTMETRIC_FID_CACHE;

typedef TEXTMETRIC_FID_CACHE *PTEXTMETRIC_FID_CACHE;

/* TOOLINFO struct */
typedef struct TOOLINFO_FID_CACHE {
    
    int cached;
    jclass toolinfoClass;
    jfieldID cbSize, uFlags, hwnd, uId, left, top, right, bottom, \
             hinst, lpszText, lParam;

} TOOLINFO_FID_CACHE;

typedef TOOLINFO_FID_CACHE *PTOOLINFO_FID_CACHE;

/* TRACKMOUSEEVENT struct */
typedef struct TRACKMOUSEEVENT_FID_CACHE {

    int cached;
    jclass trackmouseeventClass;
    jfieldID cbSize, dwFlags, hwndTrack, dwHoverTime;

} TRACKMOUSEEVENT_FID_CACHE;

typedef TRACKMOUSEEVENT_FID_CACHE *PTRACKMOUSEEVENT_FID_CACHE;

/* TVHITTESTINFO struct */
typedef struct TVHITTESTINFO_FID_CACHE {
    
    int cached;
    jclass tvhittestinfoClass;
    jfieldID x, y, flags, hItem;

} TVHITTESTINFO_FID_CACHE;

typedef TVHITTESTINFO_FID_CACHE *PTVHITTESTINFO_FID_CACHE;

/* TVINSERTSTRUCT struct */
typedef struct TVINSERTSTRUCT_FID_CACHE {
    
    int cached;
    jclass tvinsertstructClass;
    jfieldID hParent, hInsertAfter, mask, hItem, state, stateMask, pszText, cchTextMax, \
             iImage, iSelectedImage, cChildren, lParam;

} TVINSERTSTRUCT_FID_CACHE;

typedef TVINSERTSTRUCT_FID_CACHE *PTVINSERTSTRUCT_FID_CACHE;

/* TVITEM struct */
typedef struct TVITEM_FID_CACHE {
    
    int cached;
    jclass tvitemClass;
    jfieldID mask, hItem, state, stateMask, pszText, cchTextMax, \
             iImage, iSelectedImage, cChildren, lParam;

} TVITEM_FID_CACHE;

typedef TVITEM_FID_CACHE *PTVITEM_FID_CACHE;

/* WINDOWPLACEMENT struct */
typedef struct WINDOWPLACEMENT_FID_CACHE {
    
    int cached;
    jclass windowplacementClass;
    jfieldID length, flags, showCmd, ptMinPosition_x, ptMinPosition_y, ptMaxPosition_x, ptMaxPosition_y,
        left, top, right, bottom;

} WINDOWPLACEMENT_FID_CACHE;

typedef WINDOWPLACEMENT_FID_CACHE *PWINDOWPLACEMENT_FID_CACHE;

/* WINDOWPOS struct */
typedef struct WINDOWPOS_FID_CACHE {
    
    int cached;
    jclass windowposClass;
    jfieldID hwnd, hwndInsertAfter, x, y, cx, cy, flags;  

} WINDOWPOS_FID_CACHE;

typedef WINDOWPOS_FID_CACHE *PWINDOWPOS_FID_CACHE;

/* WNDCLASSEX struct */
typedef struct WNDCLASSEX_FID_CACHE {
    
    int cached;
    jclass wndclassexClass;
    jfieldID cbSize, style, lpfnWndProc, cbClsExtra, \
             cbWndExtra, hInstance, hIcon, hCursor, \
             hbrBackground, lpszMenuName, lpszClassName, \
             hIconSm;

} WNDCLASSEX_FID_CACHE;

typedef WNDCLASSEX_FID_CACHE *PWNDCLASSEX_FID_CACHE;

/* SHFILEINFO struct */
/*
typedef struct SHFILEINFO_FID_CACHE {
    
    int cached;
    jclass shfileinfoClass;
    jfieldID hIcon, iIcon, dwAttributes, szDisplayName, szTypeName;

} SHFILEINFO_FID_CACHE;

typedef SHFILEINFO_FID_CACHE *PSHFILEINFO_FID_CACHE;
*/

/* ----------- ole fid cache structures  ----------- */

/* CAUUID struct */
typedef struct CAUUID_FID_CACHE {
    
    int cached;
    jclass cauuidClass;
    jfieldID cElems, pElems;

} CAUUID_FID_CACHE;

typedef CAUUID_FID_CACHE *PCAUUID_FID_CACHE;

/* COSERVERINFO struct */
typedef struct COSERVERINFO_FID_CACHE {
    
    int cached;
    jclass coserverinfoClass;
    jfieldID dwReserved1, pwszName, pAuthInfo, dwReserved2;

} COSERVERINFO_FID_CACHE;

typedef COSERVERINFO_FID_CACHE *PCOSERVERINFO_FID_CACHE;

/* CONTROLINFO struct */
typedef struct CONTROLINFO_FID_CACHE {
    
    int cached;
    jclass controlinfoClass;
    jfieldID cb, hAccel, cAccel, filler, dwFlags;

} CONTROLINFO_FID_CACHE;

typedef CONTROLINFO_FID_CACHE *PCONTROLINFO_FID_CACHE;

/* DISPPARAMS struct */
typedef struct DISPPARAMS_FID_CACHE {
    
    int cached;
    jclass dispparamsClass;
    jfieldID rgvarg, rgdispidNamedArgs, cArgs, cNamedArgs;

} DISPPARAMS_FID_CACHE;

typedef DISPPARAMS_FID_CACHE *PDISPPARAMS_FID_CACHE;

/* DROPFILES struct */
typedef struct DROPFILES_FID_CACHE {
    
    int cached;
    jclass dropfilesClass;
    jfieldID pFiles, pt_x, pt_y, fNC, fWide;

} DROPFILES_FID_CACHE;

typedef DROPFILES_FID_CACHE *PDROPFILES_FID_CACHE;

/* DVASPECTINFO struct */
typedef struct DVASPECTINFO_FID_CACHE {
    
    int cached;
    jclass dvaspectinfoClass;
    jfieldID cb, dwFlags;

} DVASPECTINFO_FID_CACHE;

typedef DVASPECTINFO_FID_CACHE *PDVASPECTINFO_FID_CACHE;

/* DVTARGETDEVICE struct */
typedef struct DVTARGETDEVICE_FID_CACHE {
    
    int cached;
    jclass dvtargetdeviceClass;
    jfieldID tdSize, tdDriverNameOffset, tdDeviceNameOffset, \
             tdPortNameOffset, tdExtDevmodeOffset, tdData;

} DVTARGETDEVICE_FID_CACHE;

typedef DVTARGETDEVICE_FID_CACHE *PDVTARGETDEVICE_FID_CACHE;

/* EXCEPINFO struct */
typedef struct EXCEPINFO_FID_CACHE {
    
    int cached;
    jclass excepinfoClass;
    jfieldID wCode, wReserved, bstrSource, bstrDescription, bstrHelpFile, \
             dwHelpContext, pvReserved, pfnDeferredFillIn, scode;

} EXCEPINFO_FID_CACHE;

typedef EXCEPINFO_FID_CACHE *PEXCEPINFO_FID_CACHE;

/* FILETIME struct */
typedef struct FILETIME_FID_CACHE {
    
    int cached;
    jclass filetimeClass;
    jfieldID dwLowDateTime, dwHighDateTime;

} FILETIME_FID_CACHE;

typedef FILETIME_FID_CACHE *PFILETIME_FID_CACHE;

/* FORMATETC struct */
typedef struct FORMATEC_FID_CACHE {
    
    int cached;
    jclass formatetcClass;
    jfieldID cfFormat, ptd, dwAspect, lindex, tymed;

} FORMATETC_FID_CACHE;

typedef FORMATETC_FID_CACHE *PFORMATETC_FID_CACHE;

/* GUID struct */
typedef struct GUID_FID_CACHE {
    
    int cached;
    jclass guidClass;
    jfieldID data1, data2, data3, b0, b1, b2, b3, b4, b5, b6, b7;

} GUID_FID_CACHE;

typedef GUID_FID_CACHE *PGUID_FID_CACHE;

/* IDLDESC struct */
typedef struct IDLDESC_FID_CACHE {
    
    int cached;
    jclass idldescClass;
    jfieldID dwReserved, wIDLFlags;

} IDLDESC_FID_CACHE;

typedef IDLDESC_FID_CACHE *PIDLDESC_FID_CACHE;

/* LICINFO struct */
typedef struct LICINFO_FID_CACHE {
    
    int cached;
    jclass licinfoClass;
    jfieldID cbLicInfo, fRuntimeKeyAvail, fLicVerified;

} LICINFO_FID_CACHE;

typedef LICINFO_FID_CACHE *PLICINFO_FID_CACHE;

/* MULTI_QI struct */
typedef struct MULTI_QI_FID_CACHE {
    
    int cached;
    jclass multi_qiClass;
    jfieldID pIID, pItf, hr;

} MULTI_QI_FID_CACHE;

typedef MULTI_QI_FID_CACHE *PMULTI_QI_FID_CACHE;

/* OLECMD struct */
typedef struct OLECMD_FID_CACHE {
    
    int cached;
    jclass olecmdClass;
    jfieldID cmdID, cmdf;

} OLECMD_FID_CACHE;

typedef OLECMD_FID_CACHE *POLECMD_FID_CACHE;

/* OLECMDTEXT struct */
typedef struct OLECMDTEXT_FID_CACHE {
    
    int cached;
    jclass olecmdtextClass;
    jfieldID cmdtextf, cwActual, cwBuf, rgwz;

} OLECMDTEXT_FID_CACHE;

typedef OLECMDTEXT_FID_CACHE *POLECMDTEXT_FID_CACHE;

/* OLEINPLACEFRAMEINFO struct */
typedef struct OLEINPLACEFRAMEINFO_FID_CACHE {
    
    int cached;
    jclass oleinplaceframeinfoClass;
    jfieldID cb, fMDIApp, hwndFrame, haccel, cAccelEntries;

} OLEINPLACEFRAMEINFO_FID_CACHE;

typedef OLEINPLACEFRAMEINFO_FID_CACHE *POLEINPLACEFRAMEINFO_FID_CACHE;

/* OLEVERB struct */
typedef struct OLEVERB_FID_CACHE {
    
    int cached;
    jclass oleverbClass;
    jfieldID lVerb, lpszVerbName, fuFlags, grfAttribs;

} OLEVERB_FID_CACHE;

typedef OLEVERB_FID_CACHE *POLEVERB_FID_CACHE;

/* STATSTG struct */
typedef struct STATSTG_FID_CACHE {
    
    int cached;
    jclass statstgClass;
    jfieldID pwcsName, type, cbSize, mtime_dwLowDateTime, mtime_dwHighDateTime, \
             ctime_dwLowDateTime, ctime_dwHighDateTime, atime_dwLowDateTime, \
             atime_dwHighDateTime, grfMode, grfLocksSupported, clsid_data1, \
             clsid_data2, clsid_data3, clsid_b0, clsid_b1, clsid_b2, clsid_b3, \
             clsid_b4, clsid_b5, clsid_b6, clsid_b7, grfStateBits, reserved;

} STATSTG_FID_CACHE;

typedef STATSTG_FID_CACHE *PSTATSTG_FID_CACHE;

/* STGMEDIUM struct */
typedef struct STGMEDIUM_FID_CACHE {
    
    int cached;
    jclass stgmediumClass;
    jfieldID tymed, unionField, pUnkForRelease;

} STGMEDIUM_FID_CACHE;

typedef STGMEDIUM_FID_CACHE *PSTGMEDIUM_FID_CACHE;

/* TYPEATTR struct */
typedef struct TYPEATTR_FID_CACHE {
    
    int cached;
    jclass typeattrClass;
    jfieldID guid_data1, guid_data2, guid_data3, \
             guid_b0, guid_b1, guid_b2, guid_b3, guid_b4, guid_b5, guid_b6, guid_b7, \
             lcid, dwReserved, memidConstructor, memidDestructor, lpstrSchema, \
             cbSizeInstance, typekind, cFuncs, cVars, cImplTypes, cbSizeVft, \
             cbAlignment, wTypeFlags, wMajorVerNum, wMinorVerNum, \
             tdescAlias_unionField, tdescAlias_vt, \
             idldescType_dwReserved, idldescType_wIDLFlags;

} TYPEATTR_FID_CACHE;

typedef TYPEATTR_FID_CACHE *PTYPEATTR_FID_CACHE;

/* TYPEDESC struct */
typedef struct TYPEDESC_FID_CACHE {
    
    int cached;
    jclass typedescClass;
    jfieldID typedesc_union, vt;

} TYPEDESC_FID_CACHE;

typedef TYPEDESC_FID_CACHE *PTYPEDESC_FID_CACHE;

/* FUNCDESC1 struct */
typedef struct FUNCDESC1_FID_CACHE {
    
    int cached;
    jclass funcdescClass;
    jfieldID memid, lprgscode, lprgelemdescParam, funckind, invkind, \
	         callconv, cParams, cParamsOpt, oVft, cScodes, \
             elemdescFunc_tdesc_union, elemdescFunc_tdesc_vt, elemdescFunc_tdesc_filler, \
             elemdescFunc_paramdesc_pparamdescex, elemdescFunc_paramdesc_wParamFlags, elemdescFunc_paramdesc_filler, \
             wFuncFlags;

} FUNCDESC1_FID_CACHE;

typedef FUNCDESC1_FID_CACHE *PFUNCDESC1_FID_CACHE;

/* FUNCDESC2 struct */
typedef struct FUNCDESC2_FID_CACHE {
    
    int cached;
    jclass funcdescClass;
    jfieldID memid, lprgscode, lprgelemdescParam, funckind, invkind, \
	         callconv, cParams, cParamsOpt, oVft, cScodes, \
             elemdescFunc_tdesc_union, elemdescFunc_tdesc_vt, elemdescFunc_tdesc_filler, \
             elemdescFunc_idldesc_dwReserved, elemdescFunc_idldesc_wIDLFlags, elemdescFunc_idldesc_filler, \
             wFuncFlags;

} FUNCDESC2_FID_CACHE;

typedef FUNCDESC2_FID_CACHE *PFUNCDESC2_FID_CACHE;


/* VARDESC1 struct */
typedef struct VARDESC1_FID_CACHE {
    
    int cached;
    jclass vardescClass;
    jfieldID memid, lpstrSchema, unionField, \
             elemdescVar_tdesc_union, elemdescVar_tdesc_vt, elemdescVar_tdesc_filler, \
             elemdescVar_paramdesc_pparamdescex, elemdescVar_paramdesc_wParamFlags, elemdescVar_paramdesc_filler, \
             wVarFlags, filler, varkind;

} VARDESC1_FID_CACHE;

typedef VARDESC1_FID_CACHE *PVARDESC1_FID_CACHE;

/* VARDESC2 struct */
typedef struct VARDESC2_FID_CACHE {
    
    int cached;
    jclass vardescClass;
    jfieldID memid, lpstrSchema, unionField, \
             elemdescVar_tdesc_union, elemdescVar_tdesc_vt, elemdescVar_tdesc_filler, \
             elemdescVar_idldesc_dwReserved, elemdescVar_idldesc_wIDLFlags, elemdescVar_idldesc_filler, \
             wVarFlags, filler, varkind;

} VARDESC2_FID_CACHE;

typedef VARDESC2_FID_CACHE *PVARDESC2_FID_CACHE;

/* ----------- ole cache function prototypes  ----------- */

void cacheGuidFids(JNIEnv *env, jobject lpGuid, PGUID_FID_CACHE lpCache);
void cacheOlecmdFids(JNIEnv *env, jobject lpOlecmd, POLECMD_FID_CACHE lpCache);
void cacheDvtargetdeviceFids(JNIEnv *env, jobject lpDvtargetdevice, PDVTARGETDEVICE_FID_CACHE lpCache);
void cacheOleinplaceframeinfoFids(JNIEnv *env, jobject lpOleinplaceframeinfo, POLEINPLACEFRAMEINFO_FID_CACHE lpCache);
void cacheFormatetcFids(JNIEnv *env, jobject lpFormatetc, PFORMATETC_FID_CACHE lpCache);
void cacheOleverbFids(JNIEnv *env, jobject lpOleverb, POLEVERB_FID_CACHE lpCache);
void cacheTypedescFids(JNIEnv *env, jobject lpTypedesc, PTYPEDESC_FID_CACHE lpCache);
void cacheIdldescFids(JNIEnv *env, jobject lpIdldesc, PIDLDESC_FID_CACHE lpCache);
void cacheOlecmdtextFids(JNIEnv *env, jobject lpOlecmdtext, POLECMDTEXT_FID_CACHE lpCache);
void cacheFiletimeFids(JNIEnv *env, jobject lpFiletime, PFILETIME_FID_CACHE lpCache);
void cacheControlinfoFids(JNIEnv *env, jobject lpControlinfo, PCONTROLINFO_FID_CACHE lpCache);
void cacheStgmediumFids(JNIEnv *env, jobject lpStgmedium, PSTGMEDIUM_FID_CACHE lpCache);
void cacheDvaspectinfoFids(JNIEnv *env, jobject lpDvaspectinfo, PDVASPECTINFO_FID_CACHE lpCache);
void cacheDispparamsFids(JNIEnv *env, jobject lpDispparams, PDISPPARAMS_FID_CACHE lpCache);
void cacheLicinfoFids(JNIEnv *env, jobject lpLicinfo, PLICINFO_FID_CACHE lpCache);
void cacheExcepinfoFids(JNIEnv *env, jobject lpExcepinfo, PEXCEPINFO_FID_CACHE lpCache);
void cacheTypeattrFids(JNIEnv *env, jobject lpTypeattr, PTYPEATTR_FID_CACHE lpCache);
void cacheFuncdesc1Fids(JNIEnv *env, jobject lpFuncdesc, PFUNCDESC1_FID_CACHE lpCache);
void cacheFuncdesc2Fids(JNIEnv *env, jobject lpFuncdesc, PFUNCDESC2_FID_CACHE lpCache);
void cacheVardesc1Fids(JNIEnv *env, jobject lpVardesc, PVARDESC1_FID_CACHE lpCache);
void cacheVardesc2Fids(JNIEnv *env, jobject lpVardesc, PVARDESC2_FID_CACHE lpCache);

/* ----------- cache function prototypes  ----------- */

void cacheAccelFids(JNIEnv *env, jobject lpAccel, PACCEL_FID_CACHE lpCache);
void cacheBitmapFids(JNIEnv *env, jobject lpBitmap, PBITMAP_FID_CACHE lpCache);
void cacheBrowseinfoFids(JNIEnv *env, jobject lpBrowseinfo, PBROWSEINFO_FID_CACHE lpCache);
void cacheCauuidFids(JNIEnv *env, jobject lpCauuid, PCAUUID_FID_CACHE lpCache);
/*
void cacheCharformatFids(JNIEnv *env, jobject lpCharformat, PCHARFORMAT_FID_CACHE lpCache);
void cacheCharformat2Fids(JNIEnv *env, jobject lpCharformat2, PCHARFORMAT2_FID_CACHE lpCache);
*/
void cacheChoosecolorFids(JNIEnv *env, jobject lpChoosecolor, PCHOOSECOLOR_FID_CACHE lpCache);
void cacheChoosefontFids(JNIEnv *env, jobject lpChoosefont, PCHOOSEFONT_FID_CACHE lpCache);
void cacheCompositionformFids(JNIEnv *env, jobject lpCompositionform, PCOMPOSITIONFORM_FID_CACHE lpCache);
void cacheCoserverinfoFids(JNIEnv *env, jobject lpCoservinfo, PCOSERVERINFO_FID_CACHE lpCache);
void cacheCreatestructFids(JNIEnv *env, jobject lpCreatestruct, PCREATESTRUCT_FID_CACHE lpCache);
void cacheDibsectionFids(JNIEnv *env, jobject lpDibsection, PDIBSECTION_FID_CACHE lpCache);
void cacheDllversioninfoFids(JNIEnv *env, jobject lpDllversioninfo, PDLLVERSIONINFO_FID_CACHE lpCache);
void cacheDocinfoFids(JNIEnv *env, jobject lpDocinfo, PDOCINFO_FID_CACHE lpCache);
void cacheDrawitemstructFids(JNIEnv *env, jobject lpDrawitemstruct, PDRAWITEMSTRUCT_FID_CACHE lpCache);
void cacheDropfilesFids(JNIEnv *env, jobject lpDropfiles, PDROPFILES_FID_CACHE lpCache);
void cacheHditemFids(JNIEnv *env, jobject lpHditem, PHDITEM_FID_CACHE lpCache);
void cacheHdlayoutFids(JNIEnv *env, jobject lpHdlayout, PHDLAYOUT_FID_CACHE lpCache);
void cacheHelpinfoFids(JNIEnv *env, jobject lpHelpinfo, PHELPINFO_FID_CACHE lpCache);
void cacheIconinfoFids(JNIEnv *env, jobject lpIconinfo, PICONINFO_FID_CACHE lpCache);
void cacheInitcommoncontrolsexFids(JNIEnv *env, jobject lpInitcommoncontrolsex, PINITCOMMONCONTROLSEX_FID_CACHE lpCache);
void cacheLogbrushFids(JNIEnv *env, jobject lpLogbrush, PLOGBRUSH_FID_CACHE lpCache);
void cacheLogfontFids(JNIEnv *env, jobject lpLogfont, PLOGFONT_FID_CACHE lpCache);
void cacheLogpenFids(JNIEnv *env, jobject lpLogpen, PLOGPEN_FID_CACHE lpCache);
/*
void cacheExtlogpenFids(JNIEnv *env, jobject lpExtlogpen, PEXTLOGPEN_FID_CACHE lpCache);
*/
void cacheLvcolumnFids(JNIEnv *env, jobject lpLVColumn, PLVCOLUMN_FID_CACHE lpCache);
void cacheLvhittestinfoFids(JNIEnv *env, jobject lpLvhittestinfo, PLVHITTESTINFO_FID_CACHE lpCache);
void cacheLvitemFids(JNIEnv *env, jobject lpLVItem, PLVITEM_FID_CACHE lpCache);
void cacheMenuinfoFids(JNIEnv *env, jobject lpMenuinfo, PMENUINFO_FID_CACHE lpCache);
void cacheMeasureitemstructFids(JNIEnv *env, jobject lpMeasureitemstruct, PMEASUREITEMSTRUCT_FID_CACHE lpCache);
void cacheMenuiteminfoFids(JNIEnv *env, jobject lpMenuiteminfo, PMENUITEMINFO_FID_CACHE lpCache);
void cacheMsgFids(JNIEnv *env, jobject lpMsg, PMSG_FID_CACHE lpCache);
void cacheMsgfilterFids(JNIEnv *env, jobject lpMsgfilter, PMSGFILTER_FID_CACHE lpCache);
void cacheMulti_qiFids(JNIEnv *env, jobject lpMulti_qi, PMULTI_QI_FID_CACHE lpCache);
void cacheNmhdrFids(JNIEnv *env, jobject lpNmhdr, PNMHDR_FID_CACHE lpCache);
void cacheNmheaderFids(JNIEnv *env, jobject lpNmheader, PNMHEADER_FID_CACHE lpCache);
void cacheNmlistviewFids(JNIEnv *env, jobject lpNmlistview, PNMLISTVIEW_FID_CACHE lpCache);
void cacheNmtoolbarFids(JNIEnv *env, jobject lpNmtoolbar, PNMTOOLBAR_FID_CACHE lpCache);
void cacheNmttdispinfoFids(JNIEnv *env, jobject lpNmttdispinfo, PNMTTDISPINFO_FID_CACHE lpCache);
void cacheNmtvcustomdrawFids(JNIEnv *env, jobject lpNmtvcustomdraw, PNMTVCUSTOMDRAW_FID_CACHE lpCache);
void cacheOpenfilenameFids(JNIEnv *env, jobject lpOpenfilename, POPENFILENAME_FID_CACHE lpCache);
void cachePagesetupdlgFids(JNIEnv *env, jobject lpPagesetupdlg, PPAGESETUPDLG_FID_CACHE lpCache);
void cachePaintstructFids(JNIEnv *env, jobject lpPaint, PPAINTSTRUCT_FID_CACHE lpCache);
/*
void cacheParaformatFids(JNIEnv *env, jobject lpParaformat, PPARAFORMAT_FID_CACHE lpCache);
*/
void cachePointFids(JNIEnv *env, jobject lpPoint, PPOINT_FID_CACHE lpCache);
void cachePrintdlgFids(JNIEnv *env, jobject lpPrintdlg, PPRINTDLG_FID_CACHE lpCache);
void cacheRebarbandinfoFids(JNIEnv *env, jobject lpRebarbandinfo, PREBARBANDINFO_FID_CACHE lpCache);
void cacheRectFids(JNIEnv *env, jobject lpRect, PRECT_FID_CACHE lpCache);
void cacheScrollinfoFids(JNIEnv *env, jobject lpScrollinfo, PSCROLLINFO_FID_CACHE lpCache);
void cacheSizeFids(JNIEnv *env, jobject lpSize, PSIZE_FID_CACHE lpCache);
void cacheStatstgFids(JNIEnv *env, jobject lpStatstg, PSTATSTG_FID_CACHE lpCache);
void cacheTbbuttonFids(JNIEnv *env, jobject lpTbbutton, PTBBUTTON_FID_CACHE lpCache);
void cacheTbbuttoninfoFids(JNIEnv *env, jobject lpTbbuttoninfo, PTBBUTTONINFO_FID_CACHE lpCache);
void cacheTcitemFids(JNIEnv *env, jobject lpTcitem, PTCITEM_FID_CACHE lpCache);
void cacheTextmetricFids(JNIEnv *env, jobject lpTextmetric, PTEXTMETRIC_FID_CACHE lpCache);
void cacheToolinfoFids(JNIEnv *env, jobject lpToolinfo, PTOOLINFO_FID_CACHE lpCache);
void cacheTrackmouseeventFids(JNIEnv *env, jobject lpTrackmouseevent, PTRACKMOUSEEVENT_FID_CACHE lpCache);
void cacheTvhittestinfoFids(JNIEnv *env, jobject lpTvhittestinfo, PTVHITTESTINFO_FID_CACHE lpCache);
void cacheTvinsertstructFids(JNIEnv *env, jobject lpTvinsertstruct, PTVINSERTSTRUCT_FID_CACHE lpCache);
void cacheTvitemFids(JNIEnv *env, jobject lpTvitem, PTVITEM_FID_CACHE lpCache);
void cacheWindowplacementFids(JNIEnv *env, jobject lpWindowplacement, PWINDOWPLACEMENT_FID_CACHE lpCache);
void cacheWindowposFids(JNIEnv *env, jobject lpWindowpos, PWINDOWPOS_FID_CACHE lpCache);
void cacheWndclassexFids(JNIEnv *env, jobject lpWndclassex, PWNDCLASSEX_FID_CACHE lpCache);
/*
*void cacheShfileinfoFids(JNIEnv *env, jobject lpShfileinfo, PSHFILEINFO_FID_CACHE lpCache);
*/

/* used to cast Vtabl entries */

/* P_OLE_FN_x typedef for an OLE function returning int with x params*/
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_9)(jint, jint, jint, jint, jint, jint, jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_8)(jint, jint, jint, jint, jint, jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_7)(jint, jint, jint, jint, jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_6)(jint, jint, jint, jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_5)(jint, jint, jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_4)(jint, jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_3)(jint, jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_2)(jint, jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_1)(jint);
typedef jint (STDMETHODCALLTYPE *P_OLE_FN_0)(void);

/* ----------- swt getter and setter prototypes  ----------- */
/**
 * These functions get or set object field ids assuming that the
 * fids for these objects have already been cached.
 *
 * The header file just contains function prototypes
 */
void getAccelFields(JNIEnv *env, jobject lpObject, ACCEL *lpAccel, PACCEL_FID_CACHE lpAccelFc);
void setAccelFields(JNIEnv *env, jobject lpObject, ACCEL *lpAccel, PACCEL_FID_CACHE lpAccelFc);
void getBitmapFields(JNIEnv *env, jobject lpObject, BITMAP *lpBitmap, PBITMAP_FID_CACHE lpBitmapFc);
void setBitmapFields(JNIEnv *env, jobject lpObject, BITMAP *lpBitmap, PBITMAP_FID_CACHE lpBitmapFc);
void getBrowseinfoFields(JNIEnv *env, jobject lpObject, BROWSEINFO *lpBrowseinfo, PBROWSEINFO_FID_CACHE lpBrowseinfoFc);
void setBrowseinfoFields(JNIEnv *env, jobject lpObject, BROWSEINFO *lpBrowseinfo, PBROWSEINFO_FID_CACHE lpBrowseinfoFc);
void getCauuidFields(JNIEnv *env, jobject lpObject, CAUUID *lpCauuid, CAUUID_FID_CACHE *lpCauuidFc);
void setCauuidFields(JNIEnv *env, jobject lpObject, CAUUID *lpCauuid, CAUUID_FID_CACHE *lpCauuidFc);
/*
void getCharformatFields(JNIEnv *env, jobject lpObject, CHARFORMAT *lpCharformat, CHARFORMAT_FID_CACHE *lpCharformatFc);
void setCharformatFields(JNIEnv *env, jobject lpObject, CHARFORMAT *lpCharformat, CHARFORMAT_FID_CACHE *lpCharformatFc);
void getCharformat2Fields(JNIEnv *env, jobject lpObject, CHARFORMAT2 *lpCharformat2, CHARFORMAT2_FID_CACHE *lpCharformat2Fc);
void setCharformat2Fields(JNIEnv *env, jobject lpObject, CHARFORMAT2 *lpCharformat2, CHARFORMAT2_FID_CACHE *lpCharformat2Fc);
*/
void getChoosecolorFields(JNIEnv *env, jobject lpObject, CHOOSECOLOR *lpChoosecolor, CHOOSECOLOR_FID_CACHE *lpChoosecolorFc);
void setChoosecolorFields(JNIEnv *env, jobject lpObject, CHOOSECOLOR *lpChoosecolor, CHOOSECOLOR_FID_CACHE *lpChoosecolorFc);
void getChoosefontFields(JNIEnv *env, jobject lpObject, CHOOSEFONT *lpChoosefont, CHOOSEFONT_FID_CACHE *lpChoosefontFc);
void setChoosefontFields(JNIEnv *env, jobject lpObject, CHOOSEFONT *lpChoosefont, CHOOSEFONT_FID_CACHE *lpChoosefontFc);
void getCompositionformFields(JNIEnv *env, jobject lpObject, COMPOSITIONFORM *lpCompositionform, COMPOSITIONFORM_FID_CACHE *lpCompositionformFc);
void setCompositionformFields(JNIEnv *env, jobject lpObject, COMPOSITIONFORM *lpCompositionform, COMPOSITIONFORM_FID_CACHE *lpCompositionformFc);
void getCreatestructFields(JNIEnv *env, jobject lpObject, CREATESTRUCT *lpCreatestruct, PCREATESTRUCT_FID_CACHE lpCreatestructFc);
void setCreatestructFields(JNIEnv *env, jobject lpObject, CREATESTRUCT *lpCreatestruct, PCREATESTRUCT_FID_CACHE lpCreatestructFc);
void getDibsectionFields(JNIEnv *env, jobject lpObject, DIBSECTION *lpDibsection, DIBSECTION_FID_CACHE *lpDibsectionFc);
void setDibsectionFields(JNIEnv *env, jobject lpObject, DIBSECTION *lpDibsection, DIBSECTION_FID_CACHE *lpDibsectionFc);
void getDllversioninfoFields(JNIEnv *env, jobject lpObject, DLLVERSIONINFO *lpDllversioninfo, DLLVERSIONINFO_FID_CACHE *lpDllversioninfoFc);
void setDllversioninfoFields(JNIEnv *env, jobject lpObject, DLLVERSIONINFO *lpDllversioninfo, DLLVERSIONINFO_FID_CACHE *lpDllversioninfoFc);
void getDocinfoFields(JNIEnv *env, jobject lpObject, DOCINFO *lpDocinfo, PDOCINFO_FID_CACHE lpDocinfoFc);
void setDocinfoFields(JNIEnv *env, jobject lpObject, DOCINFO *lpDocinfo, PDOCINFO_FID_CACHE lpDocinfoFc);
void getDrawitemstructFields(JNIEnv *env, jobject lpObject, DRAWITEMSTRUCT *lpDrawitemstruct, PDRAWITEMSTRUCT_FID_CACHE lpDrawitemstructFc);
void setDrawitemstructFields(JNIEnv *env, jobject lpObject, DRAWITEMSTRUCT *lpDrawitemstruct, PDRAWITEMSTRUCT_FID_CACHE lpDrawitemstructFc);
void getHditemFields(JNIEnv *env, jobject lpObject, HDITEM *lpHditem, HDITEM_FID_CACHE *lpHditemFc);
void setHditemFields(JNIEnv *env, jobject lpObject, HDITEM *lpHditem, HDITEM_FID_CACHE *lpHditemFc);
void getHdlayoutFields(JNIEnv *env, jobject lpObject, HDLAYOUT *lpHdlayout, HDLAYOUT_FID_CACHE *lpHdlayoutFc);
void setHdlayoutFields(JNIEnv *env, jobject lpObject, HDLAYOUT *lpHdlayout, HDLAYOUT_FID_CACHE *lpHdlayoutFc);
void getHelpinfoFields(JNIEnv *env, jobject lpObject, HELPINFO *lpHelpinfo, HELPINFO_FID_CACHE *lpHelpinfoFc);
void setHelpinfoFields(JNIEnv *env, jobject lpObject, HELPINFO *lpHelpinfo, HELPINFO_FID_CACHE *lpHelpinfoFc);
void getIconinfoFields(JNIEnv *env, jobject lpObject, ICONINFO *lpIconinfo, PICONINFO_FID_CACHE lpIconinfoFc);
void setIconinfoFields(JNIEnv *env, jobject lpObject, ICONINFO *lpIconinfo, PICONINFO_FID_CACHE lpIconinfoFc);
void getInitcommoncontrolsexFields(JNIEnv *env, jobject lpObject, INITCOMMONCONTROLSEX *lpInitcommoncontrolsex, INITCOMMONCONTROLSEX_FID_CACHE *lpInitcommoncontrolsexFc);
void setInitcommoncontrolsexFields(JNIEnv *env, jobject lpObject, INITCOMMONCONTROLSEX *lpInitcommoncontrolsex, INITCOMMONCONTROLSEX_FID_CACHE *lpInitcommoncontrolsexFc);
void getLogbrushFields(JNIEnv *env, jobject lpObject, LOGBRUSH *lpLogbrush, LOGBRUSH_FID_CACHE *lpLogbrushFc);
void setLogbrushFields(JNIEnv *env, jobject lpObject, LOGBRUSH *lpLogbrush, LOGBRUSH_FID_CACHE *lpLogbrushFc);
void getLogfontFields(JNIEnv *env, jobject lpObject, LOGFONT *lpLogfont, PLOGFONT_FID_CACHE lpLogfontFc);
void setLogfontFields(JNIEnv *env, jobject lpObject, LOGFONT *lpLogfont, PLOGFONT_FID_CACHE lpLogfontFc);
void getLogpenFields(JNIEnv *env, jobject lpObject, LOGPEN *lpLogpen, PLOGPEN_FID_CACHE lpLogpenFc);
void setLogpenFields(JNIEnv *env, jobject lpObject, LOGPEN *lpLogpen, PLOGPEN_FID_CACHE lpLogpenFc);
/*
void getExtlogpenFields(JNIEnv *env, jobject lpObject, EXTLOGPEN *lpExtlogpen, PEXTLOGPEN_FID_CACHE lpExtlogpenFc);
void setExtlogpenFields(JNIEnv *env, jobject lpObject, EXTLOGPEN *lpExtlogpen, PEXTLOGPEN_FID_CACHE lpExtlogpenFc);
*/
void getLvcolumnFields(JNIEnv *env, jobject lpObject, LVCOLUMN *lpLvcolumn, PLVCOLUMN_FID_CACHE lpLvcolumnFc);
void setLvcolumnFields(JNIEnv *env, jobject lpObject, LVCOLUMN *lpLvcolumn, PLVCOLUMN_FID_CACHE lpLvcolumnFc);
void getLvhittestinfoFields(JNIEnv *env, jobject lpObject, LVHITTESTINFO *lpLvhittestinfo, PLVHITTESTINFO_FID_CACHE lpLvhittestinfoFc);
void setLvhittestinfoFields(JNIEnv *env, jobject lpObject, LVHITTESTINFO *lpLvhittestinfo, PLVHITTESTINFO_FID_CACHE lpLvhittestinfoFc);
void getLvitemFields(JNIEnv *env, jobject lpObject, LVITEM *lpLvitem, LVITEM_FID_CACHE *lpLvitemFc);
void setLvitemFields(JNIEnv *env, jobject lpObject, LVITEM *lpLvitem, LVITEM_FID_CACHE *lpLvitemFc);
void getMeasureitemstructFields(JNIEnv *env, jobject lpObject, MEASUREITEMSTRUCT *lpMeasureitemstruct, MEASUREITEMSTRUCT_FID_CACHE *lpMeasureitemstructFc);
void setMeasureitemstructFields(JNIEnv *env, jobject lpObject, MEASUREITEMSTRUCT *lpMeasureitemstruct, MEASUREITEMSTRUCT_FID_CACHE *lpMeasureitemstructFc);
#ifdef USE_2000_CALLS
void getMenuinfoFields(JNIEnv *env, jobject lpObject, MENUINFO *lpMenuinfo, MENUINFO_FID_CACHE *lpMenuinfoFc);
void setMenuinfoFields(JNIEnv *env, jobject lpObject, MENUINFO *lpMenuinfo, MENUINFO_FID_CACHE *lpMenuinfoFc);
#endif
void getMenuiteminfoFields(JNIEnv *env, jobject lpObject, MENUITEMINFO *lpMenuiteminfo, MENUITEMINFO_FID_CACHE *lpMenuiteminfoFc);
void setMenuiteminfoFields(JNIEnv *env, jobject lpObject, MENUITEMINFO *lpMenuiteminfo, MENUITEMINFO_FID_CACHE *lpMenuiteminfoFc);
void getMsgFields(JNIEnv *env, jobject lpObject, MSG *lpMsg, MSG_FID_CACHE *lpMsgFc);
void setMsgFields(JNIEnv *env, jobject lpObject, MSG *lpMsg, MSG_FID_CACHE *lpMsgFc);
void getMsgfilterFields(JNIEnv *env, jobject lpObject, MSGFILTER *lpMsgfilter, MSGFILTER_FID_CACHE *lpMsgfilterFc);
void setMsgfilterFields(JNIEnv *env, jobject lpObject, MSGFILTER *lpMsgfilter, MSGFILTER_FID_CACHE *lpMsgfilterFc);
void getNmhdrFields(JNIEnv *env, jobject lpObject, NMHDR *lpNmhdr, NMHDR_FID_CACHE *lpNmhdrFc);
void setNmhdrFields(JNIEnv *env, jobject lpObject, NMHDR *lpNmhdr, NMHDR_FID_CACHE *lpNmhdrFc);
void getNmheaderFields(JNIEnv *env, jobject lpObject, NMHEADER *lpNmheader, NMHEADER_FID_CACHE *lpNmheaderFc);
void setNmheaderFields(JNIEnv *env, jobject lpObject, NMHEADER *lpNmheader, NMHEADER_FID_CACHE *lpNmheaderFc);
void getNmlistviewFields(JNIEnv *env, jobject lpObject, NMLISTVIEW *lpNmlistview, NMLISTVIEW_FID_CACHE *lpNmlistviewFc);
void setNmlistviewFields(JNIEnv *env, jobject lpObject, NMLISTVIEW *lpNmlistview, NMLISTVIEW_FID_CACHE *lpNmlistviewFc);
void getNmtoolbarFields(JNIEnv *env, jobject lpObject, NMTOOLBAR *lpNmtoolbar, NMTOOLBAR_FID_CACHE *lpNmtoolbarFc);
void setNmtoolbarFields(JNIEnv *env, jobject lpObject, NMTOOLBAR *lpNmtoolbar, NMTOOLBAR_FID_CACHE *lpNmtoolbarFc);
void getNmttdispinfoFields(JNIEnv *env, jobject lpObject, NMTTDISPINFO *lpNmttdispinfo, NMTTDISPINFO_FID_CACHE *lpNmttdispinfoFc);
void setNmttdispinfoFields(JNIEnv *env, jobject lpObject, NMTTDISPINFO *lpNmttdispinfo, NMTTDISPINFO_FID_CACHE *lpNmttdispinfoFc);
void getNmtvcustomdrawFields(JNIEnv *env, jobject lpObject, NMTVCUSTOMDRAW *lpNmtvcustomdraw, NMTVCUSTOMDRAW_FID_CACHE *lpNmtvcustomdrawFc);
void setNmtvcustomdrawFields(JNIEnv *env, jobject lpObject, NMTVCUSTOMDRAW *lpNmtvcustomdraw, NMTVCUSTOMDRAW_FID_CACHE *lpNmtvcustomdrawFc);
void getOpenfilenameFields(JNIEnv *env, jobject lpObject, OPENFILENAME *lpOpenfilename, OPENFILENAME_FID_CACHE *lpOpenfilenameFc);
void setOpenfilenameFields(JNIEnv *env, jobject lpObject, OPENFILENAME *lpOpenfilename, OPENFILENAME_FID_CACHE *lpOpenfilenameFc);
void getPagesetupdlgFields(JNIEnv *env, jobject lpObject, PAGESETUPDLG *lpPagesetupdlg, PAGESETUPDLG_FID_CACHE *lpPagesetupdlgFc);
void setPagesetupdlgFields(JNIEnv *env, jobject lpObject, PAGESETUPDLG *lpPagesetupdlg, PAGESETUPDLG_FID_CACHE *lpPagesetupdlgFc);
void getPaintstructFields(JNIEnv *env, jobject lpObject, PAINTSTRUCT *lpPaint, PAINTSTRUCT_FID_CACHE *lpPaintFc);
void setPaintstructFields(JNIEnv *env, jobject lpObject, PAINTSTRUCT *lpPaint, PAINTSTRUCT_FID_CACHE *lpPaintFc);
/*
void getParaformatFields(JNIEnv *env, jobject lpObject, PARAFORMAT *lpParaformat, PARAFORMAT_FID_CACHE *lpParaformatFc);
void setParaformatFields(JNIEnv *env, jobject lpObject, PARAFORMAT *lpParaformat, PARAFORMAT_FID_CACHE *lpParaformatFc);
*/
void getPointFields(JNIEnv *env, jobject lpObject, POINT *lpPoint, PPOINT_FID_CACHE lpPointFc);
void setPointFields(JNIEnv *env, jobject lpObject, POINT *lpPoint, PPOINT_FID_CACHE lpPointFc);
void getPrintdlgFields(JNIEnv *env, jobject lpObject, PRINTDLG *lpPrintdlg, PRINTDLG_FID_CACHE *lpPrintdlgFc);
void setPrintdlgFields(JNIEnv *env, jobject lpObject, PRINTDLG *lpPrintdlg, PRINTDLG_FID_CACHE *lpPrintdlgFc);
void getRebarbandinfoFields(JNIEnv *env, jobject lpObject, REBARBANDINFO *lpRebarbandinfo, REBARBANDINFO_FID_CACHE *lpRebarbandinfoFc);
void setRebarbandinfoFields(JNIEnv *env, jobject lpObject, REBARBANDINFO *lpRebarbandinfo, REBARBANDINFO_FID_CACHE *lpRebarbandinfoFc);
void getRectFields(JNIEnv *env, jobject lpObject, RECT *lpRect, PRECT_FID_CACHE lpRectFc);
void setRectFields(JNIEnv *env, jobject lpObject, RECT *lpRect, PRECT_FID_CACHE lpRectFc);
void getScrollinfoFields(JNIEnv *env, jobject lpObject, SCROLLINFO *lpScrollinfo, SCROLLINFO_FID_CACHE *lpScrollinfoFc);
void setScrollinfoFields(JNIEnv *env, jobject lpObject, SCROLLINFO *lpScrollinfo, SCROLLINFO_FID_CACHE *lpScrollinfoFc);
void getSizeFields(JNIEnv *env, jobject lpObject, SIZE *lpSize, SIZE_FID_CACHE *lpSizeFc);
void setSizeFields(JNIEnv *env, jobject lpObject, SIZE *lpSize, SIZE_FID_CACHE *lpSizeFc);
void getTbbuttonFields(JNIEnv *env, jobject lpObject, TBBUTTON *lpTbbutton, TBBUTTON_FID_CACHE *lpTbbuttonFc);
void setTbbuttonFields(JNIEnv *env, jobject lpObject, TBBUTTON *lpTbbutton, TBBUTTON_FID_CACHE *lpTbbuttonFc);
void getTbbuttoninfoFields(JNIEnv *env, jobject lpObject, TBBUTTONINFO *lpTbbuttoninfo, TBBUTTONINFO_FID_CACHE *lpTbbuttoninfoFc);
void setTbbuttoninfoFields(JNIEnv *env, jobject lpObject, TBBUTTONINFO *lpTbbuttoninfo, TBBUTTONINFO_FID_CACHE *lpTbbuttoninfoFc);
void getTcitemFields(JNIEnv *env, jobject lpObject, TCITEM *lpTcitem, TCITEM_FID_CACHE *lpTcitemFc);
void setTcitemFields(JNIEnv *env, jobject lpObject, TCITEM *lpTcitem, TCITEM_FID_CACHE *lpTcitemFc);
void getTextmetricFields(JNIEnv *env, jobject lpObject, TEXTMETRIC *lpTextmetric, TEXTMETRIC_FID_CACHE *lpTextmetricFc);
void setTextmetricFields(JNIEnv *env, jobject lpObject, TEXTMETRIC *lpTextmetric, TEXTMETRIC_FID_CACHE *lpTextmetricFc);
void getToolinfoFields(JNIEnv *env, jobject lpObject, TOOLINFO *lpToolinfo, TOOLINFO_FID_CACHE *lpToolinfoFc);
void setToolinfoFields(JNIEnv *env, jobject lpObject, TOOLINFO *lpToolinfo, TOOLINFO_FID_CACHE *lpToolinfoFc);
void getTrackmouseeventFields(JNIEnv *env, jobject lpObject, TRACKMOUSEEVENT *lpTrackmouseevent, TRACKMOUSEEVENT_FID_CACHE *lpTrackmouseeventFc);
void setTrackmouseeventFields(JNIEnv *env, jobject lpObject, TRACKMOUSEEVENT *lpTrackmouseevent, TRACKMOUSEEVENT_FID_CACHE *lpTrackmouseeventFc);
void getTvhittestinfoFields(JNIEnv *env, jobject lpObject, TVHITTESTINFO *lpTvhittestinfo, TVHITTESTINFO_FID_CACHE *lpTvhittestinfoFc);
void setTvhittestinfoFields(JNIEnv *env, jobject lpObject, TVHITTESTINFO *lpTvhittestinfo, TVHITTESTINFO_FID_CACHE *lpTvhittestinfoFc);
void getTvinsertstructFields(JNIEnv *env, jobject lpObject, TVINSERTSTRUCT *lpTvinsertstruct, TVINSERTSTRUCT_FID_CACHE *lpTvinsertstructFc);
void setTvinsertstructFields(JNIEnv *env, jobject lpObject, TVINSERTSTRUCT *lpTvinsertstruct, TVINSERTSTRUCT_FID_CACHE *lpTvinsertstructFc);
void getTvitemFields(JNIEnv *env, jobject lpObject, TVITEM *lpTvitem, TVITEM_FID_CACHE *lpTvitemFc);
void setTvitemFields(JNIEnv *env, jobject lpObject, TVITEM *lpTvitem, TVITEM_FID_CACHE *lpTvitemFc);
void getWindowplacementFields(JNIEnv *env, jobject lpObject, WINDOWPLACEMENT *lpWindowplacement, WINDOWPLACEMENT_FID_CACHE *lpWindowplacementFc);
void setWindowplacementFields(JNIEnv *env, jobject lpObject, WINDOWPLACEMENT *lpWindowplacement, WINDOWPLACEMENT_FID_CACHE *lpWindowplacementFc);
void getWindowposFields(JNIEnv *env, jobject lpObject, WINDOWPOS *lpWindowpos, WINDOWPOS_FID_CACHE *lpWindowposFc);
void setWindowposFields(JNIEnv *env, jobject lpObject, WINDOWPOS *lpWindowpos, WINDOWPOS_FID_CACHE *lpWindowposFc);
void getWndclassexFields(JNIEnv *env, jobject lpObject, WNDCLASSEX *lpWndclassex, WNDCLASSEX_FID_CACHE *lpWndclassexFc);
void setWndclassexFields(JNIEnv *env, jobject lpObject, WNDCLASSEX *lpWndclassex, WNDCLASSEX_FID_CACHE *lpWndclassexFc);
/*
void getShfileinfoFields(JNIEnv *env, jobject lpObject, SHFILEINFO *lpShfileinfo, SHFILEINFO_FID_CACHE *lpShfileinfoFc);
void setShfileinfoFields(JNIEnv *env, jobject lpObject, SHFILEINFO *lpShfileinfo, SHFILEINFO_FID_CACHE *lpShfileinfoFc);
*/

/* ----------- ole/activex getter and setter prototypes  ----------- */
void getCauuidFields(JNIEnv *env, jobject lpObject, CAUUID *lpCauuid, CAUUID_FID_CACHE *lpCauuidFc);
void setCauuidFields(JNIEnv *env, jobject lpObject, CAUUID *lpCauuid, CAUUID_FID_CACHE *lpCauuidFc);
void getControlinfoFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpControlinfo, CONTROLINFO_FID_CACHE *lpControlinfoFc);
void setControlinfoFields(JNIEnv *env, jobject lpObject, CONTROLINFO *lpControlinfo, CONTROLINFO_FID_CACHE *lpControlinfoFc);
void getCoserverinfoFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpCoserverinfo, COSERVERINFO_FID_CACHE *lpCoserverinfoFc);
void setCoserverinfoFields(JNIEnv *env, jobject lpObject, COSERVERINFO *lpCoserverinfo, COSERVERINFO_FID_CACHE *lpCoserverinfoFc);
void getDispparamsFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpDispparams, DISPPARAMS_FID_CACHE *lpDispparamsFc);
void setDispparamsFields(JNIEnv *env, jobject lpObject, DISPPARAMS *lpDispparams, DISPPARAMS_FID_CACHE *lpDispparamsFc);
void getDropfilesFields(JNIEnv *env, jobject lpObject, DROPFILES *lpDropfiles, DROPFILES_FID_CACHE *lpDropfilesFc);
void setDropfilesFields(JNIEnv *env, jobject lpObject, DROPFILES *lpDropfiles, DROPFILES_FID_CACHE *lpDropfilesFc);
void getDvaspectinfoFields(JNIEnv *env, jobject lpObject, DVASPECTINFO *lpDvaspectinfo, DVASPECTINFO_FID_CACHE *lpDvaspectinfoFc);
void setDvaspectinfoFields(JNIEnv *env, jobject lpObject, DVASPECTINFO *lpDvaspectinfo, DVASPECTINFO_FID_CACHE *lpDvaspectinfoFc);
void getDvtargetdeviceFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpDvtargetdevice, DVTARGETDEVICE_FID_CACHE *lpDvtargetdeviceFc);
void setDvtargetdeviceFields(JNIEnv *env, jobject lpObject, DVTARGETDEVICE *lpDvtargetdevice, DVTARGETDEVICE_FID_CACHE *lpDvtargetdeviceFc);
void getExcepinfoFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpExcepinfo, EXCEPINFO_FID_CACHE *lpExcepinfoFc);
void setExcepinfoFields(JNIEnv *env, jobject lpObject, EXCEPINFO *lpExcepinfo, EXCEPINFO_FID_CACHE *lpExcepinfoFc);
void getFiletimeFields(JNIEnv *env, jobject lpObject, FILETIME *lpFiletime, FILETIME_FID_CACHE *lpFiletimeFc);
void setFiletimeFields(JNIEnv *env, jobject lpObject, FILETIME *lpFiletime, FILETIME_FID_CACHE *lpFiletimeFc);
void getFormatetcFields(JNIEnv *env, jobject lpObject, FORMATETC *lpFormatetc, FORMATETC_FID_CACHE *lpFormatetcFc);
void setFormatetcFields(JNIEnv *env, jobject lpObject, FORMATETC *lpFormatetc, FORMATETC_FID_CACHE *lpFormatetcFc);
void getGuidFields(JNIEnv *env, jobject lpObject, GUID *lpGuid, GUID_FID_CACHE *lpGuidFc);
void setGuidFields(JNIEnv *env, jobject lpObject, GUID *lpGuid, GUID_FID_CACHE *lpGuidFc);
void getIdldescFields(JNIEnv *env, jobject lpObject, IDLDESC *lpIdldesc, IDLDESC_FID_CACHE *lpIdldescFc);
void setIdldescFields(JNIEnv *env, jobject lpObject, IDLDESC *lpIdldesc, IDLDESC_FID_CACHE *lpIdldescFc);
void getLicinfoFields(JNIEnv *env, jobject lpObject, LICINFO *lpLicinfo, LICINFO_FID_CACHE *lpLicinfoFc);
void setLicinfoFields(JNIEnv *env, jobject lpObject, LICINFO *lpLicinfo, LICINFO_FID_CACHE *lpLicinfoFc);
void getMulti_qiFields(JNIEnv *env, jobject lpObject, MULTI_QI *lpMulti_qi, MULTI_QI_FID_CACHE *lpMulti_qiFc);
void setMulti_qiFields(JNIEnv *env, jobject lpObject, MULTI_QI *lpMulti_qi, MULTI_QI_FID_CACHE *lpMulti_qiFc);
void getOlecmdFields(JNIEnv *env, jobject lpObject, OLECMD *lpOlecmd, OLECMD_FID_CACHE *lpOlecmdFc);
void setOlecmdFields(JNIEnv *env, jobject lpObject, OLECMD *lpOlecmd, OLECMD_FID_CACHE *lpOlecmdFc);
void getOlecmdtextFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpOlecmdtext, OLECMDTEXT_FID_CACHE *lpOlecmdtextFc);
void setOlecmdtextFields(JNIEnv *env, jobject lpObject, OLECMDTEXT *lpOlecmdtext, OLECMDTEXT_FID_CACHE *lpOlecmdtextFc);
void getOleinplaceframeinfoFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpOleinplaceframeinfo, OLEINPLACEFRAMEINFO_FID_CACHE *lpOleinplaceframeinfoFc);
void setOleinplaceframeinfoFields(JNIEnv *env, jobject lpObject, OLEINPLACEFRAMEINFO *lpOleinplaceframeinfo, OLEINPLACEFRAMEINFO_FID_CACHE *lpOleinplaceframeinfoFc);
void getOleverbFields(JNIEnv *env, jobject lpObject, OLEVERB *lpOleverb, OLEVERB_FID_CACHE *lpOleverbFc);
void setOleverbFields(JNIEnv *env, jobject lpObject, OLEVERB *lpOleverb, OLEVERB_FID_CACHE *lpOleverbFc);
void getStgmediumFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStgmedium, STGMEDIUM_FID_CACHE *lpStgmediumFc);
void setStgmediumFields(JNIEnv *env, jobject lpObject, STGMEDIUM *lpStgmedium, STGMEDIUM_FID_CACHE *lpStgmediumFc);
void getStatstgFields(JNIEnv *env, jobject lpObject, STATSTG *lpStatstg, STATSTG_FID_CACHE *lpStatstgFc);
void setStatstgFields(JNIEnv *env, jobject lpObject, STATSTG *lpStatstg, STATSTG_FID_CACHE *lpStatstgFc);
void getTypeattrFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpTypeattr, TYPEATTR_FID_CACHE *lpTypeattrFc);
void setTypeattrFields(JNIEnv *env, jobject lpObject, TYPEATTR *lpTypeattr, TYPEATTR_FID_CACHE *lpTypeattrFc);
void getTypedescFields(JNIEnv *env, jobject lpObject, TYPEDESC *lpTypedesc, TYPEDESC_FID_CACHE *lpTypedescFc);
void setTypedescFields(JNIEnv *env, jobject lpObject, TYPEDESC *lpTypedesc, TYPEDESC_FID_CACHE *lpTypedescFc);
void getFuncdesc1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpFuncdesc, FUNCDESC1_FID_CACHE *lpFuncdescFc);
void setFuncdesc1Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpFuncdesc, FUNCDESC1_FID_CACHE *lpFuncdescFc);
void getFuncdesc2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpFuncdesc, FUNCDESC2_FID_CACHE *lpFuncdescFc);
void setFuncdesc2Fields(JNIEnv *env, jobject lpObject, FUNCDESC *lpFuncdesc, FUNCDESC2_FID_CACHE *lpFuncdescFc);
void getVardesc1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpVardesc, VARDESC1_FID_CACHE *lpVardescFc);
void setVardesc1Fields(JNIEnv *env, jobject lpObject, VARDESC *lpVardesc, VARDESC1_FID_CACHE *lpVardescFc);
void getVardesc2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpVardesc, VARDESC2_FID_CACHE *lpVardescFc);
void setVardesc2Fields(JNIEnv *env, jobject lpObject, VARDESC *lpVardesc, VARDESC2_FID_CACHE *lpVardescFc);


#endif // INC_structs_H