-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathwindows.lua
executable file
·1547 lines (1547 loc) · 72.1 KB
/
windows.lua
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
require( 'ffi/winapi/headers/common' )
require( 'ffi/winapi/headers/ntstatus' )
require( 'ffi/winapi/internal/internal' )
local ffi = require( 'ffi' )
ffi.cdef [[
typedef HMODULE HINSTANCE; //Alias
typedef UINT_PTR WPARAM; //Alias
typedef LONG_PTR LPARAM; //Alias
typedef LONG_PTR LRESULT; //Alias
typedef WORD LANGID; //Alias
typedef WCHAR* BSTR; //Alias
typedef PVOID HDEVINFO; //Alias
typedef LPVOID PIO_APC_ROUTINE; //Alias
typedef LPVOID FARPROC; //Alias
typedef void SID; //Alias
typedef PVOID PSID; //Alias
typedef LPVOID PVECTORED_EXCEPTION_HANDLER; //Alias
typedef WORD ATOM; //Alias
typedef LPVOID PSLIST_ENTRY; //Alias
typedef ULONG_PTR KAFFINITY; //Alias
typedef VOID STDAPI__VOID_; //Alias
enum { OFS_MAXPATHNAME = 128 };
enum { CCHDEVICENAME = 32 };
enum { CCHFORMNAME = 32 };
enum { RAS_MaxEntryName_plus_1 = 257 };
enum { EXCEPTION_MAXIMUM_PARAMETERS = 15 };
typedef ULONG_PTR SCARDCONTEXT; //Alias
typedef SCARDCONTEXT *LPSCARDCONTEXT; //Pointer
typedef ULONG_PTR SCARDHANDLE; //Alias
typedef SCARDHANDLE *LPSCARDHANDLE; //Pointer
typedef void* IAddrBook; //Interface
typedef IAddrBook* LPADRBOOK; //Alias
typedef DWORD WLAN_REASON_CODE; //Alias
typedef WLAN_REASON_CODE *PWLAN_REASON_CODE; //Pointer
typedef void* IUnknown; //Interface
typedef IUnknown* LPUNKNOWN; //Alias
typedef DWORD LCID; //Alias
static const LCID LOCALE_SYSTEM_DEFAULT = 0x0800;
static const LCID LOCALE_USER_DEFAULT = 0x0400;
static const LCID LOCALE_CUSTOM_DEFAULT = 0x0c00;
static const LCID LOCALE_CUSTOM_UNSPECIFIED = 0x1000;
static const LCID LOCALE_CUSTOM_UI_DEFAULT = 0x1400;
static const LCID LOCALE_NEUTRAL = 0x0000;
static const LCID LOCALE_INVARIANT = 0x007f;
typedef LCID *PLCID; //Pointer
typedef struct LIST_ENTRY {
LPVOID Flink;
LPVOID Blink;
} LIST_ENTRY;
typedef LIST_ENTRY *PLIST_ENTRY; //Pointer
typedef LPVOID PSLIST_HEADER; //Alias
typedef LPVOID PCONTEXT; //Alias
typedef struct POINT {
LONG x;
LONG y;
} POINT;
typedef POINT* LPPOINT; //Alias
typedef POINT POINTL; //Alias
typedef short WINAPI_DMORIENT; //Alias
static const WINAPI_DMORIENT DMORIENT_PORTRAIT = 1;
static const WINAPI_DMORIENT DMORIENT_LANDSCAPE = 2;
typedef short WINAPI_DMPAPER; //Alias
static const WINAPI_DMPAPER DMPAPER_LETTER = 1;
static const WINAPI_DMPAPER DMPAPER_LETTERSMALL = 2;
static const WINAPI_DMPAPER DMPAPER_TABLOID = 3;
static const WINAPI_DMPAPER DMPAPER_LEDGER = 4;
static const WINAPI_DMPAPER DMPAPER_LEGAL = 5;
static const WINAPI_DMPAPER DMPAPER_STATEMENT = 6;
static const WINAPI_DMPAPER DMPAPER_EXECUTIVE = 7;
static const WINAPI_DMPAPER DMPAPER_A3 = 8;
static const WINAPI_DMPAPER DMPAPER_A4 = 9;
static const WINAPI_DMPAPER DMPAPER_A4SMALL = 10;
static const WINAPI_DMPAPER DMPAPER_A5 = 11;
static const WINAPI_DMPAPER DMPAPER_B4 = 12;
static const WINAPI_DMPAPER DMPAPER_B5 = 13;
static const WINAPI_DMPAPER DMPAPER_FOLIO = 14;
static const WINAPI_DMPAPER DMPAPER_QUARTO = 15;
static const WINAPI_DMPAPER DMPAPER_10X14 = 16;
static const WINAPI_DMPAPER DMPAPER_11X17 = 17;
static const WINAPI_DMPAPER DMPAPER_NOTE = 18;
static const WINAPI_DMPAPER DMPAPER_ENV_9 = 19;
static const WINAPI_DMPAPER DMPAPER_ENV_10 = 20;
static const WINAPI_DMPAPER DMPAPER_ENV_11 = 21;
static const WINAPI_DMPAPER DMPAPER_ENV_12 = 22;
static const WINAPI_DMPAPER DMPAPER_ENV_14 = 23;
static const WINAPI_DMPAPER DMPAPER_CSHEET = 24;
static const WINAPI_DMPAPER DMPAPER_DSHEET = 25;
static const WINAPI_DMPAPER DMPAPER_ESHEET = 26;
static const WINAPI_DMPAPER DMPAPER_ENV_DL = 27;
static const WINAPI_DMPAPER DMPAPER_ENV_C5 = 28;
static const WINAPI_DMPAPER DMPAPER_ENV_C3 = 29;
static const WINAPI_DMPAPER DMPAPER_ENV_C4 = 30;
static const WINAPI_DMPAPER DMPAPER_ENV_C6 = 31;
static const WINAPI_DMPAPER DMPAPER_ENV_C65 = 32;
static const WINAPI_DMPAPER DMPAPER_ENV_B4 = 33;
static const WINAPI_DMPAPER DMPAPER_ENV_B5 = 34;
static const WINAPI_DMPAPER DMPAPER_ENV_B6 = 35;
static const WINAPI_DMPAPER DMPAPER_ENV_ITALY = 36;
static const WINAPI_DMPAPER DMPAPER_ENV_MONARCH = 37;
static const WINAPI_DMPAPER DMPAPER_ENV_PERSONAL = 38;
static const WINAPI_DMPAPER DMPAPER_FANFOLD_US = 39;
static const WINAPI_DMPAPER DMPAPER_FANFOLD_STD_GERMAN = 40;
static const WINAPI_DMPAPER DMPAPER_FANFOLD_LGL_GERMAN = 41;
static const WINAPI_DMPAPER DMPAPER_ISO_B4 = 42;
static const WINAPI_DMPAPER DMPAPER_JAPANESE_POSTCARD = 43;
static const WINAPI_DMPAPER DMPAPER_9X11 = 44;
static const WINAPI_DMPAPER DMPAPER_10X11 = 45;
static const WINAPI_DMPAPER DMPAPER_15X11 = 46;
static const WINAPI_DMPAPER DMPAPER_ENV_INVITE = 47;
static const WINAPI_DMPAPER DMPAPER_RESERVED_48 = 48;
static const WINAPI_DMPAPER DMPAPER_RESERVED_49 = 49;
static const WINAPI_DMPAPER DMPAPER_LETTER_EXTRA = 50;
static const WINAPI_DMPAPER DMPAPER_LEGAL_EXTRA = 51;
static const WINAPI_DMPAPER DMPAPER_TABLOID_EXTRA = 52;
static const WINAPI_DMPAPER DMPAPER_A4_EXTRA = 53;
static const WINAPI_DMPAPER DMPAPER_LETTER_TRANSVERSE = 54;
static const WINAPI_DMPAPER DMPAPER_A4_TRANSVERSE = 55;
static const WINAPI_DMPAPER DMPAPER_LETTER_EXTRA_TRANSVERSE = 56;
static const WINAPI_DMPAPER DMPAPER_A_PLUS = 57;
static const WINAPI_DMPAPER DMPAPER_B_PLUS = 58;
static const WINAPI_DMPAPER DMPAPER_LETTER_PLUS = 59;
static const WINAPI_DMPAPER DMPAPER_A4_PLUS = 60;
static const WINAPI_DMPAPER DMPAPER_A5_TRANSVERSE = 61;
static const WINAPI_DMPAPER DMPAPER_B5_TRANSVERSE = 62;
static const WINAPI_DMPAPER DMPAPER_A3_EXTRA = 63;
static const WINAPI_DMPAPER DMPAPER_A5_EXTRA = 64;
static const WINAPI_DMPAPER DMPAPER_B5_EXTRA = 65;
static const WINAPI_DMPAPER DMPAPER_A2 = 66;
static const WINAPI_DMPAPER DMPAPER_A3_TRANSVERSE = 67;
static const WINAPI_DMPAPER DMPAPER_A3_EXTRA_TRANSVERSE = 68;
static const WINAPI_DMPAPER DMPAPER_DBL_JAPANESE_POSTCARD = 69;
static const WINAPI_DMPAPER DMPAPER_A6 = 70;
static const WINAPI_DMPAPER DMPAPER_JENV_KAKU2 = 71;
static const WINAPI_DMPAPER DMPAPER_JENV_KAKU3 = 72;
static const WINAPI_DMPAPER DMPAPER_JENV_CHOU3 = 73;
static const WINAPI_DMPAPER DMPAPER_JENV_CHOU4 = 74;
static const WINAPI_DMPAPER DMPAPER_LETTER_ROTATED = 75;
static const WINAPI_DMPAPER DMPAPER_A3_ROTATED = 76;
static const WINAPI_DMPAPER DMPAPER_A4_ROTATED = 77;
static const WINAPI_DMPAPER DMPAPER_A5_ROTATED = 78;
static const WINAPI_DMPAPER DMPAPER_B4_JIS_ROTATED = 79;
static const WINAPI_DMPAPER DMPAPER_B5_JIS_ROTATED = 80;
static const WINAPI_DMPAPER DMPAPER_JAPANESE_POSTCARD_ROTATED = 81;
static const WINAPI_DMPAPER DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82;
static const WINAPI_DMPAPER DMPAPER_A6_ROTATED = 83;
static const WINAPI_DMPAPER DMPAPER_JENV_KAKU2_ROTATED = 84;
static const WINAPI_DMPAPER DMPAPER_JENV_KAKU3_ROTATED = 85;
static const WINAPI_DMPAPER DMPAPER_JENV_CHOU3_ROTATED = 86;
static const WINAPI_DMPAPER DMPAPER_JENV_CHOU4_ROTATED = 87;
static const WINAPI_DMPAPER DMPAPER_B6_JIS = 88;
static const WINAPI_DMPAPER DMPAPER_B6_JIS_ROTATED = 89;
static const WINAPI_DMPAPER DMPAPER_12X11 = 90;
static const WINAPI_DMPAPER DMPAPER_JENV_YOU4 = 91;
static const WINAPI_DMPAPER DMPAPER_JENV_YOU4_ROTATED = 92;
static const WINAPI_DMPAPER DMPAPER_P16K = 93;
static const WINAPI_DMPAPER DMPAPER_P32K = 94;
static const WINAPI_DMPAPER DMPAPER_P32KBIG = 95;
static const WINAPI_DMPAPER DMPAPER_PENV_1 = 96;
static const WINAPI_DMPAPER DMPAPER_PENV_2 = 97;
static const WINAPI_DMPAPER DMPAPER_PENV_3 = 98;
static const WINAPI_DMPAPER DMPAPER_PENV_4 = 99;
static const WINAPI_DMPAPER DMPAPER_PENV_5 = 100;
static const WINAPI_DMPAPER DMPAPER_PENV_6 = 101;
static const WINAPI_DMPAPER DMPAPER_PENV_7 = 102;
static const WINAPI_DMPAPER DMPAPER_PENV_8 = 103;
static const WINAPI_DMPAPER DMPAPER_PENV_9 = 104;
static const WINAPI_DMPAPER DMPAPER_PENV_10 = 105;
static const WINAPI_DMPAPER DMPAPER_P16K_ROTATED = 106;
static const WINAPI_DMPAPER DMPAPER_P32K_ROTATED = 107;
static const WINAPI_DMPAPER DMPAPER_P32KBIG_ROTATED = 108;
static const WINAPI_DMPAPER DMPAPER_PENV_1_ROTATED = 109;
static const WINAPI_DMPAPER DMPAPER_PENV_2_ROTATED = 110;
static const WINAPI_DMPAPER DMPAPER_PENV_3_ROTATED = 111;
static const WINAPI_DMPAPER DMPAPER_PENV_4_ROTATED = 112;
static const WINAPI_DMPAPER DMPAPER_PENV_5_ROTATED = 113;
static const WINAPI_DMPAPER DMPAPER_PENV_6_ROTATED = 114;
static const WINAPI_DMPAPER DMPAPER_PENV_7_ROTATED = 115;
static const WINAPI_DMPAPER DMPAPER_PENV_8_ROTATED = 116;
static const WINAPI_DMPAPER DMPAPER_PENV_9_ROTATED = 117;
static const WINAPI_DMPAPER DMPAPER_PENV_10_ROTATED = 118;
typedef short WINAPI_DMBIN; //Alias
static const WINAPI_DMBIN DMBIN_UPPER = 1;
static const WINAPI_DMBIN DMBIN_LOWER = 2;
static const WINAPI_DMBIN DMBIN_MIDDLE = 3;
static const WINAPI_DMBIN DMBIN_MANUAL = 4;
static const WINAPI_DMBIN DMBIN_ENVELOPE = 5;
static const WINAPI_DMBIN DMBIN_ENVMANUAL = 6;
static const WINAPI_DMBIN DMBIN_AUTO = 7;
static const WINAPI_DMBIN DMBIN_TRACTOR = 8;
static const WINAPI_DMBIN DMBIN_SMALLFMT = 9;
static const WINAPI_DMBIN DMBIN_LARGEFMT = 10;
static const WINAPI_DMBIN DMBIN_LARGECAPACITY = 11;
static const WINAPI_DMBIN DMBIN_CASSETTE = 14;
static const WINAPI_DMBIN DMBIN_FORMSOURCE = 15;
typedef short WINAPI_DMRES; //Alias
static const WINAPI_DMRES DMRES_DRAFT = -1;
static const WINAPI_DMRES DMRES_LOW = -2;
static const WINAPI_DMRES DMRES_MEDIUM = -3;
static const WINAPI_DMRES DMRES_HIGH = -4;
typedef struct WINAPI_DEVMODE_u1_s1 {
WINAPI_DMORIENT dmOrientation;
WINAPI_DMPAPER dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
short dmScale;
short dmCopies;
WINAPI_DMBIN dmDefaultSource;
WINAPI_DMRES dmPrintQuality;
} WINAPI_DEVMODE_u1_s1;
typedef DWORD WINAPI_DMDO; //Alias
static const WINAPI_DMDO DMDO_DEFAULT = 0;
static const WINAPI_DMDO DMDO_90 = 1;
static const WINAPI_DMDO DMDO_180 = 2;
static const WINAPI_DMDO DMDO_270 = 3;
typedef DWORD WINAPI_DMDFO; //Alias
static const WINAPI_DMDFO DMDFO_DEFAULT = 0;
static const WINAPI_DMDFO DMDFO_STRETCH = 1;
static const WINAPI_DMDFO DMDFO_CENTER = 2;
typedef struct WINAPI_DEVMODE_u1_s2 {
POINTL dmPosition;
WINAPI_DMDO dmDisplayOrientation;
WINAPI_DMDFO dmDisplayFixedOutput;
} WINAPI_DEVMODE_u1_s2;
typedef union WINAPI_DEVMODE_u1 {
WINAPI_DEVMODE_u1_s1 ;
WINAPI_DEVMODE_u1_s2 ;
} WINAPI_DEVMODE_u1;
typedef DWORD WINAPI_DMDISPLAYFLAGS; //Alias
typedef DWORD WINAPI_DMNUP; //Alias
static const WINAPI_DMNUP DMNUP_SYSTEM = 1;
static const WINAPI_DMNUP DMNUP_ONEUP = 2;
typedef union WINAPI_DEVMODE_u2 {
WINAPI_DMDISPLAYFLAGS dmDisplayFlags;
WINAPI_DMNUP dmNup;
} WINAPI_DEVMODE_u2;
typedef DWORD WINAPI_DM_Fields; //Alias
typedef short WINAPI_DMCOLOR; //Alias
static const WINAPI_DMCOLOR DMCOLOR_MONOCHROME = 1;
static const WINAPI_DMCOLOR DMCOLOR_COLOR = 2;
typedef short WINAPI_DMDUP; //Alias
static const WINAPI_DMDUP DMDUP_SIMPLEX = 1;
static const WINAPI_DMDUP DMDUP_VERTICAL = 2;
static const WINAPI_DMDUP DMDUP_HORIZONTAL = 3;
typedef short WINAPI_DMTT; //Alias
static const WINAPI_DMTT DMTT_BITMAP = 1;
static const WINAPI_DMTT DMTT_DOWNLOAD = 2;
static const WINAPI_DMTT DMTT_SUBDEV = 3;
static const WINAPI_DMTT DMTT_DOWNLOAD_OUTLINE = 4;
typedef short WINAPI_DMCOLLATE; //Alias
static const WINAPI_DMCOLLATE DMCOLLATE_FALSE = 0;
static const WINAPI_DMCOLLATE DMCOLLATE_TRUE = 1;
typedef DWORD WINAPI_DMICMMETHOD; //Alias
static const WINAPI_DMICMMETHOD DMICMMETHOD_NONE = 1;
static const WINAPI_DMICMMETHOD DMICMMETHOD_SYSTEM = 2;
static const WINAPI_DMICMMETHOD DMICMMETHOD_DRIVER = 3;
static const WINAPI_DMICMMETHOD DMICMMETHOD_DEVICE = 4;
typedef DWORD WINAPI_DMICM; //Alias
static const WINAPI_DMICM DMICM_SATURATE = 1;
static const WINAPI_DMICM DMICM_CONTRAST = 2;
static const WINAPI_DMICM DMICM_COLORIMETRIC = 3;
static const WINAPI_DMICM DMICM_ABS_COLORIMETRIC = 4;
typedef DWORD WINAPI_DMMEDIA; //Alias
static const WINAPI_DMMEDIA DMMEDIA_STANDARD = 1;
static const WINAPI_DMMEDIA DMMEDIA_TRANSPARENCY = 2;
static const WINAPI_DMMEDIA DMMEDIA_GLOSSY = 3;
typedef DWORD WINAPI_DMDITHER; //Alias
static const WINAPI_DMDITHER DMDITHER_NONE = 1;
static const WINAPI_DMDITHER DMDITHER_COARSE = 2;
static const WINAPI_DMDITHER DMDITHER_FINE = 3;
static const WINAPI_DMDITHER DMDITHER_LINEART = 4;
static const WINAPI_DMDITHER DMDITHER_ERRORDIFFUSION = 5;
static const WINAPI_DMDITHER DMDITHER_RESERVED6 = 6;
static const WINAPI_DMDITHER DMDITHER_RESERVED7 = 7;
static const WINAPI_DMDITHER DMDITHER_RESERVED8 = 8;
static const WINAPI_DMDITHER DMDITHER_RESERVED9 = 9;
static const WINAPI_DMDITHER DMDITHER_GRAYSCALE = 10;
typedef struct DEVMODE {
TCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
WINAPI_DM_Fields dmFields;
WINAPI_DEVMODE_u1 ;
WINAPI_DMCOLOR dmColor;
WINAPI_DMDUP dmDuplex;
short dmYResolution;
WINAPI_DMTT dmTTOption;
WINAPI_DMCOLLATE dmCollate;
TCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
WINAPI_DEVMODE_u2 ;
DWORD dmDisplayFrequency;
WINAPI_DMICMMETHOD dmICMMethod;
WINAPI_DMICM dmICMIntent;
WINAPI_DMMEDIA dmMediaType;
WINAPI_DMDITHER dmDitherType;
DWORD dmReserved1;
DWORD dmReserved2;
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} DEVMODE;
typedef DEVMODE *LPDEVMODE; //Pointer
typedef DEVMODE *PDEVMODE; //Pointer
typedef UINT_PTR HANDLE; //Alias
static const HANDLE NULL = 0;
typedef HANDLE *PHANDLE; //Pointer
typedef HANDLE *LPHANDLE; //Pointer
typedef HANDLE WINAPI_FILE_HANDLE; //Alias
typedef HANDLE HACCEL; //Alias
typedef HANDLE HRSRC; //Alias
typedef HANDLE HWND; //Alias
typedef HANDLE HGLOBAL; //Alias
typedef HANDLE HKL; //Alias
typedef HANDLE HBITMAP; //Alias
typedef HANDLE HENHMETAFILE; //Alias
typedef HANDLE WINAPI_ProcessHandle; //Alias
static const WINAPI_ProcessHandle GetCurrentProcess_func_ = -1;
typedef HANDLE WINAPI_ThreadHandle; //Alias
static const WINAPI_ThreadHandle GetCurrentThread_func_ = -2;
typedef int32_t HRESULT; //Integer
static const HRESULT S_OK = 0;
static const HRESULT S_FALSE = 1;
static const HRESULT E_ABORT = 0x80004004;
static const HRESULT E_ACCESSDENIED = 0x80070005;
static const HRESULT E_FAIL = 0x80004005;
static const HRESULT E_HANDLE = 0x80070006;
static const HRESULT E_INVALIDARG = 0x80070057;
static const HRESULT E_NOINTERFACE = 0x80004002;
static const HRESULT E_NOTIMPL = 0x80004001;
static const HRESULT E_OUTOFMEMORY = 0x8007000E;
static const HRESULT E_POINTER = 0x80004003;
static const HRESULT E_UNEXPECTED = 0x8000FFFF;
static const HRESULT CO_E_NOTINITIALIZED = 0x800401F0;
typedef HRESULT STDAPI; //Alias
typedef HRESULT SCODE; //Alias
typedef struct WINAPI_LARGE_INTEGER_s {
DWORD LowPart;
LONG HighPart;
} WINAPI_LARGE_INTEGER_s;
typedef union LARGE_INTEGER {
WINAPI_LARGE_INTEGER_s u;
LONGLONG QuadPart;
} LARGE_INTEGER;
typedef LARGE_INTEGER *PLARGE_INTEGER; //Pointer
typedef struct WINAPI_ULARGE_INTEGER_s {
DWORD LowPart;
LONG HighPart;
} WINAPI_ULARGE_INTEGER_s;
typedef union ULARGE_INTEGER {
WINAPI_ULARGE_INTEGER_s u;
ULONGLONG QuadPart;
} ULARGE_INTEGER;
typedef ULARGE_INTEGER *PULARGE_INTEGER; //Pointer
typedef struct FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
typedef FILETIME* PFILETIME; //Alias
typedef FILETIME* LPFILETIME; //Alias
typedef struct GUID { DWORD Data1; WORD Data2, Data3; BYTE Data4[8]; } GUID;
typedef GUID* PGUID; //Alias
typedef GUID* LPCGUID; //Alias
typedef GUID *LPGUID; //Pointer
typedef GUID* REFGUID; //Alias
typedef GUID CLSID; //Alias
typedef CLSID* LPCLSID; //Alias
typedef CLSID *REFCLSID; //Pointer
typedef GUID UUID; //Alias
typedef GUID IID; //Alias
typedef IID *REFIID; //Pointer
typedef IID *LPIID; //Pointer
typedef struct LUID {
DWORD LowPart;
LONG HighPart;
} LUID;
typedef LUID* PLUID; //Alias
typedef GUID SLID; //Alias
typedef DWORD ACCESS_MASK; //Alias
typedef ACCESS_MASK *PACCESS_MASK; //Pointer
typedef ACCESS_MASK WINAPI_THREAD_ACCESS_MASK; //Alias
typedef ACCESS_MASK WINAPI_PROCESS_ACCESS_MASK; //Alias
typedef ACCESS_MASK WINAPI_FILE_ACCESS_MASK; //Alias
typedef UINT SECURITY_INFORMATION; //Alias
typedef SECURITY_INFORMATION *PSECURITY_INFORMATION; //Pointer
typedef struct SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
typedef SYSTEMTIME* PSYSTEMTIME; //Alias
typedef PSYSTEMTIME LPSYSTEMTIME; //Alias
typedef UINT JOBOBJECTINFOCLASS; //Alias
static const JOBOBJECTINFOCLASS JobObjectBasicAccountingInformation = 1;
static const JOBOBJECTINFOCLASS JobObjectBasicLimitInformation = 2;
static const JOBOBJECTINFOCLASS JobObjectBasicProcessIdList = 3;
static const JOBOBJECTINFOCLASS JobObjectBasicUIRestrictions = 4;
static const JOBOBJECTINFOCLASS JobObjectSecurityLimitInformation = 5;
static const JOBOBJECTINFOCLASS JobObjectEndOfJobTimeInformation = 6;
static const JOBOBJECTINFOCLASS JobObjectAssociateCompletionPortInformation = 7;
static const JOBOBJECTINFOCLASS JobObjectBasicAndIoAccountingInformation = 8;
static const JOBOBJECTINFOCLASS JobObjectExtendedLimitInformation = 9;
static const JOBOBJECTINFOCLASS JobObjectJobSetInformation = 10;
static const JOBOBJECTINFOCLASS JobObjectGroupInformation = 11;
static const JOBOBJECTINFOCLASS JobObjectNotificationLimitInformation = 12;
static const JOBOBJECTINFOCLASS JobObjectLimitViolationInformation = 13;
static const JOBOBJECTINFOCLASS JobObjectGroupInformationEx = 14;
static const JOBOBJECTINFOCLASS JobObjectCpuRateControlInformation = 15;
static const JOBOBJECTINFOCLASS JobObjectCompletionFilter = 16;
static const JOBOBJECTINFOCLASS JobObjectCompletionCounter = 17;
static const JOBOBJECTINFOCLASS JobObjectFreezeInformation = 18;
static const JOBOBJECTINFOCLASS JobObjectExtendedAccountingInformation = 19;
static const JOBOBJECTINFOCLASS JobObjectWakeInformation = 20;
static const JOBOBJECTINFOCLASS JobObjectIdleAwareInformation = 21;
static const JOBOBJECTINFOCLASS JobObjectSchedulingRankBiasInformation = 22;
static const JOBOBJECTINFOCLASS JobObjectTimerVirtualizationInformation = 23;
static const JOBOBJECTINFOCLASS JobObjectCycleTimeNotification = 24;
static const JOBOBJECTINFOCLASS JobObjectReserved1Information = 18;
static const JOBOBJECTINFOCLASS JobObjectReserved2Information = 19;
static const JOBOBJECTINFOCLASS JobObjectReserved3Information = 20;
static const JOBOBJECTINFOCLASS JobObjectReserved4Information = 21;
static const JOBOBJECTINFOCLASS JobObjectReserved5Information = 22;
static const JOBOBJECTINFOCLASS JobObjectReserved6Information = 23;
static const JOBOBJECTINFOCLASS JobObjectReserved7Information = 24;
typedef UINT PROCESSINFOCLASS; //Alias
static const PROCESSINFOCLASS ProcessBasicInformation = 0;
static const PROCESSINFOCLASS ProcessQuotaLimits = 1;
static const PROCESSINFOCLASS ProcessIoCounters = 2;
static const PROCESSINFOCLASS ProcessVmCounters = 3;
static const PROCESSINFOCLASS ProcessTimes = 4;
static const PROCESSINFOCLASS ProcessBasePriority = 5;
static const PROCESSINFOCLASS ProcessRaisePriority = 6;
static const PROCESSINFOCLASS ProcessDebugPort = 7;
static const PROCESSINFOCLASS ProcessExceptionPort = 8;
static const PROCESSINFOCLASS ProcessAccessToken = 9;
static const PROCESSINFOCLASS ProcessLdtInformation = 10;
static const PROCESSINFOCLASS ProcessLdtSize = 11;
static const PROCESSINFOCLASS ProcessDefaultHardErrorMode = 12;
static const PROCESSINFOCLASS ProcessIoPortHandlers = 13;
static const PROCESSINFOCLASS ProcessPooledUsageAndLimits = 14;
static const PROCESSINFOCLASS ProcessWorkingSetWatch = 15;
static const PROCESSINFOCLASS ProcessUserModeIOPL = 16;
static const PROCESSINFOCLASS ProcessEnableAlignmentFaultFixup = 17;
static const PROCESSINFOCLASS ProcessPriorityClass = 18;
static const PROCESSINFOCLASS ProcessWx86Information = 19;
static const PROCESSINFOCLASS ProcessHandleCount = 20;
static const PROCESSINFOCLASS ProcessAffinityMask = 21;
static const PROCESSINFOCLASS ProcessPriorityBoost = 22;
static const PROCESSINFOCLASS ProcessDeviceMap = 23;
static const PROCESSINFOCLASS ProcessSessionInformation = 24;
static const PROCESSINFOCLASS ProcessForegroundInformation = 25;
static const PROCESSINFOCLASS ProcessWow64Information = 26;
static const PROCESSINFOCLASS ProcessImageFileName = 27;
static const PROCESSINFOCLASS ProcessLUIDDeviceMapsEnabled = 28;
static const PROCESSINFOCLASS ProcessBreakOnTermination = 29;
static const PROCESSINFOCLASS ProcessDebugObjectHandle = 30;
static const PROCESSINFOCLASS ProcessDebugFlags = 31;
static const PROCESSINFOCLASS ProcessHandleTracing = 32;
static const PROCESSINFOCLASS ProcessIoPriority = 33;
static const PROCESSINFOCLASS ProcessExecuteFlags = 34;
static const PROCESSINFOCLASS ProcessTlsInformation = 35;
static const PROCESSINFOCLASS ProcessCookie = 36;
static const PROCESSINFOCLASS ProcessImageInformation = 37;
static const PROCESSINFOCLASS ProcessCycleTime = 38;
static const PROCESSINFOCLASS ProcessPagePriority = 39;
static const PROCESSINFOCLASS ProcessInstrumentationCallback = 40;
static const PROCESSINFOCLASS ProcessThreadStackAllocation = 41;
static const PROCESSINFOCLASS ProcessWorkingSetWatchEx = 42;
static const PROCESSINFOCLASS ProcessImageFileNameWin32 = 43;
static const PROCESSINFOCLASS ProcessImageFileMapping = 44;
static const PROCESSINFOCLASS ProcessAffinityUpdateMode = 45;
static const PROCESSINFOCLASS ProcessMemoryAllocationMode = 46;
static const PROCESSINFOCLASS ProcessGroupInformation = 47;
static const PROCESSINFOCLASS ProcessTokenVirtualizationEnabled = 48;
static const PROCESSINFOCLASS ProcessConsoleHostProcess = 49;
static const PROCESSINFOCLASS ProcessWindowInformation = 50;
static const PROCESSINFOCLASS ProcessHandleInformation = 51;
static const PROCESSINFOCLASS ProcessMitigationPolicy = 52;
static const PROCESSINFOCLASS ProcessDynamicFunctionTableInformation = 53;
static const PROCESSINFOCLASS ProcessHandleCheckingMode = 54;
static const PROCESSINFOCLASS ProcessKeepAliveCount = 55;
static const PROCESSINFOCLASS ProcessRevokeFileHandles = 56;
typedef UINT THREADINFOCLASS; //Alias
static const THREADINFOCLASS ThreadBasicInformation = 0;
static const THREADINFOCLASS ThreadTimes = 1;
static const THREADINFOCLASS ThreadPriority = 2;
static const THREADINFOCLASS ThreadBasePriority = 3;
static const THREADINFOCLASS ThreadAffinityMask = 4;
static const THREADINFOCLASS ThreadImpersonationToken = 5;
static const THREADINFOCLASS ThreadDescriptorTableEntry = 6;
static const THREADINFOCLASS ThreadEnableAlignmentFaultFixup = 7;
static const THREADINFOCLASS ThreadEventPair_Reusable = 8;
static const THREADINFOCLASS ThreadQuerySetWin32StartAddress = 9;
static const THREADINFOCLASS ThreadZeroTlsCell = 10;
static const THREADINFOCLASS ThreadPerformanceCount = 11;
static const THREADINFOCLASS ThreadAmILastThread = 12;
static const THREADINFOCLASS ThreadIdealProcessor = 13;
static const THREADINFOCLASS ThreadPriorityBoost = 14;
static const THREADINFOCLASS ThreadSetTlsArrayAddress = 15;
static const THREADINFOCLASS ThreadIsIoPending = 16;
static const THREADINFOCLASS ThreadHideFromDebugger = 17;
static const THREADINFOCLASS ThreadBreakOnTermination = 18;
static const THREADINFOCLASS ThreadSwitchLegacyState = 19;
static const THREADINFOCLASS ThreadIsTerminated = 20;
static const THREADINFOCLASS ThreadLastSystemCall = 21;
static const THREADINFOCLASS ThreadIoPriority = 22;
static const THREADINFOCLASS ThreadCycleTime = 23;
static const THREADINFOCLASS ThreadPagePriority = 24;
static const THREADINFOCLASS ThreadActualBasePriority = 25;
static const THREADINFOCLASS ThreadTebInformation = 26;
static const THREADINFOCLASS ThreadCSwitchMon = 27;
static const THREADINFOCLASS ThreadCSwitchPmu = 28;
static const THREADINFOCLASS ThreadWow64Context = 29;
static const THREADINFOCLASS ThreadGroupInformation = 30;
static const THREADINFOCLASS ThreadUmsInformation = 31;
static const THREADINFOCLASS ThreadCounterProfiling = 32;
static const THREADINFOCLASS ThreadIdealProcessorEx = 33;
static const THREADINFOCLASS ThreadCpuAccountingInformation = 34;
static const THREADINFOCLASS ThreadSwitchStackCheck = 35;
typedef UINT GET_FILEEX_INFO_LEVELS; //Alias
static const GET_FILEEX_INFO_LEVELS GetFileExInfoStandard = 0;
typedef struct UNICODE_STRING {
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING; //Pointer
typedef UNICODE_STRING *PCUNICODE_STRING; //Pointer
typedef struct STRING {
USHORT Length;
USHORT MaximumLength;
PCHAR Buffer;
} STRING;
typedef STRING *PSTRING; //Pointer
typedef STRING ANSI_STRING; //Alias
typedef ANSI_STRING *PANSI_STRING; //Pointer
typedef ANSI_STRING *PCANSI_STRING; //Pointer
typedef STRING OEM_STRING; //Alias
typedef OEM_STRING *POEM_STRING; //Pointer
typedef OEM_STRING *PCOEM_STRING; //Pointer
typedef UINT WINAPI_WinMsg; //Alias
static const WINAPI_WinMsg WM_CREATE = 0x0001;
static const WINAPI_WinMsg WM_DESTROY = 0x0002;
static const WINAPI_WinMsg WM_MOVE = 0x0003;
static const WINAPI_WinMsg WM_SIZE = 0x0005;
static const WINAPI_WinMsg WM_ACTIVATE = 0x0006;
static const WINAPI_WinMsg WM_SETFOCUS = 0x0007;
static const WINAPI_WinMsg WM_KILLFOCUS = 0x0008;
static const WINAPI_WinMsg WM_ENABLE = 0x000A;
static const WINAPI_WinMsg WM_SETREDRAW = 0x000B;
static const WINAPI_WinMsg WM_SETTEXT = 0x000C;
static const WINAPI_WinMsg WM_GETTEXT = 0x000D;
static const WINAPI_WinMsg WM_GETTEXTLENGTH = 0x000E;
static const WINAPI_WinMsg WM_PAINT = 0x000F;
static const WINAPI_WinMsg WM_CLOSE = 0x0010;
static const WINAPI_WinMsg WM_QUERYENDSESSION = 0x0011;
static const WINAPI_WinMsg WM_QUERYOPEN = 0x0013;
static const WINAPI_WinMsg WM_ENDSESSION = 0x0016;
static const WINAPI_WinMsg WM_QUIT = 0x0012;
static const WINAPI_WinMsg WM_ERASEBKGND = 0x0014;
static const WINAPI_WinMsg WM_SYSCOLORCHANGE = 0x0015;
static const WINAPI_WinMsg WM_SHOWWINDOW = 0x0018;
static const WINAPI_WinMsg WM_SETTINGCHANGE = 0x001A;
static const WINAPI_WinMsg WM_DEVMODECHANGE = 0x001B;
static const WINAPI_WinMsg WM_ACTIVATEAPP = 0x001C;
static const WINAPI_WinMsg WM_FONTCHANGE = 0x001D;
static const WINAPI_WinMsg WM_TIMECHANGE = 0x001E;
static const WINAPI_WinMsg WM_CANCELMODE = 0x001F;
static const WINAPI_WinMsg WM_SETCURSOR = 0x0020;
static const WINAPI_WinMsg WM_MOUSEACTIVATE = 0x0021;
static const WINAPI_WinMsg WM_CHILDACTIVATE = 0x0022;
static const WINAPI_WinMsg WM_QUEUESYNC = 0x0023;
static const WINAPI_WinMsg WM_GETMINMAXINFO = 0x0024;
static const WINAPI_WinMsg WM_PAINTICON = 0x0026;
static const WINAPI_WinMsg WM_ICONERASEBKGND = 0x0027;
static const WINAPI_WinMsg WM_NEXTDLGCTL = 0x0028;
static const WINAPI_WinMsg WM_SPOOLERSTATUS = 0x002A;
static const WINAPI_WinMsg WM_DRAWITEM = 0x002B;
static const WINAPI_WinMsg WM_MEASUREITEM = 0x002C;
static const WINAPI_WinMsg WM_DELETEITEM = 0x002D;
static const WINAPI_WinMsg WM_VKEYTOITEM = 0x002E;
static const WINAPI_WinMsg WM_CHARTOITEM = 0x002F;
static const WINAPI_WinMsg WM_SETFONT = 0x0030;
static const WINAPI_WinMsg WM_GETFONT = 0x0031;
static const WINAPI_WinMsg WM_SETHOTKEY = 0x0032;
static const WINAPI_WinMsg WM_GETHOTKEY = 0x0033;
static const WINAPI_WinMsg WM_QUERYDRAGICON = 0x0037;
static const WINAPI_WinMsg WM_COMPAREITEM = 0x0039;
static const WINAPI_WinMsg WM_GETOBJECT = 0x003D;
static const WINAPI_WinMsg WM_COMPACTING = 0x0041;
static const WINAPI_WinMsg WM_COMMNOTIFY = 0x0044;
static const WINAPI_WinMsg WM_WINDOWPOSCHANGING = 0x0046;
static const WINAPI_WinMsg WM_WINDOWPOSCHANGED = 0x0047;
static const WINAPI_WinMsg WM_POWER = 0x0048;
static const WINAPI_WinMsg WM_COPYDATA = 0x004A;
static const WINAPI_WinMsg WM_CANCELJOURNAL = 0x004B;
static const WINAPI_WinMsg WM_NOTIFY = 0x004E;
static const WINAPI_WinMsg WM_INPUTLANGCHANGEREQUEST = 0x0050;
static const WINAPI_WinMsg WM_INPUTLANGCHANGE = 0x0051;
static const WINAPI_WinMsg WM_TCARD = 0x0052;
static const WINAPI_WinMsg WM_HELP = 0x0053;
static const WINAPI_WinMsg WM_USERCHANGED = 0x0054;
static const WINAPI_WinMsg WM_NOTIFYFORMAT = 0x0055;
static const WINAPI_WinMsg WM_CONTEXTMENU = 0x007B;
static const WINAPI_WinMsg WM_STYLECHANGING = 0x007C;
static const WINAPI_WinMsg WM_STYLECHANGED = 0x007D;
static const WINAPI_WinMsg WM_DISPLAYCHANGE = 0x007E;
static const WINAPI_WinMsg WM_GETICON = 0x007F;
static const WINAPI_WinMsg WM_SETICON = 0x0080;
static const WINAPI_WinMsg WM_NCCREATE = 0x0081;
static const WINAPI_WinMsg WM_NCDESTROY = 0x0082;
static const WINAPI_WinMsg WM_NCCALCSIZE = 0x0083;
static const WINAPI_WinMsg WM_NCHITTEST = 0x0084;
static const WINAPI_WinMsg WM_NCPAINT = 0x0085;
static const WINAPI_WinMsg WM_NCACTIVATE = 0x0086;
static const WINAPI_WinMsg WM_GETDLGCODE = 0x0087;
static const WINAPI_WinMsg WM_SYNCPAINT = 0x0088;
static const WINAPI_WinMsg WM_NCMOUSEMOVE = 0x00A0;
static const WINAPI_WinMsg WM_NCLBUTTONDOWN = 0x00A1;
static const WINAPI_WinMsg WM_NCLBUTTONUP = 0x00A2;
static const WINAPI_WinMsg WM_NCLBUTTONDBLCLK = 0x00A3;
static const WINAPI_WinMsg WM_NCRBUTTONDOWN = 0x00A4;
static const WINAPI_WinMsg WM_NCRBUTTONUP = 0x00A5;
static const WINAPI_WinMsg WM_NCRBUTTONDBLCLK = 0x00A6;
static const WINAPI_WinMsg WM_NCMBUTTONDOWN = 0x00A7;
static const WINAPI_WinMsg WM_NCMBUTTONUP = 0x00A8;
static const WINAPI_WinMsg WM_NCMBUTTONDBLCLK = 0x00A9;
static const WINAPI_WinMsg WM_NCXBUTTONDOWN = 0x00AB;
static const WINAPI_WinMsg WM_NCXBUTTONUP = 0x00AC;
static const WINAPI_WinMsg WM_NCXBUTTONDBLCLK = 0x00AD;
static const WINAPI_WinMsg WM_INPUT_DEVICE_CHANGE = 0x00FE;
static const WINAPI_WinMsg WM_INPUT = 0x00FF;
static const WINAPI_WinMsg WM_KEYDOWN = 0x0100;
static const WINAPI_WinMsg WM_KEYUP = 0x0101;
static const WINAPI_WinMsg WM_CHAR = 0x0102;
static const WINAPI_WinMsg WM_DEADCHAR = 0x0103;
static const WINAPI_WinMsg WM_SYSKEYDOWN = 0x0104;
static const WINAPI_WinMsg WM_SYSKEYUP = 0x0105;
static const WINAPI_WinMsg WM_SYSCHAR = 0x0106;
static const WINAPI_WinMsg WM_SYSDEADCHAR = 0x0107;
static const WINAPI_WinMsg WM_UNICHAR = 0x0109;
static const WINAPI_WinMsg WM_IME_STARTCOMPOSITION = 0x010D;
static const WINAPI_WinMsg WM_IME_ENDCOMPOSITION = 0x010E;
static const WINAPI_WinMsg WM_IME_COMPOSITION = 0x010F;
static const WINAPI_WinMsg WM_IME_KEYLAST = 0x010F;
static const WINAPI_WinMsg WM_INITDIALOG = 0x0110;
static const WINAPI_WinMsg WM_COMMAND = 0x0111;
static const WINAPI_WinMsg WM_SYSCOMMAND = 0x0112;
static const WINAPI_WinMsg WM_TIMER = 0x0113;
static const WINAPI_WinMsg WM_HSCROLL = 0x0114;
static const WINAPI_WinMsg WM_VSCROLL = 0x0115;
static const WINAPI_WinMsg WM_INITMENU = 0x0116;
static const WINAPI_WinMsg WM_INITMENUPOPUP = 0x0117;
static const WINAPI_WinMsg WM_MENUSELECT = 0x011F;
static const WINAPI_WinMsg WM_MENUCHAR = 0x0120;
static const WINAPI_WinMsg WM_ENTERIDLE = 0x0121;
static const WINAPI_WinMsg WM_MENURBUTTONUP = 0x0122;
static const WINAPI_WinMsg WM_MENUDRAG = 0x0123;
static const WINAPI_WinMsg WM_MENUGETOBJECT = 0x0124;
static const WINAPI_WinMsg WM_UNINITMENUPOPUP = 0x0125;
static const WINAPI_WinMsg WM_MENUCOMMAND = 0x0126;
static const WINAPI_WinMsg WM_CHANGEUISTATE = 0x0127;
static const WINAPI_WinMsg WM_UPDATEUISTATE = 0x0128;
static const WINAPI_WinMsg WM_QUERYUISTATE = 0x0129;
static const WINAPI_WinMsg WM_CTLCOLORMSGBOX = 0x0132;
static const WINAPI_WinMsg WM_CTLCOLOREDIT = 0x0133;
static const WINAPI_WinMsg WM_CTLCOLORLISTBOX = 0x0134;
static const WINAPI_WinMsg WM_CTLCOLORBTN = 0x0135;
static const WINAPI_WinMsg WM_CTLCOLORDLG = 0x0136;
static const WINAPI_WinMsg WM_CTLCOLORSCROLLBAR = 0x0137;
static const WINAPI_WinMsg WM_CTLCOLORSTATIC = 0x0138;
static const WINAPI_WinMsg MN_GETHMENU = 0x01E1;
static const WINAPI_WinMsg WM_MOUSEMOVE = 0x0200;
static const WINAPI_WinMsg WM_LBUTTONDOWN = 0x0201;
static const WINAPI_WinMsg WM_LBUTTONUP = 0x0202;
static const WINAPI_WinMsg WM_LBUTTONDBLCLK = 0x0203;
static const WINAPI_WinMsg WM_RBUTTONDOWN = 0x0204;
static const WINAPI_WinMsg WM_RBUTTONUP = 0x0205;
static const WINAPI_WinMsg WM_RBUTTONDBLCLK = 0x0206;
static const WINAPI_WinMsg WM_MBUTTONDOWN = 0x0207;
static const WINAPI_WinMsg WM_MBUTTONUP = 0x0208;
static const WINAPI_WinMsg WM_MBUTTONDBLCLK = 0x0209;
static const WINAPI_WinMsg WM_MOUSEWHEEL = 0x020A;
static const WINAPI_WinMsg WM_XBUTTONDOWN = 0x020B;
static const WINAPI_WinMsg WM_XBUTTONUP = 0x020C;
static const WINAPI_WinMsg WM_XBUTTONDBLCLK = 0x020D;
static const WINAPI_WinMsg WM_MOUSEHWHEEL = 0x020E;
static const WINAPI_WinMsg WM_PARENTNOTIFY = 0x0210;
static const WINAPI_WinMsg WM_ENTERMENULOOP = 0x0211;
static const WINAPI_WinMsg WM_EXITMENULOOP = 0x0212;
static const WINAPI_WinMsg WM_NEXTMENU = 0x0213;
static const WINAPI_WinMsg WM_SIZING = 0x0214;
static const WINAPI_WinMsg WM_CAPTURECHANGED = 0x0215;
static const WINAPI_WinMsg WM_MOVING = 0x0216;
static const WINAPI_WinMsg WM_POWERBROADCAST = 0x0218;
static const WINAPI_WinMsg WM_DEVICECHANGE = 0x0219;
static const WINAPI_WinMsg WM_MDICREATE = 0x0220;
static const WINAPI_WinMsg WM_MDIDESTROY = 0x0221;
static const WINAPI_WinMsg WM_MDIACTIVATE = 0x0222;
static const WINAPI_WinMsg WM_MDIRESTORE = 0x0223;
static const WINAPI_WinMsg WM_MDINEXT = 0x0224;
static const WINAPI_WinMsg WM_MDIMAXIMIZE = 0x0225;
static const WINAPI_WinMsg WM_MDITILE = 0x0226;
static const WINAPI_WinMsg WM_MDICASCADE = 0x0227;
static const WINAPI_WinMsg WM_MDIICONARRANGE = 0x0228;
static const WINAPI_WinMsg WM_MDIGETACTIVE = 0x0229;
static const WINAPI_WinMsg WM_MDISETMENU = 0x0230;
static const WINAPI_WinMsg WM_ENTERSIZEMOVE = 0x0231;
static const WINAPI_WinMsg WM_EXITSIZEMOVE = 0x0232;
static const WINAPI_WinMsg WM_DROPFILES = 0x0233;
static const WINAPI_WinMsg WM_MDIREFRESHMENU = 0x0234;
static const WINAPI_WinMsg WM_IME_SETCONTEXT = 0x0281;
static const WINAPI_WinMsg WM_IME_NOTIFY = 0x0282;
static const WINAPI_WinMsg WM_IME_CONTROL = 0x0283;
static const WINAPI_WinMsg WM_IME_COMPOSITIONFULL = 0x0284;
static const WINAPI_WinMsg WM_IME_SELECT = 0x0285;
static const WINAPI_WinMsg WM_IME_CHAR = 0x0286;
static const WINAPI_WinMsg WM_IME_REQUEST = 0x0288;
static const WINAPI_WinMsg WM_IME_KEYDOWN = 0x0290;
static const WINAPI_WinMsg WM_IME_KEYUP = 0x0291;
static const WINAPI_WinMsg WM_MOUSEHOVER = 0x02A1;
static const WINAPI_WinMsg WM_MOUSELEAVE = 0x02A3;
static const WINAPI_WinMsg WM_NCMOUSEHOVER = 0x02A0;
static const WINAPI_WinMsg WM_NCMOUSELEAVE = 0x02A2;
static const WINAPI_WinMsg WM_WTSSESSION_CHANGE = 0x02B1;
static const WINAPI_WinMsg WM_TABLET_ADDED = 0x02c8;
static const WINAPI_WinMsg WM_TABLET_DELETED = 0x02c9;
static const WINAPI_WinMsg WM_TABLET_FLICK = 0x02cb;
static const WINAPI_WinMsg WM_TABLET_QUERYSYSTEMGESTURESTATUS = 0x02cc;
static const WINAPI_WinMsg WM_CUT = 0x0300;
static const WINAPI_WinMsg WM_COPY = 0x0301;
static const WINAPI_WinMsg WM_PASTE = 0x0302;
static const WINAPI_WinMsg WM_CLEAR = 0x0303;
static const WINAPI_WinMsg WM_UNDO = 0x0304;
static const WINAPI_WinMsg WM_RENDERFORMAT = 0x0305;
static const WINAPI_WinMsg WM_RENDERALLFORMATS = 0x0306;
static const WINAPI_WinMsg WM_DESTROYCLIPBOARD = 0x0307;
static const WINAPI_WinMsg WM_DRAWCLIPBOARD = 0x0308;
static const WINAPI_WinMsg WM_PAINTCLIPBOARD = 0x0309;
static const WINAPI_WinMsg WM_VSCROLLCLIPBOARD = 0x030A;
static const WINAPI_WinMsg WM_SIZECLIPBOARD = 0x030B;
static const WINAPI_WinMsg WM_ASKCBFORMATNAME = 0x030C;
static const WINAPI_WinMsg WM_CHANGECBCHAIN = 0x030D;
static const WINAPI_WinMsg WM_HSCROLLCLIPBOARD = 0x030E;
static const WINAPI_WinMsg WM_QUERYNEWPALETTE = 0x030F;
static const WINAPI_WinMsg WM_PALETTEISCHANGING = 0x0310;
static const WINAPI_WinMsg WM_PALETTECHANGED = 0x0311;
static const WINAPI_WinMsg WM_HOTKEY = 0x0312;
static const WINAPI_WinMsg WM_PRINT = 0x0317;
static const WINAPI_WinMsg WM_PRINTCLIENT = 0x0318;
static const WINAPI_WinMsg WM_APPCOMMAND = 0x0319;
static const WINAPI_WinMsg WM_THEMECHANGED = 0x031A;
static const WINAPI_WinMsg WM_CLIPBOARDUPDATE = 0x031D;
static const WINAPI_WinMsg WM_DWMCOMPOSITIONCHANGED = 0x031E;
static const WINAPI_WinMsg WM_DWMNCRENDERINGCHANGED = 0x031F;
static const WINAPI_WinMsg WM_DWMCOLORIZATIONCOLORCHANGED = 0x0320;
static const WINAPI_WinMsg WM_DWMWINDOWMAXIMIZEDCHANGE = 0x0321;
static const WINAPI_WinMsg WM_GETTITLEBARINFOEX = 0x033F;
static const WINAPI_WinMsg WM_USER = 0x0400;
static const WINAPI_WinMsg EM_GETSEL = 0x00B0;
static const WINAPI_WinMsg EM_SETSEL = 0x00B1;
static const WINAPI_WinMsg EM_GETRECT = 0x00B2;
static const WINAPI_WinMsg EM_SETRECT = 0x00B3;
static const WINAPI_WinMsg EM_SETRECTNP = 0x00B4;
static const WINAPI_WinMsg EM_SCROLL = 0x00B5;
static const WINAPI_WinMsg EM_LINESCROLL = 0x00B6;
static const WINAPI_WinMsg EM_SCROLLCARET = 0x00B7;
static const WINAPI_WinMsg EM_GETMODIFY = 0x00B8;
static const WINAPI_WinMsg EM_SETMODIFY = 0x00B9;
static const WINAPI_WinMsg EM_GETLINECOUNT = 0x00BA;
static const WINAPI_WinMsg EM_LINEINDEX = 0x00BB;
static const WINAPI_WinMsg EM_SETHANDLE = 0x00BC;
static const WINAPI_WinMsg EM_GETHANDLE = 0x00BD;
static const WINAPI_WinMsg EM_GETTHUMB = 0x00BE;
static const WINAPI_WinMsg EM_LINELENGTH = 0x00C1;
static const WINAPI_WinMsg EM_REPLACESEL = 0x00C2;
static const WINAPI_WinMsg EM_GETLINE = 0x00C4;
static const WINAPI_WinMsg EM_LIMITTEXT = 0x00C5;
static const WINAPI_WinMsg EM_CANUNDO = 0x00C6;
static const WINAPI_WinMsg EM_UNDO = 0x00C7;
static const WINAPI_WinMsg EM_FMTLINES = 0x00C8;
static const WINAPI_WinMsg EM_LINEFROMCHAR = 0x00C9;
static const WINAPI_WinMsg EM_SETTABSTOPS = 0x00CB;
static const WINAPI_WinMsg EM_SETPASSWORDCHAR = 0x00CC;
static const WINAPI_WinMsg EM_EMPTYUNDOBUFFER = 0x00CD;
static const WINAPI_WinMsg EM_GETFIRSTVISIBLELINE = 0x00CE;
static const WINAPI_WinMsg EM_SETREADONLY = 0x00CF;
static const WINAPI_WinMsg EM_SETWORDBREAKPROC = 0x00D0;
static const WINAPI_WinMsg EM_GETWORDBREAKPROC = 0x00D1;
static const WINAPI_WinMsg EM_GETPASSWORDCHAR = 0x00D2;
static const WINAPI_WinMsg EM_SETMARGINS = 0x00D3;
static const WINAPI_WinMsg EM_GETMARGINS = 0x00D4;
static const WINAPI_WinMsg EM_SETLIMITTEXT = 0x00C5;
static const WINAPI_WinMsg EM_GETLIMITTEXT = 0x00D5;
static const WINAPI_WinMsg EM_POSFROMCHAR = 0x00D6;
static const WINAPI_WinMsg EM_CHARFROMPOS = 0x00D7;
static const WINAPI_WinMsg EM_SETIMESTATUS = 0x00D8;
static const WINAPI_WinMsg EM_GETIMESTATUS = 0x00D9;
static const WINAPI_WinMsg BM_GETCHECK = 0x00F0;
static const WINAPI_WinMsg BM_SETCHECK = 0x00F1;
static const WINAPI_WinMsg BM_GETSTATE = 0x00F2;
static const WINAPI_WinMsg BM_SETSTATE = 0x00F3;
static const WINAPI_WinMsg BM_SETSTYLE = 0x00F4;
static const WINAPI_WinMsg BM_CLICK = 0x00F5;
static const WINAPI_WinMsg BM_GETIMAGE = 0x00F6;
static const WINAPI_WinMsg BM_SETIMAGE = 0x00F7;
static const WINAPI_WinMsg BM_SETDONTCLICK = 0x00F8;
typedef struct MSG {
HWND hwnd;
WINAPI_WinMsg message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
typedef MSG* LPMSG; //Alias
typedef UINT WINAPI_ImageType; //Alias
static const WINAPI_ImageType IMAGE_BITMAP = 0;
static const WINAPI_ImageType IMAGE_ICON = 1;
static const WINAPI_ImageType IMAGE_CURSOR = 2;
static const WINAPI_ImageType IMAGE_ENHMETAFILE = 3;
typedef UINT WINAPI_LRFlags; //Alias
typedef int WINAPI_SBType; //Alias
static const WINAPI_SBType SB_HORZ = 0;
static const WINAPI_SBType SB_VERT = 1;
static const WINAPI_SBType SB_CTL = 2;
static const WINAPI_SBType SB_BOTH = 3;
typedef UINT WINAPI_IsTextUnicodeFlags; //Alias
typedef DWORD WINAPI_WaitTimeout; //Alias
static const WINAPI_WaitTimeout INFINITE = 0xFFFFFFFF;
typedef UINT WINAPI_BorderFlag; //Alias
typedef int WINAPI_SysColorIndex; //Alias
static const WINAPI_SysColorIndex COLOR_SCROLLBAR = 0;
static const WINAPI_SysColorIndex COLOR_BACKGROUND = 1;
static const WINAPI_SysColorIndex COLOR_ACTIVECAPTION = 2;
static const WINAPI_SysColorIndex COLOR_INACTIVECAPTION = 3;
static const WINAPI_SysColorIndex COLOR_MENU = 4;
static const WINAPI_SysColorIndex COLOR_WINDOW = 5;
static const WINAPI_SysColorIndex COLOR_WINDOWFRAME = 6;
static const WINAPI_SysColorIndex COLOR_MENUTEXT = 7;
static const WINAPI_SysColorIndex COLOR_WINDOWTEXT = 8;
static const WINAPI_SysColorIndex COLOR_CAPTIONTEXT = 9;
static const WINAPI_SysColorIndex COLOR_ACTIVEBORDER = 10;
static const WINAPI_SysColorIndex COLOR_INACTIVEBORDER = 11;
static const WINAPI_SysColorIndex COLOR_APPWORKSPACE = 12;
static const WINAPI_SysColorIndex COLOR_HIGHLIGHT = 13;
static const WINAPI_SysColorIndex COLOR_HIGHLIGHTTEXT = 14;
static const WINAPI_SysColorIndex COLOR_BTNFACE = 15;
static const WINAPI_SysColorIndex COLOR_BTNSHADOW = 16;
static const WINAPI_SysColorIndex COLOR_GRAYTEXT = 17;
static const WINAPI_SysColorIndex COLOR_BTNTEXT = 18;
static const WINAPI_SysColorIndex COLOR_INACTIVECAPTIONTEXT = 19;
static const WINAPI_SysColorIndex COLOR_BTNHIGHLIGHT = 20;
static const WINAPI_SysColorIndex COLOR_3DDKSHADOW = 21;
static const WINAPI_SysColorIndex COLOR_3DLIGHT = 22;
static const WINAPI_SysColorIndex COLOR_INFOTEXT = 23;
static const WINAPI_SysColorIndex COLOR_INFOBK = 24;
static const WINAPI_SysColorIndex COLOR_HOTLIGHT = 26;
static const WINAPI_SysColorIndex COLOR_GRADIENTACTIVECAPTION = 27;
static const WINAPI_SysColorIndex COLOR_GRADIENTINACTIVECAPTION = 28;
static const WINAPI_SysColorIndex COLOR_MENUHILIGHT = 29;
static const WINAPI_SysColorIndex COLOR_MENUBAR = 30;
typedef UINT WINAPI_BorderEdge; //Alias
typedef DWORD WINAPI_DrawTextFlags; //Alias
typedef struct RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
typedef RECT *LPRECT; //Pointer
typedef LPRECT LPCRECT; //Alias
typedef RECT RECTL; //Alias
typedef RECTL *LPCRECTL; //Pointer
typedef UINT WINAPI_CodePageEnum; //Alias
static const WINAPI_CodePageEnum CP_ACP = 0;
static const WINAPI_CodePageEnum CP_OEMCP = 1;
static const WINAPI_CodePageEnum CP_MACCP = 2;
static const WINAPI_CodePageEnum CP_THREAD_ACP = 3;
static const WINAPI_CodePageEnum CP_SYMBOL = 42;
static const WINAPI_CodePageEnum MS_DOS_Latin_US = 437;
static const WINAPI_CodePageEnum Thai = 874;
static const WINAPI_CodePageEnum Japanese__Shift_JIS_ = 932;
static const WINAPI_CodePageEnum Chinese_Simplified = 936;
static const WINAPI_CodePageEnum Korean = 949;
static const WINAPI_CodePageEnum Chinese_Traditional = 950;
static const WINAPI_CodePageEnum Unicode_UTF_16_LE = 1200;
static const WINAPI_CodePageEnum Unicode_UTF_16_BE = 1201;
static const WINAPI_CodePageEnum Central_European = 1250;
static const WINAPI_CodePageEnum Cyrillic = 1251;
static const WINAPI_CodePageEnum Western_European = 1252;
static const WINAPI_CodePageEnum Greek = 1253;
static const WINAPI_CodePageEnum Turkish = 1254;
static const WINAPI_CodePageEnum Hebrew = 1255;
static const WINAPI_CodePageEnum Arabic = 1256;
static const WINAPI_CodePageEnum Baltic = 1257;
static const WINAPI_CodePageEnum Vietnamese = 1258;
static const WINAPI_CodePageEnum CP_UTF7 = 65000;
static const WINAPI_CodePageEnum CP_UTF8 = 65001;
typedef DWORD WINAPI_EXCEPTION_FLAGS; //Alias
//static const WINAPI_EXCEPTION_FLAGS EXCEPTION_NONCONTINUABLE_EXCEPTION = 0x1;
typedef struct EXCEPTION_RECORD {
WINAPI_ExceptionCode ExceptionCode;
DWORD ExceptionFlags;
LPVOID ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD;
typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; //Pointer
typedef struct EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
} EXCEPTION_POINTERS;
typedef EXCEPTION_POINTERS *PEXCEPTION_POINTERS; //Pointer
typedef EXCEPTION_POINTERS *LPEXCEPTION_POINTERS; //Pointer
typedef struct SP_DEVINFO_DATA {
DWORD cbSize;
GUID ClassGuid;
DWORD DevInst;
ULONG_PTR Reserved;
} SP_DEVINFO_DATA;
typedef SP_DEVINFO_DATA *PSP_DEVINFO_DATA; //Pointer
typedef struct PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION;
typedef PROCESS_INFORMATION *LPPROCESS_INFORMATION; //Pointer
typedef int WINAPI_ShowWindowCmd; //Alias
static const WINAPI_ShowWindowCmd SW_HIDE = 0;
static const WINAPI_ShowWindowCmd SW_SHOWNORMAL = 1;
static const WINAPI_ShowWindowCmd SW_NORMAL = 1;
static const WINAPI_ShowWindowCmd SW_SHOWMINIMIZED = 2;
static const WINAPI_ShowWindowCmd SW_SHOWMAXIMIZED = 3;
static const WINAPI_ShowWindowCmd SW_MAXIMIZE = 3;
static const WINAPI_ShowWindowCmd SW_SHOWNOACTIVATE = 4;
static const WINAPI_ShowWindowCmd SW_SHOW = 5;
static const WINAPI_ShowWindowCmd SW_MINIMIZE = 6;
static const WINAPI_ShowWindowCmd SW_SHOWMINNOACTIVE = 7;
static const WINAPI_ShowWindowCmd SW_SHOWNA = 8;
static const WINAPI_ShowWindowCmd SW_RESTORE = 9;
static const WINAPI_ShowWindowCmd SW_SHOWDEFAULT = 10;
static const WINAPI_ShowWindowCmd SW_FORCEMINIMIZE = 11;
typedef WORD WINAPI_STARTUPINFO_ShowWindow; //Alias
//static const WINAPI_STARTUPINFO_ShowWindow SW_HIDE = 0;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWNORMAL = 1;
//static const WINAPI_STARTUPINFO_ShowWindow SW_NORMAL = 1;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWMINIMIZED = 2;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWMAXIMIZED = 3;
//static const WINAPI_STARTUPINFO_ShowWindow SW_MAXIMIZE = 3;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWNOACTIVATE = 4;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOW = 5;
//static const WINAPI_STARTUPINFO_ShowWindow SW_MINIMIZE = 6;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWMINNOACTIVE = 7;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWNA = 8;
//static const WINAPI_STARTUPINFO_ShowWindow SW_RESTORE = 9;
//static const WINAPI_STARTUPINFO_ShowWindow SW_SHOWDEFAULT = 10;
//static const WINAPI_STARTUPINFO_ShowWindow SW_FORCEMINIMIZE = 11;
typedef DWORD WINAPI_STARTUPINFO_Flags; //Alias
typedef struct STARTUPINFO {
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
WINAPI_STARTUPINFO_Flags dwFlags;
WINAPI_STARTUPINFO_ShowWindow wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO;
typedef STARTUPINFO *LPSTARTUPINFO; //Pointer
typedef struct STARTUPINFOW {
DWORD cb;
LPWSTR lpReserved;
LPWSTR lpDesktop;
LPWSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;