Hex Artifact Content

Not logged in

Artifact b2149b33a45a63955c95729b3ccc5021d60366ef:


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 73 68 6c 77 61             shlwa
0070: 70 69 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  pi.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 20 20                  
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
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 50 6c 61 63 65 64 20 69 6e 74 6f       Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20   public domain  
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 5c 2a 2a 2a 2a 2a 2a 2a       *..\*******
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e  /..module win32.
02b0: 73 68 6c 77 61 70 69 3b 0d 0a 70 72 61 67 6d 61  shlwapi;..pragma
02c0: 28 6c 69 62 2c 20 22 73 68 6c 77 61 70 69 22 29  (lib, "shlwapi")
02d0: 3b 0d 0a 0d 0a 2f 2a 20 43 68 61 6e 67 65 73 20  ;..../* Changes 
02e0: 63 6f 6d 70 61 72 65 64 20 74 6f 20 4d 69 6e 47  compared to MinG
02f0: 57 3a 0d 0a 77 6e 73 70 72 69 6e 74 66 20 66 75  W:..wnsprintf fu
0300: 6e 63 74 69 6f 6e 73 20 61 72 65 20 6e 6f 74 20  nctions are not 
0310: 69 6e 63 6c 75 64 65 64 2e 0d 0a 2f 2f 20 4d 61  included...// Ma
0320: 63 72 6f 73 20 75 6e 6e 65 65 64 65 64 20 66 6f  cros unneeded fo
0330: 72 20 44 0d 0a 23 64 65 66 69 6e 65 20 53 74 72  r D..#define Str
0340: 43 6d 70 49 41 20 6c 73 74 72 63 6d 70 69 41 3b  CmpIA lstrcmpiA;
0350: 0d 0a 23 64 65 66 69 6e 65 20 53 74 72 43 6d 70  ..#define StrCmp
0360: 41 20 6c 73 74 72 63 6d 70 41 3b 0d 0a 23 64 65  A lstrcmpA;..#de
0370: 66 69 6e 65 20 53 74 72 43 70 79 41 20 6c 73 74  fine StrCpyA lst
0380: 72 63 70 79 41 3b 0d 0a 23 64 65 66 69 6e 65 20  rcpyA;..#define 
0390: 53 74 72 43 70 79 4e 41 20 6c 73 74 72 63 70 79  StrCpyNA lstrcpy
03a0: 6e 41 3b 0d 0a 23 64 65 66 69 6e 65 20 4d 41 4b  nA;..#define MAK
03b0: 45 44 4c 4c 56 45 52 55 4c 4c 28 6d 61 6a 6f 72  EDLLVERULL(major
03c0: 2c 20 6d 69 6e 6f 72 2c 20 62 75 69 6c 64 2c 20  , minor, build, 
03d0: 71 66 65 29 20 5c 0d 0a 20 20 20 20 20 20 20 20  qfe) \..        
03e0: 28 28 28 55 4c 4f 4e 47 4c 4f 4e 47 29 28 6d 61  (((ULONGLONG)(ma
03f0: 6a 6f 72 29 20 3c 3c 20 34 38 29 20 7c 20 5c 0d  jor) << 48) | \.
0400: 0a 20 20 20 20 20 20 20 20 20 28 28 55 4c 4f 4e  .         ((ULON
0410: 47 4c 4f 4e 47 29 28 6d 69 6e 6f 72 29 20 3c 3c  GLONG)(minor) <<
0420: 20 33 32 29 20 7c 20 5c 0d 0a 20 20 20 20 20 20   32) | \..      
0430: 20 20 20 28 28 55 4c 4f 4e 47 4c 4f 4e 47 29 28     ((ULONGLONG)(
0440: 62 75 69 6c 64 29 20 3c 3c 20 31 36 29 20 7c 20  build) << 16) | 
0450: 5c 0d 0a 20 20 20 20 20 20 20 20 20 28 28 55 4c  \..         ((UL
0460: 4f 4e 47 4c 4f 4e 47 29 28 20 20 71 66 65 29 20  ONGLONG)(  qfe) 
0470: 3c 3c 20 20 30 29 29 0d 0a 2a 2f 0d 0a 0d 0a 69  <<  0))..*/....i
0480: 6d 70 6f 72 74 20 77 69 6e 33 32 2e 6f 62 6a 62  mport win32.objb
0490: 61 73 65 2c 20 77 69 6e 33 32 2e 73 68 6c 6f 62  ase, win32.shlob
04a0: 6a 3b 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f  j;..private impo
04b0: 72 74 20 77 69 6e 33 32 2e 62 61 73 65 74 79 70  rt win32.basetyp
04c0: 73 2c 20 77 69 6e 33 32 2e 6f 62 6a 69 64 6c 2c  s, win32.objidl,
04d0: 20 77 69 6e 33 32 2e 75 6e 6b 6e 77 6e 2c 20 77   win32.unknwn, w
04e0: 69 6e 33 32 2e 77 69 6e 64 65 66 2c 0d 0a 20 20  in32.windef,..  
04f0: 77 69 6e 33 32 2e 77 69 6e 62 61 73 65 2c 20 77  win32.winbase, w
0500: 69 6e 33 32 2e 77 69 6e 72 65 67 3b 0d 0a 0d 0a  in32.winreg;....
0510: 63 6f 6e 73 74 20 44 4c 4c 56 45 52 5f 50 4c 41  const DLLVER_PLA
0520: 54 46 4f 52 4d 5f 57 49 4e 44 4f 57 53 20 3d 20  TFORM_WINDOWS = 
0530: 30 78 30 30 30 30 30 30 30 31 3b 0d 0a 63 6f 6e  0x00000001;..con
0540: 73 74 20 44 4c 4c 56 45 52 5f 50 4c 41 54 46 4f  st DLLVER_PLATFO
0550: 52 4d 5f 4e 54 20 20 20 20 20 20 3d 20 30 78 30  RM_NT      = 0x0
0560: 30 30 30 30 30 30 32 3b 0d 0a 0d 0a 63 6f 6e 73  0000002;....cons
0570: 74 20 55 52 4c 5f 44 4f 4e 54 5f 45 53 43 41 50  t URL_DONT_ESCAP
0580: 45 5f 45 58 54 52 41 5f 49 4e 46 4f 20 20 3d 20  E_EXTRA_INFO  = 
0590: 30 78 30 32 30 30 30 30 30 30 3b 0d 0a 63 6f 6e  0x02000000;..con
05a0: 73 74 20 55 52 4c 5f 44 4f 4e 54 5f 53 49 4d 50  st URL_DONT_SIMP
05b0: 4c 49 46 59 20 20 20 20 20 20 20 20 20 20 20 3d  LIFY           =
05c0: 20 30 78 30 38 30 30 30 30 30 30 3b 0d 0a 63 6f   0x08000000;..co
05d0: 6e 73 74 20 55 52 4c 5f 45 53 43 41 50 45 5f 50  nst URL_ESCAPE_P
05e0: 45 52 43 45 4e 54 20 20 20 20 20 20 20 20 20 20  ERCENT          
05f0: 3d 20 30 78 30 30 30 30 31 30 30 30 3b 0d 0a 63  = 0x00001000;..c
0600: 6f 6e 73 74 20 55 52 4c 5f 45 53 43 41 50 45 5f  onst URL_ESCAPE_
0610: 53 45 47 4d 45 4e 54 5f 4f 4e 4c 59 20 20 20 20  SEGMENT_ONLY    
0620: 20 3d 20 30 78 30 30 30 30 32 30 30 30 3b 0d 0a   = 0x00002000;..
0630: 63 6f 6e 73 74 20 55 52 4c 5f 45 53 43 41 50 45  const URL_ESCAPE
0640: 5f 53 50 41 43 45 53 5f 4f 4e 4c 59 20 20 20 20  _SPACES_ONLY    
0650: 20 20 3d 20 30 78 30 34 30 30 30 30 30 30 3b 0d    = 0x04000000;.
0660: 0a 63 6f 6e 73 74 20 55 52 4c 5f 45 53 43 41 50  .const URL_ESCAP
0670: 45 5f 55 4e 53 41 46 45 20 20 20 20 20 20 20 20  E_UNSAFE        
0680: 20 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 3b     = 0x20000000;
0690: 0d 0a 63 6f 6e 73 74 20 55 52 4c 5f 49 4e 54 45  ..const URL_INTE
06a0: 52 4e 41 4c 5f 50 41 54 48 20 20 20 20 20 20 20  RNAL_PATH       
06b0: 20 20 20 20 3d 20 30 78 30 30 38 30 30 30 30 30      = 0x00800000
06c0: 3b 0d 0a 63 6f 6e 73 74 20 55 52 4c 5f 50 41 52  ;..const URL_PAR
06d0: 54 46 4c 41 47 5f 4b 45 45 50 53 43 48 45 4d 45  TFLAG_KEEPSCHEME
06e0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30       = 0x0000000
06f0: 31 3b 0d 0a 63 6f 6e 73 74 20 55 52 4c 5f 50 4c  1;..const URL_PL
0700: 55 47 47 41 42 4c 45 5f 50 52 4f 54 4f 43 4f 4c  UGGABLE_PROTOCOL
0710: 20 20 20 20 20 20 3d 20 30 78 34 30 30 30 30 30        = 0x400000
0720: 30 30 3b 0d 0a 63 6f 6e 73 74 20 55 52 4c 5f 55  00;..const URL_U
0730: 4e 45 53 43 41 50 45 20 20 20 20 20 20 20 20 20  NESCAPE         
0740: 20 20 20 20 20 20 20 3d 20 30 78 31 30 30 30 30         = 0x10000
0750: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 55 52 4c 5f  000;..const URL_
0760: 55 4e 45 53 43 41 50 45 5f 48 49 47 48 5f 41 4e  UNESCAPE_HIGH_AN
0770: 53 49 5f 4f 4e 4c 59 20 3d 20 30 78 30 30 34 30  SI_ONLY = 0x0040
0780: 30 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 55 52 4c  0000;..const URL
0790: 5f 55 4e 45 53 43 41 50 45 5f 49 4e 50 4c 41 43  _UNESCAPE_INPLAC
07a0: 45 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 31  E        = 0x001
07b0: 30 30 30 30 30 3b 0d 0a 0d 0a 61 6c 69 67 6e 28  00000;....align(
07c0: 31 29 3a 0d 0a 73 74 72 75 63 74 20 44 4c 4c 56  1):..struct DLLV
07d0: 45 52 53 49 4f 4e 49 4e 46 4f 0d 0a 7b 0d 0a 09  ERSIONINFO..{...
07e0: 44 57 4f 52 44 20 63 62 53 69 7a 65 20 3d 20 74  DWORD cbSize = t
07f0: 68 69 73 2e 73 69 7a 65 6f 66 3b 0d 0a 09 44 57  his.sizeof;...DW
0800: 4f 52 44 20 64 77 4d 61 6a 6f 72 56 65 72 73 69  ORD dwMajorVersi
0810: 6f 6e 3b 0d 0a 09 44 57 4f 52 44 20 64 77 4d 69  on;...DWORD dwMi
0820: 6e 6f 72 56 65 72 73 69 6f 6e 3b 0d 0a 09 44 57  norVersion;...DW
0830: 4f 52 44 20 64 77 42 75 69 6c 64 4e 75 6d 62 65  ORD dwBuildNumbe
0840: 72 3b 0d 0a 09 44 57 4f 52 44 20 64 77 50 6c 61  r;...DWORD dwPla
0850: 74 66 6f 72 6d 49 44 3b 0d 0a 7d 0d 0a 0d 0a 73  tformID;..}....s
0860: 74 72 75 63 74 20 44 4c 4c 56 45 52 53 49 4f 4e  truct DLLVERSION
0870: 49 4e 46 4f 32 0d 0a 7b 0d 0a 09 44 4c 4c 56 45  INFO2..{...DLLVE
0880: 52 53 49 4f 4e 49 4e 46 4f 20 69 6e 66 6f 31 3b  RSIONINFO info1;
0890: 0d 0a 09 44 57 4f 52 44 20 64 77 46 6c 61 67 73  ...DWORD dwFlags
08a0: 3b 0d 0a 09 55 4c 4f 4e 47 4c 4f 4e 47 20 75 6c  ;...ULONGLONG ul
08b0: 6c 56 65 72 73 69 6f 6e 3b 0d 0a 7d 0d 0a 0d 0a  lVersion;..}....
08c0: 65 6e 75 6d 20 41 53 53 4f 43 53 54 52 20 7b 0d  enum ASSOCSTR {.
08d0: 0a 09 41 53 53 4f 43 53 54 52 5f 43 4f 4d 4d 41  ..ASSOCSTR_COMMA
08e0: 4e 44 2c 0d 0a 09 41 53 53 4f 43 53 54 52 5f 45  ND,...ASSOCSTR_E
08f0: 58 45 43 55 54 41 42 4c 45 2c 0d 0a 09 41 53 53  XECUTABLE,...ASS
0900: 4f 43 53 54 52 5f 46 52 49 45 4e 44 4c 59 44 4f  OCSTR_FRIENDLYDO
0910: 43 4e 41 4d 45 2c 0d 0a 09 41 53 53 4f 43 53 54  CNAME,...ASSOCST
0920: 52 5f 46 52 49 45 4e 44 4c 59 41 50 50 4e 41 4d  R_FRIENDLYAPPNAM
0930: 45 2c 0d 0a 09 41 53 53 4f 43 53 54 52 5f 4e 4f  E,...ASSOCSTR_NO
0940: 4f 50 45 4e 2c 0d 0a 09 41 53 53 4f 43 53 54 52  OPEN,...ASSOCSTR
0950: 5f 53 48 45 4c 4c 4e 45 57 56 41 4c 55 45 2c 0d  _SHELLNEWVALUE,.
0960: 0a 09 41 53 53 4f 43 53 54 52 5f 44 44 45 43 4f  ..ASSOCSTR_DDECO
0970: 4d 4d 41 4e 44 2c 0d 0a 09 41 53 53 4f 43 53 54  MMAND,...ASSOCST
0980: 52 5f 44 44 45 49 46 45 58 45 43 2c 0d 0a 09 41  R_DDEIFEXEC,...A
0990: 53 53 4f 43 53 54 52 5f 44 44 45 41 50 50 4c 49  SSOCSTR_DDEAPPLI
09a0: 43 41 54 49 4f 4e 2c 0d 0a 09 41 53 53 4f 43 53  CATION,...ASSOCS
09b0: 54 52 5f 44 44 45 54 4f 50 49 43 0d 0a 7d 0d 0a  TR_DDETOPIC..}..
09c0: 0d 0a 65 6e 75 6d 20 41 53 53 4f 43 4b 45 59 0d  ..enum ASSOCKEY.
09d0: 0a 7b 0d 0a 09 41 53 53 4f 43 4b 45 59 5f 53 48  .{...ASSOCKEY_SH
09e0: 45 4c 4c 45 58 45 43 43 4c 41 53 53 20 3d 20 31  ELLEXECCLASS = 1
09f0: 2c 0d 0a 09 41 53 53 4f 43 4b 45 59 5f 41 50 50  ,...ASSOCKEY_APP
0a00: 2c 0d 0a 09 41 53 53 4f 43 4b 45 59 5f 43 4c 41  ,...ASSOCKEY_CLA
0a10: 53 53 2c 0d 0a 09 41 53 53 4f 43 4b 45 59 5f 42  SS,...ASSOCKEY_B
0a20: 41 53 45 43 4c 41 53 53 0d 0a 7d 0d 0a 0d 0a 65  ASECLASS..}....e
0a30: 6e 75 6d 20 41 53 53 4f 43 44 41 54 41 0d 0a 7b  num ASSOCDATA..{
0a40: 0d 0a 09 41 53 53 4f 43 44 41 54 41 5f 4d 53 49  ...ASSOCDATA_MSI
0a50: 44 45 53 43 52 49 50 54 4f 52 20 3d 20 31 2c 0d  DESCRIPTOR = 1,.
0a60: 0a 09 41 53 53 4f 43 44 41 54 41 5f 4e 4f 41 43  ..ASSOCDATA_NOAC
0a70: 54 49 56 41 54 45 48 41 4e 44 4c 45 52 2c 0d 0a  TIVATEHANDLER,..
0a80: 09 41 53 53 4f 43 44 41 54 41 5f 51 55 45 52 59  .ASSOCDATA_QUERY
0a90: 43 4c 41 53 53 53 54 4f 52 45 0d 0a 7d 0d 0a 0d  CLASSSTORE..}...
0aa0: 0a 61 6c 69 61 73 20 44 57 4f 52 44 20 41 53 53  .alias DWORD ASS
0ab0: 4f 43 46 3b 0d 0a 0d 0a 65 6e 75 6d 20 53 48 52  OCF;....enum SHR
0ac0: 45 47 44 45 4c 5f 46 4c 41 47 53 0d 0a 7b 0d 0a  EGDEL_FLAGS..{..
0ad0: 09 53 48 52 45 47 44 45 4c 5f 44 45 46 41 55 4c  .SHREGDEL_DEFAUL
0ae0: 54 20 3d 20 30 78 30 30 30 30 30 30 30 30 2c 0d  T = 0x00000000,.
0af0: 0a 09 53 48 52 45 47 44 45 4c 5f 48 4b 43 55 20  ..SHREGDEL_HKCU 
0b00: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c     = 0x00000001,
0b10: 0d 0a 09 53 48 52 45 47 44 45 4c 5f 48 4b 4c 4d  ...SHREGDEL_HKLM
0b20: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 31 30      = 0x00000010
0b30: 2c 0d 0a 09 53 48 52 45 47 44 45 4c 5f 42 4f 54  ,...SHREGDEL_BOT
0b40: 48 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 31  H    = 0x0000001
0b50: 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 53 48 52  1..}....enum SHR
0b60: 45 47 45 4e 55 4d 5f 46 4c 41 47 53 0d 0a 7b 0d  EGENUM_FLAGS..{.
0b70: 0a 09 53 48 52 45 47 45 4e 55 4d 5f 44 45 46 41  ..SHREGENUM_DEFA
0b80: 55 4c 54 20 3d 20 30 78 30 30 30 30 30 30 30 30  ULT = 0x00000000
0b90: 2c 0d 0a 09 53 48 52 45 47 45 4e 55 4d 5f 48 4b  ,...SHREGENUM_HK
0ba0: 43 55 20 20 20 20 3d 20 30 78 30 30 30 30 30 30  CU    = 0x000000
0bb0: 30 31 2c 0d 0a 09 53 48 52 45 47 45 4e 55 4d 5f  01,...SHREGENUM_
0bc0: 48 4b 4c 4d 20 20 20 20 3d 20 30 78 30 30 30 30  HKLM    = 0x0000
0bd0: 30 30 31 30 2c 0d 0a 09 53 48 52 45 47 45 4e 55  0010,...SHREGENU
0be0: 4d 5f 42 4f 54 48 20 20 20 20 3d 20 30 78 30 30  M_BOTH    = 0x00
0bf0: 30 30 30 30 31 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75  000011..}....enu
0c00: 6d 20 55 52 4c 49 53 0d 0a 7b 0d 0a 09 55 52 4c  m URLIS..{...URL
0c10: 49 53 5f 55 52 4c 2c 0d 0a 09 55 52 4c 49 53 5f  IS_URL,...URLIS_
0c20: 4f 50 41 51 55 45 2c 0d 0a 09 55 52 4c 49 53 5f  OPAQUE,...URLIS_
0c30: 4e 4f 48 49 53 54 4f 52 59 2c 0d 0a 09 55 52 4c  NOHISTORY,...URL
0c40: 49 53 5f 46 49 4c 45 55 52 4c 2c 0d 0a 09 55 52  IS_FILEURL,...UR
0c50: 4c 49 53 5f 41 50 50 4c 49 41 42 4c 45 2c 0d 0a  LIS_APPLIABLE,..
0c60: 09 55 52 4c 49 53 5f 44 49 52 45 43 54 4f 52 59  .URLIS_DIRECTORY
0c70: 2c 0d 0a 09 55 52 4c 49 53 5f 48 41 53 51 55 45  ,...URLIS_HASQUE
0c80: 52 59 0d 0a 7d 0d 0a 0d 0a 6d 69 78 69 6e 20 44  RY..}....mixin D
0c90: 45 43 4c 41 52 45 5f 48 41 4e 44 4c 45 21 28 22  ECLARE_HANDLE!("
0ca0: 48 55 53 4b 45 59 22 29 3b 0d 0a 61 6c 69 61 73  HUSKEY");..alias
0cb0: 20 48 55 53 4b 45 59 2a 20 50 48 55 53 4b 45 59   HUSKEY* PHUSKEY
0cc0: 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e  ;....extern (Win
0cd0: 64 6f 77 73 29 0d 0a 7b 0d 0a 09 61 6c 69 61 73  dows)..{...alias
0ce0: 20 48 52 45 53 55 4c 54 20 66 75 6e 63 74 69 6f   HRESULT functio
0cf0: 6e 20 28 44 4c 4c 56 45 52 53 49 4f 4e 49 4e 46  n (DLLVERSIONINF
0d00: 4f 20 2a 29 20 44 4c 4c 47 45 54 56 45 52 53 49  O *) DLLGETVERSI
0d10: 4f 4e 50 52 4f 43 3b 0d 0a 7d 0d 0a 0d 0a 0d 0a  ONPROC;..}......
0d20: 42 4f 4f 4c 20 49 6e 74 6c 53 74 72 45 71 4e 41  BOOL IntlStrEqNA
0d30: 28 4c 50 43 53 54 52 20 70 53 74 72 31 2c 20 4c  (LPCSTR pStr1, L
0d40: 50 43 53 54 52 20 70 53 74 72 32 2c 20 69 6e 74  PCSTR pStr2, int
0d50: 20 6e 43 68 61 72 29 0d 0a 7b 0d 0a 09 72 65 74   nChar)..{...ret
0d60: 75 72 6e 20 49 6e 74 6c 53 74 72 45 71 57 6f 72  urn IntlStrEqWor
0d70: 6b 65 72 41 28 54 52 55 45 2c 20 70 53 74 72 31  kerA(TRUE, pStr1
0d80: 2c 20 70 53 74 72 32 2c 20 6e 43 68 61 72 29 3b  , pStr2, nChar);
0d90: 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 49 6e 74 6c  ..}....BOOL Intl
0da0: 53 74 72 45 71 4e 57 28 4c 50 43 57 53 54 52 20  StrEqNW(LPCWSTR 
0db0: 70 53 74 72 31 2c 20 4c 50 43 57 53 54 52 20 70  pStr1, LPCWSTR p
0dc0: 53 74 72 32 2c 20 69 6e 74 20 6e 43 68 61 72 29  Str2, int nChar)
0dd0: 0d 0a 7b 0d 0a 09 72 65 74 75 72 6e 20 49 6e 74  ..{...return Int
0de0: 6c 53 74 72 45 71 57 6f 72 6b 65 72 57 28 54 52  lStrEqWorkerW(TR
0df0: 55 45 2c 20 70 53 74 72 31 2c 20 70 53 74 72 32  UE, pStr1, pStr2
0e00: 2c 20 6e 43 68 61 72 29 3b 0d 0a 7d 0d 0a 0d 0a  , nChar);..}....
0e10: 42 4f 4f 4c 20 49 6e 74 6c 53 74 72 45 71 4e 49  BOOL IntlStrEqNI
0e20: 41 28 4c 50 43 53 54 52 20 70 53 74 72 31 2c 20  A(LPCSTR pStr1, 
0e30: 4c 50 43 53 54 52 20 70 53 74 72 32 2c 20 69 6e  LPCSTR pStr2, in
0e40: 74 20 6e 43 68 61 72 29 0d 0a 7b 0d 0a 09 72 65  t nChar)..{...re
0e50: 74 75 72 6e 20 49 6e 74 6c 53 74 72 45 71 57 6f  turn IntlStrEqWo
0e60: 72 6b 65 72 41 28 46 41 4c 53 45 2c 20 70 53 74  rkerA(FALSE, pSt
0e70: 72 31 2c 20 70 53 74 72 32 2c 20 6e 43 68 61 72  r1, pStr2, nChar
0e80: 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 49 6e  );..}....BOOL In
0e90: 74 6c 53 74 72 45 71 4e 49 57 28 4c 50 43 57 53  tlStrEqNIW(LPCWS
0ea0: 54 52 20 70 53 74 72 31 2c 20 4c 50 43 57 53 54  TR pStr1, LPCWST
0eb0: 52 20 70 53 74 72 32 2c 20 69 6e 74 20 6e 43 68  R pStr2, int nCh
0ec0: 61 72 29 0d 0a 7b 0d 0a 09 72 65 74 75 72 6e 20  ar)..{...return 
0ed0: 49 6e 74 6c 53 74 72 45 71 57 6f 72 6b 65 72 57  IntlStrEqWorkerW
0ee0: 28 46 41 4c 53 45 2c 20 70 53 74 72 31 2c 20 70  (FALSE, pStr1, p
0ef0: 53 74 72 32 2c 20 6e 43 68 61 72 29 3b 0d 0a 7d  Str2, nChar);..}
0f00: 0d 0a 0d 0a 42 4f 4f 4c 20 55 72 6c 49 73 46 69  ....BOOL UrlIsFi
0f10: 6c 65 55 72 6c 41 28 4c 50 43 53 54 52 20 70 73  leUrlA(LPCSTR ps
0f20: 7a 55 52 4c 29 0d 0a 7b 0d 0a 09 72 65 74 75 72  zURL)..{...retur
0f30: 6e 20 55 72 6c 49 73 41 28 70 73 7a 55 52 4c 2c  n UrlIsA(pszURL,
0f40: 20 55 52 4c 49 53 2e 55 52 4c 49 53 5f 46 49 4c   URLIS.URLIS_FIL
0f50: 45 55 52 4c 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  EURL);..}....BOO
0f60: 4c 20 55 72 6c 49 73 46 69 6c 65 55 72 6c 57 28  L UrlIsFileUrlW(
0f70: 4c 50 43 57 53 54 52 20 70 73 7a 55 52 4c 29 0d  LPCWSTR pszURL).
0f80: 0a 7b 0d 0a 09 72 65 74 75 72 6e 20 55 72 6c 49  .{...return UrlI
0f90: 73 57 28 70 73 7a 55 52 4c 2c 20 55 52 4c 49 53  sW(pszURL, URLIS
0fa0: 2e 55 52 4c 49 53 5f 46 49 4c 45 55 52 4c 29 3b  .URLIS_FILEURL);
0fb0: 0d 0a 7d 0d 0a 0d 0a 48 52 45 53 55 4c 54 20 55  ..}....HRESULT U
0fc0: 72 6c 55 6e 65 73 63 61 70 65 49 6e 50 6c 61 63  rlUnescapeInPlac
0fd0: 65 41 28 4c 50 53 54 52 20 70 73 7a 55 72 6c 2c  eA(LPSTR pszUrl,
0fe0: 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 29 0d   DWORD dwFlags).
0ff0: 0a 7b 0d 0a 09 72 65 74 75 72 6e 20 55 72 6c 55  .{...return UrlU
1000: 6e 65 73 63 61 70 65 41 28 70 73 7a 55 72 6c 2c  nescapeA(pszUrl,
1010: 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 64 77 46   null, null, dwF
1020: 6c 61 67 73 20 7c 20 55 52 4c 5f 55 4e 45 53 43  lags | URL_UNESC
1030: 41 50 45 5f 49 4e 50 4c 41 43 45 29 3b 0d 0a 7d  APE_INPLACE);..}
1040: 0d 0a 48 52 45 53 55 4c 54 20 55 72 6c 55 6e 65  ..HRESULT UrlUne
1050: 73 63 61 70 65 49 6e 50 6c 61 63 65 57 28 4c 50  scapeInPlaceW(LP
1060: 57 53 54 52 20 70 73 7a 55 72 6c 2c 20 44 57 4f  WSTR pszUrl, DWO
1070: 52 44 20 64 77 46 6c 61 67 73 29 0d 0a 7b 0d 0a  RD dwFlags)..{..
1080: 09 72 65 74 75 72 6e 20 55 72 6c 55 6e 65 73 63  .return UrlUnesc
1090: 61 70 65 57 28 70 73 7a 55 72 6c 2c 20 6e 75 6c  apeW(pszUrl, nul
10a0: 6c 2c 20 6e 75 6c 6c 2c 20 64 77 46 6c 61 67 73  l, null, dwFlags
10b0: 20 7c 20 55 52 4c 5f 55 4e 45 53 43 41 50 45 5f   | URL_UNESCAPE_
10c0: 49 4e 50 4c 41 43 45 29 3b 0d 0a 7d 0d 0a 0d 0a  INPLACE);..}....
10d0: 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29  extern (Windows)
10e0: 3a 0d 0a 42 4f 4f 4c 20 43 68 72 43 6d 70 49 41  :..BOOL ChrCmpIA
10f0: 28 57 4f 52 44 2c 20 57 4f 52 44 29 3b 0d 0a 42  (WORD, WORD);..B
1100: 4f 4f 4c 20 43 68 72 43 6d 70 49 57 28 57 43 48  OOL ChrCmpIW(WCH
1110: 41 52 2c 20 57 43 48 41 52 29 3b 0d 0a 42 4f 4f  AR, WCHAR);..BOO
1120: 4c 20 49 6e 74 6c 53 74 72 45 71 57 6f 72 6b 65  L IntlStrEqWorke
1130: 72 41 28 42 4f 4f 4c 2c 20 4c 50 43 53 54 52 2c  rA(BOOL, LPCSTR,
1140: 20 4c 50 43 53 54 52 2c 20 69 6e 74 29 3b 0d 0a   LPCSTR, int);..
1150: 42 4f 4f 4c 20 49 6e 74 6c 53 74 72 45 71 57 6f  BOOL IntlStrEqWo
1160: 72 6b 65 72 57 28 42 4f 4f 4c 2c 20 4c 50 43 57  rkerW(BOOL, LPCW
1170: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e  STR, LPCWSTR, in
1180: 74 29 3b 0d 0a 48 52 45 53 55 4c 54 20 53 48 53  t);..HRESULT SHS
1190: 74 72 44 75 70 41 28 4c 50 43 53 54 52 2c 20 4c  trDupA(LPCSTR, L
11a0: 50 57 53 54 52 2a 29 3b 0d 0a 48 52 45 53 55 4c  PWSTR*);..HRESUL
11b0: 54 20 53 48 53 74 72 44 75 70 57 28 4c 50 43 57  T SHStrDupW(LPCW
11c0: 53 54 52 2c 20 4c 50 57 53 54 52 2a 29 3b 0d 0a  STR, LPWSTR*);..
11d0: 4c 50 53 54 52 20 53 74 72 43 61 74 41 28 4c 50  LPSTR StrCatA(LP
11e0: 53 54 52 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 4c  STR, LPCSTR);..L
11f0: 50 57 53 54 52 20 53 74 72 43 61 74 57 28 4c 50  PWSTR StrCatW(LP
1200: 57 53 54 52 2c 20 4c 50 43 57 53 54 52 29 3b 0d  WSTR, LPCWSTR);.
1210: 0a 4c 50 53 54 52 20 53 74 72 43 61 74 42 75 66  .LPSTR StrCatBuf
1220: 66 41 28 4c 50 53 54 52 2c 20 4c 50 43 53 54 52  fA(LPSTR, LPCSTR
1230: 2c 20 69 6e 74 29 3b 0d 0a 4c 50 57 53 54 52 20  , int);..LPWSTR 
1240: 53 74 72 43 61 74 42 75 66 66 57 28 4c 50 57 53  StrCatBuffW(LPWS
1250: 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e 74  TR, LPCWSTR, int
1260: 29 3b 0d 0a 44 57 4f 52 44 20 53 74 72 43 61 74  );..DWORD StrCat
1270: 43 68 61 69 6e 57 28 4c 50 57 53 54 52 2c 20 44  ChainW(LPWSTR, D
1280: 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 4c 50 43  WORD, DWORD, LPC
1290: 57 53 54 52 29 3b 0d 0a 4c 50 53 54 52 20 53 74  WSTR);..LPSTR St
12a0: 72 43 68 72 41 28 4c 50 43 53 54 52 2c 20 57 4f  rChrA(LPCSTR, WO
12b0: 52 44 29 3b 0d 0a 4c 50 57 53 54 52 20 53 74 72  RD);..LPWSTR Str
12c0: 43 68 72 57 28 4c 50 43 57 53 54 52 2c 20 57 43  ChrW(LPCWSTR, WC
12d0: 48 41 52 29 3b 0d 0a 4c 50 53 54 52 20 53 74 72  HAR);..LPSTR Str
12e0: 43 68 72 49 41 28 4c 50 43 53 54 52 2c 20 57 4f  ChrIA(LPCSTR, WO
12f0: 52 44 29 3b 0d 0a 4c 50 57 53 54 52 20 53 74 72  RD);..LPWSTR Str
1300: 43 68 72 49 57 28 4c 50 43 57 53 54 52 2c 20 57  ChrIW(LPCWSTR, W
1310: 43 48 41 52 29 3b 0d 0a 69 6e 74 20 53 74 72 43  CHAR);..int StrC
1320: 6d 70 49 57 28 4c 50 43 57 53 54 52 2c 20 4c 50  mpIW(LPCWSTR, LP
1330: 43 57 53 54 52 29 3b 0d 0a 69 6e 74 20 53 74 72  CWSTR);..int Str
1340: 43 6d 70 57 28 4c 50 43 57 53 54 52 2c 20 4c 50  CmpW(LPCWSTR, LP
1350: 43 57 53 54 52 29 3b 0d 0a 4c 50 57 53 54 52 20  CWSTR);..LPWSTR 
1360: 53 74 72 43 70 79 57 28 4c 50 57 53 54 52 2c 20  StrCpyW(LPWSTR, 
1370: 4c 50 43 57 53 54 52 29 3b 0d 0a 4c 50 57 53 54  LPCWSTR);..LPWST
1380: 52 20 53 74 72 43 70 79 4e 57 28 4c 50 57 53 54  R StrCpyNW(LPWST
1390: 52 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e 74 29  R, LPCWSTR, int)
13a0: 3b 0d 0a 69 6e 74 20 53 74 72 43 6d 70 4e 41 28  ;..int StrCmpNA(
13b0: 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20  LPCSTR, LPCSTR, 
13c0: 69 6e 74 29 3b 0d 0a 69 6e 74 20 53 74 72 43 6d  int);..int StrCm
13d0: 70 4e 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43  pNW(LPCWSTR, LPC
13e0: 57 53 54 52 2c 20 69 6e 74 29 3b 0d 0a 69 6e 74  WSTR, int);..int
13f0: 20 53 74 72 43 6d 70 4e 49 41 28 4c 50 43 53 54   StrCmpNIA(LPCST
1400: 52 2c 20 4c 50 43 53 54 52 2c 20 69 6e 74 29 3b  R, LPCSTR, int);
1410: 0d 0a 69 6e 74 20 53 74 72 43 6d 70 4e 49 57 28  ..int StrCmpNIW(
1420: 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52  LPCWSTR, LPCWSTR
1430: 2c 20 69 6e 74 29 3b 0d 0a 69 6e 74 20 53 74 72  , int);..int Str
1440: 43 53 70 6e 41 28 4c 50 43 53 54 52 2c 20 4c 50  CSpnA(LPCSTR, LP
1450: 43 53 54 52 29 3b 0d 0a 69 6e 74 20 53 74 72 43  CSTR);..int StrC
1460: 53 70 6e 57 28 4c 50 43 57 53 54 52 2c 20 4c 50  SpnW(LPCWSTR, LP
1470: 43 57 53 54 52 29 3b 0d 0a 69 6e 74 20 53 74 72  CWSTR);..int Str
1480: 43 53 70 6e 49 41 28 4c 50 43 53 54 52 2c 20 4c  CSpnIA(LPCSTR, L
1490: 50 43 53 54 52 29 3b 0d 0a 69 6e 74 20 53 74 72  PCSTR);..int Str
14a0: 43 53 70 6e 49 57 28 4c 50 43 57 53 54 52 2c 20  CSpnIW(LPCWSTR, 
14b0: 4c 50 43 57 53 54 52 29 3b 0d 0a 4c 50 53 54 52  LPCWSTR);..LPSTR
14c0: 20 53 74 72 44 75 70 41 28 4c 50 43 53 54 52 29   StrDupA(LPCSTR)
14d0: 3b 0d 0a 4c 50 57 53 54 52 20 53 74 72 44 75 70  ;..LPWSTR StrDup
14e0: 57 28 4c 50 43 57 53 54 52 29 3b 0d 0a 4c 50 53  W(LPCWSTR);..LPS
14f0: 54 52 20 53 74 72 46 6f 72 6d 61 74 42 79 74 65  TR StrFormatByte
1500: 53 69 7a 65 36 34 41 28 4c 4f 4e 47 4c 4f 4e 47  Size64A(LONGLONG
1510: 2c 20 4c 50 53 54 52 2c 20 55 49 4e 54 29 3b 0d  , LPSTR, UINT);.
1520: 0a 4c 50 53 54 52 20 53 74 72 46 6f 72 6d 61 74  .LPSTR StrFormat
1530: 42 79 74 65 53 69 7a 65 41 28 44 57 4f 52 44 2c  ByteSizeA(DWORD,
1540: 20 4c 50 53 54 52 2c 20 55 49 4e 54 29 3b 0d 0a   LPSTR, UINT);..
1550: 4c 50 57 53 54 52 20 53 74 72 46 6f 72 6d 61 74  LPWSTR StrFormat
1560: 42 79 74 65 53 69 7a 65 57 28 4c 4f 4e 47 4c 4f  ByteSizeW(LONGLO
1570: 4e 47 2c 20 4c 50 57 53 54 52 2c 20 55 49 4e 54  NG, LPWSTR, UINT
1580: 29 3b 0d 0a 4c 50 53 54 52 20 53 74 72 46 6f 72  );..LPSTR StrFor
1590: 6d 61 74 4b 42 53 69 7a 65 41 28 4c 4f 4e 47 4c  matKBSizeA(LONGL
15a0: 4f 4e 47 2c 20 4c 50 53 54 52 2c 20 55 49 4e 54  ONG, LPSTR, UINT
15b0: 29 3b 0d 0a 4c 50 57 53 54 52 20 53 74 72 46 6f  );..LPWSTR StrFo
15c0: 72 6d 61 74 4b 42 53 69 7a 65 57 28 4c 4f 4e 47  rmatKBSizeW(LONG
15d0: 4c 4f 4e 47 2c 20 4c 50 57 53 54 52 2c 20 55 49  LONG, LPWSTR, UI
15e0: 4e 54 29 3b 0d 0a 69 6e 74 20 53 74 72 46 72 6f  NT);..int StrFro
15f0: 6d 54 69 6d 65 49 6e 74 65 72 76 61 6c 41 28 4c  mTimeIntervalA(L
1600: 50 53 54 52 2c 20 55 49 4e 54 2c 20 44 57 4f 52  PSTR, UINT, DWOR
1610: 44 2c 20 69 6e 74 29 3b 0d 0a 69 6e 74 20 53 74  D, int);..int St
1620: 72 46 72 6f 6d 54 69 6d 65 49 6e 74 65 72 76 61  rFromTimeInterva
1630: 6c 57 28 4c 50 57 53 54 52 2c 20 55 49 4e 54 2c  lW(LPWSTR, UINT,
1640: 20 44 57 4f 52 44 2c 20 69 6e 74 29 3b 0d 0a 42   DWORD, int);..B
1650: 4f 4f 4c 20 53 74 72 49 73 49 6e 74 6c 45 71 75  OOL StrIsIntlEqu
1660: 61 6c 41 28 42 4f 4f 4c 2c 20 4c 50 43 53 54 52  alA(BOOL, LPCSTR
1670: 2c 20 4c 50 43 53 54 52 2c 20 69 6e 74 29 3b 0d  , LPCSTR, int);.
1680: 0a 42 4f 4f 4c 20 53 74 72 49 73 49 6e 74 6c 45  .BOOL StrIsIntlE
1690: 71 75 61 6c 57 28 42 4f 4f 4c 2c 20 4c 50 43 57  qualW(BOOL, LPCW
16a0: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e  STR, LPCWSTR, in
16b0: 74 29 3b 0d 0a 4c 50 53 54 52 20 53 74 72 4e 43  t);..LPSTR StrNC
16c0: 61 74 41 28 4c 50 53 54 52 2c 20 4c 50 43 53 54  atA(LPSTR, LPCST
16d0: 52 2c 20 69 6e 74 29 3b 0d 0a 4c 50 57 53 54 52  R, int);..LPWSTR
16e0: 20 53 74 72 4e 43 61 74 57 28 4c 50 57 53 54 52   StrNCatW(LPWSTR
16f0: 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e 74 29 3b  , LPCWSTR, int);
1700: 0d 0a 4c 50 53 54 52 20 53 74 72 50 42 72 6b 41  ..LPSTR StrPBrkA
1710: 28 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 29  (LPCSTR, LPCSTR)
1720: 3b 0d 0a 4c 50 57 53 54 52 20 53 74 72 50 42 72  ;..LPWSTR StrPBr
1730: 6b 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43 57  kW(LPCWSTR, LPCW
1740: 53 54 52 29 3b 0d 0a 4c 50 53 54 52 20 53 74 72  STR);..LPSTR Str
1750: 52 43 68 72 41 28 4c 50 43 53 54 52 2c 20 4c 50  RChrA(LPCSTR, LP
1760: 43 53 54 52 2c 20 57 4f 52 44 29 3b 0d 0a 4c 50  CSTR, WORD);..LP
1770: 57 53 54 52 20 53 74 72 52 43 68 72 57 28 4c 50  WSTR StrRChrW(LP
1780: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20  CWSTR, LPCWSTR, 
1790: 57 43 48 41 52 29 3b 0d 0a 4c 50 53 54 52 20 53  WCHAR);..LPSTR S
17a0: 74 72 52 43 68 72 49 41 28 4c 50 43 53 54 52 2c  trRChrIA(LPCSTR,
17b0: 20 4c 50 43 53 54 52 2c 20 57 4f 52 44 29 3b 0d   LPCSTR, WORD);.
17c0: 0a 4c 50 57 53 54 52 20 53 74 72 52 43 68 72 49  .LPWSTR StrRChrI
17d0: 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53  W(LPCWSTR, LPCWS
17e0: 54 52 2c 20 57 43 48 41 52 29 3b 0d 0a 4c 50 53  TR, WCHAR);..LPS
17f0: 54 52 20 53 74 72 52 53 74 72 49 41 28 4c 50 43  TR StrRStrIA(LPC
1800: 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43  STR, LPCSTR, LPC
1810: 53 54 52 29 3b 0d 0a 4c 50 57 53 54 52 20 53 74  STR);..LPWSTR St
1820: 72 52 53 74 72 49 57 28 4c 50 43 57 53 54 52 2c  rRStrIW(LPCWSTR,
1830: 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54   LPCWSTR, LPCWST
1840: 52 29 3b 0d 0a 69 6e 74 20 53 74 72 53 70 6e 41  R);..int StrSpnA
1850: 28 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 29  (LPCSTR, LPCSTR)
1860: 3b 0d 0a 69 6e 74 20 53 74 72 53 70 6e 57 28 4c  ;..int StrSpnW(L
1870: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 29  PCWSTR, LPCWSTR)
1880: 3b 0d 0a 4c 50 53 54 52 20 53 74 72 53 74 72 41  ;..LPSTR StrStrA
1890: 28 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 29  (LPCSTR, LPCSTR)
18a0: 3b 0d 0a 4c 50 53 54 52 20 53 74 72 53 74 72 49  ;..LPSTR StrStrI
18b0: 41 28 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52  A(LPCSTR, LPCSTR
18c0: 29 3b 0d 0a 4c 50 57 53 54 52 20 53 74 72 53 74  );..LPWSTR StrSt
18d0: 72 49 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43  rIW(LPCWSTR, LPC
18e0: 57 53 54 52 29 3b 0d 0a 4c 50 57 53 54 52 20 53  WSTR);..LPWSTR S
18f0: 74 72 53 74 72 57 28 4c 50 43 57 53 54 52 2c 20  trStrW(LPCWSTR, 
1900: 4c 50 43 57 53 54 52 29 3b 0d 0a 69 6e 74 20 53  LPCWSTR);..int S
1910: 74 72 54 6f 49 6e 74 41 28 4c 50 43 53 54 52 29  trToIntA(LPCSTR)
1920: 3b 0d 0a 69 6e 74 20 53 74 72 54 6f 49 6e 74 57  ;..int StrToIntW
1930: 28 4c 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c  (LPCWSTR);..BOOL
1940: 20 53 74 72 54 6f 49 6e 74 45 78 41 28 4c 50 43   StrToIntExA(LPC
1950: 53 54 52 2c 20 44 57 4f 52 44 2c 20 69 6e 74 2a  STR, DWORD, int*
1960: 29 3b 0d 0a 42 4f 4f 4c 20 53 74 72 54 6f 49 6e  );..BOOL StrToIn
1970: 74 45 78 57 28 4c 50 43 57 53 54 52 2c 20 44 57  tExW(LPCWSTR, DW
1980: 4f 52 44 2c 20 69 6e 74 2a 29 3b 0d 0a 42 4f 4f  ORD, int*);..BOO
1990: 4c 20 53 74 72 54 72 69 6d 41 28 4c 50 53 54 52  L StrTrimA(LPSTR
19a0: 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c  , LPCSTR);..BOOL
19b0: 20 53 74 72 54 72 69 6d 57 28 4c 50 57 53 54 52   StrTrimW(LPWSTR
19c0: 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a 4c 50 53  , LPCWSTR);..LPS
19d0: 54 52 20 50 61 74 68 41 64 64 42 61 63 6b 73 6c  TR PathAddBacksl
19e0: 61 73 68 41 28 4c 50 53 54 52 29 3b 0d 0a 4c 50  ashA(LPSTR);..LP
19f0: 57 53 54 52 20 50 61 74 68 41 64 64 42 61 63 6b  WSTR PathAddBack
1a00: 73 6c 61 73 68 57 28 4c 50 57 53 54 52 29 3b 0d  slashW(LPWSTR);.
1a10: 0a 42 4f 4f 4c 20 50 61 74 68 41 64 64 45 78 74  .BOOL PathAddExt
1a20: 65 6e 73 69 6f 6e 41 28 4c 50 53 54 52 2c 20 4c  ensionA(LPSTR, L
1a30: 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61  PCSTR);..BOOL Pa
1a40: 74 68 41 64 64 45 78 74 65 6e 73 69 6f 6e 57 28  thAddExtensionW(
1a50: 4c 50 57 53 54 52 2c 20 4c 50 43 57 53 54 52 29  LPWSTR, LPCWSTR)
1a60: 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 41 70 70 65  ;..BOOL PathAppe
1a70: 6e 64 41 28 4c 50 53 54 52 2c 20 4c 50 43 53 54  ndA(LPSTR, LPCST
1a80: 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 41 70  R);..BOOL PathAp
1a90: 70 65 6e 64 57 28 4c 50 57 53 54 52 2c 20 4c 50  pendW(LPWSTR, LP
1aa0: 43 57 53 54 52 29 3b 0d 0a 4c 50 53 54 52 20 50  CWSTR);..LPSTR P
1ab0: 61 74 68 42 75 69 6c 64 52 6f 6f 74 41 28 4c 50  athBuildRootA(LP
1ac0: 53 54 52 2c 20 69 6e 74 29 3b 0d 0a 4c 50 57 53  STR, int);..LPWS
1ad0: 54 52 20 50 61 74 68 42 75 69 6c 64 52 6f 6f 74  TR PathBuildRoot
1ae0: 57 28 4c 50 57 53 54 52 2c 20 69 6e 74 29 3b 0d  W(LPWSTR, int);.
1af0: 0a 42 4f 4f 4c 20 50 61 74 68 43 61 6e 6f 6e 69  .BOOL PathCanoni
1b00: 63 61 6c 69 7a 65 41 28 4c 50 53 54 52 2c 20 4c  calizeA(LPSTR, L
1b10: 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61  PCSTR);..BOOL Pa
1b20: 74 68 43 61 6e 6f 6e 69 63 61 6c 69 7a 65 57 28  thCanonicalizeW(
1b30: 4c 50 57 53 54 52 2c 20 4c 50 43 57 53 54 52 29  LPWSTR, LPCWSTR)
1b40: 3b 0d 0a 4c 50 53 54 52 20 50 61 74 68 43 6f 6d  ;..LPSTR PathCom
1b50: 62 69 6e 65 41 28 4c 50 53 54 52 2c 20 4c 50 43  bineA(LPSTR, LPC
1b60: 53 54 52 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 4c  STR, LPCSTR);..L
1b70: 50 57 53 54 52 20 50 61 74 68 43 6f 6d 62 69 6e  PWSTR PathCombin
1b80: 65 57 28 4c 50 57 53 54 52 2c 20 4c 50 43 57 53  eW(LPWSTR, LPCWS
1b90: 54 52 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a 69  TR, LPCWSTR);..i
1ba0: 6e 74 20 50 61 74 68 43 6f 6d 6d 6f 6e 50 72 65  nt PathCommonPre
1bb0: 66 69 78 41 28 4c 50 43 53 54 52 2c 20 4c 50 43  fixA(LPCSTR, LPC
1bc0: 53 54 52 2c 20 4c 50 53 54 52 29 3b 0d 0a 69 6e  STR, LPSTR);..in
1bd0: 74 20 50 61 74 68 43 6f 6d 6d 6f 6e 50 72 65 66  t PathCommonPref
1be0: 69 78 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43  ixW(LPCWSTR, LPC
1bf0: 57 53 54 52 2c 20 4c 50 57 53 54 52 29 3b 0d 0a  WSTR, LPWSTR);..
1c00: 42 4f 4f 4c 20 50 61 74 68 43 6f 6d 70 61 63 74  BOOL PathCompact
1c10: 50 61 74 68 41 28 48 44 43 2c 20 4c 50 53 54 52  PathA(HDC, LPSTR
1c20: 2c 20 55 49 4e 54 29 3b 0d 0a 42 4f 4f 4c 20 50  , UINT);..BOOL P
1c30: 61 74 68 43 6f 6d 70 61 63 74 50 61 74 68 57 28  athCompactPathW(
1c40: 48 44 43 2c 20 4c 50 57 53 54 52 2c 20 55 49 4e  HDC, LPWSTR, UIN
1c50: 54 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 43 6f  T);..BOOL PathCo
1c60: 6d 70 61 63 74 50 61 74 68 45 78 41 28 4c 50 53  mpactPathExA(LPS
1c70: 54 52 2c 20 4c 50 43 53 54 52 2c 20 55 49 4e 54  TR, LPCSTR, UINT
1c80: 2c 20 44 57 4f 52 44 29 3b 0d 0a 42 4f 4f 4c 20  , DWORD);..BOOL 
1c90: 50 61 74 68 43 6f 6d 70 61 63 74 50 61 74 68 45  PathCompactPathE
1ca0: 78 57 28 4c 50 57 53 54 52 2c 20 4c 50 43 57 53  xW(LPWSTR, LPCWS
1cb0: 54 52 2c 20 55 49 4e 54 2c 20 44 57 4f 52 44 29  TR, UINT, DWORD)
1cc0: 3b 0d 0a 48 52 45 53 55 4c 54 20 50 61 74 68 43  ;..HRESULT PathC
1cd0: 72 65 61 74 65 46 72 6f 6d 55 72 6c 41 28 4c 50  reateFromUrlA(LP
1ce0: 43 53 54 52 2c 20 4c 50 53 54 52 2c 20 4c 50 44  CSTR, LPSTR, LPD
1cf0: 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 48  WORD, DWORD);..H
1d00: 52 45 53 55 4c 54 20 50 61 74 68 43 72 65 61 74  RESULT PathCreat
1d10: 65 46 72 6f 6d 55 72 6c 57 28 4c 50 43 57 53 54  eFromUrlW(LPCWST
1d20: 52 2c 20 4c 50 57 53 54 52 2c 20 4c 50 44 57 4f  R, LPWSTR, LPDWO
1d30: 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 42 4f 4f  RD, DWORD);..BOO
1d40: 4c 20 50 61 74 68 46 69 6c 65 45 78 69 73 74 73  L PathFileExists
1d50: 41 28 4c 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c  A(LPCSTR);..BOOL
1d60: 20 50 61 74 68 46 69 6c 65 45 78 69 73 74 73 57   PathFileExistsW
1d70: 28 4c 50 43 57 53 54 52 29 3b 0d 0a 4c 50 53 54  (LPCWSTR);..LPST
1d80: 52 20 50 61 74 68 46 69 6e 64 45 78 74 65 6e 73  R PathFindExtens
1d90: 69 6f 6e 41 28 4c 50 43 53 54 52 29 3b 0d 0a 4c  ionA(LPCSTR);..L
1da0: 50 57 53 54 52 20 50 61 74 68 46 69 6e 64 45 78  PWSTR PathFindEx
1db0: 74 65 6e 73 69 6f 6e 57 28 4c 50 43 57 53 54 52  tensionW(LPCWSTR
1dc0: 29 3b 0d 0a 4c 50 53 54 52 20 50 61 74 68 46 69  );..LPSTR PathFi
1dd0: 6e 64 46 69 6c 65 4e 61 6d 65 41 28 4c 50 43 53  ndFileNameA(LPCS
1de0: 54 52 29 3b 0d 0a 4c 50 57 53 54 52 20 50 61 74  TR);..LPWSTR Pat
1df0: 68 46 69 6e 64 46 69 6c 65 4e 61 6d 65 57 28 4c  hFindFileNameW(L
1e00: 50 43 57 53 54 52 29 3b 0d 0a 4c 50 53 54 52 20  PCWSTR);..LPSTR 
1e10: 50 61 74 68 46 69 6e 64 4e 65 78 74 43 6f 6d 70  PathFindNextComp
1e20: 6f 6e 65 6e 74 41 28 4c 50 43 53 54 52 29 3b 0d  onentA(LPCSTR);.
1e30: 0a 4c 50 57 53 54 52 20 50 61 74 68 46 69 6e 64  .LPWSTR PathFind
1e40: 4e 65 78 74 43 6f 6d 70 6f 6e 65 6e 74 57 28 4c  NextComponentW(L
1e50: 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  PCWSTR);..BOOL P
1e60: 61 74 68 46 69 6e 64 4f 6e 50 61 74 68 41 28 4c  athFindOnPathA(L
1e70: 50 53 54 52 2c 20 4c 50 43 53 54 52 2a 29 3b 0d  PSTR, LPCSTR*);.
1e80: 0a 42 4f 4f 4c 20 50 61 74 68 46 69 6e 64 4f 6e  .BOOL PathFindOn
1e90: 50 61 74 68 57 28 4c 50 57 53 54 52 2c 20 4c 50  PathW(LPWSTR, LP
1ea0: 43 57 53 54 52 2a 29 3b 0d 0a 4c 50 43 53 54 52  CWSTR*);..LPCSTR
1eb0: 20 50 61 74 68 46 69 6e 64 53 75 66 66 69 78 41   PathFindSuffixA
1ec0: 72 72 61 79 41 28 4c 50 43 53 54 52 2c 20 4c 50  rrayA(LPCSTR, LP
1ed0: 43 53 54 52 2a 2c 20 69 6e 74 29 3b 0d 0a 4c 50  CSTR*, int);..LP
1ee0: 43 57 53 54 52 20 50 61 74 68 46 69 6e 64 53 75  CWSTR PathFindSu
1ef0: 66 66 69 78 41 72 72 61 79 57 28 4c 50 43 57 53  ffixArrayW(LPCWS
1f00: 54 52 2c 20 4c 50 43 57 53 54 52 2a 2c 20 69 6e  TR, LPCWSTR*, in
1f10: 74 29 3b 0d 0a 4c 50 53 54 52 20 50 61 74 68 47  t);..LPSTR PathG
1f20: 65 74 41 72 67 73 41 28 4c 50 43 53 54 52 29 3b  etArgsA(LPCSTR);
1f30: 0d 0a 4c 50 57 53 54 52 20 50 61 74 68 47 65 74  ..LPWSTR PathGet
1f40: 41 72 67 73 57 28 4c 50 43 57 53 54 52 29 3b 0d  ArgsW(LPCWSTR);.
1f50: 0a 55 49 4e 54 20 50 61 74 68 47 65 74 43 68 61  .UINT PathGetCha
1f60: 72 54 79 70 65 41 28 55 43 48 41 52 29 3b 0d 0a  rTypeA(UCHAR);..
1f70: 55 49 4e 54 20 50 61 74 68 47 65 74 43 68 61 72  UINT PathGetChar
1f80: 54 79 70 65 57 28 57 43 48 41 52 29 3b 0d 0a 69  TypeW(WCHAR);..i
1f90: 6e 74 20 50 61 74 68 47 65 74 44 72 69 76 65 4e  nt PathGetDriveN
1fa0: 75 6d 62 65 72 41 28 4c 50 43 53 54 52 29 3b 0d  umberA(LPCSTR);.
1fb0: 0a 69 6e 74 20 50 61 74 68 47 65 74 44 72 69 76  .int PathGetDriv
1fc0: 65 4e 75 6d 62 65 72 57 28 4c 50 43 57 53 54 52  eNumberW(LPCWSTR
1fd0: 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73 43  );..BOOL PathIsC
1fe0: 6f 6e 74 65 6e 74 54 79 70 65 41 28 4c 50 43 53  ontentTypeA(LPCS
1ff0: 54 52 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 42 4f  TR, LPCSTR);..BO
2000: 4f 4c 20 50 61 74 68 49 73 43 6f 6e 74 65 6e 74  OL PathIsContent
2010: 54 79 70 65 57 28 4c 50 43 57 53 54 52 2c 20 4c  TypeW(LPCWSTR, L
2020: 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  PCWSTR);..BOOL P
2030: 61 74 68 49 73 44 69 72 65 63 74 6f 72 79 41 28  athIsDirectoryA(
2040: 4c 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  LPCSTR);..BOOL P
2050: 61 74 68 49 73 44 69 72 65 63 74 6f 72 79 45 6d  athIsDirectoryEm
2060: 70 74 79 41 28 4c 50 43 53 54 52 29 3b 0d 0a 42  ptyA(LPCSTR);..B
2070: 4f 4f 4c 20 50 61 74 68 49 73 44 69 72 65 63 74  OOL PathIsDirect
2080: 6f 72 79 45 6d 70 74 79 57 28 4c 50 43 57 53 54  oryEmptyW(LPCWST
2090: 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73  R);..BOOL PathIs
20a0: 44 69 72 65 63 74 6f 72 79 57 28 4c 50 43 57 53  DirectoryW(LPCWS
20b0: 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49  TR);..BOOL PathI
20c0: 73 46 69 6c 65 53 70 65 63 41 28 4c 50 43 53 54  sFileSpecA(LPCST
20d0: 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73  R);..BOOL PathIs
20e0: 46 69 6c 65 53 70 65 63 57 28 4c 50 43 57 53 54  FileSpecW(LPCWST
20f0: 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73  R);..BOOL PathIs
2100: 4c 46 4e 46 69 6c 65 53 70 65 63 41 28 4c 50 43  LFNFileSpecA(LPC
2110: 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68  STR);..BOOL Path
2120: 49 73 4c 46 4e 46 69 6c 65 53 70 65 63 57 28 4c  IsLFNFileSpecW(L
2130: 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  PCWSTR);..BOOL P
2140: 61 74 68 49 73 4e 65 74 77 6f 72 6b 50 61 74 68  athIsNetworkPath
2150: 41 28 4c 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c  A(LPCSTR);..BOOL
2160: 20 50 61 74 68 49 73 4e 65 74 77 6f 72 6b 50 61   PathIsNetworkPa
2170: 74 68 57 28 4c 50 43 57 53 54 52 29 3b 0d 0a 42  thW(LPCWSTR);..B
2180: 4f 4f 4c 20 50 61 74 68 49 73 50 72 65 66 69 78  OOL PathIsPrefix
2190: 41 28 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52  A(LPCSTR, LPCSTR
21a0: 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73 50  );..BOOL PathIsP
21b0: 72 65 66 69 78 57 28 4c 50 43 57 53 54 52 2c 20  refixW(LPCWSTR, 
21c0: 4c 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20  LPCWSTR);..BOOL 
21d0: 50 61 74 68 49 73 52 65 6c 61 74 69 76 65 41 28  PathIsRelativeA(
21e0: 4c 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  LPCSTR);..BOOL P
21f0: 61 74 68 49 73 52 65 6c 61 74 69 76 65 57 28 4c  athIsRelativeW(L
2200: 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  PCWSTR);..BOOL P
2210: 61 74 68 49 73 52 6f 6f 74 41 28 4c 50 43 53 54  athIsRootA(LPCST
2220: 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73  R);..BOOL PathIs
2230: 52 6f 6f 74 57 28 4c 50 43 57 53 54 52 29 3b 0d  RootW(LPCWSTR);.
2240: 0a 42 4f 4f 4c 20 50 61 74 68 49 73 53 61 6d 65  .BOOL PathIsSame
2250: 52 6f 6f 74 41 28 4c 50 43 53 54 52 2c 20 4c 50  RootA(LPCSTR, LP
2260: 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74  CSTR);..BOOL Pat
2270: 68 49 73 53 61 6d 65 52 6f 6f 74 57 28 4c 50 43  hIsSameRootW(LPC
2280: 57 53 54 52 2c 20 4c 50 43 57 53 54 52 29 3b 0d  WSTR, LPCWSTR);.
2290: 0a 42 4f 4f 4c 20 50 61 74 68 49 73 53 79 73 74  .BOOL PathIsSyst
22a0: 65 6d 46 6f 6c 64 65 72 41 28 4c 50 43 53 54 52  emFolderA(LPCSTR
22b0: 2c 20 44 57 4f 52 44 29 3b 0d 0a 42 4f 4f 4c 20  , DWORD);..BOOL 
22c0: 50 61 74 68 49 73 53 79 73 74 65 6d 46 6f 6c 64  PathIsSystemFold
22d0: 65 72 57 28 4c 50 43 57 53 54 52 2c 20 44 57 4f  erW(LPCWSTR, DWO
22e0: 52 44 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49  RD);..BOOL PathI
22f0: 73 55 4e 43 41 28 4c 50 43 53 54 52 29 3b 0d 0a  sUNCA(LPCSTR);..
2300: 42 4f 4f 4c 20 50 61 74 68 49 73 55 4e 43 53 65  BOOL PathIsUNCSe
2310: 72 76 65 72 41 28 4c 50 43 53 54 52 29 3b 0d 0a  rverA(LPCSTR);..
2320: 42 4f 4f 4c 20 50 61 74 68 49 73 55 4e 43 53 65  BOOL PathIsUNCSe
2330: 72 76 65 72 53 68 61 72 65 41 28 4c 50 43 53 54  rverShareA(LPCST
2340: 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 49 73  R);..BOOL PathIs
2350: 55 4e 43 53 65 72 76 65 72 53 68 61 72 65 57 28  UNCServerShareW(
2360: 4c 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20  LPCWSTR);..BOOL 
2370: 50 61 74 68 49 73 55 4e 43 53 65 72 76 65 72 57  PathIsUNCServerW
2380: 28 4c 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c  (LPCWSTR);..BOOL
2390: 20 50 61 74 68 49 73 55 4e 43 57 28 4c 50 43 57   PathIsUNCW(LPCW
23a0: 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68  STR);..BOOL Path
23b0: 49 73 55 52 4c 41 28 4c 50 43 53 54 52 29 3b 0d  IsURLA(LPCSTR);.
23c0: 0a 42 4f 4f 4c 20 50 61 74 68 49 73 55 52 4c 57  .BOOL PathIsURLW
23d0: 28 4c 50 43 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c  (LPCWSTR);..BOOL
23e0: 20 50 61 74 68 4d 61 6b 65 50 72 65 74 74 79 41   PathMakePrettyA
23f0: 28 4c 50 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  (LPSTR);..BOOL P
2400: 61 74 68 4d 61 6b 65 50 72 65 74 74 79 57 28 4c  athMakePrettyW(L
2410: 50 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61  PWSTR);..BOOL Pa
2420: 74 68 4d 61 6b 65 53 79 73 74 65 6d 46 6f 6c 64  thMakeSystemFold
2430: 65 72 41 28 4c 50 53 54 52 29 3b 0d 0a 42 4f 4f  erA(LPSTR);..BOO
2440: 4c 20 50 61 74 68 4d 61 6b 65 53 79 73 74 65 6d  L PathMakeSystem
2450: 46 6f 6c 64 65 72 57 28 4c 50 57 53 54 52 29 3b  FolderW(LPWSTR);
2460: 0d 0a 42 4f 4f 4c 20 50 61 74 68 4d 61 74 63 68  ..BOOL PathMatch
2470: 53 70 65 63 41 28 4c 50 43 53 54 52 2c 20 4c 50  SpecA(LPCSTR, LP
2480: 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74  CSTR);..BOOL Pat
2490: 68 4d 61 74 63 68 53 70 65 63 57 28 4c 50 43 57  hMatchSpecW(LPCW
24a0: 53 54 52 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a  STR, LPCWSTR);..
24b0: 69 6e 74 20 50 61 74 68 50 61 72 73 65 49 63 6f  int PathParseIco
24c0: 6e 4c 6f 63 61 74 69 6f 6e 41 28 4c 50 53 54 52  nLocationA(LPSTR
24d0: 29 3b 0d 0a 69 6e 74 20 50 61 74 68 50 61 72 73  );..int PathPars
24e0: 65 49 63 6f 6e 4c 6f 63 61 74 69 6f 6e 57 28 4c  eIconLocationW(L
24f0: 50 57 53 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61  PWSTR);..void Pa
2500: 74 68 51 75 6f 74 65 53 70 61 63 65 73 41 28 4c  thQuoteSpacesA(L
2510: 50 53 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61 74  PSTR);..void Pat
2520: 68 51 75 6f 74 65 53 70 61 63 65 73 57 28 4c 50  hQuoteSpacesW(LP
2530: 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74  WSTR);..BOOL Pat
2540: 68 52 65 6c 61 74 69 76 65 50 61 74 68 54 6f 41  hRelativePathToA
2550: 28 4c 50 53 54 52 2c 20 4c 50 43 53 54 52 2c 20  (LPSTR, LPCSTR, 
2560: 44 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20 44  DWORD, LPCSTR, D
2570: 57 4f 52 44 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74  WORD);..BOOL Pat
2580: 68 52 65 6c 61 74 69 76 65 50 61 74 68 54 6f 57  hRelativePathToW
2590: 28 4c 50 57 53 54 52 2c 20 4c 50 43 57 53 54 52  (LPWSTR, LPCWSTR
25a0: 2c 20 44 57 4f 52 44 2c 20 4c 50 43 57 53 54 52  , DWORD, LPCWSTR
25b0: 2c 20 44 57 4f 52 44 29 3b 0d 0a 76 6f 69 64 20  , DWORD);..void 
25c0: 50 61 74 68 52 65 6d 6f 76 65 41 72 67 73 41 28  PathRemoveArgsA(
25d0: 4c 50 53 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61  LPSTR);..void Pa
25e0: 74 68 52 65 6d 6f 76 65 41 72 67 73 57 28 4c 50  thRemoveArgsW(LP
25f0: 57 53 54 52 29 3b 0d 0a 4c 50 53 54 52 20 50 61  WSTR);..LPSTR Pa
2600: 74 68 52 65 6d 6f 76 65 42 61 63 6b 73 6c 61 73  thRemoveBackslas
2610: 68 41 28 4c 50 53 54 52 29 3b 0d 0a 4c 50 57 53  hA(LPSTR);..LPWS
2620: 54 52 20 50 61 74 68 52 65 6d 6f 76 65 42 61 63  TR PathRemoveBac
2630: 6b 73 6c 61 73 68 57 28 4c 50 57 53 54 52 29 3b  kslashW(LPWSTR);
2640: 0d 0a 76 6f 69 64 20 50 61 74 68 52 65 6d 6f 76  ..void PathRemov
2650: 65 42 6c 61 6e 6b 73 41 28 4c 50 53 54 52 29 3b  eBlanksA(LPSTR);
2660: 0d 0a 76 6f 69 64 20 50 61 74 68 52 65 6d 6f 76  ..void PathRemov
2670: 65 42 6c 61 6e 6b 73 57 28 4c 50 57 53 54 52 29  eBlanksW(LPWSTR)
2680: 3b 0d 0a 76 6f 69 64 20 50 61 74 68 52 65 6d 6f  ;..void PathRemo
2690: 76 65 45 78 74 65 6e 73 69 6f 6e 41 28 4c 50 53  veExtensionA(LPS
26a0: 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61 74 68 52  TR);..void PathR
26b0: 65 6d 6f 76 65 45 78 74 65 6e 73 69 6f 6e 57 28  emoveExtensionW(
26c0: 4c 50 57 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  LPWSTR);..BOOL P
26d0: 61 74 68 52 65 6d 6f 76 65 46 69 6c 65 53 70 65  athRemoveFileSpe
26e0: 63 41 28 4c 50 53 54 52 29 3b 0d 0a 42 4f 4f 4c  cA(LPSTR);..BOOL
26f0: 20 50 61 74 68 52 65 6d 6f 76 65 46 69 6c 65 53   PathRemoveFileS
2700: 70 65 63 57 28 4c 50 57 53 54 52 29 3b 0d 0a 42  pecW(LPWSTR);..B
2710: 4f 4f 4c 20 50 61 74 68 52 65 6e 61 6d 65 45 78  OOL PathRenameEx
2720: 74 65 6e 73 69 6f 6e 41 28 4c 50 53 54 52 2c 20  tensionA(LPSTR, 
2730: 4c 50 43 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50  LPCSTR);..BOOL P
2740: 61 74 68 52 65 6e 61 6d 65 45 78 74 65 6e 73 69  athRenameExtensi
2750: 6f 6e 57 28 4c 50 57 53 54 52 2c 20 4c 50 43 57  onW(LPWSTR, LPCW
2760: 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68  STR);..BOOL Path
2770: 53 65 61 72 63 68 41 6e 64 51 75 61 6c 69 66 79  SearchAndQualify
2780: 41 28 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c  A(LPCSTR, LPSTR,
2790: 20 55 49 4e 54 29 3b 0d 0a 42 4f 4f 4c 20 50 61   UINT);..BOOL Pa
27a0: 74 68 53 65 61 72 63 68 41 6e 64 51 75 61 6c 69  thSearchAndQuali
27b0: 66 79 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 57  fyW(LPCWSTR, LPW
27c0: 53 54 52 2c 20 55 49 4e 54 29 3b 0d 0a 76 6f 69  STR, UINT);..voi
27d0: 64 20 50 61 74 68 53 65 74 44 6c 67 49 74 65 6d  d PathSetDlgItem
27e0: 50 61 74 68 41 28 48 57 4e 44 2c 20 69 6e 74 2c  PathA(HWND, int,
27f0: 20 4c 50 43 53 54 52 29 3b 0d 0a 76 6f 69 64 20   LPCSTR);..void 
2800: 50 61 74 68 53 65 74 44 6c 67 49 74 65 6d 50 61  PathSetDlgItemPa
2810: 74 68 57 28 48 57 4e 44 2c 20 69 6e 74 2c 20 4c  thW(HWND, int, L
2820: 50 43 57 53 54 52 29 3b 0d 0a 4c 50 53 54 52 20  PCWSTR);..LPSTR 
2830: 50 61 74 68 53 6b 69 70 52 6f 6f 74 41 28 4c 50  PathSkipRootA(LP
2840: 43 53 54 52 29 3b 0d 0a 4c 50 57 53 54 52 20 50  CSTR);..LPWSTR P
2850: 61 74 68 53 6b 69 70 52 6f 6f 74 57 28 4c 50 43  athSkipRootW(LPC
2860: 57 53 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61 74  WSTR);..void Pat
2870: 68 53 74 72 69 70 50 61 74 68 41 28 4c 50 53 54  hStripPathA(LPST
2880: 52 29 3b 0d 0a 76 6f 69 64 20 50 61 74 68 53 74  R);..void PathSt
2890: 72 69 70 50 61 74 68 57 28 4c 50 57 53 54 52 29  ripPathW(LPWSTR)
28a0: 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 53 74 72 69  ;..BOOL PathStri
28b0: 70 54 6f 52 6f 6f 74 41 28 4c 50 53 54 52 29 3b  pToRootA(LPSTR);
28c0: 0d 0a 42 4f 4f 4c 20 50 61 74 68 53 74 72 69 70  ..BOOL PathStrip
28d0: 54 6f 52 6f 6f 74 57 28 4c 50 57 53 54 52 29 3b  ToRootW(LPWSTR);
28e0: 0d 0a 76 6f 69 64 20 50 61 74 68 55 6e 64 65 63  ..void PathUndec
28f0: 6f 72 61 74 65 41 28 4c 50 53 54 52 29 3b 0d 0a  orateA(LPSTR);..
2900: 76 6f 69 64 20 50 61 74 68 55 6e 64 65 63 6f 72  void PathUndecor
2910: 61 74 65 57 28 4c 50 57 53 54 52 29 3b 0d 0a 42  ateW(LPWSTR);..B
2920: 4f 4f 4c 20 50 61 74 68 55 6e 45 78 70 61 6e 64  OOL PathUnExpand
2930: 45 6e 76 53 74 72 69 6e 67 73 41 28 4c 50 43 53  EnvStringsA(LPCS
2940: 54 52 2c 20 4c 50 53 54 52 2c 20 55 49 4e 54 29  TR, LPSTR, UINT)
2950: 3b 0d 0a 42 4f 4f 4c 20 50 61 74 68 55 6e 45 78  ;..BOOL PathUnEx
2960: 70 61 6e 64 45 6e 76 53 74 72 69 6e 67 73 57 28  pandEnvStringsW(
2970: 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 54 52 2c  LPCWSTR, LPWSTR,
2980: 20 55 49 4e 54 29 3b 0d 0a 42 4f 4f 4c 20 50 61   UINT);..BOOL Pa
2990: 74 68 55 6e 6d 61 6b 65 53 79 73 74 65 6d 46 6f  thUnmakeSystemFo
29a0: 6c 64 65 72 41 28 4c 50 53 54 52 29 3b 0d 0a 42  lderA(LPSTR);..B
29b0: 4f 4f 4c 20 50 61 74 68 55 6e 6d 61 6b 65 53 79  OOL PathUnmakeSy
29c0: 73 74 65 6d 46 6f 6c 64 65 72 57 28 4c 50 57 53  stemFolderW(LPWS
29d0: 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61 74 68 55  TR);..void PathU
29e0: 6e 71 75 6f 74 65 53 70 61 63 65 73 41 28 4c 50  nquoteSpacesA(LP
29f0: 53 54 52 29 3b 0d 0a 76 6f 69 64 20 50 61 74 68  STR);..void Path
2a00: 55 6e 71 75 6f 74 65 53 70 61 63 65 73 57 28 4c  UnquoteSpacesW(L
2a10: 50 57 53 54 52 29 3b 0d 0a 48 52 45 53 55 4c 54  PWSTR);..HRESULT
2a20: 20 53 48 41 75 74 6f 43 6f 6d 70 6c 65 74 65 28   SHAutoComplete(
2a30: 48 57 4e 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 42  HWND, DWORD);..B
2a40: 4f 4f 4c 20 53 48 43 72 65 61 74 65 54 68 72 65  OOL SHCreateThre
2a50: 61 64 28 4c 50 54 48 52 45 41 44 5f 53 54 41 52  ad(LPTHREAD_STAR
2a60: 54 5f 52 4f 55 54 49 4e 45 2c 20 76 6f 69 64 2a  T_ROUTINE, void*
2a70: 2c 20 44 57 4f 52 44 2c 20 4c 50 54 48 52 45 41  , DWORD, LPTHREA
2a80: 44 5f 53 54 41 52 54 5f 52 4f 55 54 49 4e 45 29  D_START_ROUTINE)
2a90: 3b 0d 0a 44 57 4f 52 44 20 53 48 43 6f 70 79 4b  ;..DWORD SHCopyK
2aa0: 65 79 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52  eyA(HKEY, LPCSTR
2ab0: 2c 20 48 4b 45 59 2c 20 44 57 4f 52 44 29 3b 0d  , HKEY, DWORD);.
2ac0: 0a 44 57 4f 52 44 20 53 48 43 6f 70 79 4b 65 79  .DWORD SHCopyKey
2ad0: 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c  W(HKEY, LPCWSTR,
2ae0: 20 48 4b 45 59 2c 20 44 57 4f 52 44 29 3b 0d 0a   HKEY, DWORD);..
2af0: 44 57 4f 52 44 20 53 48 44 65 6c 65 74 65 45 6d  DWORD SHDeleteEm
2b00: 70 74 79 4b 65 79 41 28 48 4b 45 59 2c 20 4c 50  ptyKeyA(HKEY, LP
2b10: 43 53 54 52 29 3b 0d 0a 44 57 4f 52 44 20 53 48  CSTR);..DWORD SH
2b20: 44 65 6c 65 74 65 45 6d 70 74 79 4b 65 79 57 28  DeleteEmptyKeyW(
2b30: 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 29 3b 0d  HKEY, LPCWSTR);.
2b40: 0a 44 57 4f 52 44 20 53 48 44 65 6c 65 74 65 4b  .DWORD SHDeleteK
2b50: 65 79 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52  eyA(HKEY, LPCSTR
2b60: 29 3b 0d 0a 44 57 4f 52 44 20 53 48 44 65 6c 65  );..DWORD SHDele
2b70: 74 65 4b 65 79 57 28 48 4b 45 59 2c 20 4c 50 43  teKeyW(HKEY, LPC
2b80: 57 53 54 52 29 3b 0d 0a 44 57 4f 52 44 20 53 48  WSTR);..DWORD SH
2b90: 45 6e 75 6d 4b 65 79 45 78 41 28 48 4b 45 59 2c  EnumKeyExA(HKEY,
2ba0: 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c 20 4c   DWORD, LPSTR, L
2bb0: 50 44 57 4f 52 44 29 3b 0d 0a 44 57 4f 52 44 20  PDWORD);..DWORD 
2bc0: 53 48 45 6e 75 6d 4b 65 79 45 78 57 28 48 4b 45  SHEnumKeyExW(HKE
2bd0: 59 2c 20 44 57 4f 52 44 2c 20 4c 50 57 53 54 52  Y, DWORD, LPWSTR
2be0: 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 44 57 4f  , LPDWORD);..DWO
2bf0: 52 44 20 53 48 51 75 65 72 79 49 6e 66 6f 4b 65  RD SHQueryInfoKe
2c00: 79 41 28 48 4b 45 59 2c 20 4c 50 44 57 4f 52 44  yA(HKEY, LPDWORD
2c10: 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f  , LPDWORD, LPDWO
2c20: 52 44 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 44  RD, LPDWORD);..D
2c30: 57 4f 52 44 20 53 48 51 75 65 72 79 49 6e 66 6f  WORD SHQueryInfo
2c40: 4b 65 79 57 28 48 4b 45 59 2c 20 4c 50 44 57 4f  KeyW(HKEY, LPDWO
2c50: 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44  RD, LPDWORD, LPD
2c60: 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 29 3b 0d  WORD, LPDWORD);.
2c70: 0a 44 57 4f 52 44 20 53 48 51 75 65 72 79 56 61  .DWORD SHQueryVa
2c80: 6c 75 65 45 78 41 28 48 4b 45 59 2c 20 4c 50 43  lueExA(HKEY, LPC
2c90: 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50  STR, LPDWORD, LP
2ca0: 44 57 4f 52 44 2c 20 4c 50 56 4f 49 44 2c 20 4c  DWORD, LPVOID, L
2cb0: 50 44 57 4f 52 44 29 3b 0d 0a 44 57 4f 52 44 20  PDWORD);..DWORD 
2cc0: 53 48 51 75 65 72 79 56 61 6c 75 65 45 78 57 28  SHQueryValueExW(
2cd0: 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c  HKEY, LPCWSTR, L
2ce0: 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c  PDWORD, LPDWORD,
2cf0: 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57 4f 52 44   LPVOID, LPDWORD
2d00: 29 3b 0d 0a 48 52 45 53 55 4c 54 20 53 48 47 65  );..HRESULT SHGe
2d10: 74 54 68 72 65 61 64 52 65 66 28 49 55 6e 6b 6e  tThreadRef(IUnkn
2d20: 6f 77 6e 2a 29 3b 0d 0a 48 52 45 53 55 4c 54 20  own*);..HRESULT 
2d30: 53 48 53 65 74 54 68 72 65 61 64 52 65 66 28 49  SHSetThreadRef(I
2d40: 55 6e 6b 6e 6f 77 6e 29 3b 0d 0a 42 4f 4f 4c 20  Unknown);..BOOL 
2d50: 53 48 53 6b 69 70 4a 75 6e 63 74 69 6f 6e 28 49  SHSkipJunction(I
2d60: 42 69 6e 64 43 74 78 2c 20 63 6f 6e 73 74 28 43  BindCtx, const(C
2d70: 4c 53 49 44 29 2a 29 3b 0d 0a 44 57 4f 52 44 20  LSID)*);..DWORD 
2d80: 53 48 45 6e 75 6d 56 61 6c 75 65 41 28 48 4b 45  SHEnumValueA(HKE
2d90: 59 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c  Y, DWORD, LPSTR,
2da0: 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52   LPDWORD, LPDWOR
2db0: 44 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57 4f  D, LPVOID, LPDWO
2dc0: 52 44 29 3b 0d 0a 44 57 4f 52 44 20 53 48 45 6e  RD);..DWORD SHEn
2dd0: 75 6d 56 61 6c 75 65 57 28 48 4b 45 59 2c 20 44  umValueW(HKEY, D
2de0: 57 4f 52 44 2c 20 4c 50 57 53 54 52 2c 20 4c 50  WORD, LPWSTR, LP
2df0: 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c 20  DWORD, LPDWORD, 
2e00: 4c 50 56 4f 49 44 2c 20 4c 50 44 57 4f 52 44 29  LPVOID, LPDWORD)
2e10: 3b 0d 0a 44 57 4f 52 44 20 53 48 47 65 74 56 61  ;..DWORD SHGetVa
2e20: 6c 75 65 41 28 48 4b 45 59 2c 20 4c 50 43 53 54  lueA(HKEY, LPCST
2e30: 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 44 57 4f  R, LPCSTR, LPDWO
2e40: 52 44 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57  RD, LPVOID, LPDW
2e50: 4f 52 44 29 3b 0d 0a 44 57 4f 52 44 20 53 48 47  ORD);..DWORD SHG
2e60: 65 74 56 61 6c 75 65 57 28 48 4b 45 59 2c 20 4c  etValueW(HKEY, L
2e70: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c  PCWSTR, LPCWSTR,
2e80: 20 4c 50 44 57 4f 52 44 2c 20 4c 50 56 4f 49 44   LPDWORD, LPVOID
2e90: 2c 20 4c 50 44 57 4f 52 44 29 3b 0d 0a 44 57 4f  , LPDWORD);..DWO
2ea0: 52 44 20 53 48 53 65 74 56 61 6c 75 65 41 28 48  RD SHSetValueA(H
2eb0: 4b 45 59 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43  KEY, LPCSTR, LPC
2ec0: 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50 43 56  STR, DWORD, LPCV
2ed0: 4f 49 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 44 57  OID, DWORD);..DW
2ee0: 4f 52 44 20 53 48 53 65 74 56 61 6c 75 65 57 28  ORD SHSetValueW(
2ef0: 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c  HKEY, LPCWSTR, L
2f00: 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c  PCWSTR, DWORD, L
2f10: 50 43 56 4f 49 44 2c 20 44 57 4f 52 44 29 3b 0d  PCVOID, DWORD);.
2f20: 0a 44 57 4f 52 44 20 53 48 44 65 6c 65 74 65 56  .DWORD SHDeleteV
2f30: 61 6c 75 65 41 28 48 4b 45 59 2c 20 4c 50 43 53  alueA(HKEY, LPCS
2f40: 54 52 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 44 57  TR, LPCSTR);..DW
2f50: 4f 52 44 20 53 48 44 65 6c 65 74 65 56 61 6c 75  ORD SHDeleteValu
2f60: 65 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 52  eW(HKEY, LPCWSTR
2f70: 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a 48 52 45  , LPCWSTR);..HRE
2f80: 53 55 4c 54 20 41 73 73 6f 63 43 72 65 61 74 65  SULT AssocCreate
2f90: 28 43 4c 53 49 44 2c 20 63 6f 6e 73 74 28 49 49  (CLSID, const(II
2fa0: 44 29 2a 20 2c 20 63 6f 6e 73 74 28 4c 50 56 4f  D)* , const(LPVO
2fb0: 49 44 29 2a 29 3b 0d 0a 48 52 45 53 55 4c 54 20  ID)*);..HRESULT 
2fc0: 41 73 73 6f 63 51 75 65 72 79 4b 65 79 41 28 41  AssocQueryKeyA(A
2fd0: 53 53 4f 43 46 2c 20 41 53 53 4f 43 4b 45 59 2c  SSOCF, ASSOCKEY,
2fe0: 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c   LPCSTR, LPCSTR,
2ff0: 20 48 4b 45 59 2a 29 3b 0d 0a 48 52 45 53 55 4c   HKEY*);..HRESUL
3000: 54 20 41 73 73 6f 63 51 75 65 72 79 4b 65 79 57  T AssocQueryKeyW
3010: 28 41 53 53 4f 43 46 2c 20 41 53 53 4f 43 4b 45  (ASSOCF, ASSOCKE
3020: 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57  Y, LPCWSTR, LPCW
3030: 53 54 52 2c 20 48 4b 45 59 2a 29 3b 0d 0a 48 52  STR, HKEY*);..HR
3040: 45 53 55 4c 54 20 41 73 73 6f 63 51 75 65 72 79  ESULT AssocQuery
3050: 53 74 72 69 6e 67 41 28 41 53 53 4f 43 46 2c 20  StringA(ASSOCF, 
3060: 41 53 53 4f 43 53 54 52 2c 20 4c 50 43 53 54 52  ASSOCSTR, LPCSTR
3070: 2c 20 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c  , LPCSTR, LPSTR,
3080: 20 44 57 4f 52 44 2a 29 3b 0d 0a 48 52 45 53 55   DWORD*);..HRESU
3090: 4c 54 20 41 73 73 6f 63 51 75 65 72 79 53 74 72  LT AssocQueryStr
30a0: 69 6e 67 42 79 4b 65 79 41 28 41 53 53 4f 43 46  ingByKeyA(ASSOCF
30b0: 2c 20 41 53 53 4f 43 53 54 52 2c 20 48 4b 45 59  , ASSOCSTR, HKEY
30c0: 2c 20 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c  , LPCSTR, LPSTR,
30d0: 20 44 57 4f 52 44 2a 29 3b 0d 0a 48 52 45 53 55   DWORD*);..HRESU
30e0: 4c 54 20 41 73 73 6f 63 51 75 65 72 79 53 74 72  LT AssocQueryStr
30f0: 69 6e 67 42 79 4b 65 79 57 28 41 53 53 4f 43 46  ingByKeyW(ASSOCF
3100: 2c 20 41 53 53 4f 43 53 54 52 2c 20 48 4b 45 59  , ASSOCSTR, HKEY
3110: 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 54  , LPCWSTR, LPWST
3120: 52 2c 20 44 57 4f 52 44 2a 29 3b 0d 0a 48 52 45  R, DWORD*);..HRE
3130: 53 55 4c 54 20 41 73 73 6f 63 51 75 65 72 79 53  SULT AssocQueryS
3140: 74 72 69 6e 67 57 28 41 53 53 4f 43 46 2c 20 41  tringW(ASSOCF, A
3150: 53 53 4f 43 53 54 52 2c 20 4c 50 43 57 53 54 52  SSOCSTR, LPCWSTR
3160: 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 54  , LPCWSTR, LPWST
3170: 52 2c 20 44 57 4f 52 44 2a 29 3b 0d 0a 48 52 45  R, DWORD*);..HRE
3180: 53 55 4c 54 20 55 72 6c 41 70 70 6c 79 53 63 68  SULT UrlApplySch
3190: 65 6d 65 41 28 4c 50 43 53 54 52 2c 20 4c 50 53  emeA(LPCSTR, LPS
31a0: 54 52 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f  TR, LPDWORD, DWO
31b0: 52 44 29 3b 0d 0a 48 52 45 53 55 4c 54 20 55 72  RD);..HRESULT Ur
31c0: 6c 41 70 70 6c 79 53 63 68 65 6d 65 57 28 4c 50  lApplySchemeW(LP
31d0: 43 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 4c  CWSTR, LPWSTR, L
31e0: 50 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d  PDWORD, DWORD);.
31f0: 0a 48 52 45 53 55 4c 54 20 55 72 6c 43 61 6e 6f  .HRESULT UrlCano
3200: 6e 69 63 61 6c 69 7a 65 41 28 4c 50 43 53 54 52  nicalizeA(LPCSTR
3210: 2c 20 4c 50 53 54 52 2c 20 4c 50 44 57 4f 52 44  , LPSTR, LPDWORD
3220: 2c 20 44 57 4f 52 44 29 3b 0d 0a 48 52 45 53 55  , DWORD);..HRESU
3230: 4c 54 20 55 72 6c 43 61 6e 6f 6e 69 63 61 6c 69  LT UrlCanonicali
3240: 7a 65 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 57  zeW(LPCWSTR, LPW
3250: 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57  STR, LPDWORD, DW
3260: 4f 52 44 29 3b 0d 0a 48 52 45 53 55 4c 54 20 55  ORD);..HRESULT U
3270: 72 6c 43 6f 6d 62 69 6e 65 41 28 4c 50 43 53 54  rlCombineA(LPCST
3280: 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 53 54 52  R, LPCSTR, LPSTR
3290: 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52 44  , LPDWORD, DWORD
32a0: 29 3b 0d 0a 48 52 45 53 55 4c 54 20 55 72 6c 43  );..HRESULT UrlC
32b0: 6f 6d 62 69 6e 65 57 28 4c 50 43 57 53 54 52 2c  ombineW(LPCWSTR,
32c0: 20 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 54 52   LPCWSTR, LPWSTR
32d0: 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52 44  , LPDWORD, DWORD
32e0: 29 3b 0d 0a 69 6e 74 20 55 72 6c 43 6f 6d 70 61  );..int UrlCompa
32f0: 72 65 41 28 4c 50 43 53 54 52 2c 20 4c 50 43 53  reA(LPCSTR, LPCS
3300: 54 52 2c 20 42 4f 4f 4c 29 3b 0d 0a 69 6e 74 20  TR, BOOL);..int 
3310: 55 72 6c 43 6f 6d 70 61 72 65 57 28 4c 50 43 57  UrlCompareW(LPCW
3320: 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 42 4f  STR, LPCWSTR, BO
3330: 4f 4c 29 3b 0d 0a 48 52 45 53 55 4c 54 20 55 72  OL);..HRESULT Ur
3340: 6c 43 72 65 61 74 65 46 72 6f 6d 50 61 74 68 41  lCreateFromPathA
3350: 28 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c 20  (LPCSTR, LPSTR, 
3360: 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b  LPDWORD, DWORD);
3370: 0d 0a 48 52 45 53 55 4c 54 20 55 72 6c 43 72 65  ..HRESULT UrlCre
3380: 61 74 65 46 72 6f 6d 50 61 74 68 57 28 4c 50 43  ateFromPathW(LPC
3390: 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 4c 50  WSTR, LPWSTR, LP
33a0: 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a  DWORD, DWORD);..
33b0: 48 52 45 53 55 4c 54 20 55 72 6c 45 73 63 61 70  HRESULT UrlEscap
33c0: 65 41 28 4c 50 43 53 54 52 2c 20 4c 50 53 54 52  eA(LPCSTR, LPSTR
33d0: 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52 44  , LPDWORD, DWORD
33e0: 29 3b 0d 0a 48 52 45 53 55 4c 54 20 55 72 6c 45  );..HRESULT UrlE
33f0: 73 63 61 70 65 57 28 4c 50 43 57 53 54 52 2c 20  scapeW(LPCWSTR, 
3400: 4c 50 57 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c  LPWSTR, LPDWORD,
3410: 20 44 57 4f 52 44 29 3b 0d 0a 4c 50 43 53 54 52   DWORD);..LPCSTR
3420: 20 55 72 6c 47 65 74 4c 6f 63 61 74 69 6f 6e 41   UrlGetLocationA
3430: 28 4c 50 43 53 54 52 29 3b 0d 0a 4c 50 43 57 53  (LPCSTR);..LPCWS
3440: 54 52 20 55 72 6c 47 65 74 4c 6f 63 61 74 69 6f  TR UrlGetLocatio
3450: 6e 57 28 4c 50 43 57 53 54 52 29 3b 0d 0a 48 52  nW(LPCWSTR);..HR
3460: 45 53 55 4c 54 20 55 72 6c 47 65 74 50 61 72 74  ESULT UrlGetPart
3470: 41 28 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c  A(LPCSTR, LPSTR,
3480: 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c   LPDWORD, DWORD,
3490: 20 44 57 4f 52 44 29 3b 0d 0a 48 52 45 53 55 4c   DWORD);..HRESUL
34a0: 54 20 55 72 6c 47 65 74 50 61 72 74 57 28 4c 50  T UrlGetPartW(LP
34b0: 43 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 4c  CWSTR, LPWSTR, L
34c0: 50 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 44  PDWORD, DWORD, D
34d0: 57 4f 52 44 29 3b 0d 0a 48 52 45 53 55 4c 54 20  WORD);..HRESULT 
34e0: 55 72 6c 48 61 73 68 41 28 4c 50 43 53 54 52 2c  UrlHashA(LPCSTR,
34f0: 20 4c 50 42 59 54 45 2c 20 44 57 4f 52 44 29 3b   LPBYTE, DWORD);
3500: 0d 0a 48 52 45 53 55 4c 54 20 55 72 6c 48 61 73  ..HRESULT UrlHas
3510: 68 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 42 59  hW(LPCWSTR, LPBY
3520: 54 45 2c 20 44 57 4f 52 44 29 3b 0d 0a 42 4f 4f  TE, DWORD);..BOO
3530: 4c 20 55 72 6c 49 73 41 28 4c 50 43 53 54 52 2c  L UrlIsA(LPCSTR,
3540: 20 55 52 4c 49 53 29 3b 0d 0a 42 4f 4f 4c 20 55   URLIS);..BOOL U
3550: 72 6c 49 73 57 28 4c 50 43 57 53 54 52 2c 20 55  rlIsW(LPCWSTR, U
3560: 52 4c 49 53 29 3b 0d 0a 42 4f 4f 4c 20 55 72 6c  RLIS);..BOOL Url
3570: 49 73 4e 6f 48 69 73 74 6f 72 79 41 28 4c 50 43  IsNoHistoryA(LPC
3580: 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 55 72 6c 49  STR);..BOOL UrlI
3590: 73 4e 6f 48 69 73 74 6f 72 79 57 28 4c 50 43 57  sNoHistoryW(LPCW
35a0: 53 54 52 29 3b 0d 0a 42 4f 4f 4c 20 55 72 6c 49  STR);..BOOL UrlI
35b0: 73 4f 70 61 71 75 65 41 28 4c 50 43 53 54 52 29  sOpaqueA(LPCSTR)
35c0: 3b 0d 0a 42 4f 4f 4c 20 55 72 6c 49 73 4f 70 61  ;..BOOL UrlIsOpa
35d0: 71 75 65 57 28 4c 50 43 57 53 54 52 29 3b 0d 0a  queW(LPCWSTR);..
35e0: 48 52 45 53 55 4c 54 20 55 72 6c 55 6e 65 73 63  HRESULT UrlUnesc
35f0: 61 70 65 41 28 4c 50 53 54 52 2c 20 4c 50 53 54  apeA(LPSTR, LPST
3600: 52 2c 20 4c 50 44 57 4f 52 44 2c 20 44 57 4f 52  R, LPDWORD, DWOR
3610: 44 29 3b 0d 0a 48 52 45 53 55 4c 54 20 55 72 6c  D);..HRESULT Url
3620: 55 6e 65 73 63 61 70 65 57 28 4c 50 57 53 54 52  UnescapeW(LPWSTR
3630: 2c 20 4c 50 57 53 54 52 2c 20 4c 50 44 57 4f 52  , LPWSTR, LPDWOR
3640: 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 44 57 4f 52  D, DWORD);..DWOR
3650: 44 20 53 48 52 65 67 43 6c 6f 73 65 55 53 4b 65  D SHRegCloseUSKe
3660: 79 28 48 55 53 4b 45 59 29 3b 0d 0a 4c 4f 4e 47  y(HUSKEY);..LONG
3670: 20 53 48 52 65 67 43 72 65 61 74 65 55 53 4b 65   SHRegCreateUSKe
3680: 79 41 28 4c 50 43 53 54 52 2c 20 52 45 47 53 41  yA(LPCSTR, REGSA
3690: 4d 2c 20 48 55 53 4b 45 59 2c 20 50 48 55 53 4b  M, HUSKEY, PHUSK
36a0: 45 59 2c 20 44 57 4f 52 44 29 3b 0d 0a 4c 4f 4e  EY, DWORD);..LON
36b0: 47 20 53 48 52 65 67 43 72 65 61 74 65 55 53 4b  G SHRegCreateUSK
36c0: 65 79 57 28 4c 50 43 57 53 54 52 2c 20 52 45 47  eyW(LPCWSTR, REG
36d0: 53 41 4d 2c 20 48 55 53 4b 45 59 2c 20 50 48 55  SAM, HUSKEY, PHU
36e0: 53 4b 45 59 2c 20 44 57 4f 52 44 29 3b 0d 0a 4c  SKEY, DWORD);..L
36f0: 4f 4e 47 20 53 48 52 65 67 44 65 6c 65 74 65 45  ONG SHRegDeleteE
3700: 6d 70 74 79 55 53 4b 65 79 41 28 48 55 53 4b 45  mptyUSKeyA(HUSKE
3710: 59 2c 20 4c 50 43 53 54 52 2c 20 53 48 52 45 47  Y, LPCSTR, SHREG
3720: 44 45 4c 5f 46 4c 41 47 53 29 3b 0d 0a 4c 4f 4e  DEL_FLAGS);..LON
3730: 47 20 53 48 52 65 67 44 65 6c 65 74 65 45 6d 70  G SHRegDeleteEmp
3740: 74 79 55 53 4b 65 79 57 28 48 55 53 4b 45 59 2c  tyUSKeyW(HUSKEY,
3750: 20 4c 50 43 57 53 54 52 2c 20 53 48 52 45 47 44   LPCWSTR, SHREGD
3760: 45 4c 5f 46 4c 41 47 53 29 3b 0d 0a 4c 4f 4e 47  EL_FLAGS);..LONG
3770: 20 53 48 52 65 67 44 65 6c 65 74 65 55 53 56 61   SHRegDeleteUSVa
3780: 6c 75 65 41 28 48 55 53 4b 45 59 2c 20 4c 50 43  lueA(HUSKEY, LPC
3790: 53 54 52 2c 20 53 48 52 45 47 44 45 4c 5f 46 4c  STR, SHREGDEL_FL
37a0: 41 47 53 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65  AGS);..LONG SHRe
37b0: 67 44 65 6c 65 74 65 55 53 56 61 6c 75 65 57 28  gDeleteUSValueW(
37c0: 48 55 53 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c  HUSKEY, LPCWSTR,
37d0: 20 53 48 52 45 47 44 45 4c 5f 46 4c 41 47 53 29   SHREGDEL_FLAGS)
37e0: 3b 0d 0a 48 4b 45 59 20 53 48 52 65 67 44 75 70  ;..HKEY SHRegDup
37f0: 6c 69 63 61 74 65 48 4b 65 79 28 48 4b 45 59 29  licateHKey(HKEY)
3800: 3b 0d 0a 44 57 4f 52 44 20 53 48 52 65 67 45 6e  ;..DWORD SHRegEn
3810: 75 6d 55 53 4b 65 79 41 28 48 55 53 4b 45 59 2c  umUSKeyA(HUSKEY,
3820: 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c 20 4c   DWORD, LPSTR, L
3830: 50 44 57 4f 52 44 2c 20 53 48 52 45 47 45 4e 55  PDWORD, SHREGENU
3840: 4d 5f 46 4c 41 47 53 29 3b 0d 0a 44 57 4f 52 44  M_FLAGS);..DWORD
3850: 20 53 48 52 65 67 45 6e 75 6d 55 53 4b 65 79 57   SHRegEnumUSKeyW
3860: 28 48 55 53 4b 45 59 2c 20 44 57 4f 52 44 2c 20  (HUSKEY, DWORD, 
3870: 4c 50 57 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c  LPWSTR, LPDWORD,
3880: 20 53 48 52 45 47 45 4e 55 4d 5f 46 4c 41 47 53   SHREGENUM_FLAGS
3890: 29 3b 0d 0a 44 57 4f 52 44 20 53 48 52 65 67 45  );..DWORD SHRegE
38a0: 6e 75 6d 55 53 56 61 6c 75 65 41 28 48 55 53 4b  numUSValueA(HUSK
38b0: 45 59 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52  EY, DWORD, LPSTR
38c0: 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f  , LPDWORD, LPDWO
38d0: 52 44 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57  RD, LPVOID, LPDW
38e0: 4f 52 44 2c 20 53 48 52 45 47 45 4e 55 4d 5f 46  ORD, SHREGENUM_F
38f0: 4c 41 47 53 29 3b 0d 0a 44 57 4f 52 44 20 53 48  LAGS);..DWORD SH
3900: 52 65 67 45 6e 75 6d 55 53 56 61 6c 75 65 57 28  RegEnumUSValueW(
3910: 48 55 53 4b 45 59 2c 20 44 57 4f 52 44 2c 20 4c  HUSKEY, DWORD, L
3920: 50 57 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c 20  PWSTR, LPDWORD, 
3930: 4c 50 44 57 4f 52 44 2c 20 4c 50 56 4f 49 44 2c  LPDWORD, LPVOID,
3940: 20 4c 50 44 57 4f 52 44 2c 20 53 48 52 45 47 45   LPDWORD, SHREGE
3950: 4e 55 4d 5f 46 4c 41 47 53 29 3b 0d 0a 42 4f 4f  NUM_FLAGS);..BOO
3960: 4c 20 53 48 52 65 67 47 65 74 42 6f 6f 6c 55 53  L SHRegGetBoolUS
3970: 56 61 6c 75 65 41 28 4c 50 43 53 54 52 2c 20 4c  ValueA(LPCSTR, L
3980: 50 43 53 54 52 2c 20 42 4f 4f 4c 2c 20 42 4f 4f  PCSTR, BOOL, BOO
3990: 4c 29 3b 0d 0a 42 4f 4f 4c 20 53 48 52 65 67 47  L);..BOOL SHRegG
39a0: 65 74 42 6f 6f 6c 55 53 56 61 6c 75 65 57 28 4c  etBoolUSValueW(L
39b0: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c  PCWSTR, LPCWSTR,
39c0: 20 42 4f 4f 4c 2c 20 42 4f 4f 4c 29 3b 0d 0a 44   BOOL, BOOL);..D
39d0: 57 4f 52 44 20 53 48 52 65 67 47 65 74 50 61 74  WORD SHRegGetPat
39e0: 68 41 28 48 4b 45 59 2c 20 4c 50 43 53 54 52 2c  hA(HKEY, LPCSTR,
39f0: 20 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c 20   LPCSTR, LPSTR, 
3a00: 44 57 4f 52 44 29 3b 0d 0a 44 57 4f 52 44 20 53  DWORD);..DWORD S
3a10: 48 52 65 67 47 65 74 50 61 74 68 57 28 48 4b 45  HRegGetPathW(HKE
3a20: 59 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57  Y, LPCWSTR, LPCW
3a30: 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 44 57 4f  STR, LPWSTR, DWO
3a40: 52 44 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65 67  RD);..LONG SHReg
3a50: 47 65 74 55 53 56 61 6c 75 65 41 28 4c 50 43 53  GetUSValueA(LPCS
3a60: 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c 50 44 57  TR, LPCSTR, LPDW
3a70: 4f 52 44 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 44  ORD, LPVOID, LPD
3a80: 57 4f 52 44 2c 20 42 4f 4f 4c 2c 20 4c 50 56 4f  WORD, BOOL, LPVO
3a90: 49 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 4c 4f 4e  ID, DWORD);..LON
3aa0: 47 20 53 48 52 65 67 47 65 74 55 53 56 61 6c 75  G SHRegGetUSValu
3ab0: 65 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43 57  eW(LPCWSTR, LPCW
3ac0: 53 54 52 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50  STR, LPDWORD, LP
3ad0: 56 4f 49 44 2c 20 4c 50 44 57 4f 52 44 2c 20 42  VOID, LPDWORD, B
3ae0: 4f 4f 4c 2c 20 4c 50 56 4f 49 44 2c 20 44 57 4f  OOL, LPVOID, DWO
3af0: 52 44 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65 67  RD);..LONG SHReg
3b00: 4f 70 65 6e 55 53 4b 65 79 41 28 4c 50 43 53 54  OpenUSKeyA(LPCST
3b10: 52 2c 20 52 45 47 53 41 4d 2c 20 48 55 53 4b 45  R, REGSAM, HUSKE
3b20: 59 2c 20 50 48 55 53 4b 45 59 2c 20 42 4f 4f 4c  Y, PHUSKEY, BOOL
3b30: 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65 67 4f 70  );..LONG SHRegOp
3b40: 65 6e 55 53 4b 65 79 57 28 4c 50 43 57 53 54 52  enUSKeyW(LPCWSTR
3b50: 2c 20 52 45 47 53 41 4d 2c 20 48 55 53 4b 45 59  , REGSAM, HUSKEY
3b60: 2c 20 50 48 55 53 4b 45 59 2c 20 42 4f 4f 4c 29  , PHUSKEY, BOOL)
3b70: 3b 0d 0a 44 57 4f 52 44 20 53 48 52 65 67 51 75  ;..DWORD SHRegQu
3b80: 65 72 79 49 6e 66 6f 55 53 4b 65 79 41 28 48 55  eryInfoUSKeyA(HU
3b90: 53 4b 45 59 2c 20 4c 50 44 57 4f 52 44 2c 20 4c  SKEY, LPDWORD, L
3ba0: 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 2c  PDWORD, LPDWORD,
3bb0: 20 4c 50 44 57 4f 52 44 2c 20 53 48 52 45 47 45   LPDWORD, SHREGE
3bc0: 4e 55 4d 5f 46 4c 41 47 53 29 3b 0d 0a 44 57 4f  NUM_FLAGS);..DWO
3bd0: 52 44 20 53 48 52 65 67 51 75 65 72 79 49 6e 66  RD SHRegQueryInf
3be0: 6f 55 53 4b 65 79 57 28 48 55 53 4b 45 59 2c 20  oUSKeyW(HUSKEY, 
3bf0: 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44  LPDWORD, LPDWORD
3c00: 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 44 57 4f  , LPDWORD, LPDWO
3c10: 52 44 2c 20 53 48 52 45 47 45 4e 55 4d 5f 46 4c  RD, SHREGENUM_FL
3c20: 41 47 53 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65  AGS);..LONG SHRe
3c30: 67 51 75 65 72 79 55 53 56 61 6c 75 65 41 28 48  gQueryUSValueA(H
3c40: 55 53 4b 45 59 2c 20 4c 50 43 53 54 52 2c 20 4c  USKEY, LPCSTR, L
3c50: 50 44 57 4f 52 44 2c 20 4c 50 56 4f 49 44 2c 20  PDWORD, LPVOID, 
3c60: 4c 50 44 57 4f 52 44 2c 20 42 4f 4f 4c 2c 20 4c  LPDWORD, BOOL, L
3c70: 50 56 4f 49 44 2c 20 44 57 4f 52 44 29 3b 0d 0a  PVOID, DWORD);..
3c80: 4c 4f 4e 47 20 53 48 52 65 67 51 75 65 72 79 55  LONG SHRegQueryU
3c90: 53 56 61 6c 75 65 57 28 48 55 53 4b 45 59 2c 20  SValueW(HUSKEY, 
3ca0: 4c 50 43 57 53 54 52 2c 20 4c 50 44 57 4f 52 44  LPCWSTR, LPDWORD
3cb0: 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57 4f 52  , LPVOID, LPDWOR
3cc0: 44 2c 20 42 4f 4f 4c 2c 20 4c 50 56 4f 49 44 2c  D, BOOL, LPVOID,
3cd0: 20 44 57 4f 52 44 29 3b 0d 0a 44 57 4f 52 44 20   DWORD);..DWORD 
3ce0: 53 48 52 65 67 53 65 74 50 61 74 68 41 28 48 4b  SHRegSetPathA(HK
3cf0: 45 59 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43 53  EY, LPCSTR, LPCS
3d00: 54 52 2c 20 4c 50 43 53 54 52 2c 20 44 57 4f 52  TR, LPCSTR, DWOR
3d10: 44 29 3b 0d 0a 44 57 4f 52 44 20 53 48 52 65 67  D);..DWORD SHReg
3d20: 53 65 74 50 61 74 68 57 28 48 4b 45 59 2c 20 4c  SetPathW(HKEY, L
3d30: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c  PCWSTR, LPCWSTR,
3d40: 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 29   LPCWSTR, DWORD)
3d50: 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65 67 53 65 74  ;..LONG SHRegSet
3d60: 55 53 56 61 6c 75 65 41 28 4c 50 43 53 54 52 2c  USValueA(LPCSTR,
3d70: 20 4c 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20   LPCSTR, DWORD, 
3d80: 4c 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 44  LPVOID, DWORD, D
3d90: 57 4f 52 44 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52  WORD);..LONG SHR
3da0: 65 67 53 65 74 55 53 56 61 6c 75 65 57 28 4c 50  egSetUSValueW(LP
3db0: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20  CWSTR, LPCWSTR, 
3dc0: 44 57 4f 52 44 2c 20 4c 50 56 4f 49 44 2c 20 44  DWORD, LPVOID, D
3dd0: 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 4c  WORD, DWORD);..L
3de0: 4f 4e 47 20 53 48 52 65 67 57 72 69 74 65 55 53  ONG SHRegWriteUS
3df0: 56 61 6c 75 65 41 28 48 55 53 4b 45 59 2c 20 4c  ValueA(HUSKEY, L
3e00: 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50  PCSTR, DWORD, LP
3e10: 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f  VOID, DWORD, DWO
3e20: 52 44 29 3b 0d 0a 4c 4f 4e 47 20 53 48 52 65 67  RD);..LONG SHReg
3e30: 57 72 69 74 65 55 53 56 61 6c 75 65 57 28 48 55  WriteUSValueW(HU
3e40: 53 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c 20 44  SKEY, LPCWSTR, D
3e50: 57 4f 52 44 2c 20 4c 50 56 4f 49 44 2c 20 44 57  WORD, LPVOID, DW
3e60: 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 48 52  ORD, DWORD);..HR
3e70: 45 53 55 4c 54 20 48 61 73 68 44 61 74 61 28 4c  ESULT HashData(L
3e80: 50 42 59 54 45 2c 20 44 57 4f 52 44 2c 20 4c 50  PBYTE, DWORD, LP
3e90: 42 59 54 45 2c 20 44 57 4f 52 44 29 3b 0d 0a 48  BYTE, DWORD);..H
3ea0: 50 41 4c 45 54 54 45 20 53 48 43 72 65 61 74 65  PALETTE SHCreate
3eb0: 53 68 65 6c 6c 50 61 6c 65 74 74 65 28 48 44 43  ShellPalette(HDC
3ec0: 29 3b 0d 0a 43 4f 4c 4f 52 52 45 46 20 43 6f 6c  );..COLORREF Col
3ed0: 6f 72 48 4c 53 54 6f 52 47 42 28 57 4f 52 44 2c  orHLSToRGB(WORD,
3ee0: 20 57 4f 52 44 2c 20 57 4f 52 44 29 3b 0d 0a 43   WORD, WORD);..C
3ef0: 4f 4c 4f 52 52 45 46 20 43 6f 6c 6f 72 41 64 6a  OLORREF ColorAdj
3f00: 75 73 74 4c 75 6d 61 28 43 4f 4c 4f 52 52 45 46  ustLuma(COLORREF
3f10: 2c 20 69 6e 74 2c 20 42 4f 4f 4c 29 3b 0d 0a 76  , int, BOOL);..v
3f20: 6f 69 64 20 43 6f 6c 6f 72 52 47 42 54 6f 48 4c  oid ColorRGBToHL
3f30: 53 28 43 4f 4c 4f 52 52 45 46 2c 20 57 4f 52 44  S(COLORREF, WORD
3f40: 2a 2c 20 57 4f 52 44 2a 2c 20 57 4f 52 44 2a 29  *, WORD*, WORD*)
3f50: 3b 0d 0a 2f 2a 2a 20 53 68 6f 75 6c 64 20 6e 6f  ;../** Should no
3f60: 74 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 66  t be necessary f
3f70: 6f 72 20 44 3f 0d 0a 65 78 74 65 72 6e 20 28 43  or D?..extern (C
3f80: 29 3a 0d 0a 69 6e 74 20 20 77 6e 73 70 72 69 6e  ):..int  wnsprin
3f90: 74 66 41 28 4c 50 53 54 52 2c 20 69 6e 74 2c 20  tfA(LPSTR, int, 
3fa0: 4c 50 43 53 54 52 2c 20 2e 2e 2e 29 3b 0d 0a 69  LPCSTR, ...);..i
3fb0: 6e 74 20 20 77 6e 73 70 72 69 6e 74 66 57 28 4c  nt  wnsprintfW(L
3fc0: 50 57 53 54 52 2c 20 69 6e 74 2c 20 4c 50 43 57  PWSTR, int, LPCW
3fd0: 53 54 52 2c 20 2e 2e 2e 29 3b 0d 0a 65 78 74 65  STR, ...);..exte
3fe0: 72 6e 20 28 57 69 6e 64 6f 77 73 29 3a 0d 0a 69  rn (Windows):..i
3ff0: 6e 74 20 77 76 6e 73 70 72 69 6e 74 66 41 28 4c  nt wvnsprintfA(L
4000: 50 53 54 52 2c 20 69 6e 74 2c 20 4c 50 43 53 54  PSTR, int, LPCST
4010: 52 2c 20 76 61 5f 6c 69 73 74 29 3b 0d 0a 69 6e  R, va_list);..in
4020: 74 20 77 76 6e 73 70 72 69 6e 74 66 57 28 4c 50  t wvnsprintfW(LP
4030: 57 53 54 52 2c 20 69 6e 74 2c 20 4c 50 43 57 53  WSTR, int, LPCWS
4040: 54 52 2c 20 76 61 5f 6c 69 73 74 29 3b 0d 0a 2a  TR, va_list);..*
4050: 2f 0d 0a 0d 0a 48 49 4e 53 54 41 4e 43 45 20 4d  /....HINSTANCE M
4060: 4c 4c 6f 61 64 4c 69 62 72 61 72 79 41 28 4c 50  LLoadLibraryA(LP
4070: 43 53 54 52 2c 20 48 41 4e 44 4c 45 2c 20 44 57  CSTR, HANDLE, DW
4080: 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20 42 4f 4f  ORD, LPCSTR, BOO
4090: 4c 29 3b 0d 0a 48 49 4e 53 54 41 4e 43 45 20 4d  L);..HINSTANCE M
40a0: 4c 4c 6f 61 64 4c 69 62 72 61 72 79 57 28 4c 50  LLoadLibraryW(LP
40b0: 43 57 53 54 52 2c 20 48 41 4e 44 4c 45 2c 20 44  CWSTR, HANDLE, D
40c0: 57 4f 52 44 2c 20 4c 50 43 57 53 54 52 2c 20 42  WORD, LPCWSTR, B
40d0: 4f 4f 4c 29 3b 0d 0a 0d 0a 48 52 45 53 55 4c 54  OOL);....HRESULT
40e0: 20 44 6c 6c 49 6e 73 74 61 6c 6c 28 42 4f 4f 4c   DllInstall(BOOL
40f0: 2c 20 4c 50 43 57 53 54 52 29 3b 0d 0a 0d 0a 48  , LPCWSTR);....H
4100: 52 45 53 55 4c 54 20 53 74 72 52 65 74 54 6f 42  RESULT StrRetToB
4110: 75 66 41 28 4c 50 53 54 52 52 45 54 2c 20 4c 50  ufA(LPSTRRET, LP
4120: 43 49 54 45 4d 49 44 4c 49 53 54 2c 20 4c 50 53  CITEMIDLIST, LPS
4130: 54 52 2c 20 55 49 4e 54 29 3b 0d 0a 48 52 45 53  TR, UINT);..HRES
4140: 55 4c 54 20 53 74 72 52 65 74 54 6f 42 75 66 57  ULT StrRetToBufW
4150: 28 4c 50 53 54 52 52 45 54 2c 20 4c 50 43 49 54  (LPSTRRET, LPCIT
4160: 45 4d 49 44 4c 49 53 54 2c 20 4c 50 57 53 54 52  EMIDLIST, LPWSTR
4170: 2c 20 55 49 4e 54 29 3b 0d 0a 48 52 45 53 55 4c  , UINT);..HRESUL
4180: 54 20 53 74 72 52 65 74 54 6f 53 74 72 41 28 4c  T StrRetToStrA(L
4190: 50 53 54 52 52 45 54 2c 20 4c 50 43 49 54 45 4d  PSTRRET, LPCITEM
41a0: 49 44 4c 49 53 54 2c 20 4c 50 53 54 52 2a 29 3b  IDLIST, LPSTR*);
41b0: 0d 0a 48 52 45 53 55 4c 54 20 53 74 72 52 65 74  ..HRESULT StrRet
41c0: 54 6f 53 74 72 57 28 4c 50 53 54 52 52 45 54 2c  ToStrW(LPSTRRET,
41d0: 20 4c 50 43 49 54 45 4d 49 44 4c 49 53 54 2c 20   LPCITEMIDLIST, 
41e0: 4c 50 57 53 54 52 2a 29 3b 0d 0a 48 52 45 53 55  LPWSTR*);..HRESU
41f0: 4c 54 20 53 48 43 72 65 61 74 65 53 74 72 65 61  LT SHCreateStrea
4200: 6d 4f 6e 46 69 6c 65 41 28 4c 50 43 53 54 52 2c  mOnFileA(LPCSTR,
4210: 20 44 57 4f 52 44 2c 20 49 53 74 72 65 61 6d 2a   DWORD, IStream*
4220: 29 3b 0d 0a 48 52 45 53 55 4c 54 20 53 48 43 72  );..HRESULT SHCr
4230: 65 61 74 65 53 74 72 65 61 6d 4f 6e 46 69 6c 65  eateStreamOnFile
4240: 57 28 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44  W(LPCWSTR, DWORD
4250: 2c 20 49 53 74 72 65 61 6d 2a 29 3b 0d 0a 49 53  , IStream*);..IS
4260: 74 72 65 61 6d 20 53 48 4f 70 65 6e 52 65 67 53  tream SHOpenRegS
4270: 74 72 65 61 6d 32 41 28 48 4b 45 59 2c 20 4c 50  tream2A(HKEY, LP
4280: 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 44 57  CSTR, LPCSTR, DW
4290: 4f 52 44 29 3b 0d 0a 49 53 74 72 65 61 6d 20 53  ORD);..IStream S
42a0: 48 4f 70 65 6e 52 65 67 53 74 72 65 61 6d 32 57  HOpenRegStream2W
42b0: 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 52 2c 20  (HKEY, LPCWSTR, 
42c0: 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 29 3b  LPCWSTR, DWORD);
42d0: 0d 0a 49 53 74 72 65 61 6d 20 53 48 4f 70 65 6e  ..IStream SHOpen
42e0: 52 65 67 53 74 72 65 61 6d 41 28 48 4b 45 59 2c  RegStreamA(HKEY,
42f0: 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c   LPCSTR, LPCSTR,
4300: 20 44 57 4f 52 44 29 3b 0d 0a 49 53 74 72 65 61   DWORD);..IStrea
4310: 6d 20 53 48 4f 70 65 6e 52 65 67 53 74 72 65 61  m SHOpenRegStrea
4320: 6d 57 28 48 4b 45 59 2c 20 4c 50 43 57 53 54 52  mW(HKEY, LPCWSTR
4330: 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44  , LPCWSTR, DWORD
4340: 29 3b 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e  );....version(Un
4350: 69 63 6f 64 65 29 20 7b 0d 0a 61 6c 69 61 73 20  icode) {..alias 
4360: 43 68 72 43 6d 70 49 57 20 43 68 72 43 6d 70 49  ChrCmpIW ChrCmpI
4370: 3b 0d 0a 61 6c 69 61 73 20 49 6e 74 6c 53 74 72  ;..alias IntlStr
4380: 45 71 4e 57 20 49 6e 74 6c 53 74 72 45 71 4e 3b  EqNW IntlStrEqN;
4390: 0d 0a 61 6c 69 61 73 20 49 6e 74 6c 53 74 72 45  ..alias IntlStrE
43a0: 71 4e 49 57 20 49 6e 74 6c 53 74 72 45 71 4e 49  qNIW IntlStrEqNI
43b0: 3b 0d 0a 61 6c 69 61 73 20 49 6e 74 6c 53 74 72  ;..alias IntlStr
43c0: 45 71 57 6f 72 6b 65 72 57 20 49 6e 74 6c 53 74  EqWorkerW IntlSt
43d0: 72 45 71 57 6f 72 6b 65 72 3b 0d 0a 61 6c 69 61  rEqWorker;..alia
43e0: 73 20 53 48 53 74 72 44 75 70 57 20 53 48 53 74  s SHStrDupW SHSt
43f0: 72 44 75 70 3b 0d 0a 61 6c 69 61 73 20 53 74 72  rDup;..alias Str
4400: 43 61 74 57 20 53 74 72 43 61 74 3b 0d 0a 61 6c  CatW StrCat;..al
4410: 69 61 73 20 53 74 72 43 61 74 42 75 66 66 57 20  ias StrCatBuffW 
4420: 53 74 72 43 61 74 42 75 66 66 3b 0d 0a 61 6c 69  StrCatBuff;..ali
4430: 61 73 20 53 74 72 43 68 72 57 20 53 74 72 43 68  as StrChrW StrCh
4440: 72 3b 0d 0a 61 6c 69 61 73 20 53 74 72 43 68 72  r;..alias StrChr
4450: 49 57 20 53 74 72 43 68 72 49 3b 0d 0a 61 6c 69  IW StrChrI;..ali
4460: 61 73 20 53 74 72 43 6d 70 57 20 53 74 72 43 6d  as StrCmpW StrCm
4470: 70 3b 0d 0a 61 6c 69 61 73 20 53 74 72 43 6d 70  p;..alias StrCmp
4480: 49 57 20 53 74 72 43 6d 70 49 3b 0d 0a 61 6c 69  IW StrCmpI;..ali
4490: 61 73 20 53 74 72 43 6d 70 4e 49 57 20 53 74 72  as StrCmpNIW Str
44a0: 43 6d 70 4e 49 3b 0d 0a 61 6c 69 61 73 20 53 74  CmpNI;..alias St
44b0: 72 43 6d 70 4e 57 20 53 74 72 43 6d 70 4e 3b 0d  rCmpNW StrCmpN;.
44c0: 0a 61 6c 69 61 73 20 53 74 72 43 70 79 4e 57 20  .alias StrCpyNW 
44d0: 53 74 72 43 70 79 4e 3b 0d 0a 61 6c 69 61 73 20  StrCpyN;..alias 
44e0: 53 74 72 43 70 79 57 20 53 74 72 43 70 79 3b 0d  StrCpyW StrCpy;.
44f0: 0a 61 6c 69 61 73 20 53 74 72 43 53 70 6e 49 57  .alias StrCSpnIW
4500: 20 53 74 72 43 53 70 6e 49 3b 0d 0a 61 6c 69 61   StrCSpnI;..alia
4510: 73 20 53 74 72 43 53 70 6e 57 20 53 74 72 43 53  s StrCSpnW StrCS
4520: 70 6e 3b 0d 0a 61 6c 69 61 73 20 53 74 72 44 75  pn;..alias StrDu
4530: 70 57 20 53 74 72 44 75 70 3b 0d 0a 61 6c 69 61  pW StrDup;..alia
4540: 73 20 53 74 72 46 6f 72 6d 61 74 42 79 74 65 53  s StrFormatByteS
4550: 69 7a 65 57 20 53 74 72 46 6f 72 6d 61 74 42 79  izeW StrFormatBy
4560: 74 65 53 69 7a 65 3b 0d 0a 61 6c 69 61 73 20 53  teSize;..alias S
4570: 74 72 46 6f 72 6d 61 74 4b 42 53 69 7a 65 57 20  trFormatKBSizeW 
4580: 53 74 72 46 6f 72 6d 61 74 4b 42 53 69 7a 65 3b  StrFormatKBSize;
4590: 0d 0a 61 6c 69 61 73 20 53 74 72 46 72 6f 6d 54  ..alias StrFromT
45a0: 69 6d 65 49 6e 74 65 72 76 61 6c 57 20 53 74 72  imeIntervalW Str
45b0: 46 72 6f 6d 54 69 6d 65 49 6e 74 65 72 76 61 6c  FromTimeInterval
45c0: 3b 0d 0a 61 6c 69 61 73 20 53 74 72 49 73 49 6e  ;..alias StrIsIn
45d0: 74 6c 45 71 75 61 6c 57 20 53 74 72 49 73 49 6e  tlEqualW StrIsIn
45e0: 74 6c 45 71 75 61 6c 3b 0d 0a 61 6c 69 61 73 20  tlEqual;..alias 
45f0: 53 74 72 4e 43 61 74 57 20 53 74 72 4e 43 61 74  StrNCatW StrNCat
4600: 3b 0d 0a 61 6c 69 61 73 20 53 74 72 50 42 72 6b  ;..alias StrPBrk
4610: 57 20 53 74 72 50 42 72 6b 3b 0d 0a 61 6c 69 61  W StrPBrk;..alia
4620: 73 20 53 74 72 52 43 68 72 57 20 53 74 72 52 43  s StrRChrW StrRC
4630: 68 72 3b 0d 0a 61 6c 69 61 73 20 53 74 72 52 43  hr;..alias StrRC
4640: 68 72 49 57 20 53 74 72 52 43 68 72 49 3b 0d 0a  hrIW StrRChrI;..
4650: 61 6c 69 61 73 20 53 74 72 52 65 74 54 6f 42 75  alias StrRetToBu
4660: 66 57 20 53 74 72 52 65 74 54 6f 42 75 66 3b 0d  fW StrRetToBuf;.
4670: 0a 61 6c 69 61 73 20 53 74 72 52 65 74 54 6f 53  .alias StrRetToS
4680: 74 72 57 20 53 74 72 52 65 74 54 6f 53 74 72 3b  trW StrRetToStr;
4690: 0d 0a 61 6c 69 61 73 20 53 74 72 52 53 74 72 49  ..alias StrRStrI
46a0: 57 20 53 74 72 52 53 74 72 49 3b 0d 0a 61 6c 69  W StrRStrI;..ali
46b0: 61 73 20 53 74 72 53 70 6e 57 20 53 74 72 53 70  as StrSpnW StrSp
46c0: 6e 3b 0d 0a 61 6c 69 61 73 20 53 74 72 53 74 72  n;..alias StrStr
46d0: 49 57 20 53 74 72 53 74 72 49 3b 0d 0a 61 6c 69  IW StrStrI;..ali
46e0: 61 73 20 53 74 72 53 74 72 57 20 53 74 72 53 74  as StrStrW StrSt
46f0: 72 3b 0d 0a 61 6c 69 61 73 20 53 74 72 54 6f 49  r;..alias StrToI
4700: 6e 74 57 20 53 74 72 54 6f 49 6e 74 3b 0d 0a 61  ntW StrToInt;..a
4710: 6c 69 61 73 20 53 74 72 54 6f 49 6e 74 45 78 57  lias StrToIntExW
4720: 20 53 74 72 54 6f 49 6e 74 45 78 3b 0d 0a 61 6c   StrToIntEx;..al
4730: 69 61 73 20 53 74 72 54 72 69 6d 57 20 53 74 72  ias StrTrimW Str
4740: 54 72 69 6d 3b 0d 0a 61 6c 69 61 73 20 50 61 74  Trim;..alias Pat
4750: 68 41 64 64 42 61 63 6b 73 6c 61 73 68 57 20 50  hAddBackslashW P
4760: 61 74 68 41 64 64 42 61 63 6b 73 6c 61 73 68 3b  athAddBackslash;
4770: 0d 0a 61 6c 69 61 73 20 50 61 74 68 41 64 64 45  ..alias PathAddE
4780: 78 74 65 6e 73 69 6f 6e 57 20 50 61 74 68 41 64  xtensionW PathAd
4790: 64 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 61 6c 69  dExtension;..ali
47a0: 61 73 20 50 61 74 68 41 70 70 65 6e 64 57 20 50  as PathAppendW P
47b0: 61 74 68 41 70 70 65 6e 64 3b 0d 0a 61 6c 69 61  athAppend;..alia
47c0: 73 20 50 61 74 68 42 75 69 6c 64 52 6f 6f 74 57  s PathBuildRootW
47d0: 20 50 61 74 68 42 75 69 6c 64 52 6f 6f 74 3b 0d   PathBuildRoot;.
47e0: 0a 61 6c 69 61 73 20 50 61 74 68 43 61 6e 6f 6e  .alias PathCanon
47f0: 69 63 61 6c 69 7a 65 57 20 50 61 74 68 43 61 6e  icalizeW PathCan
4800: 6f 6e 69 63 61 6c 69 7a 65 3b 0d 0a 61 6c 69 61  onicalize;..alia
4810: 73 20 50 61 74 68 43 6f 6d 62 69 6e 65 57 20 50  s PathCombineW P
4820: 61 74 68 43 6f 6d 62 69 6e 65 3b 0d 0a 61 6c 69  athCombine;..ali
4830: 61 73 20 50 61 74 68 43 6f 6d 6d 6f 6e 50 72 65  as PathCommonPre
4840: 66 69 78 57 20 50 61 74 68 43 6f 6d 6d 6f 6e 50  fixW PathCommonP
4850: 72 65 66 69 78 3b 0d 0a 61 6c 69 61 73 20 50 61  refix;..alias Pa
4860: 74 68 43 6f 6d 70 61 63 74 50 61 74 68 57 20 50  thCompactPathW P
4870: 61 74 68 43 6f 6d 70 61 63 74 50 61 74 68 3b 0d  athCompactPath;.
4880: 0a 61 6c 69 61 73 20 50 61 74 68 43 6f 6d 70 61  .alias PathCompa
4890: 63 74 50 61 74 68 45 78 57 20 50 61 74 68 43 6f  ctPathExW PathCo
48a0: 6d 70 61 63 74 50 61 74 68 45 78 3b 0d 0a 61 6c  mpactPathEx;..al
48b0: 69 61 73 20 50 61 74 68 43 72 65 61 74 65 46 72  ias PathCreateFr
48c0: 6f 6d 55 72 6c 57 20 50 61 74 68 43 72 65 61 74  omUrlW PathCreat
48d0: 65 46 72 6f 6d 55 72 6c 3b 0d 0a 61 6c 69 61 73  eFromUrl;..alias
48e0: 20 50 61 74 68 46 69 6c 65 45 78 69 73 74 73 57   PathFileExistsW
48f0: 20 50 61 74 68 46 69 6c 65 45 78 69 73 74 73 3b   PathFileExists;
4900: 0d 0a 61 6c 69 61 73 20 50 61 74 68 46 69 6e 64  ..alias PathFind
4910: 45 78 74 65 6e 73 69 6f 6e 57 20 50 61 74 68 46  ExtensionW PathF
4920: 69 6e 64 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 61  indExtension;..a
4930: 6c 69 61 73 20 50 61 74 68 46 69 6e 64 46 69 6c  lias PathFindFil
4940: 65 4e 61 6d 65 57 20 50 61 74 68 46 69 6e 64 46  eNameW PathFindF
4950: 69 6c 65 4e 61 6d 65 3b 0d 0a 61 6c 69 61 73 20  ileName;..alias 
4960: 50 61 74 68 46 69 6e 64 4e 65 78 74 43 6f 6d 70  PathFindNextComp
4970: 6f 6e 65 6e 74 57 20 50 61 74 68 46 69 6e 64 4e  onentW PathFindN
4980: 65 78 74 43 6f 6d 70 6f 6e 65 6e 74 3b 0d 0a 61  extComponent;..a
4990: 6c 69 61 73 20 50 61 74 68 46 69 6e 64 4f 6e 50  lias PathFindOnP
49a0: 61 74 68 57 20 50 61 74 68 46 69 6e 64 4f 6e 50  athW PathFindOnP
49b0: 61 74 68 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68  ath;..alias Path
49c0: 46 69 6e 64 53 75 66 66 69 78 41 72 72 61 79 57  FindSuffixArrayW
49d0: 20 50 61 74 68 46 69 6e 64 53 75 66 66 69 78 41   PathFindSuffixA
49e0: 72 72 61 79 3b 0d 0a 61 6c 69 61 73 20 50 61 74  rray;..alias Pat
49f0: 68 47 65 74 41 72 67 73 57 20 50 61 74 68 47 65  hGetArgsW PathGe
4a00: 74 41 72 67 73 3b 0d 0a 61 6c 69 61 73 20 50 61  tArgs;..alias Pa
4a10: 74 68 47 65 74 43 68 61 72 54 79 70 65 57 20 50  thGetCharTypeW P
4a20: 61 74 68 47 65 74 43 68 61 72 54 79 70 65 3b 0d  athGetCharType;.
4a30: 0a 61 6c 69 61 73 20 50 61 74 68 47 65 74 44 72  .alias PathGetDr
4a40: 69 76 65 4e 75 6d 62 65 72 57 20 50 61 74 68 47  iveNumberW PathG
4a50: 65 74 44 72 69 76 65 4e 75 6d 62 65 72 3b 0d 0a  etDriveNumber;..
4a60: 61 6c 69 61 73 20 50 61 74 68 49 73 43 6f 6e 74  alias PathIsCont
4a70: 65 6e 74 54 79 70 65 57 20 50 61 74 68 49 73 43  entTypeW PathIsC
4a80: 6f 6e 74 65 6e 74 54 79 70 65 3b 0d 0a 61 6c 69  ontentType;..ali
4a90: 61 73 20 50 61 74 68 49 73 44 69 72 65 63 74 6f  as PathIsDirecto
4aa0: 72 79 45 6d 70 74 79 57 20 50 61 74 68 49 73 44  ryEmptyW PathIsD
4ab0: 69 72 65 63 74 6f 72 79 45 6d 70 74 79 3b 0d 0a  irectoryEmpty;..
4ac0: 61 6c 69 61 73 20 50 61 74 68 49 73 44 69 72 65  alias PathIsDire
4ad0: 63 74 6f 72 79 57 20 50 61 74 68 49 73 44 69 72  ctoryW PathIsDir
4ae0: 65 63 74 6f 72 79 3b 0d 0a 61 6c 69 61 73 20 50  ectory;..alias P
4af0: 61 74 68 49 73 46 69 6c 65 53 70 65 63 57 20 50  athIsFileSpecW P
4b00: 61 74 68 49 73 46 69 6c 65 53 70 65 63 3b 0d 0a  athIsFileSpec;..
4b10: 61 6c 69 61 73 20 50 61 74 68 49 73 4c 46 4e 46  alias PathIsLFNF
4b20: 69 6c 65 53 70 65 63 57 20 50 61 74 68 49 73 4c  ileSpecW PathIsL
4b30: 46 4e 46 69 6c 65 53 70 65 63 3b 0d 0a 61 6c 69  FNFileSpec;..ali
4b40: 61 73 20 50 61 74 68 49 73 4e 65 74 77 6f 72 6b  as PathIsNetwork
4b50: 50 61 74 68 57 20 50 61 74 68 49 73 4e 65 74 77  PathW PathIsNetw
4b60: 6f 72 6b 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20  orkPath;..alias 
4b70: 50 61 74 68 49 73 50 72 65 66 69 78 57 20 50 61  PathIsPrefixW Pa
4b80: 74 68 49 73 50 72 65 66 69 78 3b 0d 0a 61 6c 69  thIsPrefix;..ali
4b90: 61 73 20 50 61 74 68 49 73 52 65 6c 61 74 69 76  as PathIsRelativ
4ba0: 65 57 20 50 61 74 68 49 73 52 65 6c 61 74 69 76  eW PathIsRelativ
4bb0: 65 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49 73  e;..alias PathIs
4bc0: 52 6f 6f 74 57 20 50 61 74 68 49 73 52 6f 6f 74  RootW PathIsRoot
4bd0: 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49 73 53  ;..alias PathIsS
4be0: 61 6d 65 52 6f 6f 74 57 20 50 61 74 68 49 73 53  ameRootW PathIsS
4bf0: 61 6d 65 52 6f 6f 74 3b 0d 0a 61 6c 69 61 73 20  ameRoot;..alias 
4c00: 50 61 74 68 49 73 53 79 73 74 65 6d 46 6f 6c 64  PathIsSystemFold
4c10: 65 72 57 20 50 61 74 68 49 73 53 79 73 74 65 6d  erW PathIsSystem
4c20: 46 6f 6c 64 65 72 3b 0d 0a 61 6c 69 61 73 20 50  Folder;..alias P
4c30: 61 74 68 49 73 55 4e 43 53 65 72 76 65 72 53 68  athIsUNCServerSh
4c40: 61 72 65 57 20 50 61 74 68 49 73 55 4e 43 53 65  areW PathIsUNCSe
4c50: 72 76 65 72 53 68 61 72 65 3b 0d 0a 61 6c 69 61  rverShare;..alia
4c60: 73 20 50 61 74 68 49 73 55 4e 43 53 65 72 76 65  s PathIsUNCServe
4c70: 72 57 20 50 61 74 68 49 73 55 4e 43 53 65 72 76  rW PathIsUNCServ
4c80: 65 72 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49  er;..alias PathI
4c90: 73 55 4e 43 57 20 50 61 74 68 49 73 55 4e 43 3b  sUNCW PathIsUNC;
4ca0: 0d 0a 61 6c 69 61 73 20 50 61 74 68 49 73 55 52  ..alias PathIsUR
4cb0: 4c 57 20 50 61 74 68 49 73 55 52 4c 3b 0d 0a 61  LW PathIsURL;..a
4cc0: 6c 69 61 73 20 50 61 74 68 4d 61 6b 65 50 72 65  lias PathMakePre
4cd0: 74 74 79 57 20 50 61 74 68 4d 61 6b 65 50 72 65  ttyW PathMakePre
4ce0: 74 74 79 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68  tty;..alias Path
4cf0: 4d 61 6b 65 53 79 73 74 65 6d 46 6f 6c 64 65 72  MakeSystemFolder
4d00: 57 20 50 61 74 68 4d 61 6b 65 53 79 73 74 65 6d  W PathMakeSystem
4d10: 46 6f 6c 64 65 72 3b 0d 0a 61 6c 69 61 73 20 50  Folder;..alias P
4d20: 61 74 68 4d 61 74 63 68 53 70 65 63 57 20 50 61  athMatchSpecW Pa
4d30: 74 68 4d 61 74 63 68 53 70 65 63 3b 0d 0a 61 6c  thMatchSpec;..al
4d40: 69 61 73 20 50 61 74 68 50 61 72 73 65 49 63 6f  ias PathParseIco
4d50: 6e 4c 6f 63 61 74 69 6f 6e 57 20 50 61 74 68 50  nLocationW PathP
4d60: 61 72 73 65 49 63 6f 6e 4c 6f 63 61 74 69 6f 6e  arseIconLocation
4d70: 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 51 75 6f  ;..alias PathQuo
4d80: 74 65 53 70 61 63 65 73 57 20 50 61 74 68 51 75  teSpacesW PathQu
4d90: 6f 74 65 53 70 61 63 65 73 3b 0d 0a 61 6c 69 61  oteSpaces;..alia
4da0: 73 20 50 61 74 68 52 65 6c 61 74 69 76 65 50 61  s PathRelativePa
4db0: 74 68 54 6f 57 20 50 61 74 68 52 65 6c 61 74 69  thToW PathRelati
4dc0: 76 65 50 61 74 68 54 6f 3b 0d 0a 61 6c 69 61 73  vePathTo;..alias
4dd0: 20 50 61 74 68 52 65 6d 6f 76 65 41 72 67 73 57   PathRemoveArgsW
4de0: 20 50 61 74 68 52 65 6d 6f 76 65 41 72 67 73 3b   PathRemoveArgs;
4df0: 0d 0a 61 6c 69 61 73 20 50 61 74 68 52 65 6d 6f  ..alias PathRemo
4e00: 76 65 42 61 63 6b 73 6c 61 73 68 57 20 50 61 74  veBackslashW Pat
4e10: 68 52 65 6d 6f 76 65 42 61 63 6b 73 6c 61 73 68  hRemoveBackslash
4e20: 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 52 65 6d  ;..alias PathRem
4e30: 6f 76 65 42 6c 61 6e 6b 73 57 20 50 61 74 68 52  oveBlanksW PathR
4e40: 65 6d 6f 76 65 42 6c 61 6e 6b 73 3b 0d 0a 61 6c  emoveBlanks;..al
4e50: 69 61 73 20 50 61 74 68 52 65 6d 6f 76 65 45 78  ias PathRemoveEx
4e60: 74 65 6e 73 69 6f 6e 57 20 50 61 74 68 52 65 6d  tensionW PathRem
4e70: 6f 76 65 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 61  oveExtension;..a
4e80: 6c 69 61 73 20 50 61 74 68 52 65 6d 6f 76 65 46  lias PathRemoveF
4e90: 69 6c 65 53 70 65 63 57 20 50 61 74 68 52 65 6d  ileSpecW PathRem
4ea0: 6f 76 65 46 69 6c 65 53 70 65 63 3b 0d 0a 61 6c  oveFileSpec;..al
4eb0: 69 61 73 20 50 61 74 68 52 65 6e 61 6d 65 45 78  ias PathRenameEx
4ec0: 74 65 6e 73 69 6f 6e 57 20 50 61 74 68 52 65 6e  tensionW PathRen
4ed0: 61 6d 65 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 61  ameExtension;..a
4ee0: 6c 69 61 73 20 50 61 74 68 53 65 61 72 63 68 41  lias PathSearchA
4ef0: 6e 64 51 75 61 6c 69 66 79 57 20 50 61 74 68 53  ndQualifyW PathS
4f00: 65 61 72 63 68 41 6e 64 51 75 61 6c 69 66 79 3b  earchAndQualify;
4f10: 0d 0a 61 6c 69 61 73 20 50 61 74 68 53 65 74 44  ..alias PathSetD
4f20: 6c 67 49 74 65 6d 50 61 74 68 57 20 50 61 74 68  lgItemPathW Path
4f30: 53 65 74 44 6c 67 49 74 65 6d 50 61 74 68 3b 0d  SetDlgItemPath;.
4f40: 0a 61 6c 69 61 73 20 50 61 74 68 53 6b 69 70 52  .alias PathSkipR
4f50: 6f 6f 74 57 20 50 61 74 68 53 6b 69 70 52 6f 6f  ootW PathSkipRoo
4f60: 74 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 53 74  t;..alias PathSt
4f70: 72 69 70 50 61 74 68 57 20 50 61 74 68 53 74 72  ripPathW PathStr
4f80: 69 70 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20 50  ipPath;..alias P
4f90: 61 74 68 53 74 72 69 70 54 6f 52 6f 6f 74 57 20  athStripToRootW 
4fa0: 50 61 74 68 53 74 72 69 70 54 6f 52 6f 6f 74 3b  PathStripToRoot;
4fb0: 0d 0a 61 6c 69 61 73 20 50 61 74 68 55 6e 64 65  ..alias PathUnde
4fc0: 63 6f 72 61 74 65 57 20 50 61 74 68 55 6e 64 65  corateW PathUnde
4fd0: 63 6f 72 61 74 65 3b 0d 0a 61 6c 69 61 73 20 50  corate;..alias P
4fe0: 61 74 68 55 6e 45 78 70 61 6e 64 45 6e 76 53 74  athUnExpandEnvSt
4ff0: 72 69 6e 67 73 57 20 50 61 74 68 55 6e 45 78 70  ringsW PathUnExp
5000: 61 6e 64 45 6e 76 53 74 72 69 6e 67 73 3b 0d 0a  andEnvStrings;..
5010: 61 6c 69 61 73 20 50 61 74 68 55 6e 6d 61 6b 65  alias PathUnmake
5020: 53 79 73 74 65 6d 46 6f 6c 64 65 72 57 20 50 61  SystemFolderW Pa
5030: 74 68 55 6e 6d 61 6b 65 53 79 73 74 65 6d 46 6f  thUnmakeSystemFo
5040: 6c 64 65 72 3b 0d 0a 61 6c 69 61 73 20 50 61 74  lder;..alias Pat
5050: 68 55 6e 71 75 6f 74 65 53 70 61 63 65 73 57 20  hUnquoteSpacesW 
5060: 50 61 74 68 55 6e 71 75 6f 74 65 53 70 61 63 65  PathUnquoteSpace
5070: 73 3b 0d 0a 61 6c 69 61 73 20 53 48 43 72 65 61  s;..alias SHCrea
5080: 74 65 53 74 72 65 61 6d 4f 6e 46 69 6c 65 57 20  teStreamOnFileW 
5090: 53 48 43 72 65 61 74 65 53 74 72 65 61 6d 4f 6e  SHCreateStreamOn
50a0: 46 69 6c 65 3b 0d 0a 61 6c 69 61 73 20 53 48 4f  File;..alias SHO
50b0: 70 65 6e 52 65 67 53 74 72 65 61 6d 57 20 53 48  penRegStreamW SH
50c0: 4f 70 65 6e 52 65 67 53 74 72 65 61 6d 3b 0d 0a  OpenRegStream;..
50d0: 61 6c 69 61 73 20 53 48 4f 70 65 6e 52 65 67 53  alias SHOpenRegS
50e0: 74 72 65 61 6d 32 57 20 53 48 4f 70 65 6e 52 65  tream2W SHOpenRe
50f0: 67 53 74 72 65 61 6d 32 3b 0d 0a 61 6c 69 61 73  gStream2;..alias
5100: 20 53 48 43 6f 70 79 4b 65 79 57 20 53 48 43 6f   SHCopyKeyW SHCo
5110: 70 79 4b 65 79 3b 0d 0a 61 6c 69 61 73 20 53 48  pyKey;..alias SH
5120: 44 65 6c 65 74 65 45 6d 70 74 79 4b 65 79 57 20  DeleteEmptyKeyW 
5130: 53 48 44 65 6c 65 74 65 45 6d 70 74 79 4b 65 79  SHDeleteEmptyKey
5140: 3b 0d 0a 61 6c 69 61 73 20 53 48 44 65 6c 65 74  ;..alias SHDelet
5150: 65 4b 65 79 57 20 53 48 44 65 6c 65 74 65 4b 65  eKeyW SHDeleteKe
5160: 79 3b 0d 0a 61 6c 69 61 73 20 53 48 45 6e 75 6d  y;..alias SHEnum
5170: 4b 65 79 45 78 57 20 53 48 45 6e 75 6d 4b 65 79  KeyExW SHEnumKey
5180: 45 78 3b 0d 0a 61 6c 69 61 73 20 53 48 51 75 65  Ex;..alias SHQue
5190: 72 79 49 6e 66 6f 4b 65 79 57 20 53 48 51 75 65  ryInfoKeyW SHQue
51a0: 72 79 49 6e 66 6f 4b 65 79 3b 0d 0a 61 6c 69 61  ryInfoKey;..alia
51b0: 73 20 53 48 51 75 65 72 79 56 61 6c 75 65 45 78  s SHQueryValueEx
51c0: 57 20 53 48 51 75 65 72 79 56 61 6c 75 65 45 78  W SHQueryValueEx
51d0: 3b 0d 0a 61 6c 69 61 73 20 53 48 45 6e 75 6d 56  ;..alias SHEnumV
51e0: 61 6c 75 65 57 20 53 48 45 6e 75 6d 56 61 6c 75  alueW SHEnumValu
51f0: 65 3b 0d 0a 61 6c 69 61 73 20 53 48 47 65 74 56  e;..alias SHGetV
5200: 61 6c 75 65 57 20 53 48 47 65 74 56 61 6c 75 65  alueW SHGetValue
5210: 3b 0d 0a 61 6c 69 61 73 20 53 48 53 65 74 56 61  ;..alias SHSetVa
5220: 6c 75 65 57 20 53 48 53 65 74 56 61 6c 75 65 3b  lueW SHSetValue;
5230: 0d 0a 61 6c 69 61 73 20 53 48 44 65 6c 65 74 65  ..alias SHDelete
5240: 56 61 6c 75 65 57 20 53 48 44 65 6c 65 74 65 56  ValueW SHDeleteV
5250: 61 6c 75 65 3b 0d 0a 61 6c 69 61 73 20 41 73 73  alue;..alias Ass
5260: 6f 63 51 75 65 72 79 4b 65 79 57 20 41 73 73 6f  ocQueryKeyW Asso
5270: 63 51 75 65 72 79 4b 65 79 3b 0d 0a 61 6c 69 61  cQueryKey;..alia
5280: 73 20 41 73 73 6f 63 51 75 65 72 79 53 74 72 69  s AssocQueryStri
5290: 6e 67 42 79 4b 65 79 57 20 41 73 73 6f 63 51 75  ngByKeyW AssocQu
52a0: 65 72 79 53 74 72 69 6e 67 42 79 4b 65 79 3b 0d  eryStringByKey;.
52b0: 0a 61 6c 69 61 73 20 41 73 73 6f 63 51 75 65 72  .alias AssocQuer
52c0: 79 53 74 72 69 6e 67 57 20 41 73 73 6f 63 51 75  yStringW AssocQu
52d0: 65 72 79 53 74 72 69 6e 67 3b 0d 0a 61 6c 69 61  eryString;..alia
52e0: 73 20 55 72 6c 41 70 70 6c 79 53 63 68 65 6d 65  s UrlApplyScheme
52f0: 57 20 55 72 6c 41 70 70 6c 79 53 63 68 65 6d 65  W UrlApplyScheme
5300: 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 43 61 6e 6f  ;..alias UrlCano
5310: 6e 69 63 61 6c 69 7a 65 57 20 55 72 6c 43 61 6e  nicalizeW UrlCan
5320: 6f 6e 69 63 61 6c 69 7a 65 3b 0d 0a 61 6c 69 61  onicalize;..alia
5330: 73 20 55 72 6c 43 6f 6d 62 69 6e 65 57 20 55 72  s UrlCombineW Ur
5340: 6c 43 6f 6d 62 69 6e 65 3b 0d 0a 61 6c 69 61 73  lCombine;..alias
5350: 20 55 72 6c 43 6f 6d 70 61 72 65 57 20 55 72 6c   UrlCompareW Url
5360: 43 6f 6d 70 61 72 65 3b 0d 0a 61 6c 69 61 73 20  Compare;..alias 
5370: 55 72 6c 43 72 65 61 74 65 46 72 6f 6d 50 61 74  UrlCreateFromPat
5380: 68 57 20 55 72 6c 43 72 65 61 74 65 46 72 6f 6d  hW UrlCreateFrom
5390: 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20 55 72 6c  Path;..alias Url
53a0: 45 73 63 61 70 65 57 20 55 72 6c 45 73 63 61 70  EscapeW UrlEscap
53b0: 65 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 47 65 74  e;..alias UrlGet
53c0: 4c 6f 63 61 74 69 6f 6e 57 20 55 72 6c 47 65 74  LocationW UrlGet
53d0: 4c 6f 63 61 74 69 6f 6e 3b 0d 0a 61 6c 69 61 73  Location;..alias
53e0: 20 55 72 6c 47 65 74 50 61 72 74 57 20 55 72 6c   UrlGetPartW Url
53f0: 47 65 74 50 61 72 74 3b 0d 0a 61 6c 69 61 73 20  GetPart;..alias 
5400: 55 72 6c 48 61 73 68 57 20 55 72 6c 48 61 73 68  UrlHashW UrlHash
5410: 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 49 73 57 20  ;..alias UrlIsW 
5420: 55 72 6c 49 73 3b 0d 0a 61 6c 69 61 73 20 55 72  UrlIs;..alias Ur
5430: 6c 49 73 46 69 6c 65 55 72 6c 57 20 55 72 6c 49  lIsFileUrlW UrlI
5440: 73 46 69 6c 65 55 72 6c 3b 0d 0a 61 6c 69 61 73  sFileUrl;..alias
5450: 20 55 72 6c 49 73 4e 6f 48 69 73 74 6f 72 79 57   UrlIsNoHistoryW
5460: 20 55 72 6c 49 73 4e 6f 48 69 73 74 6f 72 79 3b   UrlIsNoHistory;
5470: 0d 0a 61 6c 69 61 73 20 55 72 6c 49 73 4f 70 61  ..alias UrlIsOpa
5480: 71 75 65 57 20 55 72 6c 49 73 4f 70 61 71 75 65  queW UrlIsOpaque
5490: 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 55 6e 65 73  ;..alias UrlUnes
54a0: 63 61 70 65 57 20 55 72 6c 55 6e 65 73 63 61 70  capeW UrlUnescap
54b0: 65 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 55 6e 65  e;..alias UrlUne
54c0: 73 63 61 70 65 49 6e 50 6c 61 63 65 57 20 55 72  scapeInPlaceW Ur
54d0: 6c 55 6e 65 73 63 61 70 65 49 6e 50 6c 61 63 65  lUnescapeInPlace
54e0: 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65 67 43 72  ;..alias SHRegCr
54f0: 65 61 74 65 55 53 4b 65 79 57 20 53 48 52 65 67  eateUSKeyW SHReg
5500: 43 72 65 61 74 65 55 53 4b 65 79 3b 0d 0a 61 6c  CreateUSKey;..al
5510: 69 61 73 20 53 48 52 65 67 44 65 6c 65 74 65 45  ias SHRegDeleteE
5520: 6d 70 74 79 55 53 4b 65 79 57 20 53 48 52 65 67  mptyUSKeyW SHReg
5530: 44 65 6c 65 74 65 45 6d 70 74 79 55 53 4b 65 79  DeleteEmptyUSKey
5540: 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65 67 44 65  ;..alias SHRegDe
5550: 6c 65 74 65 55 53 56 61 6c 75 65 57 20 53 48 52  leteUSValueW SHR
5560: 65 67 44 65 6c 65 74 65 55 53 56 61 6c 75 65 3b  egDeleteUSValue;
5570: 0d 0a 61 6c 69 61 73 20 53 48 52 65 67 45 6e 75  ..alias SHRegEnu
5580: 6d 55 53 4b 65 79 57 20 53 48 52 65 67 45 6e 75  mUSKeyW SHRegEnu
5590: 6d 55 53 4b 65 79 3b 0d 0a 61 6c 69 61 73 20 53  mUSKey;..alias S
55a0: 48 52 65 67 45 6e 75 6d 55 53 56 61 6c 75 65 57  HRegEnumUSValueW
55b0: 20 53 48 52 65 67 45 6e 75 6d 55 53 56 61 6c 75   SHRegEnumUSValu
55c0: 65 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65 67 47  e;..alias SHRegG
55d0: 65 74 42 6f 6f 6c 55 53 56 61 6c 75 65 57 20 53  etBoolUSValueW S
55e0: 48 52 65 67 47 65 74 42 6f 6f 6c 55 53 56 61 6c  HRegGetBoolUSVal
55f0: 75 65 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65 67  ue;..alias SHReg
5600: 47 65 74 50 61 74 68 57 20 53 48 52 65 67 47 65  GetPathW SHRegGe
5610: 74 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20 53 48  tPath;..alias SH
5620: 52 65 67 47 65 74 55 53 56 61 6c 75 65 57 20 53  RegGetUSValueW S
5630: 48 52 65 67 47 65 74 55 53 56 61 6c 75 65 3b 0d  HRegGetUSValue;.
5640: 0a 61 6c 69 61 73 20 53 48 52 65 67 4f 70 65 6e  .alias SHRegOpen
5650: 55 53 4b 65 79 57 20 53 48 52 65 67 4f 70 65 6e  USKeyW SHRegOpen
5660: 55 53 4b 65 79 3b 0d 0a 61 6c 69 61 73 20 53 48  USKey;..alias SH
5670: 52 65 67 51 75 65 72 79 49 6e 66 6f 55 53 4b 65  RegQueryInfoUSKe
5680: 79 57 20 53 48 52 65 67 51 75 65 72 79 49 6e 66  yW SHRegQueryInf
5690: 6f 55 53 4b 65 79 3b 0d 0a 61 6c 69 61 73 20 53  oUSKey;..alias S
56a0: 48 52 65 67 51 75 65 72 79 55 53 56 61 6c 75 65  HRegQueryUSValue
56b0: 57 20 53 48 52 65 67 51 75 65 72 79 55 53 56 61  W SHRegQueryUSVa
56c0: 6c 75 65 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65  lue;..alias SHRe
56d0: 67 53 65 74 50 61 74 68 57 20 53 48 52 65 67 53  gSetPathW SHRegS
56e0: 65 74 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20 53  etPath;..alias S
56f0: 48 52 65 67 53 65 74 55 53 56 61 6c 75 65 57 20  HRegSetUSValueW 
5700: 53 48 52 65 67 53 65 74 55 53 56 61 6c 75 65 3b  SHRegSetUSValue;
5710: 0d 0a 61 6c 69 61 73 20 53 48 52 65 67 57 72 69  ..alias SHRegWri
5720: 74 65 55 53 56 61 6c 75 65 57 20 53 48 52 65 67  teUSValueW SHReg
5730: 57 72 69 74 65 55 53 56 61 6c 75 65 3b 0d 0a 2f  WriteUSValue;../
5740: 2f 61 6c 69 61 73 20 77 6e 73 70 72 69 6e 74 66  /alias wnsprintf
5750: 57 20 77 6e 73 70 72 69 6e 74 66 3b 0d 0a 2f 2f  W wnsprintf;..//
5760: 61 6c 69 61 73 20 77 76 6e 73 70 72 69 6e 74 66  alias wvnsprintf
5770: 57 20 77 76 6e 73 70 72 69 6e 74 66 3b 0d 0a 7d  W wvnsprintf;..}
5780: 20 65 6c 73 65 20 7b 0d 0a 61 6c 69 61 73 20 43   else {..alias C
5790: 68 72 43 6d 70 49 41 20 43 68 72 43 6d 70 49 3b  hrCmpIA ChrCmpI;
57a0: 0d 0a 61 6c 69 61 73 20 49 6e 74 6c 53 74 72 45  ..alias IntlStrE
57b0: 71 4e 41 20 49 6e 74 6c 53 74 72 45 71 4e 3b 0d  qNA IntlStrEqN;.
57c0: 0a 61 6c 69 61 73 20 49 6e 74 6c 53 74 72 45 71  .alias IntlStrEq
57d0: 4e 49 41 20 49 6e 74 6c 53 74 72 45 71 4e 49 3b  NIA IntlStrEqNI;
57e0: 0d 0a 61 6c 69 61 73 20 49 6e 74 6c 53 74 72 45  ..alias IntlStrE
57f0: 71 57 6f 72 6b 65 72 41 20 49 6e 74 6c 53 74 72  qWorkerA IntlStr
5800: 45 71 57 6f 72 6b 65 72 3b 0d 0a 61 6c 69 61 73  EqWorker;..alias
5810: 20 53 48 53 74 72 44 75 70 41 20 53 48 53 74 72   SHStrDupA SHStr
5820: 44 75 70 3b 0d 0a 61 6c 69 61 73 20 53 74 72 43  Dup;..alias StrC
5830: 61 74 42 75 66 66 41 20 53 74 72 43 61 74 42 75  atBuffA StrCatBu
5840: 66 66 3b 0d 0a 61 6c 69 61 73 20 53 74 72 43 68  ff;..alias StrCh
5850: 72 41 20 53 74 72 43 68 72 3b 0d 0a 61 6c 69 61  rA StrChr;..alia
5860: 73 20 53 74 72 43 68 72 49 41 20 53 74 72 43 68  s StrChrIA StrCh
5870: 72 49 3b 0d 0a 61 6c 69 61 73 20 53 74 72 43 6d  rI;..alias StrCm
5880: 70 4e 49 41 20 53 74 72 43 6d 70 4e 49 3b 0d 0a  pNIA StrCmpNI;..
5890: 61 6c 69 61 73 20 53 74 72 43 6d 70 4e 41 20 53  alias StrCmpNA S
58a0: 74 72 43 6d 70 4e 3b 0d 0a 61 6c 69 61 73 20 53  trCmpN;..alias S
58b0: 74 72 43 53 70 6e 49 41 20 53 74 72 43 53 70 6e  trCSpnIA StrCSpn
58c0: 49 3b 0d 0a 61 6c 69 61 73 20 53 74 72 43 53 70  I;..alias StrCSp
58d0: 6e 41 20 53 74 72 43 53 70 6e 3b 0d 0a 61 6c 69  nA StrCSpn;..ali
58e0: 61 73 20 53 74 72 44 75 70 41 20 53 74 72 44 75  as StrDupA StrDu
58f0: 70 3b 0d 0a 61 6c 69 61 73 20 53 74 72 46 6f 72  p;..alias StrFor
5900: 6d 61 74 42 79 74 65 53 69 7a 65 41 20 53 74 72  matByteSizeA Str
5910: 46 6f 72 6d 61 74 42 79 74 65 53 69 7a 65 3b 0d  FormatByteSize;.
5920: 0a 61 6c 69 61 73 20 53 74 72 46 6f 72 6d 61 74  .alias StrFormat
5930: 4b 42 53 69 7a 65 41 20 53 74 72 46 6f 72 6d 61  KBSizeA StrForma
5940: 74 4b 42 53 69 7a 65 3b 0d 0a 61 6c 69 61 73 20  tKBSize;..alias 
5950: 53 74 72 46 72 6f 6d 54 69 6d 65 49 6e 74 65 72  StrFromTimeInter
5960: 76 61 6c 41 20 53 74 72 46 72 6f 6d 54 69 6d 65  valA StrFromTime
5970: 49 6e 74 65 72 76 61 6c 3b 0d 0a 61 6c 69 61 73  Interval;..alias
5980: 20 53 74 72 49 73 49 6e 74 6c 45 71 75 61 6c 41   StrIsIntlEqualA
5990: 20 53 74 72 49 73 49 6e 74 6c 45 71 75 61 6c 3b   StrIsIntlEqual;
59a0: 0d 0a 61 6c 69 61 73 20 53 74 72 4e 43 61 74 41  ..alias StrNCatA
59b0: 20 53 74 72 4e 43 61 74 3b 0d 0a 61 6c 69 61 73   StrNCat;..alias
59c0: 20 53 74 72 50 42 72 6b 41 20 53 74 72 50 42 72   StrPBrkA StrPBr
59d0: 6b 3b 0d 0a 61 6c 69 61 73 20 53 74 72 52 43 68  k;..alias StrRCh
59e0: 72 41 20 53 74 72 52 43 68 72 3b 0d 0a 61 6c 69  rA StrRChr;..ali
59f0: 61 73 20 53 74 72 52 43 68 72 49 41 20 53 74 72  as StrRChrIA Str
5a00: 52 43 68 72 49 3b 0d 0a 61 6c 69 61 73 20 53 74  RChrI;..alias St
5a10: 72 52 65 74 54 6f 42 75 66 41 20 53 74 72 52 65  rRetToBufA StrRe
5a20: 74 54 6f 42 75 66 3b 0d 0a 61 6c 69 61 73 20 53  tToBuf;..alias S
5a30: 74 72 52 65 74 54 6f 53 74 72 41 20 53 74 72 52  trRetToStrA StrR
5a40: 65 74 54 6f 53 74 72 3b 0d 0a 61 6c 69 61 73 20  etToStr;..alias 
5a50: 53 74 72 52 53 74 72 49 41 20 53 74 72 52 53 74  StrRStrIA StrRSt
5a60: 72 49 3b 0d 0a 61 6c 69 61 73 20 53 74 72 53 70  rI;..alias StrSp
5a70: 6e 41 20 53 74 72 53 70 6e 3b 0d 0a 61 6c 69 61  nA StrSpn;..alia
5a80: 73 20 53 74 72 53 74 72 49 41 20 53 74 72 53 74  s StrStrIA StrSt
5a90: 72 49 3b 0d 0a 61 6c 69 61 73 20 53 74 72 53 74  rI;..alias StrSt
5aa0: 72 41 20 53 74 72 53 74 72 3b 0d 0a 61 6c 69 61  rA StrStr;..alia
5ab0: 73 20 53 74 72 54 6f 49 6e 74 41 20 53 74 72 54  s StrToIntA StrT
5ac0: 6f 49 6e 74 3b 0d 0a 61 6c 69 61 73 20 53 74 72  oInt;..alias Str
5ad0: 54 6f 49 6e 74 45 78 41 20 53 74 72 54 6f 49 6e  ToIntExA StrToIn
5ae0: 74 45 78 3b 0d 0a 61 6c 69 61 73 20 53 74 72 54  tEx;..alias StrT
5af0: 72 69 6d 41 20 53 74 72 54 72 69 6d 3b 0d 0a 61  rimA StrTrim;..a
5b00: 6c 69 61 73 20 50 61 74 68 41 64 64 42 61 63 6b  lias PathAddBack
5b10: 73 6c 61 73 68 41 20 50 61 74 68 41 64 64 42 61  slashA PathAddBa
5b20: 63 6b 73 6c 61 73 68 3b 0d 0a 61 6c 69 61 73 20  ckslash;..alias 
5b30: 50 61 74 68 41 64 64 45 78 74 65 6e 73 69 6f 6e  PathAddExtension
5b40: 41 20 50 61 74 68 41 64 64 45 78 74 65 6e 73 69  A PathAddExtensi
5b50: 6f 6e 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 41  on;..alias PathA
5b60: 70 70 65 6e 64 41 20 50 61 74 68 41 70 70 65 6e  ppendA PathAppen
5b70: 64 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 42 75  d;..alias PathBu
5b80: 69 6c 64 52 6f 6f 74 41 20 50 61 74 68 42 75 69  ildRootA PathBui
5b90: 6c 64 52 6f 6f 74 3b 0d 0a 61 6c 69 61 73 20 50  ldRoot;..alias P
5ba0: 61 74 68 43 61 6e 6f 6e 69 63 61 6c 69 7a 65 41  athCanonicalizeA
5bb0: 20 50 61 74 68 43 61 6e 6f 6e 69 63 61 6c 69 7a   PathCanonicaliz
5bc0: 65 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 43 6f  e;..alias PathCo
5bd0: 6d 62 69 6e 65 41 20 50 61 74 68 43 6f 6d 62 69  mbineA PathCombi
5be0: 6e 65 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 43  ne;..alias PathC
5bf0: 6f 6d 6d 6f 6e 50 72 65 66 69 78 41 20 50 61 74  ommonPrefixA Pat
5c00: 68 43 6f 6d 6d 6f 6e 50 72 65 66 69 78 3b 0d 0a  hCommonPrefix;..
5c10: 61 6c 69 61 73 20 50 61 74 68 43 6f 6d 70 61 63  alias PathCompac
5c20: 74 50 61 74 68 41 20 50 61 74 68 43 6f 6d 70 61  tPathA PathCompa
5c30: 63 74 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20 50  ctPath;..alias P
5c40: 61 74 68 43 6f 6d 70 61 63 74 50 61 74 68 45 78  athCompactPathEx
5c50: 41 20 50 61 74 68 43 6f 6d 70 61 63 74 50 61 74  A PathCompactPat
5c60: 68 45 78 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68  hEx;..alias Path
5c70: 43 72 65 61 74 65 46 72 6f 6d 55 72 6c 41 20 50  CreateFromUrlA P
5c80: 61 74 68 43 72 65 61 74 65 46 72 6f 6d 55 72 6c  athCreateFromUrl
5c90: 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 46 69 6c  ;..alias PathFil
5ca0: 65 45 78 69 73 74 73 41 20 50 61 74 68 46 69 6c  eExistsA PathFil
5cb0: 65 45 78 69 73 74 73 3b 0d 0a 61 6c 69 61 73 20  eExists;..alias 
5cc0: 50 61 74 68 46 69 6e 64 45 78 74 65 6e 73 69 6f  PathFindExtensio
5cd0: 6e 41 20 50 61 74 68 46 69 6e 64 45 78 74 65 6e  nA PathFindExten
5ce0: 73 69 6f 6e 3b 0d 0a 61 6c 69 61 73 20 50 61 74  sion;..alias Pat
5cf0: 68 46 69 6e 64 46 69 6c 65 4e 61 6d 65 41 20 50  hFindFileNameA P
5d00: 61 74 68 46 69 6e 64 46 69 6c 65 4e 61 6d 65 3b  athFindFileName;
5d10: 0d 0a 61 6c 69 61 73 20 50 61 74 68 46 69 6e 64  ..alias PathFind
5d20: 4e 65 78 74 43 6f 6d 70 6f 6e 65 6e 74 41 20 50  NextComponentA P
5d30: 61 74 68 46 69 6e 64 4e 65 78 74 43 6f 6d 70 6f  athFindNextCompo
5d40: 6e 65 6e 74 3b 0d 0a 61 6c 69 61 73 20 50 61 74  nent;..alias Pat
5d50: 68 46 69 6e 64 4f 6e 50 61 74 68 41 20 50 61 74  hFindOnPathA Pat
5d60: 68 46 69 6e 64 4f 6e 50 61 74 68 3b 0d 0a 61 6c  hFindOnPath;..al
5d70: 69 61 73 20 50 61 74 68 46 69 6e 64 53 75 66 66  ias PathFindSuff
5d80: 69 78 41 72 72 61 79 41 20 50 61 74 68 46 69 6e  ixArrayA PathFin
5d90: 64 53 75 66 66 69 78 41 72 72 61 79 3b 0d 0a 61  dSuffixArray;..a
5da0: 6c 69 61 73 20 50 61 74 68 47 65 74 41 72 67 73  lias PathGetArgs
5db0: 41 20 50 61 74 68 47 65 74 41 72 67 73 3b 0d 0a  A PathGetArgs;..
5dc0: 61 6c 69 61 73 20 50 61 74 68 47 65 74 43 68 61  alias PathGetCha
5dd0: 72 54 79 70 65 41 20 50 61 74 68 47 65 74 43 68  rTypeA PathGetCh
5de0: 61 72 54 79 70 65 3b 0d 0a 61 6c 69 61 73 20 50  arType;..alias P
5df0: 61 74 68 47 65 74 44 72 69 76 65 4e 75 6d 62 65  athGetDriveNumbe
5e00: 72 41 20 50 61 74 68 47 65 74 44 72 69 76 65 4e  rA PathGetDriveN
5e10: 75 6d 62 65 72 3b 0d 0a 61 6c 69 61 73 20 50 61  umber;..alias Pa
5e20: 74 68 49 73 43 6f 6e 74 65 6e 74 54 79 70 65 41  thIsContentTypeA
5e30: 20 50 61 74 68 49 73 43 6f 6e 74 65 6e 74 54 79   PathIsContentTy
5e40: 70 65 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49  pe;..alias PathI
5e50: 73 44 69 72 65 63 74 6f 72 79 45 6d 70 74 79 41  sDirectoryEmptyA
5e60: 20 50 61 74 68 49 73 44 69 72 65 63 74 6f 72 79   PathIsDirectory
5e70: 45 6d 70 74 79 3b 0d 0a 61 6c 69 61 73 20 50 61  Empty;..alias Pa
5e80: 74 68 49 73 44 69 72 65 63 74 6f 72 79 41 20 50  thIsDirectoryA P
5e90: 61 74 68 49 73 44 69 72 65 63 74 6f 72 79 3b 0d  athIsDirectory;.
5ea0: 0a 61 6c 69 61 73 20 50 61 74 68 49 73 46 69 6c  .alias PathIsFil
5eb0: 65 53 70 65 63 41 20 50 61 74 68 49 73 46 69 6c  eSpecA PathIsFil
5ec0: 65 53 70 65 63 3b 0d 0a 61 6c 69 61 73 20 50 61  eSpec;..alias Pa
5ed0: 74 68 49 73 4c 46 4e 46 69 6c 65 53 70 65 63 41  thIsLFNFileSpecA
5ee0: 20 50 61 74 68 49 73 4c 46 4e 46 69 6c 65 53 70   PathIsLFNFileSp
5ef0: 65 63 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49  ec;..alias PathI
5f00: 73 4e 65 74 77 6f 72 6b 50 61 74 68 41 20 50 61  sNetworkPathA Pa
5f10: 74 68 49 73 4e 65 74 77 6f 72 6b 50 61 74 68 3b  thIsNetworkPath;
5f20: 0d 0a 61 6c 69 61 73 20 50 61 74 68 49 73 50 72  ..alias PathIsPr
5f30: 65 66 69 78 41 20 50 61 74 68 49 73 50 72 65 66  efixA PathIsPref
5f40: 69 78 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49  ix;..alias PathI
5f50: 73 52 65 6c 61 74 69 76 65 41 20 50 61 74 68 49  sRelativeA PathI
5f60: 73 52 65 6c 61 74 69 76 65 3b 0d 0a 61 6c 69 61  sRelative;..alia
5f70: 73 20 50 61 74 68 49 73 52 6f 6f 74 41 20 50 61  s PathIsRootA Pa
5f80: 74 68 49 73 52 6f 6f 74 3b 0d 0a 61 6c 69 61 73  thIsRoot;..alias
5f90: 20 50 61 74 68 49 73 53 61 6d 65 52 6f 6f 74 41   PathIsSameRootA
5fa0: 20 50 61 74 68 49 73 53 61 6d 65 52 6f 6f 74 3b   PathIsSameRoot;
5fb0: 0d 0a 61 6c 69 61 73 20 50 61 74 68 49 73 53 79  ..alias PathIsSy
5fc0: 73 74 65 6d 46 6f 6c 64 65 72 41 20 50 61 74 68  stemFolderA Path
5fd0: 49 73 53 79 73 74 65 6d 46 6f 6c 64 65 72 3b 0d  IsSystemFolder;.
5fe0: 0a 61 6c 69 61 73 20 50 61 74 68 49 73 55 4e 43  .alias PathIsUNC
5ff0: 53 65 72 76 65 72 53 68 61 72 65 41 20 50 61 74  ServerShareA Pat
6000: 68 49 73 55 4e 43 53 65 72 76 65 72 53 68 61 72  hIsUNCServerShar
6010: 65 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 49 73  e;..alias PathIs
6020: 55 4e 43 53 65 72 76 65 72 41 20 50 61 74 68 49  UNCServerA PathI
6030: 73 55 4e 43 53 65 72 76 65 72 3b 0d 0a 61 6c 69  sUNCServer;..ali
6040: 61 73 20 50 61 74 68 49 73 55 4e 43 41 20 50 61  as PathIsUNCA Pa
6050: 74 68 49 73 55 4e 43 3b 0d 0a 61 6c 69 61 73 20  thIsUNC;..alias 
6060: 50 61 74 68 49 73 55 52 4c 41 20 50 61 74 68 49  PathIsURLA PathI
6070: 73 55 52 4c 3b 0d 0a 61 6c 69 61 73 20 50 61 74  sURL;..alias Pat
6080: 68 4d 61 6b 65 50 72 65 74 74 79 41 20 50 61 74  hMakePrettyA Pat
6090: 68 4d 61 6b 65 50 72 65 74 74 79 3b 0d 0a 61 6c  hMakePretty;..al
60a0: 69 61 73 20 50 61 74 68 4d 61 6b 65 53 79 73 74  ias PathMakeSyst
60b0: 65 6d 46 6f 6c 64 65 72 41 20 50 61 74 68 4d 61  emFolderA PathMa
60c0: 6b 65 53 79 73 74 65 6d 46 6f 6c 64 65 72 3b 0d  keSystemFolder;.
60d0: 0a 61 6c 69 61 73 20 50 61 74 68 4d 61 74 63 68  .alias PathMatch
60e0: 53 70 65 63 41 20 50 61 74 68 4d 61 74 63 68 53  SpecA PathMatchS
60f0: 70 65 63 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68  pec;..alias Path
6100: 50 61 72 73 65 49 63 6f 6e 4c 6f 63 61 74 69 6f  ParseIconLocatio
6110: 6e 41 20 50 61 74 68 50 61 72 73 65 49 63 6f 6e  nA PathParseIcon
6120: 4c 6f 63 61 74 69 6f 6e 3b 0d 0a 61 6c 69 61 73  Location;..alias
6130: 20 50 61 74 68 51 75 6f 74 65 53 70 61 63 65 73   PathQuoteSpaces
6140: 41 20 50 61 74 68 51 75 6f 74 65 53 70 61 63 65  A PathQuoteSpace
6150: 73 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 52 65  s;..alias PathRe
6160: 6c 61 74 69 76 65 50 61 74 68 54 6f 41 20 50 61  lativePathToA Pa
6170: 74 68 52 65 6c 61 74 69 76 65 50 61 74 68 54 6f  thRelativePathTo
6180: 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68 52 65 6d  ;..alias PathRem
6190: 6f 76 65 41 72 67 73 41 20 50 61 74 68 52 65 6d  oveArgsA PathRem
61a0: 6f 76 65 41 72 67 73 3b 0d 0a 61 6c 69 61 73 20  oveArgs;..alias 
61b0: 50 61 74 68 52 65 6d 6f 76 65 42 61 63 6b 73 6c  PathRemoveBacksl
61c0: 61 73 68 41 20 50 61 74 68 52 65 6d 6f 76 65 42  ashA PathRemoveB
61d0: 61 63 6b 73 6c 61 73 68 3b 0d 0a 61 6c 69 61 73  ackslash;..alias
61e0: 20 50 61 74 68 52 65 6d 6f 76 65 42 6c 61 6e 6b   PathRemoveBlank
61f0: 73 41 20 50 61 74 68 52 65 6d 6f 76 65 42 6c 61  sA PathRemoveBla
6200: 6e 6b 73 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68  nks;..alias Path
6210: 52 65 6d 6f 76 65 45 78 74 65 6e 73 69 6f 6e 41  RemoveExtensionA
6220: 20 50 61 74 68 52 65 6d 6f 76 65 45 78 74 65 6e   PathRemoveExten
6230: 73 69 6f 6e 3b 0d 0a 61 6c 69 61 73 20 50 61 74  sion;..alias Pat
6240: 68 52 65 6d 6f 76 65 46 69 6c 65 53 70 65 63 41  hRemoveFileSpecA
6250: 20 50 61 74 68 52 65 6d 6f 76 65 46 69 6c 65 53   PathRemoveFileS
6260: 70 65 63 3b 0d 0a 61 6c 69 61 73 20 50 61 74 68  pec;..alias Path
6270: 52 65 6e 61 6d 65 45 78 74 65 6e 73 69 6f 6e 41  RenameExtensionA
6280: 20 50 61 74 68 52 65 6e 61 6d 65 45 78 74 65 6e   PathRenameExten
6290: 73 69 6f 6e 3b 0d 0a 61 6c 69 61 73 20 50 61 74  sion;..alias Pat
62a0: 68 53 65 61 72 63 68 41 6e 64 51 75 61 6c 69 66  hSearchAndQualif
62b0: 79 41 20 50 61 74 68 53 65 61 72 63 68 41 6e 64  yA PathSearchAnd
62c0: 51 75 61 6c 69 66 79 3b 0d 0a 61 6c 69 61 73 20  Qualify;..alias 
62d0: 50 61 74 68 53 65 74 44 6c 67 49 74 65 6d 50 61  PathSetDlgItemPa
62e0: 74 68 41 20 50 61 74 68 53 65 74 44 6c 67 49 74  thA PathSetDlgIt
62f0: 65 6d 50 61 74 68 3b 0d 0a 61 6c 69 61 73 20 50  emPath;..alias P
6300: 61 74 68 53 6b 69 70 52 6f 6f 74 41 20 50 61 74  athSkipRootA Pat
6310: 68 53 6b 69 70 52 6f 6f 74 3b 0d 0a 61 6c 69 61  hSkipRoot;..alia
6320: 73 20 50 61 74 68 53 74 72 69 70 50 61 74 68 41  s PathStripPathA
6330: 20 50 61 74 68 53 74 72 69 70 50 61 74 68 3b 0d   PathStripPath;.
6340: 0a 61 6c 69 61 73 20 50 61 74 68 53 74 72 69 70  .alias PathStrip
6350: 54 6f 52 6f 6f 74 41 20 50 61 74 68 53 74 72 69  ToRootA PathStri
6360: 70 54 6f 52 6f 6f 74 3b 0d 0a 61 6c 69 61 73 20  pToRoot;..alias 
6370: 50 61 74 68 55 6e 64 65 63 6f 72 61 74 65 41 20  PathUndecorateA 
6380: 50 61 74 68 55 6e 64 65 63 6f 72 61 74 65 3b 0d  PathUndecorate;.
6390: 0a 61 6c 69 61 73 20 50 61 74 68 55 6e 45 78 70  .alias PathUnExp
63a0: 61 6e 64 45 6e 76 53 74 72 69 6e 67 73 41 20 50  andEnvStringsA P
63b0: 61 74 68 55 6e 45 78 70 61 6e 64 45 6e 76 53 74  athUnExpandEnvSt
63c0: 72 69 6e 67 73 3b 0d 0a 61 6c 69 61 73 20 50 61  rings;..alias Pa
63d0: 74 68 55 6e 6d 61 6b 65 53 79 73 74 65 6d 46 6f  thUnmakeSystemFo
63e0: 6c 64 65 72 41 20 50 61 74 68 55 6e 6d 61 6b 65  lderA PathUnmake
63f0: 53 79 73 74 65 6d 46 6f 6c 64 65 72 3b 0d 0a 61  SystemFolder;..a
6400: 6c 69 61 73 20 50 61 74 68 55 6e 71 75 6f 74 65  lias PathUnquote
6410: 53 70 61 63 65 73 41 20 50 61 74 68 55 6e 71 75  SpacesA PathUnqu
6420: 6f 74 65 53 70 61 63 65 73 3b 0d 0a 61 6c 69 61  oteSpaces;..alia
6430: 73 20 53 48 43 72 65 61 74 65 53 74 72 65 61 6d  s SHCreateStream
6440: 4f 6e 46 69 6c 65 41 20 53 48 43 72 65 61 74 65  OnFileA SHCreate
6450: 53 74 72 65 61 6d 4f 6e 46 69 6c 65 3b 0d 0a 61  StreamOnFile;..a
6460: 6c 69 61 73 20 53 48 4f 70 65 6e 52 65 67 53 74  lias SHOpenRegSt
6470: 72 65 61 6d 41 20 53 48 4f 70 65 6e 52 65 67 53  reamA SHOpenRegS
6480: 74 72 65 61 6d 3b 0d 0a 61 6c 69 61 73 20 53 48  tream;..alias SH
6490: 4f 70 65 6e 52 65 67 53 74 72 65 61 6d 32 41 20  OpenRegStream2A 
64a0: 53 48 4f 70 65 6e 52 65 67 53 74 72 65 61 6d 32  SHOpenRegStream2
64b0: 3b 0d 0a 61 6c 69 61 73 20 53 48 43 6f 70 79 4b  ;..alias SHCopyK
64c0: 65 79 41 20 53 48 43 6f 70 79 4b 65 79 3b 0d 0a  eyA SHCopyKey;..
64d0: 61 6c 69 61 73 20 53 48 44 65 6c 65 74 65 45 6d  alias SHDeleteEm
64e0: 70 74 79 4b 65 79 41 20 53 48 44 65 6c 65 74 65  ptyKeyA SHDelete
64f0: 45 6d 70 74 79 4b 65 79 3b 0d 0a 61 6c 69 61 73  EmptyKey;..alias
6500: 20 53 48 44 65 6c 65 74 65 4b 65 79 41 20 53 48   SHDeleteKeyA SH
6510: 44 65 6c 65 74 65 4b 65 79 3b 0d 0a 61 6c 69 61  DeleteKey;..alia
6520: 73 20 53 48 45 6e 75 6d 4b 65 79 45 78 41 20 53  s SHEnumKeyExA S
6530: 48 45 6e 75 6d 4b 65 79 45 78 3b 0d 0a 61 6c 69  HEnumKeyEx;..ali
6540: 61 73 20 53 48 51 75 65 72 79 49 6e 66 6f 4b 65  as SHQueryInfoKe
6550: 79 41 20 53 48 51 75 65 72 79 49 6e 66 6f 4b 65  yA SHQueryInfoKe
6560: 79 3b 0d 0a 61 6c 69 61 73 20 53 48 51 75 65 72  y;..alias SHQuer
6570: 79 56 61 6c 75 65 45 78 41 20 53 48 51 75 65 72  yValueExA SHQuer
6580: 79 56 61 6c 75 65 45 78 3b 0d 0a 61 6c 69 61 73  yValueEx;..alias
6590: 20 53 48 45 6e 75 6d 56 61 6c 75 65 41 20 53 48   SHEnumValueA SH
65a0: 45 6e 75 6d 56 61 6c 75 65 3b 0d 0a 61 6c 69 61  EnumValue;..alia
65b0: 73 20 53 48 47 65 74 56 61 6c 75 65 41 20 53 48  s SHGetValueA SH
65c0: 47 65 74 56 61 6c 75 65 3b 0d 0a 61 6c 69 61 73  GetValue;..alias
65d0: 20 53 48 53 65 74 56 61 6c 75 65 41 20 53 48 53   SHSetValueA SHS
65e0: 65 74 56 61 6c 75 65 3b 0d 0a 61 6c 69 61 73 20  etValue;..alias 
65f0: 53 48 44 65 6c 65 74 65 56 61 6c 75 65 41 20 53  SHDeleteValueA S
6600: 48 44 65 6c 65 74 65 56 61 6c 75 65 3b 0d 0a 61  HDeleteValue;..a
6610: 6c 69 61 73 20 41 73 73 6f 63 51 75 65 72 79 4b  lias AssocQueryK
6620: 65 79 41 20 41 73 73 6f 63 51 75 65 72 79 4b 65  eyA AssocQueryKe
6630: 79 3b 0d 0a 61 6c 69 61 73 20 41 73 73 6f 63 51  y;..alias AssocQ
6640: 75 65 72 79 53 74 72 69 6e 67 42 79 4b 65 79 41  ueryStringByKeyA
6650: 20 41 73 73 6f 63 51 75 65 72 79 53 74 72 69 6e   AssocQueryStrin
6660: 67 42 79 4b 65 79 3b 0d 0a 61 6c 69 61 73 20 41  gByKey;..alias A
6670: 73 73 6f 63 51 75 65 72 79 53 74 72 69 6e 67 41  ssocQueryStringA
6680: 20 41 73 73 6f 63 51 75 65 72 79 53 74 72 69 6e   AssocQueryStrin
6690: 67 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 41 70 70  g;..alias UrlApp
66a0: 6c 79 53 63 68 65 6d 65 41 20 55 72 6c 41 70 70  lySchemeA UrlApp
66b0: 6c 79 53 63 68 65 6d 65 3b 0d 0a 61 6c 69 61 73  lyScheme;..alias
66c0: 20 55 72 6c 43 61 6e 6f 6e 69 63 61 6c 69 7a 65   UrlCanonicalize
66d0: 41 20 55 72 6c 43 61 6e 6f 6e 69 63 61 6c 69 7a  A UrlCanonicaliz
66e0: 65 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 43 6f 6d  e;..alias UrlCom
66f0: 62 69 6e 65 41 20 55 72 6c 43 6f 6d 62 69 6e 65  bineA UrlCombine
6700: 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 43 6f 6d 70  ;..alias UrlComp
6710: 61 72 65 41 20 55 72 6c 43 6f 6d 70 61 72 65 3b  areA UrlCompare;
6720: 0d 0a 61 6c 69 61 73 20 55 72 6c 43 72 65 61 74  ..alias UrlCreat
6730: 65 46 72 6f 6d 50 61 74 68 41 20 55 72 6c 43 72  eFromPathA UrlCr
6740: 65 61 74 65 46 72 6f 6d 50 61 74 68 3b 0d 0a 61  eateFromPath;..a
6750: 6c 69 61 73 20 55 72 6c 45 73 63 61 70 65 41 20  lias UrlEscapeA 
6760: 55 72 6c 45 73 63 61 70 65 3b 0d 0a 61 6c 69 61  UrlEscape;..alia
6770: 73 20 55 72 6c 47 65 74 4c 6f 63 61 74 69 6f 6e  s UrlGetLocation
6780: 41 20 55 72 6c 47 65 74 4c 6f 63 61 74 69 6f 6e  A UrlGetLocation
6790: 3b 0d 0a 61 6c 69 61 73 20 55 72 6c 47 65 74 50  ;..alias UrlGetP
67a0: 61 72 74 41 20 55 72 6c 47 65 74 50 61 72 74 3b  artA UrlGetPart;
67b0: 0d 0a 61 6c 69 61 73 20 55 72 6c 48 61 73 68 41  ..alias UrlHashA
67c0: 20 55 72 6c 48 61 73 68 3b 0d 0a 61 6c 69 61 73   UrlHash;..alias
67d0: 20 55 72 6c 49 73 41 20 55 72 6c 49 73 3b 0d 0a   UrlIsA UrlIs;..
67e0: 61 6c 69 61 73 20 55 72 6c 49 73 4e 6f 48 69 73  alias UrlIsNoHis
67f0: 74 6f 72 79 41 20 55 72 6c 49 73 4e 6f 48 69 73  toryA UrlIsNoHis
6800: 74 6f 72 79 3b 0d 0a 61 6c 69 61 73 20 55 72 6c  tory;..alias Url
6810: 49 73 4f 70 61 71 75 65 41 20 55 72 6c 49 73 4f  IsOpaqueA UrlIsO
6820: 70 61 71 75 65 3b 0d 0a 61 6c 69 61 73 20 55 72  paque;..alias Ur
6830: 6c 55 6e 65 73 63 61 70 65 41 20 55 72 6c 55 6e  lUnescapeA UrlUn
6840: 65 73 63 61 70 65 3b 0d 0a 61 6c 69 61 73 20 55  escape;..alias U
6850: 72 6c 55 6e 65 73 63 61 70 65 49 6e 50 6c 61 63  rlUnescapeInPlac
6860: 65 41 20 55 72 6c 55 6e 65 73 63 61 70 65 49 6e  eA UrlUnescapeIn
6870: 50 6c 61 63 65 3b 0d 0a 61 6c 69 61 73 20 53 48  Place;..alias SH
6880: 52 65 67 43 72 65 61 74 65 55 53 4b 65 79 41 20  RegCreateUSKeyA 
6890: 53 48 52 65 67 43 72 65 61 74 65 55 53 4b 65 79  SHRegCreateUSKey
68a0: 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65 67 44 65  ;..alias SHRegDe
68b0: 6c 65 74 65 45 6d 70 74 79 55 53 4b 65 79 41 20  leteEmptyUSKeyA 
68c0: 53 48 52 65 67 44 65 6c 65 74 65 45 6d 70 74 79  SHRegDeleteEmpty
68d0: 55 53 4b 65 79 3b 0d 0a 61 6c 69 61 73 20 53 48  USKey;..alias SH
68e0: 52 65 67 44 65 6c 65 74 65 55 53 56 61 6c 75 65  RegDeleteUSValue
68f0: 41 20 53 48 52 65 67 44 65 6c 65 74 65 55 53 56  A SHRegDeleteUSV
6900: 61 6c 75 65 3b 0d 0a 61 6c 69 61 73 20 53 48 52  alue;..alias SHR
6910: 65 67 45 6e 75 6d 55 53 4b 65 79 41 20 53 48 52  egEnumUSKeyA SHR
6920: 65 67 45 6e 75 6d 55 53 4b 65 79 3b 0d 0a 61 6c  egEnumUSKey;..al
6930: 69 61 73 20 53 48 52 65 67 45 6e 75 6d 55 53 56  ias SHRegEnumUSV
6940: 61 6c 75 65 41 20 53 48 52 65 67 45 6e 75 6d 55  alueA SHRegEnumU
6950: 53 56 61 6c 75 65 3b 0d 0a 61 6c 69 61 73 20 53  SValue;..alias S
6960: 48 52 65 67 47 65 74 42 6f 6f 6c 55 53 56 61 6c  HRegGetBoolUSVal
6970: 75 65 41 20 53 48 52 65 67 47 65 74 42 6f 6f 6c  ueA SHRegGetBool
6980: 55 53 56 61 6c 75 65 3b 0d 0a 61 6c 69 61 73 20  USValue;..alias 
6990: 53 48 52 65 67 47 65 74 50 61 74 68 41 20 53 48  SHRegGetPathA SH
69a0: 52 65 67 47 65 74 50 61 74 68 3b 0d 0a 61 6c 69  RegGetPath;..ali
69b0: 61 73 20 53 48 52 65 67 47 65 74 55 53 56 61 6c  as SHRegGetUSVal
69c0: 75 65 41 20 53 48 52 65 67 47 65 74 55 53 56 61  ueA SHRegGetUSVa
69d0: 6c 75 65 3b 0d 0a 61 6c 69 61 73 20 53 48 52 65  lue;..alias SHRe
69e0: 67 4f 70 65 6e 55 53 4b 65 79 41 20 53 48 52 65  gOpenUSKeyA SHRe
69f0: 67 4f 70 65 6e 55 53 4b 65 79 3b 0d 0a 61 6c 69  gOpenUSKey;..ali
6a00: 61 73 20 53 48 52 65 67 51 75 65 72 79 49 6e 66  as SHRegQueryInf
6a10: 6f 55 53 4b 65 79 41 20 53 48 52 65 67 51 75 65  oUSKeyA SHRegQue
6a20: 72 79 49 6e 66 6f 55 53 4b 65 79 3b 0d 0a 61 6c  ryInfoUSKey;..al
6a30: 69 61 73 20 53 48 52 65 67 51 75 65 72 79 55 53  ias SHRegQueryUS
6a40: 56 61 6c 75 65 41 20 53 48 52 65 67 51 75 65 72  ValueA SHRegQuer
6a50: 79 55 53 56 61 6c 75 65 3b 0d 0a 61 6c 69 61 73  yUSValue;..alias
6a60: 20 53 48 52 65 67 53 65 74 50 61 74 68 41 20 53   SHRegSetPathA S
6a70: 48 52 65 67 53 65 74 50 61 74 68 3b 0d 0a 61 6c  HRegSetPath;..al
6a80: 69 61 73 20 53 48 52 65 67 53 65 74 55 53 56 61  ias SHRegSetUSVa
6a90: 6c 75 65 41 20 53 48 52 65 67 53 65 74 55 53 56  lueA SHRegSetUSV
6aa0: 61 6c 75 65 3b 0d 0a 61 6c 69 61 73 20 53 48 52  alue;..alias SHR
6ab0: 65 67 57 72 69 74 65 55 53 56 61 6c 75 65 41 20  egWriteUSValueA 
6ac0: 53 48 52 65 67 57 72 69 74 65 55 53 56 61 6c 75  SHRegWriteUSValu
6ad0: 65 3b 0d 0a 2f 2f 61 6c 69 61 73 20 77 6e 73 70  e;..//alias wnsp
6ae0: 72 69 6e 74 66 41 20 77 6e 73 70 72 69 6e 74 66  rintfA wnsprintf
6af0: 3b 0d 0a 2f 2f 61 6c 69 61 73 20 77 76 6e 73 70  ;..//alias wvnsp
6b00: 72 69 6e 74 66 41 20 77 76 6e 73 70 72 69 6e 74  rintfA wvnsprint
6b10: 66 3b 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 53  f;..}....alias S
6b20: 74 72 54 6f 49 6e 74 20 53 74 72 54 6f 4c 6f 6e  trToInt StrToLon
6b30: 67 3b 0d 0a                                      g;..