Artifact 3495de98d7c1ed4ec40d6c3a1fe996c3f11657c4:
- File
src/win32/winreg.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 72 winr 0070: 65 67 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 eg.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79 by 01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20 Stewart Gordon 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 *..* 0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c Placed into publ 0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 ic domain 0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a *..\************ 02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f ***********/..mo 02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e 72 65 dule win32.winre 0300: 67 3b 0d 0a 70 72 61 67 6d 61 28 6c 69 62 2c 20 g;..pragma(lib, 0310: 22 61 64 76 61 70 69 33 32 22 29 3b 0d 0a 0d 0a "advapi32");.... 0320: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 private import w 0330: 69 6e 33 32 2e 77 33 32 61 70 69 2c 20 77 69 6e in32.w32api, win 0340: 33 32 2e 77 69 6e 62 61 73 65 2c 20 77 69 6e 33 32.winbase, win3 0350: 32 2e 77 69 6e 64 65 66 3b 0d 0a 0d 0a 65 6e 75 2.windef;....enu 0360: 6d 20 3a 20 48 4b 45 59 20 7b 20 2f 2f 20 66 6f m : HKEY { // fo 0370: 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e 2c 20 44 r some reason, D 0380: 4d 44 20 65 72 72 6f 72 73 20 69 66 20 49 20 64 MD errors if I d 0390: 6f 6e 27 74 20 67 69 76 65 20 61 6c 6c 20 74 68 on't give all th 03a0: 65 20 76 61 6c 75 65 73 20 65 78 70 6c 69 63 69 e values explici 03b0: 74 6c 79 0d 0a 09 48 4b 45 59 5f 43 4c 41 53 53 tly...HKEY_CLASS 03c0: 45 53 5f 52 4f 4f 54 20 20 20 20 20 3d 20 63 61 ES_ROOT = ca 03d0: 73 74 28 48 4b 45 59 29 20 30 78 38 30 30 30 30 st(HKEY) 0x80000 03e0: 30 30 30 2c 0d 0a 09 48 4b 45 59 5f 43 55 52 52 000,...HKEY_CURR 03f0: 45 4e 54 5f 55 53 45 52 20 20 20 20 20 3d 20 63 ENT_USER = c 0400: 61 73 74 28 48 4b 45 59 29 20 30 78 38 30 30 30 ast(HKEY) 0x8000 0410: 30 30 30 31 2c 0d 0a 09 48 4b 45 59 5f 4c 4f 43 0001,...HKEY_LOC 0420: 41 4c 5f 4d 41 43 48 49 4e 45 20 20 20 20 3d 20 AL_MACHINE = 0430: 63 61 73 74 28 48 4b 45 59 29 20 30 78 38 30 30 cast(HKEY) 0x800 0440: 30 30 30 30 32 2c 0d 0a 09 48 4b 45 59 5f 55 53 00002,...HKEY_US 0450: 45 52 53 20 20 20 20 20 20 20 20 20 20 20 20 3d ERS = 0460: 20 63 61 73 74 28 48 4b 45 59 29 20 30 78 38 30 cast(HKEY) 0x80 0470: 30 30 30 30 30 33 2c 0d 0a 09 48 4b 45 59 5f 50 000003,...HKEY_P 0480: 45 52 46 4f 52 4d 41 4e 43 45 5f 44 41 54 41 20 ERFORMANCE_DATA 0490: 3d 20 63 61 73 74 28 48 4b 45 59 29 20 30 78 38 = cast(HKEY) 0x8 04a0: 30 30 30 30 30 30 34 2c 0d 0a 09 48 4b 45 59 5f 0000004,...HKEY_ 04b0: 43 55 52 52 45 4e 54 5f 43 4f 4e 46 49 47 20 20 CURRENT_CONFIG 04c0: 20 3d 20 63 61 73 74 28 48 4b 45 59 29 20 30 78 = cast(HKEY) 0x 04d0: 38 30 30 30 30 30 30 35 2c 0d 0a 09 48 4b 45 59 80000005,...HKEY 04e0: 5f 44 59 4e 5f 44 41 54 41 20 20 20 20 20 20 20 _DYN_DATA 04f0: 20 20 3d 20 63 61 73 74 28 48 4b 45 59 29 20 30 = cast(HKEY) 0 0500: 78 38 30 30 30 30 30 30 36 0d 0a 7d 0d 0a 0d 0a x80000006..}.... 0510: 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a enum : DWORD {.. 0520: 09 52 45 47 5f 4f 50 54 49 4f 4e 5f 4e 4f 4e 5f .REG_OPTION_NON_ 0530: 56 4f 4c 41 54 49 4c 45 2c 0d 0a 09 52 45 47 5f VOLATILE,...REG_ 0540: 4f 50 54 49 4f 4e 5f 56 4f 4c 41 54 49 4c 45 0d OPTION_VOLATILE. 0550: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f .}....enum : DWO 0560: 52 44 20 7b 0d 0a 09 52 45 47 5f 43 52 45 41 54 RD {...REG_CREAT 0570: 45 44 5f 4e 45 57 5f 4b 45 59 20 3d 20 31 2c 0d ED_NEW_KEY = 1,. 0580: 0a 09 52 45 47 5f 4f 50 45 4e 45 44 5f 45 58 49 ..REG_OPENED_EXI 0590: 53 54 49 4e 47 5f 4b 45 59 0d 0a 7d 0d 0a 0d 0a STING_KEY..}.... 05a0: 65 6e 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a enum : DWORD {.. 05b0: 09 52 45 47 5f 4e 4f 4e 45 20 20 20 20 20 20 20 .REG_NONE 05c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 05d0: 3d 20 30 2c 0d 0a 09 52 45 47 5f 53 5a 2c 0d 0a = 0,...REG_SZ,.. 05e0: 09 52 45 47 5f 45 58 50 41 4e 44 5f 53 5a 2c 0d .REG_EXPAND_SZ,. 05f0: 0a 09 52 45 47 5f 42 49 4e 41 52 59 2c 0d 0a 09 ..REG_BINARY,... 0600: 52 45 47 5f 44 57 4f 52 44 5f 4c 49 54 54 4c 45 REG_DWORD_LITTLE 0610: 5f 45 4e 44 49 41 4e 2c 0d 0a 09 52 45 47 5f 44 _ENDIAN,...REG_D 0620: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 20 WORD 0630: 20 20 20 20 20 20 20 20 20 20 3d 20 52 45 47 5f = REG_ 0640: 44 57 4f 52 44 5f 4c 49 54 54 4c 45 5f 45 4e 44 DWORD_LITTLE_END 0650: 49 41 4e 2c 0d 0a 09 52 45 47 5f 44 57 4f 52 44 IAN,...REG_DWORD 0660: 5f 42 49 47 5f 45 4e 44 49 41 4e 2c 0d 0a 09 52 _BIG_ENDIAN,...R 0670: 45 47 5f 4c 49 4e 4b 2c 0d 0a 09 52 45 47 5f 4d EG_LINK,...REG_M 0680: 55 4c 54 49 5f 53 5a 2c 0d 0a 09 52 45 47 5f 52 ULTI_SZ,...REG_R 0690: 45 53 4f 55 52 43 45 5f 4c 49 53 54 2c 0d 0a 09 ESOURCE_LIST,... 06a0: 52 45 47 5f 46 55 4c 4c 5f 52 45 53 4f 55 52 43 REG_FULL_RESOURC 06b0: 45 5f 44 45 53 43 52 49 50 54 4f 52 2c 0d 0a 09 E_DESCRIPTOR,... 06c0: 52 45 47 5f 52 45 53 4f 55 52 43 45 5f 52 45 51 REG_RESOURCE_REQ 06d0: 55 49 52 45 4d 45 4e 54 53 5f 4c 49 53 54 2c 0d UIREMENTS_LIST,. 06e0: 0a 09 52 45 47 5f 51 57 4f 52 44 5f 4c 49 54 54 ..REG_QWORD_LITT 06f0: 4c 45 5f 45 4e 44 49 41 4e 2c 0d 0a 09 52 45 47 LE_ENDIAN,...REG 0700: 5f 51 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 _QWORD 0710: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 52 45 = RE 0720: 47 5f 51 57 4f 52 44 5f 4c 49 54 54 4c 45 5f 45 G_QWORD_LITTLE_E 0730: 4e 44 49 41 4e 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 NDIAN..}....cons 0740: 74 20 44 57 4f 52 44 0d 0a 09 52 45 47 5f 4e 4f t DWORD...REG_NO 0750: 54 49 46 59 5f 43 48 41 4e 47 45 5f 4e 41 4d 45 TIFY_CHANGE_NAME 0760: 20 20 20 20 20 20 20 3d 20 31 2c 0d 0a 09 52 45 = 1,...RE 0770: 47 5f 4e 4f 54 49 46 59 5f 43 48 41 4e 47 45 5f G_NOTIFY_CHANGE_ 0780: 41 54 54 52 49 42 55 54 45 53 20 3d 20 32 2c 0d ATTRIBUTES = 2,. 0790: 0a 09 52 45 47 5f 4e 4f 54 49 46 59 5f 43 48 41 ..REG_NOTIFY_CHA 07a0: 4e 47 45 5f 4c 41 53 54 5f 53 45 54 20 20 20 3d NGE_LAST_SET = 07b0: 20 34 2c 0d 0a 09 52 45 47 5f 4e 4f 54 49 46 59 4,...REG_NOTIFY 07c0: 5f 43 48 41 4e 47 45 5f 53 45 43 55 52 49 54 59 _CHANGE_SECURITY 07d0: 20 20 20 3d 20 38 3b 0d 0a 0d 0a 61 6c 69 61 73 = 8;....alias 07e0: 20 41 43 43 45 53 53 5f 4d 41 53 4b 20 52 45 47 ACCESS_MASK REG 07f0: 53 41 4d 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 56 SAM;....struct V 0800: 41 4c 45 4e 54 41 20 7b 0d 0a 09 4c 50 53 54 52 ALENTA {...LPSTR 0810: 20 76 65 5f 76 61 6c 75 65 6e 61 6d 65 3b 0d 0a ve_valuename;.. 0820: 09 44 57 4f 52 44 20 76 65 5f 76 61 6c 75 65 6c .DWORD ve_valuel 0830: 65 6e 3b 0d 0a 09 44 57 4f 52 44 20 76 65 5f 76 en;...DWORD ve_v 0840: 61 6c 75 65 70 74 72 3b 0d 0a 09 44 57 4f 52 44 alueptr;...DWORD 0850: 20 76 65 5f 74 79 70 65 3b 0d 0a 7d 0d 0a 61 6c ve_type;..}..al 0860: 69 61 73 20 56 41 4c 45 4e 54 41 2a 20 50 56 41 ias VALENTA* PVA 0870: 4c 45 4e 54 41 3b 0d 0a 0d 0a 73 74 72 75 63 74 LENTA;....struct 0880: 20 56 41 4c 45 4e 54 57 20 7b 0d 0a 09 4c 50 57 VALENTW {...LPW 0890: 53 54 52 20 76 65 5f 76 61 6c 75 65 6e 61 6d 65 STR ve_valuename 08a0: 3b 0d 0a 09 44 57 4f 52 44 20 20 76 65 5f 76 61 ;...DWORD ve_va 08b0: 6c 75 65 6c 65 6e 3b 0d 0a 09 44 57 4f 52 44 20 luelen;...DWORD 08c0: 20 76 65 5f 76 61 6c 75 65 70 74 72 3b 0d 0a 09 ve_valueptr;... 08d0: 44 57 4f 52 44 20 20 76 65 5f 74 79 70 65 3b 0d DWORD ve_type;. 08e0: 0a 7d 0d 0a 61 6c 69 61 73 20 56 41 4c 45 4e 54 .}..alias VALENT 08f0: 57 2a 20 50 56 41 4c 45 4e 54 57 3b 0d 0a 0d 0a W* PVALENTW;.... 0900: 2f 2f 20 52 52 46 20 2d 20 52 65 67 69 73 74 72 // RRF - Registr 0910: 79 20 52 6f 75 74 69 6e 65 20 46 6c 61 67 73 20 y Routine Flags 0920: 28 66 6f 72 20 52 65 67 47 65 74 56 61 6c 75 65 (for RegGetValue 0930: 29 0d 0a 73 74 61 74 69 63 20 69 66 20 28 5f 57 )..static if (_W 0940: 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 IN32_WINNT >= 0x 0950: 36 30 30 29 20 7b 0d 0a 09 65 6e 75 6d 20 3a 20 600) {...enum : 0960: 44 57 4f 52 44 20 7b 0d 0a 09 09 52 52 46 5f 52 DWORD {....RRF_R 0970: 54 5f 52 45 47 5f 4e 4f 4e 45 20 20 20 20 20 20 T_REG_NONE 0980: 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 = 0x00000001,... 0990: 09 52 52 46 5f 52 54 5f 52 45 47 5f 53 5a 20 20 .RRF_RT_REG_SZ 09a0: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 = 0x000000 09b0: 30 32 2c 0d 0a 09 09 52 52 46 5f 52 54 5f 52 45 02,....RRF_RT_RE 09c0: 47 5f 45 58 50 41 4e 44 5f 53 5a 20 3d 20 30 78 G_EXPAND_SZ = 0x 09d0: 30 30 30 30 30 30 30 34 2c 0d 0a 09 09 52 52 46 00000004,....RRF 09e0: 5f 52 54 5f 52 45 47 5f 42 49 4e 41 52 59 20 20 _RT_REG_BINARY 09f0: 20 20 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0d = 0x00000008,. 0a00: 0a 09 09 52 52 46 5f 52 54 5f 52 45 47 5f 44 57 ...RRF_RT_REG_DW 0a10: 4f 52 44 20 20 20 20 20 3d 20 30 78 30 30 30 30 ORD = 0x0000 0a20: 30 30 31 30 2c 0d 0a 09 09 52 52 46 5f 52 54 5f 0010,....RRF_RT_ 0a30: 52 45 47 5f 4d 55 4c 54 49 5f 53 5a 20 20 3d 20 REG_MULTI_SZ = 0a40: 30 78 30 30 30 30 30 30 32 30 2c 0d 0a 09 09 52 0x00000020,....R 0a50: 52 46 5f 52 54 5f 52 45 47 5f 51 57 4f 52 44 20 RF_RT_REG_QWORD 0a60: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 34 30 = 0x00000040 0a70: 2c 0d 0a 09 09 52 52 46 5f 52 54 5f 44 57 4f 52 ,....RRF_RT_DWOR 0a80: 44 20 20 20 20 20 20 20 20 20 3d 20 52 52 46 5f D = RRF_ 0a90: 52 54 5f 52 45 47 5f 42 49 4e 41 52 59 20 7c 20 RT_REG_BINARY | 0aa0: 52 52 46 5f 52 54 5f 52 45 47 5f 44 57 4f 52 44 RRF_RT_REG_DWORD 0ab0: 2c 0d 0a 09 09 52 52 46 5f 52 54 5f 51 57 4f 52 ,....RRF_RT_QWOR 0ac0: 44 20 20 20 20 20 20 20 20 20 3d 20 52 52 46 5f D = RRF_ 0ad0: 52 54 5f 52 45 47 5f 42 49 4e 41 52 59 20 7c 20 RT_REG_BINARY | 0ae0: 52 52 46 5f 52 54 5f 52 45 47 5f 51 57 4f 52 44 RRF_RT_REG_QWORD 0af0: 2c 0d 0a 09 09 52 52 46 5f 52 54 5f 41 4e 59 20 ,....RRF_RT_ANY 0b00: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 = 0x00 0b10: 30 30 46 46 46 46 2c 0d 0a 09 09 52 52 46 5f 4e 00FFFF,....RRF_N 0b20: 4f 45 58 50 41 4e 44 20 20 20 20 20 20 20 20 20 OEXPAND 0b30: 3d 20 30 78 31 30 30 30 30 30 30 30 2c 0d 0a 09 = 0x10000000,... 0b40: 09 52 52 46 5f 5a 45 52 4f 4f 4e 46 41 49 4c 55 .RRF_ZEROONFAILU 0b50: 52 45 20 20 20 20 3d 20 30 78 32 30 30 30 30 30 RE = 0x200000 0b60: 30 30 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 65 78 74 00...}..}....ext 0b70: 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d ern (Windows) {. 0b80: 0a 09 4c 4f 4e 47 20 52 65 67 43 6c 6f 73 65 4b ..LONG RegCloseK 0b90: 65 79 28 48 4b 45 59 29 3b 0d 0a 09 4c 4f 4e 47 ey(HKEY);...LONG 0ba0: 20 52 65 67 43 6f 6e 6e 65 63 74 52 65 67 69 73 RegConnectRegis 0bb0: 74 72 79 41 28 4c 50 43 53 54 52 2c 20 48 4b 45 tryA(LPCSTR, HKE 0bc0: 59 2c 20 50 48 4b 45 59 29 3b 0d 0a 09 4c 4f 4e Y, PHKEY);...LON 0bd0: 47 20 52 65 67 43 6f 6e 6e 65 63 74 52 65 67 69 G RegConnectRegi 0be0: 73 74 72 79 57 28 4c 50 43 57 53 54 52 2c 20 48 stryW(LPCWSTR, H 0bf0: 4b 45 59 2c 20 50 48 4b 45 59 29 3b 0d 0a 09 4c KEY, PHKEY);...L 0c00: 4f 4e 47 20 52 65 67 43 72 65 61 74 65 4b 65 79 ONG RegCreateKey 0c10: 45 78 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 ExA(HKEY, LPCSTR 0c20: 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c 20 , DWORD, LPSTR, 0c30: 44 57 4f 52 44 2c 20 52 45 47 53 41 4d 2c 0d 0a DWORD, REGSAM,.. 0c40: 09 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54 . LPSECURITY_AT 0c50: 54 52 49 42 55 54 45 53 2c 20 50 48 4b 45 59 2c TRIBUTES, PHKEY, 0c60: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 4c 4f 4e 47 PDWORD);...LONG 0c70: 20 52 65 67 43 72 65 61 74 65 4b 65 79 45 78 57 RegCreateKeyExW 0c80: 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c 20 (HKEY, LPCWSTR, 0c90: 44 57 4f 52 44 2c 20 4c 50 57 53 54 52 2c 20 44 DWORD, LPWSTR, D 0ca0: 57 4f 52 44 2c 20 52 45 47 53 41 4d 2c 0d 0a 09 WORD, REGSAM,... 0cb0: 20 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54 LPSECURITY_ATT 0cc0: 52 49 42 55 54 45 53 2c 20 50 48 4b 45 59 2c 20 RIBUTES, PHKEY, 0cd0: 50 44 57 4f 52 44 29 3b 0d 0a 09 4c 4f 4e 47 20 PDWORD);...LONG 0ce0: 52 65 67 44 65 6c 65 74 65 4b 65 79 41 28 48 4b RegDeleteKeyA(HK 0cf0: 45 59 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 09 4c EY, LPCSTR);...L 0d00: 4f 4e 47 20 52 65 67 44 65 6c 65 74 65 4b 65 79 ONG RegDeleteKey 0d10: 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 29 W(HKEY, LPCWSTR) 0d20: 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 44 65 6c 65 ;...LONG RegDele 0d30: 74 65 56 61 6c 75 65 41 28 48 4b 45 59 2c 20 4c teValueA(HKEY, L 0d40: 50 43 53 54 52 29 3b 0d 0a 09 4c 4f 4e 47 20 52 PCSTR);...LONG R 0d50: 65 67 44 65 6c 65 74 65 56 61 6c 75 65 57 28 48 egDeleteValueW(H 0d60: 4b 45 59 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a KEY, LPCWSTR);.. 0d70: 09 4c 4f 4e 47 20 52 65 67 45 6e 75 6d 4b 65 79 .LONG RegEnumKey 0d80: 45 78 41 28 48 4b 45 59 2c 20 44 57 4f 52 44 2c ExA(HKEY, DWORD, 0d90: 20 4c 50 53 54 52 2c 20 50 44 57 4f 52 44 2c 20 LPSTR, PDWORD, 0da0: 50 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c 20 50 PDWORD, LPSTR, P 0db0: 44 57 4f 52 44 2c 0d 0a 09 20 20 50 46 49 4c 45 DWORD,... PFILE 0dc0: 54 49 4d 45 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 TIME);...LONG Re 0dd0: 67 45 6e 75 6d 4b 65 79 45 78 57 28 48 4b 45 59 gEnumKeyExW(HKEY 0de0: 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 54 52 2c , DWORD, LPWSTR, 0df0: 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c PDWORD, PDWORD, 0e00: 20 4c 50 57 53 54 52 2c 20 50 44 57 4f 52 44 2c LPWSTR, PDWORD, 0e10: 0d 0a 09 20 20 50 46 49 4c 45 54 49 4d 45 29 3b ... PFILETIME); 0e20: 0d 0a 09 4c 4f 4e 47 20 52 65 67 45 6e 75 6d 56 ...LONG RegEnumV 0e30: 61 6c 75 65 41 28 48 4b 45 59 2c 20 44 57 4f 52 alueA(HKEY, DWOR 0e40: 44 2c 20 4c 50 53 54 52 2c 20 50 44 57 4f 52 44 D, LPSTR, PDWORD 0e50: 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 , PDWORD, PDWORD 0e60: 2c 20 4c 50 42 59 54 45 2c 0d 0a 09 20 20 50 44 , LPBYTE,... PD 0e70: 57 4f 52 44 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 WORD);...LONG Re 0e80: 67 45 6e 75 6d 56 61 6c 75 65 57 28 48 4b 45 59 gEnumValueW(HKEY 0e90: 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 54 52 2c , DWORD, LPWSTR, 0ea0: 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c PDWORD, PDWORD, 0eb0: 20 50 44 57 4f 52 44 2c 20 4c 50 42 59 54 45 2c PDWORD, LPBYTE, 0ec0: 0d 0a 09 20 20 50 44 57 4f 52 44 29 3b 0d 0a 09 ... PDWORD);... 0ed0: 4c 4f 4e 47 20 52 65 67 46 6c 75 73 68 4b 65 79 LONG RegFlushKey 0ee0: 28 48 4b 45 59 29 3b 0d 0a 09 4c 4f 4e 47 20 52 (HKEY);...LONG R 0ef0: 65 67 4c 6f 61 64 4b 65 79 41 28 48 4b 45 59 2c egLoadKeyA(HKEY, 0f00: 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 29 LPCSTR, LPCSTR) 0f10: 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 4c 6f 61 64 ;...LONG RegLoad 0f20: 4b 65 79 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 KeyW(HKEY, LPCWS 0f30: 54 52 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a 09 TR, LPCWSTR);... 0f40: 4c 4f 4e 47 20 52 65 67 4f 70 65 6e 4b 65 79 45 LONG RegOpenKeyE 0f50: 78 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 2c xA(HKEY, LPCSTR, 0f60: 20 44 57 4f 52 44 2c 20 52 45 47 53 41 4d 2c 20 DWORD, REGSAM, 0f70: 50 48 4b 45 59 29 3b 0d 0a 09 4c 4f 4e 47 20 52 PHKEY);...LONG R 0f80: 65 67 4f 70 65 6e 4b 65 79 45 78 57 28 48 4b 45 egOpenKeyExW(HKE 0f90: 59 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 Y, LPCWSTR, DWOR 0fa0: 44 2c 20 52 45 47 53 41 4d 2c 20 50 48 4b 45 59 D, REGSAM, PHKEY 0fb0: 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 51 75 65 );...LONG RegQue 0fc0: 72 79 49 6e 66 6f 4b 65 79 41 28 48 4b 45 59 2c ryInfoKeyA(HKEY, 0fd0: 20 4c 50 53 54 52 2c 20 50 44 57 4f 52 44 2c 20 LPSTR, PDWORD, 0fe0: 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 PDWORD, PDWORD, 0ff0: 50 44 57 4f 52 44 2c 0d 0a 09 20 20 50 44 57 4f PDWORD,... PDWO 1000: 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f RD, PDWORD, PDWO 1010: 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f RD, PDWORD, PDWO 1020: 52 44 2c 20 50 46 49 4c 45 54 49 4d 45 29 3b 0d RD, PFILETIME);. 1030: 0a 09 4c 4f 4e 47 20 52 65 67 51 75 65 72 79 49 ..LONG RegQueryI 1040: 6e 66 6f 4b 65 79 57 28 48 4b 45 59 2c 20 4c 50 nfoKeyW(HKEY, LP 1050: 57 53 54 52 2c 20 50 44 57 4f 52 44 2c 20 50 44 WSTR, PDWORD, PD 1060: 57 4f 52 44 2c 20 50 44 57 4f 52 44 2c 20 50 44 WORD, PDWORD, PD 1070: 57 4f 52 44 2c 0d 0a 09 20 20 50 44 57 4f 52 44 WORD,... PDWORD 1080: 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 , PDWORD, PDWORD 1090: 2c 20 50 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 , PDWORD, PDWORD 10a0: 2c 20 50 46 49 4c 45 54 49 4d 45 29 3b 0d 0a 09 , PFILETIME);... 10b0: 4c 4f 4e 47 20 52 65 67 51 75 65 72 79 4d 75 6c LONG RegQueryMul 10c0: 74 69 70 6c 65 56 61 6c 75 65 73 41 28 48 4b 45 tipleValuesA(HKE 10d0: 59 2c 20 50 56 41 4c 45 4e 54 41 2c 20 44 57 4f Y, PVALENTA, DWO 10e0: 52 44 2c 20 4c 50 53 54 52 2c 20 4c 50 44 57 4f RD, LPSTR, LPDWO 10f0: 52 44 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 51 RD);...LONG RegQ 1100: 75 65 72 79 4d 75 6c 74 69 70 6c 65 56 61 6c 75 ueryMultipleValu 1110: 65 73 57 28 48 4b 45 59 2c 20 50 56 41 4c 45 4e esW(HKEY, PVALEN 1120: 54 57 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 54 TW, DWORD, LPWST 1130: 52 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 4c R, LPDWORD);...L 1140: 4f 4e 47 20 52 65 67 51 75 65 72 79 56 61 6c 75 ONG RegQueryValu 1150: 65 45 78 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 eExA(HKEY, LPCST 1160: 52 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 R, LPDWORD, LPDW 1170: 4f 52 44 2c 20 4c 50 42 59 54 45 2c 20 4c 50 44 ORD, LPBYTE, LPD 1180: 57 4f 52 44 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 WORD);...LONG Re 1190: 67 51 75 65 72 79 56 61 6c 75 65 45 78 57 28 48 gQueryValueExW(H 11a0: 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 KEY, LPCWSTR, LP 11b0: 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 DWORD, LPDWORD, 11c0: 4c 50 42 59 54 45 2c 20 4c 50 44 57 4f 52 44 29 LPBYTE, LPDWORD) 11d0: 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 52 65 70 6c ;...LONG RegRepl 11e0: 61 63 65 4b 65 79 41 28 48 4b 45 59 2c 20 4c 50 aceKeyA(HKEY, LP 11f0: 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 CSTR, LPCSTR, LP 1200: 43 53 54 52 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 CSTR);...LONG Re 1210: 67 52 65 70 6c 61 63 65 4b 65 79 57 28 48 4b 45 gReplaceKeyW(HKE 1220: 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 Y, LPCWSTR, LPCW 1230: 53 54 52 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a STR, LPCWSTR);.. 1240: 09 4c 4f 4e 47 20 52 65 67 53 61 76 65 4b 65 79 .LONG RegSaveKey 1250: 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 2c 20 A(HKEY, LPCSTR, 1260: 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 49 LPSECURITY_ATTRI 1270: 42 55 54 45 53 29 3b 0d 0a 09 4c 4f 4e 47 20 52 BUTES);...LONG R 1280: 65 67 53 61 76 65 4b 65 79 57 28 48 4b 45 59 2c egSaveKeyW(HKEY, 1290: 20 4c 50 43 57 53 54 52 2c 20 4c 50 53 45 43 55 LPCWSTR, LPSECU 12a0: 52 49 54 59 5f 41 54 54 52 49 42 55 54 45 53 29 RITY_ATTRIBUTES) 12b0: 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 53 65 74 4b ;...LONG RegSetK 12c0: 65 79 53 65 63 75 72 69 74 79 28 48 4b 45 59 2c eySecurity(HKEY, 12d0: 20 53 45 43 55 52 49 54 59 5f 49 4e 46 4f 52 4d SECURITY_INFORM 12e0: 41 54 49 4f 4e 2c 20 50 53 45 43 55 52 49 54 59 ATION, PSECURITY 12f0: 5f 44 45 53 43 52 49 50 54 4f 52 29 3b 0d 0a 09 _DESCRIPTOR);... 1300: 4c 4f 4e 47 20 52 65 67 53 65 74 56 61 6c 75 65 LONG RegSetValue 1310: 45 78 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 ExA(HKEY, LPCSTR 1320: 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 , DWORD, DWORD, 1330: 63 6f 6e 73 74 28 42 59 54 45 29 2a 2c 20 44 57 const(BYTE)*, DW 1340: 4f 52 44 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 ORD);...LONG Reg 1350: 53 65 74 56 61 6c 75 65 45 78 57 28 48 4b 45 59 SetValueExW(HKEY 1360: 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 , LPCWSTR, DWORD 1370: 2c 20 44 57 4f 52 44 2c 20 63 6f 6e 73 74 28 42 , DWORD, const(B 1380: 59 54 45 29 2a 2c 20 44 57 4f 52 44 29 3b 0d 0a YTE)*, DWORD);.. 1390: 09 4c 4f 4e 47 20 52 65 67 55 6e 4c 6f 61 64 4b .LONG RegUnLoadK 13a0: 65 79 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 eyA(HKEY, LPCSTR 13b0: 29 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 55 6e 4c );...LONG RegUnL 13c0: 6f 61 64 4b 65 79 57 28 48 4b 45 59 2c 20 4c 50 oadKeyW(HKEY, LP 13d0: 43 57 53 54 52 29 3b 0d 0a 09 4c 4f 4e 47 20 52 CWSTR);...LONG R 13e0: 65 67 4e 6f 74 69 66 79 43 68 61 6e 67 65 4b 65 egNotifyChangeKe 13f0: 79 56 61 6c 75 65 28 48 4b 45 59 2c 20 42 4f 4f yValue(HKEY, BOO 1400: 4c 2c 20 44 57 4f 52 44 2c 20 48 41 4e 44 4c 45 L, DWORD, HANDLE 1410: 2c 20 42 4f 4f 4c 29 3b 0d 0a 0d 0a 09 42 4f 4f , BOOL);.....BOO 1420: 4c 20 41 62 6f 72 74 53 79 73 74 65 6d 53 68 75 L AbortSystemShu 1430: 74 64 6f 77 6e 41 28 4c 50 43 53 54 52 29 3b 0d tdownA(LPCSTR);. 1440: 0a 09 42 4f 4f 4c 20 41 62 6f 72 74 53 79 73 74 ..BOOL AbortSyst 1450: 65 6d 53 68 75 74 64 6f 77 6e 57 28 4c 50 43 57 emShutdownW(LPCW 1460: 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 69 STR);...BOOL Ini 1470: 74 69 61 74 65 53 79 73 74 65 6d 53 68 75 74 64 tiateSystemShutd 1480: 6f 77 6e 41 28 4c 50 53 54 52 2c 20 4c 50 53 54 ownA(LPSTR, LPST 1490: 52 2c 20 44 57 4f 52 44 2c 20 42 4f 4f 4c 2c 20 R, DWORD, BOOL, 14a0: 42 4f 4f 4c 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e BOOL);...BOOL In 14b0: 69 74 69 61 74 65 53 79 73 74 65 6d 53 68 75 74 itiateSystemShut 14c0: 64 6f 77 6e 57 28 4c 50 57 53 54 52 2c 20 4c 50 downW(LPWSTR, LP 14d0: 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 42 4f 4f WSTR, DWORD, BOO 14e0: 4c 2c 20 42 4f 4f 4c 29 3b 0d 0a 09 4c 4f 4e 47 L, BOOL);...LONG 14f0: 20 52 65 67 47 65 74 4b 65 79 53 65 63 75 72 69 RegGetKeySecuri 1500: 74 79 28 48 4b 45 59 2c 20 53 45 43 55 52 49 54 ty(HKEY, SECURIT 1510: 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 0d 0a Y_INFORMATION,.. 1520: 09 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 53 . PSECURITY_DES 1530: 43 52 49 50 54 4f 52 2c 20 50 44 57 4f 52 44 29 CRIPTOR, PDWORD) 1540: 3b 0d 0a 09 4c 4f 4e 47 20 52 65 67 52 65 73 74 ;...LONG RegRest 1550: 6f 72 65 4b 65 79 41 28 48 4b 45 59 2c 20 4c 50 oreKeyA(HKEY, LP 1560: 43 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 CSTR, DWORD);... 1570: 4c 4f 4e 47 20 52 65 67 52 65 73 74 6f 72 65 4b LONG RegRestoreK 1580: 65 79 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 eyW(HKEY, LPCWST 1590: 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 4c 4f 4e R, DWORD);...LON 15a0: 47 20 52 65 67 53 65 74 4b 65 79 53 65 63 75 72 G RegSetKeySecur 15b0: 69 74 79 28 48 4b 45 59 2c 20 53 45 43 55 52 49 ity(HKEY, SECURI 15c0: 54 59 5f 49 4e 46 4f 52 4d 41 54 49 4f 4e 2c 0d TY_INFORMATION,. 15d0: 0a 09 20 20 50 53 45 43 55 52 49 54 59 5f 44 45 .. PSECURITY_DE 15e0: 53 43 52 49 50 54 4f 52 29 3b 0d 0a 0d 0a 09 73 SCRIPTOR);.....s 15f0: 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33 32 tatic if (_WIN32 1600: 5f 57 49 4e 4e 54 20 3e 3d 20 30 78 35 30 30 29 _WINNT >= 0x500) 1610: 20 7b 0d 0a 09 09 4c 4f 4e 47 20 52 65 67 44 69 {....LONG RegDi 1620: 73 61 62 6c 65 50 72 65 64 65 66 69 6e 65 64 43 sablePredefinedC 1630: 61 63 68 65 28 29 3b 0d 0a 09 09 4c 4f 4e 47 20 ache();....LONG 1640: 52 65 67 4f 70 65 6e 43 75 72 72 65 6e 74 55 73 RegOpenCurrentUs 1650: 65 72 28 52 45 47 53 41 4d 2c 20 50 48 4b 45 59 er(REGSAM, PHKEY 1660: 29 3b 0d 0a 09 09 4c 4f 4e 47 20 52 65 67 4f 70 );....LONG RegOp 1670: 65 6e 55 73 65 72 43 6c 61 73 73 65 73 52 6f 6f enUserClassesRoo 1680: 74 28 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 2c t(HANDLE, DWORD, 1690: 20 52 45 47 53 41 4d 2c 20 50 48 4b 45 59 29 3b REGSAM, PHKEY); 16a0: 0d 0a 09 7d 0d 0a 0d 0a 09 73 74 61 74 69 63 20 ...}.....static 16b0: 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 if (_WIN32_WINNT 16c0: 20 3e 3d 20 30 78 35 30 31 29 20 7b 0d 0a 09 09 >= 0x501) {.... 16d0: 4c 4f 4e 47 20 52 65 67 53 61 76 65 4b 65 79 45 LONG RegSaveKeyE 16e0: 78 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 2c xA(HKEY, LPCSTR, 16f0: 20 4c 50 53 45 43 55 52 49 54 59 5f 41 54 54 52 LPSECURITY_ATTR 1700: 49 42 55 54 45 53 2c 20 44 57 4f 52 44 29 3b 0d IBUTES, DWORD);. 1710: 0a 09 09 4c 4f 4e 47 20 52 65 67 53 61 76 65 4b ...LONG RegSaveK 1720: 65 79 45 78 57 28 48 4b 45 59 2c 20 4c 50 43 57 eyExW(HKEY, LPCW 1730: 53 54 52 2c 20 4c 50 53 45 43 55 52 49 54 59 5f STR, LPSECURITY_ 1740: 41 54 54 52 49 42 55 54 45 53 2c 20 44 57 4f 52 ATTRIBUTES, DWOR 1750: 44 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 73 74 61 74 D);...}.....stat 1760: 69 63 20 69 66 20 28 5f 57 49 4e 33 32 5f 57 49 ic if (_WIN32_WI 1770: 4e 4e 54 20 3e 3d 20 30 78 36 30 30 29 20 7b 0d NNT >= 0x600) {. 1780: 0a 09 09 4c 4f 4e 47 20 52 65 67 47 65 74 56 61 ...LONG RegGetVa 1790: 6c 75 65 41 28 48 4b 45 59 20 68 6b 65 79 2c 20 lueA(HKEY hkey, 17a0: 4c 50 43 53 54 52 20 6c 70 53 75 62 4b 65 79 2c LPCSTR lpSubKey, 17b0: 20 4c 50 43 53 54 52 20 6c 70 56 61 6c 75 65 2c LPCSTR lpValue, 17c0: 0d 0a 09 09 20 20 44 57 4f 52 44 20 64 77 46 6c .... DWORD dwFl 17d0: 61 67 73 2c 20 4c 50 44 57 4f 52 44 20 70 64 77 ags, LPDWORD pdw 17e0: 54 79 70 65 2c 20 50 56 4f 49 44 20 70 76 44 61 Type, PVOID pvDa 17f0: 74 61 2c 20 4c 50 44 57 4f 52 44 20 70 63 62 44 ta, LPDWORD pcbD 1800: 61 74 61 29 3b 0d 0a 09 09 4c 4f 4e 47 20 52 65 ata);....LONG Re 1810: 67 47 65 74 56 61 6c 75 65 57 28 48 4b 45 59 20 gGetValueW(HKEY 1820: 68 6b 65 79 2c 20 4c 50 43 57 53 54 52 20 6c 70 hkey, LPCWSTR lp 1830: 53 75 62 4b 65 79 2c 20 4c 50 43 57 53 54 52 20 SubKey, LPCWSTR 1840: 6c 70 56 61 6c 75 65 2c 0d 0a 09 09 20 20 44 57 lpValue,.... DW 1850: 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 4c 50 44 ORD dwFlags, LPD 1860: 57 4f 52 44 20 70 64 77 54 79 70 65 2c 20 50 56 WORD pdwType, PV 1870: 4f 49 44 20 70 76 44 61 74 61 2c 20 4c 50 44 57 OID pvData, LPDW 1880: 4f 52 44 20 70 63 62 44 61 74 61 29 3b 0d 0a 09 ORD pcbData);... 1890: 7d 0d 0a 0d 0a 09 64 65 70 72 65 63 61 74 65 64 }.....deprecated 18a0: 20 7b 0d 0a 09 09 4c 4f 4e 47 20 52 65 67 43 72 {....LONG RegCr 18b0: 65 61 74 65 4b 65 79 41 28 48 4b 45 59 2c 20 4c eateKeyA(HKEY, L 18c0: 50 43 53 54 52 2c 20 50 48 4b 45 59 29 3b 0d 0a PCSTR, PHKEY);.. 18d0: 09 09 4c 4f 4e 47 20 52 65 67 43 72 65 61 74 65 ..LONG RegCreate 18e0: 4b 65 79 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 KeyW(HKEY, LPCWS 18f0: 54 52 2c 20 50 48 4b 45 59 29 3b 0d 0a 09 09 4c TR, PHKEY);....L 1900: 4f 4e 47 20 52 65 67 45 6e 75 6d 4b 65 79 41 28 ONG RegEnumKeyA( 1910: 48 4b 45 59 2c 20 44 57 4f 52 44 2c 20 4c 50 53 HKEY, DWORD, LPS 1920: 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 09 4c TR, DWORD);....L 1930: 4f 4e 47 20 52 65 67 45 6e 75 6d 4b 65 79 57 28 ONG RegEnumKeyW( 1940: 48 4b 45 59 2c 20 44 57 4f 52 44 2c 20 4c 50 57 HKEY, DWORD, LPW 1950: 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 09 STR, DWORD);.... 1960: 4c 4f 4e 47 20 52 65 67 4f 70 65 6e 4b 65 79 41 LONG RegOpenKeyA 1970: 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 2c 20 50 (HKEY, LPCSTR, P 1980: 48 4b 45 59 29 3b 0d 0a 09 09 4c 4f 4e 47 20 52 HKEY);....LONG R 1990: 65 67 4f 70 65 6e 4b 65 79 57 28 48 4b 45 59 2c egOpenKeyW(HKEY, 19a0: 20 4c 50 43 57 53 54 52 2c 20 50 48 4b 45 59 29 LPCWSTR, PHKEY) 19b0: 3b 0d 0a 09 09 4c 4f 4e 47 20 52 65 67 51 75 65 ;....LONG RegQue 19c0: 72 79 56 61 6c 75 65 41 28 48 4b 45 59 2c 20 4c ryValueA(HKEY, L 19d0: 50 43 53 54 52 2c 20 4c 50 53 54 52 2c 20 50 4c PCSTR, LPSTR, PL 19e0: 4f 4e 47 29 3b 0d 0a 09 09 4c 4f 4e 47 20 52 65 ONG);....LONG Re 19f0: 67 51 75 65 72 79 56 61 6c 75 65 57 28 48 4b 45 gQueryValueW(HKE 1a00: 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 Y, LPCWSTR, LPWS 1a10: 54 52 2c 20 50 4c 4f 4e 47 29 3b 0d 0a 09 09 4c TR, PLONG);....L 1a20: 4f 4e 47 20 52 65 67 53 65 74 56 61 6c 75 65 41 ONG RegSetValueA 1a30: 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 2c 20 44 (HKEY, LPCSTR, D 1a40: 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20 44 57 WORD, LPCSTR, DW 1a50: 4f 52 44 29 3b 0d 0a 09 09 4c 4f 4e 47 20 52 65 ORD);....LONG Re 1a60: 67 53 65 74 56 61 6c 75 65 57 28 48 4b 45 59 2c gSetValueW(HKEY, 1a70: 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c LPCWSTR, DWORD, 1a80: 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 29 LPCWSTR, DWORD) 1a90: 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 ;...}..}....vers 1aa0: 69 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20 7b 0d ion (Unicode) {. 1ab0: 0a 09 61 6c 69 61 73 20 56 41 4c 45 4e 54 57 20 ..alias VALENTW 1ac0: 56 41 4c 45 4e 54 3b 0d 0a 09 61 6c 69 61 73 20 VALENT;...alias 1ad0: 52 65 67 43 6f 6e 6e 65 63 74 52 65 67 69 73 74 RegConnectRegist 1ae0: 72 79 57 20 52 65 67 43 6f 6e 6e 65 63 74 52 65 ryW RegConnectRe 1af0: 67 69 73 74 72 79 3b 0d 0a 09 61 6c 69 61 73 20 gistry;...alias 1b00: 52 65 67 43 72 65 61 74 65 4b 65 79 45 78 57 20 RegCreateKeyExW 1b10: 52 65 67 43 72 65 61 74 65 4b 65 79 45 78 3b 0d RegCreateKeyEx;. 1b20: 0a 09 61 6c 69 61 73 20 52 65 67 44 65 6c 65 74 ..alias RegDelet 1b30: 65 4b 65 79 57 20 52 65 67 44 65 6c 65 74 65 4b eKeyW RegDeleteK 1b40: 65 79 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 44 ey;...alias RegD 1b50: 65 6c 65 74 65 56 61 6c 75 65 57 20 52 65 67 44 eleteValueW RegD 1b60: 65 6c 65 74 65 56 61 6c 75 65 3b 0d 0a 09 61 6c eleteValue;...al 1b70: 69 61 73 20 52 65 67 45 6e 75 6d 4b 65 79 45 78 ias RegEnumKeyEx 1b80: 57 20 52 65 67 45 6e 75 6d 4b 65 79 45 78 3b 0d W RegEnumKeyEx;. 1b90: 0a 09 61 6c 69 61 73 20 52 65 67 45 6e 75 6d 56 ..alias RegEnumV 1ba0: 61 6c 75 65 57 20 52 65 67 45 6e 75 6d 56 61 6c alueW RegEnumVal 1bb0: 75 65 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 4c ue;...alias RegL 1bc0: 6f 61 64 4b 65 79 57 20 52 65 67 4c 6f 61 64 4b oadKeyW RegLoadK 1bd0: 65 79 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 4f ey;...alias RegO 1be0: 70 65 6e 4b 65 79 45 78 57 20 52 65 67 4f 70 65 penKeyExW RegOpe 1bf0: 6e 4b 65 79 45 78 3b 0d 0a 09 61 6c 69 61 73 20 nKeyEx;...alias 1c00: 52 65 67 51 75 65 72 79 49 6e 66 6f 4b 65 79 57 RegQueryInfoKeyW 1c10: 20 52 65 67 51 75 65 72 79 49 6e 66 6f 4b 65 79 RegQueryInfoKey 1c20: 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 51 75 65 ;...alias RegQue 1c30: 72 79 4d 75 6c 74 69 70 6c 65 56 61 6c 75 65 73 ryMultipleValues 1c40: 57 20 52 65 67 51 75 65 72 79 4d 75 6c 74 69 70 W RegQueryMultip 1c50: 6c 65 56 61 6c 75 65 73 3b 0d 0a 09 61 6c 69 61 leValues;...alia 1c60: 73 20 52 65 67 51 75 65 72 79 56 61 6c 75 65 45 s RegQueryValueE 1c70: 78 57 20 52 65 67 51 75 65 72 79 56 61 6c 75 65 xW RegQueryValue 1c80: 45 78 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 52 Ex;...alias RegR 1c90: 65 70 6c 61 63 65 4b 65 79 57 20 52 65 67 52 65 eplaceKeyW RegRe 1ca0: 70 6c 61 63 65 4b 65 79 3b 0d 0a 09 61 6c 69 61 placeKey;...alia 1cb0: 73 20 52 65 67 53 61 76 65 4b 65 79 57 20 52 65 s RegSaveKeyW Re 1cc0: 67 53 61 76 65 4b 65 79 3b 0d 0a 09 61 6c 69 61 gSaveKey;...alia 1cd0: 73 20 52 65 67 53 65 74 56 61 6c 75 65 45 78 57 s RegSetValueExW 1ce0: 20 52 65 67 53 65 74 56 61 6c 75 65 45 78 3b 0d RegSetValueEx;. 1cf0: 0a 09 61 6c 69 61 73 20 52 65 67 55 6e 4c 6f 61 ..alias RegUnLoa 1d00: 64 4b 65 79 57 20 52 65 67 55 6e 4c 6f 61 64 4b dKeyW RegUnLoadK 1d10: 65 79 3b 0d 0a 0d 0a 09 61 6c 69 61 73 20 41 62 ey;.....alias Ab 1d20: 6f 72 74 53 79 73 74 65 6d 53 68 75 74 64 6f 77 ortSystemShutdow 1d30: 6e 57 20 41 62 6f 72 74 53 79 73 74 65 6d 53 68 nW AbortSystemSh 1d40: 75 74 64 6f 77 6e 3b 0d 0a 09 61 6c 69 61 73 20 utdown;...alias 1d50: 49 6e 69 74 69 61 74 65 53 79 73 74 65 6d 53 68 InitiateSystemSh 1d60: 75 74 64 6f 77 6e 57 20 49 6e 69 74 69 61 74 65 utdownW Initiate 1d70: 53 79 73 74 65 6d 53 68 75 74 64 6f 77 6e 3b 0d SystemShutdown;. 1d80: 0a 09 61 6c 69 61 73 20 52 65 67 52 65 73 74 6f ..alias RegResto 1d90: 72 65 4b 65 79 57 20 52 65 67 52 65 73 74 6f 72 reKeyW RegRestor 1da0: 65 4b 65 79 3b 0d 0a 09 73 74 61 74 69 63 20 69 eKey;...static i 1db0: 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 f (_WIN32_WINNT 1dc0: 3e 3d 20 30 78 35 30 31 29 20 7b 0d 0a 09 09 61 >= 0x501) {....a 1dd0: 6c 69 61 73 20 52 65 67 53 61 76 65 4b 65 79 45 lias RegSaveKeyE 1de0: 78 41 20 52 65 67 53 61 76 65 4b 65 79 45 78 3b xA RegSaveKeyEx; 1df0: 0d 0a 09 7d 0d 0a 09 73 74 61 74 69 63 20 69 66 ...}...static if 1e00: 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e (_WIN32_WINNT > 1e10: 3d 20 30 78 36 30 30 29 20 7b 0d 0a 09 09 61 6c = 0x600) {....al 1e20: 69 61 73 20 52 65 67 47 65 74 56 61 6c 75 65 57 ias RegGetValueW 1e30: 20 52 65 67 47 65 74 56 61 6c 75 65 3b 0d 0a 09 RegGetValue;... 1e40: 7d 0d 0a 09 64 65 70 72 65 63 61 74 65 64 20 7b }...deprecated { 1e50: 0d 0a 09 09 61 6c 69 61 73 20 52 65 67 43 72 65 ....alias RegCre 1e60: 61 74 65 4b 65 79 57 20 52 65 67 43 72 65 61 74 ateKeyW RegCreat 1e70: 65 4b 65 79 3b 0d 0a 09 09 61 6c 69 61 73 20 52 eKey;....alias R 1e80: 65 67 45 6e 75 6d 4b 65 79 57 20 52 65 67 45 6e egEnumKeyW RegEn 1e90: 75 6d 4b 65 79 3b 0d 0a 09 09 61 6c 69 61 73 20 umKey;....alias 1ea0: 52 65 67 4f 70 65 6e 4b 65 79 57 20 52 65 67 4f RegOpenKeyW RegO 1eb0: 70 65 6e 4b 65 79 3b 0d 0a 09 09 61 6c 69 61 73 penKey;....alias 1ec0: 20 52 65 67 51 75 65 72 79 56 61 6c 75 65 57 20 RegQueryValueW 1ed0: 52 65 67 51 75 65 72 79 56 61 6c 75 65 3b 0d 0a RegQueryValue;.. 1ee0: 09 09 61 6c 69 61 73 20 52 65 67 53 65 74 56 61 ..alias RegSetVa 1ef0: 6c 75 65 57 20 52 65 67 53 65 74 56 61 6c 75 65 lueW RegSetValue 1f00: 3b 0d 0a 09 7d 0d 0a 7d 20 65 6c 73 65 20 7b 0d ;...}..} else {. 1f10: 0a 09 61 6c 69 61 73 20 56 41 4c 45 4e 54 41 20 ..alias VALENTA 1f20: 56 41 4c 45 4e 54 3b 0d 0a 09 61 6c 69 61 73 20 VALENT;...alias 1f30: 52 65 67 43 6f 6e 6e 65 63 74 52 65 67 69 73 74 RegConnectRegist 1f40: 72 79 41 20 52 65 67 43 6f 6e 6e 65 63 74 52 65 ryA RegConnectRe 1f50: 67 69 73 74 72 79 3b 0d 0a 09 61 6c 69 61 73 20 gistry;...alias 1f60: 52 65 67 43 72 65 61 74 65 4b 65 79 45 78 41 20 RegCreateKeyExA 1f70: 52 65 67 43 72 65 61 74 65 4b 65 79 45 78 3b 0d RegCreateKeyEx;. 1f80: 0a 09 61 6c 69 61 73 20 52 65 67 44 65 6c 65 74 ..alias RegDelet 1f90: 65 4b 65 79 41 20 52 65 67 44 65 6c 65 74 65 4b eKeyA RegDeleteK 1fa0: 65 79 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 44 ey;...alias RegD 1fb0: 65 6c 65 74 65 56 61 6c 75 65 41 20 52 65 67 44 eleteValueA RegD 1fc0: 65 6c 65 74 65 56 61 6c 75 65 3b 0d 0a 09 61 6c eleteValue;...al 1fd0: 69 61 73 20 52 65 67 45 6e 75 6d 4b 65 79 45 78 ias RegEnumKeyEx 1fe0: 41 20 52 65 67 45 6e 75 6d 4b 65 79 45 78 3b 0d A RegEnumKeyEx;. 1ff0: 0a 09 61 6c 69 61 73 20 52 65 67 45 6e 75 6d 56 ..alias RegEnumV 2000: 61 6c 75 65 41 20 52 65 67 45 6e 75 6d 56 61 6c alueA RegEnumVal 2010: 75 65 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 4c ue;...alias RegL 2020: 6f 61 64 4b 65 79 41 20 52 65 67 4c 6f 61 64 4b oadKeyA RegLoadK 2030: 65 79 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 4f ey;...alias RegO 2040: 70 65 6e 4b 65 79 45 78 41 20 52 65 67 4f 70 65 penKeyExA RegOpe 2050: 6e 4b 65 79 45 78 3b 0d 0a 09 61 6c 69 61 73 20 nKeyEx;...alias 2060: 52 65 67 51 75 65 72 79 49 6e 66 6f 4b 65 79 41 RegQueryInfoKeyA 2070: 20 52 65 67 51 75 65 72 79 49 6e 66 6f 4b 65 79 RegQueryInfoKey 2080: 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 51 75 65 ;...alias RegQue 2090: 72 79 4d 75 6c 74 69 70 6c 65 56 61 6c 75 65 73 ryMultipleValues 20a0: 41 20 52 65 67 51 75 65 72 79 4d 75 6c 74 69 70 A RegQueryMultip 20b0: 6c 65 56 61 6c 75 65 73 3b 0d 0a 09 61 6c 69 61 leValues;...alia 20c0: 73 20 52 65 67 51 75 65 72 79 56 61 6c 75 65 45 s RegQueryValueE 20d0: 78 41 20 52 65 67 51 75 65 72 79 56 61 6c 75 65 xA RegQueryValue 20e0: 45 78 3b 0d 0a 09 61 6c 69 61 73 20 52 65 67 52 Ex;...alias RegR 20f0: 65 70 6c 61 63 65 4b 65 79 41 20 52 65 67 52 65 eplaceKeyA RegRe 2100: 70 6c 61 63 65 4b 65 79 3b 0d 0a 09 61 6c 69 61 placeKey;...alia 2110: 73 20 52 65 67 53 61 76 65 4b 65 79 41 20 52 65 s RegSaveKeyA Re 2120: 67 53 61 76 65 4b 65 79 3b 0d 0a 09 61 6c 69 61 gSaveKey;...alia 2130: 73 20 52 65 67 53 65 74 56 61 6c 75 65 45 78 41 s RegSetValueExA 2140: 20 52 65 67 53 65 74 56 61 6c 75 65 45 78 3b 0d RegSetValueEx;. 2150: 0a 09 61 6c 69 61 73 20 52 65 67 55 6e 4c 6f 61 ..alias RegUnLoa 2160: 64 4b 65 79 41 20 52 65 67 55 6e 4c 6f 61 64 4b dKeyA RegUnLoadK 2170: 65 79 3b 0d 0a 09 61 6c 69 61 73 20 41 62 6f 72 ey;...alias Abor 2180: 74 53 79 73 74 65 6d 53 68 75 74 64 6f 77 6e 41 tSystemShutdownA 2190: 20 41 62 6f 72 74 53 79 73 74 65 6d 53 68 75 74 AbortSystemShut 21a0: 64 6f 77 6e 3b 0d 0a 09 61 6c 69 61 73 20 49 6e down;...alias In 21b0: 69 74 69 61 74 65 53 79 73 74 65 6d 53 68 75 74 itiateSystemShut 21c0: 64 6f 77 6e 41 20 49 6e 69 74 69 61 74 65 53 79 downA InitiateSy 21d0: 73 74 65 6d 53 68 75 74 64 6f 77 6e 3b 0d 0a 09 stemShutdown;... 21e0: 61 6c 69 61 73 20 52 65 67 52 65 73 74 6f 72 65 alias RegRestore 21f0: 4b 65 79 57 20 52 65 67 52 65 73 74 6f 72 65 4b KeyW RegRestoreK 2200: 65 79 3b 0d 0a 09 73 74 61 74 69 63 20 69 66 20 ey;...static if 2210: 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d (_WIN32_WINNT >= 2220: 20 30 78 35 30 31 29 20 7b 0d 0a 09 09 61 6c 69 0x501) {....ali 2230: 61 73 20 52 65 67 53 61 76 65 4b 65 79 45 78 41 as RegSaveKeyExA 2240: 20 52 65 67 53 61 76 65 4b 65 79 45 78 3b 0d 0a RegSaveKeyEx;.. 2250: 09 7d 0d 0a 09 73 74 61 74 69 63 20 69 66 20 28 .}...static if ( 2260: 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 20 3e 3d 20 _WIN32_WINNT >= 2270: 30 78 36 30 30 29 20 7b 0d 0a 09 09 61 6c 69 61 0x600) {....alia 2280: 73 20 52 65 67 47 65 74 56 61 6c 75 65 41 20 52 s RegGetValueA R 2290: 65 67 47 65 74 56 61 6c 75 65 3b 0d 0a 09 7d 0d egGetValue;...}. 22a0: 0a 09 64 65 70 72 65 63 61 74 65 64 20 7b 0d 0a ..deprecated {.. 22b0: 09 09 61 6c 69 61 73 20 52 65 67 43 72 65 61 74 ..alias RegCreat 22c0: 65 4b 65 79 41 20 52 65 67 43 72 65 61 74 65 4b eKeyA RegCreateK 22d0: 65 79 3b 0d 0a 09 09 61 6c 69 61 73 20 52 65 67 ey;....alias Reg 22e0: 45 6e 75 6d 4b 65 79 41 20 52 65 67 45 6e 75 6d EnumKeyA RegEnum 22f0: 4b 65 79 3b 0d 0a 09 09 61 6c 69 61 73 20 52 65 Key;....alias Re 2300: 67 4f 70 65 6e 4b 65 79 41 20 52 65 67 4f 70 65 gOpenKeyA RegOpe 2310: 6e 4b 65 79 3b 0d 0a 09 09 61 6c 69 61 73 20 52 nKey;....alias R 2320: 65 67 51 75 65 72 79 56 61 6c 75 65 41 20 52 65 egQueryValueA Re 2330: 67 51 75 65 72 79 56 61 6c 75 65 3b 0d 0a 09 09 gQueryValue;.... 2340: 61 6c 69 61 73 20 52 65 67 53 65 74 56 61 6c 75 alias RegSetValu 2350: 65 41 20 52 65 67 53 65 74 56 61 6c 75 65 3b 0d eA RegSetValue;. 2360: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 ..}..}....alias 2370: 56 41 4c 45 4e 54 2a 20 50 56 41 4c 45 4e 54 3b VALENT* PVALENT; 2380: 0d 0a ..