/
JvComputerInfoEx.pas
6278 lines (5630 loc) · 197 KB
/
JvComputerInfoEx.pas
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
{-----------------------------------------------------------------------------
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/MPL-1.1.html
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
the specific language governing rights and limitations under the License.
The Original Code is: JvComputerInfoEx.PAS, released on 2004-03-07.
The Initial Developer of the Original Code is Peter Thrnqvist [peter3 at sourceforge dot net]
Portions created by Peter Thrnqvist are Copyright (C) 2004 Peter Thrnqvist.
All Rights Reserved.
Contributor(s):
Andr?nepvangers - better TimeRunning
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
located at http://jvcl.delphi-jedi.org
Description
A read-only computer info component. Subproperties are created as needed so loading
at run-time should be pretty fast.
This component replaces JvComputerInfo, JvKeyboardStates, JvDeviceChanged, JvDirectories
and JvSystemColors.
Known Issues:
* ADO version info might not be correct/available on all systems (depending on the ADO version installed)
* ResetSystemIcons only tested on W2k
-----------------------------------------------------------------------------}
// $Id$
unit JvComputerInfoEx;
{$I jvcl.inc}
{$I windowsonly.inc}
{$HPPEMIT '#pragma link "wininet.lib"'}
interface
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
Windows, Messages, SysUtils, ShlObj, ShellAPI,
Classes, Graphics, Controls,
JclWin32, JclSysInfo,
JvJVCLUtils, JvComponentBase, JvTypes;
{$HPPEMIT '#include <dbt.h>'}
// these are defined here to avoid including DBT.pas
const
{$EXTERNALSYM DBT_DEVICEARRIVAL}
DBT_DEVICEARRIVAL = $8000; { system detected a new device }
{$EXTERNALSYM DBT_DEVICEREMOVECOMPLETE}
DBT_DEVICEREMOVECOMPLETE = $8004; { device is gone }
{$EXTERNALSYM DBT_DEVTYP_VOLUME}
DBT_DEVTYP_VOLUME = $00000002; { logical volume }
{$EXTERNALSYM DBTF_MEDIA}
DBTF_MEDIA = $0001; { media comings and goings }
// new params for SystemParametersInfo not defined in Windows
SPI_GETDESKWALLPAPER = $0073;
{$EXTERNALSYM SPI_GETDESKWALLPAPER}
SPI_GETMOUSESONAR = $101C;
{$EXTERNALSYM SPI_GETMOUSESONAR}
SPI_SETMOUSESONAR = $101D;
{$EXTERNALSYM SPI_SETMOUSESONAR}
SPI_GETMOUSECLICKLOCK = $101E;
{$EXTERNALSYM SPI_GETMOUSECLICKLOCK}
SPI_SETMOUSECLICKLOCK = $101F;
{$EXTERNALSYM SPI_SETMOUSECLICKLOCK}
SPI_GETMOUSEVANISH = $1020;
{$EXTERNALSYM SPI_GETMOUSEVANISH}
SPI_SETMOUSEVANISH = $1021;
{$EXTERNALSYM SPI_SETMOUSEVANISH}
SPI_GETFLATMENU = $1022;
{$EXTERNALSYM SPI_GETFLATMENU}
SPI_SETFLATMENU = $1023;
{$EXTERNALSYM SPI_SETFLATMENU}
SPI_GETDROPSHADOW = $1024;
{$EXTERNALSYM SPI_GETDROPSHADOW}
SPI_SETDROPSHADOW = $1025;
{$EXTERNALSYM SPI_SETDROPSHADOW}
SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
{$EXTERNALSYM SPI_GETFOREGROUNDLOCKTIMEOUT}
SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
{$EXTERNALSYM SPI_SETFOREGROUNDLOCKTIMEOUT}
SPI_GETACTIVEWNDTRKTIMEOUT = $2002;
{$EXTERNALSYM SPI_GETACTIVEWNDTRKTIMEOUT}
SPI_SETACTIVEWNDTRKTIMEOUT = $2003;
{$EXTERNALSYM SPI_SETACTIVEWNDTRKTIMEOUT}
SPI_GETFOREGROUNDFLASHCOUNT = $2004;
{$EXTERNALSYM SPI_GETFOREGROUNDFLASHCOUNT}
SPI_SETFOREGROUNDFLASHCOUNT = $2005;
{$EXTERNALSYM SPI_SETFOREGROUNDFLASHCOUNT}
SPI_GETCARETWIDTH = $2006;
{$EXTERNALSYM SPI_GETCARETWIDTH}
SPI_SETCARETWIDTH = $2007;
{$EXTERNALSYM SPI_SETCARETWIDTH}
SPI_GETMOUSECLICKLOCKTIME = $2008;
{$EXTERNALSYM SPI_GETMOUSECLICKLOCKTIME}
SPI_SETMOUSECLICKLOCKTIME = $2009;
{$EXTERNALSYM SPI_SETMOUSECLICKLOCKTIME}
SPI_GETFONTSMOOTHINGTYPE = $200A;
{$EXTERNALSYM SPI_GETFONTSMOOTHINGTYPE}
SPI_SETFONTSMOOTHINGTYPE = $200B;
{$EXTERNALSYM SPI_SETFONTSMOOTHINGTYPE}
{ constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE: }
FE_FONTSMOOTHINGSTANDARD = $0001;
{$EXTERNALSYM FE_FONTSMOOTHINGSTANDARD}
FE_FONTSMOOTHINGCLEARTYPE = $0002;
{$EXTERNALSYM FE_FONTSMOOTHINGCLEARTYPE}
FE_FONTSMOOTHINGDOCKING = $8000;
{$EXTERNALSYM FE_FONTSMOOTHINGDOCKING}
SPI_GETFONTSMOOTHINGCONTRAST = $200C;
{$EXTERNALSYM SPI_GETFONTSMOOTHINGCONTRAST}
SPI_SETFONTSMOOTHINGCONTRAST = $200D;
{$EXTERNALSYM SPI_SETFONTSMOOTHINGCONTRAST}
SPI_GETFOCUSBORDERWIDTH = $200E;
{$EXTERNALSYM SPI_GETFOCUSBORDERWIDTH}
SPI_SETFOCUSBORDERWIDTH = $200F;
{$EXTERNALSYM SPI_SETFOCUSBORDERWIDTH}
SPI_GETFOCUSBORDERHEIGHT = $2010;
{$EXTERNALSYM SPI_GETFOCUSBORDERHEIGHT}
SPI_SETFOCUSBORDERHEIGHT = $2011;
{$EXTERNALSYM SPI_SETFOCUSBORDERHEIGHT}
type
EJVCLComputerInfoEx = class(EJVCLException);
{$EXTERNALSYM PDevBroadcastHdr}
PDevBroadcastHdr = ^TDevBroadcastHdr;
{$EXTERNALSYM DEV_BROADCAST_HDR}
DEV_BROADCAST_HDR = packed record
dbch_size: DWORD;
dbch_devicetype: DWORD;
dbch_reserved: DWORD;
end;
TDevBroadcastHdr = DEV_BROADCAST_HDR;
{$EXTERNALSYM PDevBroadcastVolume}
PDevBroadcastVolume = ^TDevBroadcastVolume;
{$EXTERNALSYM DEV_BROADCAST_VOLUME}
DEV_BROADCAST_VOLUME = packed record
dbcv_size: DWORD;
dbcv_devicetype: DWORD;
dbcv_reserved: DWORD;
dbcv_unitmask: DWORD;
dbcv_flags: Word;
end;
TDevBroadcastVolume = DEV_BROADCAST_VOLUME;
TWMDeviceChange = record
Msg: Cardinal;
{$IFDEF COMPILER16_UP}
MsgFiller: TDWordFiller;
{$ENDIF COMPILER16_UP}
Event: WPARAM;
dwData: Pointer;
Result: LRESULT;
end;
// TJvReadOnlyInfo doesn't have any writeable properties
TJvReadOnlyInfo = class(TPersistent);
// TJvWriteableInfo have at least one writeable property
// and also have a ReadOnly property that controls whether the properties
// are allowed to change
TJvWriteableInfo = class(TPersistent)
private
FReadOnly: Boolean;
protected
property ReadOnly: Boolean read FReadOnly write FReadOnly default True;
public
constructor Create;
end;
TJvAPMInfo = class(TJvReadOnlyInfo)
private
function GetAPMBatteryFlag: TAPMBatteryFlag;
function GetAPMBatteryFullLifeTime: DWORD;
function GetAPMBatteryLifePercent: Integer;
function GetAPMBatteryLifeTime: DWORD;
function GetAPMLineStatus: TAPMLineStatus;
procedure SetAPMBatteryFlag(const Value: TAPMBatteryFlag);
procedure SetAPMBatteryFullLifeTime(const Value: DWORD);
procedure SetAPMBatteryLifePercent(const Value: Integer);
procedure SetAPMBatteryLifeTime(const Value: DWORD);
procedure SetAPMLineStatus(const Value: TAPMLineStatus);
published
property LineStatus: TAPMLineStatus read GetAPMLineStatus write SetAPMLineStatus stored False;
property BatteryFlag: TAPMBatteryFlag read GetAPMBatteryFlag write SetAPMBatteryFlag stored False;
property BatteryLifePercent: Integer read GetAPMBatteryLifePercent write SetAPMBatteryLifePercent stored False;
property BatteryLifeTime: DWORD read GetAPMBatteryLifeTime write SetAPMBatteryLifeTime stored False;
property BatteryFullLifeTime: DWORD read GetAPMBatteryFullLifeTime write SetAPMBatteryFullLifeTime stored False;
end;
TJvOSVersionInfo = class(TJvReadOnlyInfo)
private
function GetProductType: TNtProductType;
function GetWinProductID: string;
function GetWinProductName: string;
function GetWinVersionBuild: DWORD;
function GetWinVersionMajor: DWORD;
function GetWinVersionMinor: DWORD;
function GetWinVersionCSDString: string;
procedure SetProductType(const Value: TNtProductType);
procedure SetWinProductID(const Value: string);
procedure SetWinProductName(const Value: string);
procedure SetWinVersionBuild(const Value: DWORD);
procedure SetWinVersionMajor(const Value: DWORD);
procedure SetWinVersionMinor(const Value: DWORD);
procedure SetWinVersionCSDString(const Value: string);
function GetWinServicePackVersion: DWORD;
procedure SetWinServicePackVersion(const Value: DWORD);
function GetOSVersion: TWindowsVersion;
procedure SetOSVersion(const Value: TWindowsVersion);
published
property OSVersion: TWindowsVersion read GetOSVersion write SetOSVersion stored False;
property ProductType: TNtProductType read GetProductType write SetProductType stored False;
property ProductID: string read GetWinProductID write SetWinProductID stored False;
property ProductName: string read GetWinProductName write SetWinProductName stored False;
property ServicePackVersion: DWORD read GetWinServicePackVersion write SetWinServicePackVersion stored False;
property VersionBuild: DWORD read GetWinVersionBuild write SetWinVersionBuild stored False;
property VersionMajor: DWORD read GetWinVersionMajor write SetWinVersionMajor stored False;
property VersionMinor: DWORD read GetWinVersionMinor write SetWinVersionMinor stored False;
property VersionCSDString: string read GetWinVersionCSDString write SetWinVersionCSDString stored False;
end;
TJvCPUType = (cpuUnknown, cpuIntel, cpuCyrix, cpuAMD, cpuCrusoe);
TJvCPUInfo = class(TJvReadOnlyInfo)
private
function GetCPUInfo: TCPUInfo;
function GetCPUSpeed: TFreqInfo;
function GetCPUName: string;
function GetCPUType: TJvCPUType;
function GetExTicks: Cardinal;
function GetFamily: Byte;
function GetFeatures: Cardinal;
function GetHasCacheInfo: Boolean;
function GetHasExtendedInfo: Boolean;
function GetHasInstruction: Boolean;
function GetInCycles: Cardinal;
function GetIsFDIVOK: Boolean;
function GetManufacturer: string;
function GetMMX: Boolean;
function GetSSE: TSSESupports;
function GetModel: Byte;
function GetNormFreq: Int64;
function GetRawFreq: Int64;
function GetStepping: Byte;
function GetVendorIDString: string;
function GetProcessorCount: Integer;
function Get3DNow: Boolean;
function GetEx3DNow: Boolean;
function GetExMMX: Boolean;
function GetIs64Bits: Boolean;
function GetL1CodeCache: Cardinal;
function GetL1DataCache: Cardinal;
function GetL2Cache: Cardinal;
function GetL3Cache: Cardinal;
function GetDEPCapable: Boolean;
function GetLogicalCore: Byte;
function GetPhysicalCore: Byte;
function GetHyperThreadingTechnology: Boolean;
procedure SetCPUName(const Value: string);
procedure SetCPUType(const Value: TJvCPUType);
procedure SetExTicks(const Value: Cardinal);
procedure SetFamily(const Value: Byte);
procedure SetFeatures(const Value: Cardinal);
procedure SetHasCacheInfo(const Value: Boolean);
procedure SetHasExtendedInfo(const Value: Boolean);
procedure SetHasInstruction(const Value: Boolean);
procedure SetInCycles(const Value: Cardinal);
procedure SetIsFDIVOK(const Value: Boolean);
procedure SetManufacturer(const Value: string);
procedure SetMMX(const Value: Boolean);
procedure SetSSE(const Value: TSSESupports);
procedure SetModel(const Value: Byte);
procedure SetNormFreq(const Value: Int64);
procedure SetRawFreq(const Value: Int64);
procedure SetStepping(const Value: Byte);
procedure SetVendorIDString(const Value: string);
procedure SetProcessorCount(const Value: Integer);
procedure Set3DNow(const Value: Boolean);
procedure SetEx3DNow(const Value: Boolean);
procedure SetExMMX(const Value: Boolean);
procedure SetIs64Bits(const Value: Boolean);
procedure SetL1CodeCache(const Value: Cardinal);
procedure SetL1DataCache(const Value: Cardinal);
procedure SetL2Cache(const Value: Cardinal);
procedure SetL3Cache(const Value: Cardinal);
procedure SetDEPCapable(const Value: Boolean);
procedure SetLogicalCore(const Value: Byte);
procedure SetPhysicalCore(const Value: Byte);
procedure SetHyperThreadingTechnology(const Value: Boolean);
public
function IntelSpecific: TIntelSpecific;
function CyrixSpecific: TCyrixSpecific;
function AMDSpecific: TAMDSpecific;
function TransmetaSpecific: TTransmetaSpecific;
function ViaSpecific: TViaSpecific;
public
property Features: Cardinal read GetFeatures write SetFeatures stored False;
property TotalCycles: Cardinal read GetInCycles write SetInCycles stored False;
property TotalTicks: Cardinal read GetExTicks write SetExTicks stored False;
published
// CPUInfo
property HasInstruction: Boolean read GetHasInstruction write SetHasInstruction stored False;
property MMX: Boolean read GetMMX write SetMMX stored False;
property SSE: TSSESupports read GetSSE write SetSSE stored False;
property IsFDIVOK: Boolean read GetIsFDIVOK write SetIsFDIVOK stored False;
property HasCacheInfo: Boolean read GetHasCacheInfo write SetHasCacheInfo stored False;
property HasExtendedInfo: Boolean read GetHasExtendedInfo write SetHasExtendedInfo stored False;
property CPUType: TJvCPUType read GetCPUType write SetCPUType stored False;
property Family: Byte read GetFamily write SetFamily stored False;
property Model: Byte read GetModel write SetModel stored False;
property Stepping: Byte read GetStepping write SetStepping stored False;
property VendorIDString: string read GetVendorIDString write SetVendorIDString stored False;
property Manufacturer: string read GetManufacturer write SetManufacturer stored False;
property Name: string read GetCPUName write SetCPUName stored False;
property ProcessorCount: Integer read GetProcessorCount write SetProcessorCount stored False;
property Is64Bits: Boolean read GetIs64Bits write SetIs64Bits stored False;
property ExMMX: Boolean read GetExMMX write SetExMMX stored False;
property _3DNow: Boolean read Get3DNow write Set3DNow stored False;
property Ex3DNow: Boolean read GetEx3DNow write SetEx3DNow stored False;
property L1DataCache: Cardinal read GetL1DataCache write SetL1DataCache stored False;
property L1CodeCache: Cardinal read GetL1CodeCache write SetL1CodeCache stored False;
property L2Cache: Cardinal read GetL2Cache write SetL2Cache stored False;
property L3Cache: Cardinal read GetL3Cache write SetL3Cache stored False;
// FreqInfo
property RawFreq: Int64 read GetRawFreq write SetRawFreq stored False;
property NormFreq: Int64 read GetNormFreq write SetNormFreq stored False;
property DEPCapable: Boolean read GetDEPCapable write SetDEPCapable stored False;
property PhysicalCore: Byte read GetPhysicalCore write SetPhysicalCore stored False;
property LogicalCore: Byte read GetLogicalCore write SetLogicalCore stored False;
property HyperThreadingTechnology: Boolean read GetHyperThreadingTechnology write SetHyperThreadingTechnology stored False;
end;
TJvBIOSInfo = class(TJvReadOnlyInfo)
private
function GetBIOSCopyright: string;
function GetBIOSDate: TDateTime;
function GetBIOSExtendedInfo: string;
function GetBIOSName: string;
procedure SetBIOSCopyright(const Value: string);
procedure SetBIOSDate(const Value: TDateTime);
procedure SetBIOSExtendedInfo(const Value: string);
procedure SetBIOSName(const Value: string);
published
property Name: string read GetBIOSName write SetBIOSName stored False;
property Copyright: string read GetBIOSCopyright write SetBIOSCopyright stored False;
property ExtendedInfo: string read GetBIOSExtendedInfo write SetBIOSExtendedInfo stored False;
property Date: TDateTime read GetBIOSDate write SetBIOSDate stored False;
end;
TJvSystemFolders = class(TJvWriteableInfo)
// writeable: Current
private
FTrailingPathDelimiter: Boolean;
function GetCurrent: string;
function Get(const Index: Integer): string;
function GetProgramFiles: string;
function GetWindows: string;
function GetSystem: string;
function GetTemp: string;
procedure SetCommonFiles(const Value: string);
procedure SetCurrent(const Value: string);
procedure Put(const Index: Integer; const Value: string);
procedure SetProgramFiles(const Value: string);
procedure SetWindows(const Value: string);
procedure SetSystem(const Value: string);
procedure SetTemp(const Value: string);
function GetCommonFiles: string;
function AdjustPathDelimiter(const S: string): string;
published
property TrailingPathDelimiter: Boolean read FTrailingPathDelimiter write FTrailingPathDelimiter default False;
property CommonFiles: string read GetCommonFiles write SetCommonFiles stored False;
property Current: string read GetCurrent write SetCurrent stored False;
property ProgramFiles: string read GetProgramFiles write SetProgramFiles stored False;
property Windows: string read GetWindows write SetWindows stored False;
property System: string read GetSystem write SetSystem stored False;
property Temp: string read GetTemp write SetTemp stored False;
property Desktop: string index CSIDL_DESKTOP read Get write Put stored False;
property Programs: string index CSIDL_PROGRAMS read Get write Put stored False;
property Personal: string index CSIDL_PERSONAL read Get write Put stored False;
property Favorites: string index CSIDL_FAVORITES read Get write Put stored False;
property Startup: string index CSIDL_STARTUP read Get write Put stored False;
property Recent: string index CSIDL_RECENT read Get write Put stored False;
property SendTo: string index CSIDL_SENDTO read Get write Put stored False;
property StartMenu: string index CSIDL_STARTMENU read Get write Put stored False;
property DesktopDirectory: string index CSIDL_DESKTOPDIRECTORY read Get write Put stored False;
property Nethood: string index CSIDL_NETHOOD read Get write Put stored False;
property Fonts: string index CSIDL_FONTS read Get write Put stored False;
property CommonStartmenu: string index CSIDL_COMMON_STARTMENU read Get write Put stored False;
property CommonPrograms: string index CSIDL_COMMON_PROGRAMS read Get write Put stored False;
property CommonStartup: string index CSIDL_COMMON_STARTUP read Get write Put stored False;
property CommonDesktopDirectory: string index CSIDL_COMMON_DESKTOPDIRECTORY read Get write Put stored False;
property CommonAppData: string index CSIDL_COMMON_APPDATA read Get write Put stored False;
property AppData: string index CSIDL_APPDATA read Get write Put stored False;
property Printhood: string index CSIDL_PRINTHOOD read Get write Put stored False;
property CommonFavorites: string index CSIDL_COMMON_FAVORITES read Get write Put stored False;
property Templates: string index CSIDL_TEMPLATES read Get write Put stored False;
property InternetCache: string index CSIDL_INTERNET_CACHE read Get write Put stored False;
property Cookies: string index CSIDL_COOKIES read Get write Put stored False;
property History: string index CSIDL_HISTORY read Get write Put stored False;
property Profile: string index CSIDL_PROFILE read Get write Put stored False;
end;
TJvMemInfo = class(TJvReadOnlyInfo)
private
function GetFreePageFileMemory: Int64;
function GetFreePhysicalMemory: Int64;
function GetFreeVirtualMemory: Int64;
function GetMaxAppAddress: Integer;
function GetMemoryLoad: Int64;
function GetMinAppAddress: Integer;
function GetSwapFileSize: Int64;
function GetSwapFileUsage: Integer;
function GetTotalPageFileMemory: Int64;
function GetTotalPhysicalMemory: Int64;
function GetTotalVirtualMemory: Int64;
procedure SetFreePageFileMemory(const Value: Int64);
procedure SetFreePhysicalMemory(const Value: Int64);
procedure SetFreeVirtualMemory(const Value: Int64);
procedure SetMaxAppAddress(const Value: Integer);
procedure SetMemoryLoad(const Value: Int64);
procedure SetMinAppAddress(const Value: Integer);
procedure SetSwapFileSize(const Value: Int64);
procedure SetSwapFileUsage(const Value: Integer);
procedure SetTotalPageFileMemory(const Value: Int64);
procedure SetTotalPhysicalMemory(const Value: Int64);
procedure SetTotalVirtualMemory(const Value: Int64);
published
property MaxAppAddress: Integer read GetMaxAppAddress write SetMaxAppAddress stored False;
property MinAppAddress: Integer read GetMinAppAddress write SetMinAppAddress stored False;
property MemoryLoad: Int64 read GetMemoryLoad write SetMemoryLoad stored False;
property SwapFileSize: Int64 read GetSwapFileSize write SetSwapFileSize stored False;
property SwapFileUsage: Integer read GetSwapFileUsage write SetSwapFileUsage stored False;
property TotalPhysicalMemory: Int64 read GetTotalPhysicalMemory write SetTotalPhysicalMemory stored False;
property FreePhysicalMemory: Int64 read GetFreePhysicalMemory write SetFreePhysicalMemory stored False;
property TotalPageFileMemory: Int64 read GetTotalPageFileMemory write SetTotalPageFileMemory stored False;
property FreePageFileMemory: Int64 read GetFreePageFileMemory write SetFreePageFileMemory stored False;
property TotalVirtualMemory: Int64 read GetTotalVirtualMemory write SetTotalVirtualMemory stored False;
property FreeVirtualMemory: Int64 read GetFreeVirtualMemory write SetFreeVirtualMemory stored False;
end;
TJvKeyInfo = class(TJvWriteableInfo)
// writeable: KeyState[], NumLock, ScrollLock, CapsLock
private
function GetCapsLockKeyState: Boolean;
function GetKeyState(const VirtualKey: Cardinal): Boolean;
function GetNumLockKeyState: Boolean;
function GetScrollLockKeyState: Boolean;
procedure SetCapsLockKeyState(const Value: Boolean);
procedure SetKeyState(const VirtualKey: Cardinal; const Value: Boolean);
procedure SetNumLockKeyState(const Value: Boolean);
procedure SetScrollLockKeyState(const Value: Boolean);
public
property KeyState[const VirtualKey: Cardinal]: Boolean read GetKeyState write SetKeyState;
published
property NumLock: Boolean read GetNumLockKeyState write SetNumLockKeyState stored False;
property ScrollLock: Boolean read GetScrollLockKeyState write SetScrollLockKeyState stored False;
property CapsLock: Boolean read GetCapsLockKeyState write SetCapsLockKeyState stored False;
end;
TJvIdentification = class(TJvWriteableInfo)
// writeable: ComputerName (reboot needed), RegisteredCompany, RegisteredOwner, Comment (Win95, 98 and XP only)
private
function GetDomainName: string;
function GetLocalComputerName: string;
function GetLocalUserName: string;
function GetLocalWorkgroup: string;
function GetRegisteredCompany: string;
function GetRegisteredOwner: string;
function GetHostIPAddress(const HostName: string): string;
function GetUserDomainName(const CurUser: string): string;
function GetVolumeFileSystem(const Drive: string): string;
function GetVolumeName(const Drive: string): string;
function GetVolumeSerialNumber(const Drive: string): string;
function GetIPAddress: string;
procedure SetDomainName(const Value: string);
procedure SetLocalComputerName(const Value: string);
procedure SetLocalUserName(const Value: string);
procedure SetLocalWorkgroup(const Value: string);
procedure SetRegisteredCompany(const Value: string);
procedure SetRegisteredOwner(const Value: string);
procedure SetIPAddress(const Value: string);
function GetComment: string;
procedure SetComment(const Value: string);
public
property VolumeName[const Drive: string]: string read GetVolumeName;
property VolumeSerialNumber[const Drive: string]: string read GetVolumeSerialNumber;
property VolumeFileSystem[const Drive: string]: string read GetVolumeFileSystem;
property HostIPAddress[const HostName: string]: string read GetHostIPAddress;
property UserDomainName[const CurUser: string]: string read GetUserDomainName;
published
property IPAddress: string read GetIPAddress write SetIPAddress;
property LocalComputerName: string read GetLocalComputerName write SetLocalComputerName stored False;
property LocalUserName: string read GetLocalUserName write SetLocalUserName stored False;
property LocalWorkgroup: string read GetLocalWorkgroup write SetLocalWorkgroup stored False;
property DomainName: string read GetDomainName write SetDomainName stored False;
property RegisteredCompany: string read GetRegisteredCompany write SetRegisteredCompany stored False;
property RegisteredOwner: string read GetRegisteredOwner write SetRegisteredOwner stored False;
// NB!!! "Comment" property only supported on Win95, 96 and some NT OS's!
property Comment: string read GetComment write SetComment stored False;
end;
TJvDisplayFlags = set of (dmGrayScale, dmInterlaced);
TJvScreenMode = class(TJvReadOnlyInfo)
private
FHz: DWORD;
FBitsPerPixel: DWORD;
FWidth: Integer;
FHeight: Integer;
FFlags: TJvDisplayFlags;
procedure SetBitsPerPixel(const Value: DWORD);
procedure SetFlags(const Value: TJvDisplayFlags);
procedure SetHeight(const Value: Integer);
procedure SetHz(const Value: DWORD);
procedure SetWidth(const Value: Integer);
published
property Width: Integer read FWidth write SetWidth;
property Height: Integer read FHeight write SetHeight;
property BitsPerPixel: DWORD read FBitsPerPixel write SetBitsPerPixel;
property Hz: DWORD read FHz write SetHz;
property Flags: TJvDisplayFlags read FFlags write SetFlags;
end;
TJvScreenModes = class(TJvReadOnlyInfo)
private
FItems: TList;
FDefaultMode: TJvScreenMode;
function GetItems(Index: Integer): TJvScreenMode;
procedure SetItems(Index: Integer; const Value: TJvScreenMode);
function GetCount: Integer;
protected
procedure Clear;
public
constructor Create;
destructor Destroy; override;
procedure Refresh;
property Items[Index: Integer]: TJvScreenMode read GetItems write SetItems; default;
property Count: Integer read GetCount;
end;
TJvScreenInfo = class(TJvWriteableInfo)
// writeable: BitsPerPixel, Flags, Width, Height, Hz
private
FScreenModes: TJvScreenModes;
function GetBitsPerPixel: DWORD;
function GetScreenResolution: TPoint;
function GetScreenFrequency: DWORD;
function GetScreenHeight: DWORD;
function GetScreenWidth: DWORD;
procedure SetBitsPerPixel(const Value: DWORD);
procedure SetScreenResolution(const Value: TPoint);
procedure SetScreenFrequency(const Value: DWORD);
procedure SetScreenHeight(const Value: DWORD);
procedure SetScreenWidth(const Value: DWORD);
function GetFlags: TJvDisplayFlags;
procedure SetFlags(const Value: TJvDisplayFlags);
function GetScreenModes: TJvScreenModes;
procedure SetScreenModes(const Value: TJvScreenModes);
protected
function GetCurrentMode: TDeviceMode;
procedure SetCurrentMode(ADeviceMode: TDeviceMode; Flags: DWORD);
public
destructor Destroy; override;
property ScreenResolution: TPoint read GetScreenResolution write SetScreenResolution stored False;
property ScreenModes: TJvScreenModes read GetScreenModes write SetScreenModes stored False;
published
property BitsPerPixel: DWORD read GetBitsPerPixel write SetBitsPerPixel stored False;
property Flags: TJvDisplayFlags read GetFlags write SetFlags;
property Width: DWORD read GetScreenWidth write SetScreenWidth stored False;
property Height: DWORD read GetScreenHeight write SetScreenHeight stored False;
property Hz: DWORD read GetScreenFrequency write SetScreenFrequency stored False;
end;
TJvAppVersions = class(TJvReadOnlyInfo)
private
function GetADOVersion: string;
function GetBDELocation: string;
function GetBDEVersion: string;
function GetIEVersion: string;
function GetOpenGLVersion: string;
function GetDirectXVersion: string;
procedure SetADOVersion(const Value: string);
procedure SetBDEVersion(const Value: string);
procedure SetIEVersion(const Value: string);
procedure SetOpenGLVersion(const Value: string);
procedure SetDirectXVersion(const Value: string);
published
property DirectX: string read GetDirectXVersion write SetDirectXVersion stored False;
property OpenGL: string read GetOpenGLVersion write SetOpenGLVersion stored False;
property BDE: string read GetBDEVersion write SetBDEVersion stored False;
property ADO: string read GetADOVersion write SetADOVersion stored False;
property InternetExplorer: string read GetIEVersion write SetIEVersion stored False;
end;
TJvHWDockInfo = set of (diDocked, diUndocked, diUserSupplied, diUserDocked, diUserUndocked);
TJvHardwareProfile = class(TJvReadOnlyInfo)
private
function GetDockInfo: TJvHWDockInfo;
function GetGUID: string;
function GetName: string;
function GetNativeType: HW_PROFILE_INFO;
procedure SetDockInfo(const Value: TJvHWDockInfo);
procedure SetGUID(const Value: string);
procedure SetName(const Value: string);
public
property NativeType: HW_PROFILE_INFO read GetNativeType;
published
property GUID: string read GetGUID write SetGUID stored False;
property Name: string read GetName write SetName stored False;
property DockInfo: TJvHWDockInfo read GetDockInfo write SetDockInfo stored False;
end;
TJvWallpaperStyle = (wsCenter, wsUnused, wsStretch);
TJvMiscInfo = class(TJvWriteableInfo)
// writeable: ScreenSaver, Pattern, Wallpaper, WallpaperStyle, WallpaperTiled
// CurrentColorScheme
private
FVersions: TJvAppVersions;
FHardwareProfile: TJvHardwareProfile;
FColorSchemes: TStrings;
function GetIsOnline: Boolean;
function GetScreenSaver: string;
function GetDVDRegion: Integer;
function GetTimeRunning: Int64;
function GetTimeRunningAsString: string;
function GetNetBIOS: Boolean;
function GetVersions: TJvAppVersions;
function GetHardwareProfile: TJvHardwareProfile;
function GetPattern: string;
function GetWallpaper: string;
function GetWallpaperStyle: TJvWallpaperStyle;
function GetWallpaperTiled: Boolean;
function GetColorSchemes: TStrings;
function GetCurrentColorScheme: string;
procedure SetIsOnline(const Value: Boolean);
procedure SetScreenSaver(const Value: string);
procedure SetDVDRegion(const Value: Integer);
procedure SetTimeRunning(const Value: Int64);
procedure SetTimeRunningAsString(const Value: string);
procedure SetNetBIOS(const Value: Boolean);
procedure SetVersions(const Value: TJvAppVersions);
procedure SetHardwareProfile(const Value: TJvHardwareProfile);
procedure SetPattern(const Value: string);
procedure SetWallpaper(const Value: string);
procedure SetWallpaperStyle(const Value: TJvWallpaperStyle);
procedure SetWallpaperTiled(const Value: Boolean);
procedure SetColorSchemes(const Value: TStrings);
procedure SetCurrentColorScheme(const Value: string);
public
destructor Destroy; override;
published
property TimeRunning: Int64 read GetTimeRunning write SetTimeRunning stored False;
property TimeRunningAsString: string read GetTimeRunningAsString write SetTimeRunningAsString stored False;
property Online: Boolean read GetIsOnline write SetIsOnline stored False;
property ScreenSaver: string read GetScreenSaver write SetScreenSaver stored False;
property DVDRegion: Integer read GetDVDRegion write SetDVDRegion stored False;
property NetBIOS: Boolean read GetNetBIOS write SetNetBIOS stored False;
property WallpaperTiled: Boolean read GetWallpaperTiled write SetWallpaperTiled stored False;
property Wallpaper: string read GetWallpaper write SetWallpaper stored False;
property WallpaperStyle: TJvWallpaperStyle read GetWallpaperStyle write SetWallpaperStyle stored False;
property Pattern: string read GetPattern write SetPattern stored False;
property ColorSchemes: TStrings read GetColorSchemes write SetColorSchemes stored False;
property CurrentColorScheme: string read GetCurrentColorScheme write SetCurrentColorScheme stored False;
property Versions: TJvAppVersions read GetVersions write SetVersions stored False;
property HardwareProfile: TJvHardwareProfile read GetHardwareProfile write SetHardwareProfile stored False;
end;
TJvCleanBoot = (cbNormal, cbFailSafe, cbFailSafeNetwork);
TJvWindowsArrange = set of (waDown, waLeft, waRight, waUp, waBottomLeft,
waBottomRight, waHide, waTopLeft, waTopRight);
TJvMetricsInfo = class(TJvWriteableInfo)
// writeable: CursorX, CursorY, CaretX, CaretY
private
function GetBoolMetrics(const Index: Integer): Boolean;
function GetMetrics(const Index: Integer): Integer;
function GetArrange: TJvWindowsArrange;
function GetCleanBoot: TJvCleanBoot;
function GetCaretBlinkTime: DWORD;
function GetCaretPos(const Index: Integer): Integer;
function GetCursorPos(const Index: Integer): Integer;
procedure SetBoolMetrics(const Index: Integer; const Value: Boolean);
procedure SetMetrics(const Index, Value: Integer);
procedure SetArrange(const Value: TJvWindowsArrange);
procedure SetCleanBoot(const Value: TJvCleanBoot);
procedure SetCaretBlinkTime(const Value: DWORD);
procedure SetCaretPos(const Index, Value: Integer);
procedure SetCursorPos(const Index, Value: Integer);
function GetDialogBaseUnits: Integer;
procedure SetDialogBaseUnits(const Value: Integer);
function GetACP: Integer;
function GetDoubleClickTime: Integer;
function GetOEMCP: Integer;
procedure SetACP(const Value: Integer);
procedure SetDoubleClickTime(const Value: Integer);
procedure SetOEMCP(const Value: Integer);
published
property Arrange: TJvWindowsArrange read GetArrange write SetArrange stored False;
property CleanBoot: TJvCleanBoot read GetCleanBoot write SetCleanBoot stored False;
property MouseButtons: Integer index SM_CMOUSEBUTTONS read GetMetrics write SetMetrics stored False;
property BorderWidth: Integer index SM_CXBORDER read GetMetrics write SetMetrics stored False;
property BorderHeight: Integer index SM_CYBORDER read GetMetrics write SetMetrics stored False;
property CursorWidth: Integer index SM_CXCURSOR read GetMetrics write SetMetrics stored False;
property CursorHeight: Integer index SM_CYCURSOR read GetMetrics write SetMetrics stored False;
property CaretBlinkTime: LongWord read GetCaretBlinkTime write SetCaretBlinkTime stored False;
property CaretX: Integer index 0 read GetCaretPos write SetCaretPos stored False;
property CaretY: Integer index 1 read GetCaretPos write SetCaretPos stored False;
property CursorX: Integer index 0 read GetCursorPos write SetCursorPos stored False;
property CursorY: Integer index 1 read GetCursorPos write SetCursorPos stored False;
property CodePageANSI: Integer read GetACP write SetACP stored False;
property CodePageOEM: Integer read GetOEMCP write SetOEMCP stored False;
property DialogBaseUnits: Integer read GetDialogBaseUnits write SetDialogBaseUnits stored False;
property DialogFrameWidth: Integer index SM_CXDLGFRAME read GetMetrics write SetMetrics stored False;
property DialogFrameHeight: Integer index SM_CYDLGFRAME read GetMetrics write SetMetrics stored False;
property DoubleClickWidth: Integer index SM_CXDOUBLECLK read GetMetrics write SetMetrics stored False;
property DoubleClickHeight: Integer index SM_CYDOUBLECLK read GetMetrics write SetMetrics stored False;
property DoubleClickTime: Integer read GetDoubleClickTime write SetDoubleClickTime stored False;
property DragWidth: Integer index SM_CXDRAG read GetMetrics write SetMetrics stored False;
property DragHeight: Integer index SM_CYDRAG read GetMetrics write SetMetrics stored False;
property EdgeWidth: Integer index SM_CXEDGE read GetMetrics write SetMetrics stored False;
property EdgeHeight: Integer index SM_CYEDGE read GetMetrics write SetMetrics stored False;
property FixedFrameWidth: Integer index SM_CXFIXEDFRAME read GetMetrics write SetMetrics stored False;
property FixedFrameHeight: Integer index SM_CYFIXEDFRAME read GetMetrics write SetMetrics stored False;
property FrameWidth: Integer index SM_CXFRAME read GetMetrics write SetMetrics stored False;
property FrameHeight: Integer index SM_CYFRAME read GetMetrics write SetMetrics stored False;
property ScreenClientWidth: Integer index SM_CXFULLSCREEN read GetMetrics write SetMetrics stored False;
property ScreenClientHeight: Integer index SM_CYFULLSCREEN read GetMetrics write SetMetrics stored False;
property ScreenWidth: Integer index SM_CXSCREEN read GetMetrics write SetMetrics stored False;
property ScreenHeight: Integer index SM_CYSCREEN read GetMetrics write SetMetrics stored False;
property ScrollArrowWidth: Integer index SM_CXHSCROLL read GetMetrics write SetMetrics stored False;
property ScrollArrowHeight: Integer index SM_CYHSCROLL read GetMetrics write SetMetrics stored False;
property ScrollThumbWidth: Integer index SM_CXHTHUMB read GetMetrics write SetMetrics stored False;
property ScrollThumbHeight: Integer index SM_CYVTHUMB read GetMetrics write SetMetrics stored False;
property ScrollWidth: Integer index SM_CXVSCROLL read GetMetrics write SetMetrics stored False;
property ScrollHeight: Integer index SM_CYVSCROLL read GetMetrics write SetMetrics stored False;
property IconWidth: Integer index SM_CXICON read GetMetrics write SetMetrics stored False;
property IconHeight: Integer index SM_CYICON read GetMetrics write SetMetrics stored False;
property SmallIconWidth: Integer index SM_CXSMICON read GetMetrics write SetMetrics stored False;
property SmallIconHeight: Integer index SM_CYSMICON read GetMetrics write SetMetrics stored False;
property IconSpacingWidth: Integer index SM_CXICONSPACING read GetMetrics write SetMetrics stored False;
property IconSpacingHeight: Integer index SM_CYICONSPACING read GetMetrics write SetMetrics stored False;
property MaximizedWindowWidth: Integer index SM_CXMAXIMIZED read GetMetrics write SetMetrics stored False;
property MaximizedWindowHeight: Integer index SM_CYMAXIMIZED read GetMetrics write SetMetrics stored False;
property MinimizedWindowWidth: Integer index SM_CXMINIMIZED read GetMetrics write SetMetrics stored False;
property MinimizedWindowHeight: Integer index SM_CYMINIMIZED read GetMetrics write SetMetrics stored False;
property MaxDragWindowWidth: Integer index SM_CXMAXTRACK read GetMetrics write SetMetrics stored False;
property MaxDragWindowHeight: Integer index SM_CYMAXTRACK read GetMetrics write SetMetrics stored False;
property MinDragWindowWidth: Integer index SM_CXMINTRACK read GetMetrics write SetMetrics stored False;
property MinDragWindowHeight: Integer index SM_CYMINTRACK read GetMetrics write SetMetrics stored False;
property MinWindowWidth: Integer index SM_CXMIN read GetMetrics write SetMetrics stored False;
property MinWindowHeight: Integer index SM_CYMIN read GetMetrics write SetMetrics stored False;
property MenuCheckWidth: Integer index SM_CXMENUCHECK read GetMetrics write SetMetrics stored False;
property MenuCheckHeight: Integer index SM_CYMENUCHECK read GetMetrics write SetMetrics stored False;
property MenuButtonWidth: Integer index SM_CXMENUSIZE read GetMetrics write SetMetrics stored False;
property MenuButtonHeight: Integer index SM_CYMENUSIZE read GetMetrics write SetMetrics stored False;
property MinimizedWindowSpacingWidth: Integer index SM_CXMINSPACING read GetMetrics write SetMetrics stored False;
property MinimizedWindowSpacingHeight: Integer index SM_CYMINSPACING read GetMetrics write SetMetrics stored False;
property CaptionButtonWidth: Integer index SM_CXSIZE read GetMetrics write SetMetrics stored False;
property CaptionButtonheight: Integer index SM_CYSIZE read GetMetrics write SetMetrics stored False;
property ResizeBorderWidth: Integer index SM_CXSIZEFRAME read GetMetrics write SetMetrics stored False;
property ResizeBorderHeight: Integer index SM_CYSIZEFRAME read GetMetrics write SetMetrics stored False;
property SmallCaptionButtonWidth: Integer index SM_CXSMSIZE read GetMetrics write SetMetrics stored False;
property SmallCaptionButtonHeight: Integer index SM_CYSMSIZE read GetMetrics write SetMetrics stored False;
property WindowCaptionHeight: Integer index SM_CYCAPTION read GetMetrics write SetMetrics stored False;
property SmallWindowCaptionHeight: Integer index SM_CYSMCAPTION read GetMetrics write SetMetrics stored False;
property KanjiWindowHeight: Integer index SM_CYKANJIWINDOW read GetMetrics write SetMetrics stored False;
property MenuItemHeight: Integer index SM_CYMENU read GetMetrics write SetMetrics stored False;
property DBCSEnabled: Boolean index SM_DBCSENABLED read GetBoolMetrics write SetBoolMetrics stored False;
property Debug: Boolean index SM_DEBUG read GetBoolMetrics write SetBoolMetrics stored False;
property MenuRightAligned: Boolean index SM_MENUDROPALIGNMENT read GetBoolMetrics write SetBoolMetrics stored False;
property MidEastEnabled: Boolean index SM_MIDEASTENABLED read GetBoolMetrics write SetBoolMetrics stored False;
property MousePresent: Boolean index SM_MOUSEPRESENT read GetBoolMetrics write SetBoolMetrics stored False;
property MouseWheelPresent: Boolean index SM_MOUSEWHEELPRESENT read GetBoolMetrics write SetBoolMetrics stored
False;
property Networked: Boolean index SM_NETWORK read GetBoolMetrics write SetBoolMetrics stored False;
property PenWindows: Boolean index SM_PENWINDOWS read GetBoolMetrics write SetBoolMetrics stored False;
property Secure: Boolean index SM_SECURE read GetBoolMetrics write SetBoolMetrics stored False;
property ShowSounds: Boolean index SM_SHOWSOUNDS read GetBoolMetrics write SetBoolMetrics stored False;
property SlowMachine: Boolean index SM_SLOWMACHINE read GetBoolMetrics write SetBoolMetrics stored False;
property MouseButtonsSwapped: Boolean index SM_SWAPBUTTON read GetBoolMetrics write SetBoolMetrics stored False;
end;
TJvAccessTimeOutFlags = set of (atfOnOffFeedback, atfTimeOutOn);
TJvAccessTimeOut = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
function GetFlags: TJvAccessTimeOutFlags;
function GetNativeType: ACCESSTIMEOUT;
function GetTimeOutMS: DWORD;
procedure SetFlags(const Value: TJvAccessTimeOutFlags);
procedure SetTimeOutMS(const Value: DWORD);
procedure SetNativeType(Value: ACCESSTIMEOUT);
public
property NativeType: ACCESSTIMEOUT read GetNativeType write SetNativeType;
published
property TimeOutMS: DWORD read GetTimeOutMS write SetTimeOutMS stored False;
property Flags: TJvAccessTimeOutFlags read GetFlags write SetFlags stored False;
end;
TJvFilterKeyFlags = set of (fkfAvailable, fkfClickOn, fkfFilterKeysOn, fkfHotkeyActive,
fkfHotkeySound, fkfConfirmHotkey, fkfIndicator);
TJvFilterKeys = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
function GetBounceMSec: DWORD;
function GetDelayMSec: DWORD;
function GetFlags: TJvFilterKeyFlags;
function GetNativeType: FILTERKEYS;
function GetRepeatMSec: DWORD;
function GetWaitMSec: DWORD;
procedure SetBounceMSec(const Value: DWORD);
procedure SetDelayMSec(const Value: DWORD);
procedure SetFlags(const Value: TJvFilterKeyFlags);
procedure SetNativeType(Value: FILTERKEYS);
procedure SetRepeatMSec(const Value: DWORD);
procedure SetWaitMSec(const Value: DWORD);
public
property NativeType: FILTERKEYS read GetNativeType write SetNativeType;
published
property Flags: TJvFilterKeyFlags read GetFlags write SetFlags stored False;
property WaitMSec: DWORD read GetWaitMSec write SetWaitMSec stored False;
property DelayMSec: DWORD read GetDelayMSec write SetDelayMSec stored False;
property RepeatMSec: DWORD read GetRepeatMSec write SetRepeatMSec stored False;
property BounceMSec: DWORD read GetBounceMSec write SetBounceMSec stored False;
end;
TJvHighContrastFlags = set of (hcfAvailable, hcfConfirmHotKey, hcfHighContrastOn,
hcfHotkeyActive, hcfHotkeyAvailable, hcfHotkeySound, hcfIndicator);
TJvHighContrast = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
function GetDefaultScheme: string;
function GetFlags: TJvHighContrastFlags;
function GetNativeType: HIGHCONTRAST;
procedure SetDefaultScheme(const Value: string);
procedure SetFlags(const Value: TJvHighContrastFlags);
procedure SetNativeType(Value: HIGHCONTRAST);
public
property NativeType: HIGHCONTRAST read GetNativeType write SetNativeType;
published
property Flags: TJvHighContrastFlags read GetFlags write SetFlags stored False;
property DefaultScheme: string read GetDefaultScheme write SetDefaultScheme stored False;
end;
TJvIconMetrics = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
FFont: TFont;
function GetFont: TFont;
function GetHorzSpacing: Integer;
function GetNativeType: ICONMETRICS;
function GetTitleWrap: Boolean;
function GetVertSpacing: Integer;
procedure SetFont(const Value: TFont);
procedure SetHorzSpacing(const Value: Integer);
procedure SetNativeType(Value: ICONMETRICS);
procedure SetTitleWrap(const Value: Boolean);
procedure SetVertSpacing(const Value: Integer);
public
destructor Destroy; override;
property NativeType: ICONMETRICS read GetNativeType write SetNativeType;
published
property VertSpacing: Integer read GetVertSpacing write SetVertSpacing stored False;
property HorzSpacing: Integer read GetHorzSpacing write SetHorzSpacing stored False;
property TitleWrap: Boolean read GetTitleWrap write SetTitleWrap stored False;
property Font: TFont read GetFont write SetFont stored False;
end;
TJvMinimizedMetrics = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
function GetArrange: TJvWindowsArrange;
function GetHorzGap: Integer;
function GetNativeType: MINIMIZEDMETRICS;
function GetVertGap: Integer;
function GetWidth: Integer;
procedure SetArrange(const Value: TJvWindowsArrange);
procedure SetHorzGap(const Value: Integer);
procedure SetNativeType(Value: MINIMIZEDMETRICS);
procedure SetVertGap(const Value: Integer);
procedure SetWidth(const Value: Integer);
public
property NativeType: MINIMIZEDMETRICS read GetNativeType write SetNativeType;
published
property Width: Integer read GetWidth write SetWidth stored False;
property HorzGap: Integer read GetHorzGap write SetHorzGap stored False;
property VertGap: Integer read GetVertGap write SetVertGap stored False;
property Arrange: TJvWindowsArrange read GetArrange write SetArrange stored False;
end;
TJvMouseKeysFlags = set of (mkfAvailable, mkfConfirmHotKey, mkfHotkeyActive, mkfHotkeySound, mkfIndicator,
mkfMouseKeysOn, mkfModifiers, mkfReplaceNumbers);
TJvMouseKeys = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
function GetCtrlSpeed: DWORD;
function GetFlags: TJvMouseKeysFlags;
function GetMaxSpeed: DWORD;
function GetNativeType: MOUSEKEYS;
function GetTimeToMaxSpeed: DWORD;
procedure SetCtrlSpeed(const Value: DWORD);
procedure SetFlags(const Value: TJvMouseKeysFlags);
procedure SetMaxSpeed(const Value: DWORD);
procedure SetNativeType(Value: MOUSEKEYS);
procedure SetTimeToMaxSpeed(const Value: DWORD);
public
property NativeType: MOUSEKEYS read GetNativeType write SetNativeType;
published
property Flags: TJvMouseKeysFlags read GetFlags write SetFlags stored False;
property MaxSpeed: DWORD read GetMaxSpeed write SetMaxSpeed stored False;
property TimeToMaxSpeed: DWORD read GetTimeToMaxSpeed write SetTimeToMaxSpeed stored False;
property CtrlSpeed: DWORD read GetCtrlSpeed write SetCtrlSpeed stored False;
end;
TJvNonClientMetrics = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)
private
FCaptionFont: TFont;
FMenuFont: TFont;
FMessageFont: TFont;
FStatusFont: TFont;
FSmallCaptionFont: TFont;
function GetBorderWidth: Integer;
function GetCaptionFont: TFont;
function GetCaptionHeight: Integer;
function GetCaptionWidth: Integer;
function GetMenuFont: TFont;
function GetMenuHeight: Integer;
function GetMenuWidth: Integer;
function GetMessageFont: TFont;
function GetNativeType: NONCLIENTMETRICS;
function GetScrollHeight: Integer;
function GetScrollWidth: Integer;
function GetSmallCaptionFont: TFont;
function GetSmallCaptionHeight: Integer;
function GetSmallCaptionWidth: Integer;
function GetStatusFont: TFont;
procedure SetBorderWidth(const Value: Integer);
procedure SetCaptionFont(const Value: TFont);
procedure SetCaptionHeight(const Value: Integer);
procedure SetCaptionWidth(const Value: Integer);
procedure SetMenuFont(const Value: TFont);
procedure SetMenuHeight(const Value: Integer);
procedure SetMenuWidth(const Value: Integer);
procedure SetMessageFont(const Value: TFont);
procedure SetNativeType(Value: NONCLIENTMETRICS);
procedure SetScrollHeight(const Value: Integer);
procedure SetScrollWidth(const Value: Integer);
procedure SetSmallCaptionFont(const Value: TFont);
procedure SetSmallCaptionHeight(const Value: Integer);
procedure SetSmallCaptionWidth(const Value: Integer);
procedure SetStatusFont(const Value: TFont);
public
property NativeType: NONCLIENTMETRICS read GetNativeType write SetNativeType;
destructor Destroy; override;
published
property BorderWidth: Integer read GetBorderWidth write SetBorderWidth stored False;
property ScrollWidth: Integer read GetScrollWidth write SetScrollWidth stored False;
property ScrollHeight: Integer read GetScrollHeight write SetScrollHeight stored False;
property CaptionWidth: Integer read GetCaptionWidth write SetCaptionWidth stored False;
property CaptionHeight: Integer read GetCaptionHeight write SetCaptionHeight stored False;
property CaptionFont: TFont read GetCaptionFont write SetCaptionFont stored False;
property SmallCaptionWidth: Integer read GetSmallCaptionWidth write SetSmallCaptionWidth stored False;
property SmallCaptionHeight: Integer read GetSmallCaptionHeight write SetSmallCaptionHeight stored False;
property SmallCaptionFont: TFont read GetSmallCaptionFont write SetSmallCaptionFont stored False;
property MenuWidth: Integer read GetMenuWidth write SetMenuWidth stored False;
property MenuHeight: Integer read GetMenuHeight write SetMenuHeight stored False;
property MenuFont: TFont read GetMenuFont write SetMenuFont stored False;
property StatusFont: TFont read GetStatusFont write SetStatusFont stored False;
property MessageFont: TFont read GetMessageFont write SetMessageFont stored False;
end;
TJvSerialKeysFlags = set of (serkfAvailable, serkfIndicator, serkfSerialKeysOn);
TJvSerialKeysPortState = (psSerialKeysIgnored, psSerialKeysAware, psSerialKeysAlways);
TJvSerialKeys = class(TJvWriteableInfo)
// writeable: all (using NativeType recommended)