Hex Artifact Content

Not logged in

Artifact f0c30efc42e2bee306e52764adfff56cf1ec9476:


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 77 69 6e 69 6e             winin
0070: 65 74 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  et.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20     *..*         
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20           *..*   
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61           Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57  ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20  indows headers  
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  ..*             
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 79                by
01e0: 20 53 74 65 77 61 72 74 20 47 6f 72 64 6f 6e 20   Stewart Gordon 
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20            *..*  
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0250: 20 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20       *..*       
0260: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0270: 50 6c 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c  Placed into publ
0280: 69 63 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20  ic domain       
0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
02a0: 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  *..\************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02e0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2f 0d 0a 6d 6f  ***********/..mo
02f0: 64 75 6c 65 20 77 69 6e 33 32 2e 77 69 6e 69 6e  dule win32.winin
0300: 65 74 3b 0d 0a 70 72 61 67 6d 61 28 6c 69 62 2c  et;..pragma(lib,
0310: 20 22 77 69 6e 69 6e 65 74 22 29 3b 0d 0a 0d 0a   "wininet");....
0320: 2f 2f 20 46 49 58 4d 45 3a 20 63 68 65 63 6b 20  // FIXME: check 
0330: 74 79 70 65 73 20 61 6e 64 20 67 72 6f 75 70 69  types and groupi
0340: 6e 67 20 6f 66 20 63 6f 6e 73 74 61 6e 74 73 0d  ng of constants.
0350: 0a 0d 0a 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e  ...import win32.
0360: 77 69 6e 64 6f 77 73 3b 0d 0a 0d 0a 65 6e 75 6d  windows;....enum
0370: 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 49 4e   {...INTERNET_IN
0380: 56 41 4c 49 44 5f 50 4f 52 54 5f 4e 55 4d 42 45  VALID_PORT_NUMBE
0390: 52 20 3d 20 20 20 20 30 2c 0d 0a 09 49 4e 54 45  R =    0,...INTE
03a0: 52 4e 45 54 5f 44 45 46 41 55 4c 54 5f 46 54 50  RNET_DEFAULT_FTP
03b0: 5f 50 4f 52 54 20 20 20 20 3d 20 20 20 32 31 2c  _PORT    =   21,
03c0: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 44 45 46 41  ...INTERNET_DEFA
03d0: 55 4c 54 5f 47 4f 50 48 45 52 5f 50 4f 52 54 20  ULT_GOPHER_PORT 
03e0: 3d 20 20 20 37 30 2c 0d 0a 09 49 4e 54 45 52 4e  =   70,...INTERN
03f0: 45 54 5f 44 45 46 41 55 4c 54 5f 48 54 54 50 5f  ET_DEFAULT_HTTP_
0400: 50 4f 52 54 20 20 20 3d 20 20 20 38 30 2c 0d 0a  PORT   =   80,..
0410: 09 49 4e 54 45 52 4e 45 54 5f 44 45 46 41 55 4c  .INTERNET_DEFAUL
0420: 54 5f 48 54 54 50 53 5f 50 4f 52 54 20 20 3d 20  T_HTTPS_PORT  = 
0430: 20 34 34 33 2c 0d 0a 09 49 4e 54 45 52 4e 45 54   443,...INTERNET
0440: 5f 44 45 46 41 55 4c 54 5f 53 4f 43 4b 53 5f 50  _DEFAULT_SOCKS_P
0450: 4f 52 54 20 20 3d 20 31 30 38 30 0d 0a 7d 0d 0a  ORT  = 1080..}..
0460: 0d 0a 63 6f 6e 73 74 20 73 69 7a 65 5f 74 0d 0a  ..const size_t..
0470: 09 4d 41 58 5f 43 41 43 48 45 5f 45 4e 54 52 59  .MAX_CACHE_ENTRY
0480: 5f 49 4e 46 4f 5f 53 49 5a 45 20 20 20 20 20 20  _INFO_SIZE      
0490: 20 3d 20 20 34 30 39 36 2c 0d 0a 09 49 4e 54 45   =  4096,...INTE
04a0: 52 4e 45 54 5f 4d 41 58 5f 48 4f 53 54 5f 4e 41  RNET_MAX_HOST_NA
04b0: 4d 45 5f 4c 45 4e 47 54 48 20 20 20 3d 20 20 20  ME_LENGTH   =   
04c0: 32 35 36 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  256,...INTERNET_
04d0: 4d 41 58 5f 55 53 45 52 5f 4e 41 4d 45 5f 4c 45  MAX_USER_NAME_LE
04e0: 4e 47 54 48 20 20 20 3d 20 20 20 31 32 38 2c 0d  NGTH   =   128,.
04f0: 0a 09 49 4e 54 45 52 4e 45 54 5f 4d 41 58 5f 50  ..INTERNET_MAX_P
0500: 41 53 53 57 4f 52 44 5f 4c 45 4e 47 54 48 20 20  ASSWORD_LENGTH  
0510: 20 20 3d 20 20 20 31 32 38 2c 0d 0a 09 49 4e 54    =   128,...INT
0520: 45 52 4e 45 54 5f 4d 41 58 5f 50 4f 52 54 5f 4e  ERNET_MAX_PORT_N
0530: 55 4d 42 45 52 5f 4c 45 4e 47 54 48 20 3d 20 20  UMBER_LENGTH =  
0540: 20 20 20 35 2c 0d 0a 09 49 4e 54 45 52 4e 45 54     5,...INTERNET
0550: 5f 4d 41 58 5f 50 4f 52 54 5f 4e 55 4d 42 45 52  _MAX_PORT_NUMBER
0560: 5f 56 41 4c 55 45 20 20 3d 20 36 35 35 33 35 2c  _VALUE  = 65535,
0570: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4d 41 58 5f  ...INTERNET_MAX_
0580: 50 41 54 48 5f 4c 45 4e 47 54 48 20 20 20 20 20  PATH_LENGTH     
0590: 20 20 20 3d 20 20 32 30 34 38 2c 0d 0a 09 49 4e     =  2048,...IN
05a0: 54 45 52 4e 45 54 5f 4d 41 58 5f 53 43 48 45 4d  TERNET_MAX_SCHEM
05b0: 45 5f 4c 45 4e 47 54 48 20 20 20 20 20 20 3d 20  E_LENGTH      = 
05c0: 20 20 20 33 32 2c 0d 0a 09 49 4e 54 45 52 4e 45     32,...INTERNE
05d0: 54 5f 4d 41 58 5f 55 52 4c 5f 4c 45 4e 47 54 48  T_MAX_URL_LENGTH
05e0: 20 20 20 20 20 20 20 20 20 3d 20 49 4e 54 45 52           = INTER
05f0: 4e 45 54 5f 4d 41 58 5f 53 43 48 45 4d 45 5f 4c  NET_MAX_SCHEME_L
0600: 45 4e 47 54 48 0d 0a 09 20 20 20 20 20 20 20 20  ENGTH...        
0610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0620: 20 20 20 20 20 20 20 20 20 20 2b 20 22 3a 2f 2f            + "://
0630: 22 2e 6c 65 6e 67 74 68 0d 0a 09 20 20 20 20 20  ".length...     
0640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0650: 20 20 20 20 20 20 20 20 20 20 20 20 20 2b 20 49               + I
0660: 4e 54 45 52 4e 45 54 5f 4d 41 58 5f 50 41 54 48  NTERNET_MAX_PATH
0670: 5f 4c 45 4e 47 54 48 3b 0d 0a 0d 0a 65 6e 75 6d  _LENGTH;....enum
0680: 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 49 4e 54   : DWORD {...INT
0690: 45 52 4e 45 54 5f 4b 45 45 50 5f 41 4c 49 56 45  ERNET_KEEP_ALIVE
06a0: 5f 55 4e 4b 4e 4f 57 4e 20 20 3d 20 44 57 4f 52  _UNKNOWN  = DWOR
06b0: 44 2e 6d 61 78 2c 0d 0a 09 49 4e 54 45 52 4e 45  D.max,...INTERNE
06c0: 54 5f 4b 45 45 50 5f 41 4c 49 56 45 5f 44 49 53  T_KEEP_ALIVE_DIS
06d0: 41 42 4c 45 44 20 3d 20 30 2c 0d 0a 09 49 4e 54  ABLED = 0,...INT
06e0: 45 52 4e 45 54 5f 4b 45 45 50 5f 41 4c 49 56 45  ERNET_KEEP_ALIVE
06f0: 5f 45 4e 41 42 4c 45 44 0d 0a 7d 0d 0a 0d 0a 65  _ENABLED..}....e
0700: 6e 75 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54  num {...INTERNET
0710: 5f 52 45 51 46 4c 41 47 5f 46 52 4f 4d 5f 43 41  _REQFLAG_FROM_CA
0720: 43 48 45 20 3d 20 31 2c 0d 0a 09 49 4e 54 45 52  CHE = 1,...INTER
0730: 4e 45 54 5f 52 45 51 46 4c 41 47 5f 41 53 59 4e  NET_REQFLAG_ASYN
0740: 43 20 20 20 20 20 20 3d 20 32 0d 0a 7d 0d 0a 0d  C      = 2..}...
0750: 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0d 0a 09 49  .const DWORD...I
0760: 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f 52 45 4c  NTERNET_FLAG_REL
0770: 4f 41 44 20 20 20 20 20 20 20 20 20 20 20 20 20  OAD             
0780: 20 20 20 20 20 20 3d 20 30 78 38 30 30 30 30 30        = 0x800000
0790: 30 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 46  00,...INTERNET_F
07a0: 4c 41 47 5f 52 41 57 5f 44 41 54 41 20 20 20 20  LAG_RAW_DATA    
07b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
07c0: 78 34 30 30 30 30 30 30 30 2c 0d 0a 09 49 4e 54  x40000000,...INT
07d0: 45 52 4e 45 54 5f 46 4c 41 47 5f 45 58 49 53 54  ERNET_FLAG_EXIST
07e0: 49 4e 47 5f 43 4f 4e 4e 45 43 54 20 20 20 20 20  ING_CONNECT     
07f0: 20 20 20 20 3d 20 30 78 32 30 30 30 30 30 30 30      = 0x20000000
0800: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41  ,...INTERNET_FLA
0810: 47 5f 41 53 59 4e 43 20 20 20 20 20 20 20 20 20  G_ASYNC         
0820: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 31             = 0x1
0830: 30 30 30 30 30 30 30 2c 0d 0a 09 49 4e 54 45 52  0000000,...INTER
0840: 4e 45 54 5f 46 4c 41 47 5f 50 41 53 53 49 56 45  NET_FLAG_PASSIVE
0850: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0860: 20 20 3d 20 30 78 30 38 30 30 30 30 30 30 2c 0d    = 0x08000000,.
0870: 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f  ..INTERNET_FLAG_
0880: 4e 4f 5f 43 41 43 48 45 5f 57 52 49 54 45 20 20  NO_CACHE_WRITE  
0890: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 34 30           = 0x040
08a0: 30 30 30 30 30 2c 0d 0a 09 49 4e 54 45 52 4e 45  00000,...INTERNE
08b0: 54 5f 46 4c 41 47 5f 44 4f 4e 54 5f 43 41 43 48  T_FLAG_DONT_CACH
08c0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  E               
08d0: 3d 20 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f  = INTERNET_FLAG_
08e0: 4e 4f 5f 43 41 43 48 45 5f 57 52 49 54 45 2c 0d  NO_CACHE_WRITE,.
08f0: 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f  ..INTERNET_FLAG_
0900: 4d 41 4b 45 5f 50 45 52 53 49 53 54 45 4e 54 20  MAKE_PERSISTENT 
0910: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 32 30           = 0x020
0920: 30 30 30 30 30 2c 0d 0a 09 49 4e 54 45 52 4e 45  00000,...INTERNE
0930: 54 5f 46 4c 41 47 5f 4f 46 46 4c 49 4e 45 20 20  T_FLAG_OFFLINE  
0940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0950: 3d 20 30 78 30 31 30 30 30 30 30 30 2c 0d 0a 09  = 0x01000000,...
0960: 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f 53 45  INTERNET_FLAG_SE
0970: 43 55 52 45 20 20 20 20 20 20 20 20 20 20 20 20  CURE            
0980: 20 20 20 20 20 20 20 3d 20 30 78 30 30 38 30 30         = 0x00800
0990: 30 30 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  000,...INTERNET_
09a0: 46 4c 41 47 5f 4b 45 45 50 5f 43 4f 4e 4e 45 43  FLAG_KEEP_CONNEC
09b0: 54 49 4f 4e 20 20 20 20 20 20 20 20 20 20 3d 20  TION          = 
09c0: 30 78 30 30 34 30 30 30 30 30 2c 0d 0a 09 49 4e  0x00400000,...IN
09d0: 54 45 52 4e 45 54 5f 46 4c 41 47 5f 4e 4f 5f 41  TERNET_FLAG_NO_A
09e0: 55 54 4f 5f 52 45 44 49 52 45 43 54 20 20 20 20  UTO_REDIRECT    
09f0: 20 20 20 20 20 3d 20 30 78 30 30 32 30 30 30 30       = 0x0020000
0a00: 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c  0,...INTERNET_FL
0a10: 41 47 5f 52 45 41 44 5f 50 52 45 46 45 54 43 48  AG_READ_PREFETCH
0a20: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
0a30: 30 30 31 30 30 30 30 30 2c 0d 0a 09 49 4e 54 45  00100000,...INTE
0a40: 52 4e 45 54 5f 46 4c 41 47 5f 4e 4f 5f 43 4f 4f  RNET_FLAG_NO_COO
0a50: 4b 49 45 53 20 20 20 20 20 20 20 20 20 20 20 20  KIES            
0a60: 20 20 20 3d 20 30 78 30 30 30 38 30 30 30 30 2c     = 0x00080000,
0a70: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47  ...INTERNET_FLAG
0a80: 5f 4e 4f 5f 41 55 54 48 20 20 20 20 20 20 20 20  _NO_AUTH        
0a90: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0aa0: 30 34 30 30 30 30 2c 0d 0a 09 49 4e 54 45 52 4e  040000,...INTERN
0ab0: 45 54 5f 46 4c 41 47 5f 49 47 4e 4f 52 45 5f 52  ET_FLAG_IGNORE_R
0ac0: 45 44 49 52 45 43 54 5f 54 4f 5f 48 54 54 50 20  EDIRECT_TO_HTTP 
0ad0: 20 3d 20 30 78 30 30 30 30 38 30 30 30 2c 0d 0a   = 0x00008000,..
0ae0: 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f 49  .INTERNET_FLAG_I
0af0: 47 4e 4f 52 45 5f 52 45 44 49 52 45 43 54 5f 54  GNORE_REDIRECT_T
0b00: 4f 5f 48 54 54 50 53 20 3d 20 30 78 30 30 30 30  O_HTTPS = 0x0000
0b10: 34 30 30 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  4000,...INTERNET
0b20: 5f 46 4c 41 47 5f 49 47 4e 4f 52 45 5f 43 45 52  _FLAG_IGNORE_CER
0b30: 54 5f 44 41 54 45 5f 49 4e 56 41 4c 49 44 20 3d  T_DATE_INVALID =
0b40: 20 30 78 30 30 30 30 32 30 30 30 2c 0d 0a 09 49   0x00002000,...I
0b50: 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f 49 47 4e  NTERNET_FLAG_IGN
0b60: 4f 52 45 5f 43 45 52 54 5f 43 4e 5f 49 4e 56 41  ORE_CERT_CN_INVA
0b70: 4c 49 44 20 20 20 3d 20 30 78 30 30 30 30 31 30  LID   = 0x000010
0b80: 30 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 46  00,...INTERNET_F
0b90: 4c 41 47 5f 52 45 53 59 4e 43 48 52 4f 4e 49 5a  LAG_RESYNCHRONIZ
0ba0: 45 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30  E            = 0
0bb0: 78 30 30 30 30 30 38 30 30 2c 0d 0a 09 49 4e 54  x00000800,...INT
0bc0: 45 52 4e 45 54 5f 46 4c 41 47 5f 48 59 50 45 52  ERNET_FLAG_HYPER
0bd0: 4c 49 4e 4b 20 20 20 20 20 20 20 20 20 20 20 20  LINK            
0be0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 34 30 30      = 0x00000400
0bf0: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41  ,...INTERNET_FLA
0c00: 47 5f 4e 4f 5f 55 49 20 20 20 20 20 20 20 20 20  G_NO_UI         
0c10: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
0c20: 30 30 30 30 32 30 30 2c 0d 0a 09 49 4e 54 45 52  0000200,...INTER
0c30: 4e 45 54 5f 46 4c 41 47 5f 50 52 41 47 4d 41 5f  NET_FLAG_PRAGMA_
0c40: 4e 4f 43 41 43 48 45 20 20 20 20 20 20 20 20 20  NOCACHE         
0c50: 20 20 3d 20 30 78 30 30 30 30 30 31 30 30 2c 0d    = 0x00000100,.
0c60: 0a 09 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f  ..INTERNET_FLAG_
0c70: 4d 55 53 54 5f 43 41 43 48 45 5f 52 45 51 55 45  MUST_CACHE_REQUE
0c80: 53 54 20 20 20 20 20 20 20 3d 20 30 78 30 30 30  ST       = 0x000
0c90: 30 30 30 31 30 2c 0d 0a 09 49 4e 54 45 52 4e 45  00010,...INTERNE
0ca0: 54 5f 46 4c 41 47 5f 54 52 41 4e 53 46 45 52 5f  T_FLAG_TRANSFER_
0cb0: 41 53 43 49 49 20 20 20 20 20 20 20 20 20 20 20  ASCII           
0cc0: 3d 20 46 54 50 5f 54 52 41 4e 53 46 45 52 5f 54  = FTP_TRANSFER_T
0cd0: 59 50 45 5f 41 53 43 49 49 2c 0d 0a 09 49 4e 54  YPE_ASCII,...INT
0ce0: 45 52 4e 45 54 5f 46 4c 41 47 5f 54 52 41 4e 53  ERNET_FLAG_TRANS
0cf0: 46 45 52 5f 42 49 4e 41 52 59 20 20 20 20 20 20  FER_BINARY      
0d00: 20 20 20 20 3d 20 46 54 50 5f 54 52 41 4e 53 46      = FTP_TRANSF
0d10: 45 52 5f 54 59 50 45 5f 42 49 4e 41 52 59 2c 0d  ER_TYPE_BINARY,.
0d20: 0a 0d 0a 09 53 45 43 55 52 49 54 59 5f 49 4e 54  ....SECURITY_INT
0d30: 45 52 4e 45 54 5f 4d 41 53 4b 20 20 20 20 20 20  ERNET_MASK      
0d40: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30             = 0x0
0d50: 30 30 30 46 30 30 30 2c 0d 0a 09 53 45 43 55 52  000F000,...SECUR
0d60: 49 54 59 5f 53 45 54 5f 4d 41 53 4b 20 20 20 20  ITY_SET_MASK    
0d70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d80: 20 20 3d 20 53 45 43 55 52 49 54 59 5f 49 4e 54    = SECURITY_INT
0d90: 45 52 4e 45 54 5f 4d 41 53 4b 2c 0d 0a 0d 0a 09  ERNET_MASK,.....
0da0: 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 53 5f 4d  INTERNET_FLAGS_M
0db0: 41 53 4b 20 20 20 20 20 20 20 20 20 20 20 20 20  ASK             
0dc0: 20 20 20 20 20 20 20 3d 20 30 78 46 46 46 43 46         = 0xFFFCF
0dd0: 45 31 33 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  E13,...INTERNET_
0de0: 4f 50 54 49 4f 4e 53 5f 4d 41 53 4b 20 20 20 20  OPTIONS_MASK    
0df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
0e00: 7e 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 53 5f  ~INTERNET_FLAGS_
0e10: 4d 41 53 4b 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 49  MASK;....const I
0e20: 4e 54 45 52 4e 45 54 5f 4e 4f 5f 43 41 4c 4c 42  NTERNET_NO_CALLB
0e30: 41 43 4b 20 3d 20 30 3b 0d 0a 63 6f 6e 73 74 20  ACK = 0;..const 
0e40: 49 4e 54 45 52 4e 45 54 5f 52 46 43 31 31 32 33  INTERNET_RFC1123
0e50: 5f 46 4f 52 4d 41 54 20 3d 20 30 3b 0d 0a 63 6f  _FORMAT = 0;..co
0e60: 6e 73 74 20 73 69 7a 65 5f 74 20 49 4e 54 45 52  nst size_t INTER
0e70: 4e 45 54 5f 52 46 43 31 31 32 33 5f 42 55 46 53  NET_RFC1123_BUFS
0e80: 49 5a 45 20 3d 20 33 30 3b 0d 0a 0d 0a 63 6f 6e  IZE = 30;....con
0e90: 73 74 20 44 57 4f 52 44 0d 0a 09 49 43 55 5f 45  st DWORD...ICU_E
0ea0: 53 43 41 50 45 20 20 20 20 20 20 20 20 20 20 20  SCAPE           
0eb0: 20 20 3d 20 30 78 38 30 30 30 30 30 30 30 2c 0d    = 0x80000000,.
0ec0: 0a 09 49 43 55 5f 55 53 45 52 4e 41 4d 45 20 20  ..ICU_USERNAME  
0ed0: 20 20 20 20 20 20 20 20 20 3d 20 30 78 34 30 30           = 0x400
0ee0: 30 30 30 30 30 2c 0d 0a 09 49 43 55 5f 4e 4f 5f  00000,...ICU_NO_
0ef0: 45 4e 43 4f 44 45 20 20 20 20 20 20 20 20 20 20  ENCODE          
0f00: 3d 20 30 78 32 30 30 30 30 30 30 30 2c 0d 0a 09  = 0x20000000,...
0f10: 49 43 55 5f 44 45 43 4f 44 45 20 20 20 20 20 20  ICU_DECODE      
0f20: 20 20 20 20 20 20 20 3d 20 30 78 31 30 30 30 30         = 0x10000
0f30: 30 30 30 2c 0d 0a 09 49 43 55 5f 4e 4f 5f 4d 45  000,...ICU_NO_ME
0f40: 54 41 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  TA            = 
0f50: 30 78 30 38 30 30 30 30 30 30 2c 0d 0a 09 49 43  0x08000000,...IC
0f60: 55 5f 45 4e 43 4f 44 45 5f 53 50 41 43 45 53 5f  U_ENCODE_SPACES_
0f70: 4f 4e 4c 59 20 3d 20 30 78 30 34 30 30 30 30 30  ONLY = 0x0400000
0f80: 30 2c 0d 0a 09 49 43 55 5f 42 52 4f 57 53 45 52  0,...ICU_BROWSER
0f90: 5f 4d 4f 44 45 20 20 20 20 20 20 20 3d 20 30 78  _MODE       = 0x
0fa0: 30 32 30 30 30 30 30 30 3b 0d 0a 0d 0a 65 6e 75  02000000;....enu
0fb0: 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f  m {...INTERNET_O
0fc0: 50 45 4e 5f 54 59 50 45 5f 50 52 45 43 4f 4e 46  PEN_TYPE_PRECONF
0fd0: 49 47 20 3d 20 30 2c 0d 0a 09 49 4e 54 45 52 4e  IG = 0,...INTERN
0fe0: 45 54 5f 4f 50 45 4e 5f 54 59 50 45 5f 44 49 52  ET_OPEN_TYPE_DIR
0ff0: 45 43 54 20 20 20 20 3d 20 31 2c 0d 0a 09 49 4e  ECT    = 1,...IN
1000: 54 45 52 4e 45 54 5f 4f 50 45 4e 5f 54 59 50 45  TERNET_OPEN_TYPE
1010: 5f 50 52 4f 58 59 20 20 20 20 20 3d 20 33 2c 0d  _PROXY     = 3,.
1020: 0a 09 50 52 45 5f 43 4f 4e 46 49 47 5f 49 4e 54  ..PRE_CONFIG_INT
1030: 45 52 4e 45 54 5f 41 43 43 45 53 53 20 20 20 3d  ERNET_ACCESS   =
1040: 20 49 4e 54 45 52 4e 45 54 5f 4f 50 45 4e 5f 54   INTERNET_OPEN_T
1050: 59 50 45 5f 50 52 45 43 4f 4e 46 49 47 2c 0d 0a  YPE_PRECONFIG,..
1060: 09 4c 4f 43 41 4c 5f 49 4e 54 45 52 4e 45 54 5f  .LOCAL_INTERNET_
1070: 41 43 43 45 53 53 20 20 20 20 20 20 20 20 3d 20  ACCESS        = 
1080: 49 4e 54 45 52 4e 45 54 5f 4f 50 45 4e 5f 54 59  INTERNET_OPEN_TY
1090: 50 45 5f 44 49 52 45 43 54 2c 0d 0a 09 47 41 54  PE_DIRECT,...GAT
10a0: 45 57 41 59 5f 49 4e 54 45 52 4e 45 54 5f 41 43  EWAY_INTERNET_AC
10b0: 43 45 53 53 20 20 20 20 20 20 3d 20 32 2c 0d 0a  CESS      = 2,..
10c0: 09 43 45 52 4e 5f 50 52 4f 58 59 5f 49 4e 54 45  .CERN_PROXY_INTE
10d0: 52 4e 45 54 5f 41 43 43 45 53 53 20 20 20 3d 20  RNET_ACCESS   = 
10e0: 49 4e 54 45 52 4e 45 54 5f 4f 50 45 4e 5f 54 59  INTERNET_OPEN_TY
10f0: 50 45 5f 50 52 4f 58 59 2c 0d 0a 7d 0d 0a 0d 0a  PE_PROXY,..}....
1100: 63 6f 6e 73 74 20 49 53 4f 5f 47 4c 4f 42 41 4c  const ISO_GLOBAL
1110: 20 20 20 20 20 20 3d 20 31 3b 0d 0a 63 6f 6e 73        = 1;..cons
1120: 74 20 49 53 4f 5f 52 45 47 49 53 54 52 59 20 20  t ISO_REGISTRY  
1130: 20 20 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20 49 53    = 2;..const IS
1140: 4f 5f 56 41 4c 49 44 5f 46 4c 41 47 53 20 3d 20  O_VALID_FLAGS = 
1150: 49 53 4f 5f 47 4c 4f 42 41 4c 20 7c 20 49 53 4f  ISO_GLOBAL | ISO
1160: 5f 52 45 47 49 53 54 52 59 3b 0d 0a 0d 0a 65 6e  _REGISTRY;....en
1170: 75 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  um {...INTERNET_
1180: 4f 50 54 49 4f 4e 5f 43 41 4c 4c 42 41 43 4b 20  OPTION_CALLBACK 
1190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
11a0: 20 20 20 3d 20 20 31 2c 0d 0a 09 49 4e 54 45 52     =  1,...INTER
11b0: 4e 45 54 5f 4f 50 54 49 4f 4e 5f 43 4f 4e 4e 45  NET_OPTION_CONNE
11c0: 43 54 5f 54 49 4d 45 4f 55 54 2c 0d 0a 09 49 4e  CT_TIMEOUT,...IN
11d0: 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f 43 4f  TERNET_OPTION_CO
11e0: 4e 4e 45 43 54 5f 52 45 54 52 49 45 53 2c 0d 0a  NNECT_RETRIES,..
11f0: 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e  .INTERNET_OPTION
1200: 5f 43 4f 4e 4e 45 43 54 5f 42 41 43 4b 4f 46 46  _CONNECT_BACKOFF
1210: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54  ,...INTERNET_OPT
1220: 49 4f 4e 5f 53 45 4e 44 5f 54 49 4d 45 4f 55 54  ION_SEND_TIMEOUT
1230: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54  ,...INTERNET_OPT
1240: 49 4f 4e 5f 43 4f 4e 54 52 4f 4c 5f 53 45 4e 44  ION_CONTROL_SEND
1250: 5f 54 49 4d 45 4f 55 54 20 20 20 20 20 20 20 20  _TIMEOUT        
1260: 3d 20 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f  = INTERNET_OPTIO
1270: 4e 5f 53 45 4e 44 5f 54 49 4d 45 4f 55 54 2c 0d  N_SEND_TIMEOUT,.
1280: 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f  ..INTERNET_OPTIO
1290: 4e 5f 52 45 43 45 49 56 45 5f 54 49 4d 45 4f 55  N_RECEIVE_TIMEOU
12a0: 54 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50  T,...INTERNET_OP
12b0: 54 49 4f 4e 5f 43 4f 4e 54 52 4f 4c 5f 52 45 43  TION_CONTROL_REC
12c0: 45 49 56 45 5f 54 49 4d 45 4f 55 54 20 20 3d 20  EIVE_TIMEOUT  = 
12d0: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
12e0: 52 45 43 45 49 56 45 5f 54 49 4d 45 4f 55 54 2c  RECEIVE_TIMEOUT,
12f0: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49  ...INTERNET_OPTI
1300: 4f 4e 5f 44 41 54 41 5f 53 45 4e 44 5f 54 49 4d  ON_DATA_SEND_TIM
1310: 45 4f 55 54 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  EOUT,...INTERNET
1320: 5f 4f 50 54 49 4f 4e 5f 44 41 54 41 5f 52 45 43  _OPTION_DATA_REC
1330: 45 49 56 45 5f 54 49 4d 45 4f 55 54 2c 0d 0a 09  EIVE_TIMEOUT,...
1340: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
1350: 48 41 4e 44 4c 45 5f 54 59 50 45 2c 0d 0a 09 49  HANDLE_TYPE,...I
1360: 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f 43  NTERNET_OPTION_C
1370: 4f 4e 54 45 58 54 5f 56 41 4c 55 45 2c 0d 0a 09  ONTEXT_VALUE,...
1380: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
1390: 4c 49 53 54 45 4e 5f 54 49 4d 45 4f 55 54 2c 0d  LISTEN_TIMEOUT,.
13a0: 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f  ..INTERNET_OPTIO
13b0: 4e 5f 52 45 41 44 5f 42 55 46 46 45 52 5f 53 49  N_READ_BUFFER_SI
13c0: 5a 45 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f  ZE,...INTERNET_O
13d0: 50 54 49 4f 4e 5f 57 52 49 54 45 5f 42 55 46 46  PTION_WRITE_BUFF
13e0: 45 52 5f 53 49 5a 45 2c 20 20 20 20 20 20 20 2f  ER_SIZE,       /
13f0: 2f 20 3d 20 31 33 0d 0a 09 49 4e 54 45 52 4e 45  / = 13...INTERNE
1400: 54 5f 4f 50 54 49 4f 4e 5f 41 53 59 4e 43 5f 49  T_OPTION_ASYNC_I
1410: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  D               
1420: 20 20 20 20 20 3d 20 31 35 2c 0d 0a 09 49 4e 54       = 15,...INT
1430: 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f 41 53 59  ERNET_OPTION_ASY
1440: 4e 43 5f 50 52 49 4f 52 49 54 59 2c 20 20 20 20  NC_PRIORITY,    
1450: 20 20 20 20 20 20 2f 2f 20 3d 20 31 36 0d 0a 09        // = 16...
1460: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
1470: 50 41 52 45 4e 54 5f 48 41 4e 44 4c 45 20 20 20  PARENT_HANDLE   
1480: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 32 31              = 21
1490: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54  ,...INTERNET_OPT
14a0: 49 4f 4e 5f 4b 45 45 50 5f 43 4f 4e 4e 45 43 54  ION_KEEP_CONNECT
14b0: 49 4f 4e 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  ION,...INTERNET_
14c0: 4f 50 54 49 4f 4e 5f 52 45 51 55 45 53 54 5f 46  OPTION_REQUEST_F
14d0: 4c 41 47 53 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  LAGS,...INTERNET
14e0: 5f 4f 50 54 49 4f 4e 5f 45 58 54 45 4e 44 45 44  _OPTION_EXTENDED
14f0: 5f 45 52 52 4f 52 2c 20 20 20 20 20 20 20 20 20  _ERROR,         
1500: 20 2f 2f 20 3d 20 32 34 0d 0a 09 49 4e 54 45 52   // = 24...INTER
1510: 4e 45 54 5f 4f 50 54 49 4f 4e 5f 4f 46 46 4c 49  NET_OPTION_OFFLI
1520: 4e 45 5f 4d 4f 44 45 20 20 20 20 20 20 20 20 20  NE_MODE         
1530: 20 20 20 20 20 20 20 3d 20 32 36 2c 0d 0a 09 49         = 26,...I
1540: 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f 43  NTERNET_OPTION_C
1550: 41 43 48 45 5f 53 54 52 45 41 4d 5f 48 41 4e 44  ACHE_STREAM_HAND
1560: 4c 45 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f  LE,...INTERNET_O
1570: 50 54 49 4f 4e 5f 55 53 45 52 4e 41 4d 45 2c 0d  PTION_USERNAME,.
1580: 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f  ..INTERNET_OPTIO
1590: 4e 5f 50 41 53 53 57 4f 52 44 2c 0d 0a 09 49 4e  N_PASSWORD,...IN
15a0: 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f 41 53  TERNET_OPTION_AS
15b0: 59 4e 43 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  YNC,...INTERNET_
15c0: 4f 50 54 49 4f 4e 5f 53 45 43 55 52 49 54 59 5f  OPTION_SECURITY_
15d0: 46 4c 41 47 53 2c 0d 0a 09 49 4e 54 45 52 4e 45  FLAGS,...INTERNE
15e0: 54 5f 4f 50 54 49 4f 4e 5f 53 45 43 55 52 49 54  T_OPTION_SECURIT
15f0: 59 5f 43 45 52 54 49 46 49 43 41 54 45 5f 53 54  Y_CERTIFICATE_ST
1600: 52 55 43 54 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  RUCT,...INTERNET
1610: 5f 4f 50 54 49 4f 4e 5f 44 41 54 41 46 49 4c 45  _OPTION_DATAFILE
1620: 5f 4e 41 4d 45 2c 0d 0a 09 49 4e 54 45 52 4e 45  _NAME,...INTERNE
1630: 54 5f 4f 50 54 49 4f 4e 5f 55 52 4c 2c 0d 0a 09  T_OPTION_URL,...
1640: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
1650: 53 45 43 55 52 49 54 59 5f 43 45 52 54 49 46 49  SECURITY_CERTIFI
1660: 43 41 54 45 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  CATE,...INTERNET
1670: 5f 4f 50 54 49 4f 4e 5f 53 45 43 55 52 49 54 59  _OPTION_SECURITY
1680: 5f 4b 45 59 5f 42 49 54 4e 45 53 53 2c 0d 0a 09  _KEY_BITNESS,...
1690: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
16a0: 52 45 46 52 45 53 48 2c 0d 0a 09 49 4e 54 45 52  REFRESH,...INTER
16b0: 4e 45 54 5f 4f 50 54 49 4f 4e 5f 50 52 4f 58 59  NET_OPTION_PROXY
16c0: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54  ,...INTERNET_OPT
16d0: 49 4f 4e 5f 53 45 54 54 49 4e 47 53 5f 43 48 41  ION_SETTINGS_CHA
16e0: 4e 47 45 44 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  NGED,...INTERNET
16f0: 5f 4f 50 54 49 4f 4e 5f 56 45 52 53 49 4f 4e 2c  _OPTION_VERSION,
1700: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49  ...INTERNET_OPTI
1710: 4f 4e 5f 55 53 45 52 5f 41 47 45 4e 54 2c 0d 0a  ON_USER_AGENT,..
1720: 09 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e  .INTERNET_OPTION
1730: 5f 45 4e 44 5f 42 52 4f 57 53 45 52 5f 53 45 53  _END_BROWSER_SES
1740: 53 49 4f 4e 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  SION,...INTERNET
1750: 5f 4f 50 54 49 4f 4e 5f 50 52 4f 58 59 5f 55 53  _OPTION_PROXY_US
1760: 45 52 4e 41 4d 45 2c 0d 0a 09 49 4e 54 45 52 4e  ERNAME,...INTERN
1770: 45 54 5f 4f 50 54 49 4f 4e 5f 50 52 4f 58 59 5f  ET_OPTION_PROXY_
1780: 50 41 53 53 57 4f 52 44 2c 20 20 20 20 20 20 20  PASSWORD,       
1790: 20 20 20 2f 2f 20 3d 20 34 34 0d 0a 09 49 4e 54     // = 44...INT
17a0: 45 52 4e 45 54 5f 46 49 52 53 54 5f 4f 50 54 49  ERNET_FIRST_OPTI
17b0: 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ON              
17c0: 20 20 20 20 20 20 20 20 20 3d 20 49 4e 54 45 52           = INTER
17d0: 4e 45 54 5f 4f 50 54 49 4f 4e 5f 43 41 4c 4c 42  NET_OPTION_CALLB
17e0: 41 43 4b 2c 0d 0a 09 2f 2f 20 77 68 79 3f 0d 0a  ACK,...// why?..
17f0: 09 49 4e 54 45 52 4e 45 54 5f 4c 41 53 54 5f 4f  .INTERNET_LAST_O
1800: 50 54 49 4f 4e 20 20 20 20 20 20 20 20 20 20 20  PTION           
1810: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 49               = I
1820: 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f 55  NTERNET_OPTION_U
1830: 53 45 52 5f 41 47 45 4e 54 0d 0a 7d 0d 0a 0d 0a  SER_AGENT..}....
1840: 63 6f 6e 73 74 20 49 4e 54 45 52 4e 45 54 5f 50  const INTERNET_P
1850: 52 49 4f 52 49 54 59 5f 46 4f 52 45 47 52 4f 55  RIORITY_FOREGROU
1860: 4e 44 20 3d 20 31 30 30 30 3b 0d 0a 0d 0a 65 6e  ND = 1000;....en
1870: 75 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  um {...INTERNET_
1880: 48 41 4e 44 4c 45 5f 54 59 50 45 5f 49 4e 54 45  HANDLE_TYPE_INTE
1890: 52 4e 45 54 20 3d 20 31 2c 0d 0a 09 49 4e 54 45  RNET = 1,...INTE
18a0: 52 4e 45 54 5f 48 41 4e 44 4c 45 5f 54 59 50 45  RNET_HANDLE_TYPE
18b0: 5f 43 4f 4e 4e 45 43 54 5f 46 54 50 2c 0d 0a 09  _CONNECT_FTP,...
18c0: 49 4e 54 45 52 4e 45 54 5f 48 41 4e 44 4c 45 5f  INTERNET_HANDLE_
18d0: 54 59 50 45 5f 43 4f 4e 4e 45 43 54 5f 47 4f 50  TYPE_CONNECT_GOP
18e0: 48 45 52 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  HER,...INTERNET_
18f0: 48 41 4e 44 4c 45 5f 54 59 50 45 5f 43 4f 4e 4e  HANDLE_TYPE_CONN
1900: 45 43 54 5f 48 54 54 50 2c 0d 0a 09 49 4e 54 45  ECT_HTTP,...INTE
1910: 52 4e 45 54 5f 48 41 4e 44 4c 45 5f 54 59 50 45  RNET_HANDLE_TYPE
1920: 5f 46 54 50 5f 46 49 4e 44 2c 0d 0a 09 49 4e 54  _FTP_FIND,...INT
1930: 45 52 4e 45 54 5f 48 41 4e 44 4c 45 5f 54 59 50  ERNET_HANDLE_TYP
1940: 45 5f 46 54 50 5f 46 49 4e 44 5f 48 54 4d 4c 2c  E_FTP_FIND_HTML,
1950: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 48 41 4e 44  ...INTERNET_HAND
1960: 4c 45 5f 54 59 50 45 5f 46 54 50 5f 46 49 4c 45  LE_TYPE_FTP_FILE
1970: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 48 41 4e  ,...INTERNET_HAN
1980: 44 4c 45 5f 54 59 50 45 5f 46 54 50 5f 46 49 4c  DLE_TYPE_FTP_FIL
1990: 45 5f 48 54 4d 4c 2c 0d 0a 09 49 4e 54 45 52 4e  E_HTML,...INTERN
19a0: 45 54 5f 48 41 4e 44 4c 45 5f 54 59 50 45 5f 47  ET_HANDLE_TYPE_G
19b0: 4f 50 48 45 52 5f 46 49 4e 44 2c 0d 0a 09 49 4e  OPHER_FIND,...IN
19c0: 54 45 52 4e 45 54 5f 48 41 4e 44 4c 45 5f 54 59  TERNET_HANDLE_TY
19d0: 50 45 5f 47 4f 50 48 45 52 5f 46 49 4e 44 5f 48  PE_GOPHER_FIND_H
19e0: 54 4d 4c 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  TML,...INTERNET_
19f0: 48 41 4e 44 4c 45 5f 54 59 50 45 5f 47 4f 50 48  HANDLE_TYPE_GOPH
1a00: 45 52 5f 46 49 4c 45 2c 0d 0a 09 49 4e 54 45 52  ER_FILE,...INTER
1a10: 4e 45 54 5f 48 41 4e 44 4c 45 5f 54 59 50 45 5f  NET_HANDLE_TYPE_
1a20: 47 4f 50 48 45 52 5f 46 49 4c 45 5f 48 54 4d 4c  GOPHER_FILE_HTML
1a30: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 48 41 4e  ,...INTERNET_HAN
1a40: 44 4c 45 5f 54 59 50 45 5f 48 54 54 50 5f 52 45  DLE_TYPE_HTTP_RE
1a50: 51 55 45 53 54 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73  QUEST..}....cons
1a60: 74 20 44 57 4f 52 44 0d 0a 09 53 45 43 55 52 49  t DWORD...SECURI
1a70: 54 59 5f 46 4c 41 47 5f 53 45 43 55 52 45 20 20  TY_FLAG_SECURE  
1a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a90: 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a   = 0x00000001,..
1aa0: 09 53 45 43 55 52 49 54 59 5f 46 4c 41 47 5f 53  .SECURITY_FLAG_S
1ab0: 53 4c 20 20 20 20 20 20 20 20 20 20 20 20 20 20  SL              
1ac0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
1ad0: 30 30 30 32 2c 0d 0a 09 53 45 43 55 52 49 54 59  0002,...SECURITY
1ae0: 5f 46 4c 41 47 5f 53 53 4c 33 20 20 20 20 20 20  _FLAG_SSL3      
1af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d                 =
1b00: 20 30 78 30 30 30 30 30 30 30 34 2c 0d 0a 09 53   0x00000004,...S
1b10: 45 43 55 52 49 54 59 5f 46 4c 41 47 5f 50 43 54  ECURITY_FLAG_PCT
1b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b30: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30        = 0x000000
1b40: 30 38 2c 0d 0a 09 53 45 43 55 52 49 54 59 5f 46  08,...SECURITY_F
1b50: 4c 41 47 5f 50 43 54 34 20 20 20 20 20 20 20 20  LAG_PCT4        
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
1b70: 78 30 30 30 30 30 30 31 30 2c 0d 0a 09 53 45 43  x00000010,...SEC
1b80: 55 52 49 54 59 5f 46 4c 41 47 5f 49 45 54 46 53  URITY_FLAG_IETFS
1b90: 53 4c 34 20 20 20 20 20 20 20 20 20 20 20 20 20  SL4             
1ba0: 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 32 30      = 0x00000020
1bb0: 2c 0d 0a 09 53 45 43 55 52 49 54 59 5f 46 4c 41  ,...SECURITY_FLA
1bc0: 47 5f 49 47 4e 4f 52 45 5f 52 45 56 4f 43 41 54  G_IGNORE_REVOCAT
1bd0: 49 4f 4e 20 20 20 20 20 20 20 20 3d 20 30 78 30  ION        = 0x0
1be0: 30 30 30 30 30 38 30 2c 0d 0a 09 53 45 43 55 52  0000080,...SECUR
1bf0: 49 54 59 5f 46 4c 41 47 5f 49 47 4e 4f 52 45 5f  ITY_FLAG_IGNORE_
1c00: 55 4e 4b 4e 4f 57 4e 5f 43 41 20 20 20 20 20 20  UNKNOWN_CA      
1c10: 20 20 3d 20 30 78 30 30 30 30 30 31 30 30 2c 0d    = 0x00000100,.
1c20: 0a 09 53 45 43 55 52 49 54 59 5f 46 4c 41 47 5f  ..SECURITY_FLAG_
1c30: 49 47 4e 4f 52 45 5f 57 52 4f 4e 47 5f 55 53 41  IGNORE_WRONG_USA
1c40: 47 45 20 20 20 20 20 20 20 3d 20 30 78 30 30 30  GE       = 0x000
1c50: 30 30 32 30 30 2c 0d 0a 09 53 45 43 55 52 49 54  00200,...SECURIT
1c60: 59 5f 46 4c 41 47 5f 34 30 42 49 54 20 20 20 20  Y_FLAG_40BIT    
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c80: 3d 20 30 78 31 30 30 30 30 30 30 30 2c 0d 0a 09  = 0x10000000,...
1c90: 53 45 43 55 52 49 54 59 5f 46 4c 41 47 5f 31 32  SECURITY_FLAG_12
1ca0: 38 42 49 54 20 20 20 20 20 20 20 20 20 20 20 20  8BIT            
1cb0: 20 20 20 20 20 20 20 3d 20 30 78 32 30 30 30 30         = 0x20000
1cc0: 30 30 30 2c 0d 0a 09 53 45 43 55 52 49 54 59 5f  000,...SECURITY_
1cd0: 46 4c 41 47 5f 35 36 42 49 54 20 20 20 20 20 20  FLAG_56BIT      
1ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
1cf0: 30 78 34 30 30 30 30 30 30 30 2c 0d 0a 09 53 45  0x40000000,...SE
1d00: 43 55 52 49 54 59 5f 46 4c 41 47 5f 55 4e 4b 4e  CURITY_FLAG_UNKN
1d10: 4f 57 4e 42 49 54 20 20 20 20 20 20 20 20 20 20  OWNBIT          
1d20: 20 20 20 20 20 3d 20 30 78 38 30 30 30 30 30 30       = 0x8000000
1d30: 30 2c 0d 0a 09 53 45 43 55 52 49 54 59 5f 46 4c  0,...SECURITY_FL
1d40: 41 47 5f 4e 4f 52 4d 41 4c 42 49 54 4e 45 53 53  AG_NORMALBITNESS
1d50: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 53 45              = SE
1d60: 43 55 52 49 54 59 5f 46 4c 41 47 5f 34 30 42 49  CURITY_FLAG_40BI
1d70: 54 2c 0d 0a 09 53 45 43 55 52 49 54 59 5f 46 4c  T,...SECURITY_FL
1d80: 41 47 5f 49 47 4e 4f 52 45 5f 43 45 52 54 5f 43  AG_IGNORE_CERT_C
1d90: 4e 5f 49 4e 56 41 4c 49 44 20 20 20 3d 20 49 4e  N_INVALID   = IN
1da0: 54 45 52 4e 45 54 5f 46 4c 41 47 5f 49 47 4e 4f  TERNET_FLAG_IGNO
1db0: 52 45 5f 43 45 52 54 5f 43 4e 5f 49 4e 56 41 4c  RE_CERT_CN_INVAL
1dc0: 49 44 2c 0d 0a 09 53 45 43 55 52 49 54 59 5f 46  ID,...SECURITY_F
1dd0: 4c 41 47 5f 49 47 4e 4f 52 45 5f 43 45 52 54 5f  LAG_IGNORE_CERT_
1de0: 44 41 54 45 5f 49 4e 56 41 4c 49 44 20 3d 20 49  DATE_INVALID = I
1df0: 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f 49 47 4e  NTERNET_FLAG_IGN
1e00: 4f 52 45 5f 43 45 52 54 5f 44 41 54 45 5f 49 4e  ORE_CERT_DATE_IN
1e10: 56 41 4c 49 44 2c 0d 0a 09 53 45 43 55 52 49 54  VALID,...SECURIT
1e20: 59 5f 46 4c 41 47 5f 49 47 4e 4f 52 45 5f 52 45  Y_FLAG_IGNORE_RE
1e30: 44 49 52 45 43 54 5f 54 4f 5f 48 54 54 50 53 20  DIRECT_TO_HTTPS 
1e40: 3d 20 49 4e 54 45 52 4e 45 54 5f 46 4c 41 47 5f  = INTERNET_FLAG_
1e50: 49 47 4e 4f 52 45 5f 52 45 44 49 52 45 43 54 5f  IGNORE_REDIRECT_
1e60: 54 4f 5f 48 54 54 50 53 2c 0d 0a 09 53 45 43 55  TO_HTTPS,...SECU
1e70: 52 49 54 59 5f 46 4c 41 47 5f 49 47 4e 4f 52 45  RITY_FLAG_IGNORE
1e80: 5f 52 45 44 49 52 45 43 54 5f 54 4f 5f 48 54 54  _REDIRECT_TO_HTT
1e90: 50 20 20 3d 20 49 4e 54 45 52 4e 45 54 5f 46 4c  P  = INTERNET_FL
1ea0: 41 47 5f 49 47 4e 4f 52 45 5f 52 45 44 49 52 45  AG_IGNORE_REDIRE
1eb0: 43 54 5f 54 4f 5f 48 54 54 50 3b 0d 0a 0d 0a 65  CT_TO_HTTP;....e
1ec0: 6e 75 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54  num {...INTERNET
1ed0: 5f 53 45 52 56 49 43 45 5f 46 54 50 20 3d 20 31  _SERVICE_FTP = 1
1ee0: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 45 52  ,...INTERNET_SER
1ef0: 56 49 43 45 5f 47 4f 50 48 45 52 2c 0d 0a 09 49  VICE_GOPHER,...I
1f00: 4e 54 45 52 4e 45 54 5f 53 45 52 56 49 43 45 5f  NTERNET_SERVICE_
1f10: 48 54 54 50 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20  HTTP..}....enum 
1f20: 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 54 41  {...INTERNET_STA
1f30: 54 55 53 5f 52 45 53 4f 4c 56 49 4e 47 5f 4e 41  TUS_RESOLVING_NA
1f40: 4d 45 20 20 20 20 20 20 20 20 3d 20 20 31 30 2c  ME        =  10,
1f50: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 54 41 54  ...INTERNET_STAT
1f60: 55 53 5f 4e 41 4d 45 5f 52 45 53 4f 4c 56 45 44  US_NAME_RESOLVED
1f70: 20 20 20 20 20 20 20 20 20 3d 20 20 31 31 2c 0d           =  11,.
1f80: 0a 09 49 4e 54 45 52 4e 45 54 5f 53 54 41 54 55  ..INTERNET_STATU
1f90: 53 5f 43 4f 4e 4e 45 43 54 49 4e 47 5f 54 4f 5f  S_CONNECTING_TO_
1fa0: 53 45 52 56 45 52 20 20 3d 20 20 32 30 2c 0d 0a  SERVER  =  20,..
1fb0: 09 49 4e 54 45 52 4e 45 54 5f 53 54 41 54 55 53  .INTERNET_STATUS
1fc0: 5f 43 4f 4e 4e 45 43 54 45 44 5f 54 4f 5f 53 45  _CONNECTED_TO_SE
1fd0: 52 56 45 52 20 20 20 3d 20 20 32 31 2c 0d 0a 09  RVER   =  21,...
1fe0: 49 4e 54 45 52 4e 45 54 5f 53 54 41 54 55 53 5f  INTERNET_STATUS_
1ff0: 53 45 4e 44 49 4e 47 5f 52 45 51 55 45 53 54 20  SENDING_REQUEST 
2000: 20 20 20 20 20 20 3d 20 20 33 30 2c 0d 0a 09 49        =  30,...I
2010: 4e 54 45 52 4e 45 54 5f 53 54 41 54 55 53 5f 52  NTERNET_STATUS_R
2020: 45 51 55 45 53 54 5f 53 45 4e 54 20 20 20 20 20  EQUEST_SENT     
2030: 20 20 20 20 20 3d 20 20 33 31 2c 0d 0a 09 49 4e       =  31,...IN
2040: 54 45 52 4e 45 54 5f 53 54 41 54 55 53 5f 52 45  TERNET_STATUS_RE
2050: 43 45 49 56 49 4e 47 5f 52 45 53 50 4f 4e 53 45  CEIVING_RESPONSE
2060: 20 20 20 20 3d 20 20 34 30 2c 0d 0a 09 49 4e 54      =  40,...INT
2070: 45 52 4e 45 54 5f 53 54 41 54 55 53 5f 52 45 53  ERNET_STATUS_RES
2080: 50 4f 4e 53 45 5f 52 45 43 45 49 56 45 44 20 20  PONSE_RECEIVED  
2090: 20 20 20 3d 20 20 34 31 2c 0d 0a 09 49 4e 54 45     =  41,...INTE
20a0: 52 4e 45 54 5f 53 54 41 54 55 53 5f 43 54 4c 5f  RNET_STATUS_CTL_
20b0: 52 45 53 50 4f 4e 53 45 5f 52 45 43 45 49 56 45  RESPONSE_RECEIVE
20c0: 44 20 3d 20 20 34 32 2c 0d 0a 09 49 4e 54 45 52  D =  42,...INTER
20d0: 4e 45 54 5f 53 54 41 54 55 53 5f 50 52 45 46 45  NET_STATUS_PREFE
20e0: 54 43 48 20 20 20 20 20 20 20 20 20 20 20 20 20  TCH             
20f0: 20 3d 20 20 34 33 2c 0d 0a 09 49 4e 54 45 52 4e   =  43,...INTERN
2100: 45 54 5f 53 54 41 54 55 53 5f 43 4c 4f 53 49 4e  ET_STATUS_CLOSIN
2110: 47 5f 43 4f 4e 4e 45 43 54 49 4f 4e 20 20 20 20  G_CONNECTION    
2120: 3d 20 20 35 30 2c 0d 0a 09 49 4e 54 45 52 4e 45  =  50,...INTERNE
2130: 54 5f 53 54 41 54 55 53 5f 43 4f 4e 4e 45 43 54  T_STATUS_CONNECT
2140: 49 4f 4e 5f 43 4c 4f 53 45 44 20 20 20 20 20 3d  ION_CLOSED     =
2150: 20 20 35 31 2c 0d 0a 09 49 4e 54 45 52 4e 45 54    51,...INTERNET
2160: 5f 53 54 41 54 55 53 5f 48 41 4e 44 4c 45 5f 43  _STATUS_HANDLE_C
2170: 52 45 41 54 45 44 20 20 20 20 20 20 20 20 3d 20  REATED        = 
2180: 20 36 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f   60,...INTERNET_
2190: 53 54 41 54 55 53 5f 48 41 4e 44 4c 45 5f 43 4c  STATUS_HANDLE_CL
21a0: 4f 53 49 4e 47 20 20 20 20 20 20 20 20 3d 20 20  OSING        =  
21b0: 37 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53  70,...INTERNET_S
21c0: 54 41 54 55 53 5f 52 45 51 55 45 53 54 5f 43 4f  TATUS_REQUEST_CO
21d0: 4d 50 4c 45 54 45 20 20 20 20 20 20 3d 20 31 30  MPLETE      = 10
21e0: 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 54  0,...INTERNET_ST
21f0: 41 54 55 53 5f 52 45 44 49 52 45 43 54 20 20 20  ATUS_REDIRECT   
2200: 20 20 20 20 20 20 20 20 20 20 20 3d 20 31 31 30             = 110
2210: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09  ..}....enum {...
2220: 46 54 50 5f 54 52 41 4e 53 46 45 52 5f 54 59 50  FTP_TRANSFER_TYP
2230: 45 5f 55 4e 4b 4e 4f 57 4e 20 3d 20 30 2c 0d 0a  E_UNKNOWN = 0,..
2240: 09 46 54 50 5f 54 52 41 4e 53 46 45 52 5f 54 59  .FTP_TRANSFER_TY
2250: 50 45 5f 41 53 43 49 49 20 20 20 3d 20 31 2c 0d  PE_ASCII   = 1,.
2260: 0a 09 46 54 50 5f 54 52 41 4e 53 46 45 52 5f 54  ..FTP_TRANSFER_T
2270: 59 50 45 5f 42 49 4e 41 52 59 20 20 3d 20 32 2c  YPE_BINARY  = 2,
2280: 0d 0a 09 46 54 50 5f 54 52 41 4e 53 46 45 52 5f  ...FTP_TRANSFER_
2290: 54 59 50 45 5f 4d 41 53 4b 20 20 20 20 3d 20 33  TYPE_MASK    = 3
22a0: 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 73 69 7a  ..}....const siz
22b0: 65 5f 74 0d 0a 09 4d 41 58 5f 47 4f 50 48 45 52  e_t...MAX_GOPHER
22c0: 5f 44 49 53 50 4c 41 59 5f 54 45 58 54 20 20 20  _DISPLAY_TEXT   
22d0: 3d 20 31 32 38 2c 0d 0a 09 4d 41 58 5f 47 4f 50  = 128,...MAX_GOP
22e0: 48 45 52 5f 53 45 4c 45 43 54 4f 52 5f 54 45 58  HER_SELECTOR_TEX
22f0: 54 20 20 3d 20 32 35 36 2c 0d 0a 09 4d 41 58 5f  T  = 256,...MAX_
2300: 47 4f 50 48 45 52 5f 48 4f 53 54 5f 4e 41 4d 45  GOPHER_HOST_NAME
2310: 20 20 20 20 20 20 3d 20 49 4e 54 45 52 4e 45 54        = INTERNET
2320: 5f 4d 41 58 5f 48 4f 53 54 5f 4e 41 4d 45 5f 4c  _MAX_HOST_NAME_L
2330: 45 4e 47 54 48 2c 0d 0a 09 4d 41 58 5f 47 4f 50  ENGTH,...MAX_GOP
2340: 48 45 52 5f 4c 4f 43 41 54 4f 52 5f 4c 45 4e 47  HER_LOCATOR_LENG
2350: 54 48 0d 0a 09 20 20 3d 20 31 20 2b 20 4d 41 58  TH...  = 1 + MAX
2360: 5f 47 4f 50 48 45 52 5f 44 49 53 50 4c 41 59 5f  _GOPHER_DISPLAY_
2370: 54 45 58 54 20 2b 20 31 20 2b 20 4d 41 58 5f 47  TEXT + 1 + MAX_G
2380: 4f 50 48 45 52 5f 53 45 4c 45 43 54 4f 52 5f 54  OPHER_SELECTOR_T
2390: 45 58 54 20 2b 20 31 0d 0a 09 20 20 20 20 2b 20  EXT + 1...    + 
23a0: 4d 41 58 5f 47 4f 50 48 45 52 5f 48 4f 53 54 5f  MAX_GOPHER_HOST_
23b0: 4e 41 4d 45 20 2b 20 31 20 2b 20 49 4e 54 45 52  NAME + 1 + INTER
23c0: 4e 45 54 5f 4d 41 58 5f 50 4f 52 54 5f 4e 55 4d  NET_MAX_PORT_NUM
23d0: 42 45 52 5f 4c 45 4e 47 54 48 20 2b 20 34 3b 0d  BER_LENGTH + 4;.
23e0: 0a 0d 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0d 0a  ...const DWORD..
23f0: 09 47 4f 50 48 45 52 5f 54 59 50 45 5f 54 45 58  .GOPHER_TYPE_TEX
2400: 54 5f 46 49 4c 45 20 20 20 20 20 20 3d 20 30 78  T_FILE      = 0x
2410: 30 30 30 30 30 30 30 31 2c 0d 0a 09 47 4f 50 48  00000001,...GOPH
2420: 45 52 5f 54 59 50 45 5f 44 49 52 45 43 54 4f 52  ER_TYPE_DIRECTOR
2430: 59 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 30  Y      = 0x00000
2440: 30 30 32 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 59  002,...GOPHER_TY
2450: 50 45 5f 43 53 4f 20 20 20 20 20 20 20 20 20 20  PE_CSO          
2460: 20 20 3d 20 30 78 30 30 30 30 30 30 30 34 2c 0d    = 0x00000004,.
2470: 0a 09 47 4f 50 48 45 52 5f 54 59 50 45 5f 45 52  ..GOPHER_TYPE_ER
2480: 52 4f 52 20 20 20 20 20 20 20 20 20 20 3d 20 30  ROR          = 0
2490: 78 30 30 30 30 30 30 30 38 2c 0d 0a 09 47 4f 50  x00000008,...GOP
24a0: 48 45 52 5f 54 59 50 45 5f 4d 41 43 5f 42 49 4e  HER_TYPE_MAC_BIN
24b0: 48 45 58 20 20 20 20 20 3d 20 30 78 30 30 30 30  HEX     = 0x0000
24c0: 30 30 31 30 2c 0d 0a 09 47 4f 50 48 45 52 5f 54  0010,...GOPHER_T
24d0: 59 50 45 5f 44 4f 53 5f 41 52 43 48 49 56 45 20  YPE_DOS_ARCHIVE 
24e0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 32 30 2c     = 0x00000020,
24f0: 0d 0a 09 47 4f 50 48 45 52 5f 54 59 50 45 5f 55  ...GOPHER_TYPE_U
2500: 4e 49 58 5f 55 55 45 4e 43 4f 44 45 44 20 3d 20  NIX_UUENCODED = 
2510: 30 78 30 30 30 30 30 30 34 30 2c 0d 0a 09 47 4f  0x00000040,...GO
2520: 50 48 45 52 5f 54 59 50 45 5f 49 4e 44 45 58 5f  PHER_TYPE_INDEX_
2530: 53 45 52 56 45 52 20 20 20 3d 20 30 78 30 30 30  SERVER   = 0x000
2540: 30 30 30 38 30 2c 0d 0a 09 47 4f 50 48 45 52 5f  00080,...GOPHER_
2550: 54 59 50 45 5f 54 45 4c 4e 45 54 20 20 20 20 20  TYPE_TELNET     
2560: 20 20 20 20 3d 20 30 78 30 30 30 30 30 31 30 30      = 0x00000100
2570: 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 59 50 45 5f  ,...GOPHER_TYPE_
2580: 42 49 4e 41 52 59 20 20 20 20 20 20 20 20 20 3d  BINARY         =
2590: 20 30 78 30 30 30 30 30 32 30 30 2c 0d 0a 09 47   0x00000200,...G
25a0: 4f 50 48 45 52 5f 54 59 50 45 5f 52 45 44 55 4e  OPHER_TYPE_REDUN
25b0: 44 41 4e 54 20 20 20 20 20 20 3d 20 30 78 30 30  DANT      = 0x00
25c0: 30 30 30 34 30 30 2c 0d 0a 09 47 4f 50 48 45 52  000400,...GOPHER
25d0: 5f 54 59 50 45 5f 54 4e 33 32 37 30 20 20 20 20  _TYPE_TN3270    
25e0: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 38 30       = 0x0000080
25f0: 30 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 59 50 45  0,...GOPHER_TYPE
2600: 5f 47 49 46 20 20 20 20 20 20 20 20 20 20 20 20  _GIF            
2610: 3d 20 30 78 30 30 30 30 31 30 30 30 2c 0d 0a 09  = 0x00001000,...
2620: 47 4f 50 48 45 52 5f 54 59 50 45 5f 49 4d 41 47  GOPHER_TYPE_IMAG
2630: 45 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30  E          = 0x0
2640: 30 30 30 32 30 30 30 2c 0d 0a 09 47 4f 50 48 45  0002000,...GOPHE
2650: 52 5f 54 59 50 45 5f 42 49 54 4d 41 50 20 20 20  R_TYPE_BITMAP   
2660: 20 20 20 20 20 20 3d 20 30 78 30 30 30 30 34 30        = 0x000040
2670: 30 30 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 59 50  00,...GOPHER_TYP
2680: 45 5f 4d 4f 56 49 45 20 20 20 20 20 20 20 20 20  E_MOVIE         
2690: 20 3d 20 30 78 30 30 30 30 38 30 30 30 2c 0d 0a   = 0x00008000,..
26a0: 09 47 4f 50 48 45 52 5f 54 59 50 45 5f 53 4f 55  .GOPHER_TYPE_SOU
26b0: 4e 44 20 20 20 20 20 20 20 20 20 20 3d 20 30 78  ND          = 0x
26c0: 30 30 30 31 30 30 30 30 2c 0d 0a 09 47 4f 50 48  00010000,...GOPH
26d0: 45 52 5f 54 59 50 45 5f 48 54 4d 4c 20 20 20 20  ER_TYPE_HTML    
26e0: 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 32 30         = 0x00020
26f0: 30 30 30 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 59  000,...GOPHER_TY
2700: 50 45 5f 50 44 46 20 20 20 20 20 20 20 20 20 20  PE_PDF          
2710: 20 20 3d 20 30 78 30 30 30 34 30 30 30 30 2c 0d    = 0x00040000,.
2720: 0a 09 47 4f 50 48 45 52 5f 54 59 50 45 5f 43 41  ..GOPHER_TYPE_CA
2730: 4c 45 4e 44 41 52 20 20 20 20 20 20 20 3d 20 30  LENDAR       = 0
2740: 78 30 30 30 38 30 30 30 30 2c 0d 0a 09 47 4f 50  x00080000,...GOP
2750: 48 45 52 5f 54 59 50 45 5f 49 4e 4c 49 4e 45 20  HER_TYPE_INLINE 
2760: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 31 30          = 0x0010
2770: 30 30 30 30 2c 0d 0a 09 47 4f 50 48 45 52 5f 54  0000,...GOPHER_T
2780: 59 50 45 5f 55 4e 4b 4e 4f 57 4e 20 20 20 20 20  YPE_UNKNOWN     
2790: 20 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 2c     = 0x20000000,
27a0: 0d 0a 09 47 4f 50 48 45 52 5f 54 59 50 45 5f 41  ...GOPHER_TYPE_A
27b0: 53 4b 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  SK            = 
27c0: 30 78 34 30 30 30 30 30 30 30 2c 0d 0a 09 47 4f  0x40000000,...GO
27d0: 50 48 45 52 5f 54 59 50 45 5f 47 4f 50 48 45 52  PHER_TYPE_GOPHER
27e0: 5f 50 4c 55 53 20 20 20 20 3d 20 30 78 38 30 30  _PLUS    = 0x800
27f0: 30 30 30 30 30 2c 0d 0a 09 47 4f 50 48 45 52 5f  00000,...GOPHER_
2800: 54 59 50 45 5f 46 49 4c 45 5f 4d 41 53 4b 20 20  TYPE_FILE_MASK  
2810: 20 20 20 20 3d 20 30 78 30 30 31 46 46 32 37 31      = 0x001FF271
2820: 3b 0d 0a 0d 0a 42 4f 4f 4c 20 49 53 5f 47 4f 50  ;....BOOL IS_GOP
2830: 48 45 52 5f 46 49 4c 45 28 44 57 4f 52 44 20 74  HER_FILE(DWORD t
2840: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 21 21 28  ) {...return !!(
2850: 74 20 26 20 47 4f 50 48 45 52 5f 54 59 50 45 5f  t & GOPHER_TYPE_
2860: 46 49 4c 45 5f 4d 41 53 4b 29 3b 0d 0a 7d 0d 0a  FILE_MASK);..}..
2870: 0d 0a 42 4f 4f 4c 20 49 53 5f 47 4f 50 48 45 52  ..BOOL IS_GOPHER
2880: 5f 44 49 52 45 43 54 4f 52 59 28 44 57 4f 52 44  _DIRECTORY(DWORD
2890: 20 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 21   t) {...return !
28a0: 21 28 74 20 26 20 47 4f 50 48 45 52 5f 54 59 50  !(t & GOPHER_TYP
28b0: 45 5f 44 49 52 45 43 54 4f 52 59 29 3b 0d 0a 7d  E_DIRECTORY);..}
28c0: 0d 0a 0d 0a 42 4f 4f 4c 20 49 53 5f 47 4f 50 48  ....BOOL IS_GOPH
28d0: 45 52 5f 50 48 4f 4e 45 5f 53 45 52 56 45 52 28  ER_PHONE_SERVER(
28e0: 44 57 4f 52 44 20 74 29 20 7b 0d 0a 09 72 65 74  DWORD t) {...ret
28f0: 75 72 6e 20 21 21 28 74 20 26 20 47 4f 50 48 45  urn !!(t & GOPHE
2900: 52 5f 54 59 50 45 5f 43 53 4f 29 3b 0d 0a 7d 0d  R_TYPE_CSO);..}.
2910: 0a 0d 0a 42 4f 4f 4c 20 49 53 5f 47 4f 50 48 45  ...BOOL IS_GOPHE
2920: 52 5f 45 52 52 4f 52 28 44 57 4f 52 44 20 74 29  R_ERROR(DWORD t)
2930: 20 7b 0d 0a 09 72 65 74 75 72 6e 20 21 21 28 74   {...return !!(t
2940: 20 26 20 47 4f 50 48 45 52 5f 54 59 50 45 5f 45   & GOPHER_TYPE_E
2950: 52 52 4f 52 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  RROR);..}....BOO
2960: 4c 20 49 53 5f 47 4f 50 48 45 52 5f 49 4e 44 45  L IS_GOPHER_INDE
2970: 58 5f 53 45 52 56 45 52 28 44 57 4f 52 44 20 74  X_SERVER(DWORD t
2980: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 21 21 28  ) {...return !!(
2990: 74 20 26 20 47 4f 50 48 45 52 5f 54 59 50 45 5f  t & GOPHER_TYPE_
29a0: 49 4e 44 45 58 5f 53 45 52 56 45 52 29 3b 0d 0a  INDEX_SERVER);..
29b0: 7d 0d 0a 0d 0a 42 4f 4f 4c 20 49 53 5f 47 4f 50  }....BOOL IS_GOP
29c0: 48 45 52 5f 54 45 4c 4e 45 54 5f 53 45 53 53 49  HER_TELNET_SESSI
29d0: 4f 4e 28 44 57 4f 52 44 20 74 29 20 7b 0d 0a 09  ON(DWORD t) {...
29e0: 72 65 74 75 72 6e 20 21 21 28 74 20 26 20 47 4f  return !!(t & GO
29f0: 50 48 45 52 5f 54 59 50 45 5f 54 45 4c 4e 45 54  PHER_TYPE_TELNET
2a00: 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 49 53  );..}....BOOL IS
2a10: 5f 47 4f 50 48 45 52 5f 42 41 43 4b 55 50 5f 53  _GOPHER_BACKUP_S
2a20: 45 52 56 45 52 28 44 57 4f 52 44 20 74 29 20 7b  ERVER(DWORD t) {
2a30: 0d 0a 09 72 65 74 75 72 6e 20 21 21 28 74 20 26  ...return !!(t &
2a40: 20 47 4f 50 48 45 52 5f 54 59 50 45 5f 52 45 44   GOPHER_TYPE_RED
2a50: 55 4e 44 41 4e 54 29 3b 0d 0a 7d 0d 0a 0d 0a 42  UNDANT);..}....B
2a60: 4f 4f 4c 20 49 53 5f 47 4f 50 48 45 52 5f 54 4e  OOL IS_GOPHER_TN
2a70: 33 32 37 30 5f 53 45 53 53 49 4f 4e 28 44 57 4f  3270_SESSION(DWO
2a80: 52 44 20 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e  RD t) {...return
2a90: 20 21 21 28 74 20 26 20 47 4f 50 48 45 52 5f 54   !!(t & GOPHER_T
2aa0: 59 50 45 5f 54 4e 33 32 37 30 29 3b 0d 0a 7d 0d  YPE_TN3270);..}.
2ab0: 0a 0d 0a 42 4f 4f 4c 20 49 53 5f 47 4f 50 48 45  ...BOOL IS_GOPHE
2ac0: 52 5f 41 53 4b 28 44 57 4f 52 44 20 74 29 20 7b  R_ASK(DWORD t) {
2ad0: 0d 0a 09 72 65 74 75 72 6e 20 21 21 28 74 20 26  ...return !!(t &
2ae0: 20 47 4f 50 48 45 52 5f 54 59 50 45 5f 41 53 4b   GOPHER_TYPE_ASK
2af0: 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 49 53  );..}....BOOL IS
2b00: 5f 47 4f 50 48 45 52 5f 50 4c 55 53 28 44 57 4f  _GOPHER_PLUS(DWO
2b10: 52 44 20 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e  RD t) {...return
2b20: 20 21 21 28 74 20 26 20 47 4f 50 48 45 52 5f 54   !!(t & GOPHER_T
2b30: 59 50 45 5f 47 4f 50 48 45 52 5f 50 4c 55 53 29  YPE_GOPHER_PLUS)
2b40: 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 49 53 5f  ;..}....BOOL IS_
2b50: 47 4f 50 48 45 52 5f 54 59 50 45 5f 4b 4e 4f 57  GOPHER_TYPE_KNOW
2b60: 4e 28 44 57 4f 52 44 20 74 29 20 7b 0d 0a 09 72  N(DWORD t) {...r
2b70: 65 74 75 72 6e 20 21 28 74 20 26 20 47 4f 50 48  eturn !(t & GOPH
2b80: 45 52 5f 54 59 50 45 5f 55 4e 4b 4e 4f 57 4e 29  ER_TYPE_UNKNOWN)
2b90: 3b 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 73 69  ;..}....const si
2ba0: 7a 65 5f 74 0d 0a 09 4d 41 58 5f 47 4f 50 48 45  ze_t...MAX_GOPHE
2bb0: 52 5f 43 41 54 45 47 4f 52 59 5f 4e 41 4d 45 20  R_CATEGORY_NAME 
2bc0: 20 20 20 3d 20 31 32 38 2c 0d 0a 09 4d 41 58 5f     = 128,...MAX_
2bd0: 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55 54 45  GOPHER_ATTRIBUTE
2be0: 5f 4e 41 4d 45 20 20 20 3d 20 31 32 38 2c 0d 0a  _NAME   = 128,..
2bf0: 09 4d 49 4e 5f 47 4f 50 48 45 52 5f 41 54 54 52  .MIN_GOPHER_ATTR
2c00: 49 42 55 54 45 5f 4c 45 4e 47 54 48 20 3d 20 32  IBUTE_LENGTH = 2
2c10: 35 36 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 54 43 48  56;....const TCH
2c20: 41 52 5b 5d 0d 0a 09 47 4f 50 48 45 52 5f 49 4e  AR[]...GOPHER_IN
2c30: 46 4f 5f 43 41 54 45 47 4f 52 59 20 20 20 20 20  FO_CATEGORY     
2c40: 20 3d 20 22 2b 49 4e 46 4f 22 2c 0d 0a 09 47 4f   = "+INFO",...GO
2c50: 50 48 45 52 5f 41 44 4d 49 4e 5f 43 41 54 45 47  PHER_ADMIN_CATEG
2c60: 4f 52 59 20 20 20 20 20 3d 20 22 2b 41 44 4d 49  ORY     = "+ADMI
2c70: 4e 22 2c 0d 0a 09 47 4f 50 48 45 52 5f 56 49 45  N",...GOPHER_VIE
2c80: 57 53 5f 43 41 54 45 47 4f 52 59 20 20 20 20 20  WS_CATEGORY     
2c90: 3d 20 22 2b 56 49 45 57 53 22 2c 0d 0a 09 47 4f  = "+VIEWS",...GO
2ca0: 50 48 45 52 5f 41 42 53 54 52 41 43 54 5f 43 41  PHER_ABSTRACT_CA
2cb0: 54 45 47 4f 52 59 20 20 3d 20 22 2b 41 42 53 54  TEGORY  = "+ABST
2cc0: 52 41 43 54 22 2c 0d 0a 09 47 4f 50 48 45 52 5f  RACT",...GOPHER_
2cd0: 56 45 52 4f 4e 49 43 41 5f 43 41 54 45 47 4f 52  VERONICA_CATEGOR
2ce0: 59 20 20 3d 20 22 2b 56 45 52 4f 4e 49 43 41 22  Y  = "+VERONICA"
2cf0: 2c 0d 0a 09 47 4f 50 48 45 52 5f 41 44 4d 49 4e  ,...GOPHER_ADMIN
2d00: 5f 41 54 54 52 49 42 55 54 45 20 20 20 20 3d 20  _ATTRIBUTE    = 
2d10: 22 41 64 6d 69 6e 22 2c 0d 0a 09 47 4f 50 48 45  "Admin",...GOPHE
2d20: 52 5f 4d 4f 44 5f 44 41 54 45 5f 41 54 54 52 49  R_MOD_DATE_ATTRI
2d30: 42 55 54 45 20 3d 20 22 4d 6f 64 2d 44 61 74 65  BUTE = "Mod-Date
2d40: 22 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 54 4c 5f  ",...GOPHER_TTL_
2d50: 41 54 54 52 49 42 55 54 45 20 20 20 20 20 20 3d  ATTRIBUTE      =
2d60: 20 22 54 54 4c 22 2c 0d 0a 09 47 4f 50 48 45 52   "TTL",...GOPHER
2d70: 5f 53 43 4f 52 45 5f 41 54 54 52 49 42 55 54 45  _SCORE_ATTRIBUTE
2d80: 20 20 20 20 3d 20 22 53 63 6f 72 65 22 2c 0d 0a      = "Score",..
2d90: 09 47 4f 50 48 45 52 5f 52 41 4e 47 45 5f 41 54  .GOPHER_RANGE_AT
2da0: 54 52 49 42 55 54 45 20 20 20 20 3d 20 22 53 63  TRIBUTE    = "Sc
2db0: 6f 72 65 2d 72 61 6e 67 65 22 2c 0d 0a 09 47 4f  ore-range",...GO
2dc0: 50 48 45 52 5f 53 49 54 45 5f 41 54 54 52 49 42  PHER_SITE_ATTRIB
2dd0: 55 54 45 20 20 20 20 20 3d 20 22 53 69 74 65 22  UTE     = "Site"
2de0: 2c 0d 0a 09 47 4f 50 48 45 52 5f 4f 52 47 5f 41  ,...GOPHER_ORG_A
2df0: 54 54 52 49 42 55 54 45 20 20 20 20 20 20 3d 20  TTRIBUTE      = 
2e00: 22 4f 72 67 22 2c 0d 0a 09 47 4f 50 48 45 52 5f  "Org",...GOPHER_
2e10: 4c 4f 43 41 54 49 4f 4e 5f 41 54 54 52 49 42 55  LOCATION_ATTRIBU
2e20: 54 45 20 3d 20 22 4c 6f 63 22 2c 0d 0a 09 47 4f  TE = "Loc",...GO
2e30: 50 48 45 52 5f 47 45 4f 47 5f 41 54 54 52 49 42  PHER_GEOG_ATTRIB
2e40: 55 54 45 20 20 20 20 20 3d 20 22 47 65 6f 67 22  UTE     = "Geog"
2e50: 2c 0d 0a 09 47 4f 50 48 45 52 5f 54 49 4d 45 5a  ,...GOPHER_TIMEZ
2e60: 4f 4e 45 5f 41 54 54 52 49 42 55 54 45 20 3d 20  ONE_ATTRIBUTE = 
2e70: 22 54 5a 22 2c 0d 0a 09 47 4f 50 48 45 52 5f 50  "TZ",...GOPHER_P
2e80: 52 4f 56 49 44 45 52 5f 41 54 54 52 49 42 55 54  ROVIDER_ATTRIBUT
2e90: 45 20 3d 20 22 50 72 6f 76 69 64 65 72 22 2c 0d  E = "Provider",.
2ea0: 0a 09 47 4f 50 48 45 52 5f 56 45 52 53 49 4f 4e  ..GOPHER_VERSION
2eb0: 5f 41 54 54 52 49 42 55 54 45 20 20 3d 20 22 56  _ATTRIBUTE  = "V
2ec0: 65 72 73 69 6f 6e 22 2c 0d 0a 09 47 4f 50 48 45  ersion",...GOPHE
2ed0: 52 5f 41 42 53 54 52 41 43 54 5f 41 54 54 52 49  R_ABSTRACT_ATTRI
2ee0: 42 55 54 45 20 3d 20 22 41 62 73 74 72 61 63 74  BUTE = "Abstract
2ef0: 22 2c 0d 0a 09 47 4f 50 48 45 52 5f 56 49 45 57  ",...GOPHER_VIEW
2f00: 5f 41 54 54 52 49 42 55 54 45 20 20 20 20 20 3d  _ATTRIBUTE     =
2f10: 20 22 56 69 65 77 22 2c 0d 0a 09 47 4f 50 48 45   "View",...GOPHE
2f20: 52 5f 54 52 45 45 57 41 4c 4b 5f 41 54 54 52 49  R_TREEWALK_ATTRI
2f30: 42 55 54 45 20 3d 20 22 74 72 65 65 77 61 6c 6b  BUTE = "treewalk
2f40: 22 3b 0d 0a 0d 0a 65 6e 75 6d 20 3a 20 44 57 4f  ";....enum : DWO
2f50: 52 44 20 7b 0d 0a 09 47 4f 50 48 45 52 5f 41 54  RD {...GOPHER_AT
2f60: 54 52 49 42 55 54 45 5f 49 44 5f 42 41 53 45 20  TRIBUTE_ID_BASE 
2f70: 3d 20 30 78 41 42 43 43 43 43 30 30 2c 0d 0a 09  = 0xABCCCC00,...
2f80: 47 4f 50 48 45 52 5f 43 41 54 45 47 4f 52 59 5f  GOPHER_CATEGORY_
2f90: 49 44 5f 41 4c 4c 2c 0d 0a 09 47 4f 50 48 45 52  ID_ALL,...GOPHER
2fa0: 5f 43 41 54 45 47 4f 52 59 5f 49 44 5f 49 4e 46  _CATEGORY_ID_INF
2fb0: 4f 2c 0d 0a 09 47 4f 50 48 45 52 5f 43 41 54 45  O,...GOPHER_CATE
2fc0: 47 4f 52 59 5f 49 44 5f 41 44 4d 49 4e 2c 0d 0a  GORY_ID_ADMIN,..
2fd0: 09 47 4f 50 48 45 52 5f 43 41 54 45 47 4f 52 59  .GOPHER_CATEGORY
2fe0: 5f 49 44 5f 56 49 45 57 53 2c 0d 0a 09 47 4f 50  _ID_VIEWS,...GOP
2ff0: 48 45 52 5f 43 41 54 45 47 4f 52 59 5f 49 44 5f  HER_CATEGORY_ID_
3000: 41 42 53 54 52 41 43 54 2c 0d 0a 09 47 4f 50 48  ABSTRACT,...GOPH
3010: 45 52 5f 43 41 54 45 47 4f 52 59 5f 49 44 5f 56  ER_CATEGORY_ID_V
3020: 45 52 4f 4e 49 43 41 2c 0d 0a 09 47 4f 50 48 45  ERONICA,...GOPHE
3030: 52 5f 43 41 54 45 47 4f 52 59 5f 49 44 5f 41 53  R_CATEGORY_ID_AS
3040: 4b 2c 0d 0a 09 47 4f 50 48 45 52 5f 43 41 54 45  K,...GOPHER_CATE
3050: 47 4f 52 59 5f 49 44 5f 55 4e 4b 4e 4f 57 4e 2c  GORY_ID_UNKNOWN,
3060: 0d 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42  ...GOPHER_ATTRIB
3070: 55 54 45 5f 49 44 5f 41 4c 4c 2c 0d 0a 09 47 4f  UTE_ID_ALL,...GO
3080: 50 48 45 52 5f 41 54 54 52 49 42 55 54 45 5f 49  PHER_ATTRIBUTE_I
3090: 44 5f 41 44 4d 49 4e 2c 0d 0a 09 47 4f 50 48 45  D_ADMIN,...GOPHE
30a0: 52 5f 41 54 54 52 49 42 55 54 45 5f 49 44 5f 4d  R_ATTRIBUTE_ID_M
30b0: 4f 44 5f 44 41 54 45 2c 0d 0a 09 47 4f 50 48 45  OD_DATE,...GOPHE
30c0: 52 5f 41 54 54 52 49 42 55 54 45 5f 49 44 5f 54  R_ATTRIBUTE_ID_T
30d0: 54 4c 2c 0d 0a 09 47 4f 50 48 45 52 5f 41 54 54  TL,...GOPHER_ATT
30e0: 52 49 42 55 54 45 5f 49 44 5f 53 43 4f 52 45 2c  RIBUTE_ID_SCORE,
30f0: 0d 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42  ...GOPHER_ATTRIB
3100: 55 54 45 5f 49 44 5f 52 41 4e 47 45 2c 0d 0a 09  UTE_ID_RANGE,...
3110: 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55 54 45  GOPHER_ATTRIBUTE
3120: 5f 49 44 5f 53 49 54 45 2c 0d 0a 09 47 4f 50 48  _ID_SITE,...GOPH
3130: 45 52 5f 41 54 54 52 49 42 55 54 45 5f 49 44 5f  ER_ATTRIBUTE_ID_
3140: 4f 52 47 2c 0d 0a 09 47 4f 50 48 45 52 5f 41 54  ORG,...GOPHER_AT
3150: 54 52 49 42 55 54 45 5f 49 44 5f 4c 4f 43 41 54  TRIBUTE_ID_LOCAT
3160: 49 4f 4e 2c 0d 0a 09 47 4f 50 48 45 52 5f 41 54  ION,...GOPHER_AT
3170: 54 52 49 42 55 54 45 5f 49 44 5f 47 45 4f 47 2c  TRIBUTE_ID_GEOG,
3180: 0d 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42  ...GOPHER_ATTRIB
3190: 55 54 45 5f 49 44 5f 54 49 4d 45 5a 4f 4e 45 2c  UTE_ID_TIMEZONE,
31a0: 0d 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42  ...GOPHER_ATTRIB
31b0: 55 54 45 5f 49 44 5f 50 52 4f 56 49 44 45 52 2c  UTE_ID_PROVIDER,
31c0: 0d 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42  ...GOPHER_ATTRIB
31d0: 55 54 45 5f 49 44 5f 56 45 52 53 49 4f 4e 2c 0d  UTE_ID_VERSION,.
31e0: 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55  ..GOPHER_ATTRIBU
31f0: 54 45 5f 49 44 5f 41 42 53 54 52 41 43 54 2c 0d  TE_ID_ABSTRACT,.
3200: 0a 09 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55  ..GOPHER_ATTRIBU
3210: 54 45 5f 49 44 5f 56 49 45 57 2c 0d 0a 09 47 4f  TE_ID_VIEW,...GO
3220: 50 48 45 52 5f 41 54 54 52 49 42 55 54 45 5f 49  PHER_ATTRIBUTE_I
3230: 44 5f 54 52 45 45 57 41 4c 4b 2c 0d 0a 09 47 4f  D_TREEWALK,...GO
3240: 50 48 45 52 5f 41 54 54 52 49 42 55 54 45 5f 49  PHER_ATTRIBUTE_I
3250: 44 5f 55 4e 4b 4e 4f 57 4e 0d 0a 7d 0d 0a 0d 0a  D_UNKNOWN..}....
3260: 63 6f 6e 73 74 20 48 54 54 50 5f 4d 41 4a 4f 52  const HTTP_MAJOR
3270: 5f 56 45 52 53 49 4f 4e 20 20 20 3d 20 31 3b 0d  _VERSION   = 1;.
3280: 0a 63 6f 6e 73 74 20 48 54 54 50 5f 4d 49 4e 4f  .const HTTP_MINO
3290: 52 5f 56 45 52 53 49 4f 4e 20 20 20 3d 20 30 3b  R_VERSION   = 0;
32a0: 0d 0a 63 6f 6e 73 74 20 54 43 48 41 52 5b 5d 20  ..const TCHAR[] 
32b0: 48 54 54 50 5f 56 45 52 53 49 4f 4e 20 3d 20 22  HTTP_VERSION = "
32c0: 48 54 54 50 2f 31 2e 30 22 3b 0d 0a 0d 0a 65 6e  HTTP/1.0";....en
32d0: 75 6d 20 3a 20 44 57 4f 52 44 20 7b 0d 0a 09 48  um : DWORD {...H
32e0: 54 54 50 5f 51 55 45 52 59 5f 4d 49 4d 45 5f 56  TTP_QUERY_MIME_V
32f0: 45 52 53 49 4f 4e 2c 0d 0a 09 48 54 54 50 5f 51  ERSION,...HTTP_Q
3300: 55 45 52 59 5f 43 4f 4e 54 45 4e 54 5f 54 59 50  UERY_CONTENT_TYP
3310: 45 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f  E,...HTTP_QUERY_
3320: 43 4f 4e 54 45 4e 54 5f 54 52 41 4e 53 46 45 52  CONTENT_TRANSFER
3330: 5f 45 4e 43 4f 44 49 4e 47 2c 0d 0a 09 48 54 54  _ENCODING,...HTT
3340: 50 5f 51 55 45 52 59 5f 43 4f 4e 54 45 4e 54 5f  P_QUERY_CONTENT_
3350: 49 44 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59  ID,...HTTP_QUERY
3360: 5f 43 4f 4e 54 45 4e 54 5f 44 45 53 43 52 49 50  _CONTENT_DESCRIP
3370: 54 49 4f 4e 2c 0d 0a 09 48 54 54 50 5f 51 55 45  TION,...HTTP_QUE
3380: 52 59 5f 43 4f 4e 54 45 4e 54 5f 4c 45 4e 47 54  RY_CONTENT_LENGT
3390: 48 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f  H,...HTTP_QUERY_
33a0: 43 4f 4e 54 45 4e 54 5f 4c 41 4e 47 55 41 47 45  CONTENT_LANGUAGE
33b0: 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 41  ,...HTTP_QUERY_A
33c0: 4c 4c 4f 57 2c 0d 0a 09 48 54 54 50 5f 51 55 45  LLOW,...HTTP_QUE
33d0: 52 59 5f 50 55 42 4c 49 43 2c 0d 0a 09 48 54 54  RY_PUBLIC,...HTT
33e0: 50 5f 51 55 45 52 59 5f 44 41 54 45 2c 0d 0a 09  P_QUERY_DATE,...
33f0: 48 54 54 50 5f 51 55 45 52 59 5f 45 58 50 49 52  HTTP_QUERY_EXPIR
3400: 45 53 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59  ES,...HTTP_QUERY
3410: 5f 4c 41 53 54 5f 4d 4f 44 49 46 49 45 44 2c 0d  _LAST_MODIFIED,.
3420: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 4d 45 53  ..HTTP_QUERY_MES
3430: 53 41 47 45 5f 49 44 2c 0d 0a 09 48 54 54 50 5f  SAGE_ID,...HTTP_
3440: 51 55 45 52 59 5f 55 52 49 2c 0d 0a 09 48 54 54  QUERY_URI,...HTT
3450: 50 5f 51 55 45 52 59 5f 44 45 52 49 56 45 44 5f  P_QUERY_DERIVED_
3460: 46 52 4f 4d 2c 0d 0a 09 48 54 54 50 5f 51 55 45  FROM,...HTTP_QUE
3470: 52 59 5f 43 4f 53 54 2c 0d 0a 09 48 54 54 50 5f  RY_COST,...HTTP_
3480: 51 55 45 52 59 5f 4c 49 4e 4b 2c 0d 0a 09 48 54  QUERY_LINK,...HT
3490: 54 50 5f 51 55 45 52 59 5f 50 52 41 47 4d 41 2c  TP_QUERY_PRAGMA,
34a0: 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 56 45  ...HTTP_QUERY_VE
34b0: 52 53 49 4f 4e 2c 0d 0a 09 48 54 54 50 5f 51 55  RSION,...HTTP_QU
34c0: 45 52 59 5f 53 54 41 54 55 53 5f 43 4f 44 45 2c  ERY_STATUS_CODE,
34d0: 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 53 54  ...HTTP_QUERY_ST
34e0: 41 54 55 53 5f 54 45 58 54 2c 0d 0a 09 48 54 54  ATUS_TEXT,...HTT
34f0: 50 5f 51 55 45 52 59 5f 52 41 57 5f 48 45 41 44  P_QUERY_RAW_HEAD
3500: 45 52 53 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52  ERS,...HTTP_QUER
3510: 59 5f 52 41 57 5f 48 45 41 44 45 52 53 5f 43 52  Y_RAW_HEADERS_CR
3520: 4c 46 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59  LF,...HTTP_QUERY
3530: 5f 43 4f 4e 4e 45 43 54 49 4f 4e 2c 0d 0a 09 48  _CONNECTION,...H
3540: 54 54 50 5f 51 55 45 52 59 5f 41 43 43 45 50 54  TTP_QUERY_ACCEPT
3550: 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 41  ,...HTTP_QUERY_A
3560: 43 43 45 50 54 5f 43 48 41 52 53 45 54 2c 0d 0a  CCEPT_CHARSET,..
3570: 09 48 54 54 50 5f 51 55 45 52 59 5f 41 43 43 45  .HTTP_QUERY_ACCE
3580: 50 54 5f 45 4e 43 4f 44 49 4e 47 2c 0d 0a 09 48  PT_ENCODING,...H
3590: 54 54 50 5f 51 55 45 52 59 5f 41 43 43 45 50 54  TTP_QUERY_ACCEPT
35a0: 5f 4c 41 4e 47 55 41 47 45 2c 0d 0a 09 48 54 54  _LANGUAGE,...HTT
35b0: 50 5f 51 55 45 52 59 5f 41 55 54 48 4f 52 49 5a  P_QUERY_AUTHORIZ
35c0: 41 54 49 4f 4e 2c 0d 0a 09 48 54 54 50 5f 51 55  ATION,...HTTP_QU
35d0: 45 52 59 5f 43 4f 4e 54 45 4e 54 5f 45 4e 43 4f  ERY_CONTENT_ENCO
35e0: 44 49 4e 47 2c 0d 0a 09 48 54 54 50 5f 51 55 45  DING,...HTTP_QUE
35f0: 52 59 5f 46 4f 52 57 41 52 44 45 44 2c 0d 0a 09  RY_FORWARDED,...
3600: 48 54 54 50 5f 51 55 45 52 59 5f 46 52 4f 4d 2c  HTTP_QUERY_FROM,
3610: 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 49 46  ...HTTP_QUERY_IF
3620: 5f 4d 4f 44 49 46 49 45 44 5f 53 49 4e 43 45 2c  _MODIFIED_SINCE,
3630: 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 4c 4f  ...HTTP_QUERY_LO
3640: 43 41 54 49 4f 4e 2c 0d 0a 09 48 54 54 50 5f 51  CATION,...HTTP_Q
3650: 55 45 52 59 5f 4f 52 49 47 5f 55 52 49 2c 0d 0a  UERY_ORIG_URI,..
3660: 09 48 54 54 50 5f 51 55 45 52 59 5f 52 45 46 45  .HTTP_QUERY_REFE
3670: 52 45 52 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52  RER,...HTTP_QUER
3680: 59 5f 52 45 54 52 59 5f 41 46 54 45 52 2c 0d 0a  Y_RETRY_AFTER,..
3690: 09 48 54 54 50 5f 51 55 45 52 59 5f 53 45 52 56  .HTTP_QUERY_SERV
36a0: 45 52 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59  ER,...HTTP_QUERY
36b0: 5f 54 49 54 4c 45 2c 0d 0a 09 48 54 54 50 5f 51  _TITLE,...HTTP_Q
36c0: 55 45 52 59 5f 55 53 45 52 5f 41 47 45 4e 54 2c  UERY_USER_AGENT,
36d0: 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 57 57  ...HTTP_QUERY_WW
36e0: 57 5f 41 55 54 48 45 4e 54 49 43 41 54 45 2c 0d  W_AUTHENTICATE,.
36f0: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 50 52 4f  ..HTTP_QUERY_PRO
3700: 58 59 5f 41 55 54 48 45 4e 54 49 43 41 54 45 2c  XY_AUTHENTICATE,
3710: 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 41 43  ...HTTP_QUERY_AC
3720: 43 45 50 54 5f 52 41 4e 47 45 53 2c 0d 0a 09 48  CEPT_RANGES,...H
3730: 54 54 50 5f 51 55 45 52 59 5f 53 45 54 5f 43 4f  TTP_QUERY_SET_CO
3740: 4f 4b 49 45 2c 0d 0a 09 48 54 54 50 5f 51 55 45  OKIE,...HTTP_QUE
3750: 52 59 5f 43 4f 4f 4b 49 45 2c 0d 0a 09 48 54 54  RY_COOKIE,...HTT
3760: 50 5f 51 55 45 52 59 5f 52 45 51 55 45 53 54 5f  P_QUERY_REQUEST_
3770: 4d 45 54 48 4f 44 2c 0d 0a 09 48 54 54 50 5f 51  METHOD,...HTTP_Q
3780: 55 45 52 59 5f 4d 41 58 20 20 20 20 3d 20 34 35  UERY_MAX    = 45
3790: 2c 0d 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 43  ,...HTTP_QUERY_C
37a0: 55 53 54 4f 4d 20 3d 20 36 35 35 33 35 0d 0a 7d  USTOM = 65535..}
37b0: 0d 0a 0d 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0d  ....const DWORD.
37c0: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 46 4c 41  ..HTTP_QUERY_FLA
37d0: 47 5f 52 45 51 55 45 53 54 5f 48 45 41 44 45 52  G_REQUEST_HEADER
37e0: 53 20 3d 20 30 78 38 30 30 30 30 30 30 30 2c 0d  S = 0x80000000,.
37f0: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 46 4c 41  ..HTTP_QUERY_FLA
3800: 47 5f 53 59 53 54 45 4d 54 49 4d 45 20 20 20 20  G_SYSTEMTIME    
3810: 20 20 3d 20 30 78 34 30 30 30 30 30 30 30 2c 0d    = 0x40000000,.
3820: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 46 4c 41  ..HTTP_QUERY_FLA
3830: 47 5f 4e 55 4d 42 45 52 20 20 20 20 20 20 20 20  G_NUMBER        
3840: 20 20 3d 20 30 78 32 30 30 30 30 30 30 30 2c 0d    = 0x20000000,.
3850: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 46 4c 41  ..HTTP_QUERY_FLA
3860: 47 5f 43 4f 41 4c 45 53 43 45 20 20 20 20 20 20  G_COALESCE      
3870: 20 20 3d 20 30 78 31 30 30 30 30 30 30 30 2c 0d    = 0x10000000,.
3880: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 4d 4f 44  ..HTTP_QUERY_MOD
3890: 49 46 49 45 52 5f 46 4c 41 47 53 5f 4d 41 53 4b  IFIER_FLAGS_MASK
38a0: 20 20 3d 20 30 78 46 30 30 30 30 30 30 30 2c 0d    = 0xF0000000,.
38b0: 0a 09 48 54 54 50 5f 51 55 45 52 59 5f 48 45 41  ..HTTP_QUERY_HEA
38c0: 44 45 52 5f 4d 41 53 4b 20 20 20 20 20 20 20 20  DER_MASK        
38d0: 20 20 3d 20 7e 48 54 54 50 5f 51 55 45 52 59 5f    = ~HTTP_QUERY_
38e0: 4d 4f 44 49 46 49 45 52 5f 46 4c 41 47 53 5f 4d  MODIFIER_FLAGS_M
38f0: 41 53 4b 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a  ASK;....enum {..
3900: 09 48 54 54 50 5f 53 54 41 54 55 53 5f 4f 4b 20  .HTTP_STATUS_OK 
3910: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3920: 3d 20 32 30 30 2c 0d 0a 09 48 54 54 50 5f 53 54  = 200,...HTTP_ST
3930: 41 54 55 53 5f 43 52 45 41 54 45 44 2c 0d 0a 09  ATUS_CREATED,...
3940: 48 54 54 50 5f 53 54 41 54 55 53 5f 41 43 43 45  HTTP_STATUS_ACCE
3950: 50 54 45 44 2c 0d 0a 09 48 54 54 50 5f 53 54 41  PTED,...HTTP_STA
3960: 54 55 53 5f 50 41 52 54 49 41 4c 2c 0d 0a 09 48  TUS_PARTIAL,...H
3970: 54 54 50 5f 53 54 41 54 55 53 5f 4e 4f 5f 43 4f  TTP_STATUS_NO_CO
3980: 4e 54 45 4e 54 2c 20 20 20 20 20 2f 2f 20 3d 20  NTENT,     // = 
3990: 32 30 34 0d 0a 09 48 54 54 50 5f 53 54 41 54 55  204...HTTP_STATU
39a0: 53 5f 41 4d 42 49 47 55 4f 55 53 20 20 20 20 20  S_AMBIGUOUS     
39b0: 20 20 20 20 20 3d 20 33 30 30 2c 0d 0a 09 48 54       = 300,...HT
39c0: 54 50 5f 53 54 41 54 55 53 5f 4d 4f 56 45 44 2c  TP_STATUS_MOVED,
39d0: 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53 5f 52  ...HTTP_STATUS_R
39e0: 45 44 49 52 45 43 54 2c 0d 0a 09 48 54 54 50 5f  EDIRECT,...HTTP_
39f0: 53 54 41 54 55 53 5f 52 45 44 49 52 45 43 54 5f  STATUS_REDIRECT_
3a00: 4d 45 54 48 4f 44 2c 0d 0a 09 48 54 54 50 5f 53  METHOD,...HTTP_S
3a10: 54 41 54 55 53 5f 4e 4f 54 5f 4d 4f 44 49 46 49  TATUS_NOT_MODIFI
3a20: 45 44 2c 20 20 20 2f 2f 20 3d 20 33 30 34 0d 0a  ED,   // = 304..
3a30: 09 48 54 54 50 5f 53 54 41 54 55 53 5f 42 41 44  .HTTP_STATUS_BAD
3a40: 5f 52 45 51 55 45 53 54 20 20 20 20 20 20 20 20  _REQUEST        
3a50: 3d 20 34 30 30 2c 0d 0a 09 48 54 54 50 5f 53 54  = 400,...HTTP_ST
3a60: 41 54 55 53 5f 44 45 4e 49 45 44 2c 0d 0a 09 48  ATUS_DENIED,...H
3a70: 54 54 50 5f 53 54 41 54 55 53 5f 50 41 59 4d 45  TTP_STATUS_PAYME
3a80: 4e 54 5f 52 45 51 2c 0d 0a 09 48 54 54 50 5f 53  NT_REQ,...HTTP_S
3a90: 54 41 54 55 53 5f 46 4f 52 42 49 44 44 45 4e 2c  TATUS_FORBIDDEN,
3aa0: 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53 5f 4e  ...HTTP_STATUS_N
3ab0: 4f 54 5f 46 4f 55 4e 44 2c 0d 0a 09 48 54 54 50  OT_FOUND,...HTTP
3ac0: 5f 53 54 41 54 55 53 5f 42 41 44 5f 4d 45 54 48  _STATUS_BAD_METH
3ad0: 4f 44 2c 0d 0a 09 48 54 54 50 5f 53 54 41 54 55  OD,...HTTP_STATU
3ae0: 53 5f 4e 4f 4e 45 5f 41 43 43 45 50 54 41 42 4c  S_NONE_ACCEPTABL
3af0: 45 2c 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53  E,...HTTP_STATUS
3b00: 5f 50 52 4f 58 59 5f 41 55 54 48 5f 52 45 51 2c  _PROXY_AUTH_REQ,
3b10: 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53 5f 52  ...HTTP_STATUS_R
3b20: 45 51 55 45 53 54 5f 54 49 4d 45 4f 55 54 2c 0d  EQUEST_TIMEOUT,.
3b30: 0a 09 48 54 54 50 5f 53 54 41 54 55 53 5f 43 4f  ..HTTP_STATUS_CO
3b40: 4e 46 4c 49 43 54 2c 0d 0a 09 48 54 54 50 5f 53  NFLICT,...HTTP_S
3b50: 54 41 54 55 53 5f 47 4f 4e 45 2c 0d 0a 09 48 54  TATUS_GONE,...HT
3b60: 54 50 5f 53 54 41 54 55 53 5f 41 55 54 48 5f 52  TP_STATUS_AUTH_R
3b70: 45 46 55 53 45 44 2c 20 20 20 2f 2f 20 3d 20 34  EFUSED,   // = 4
3b80: 31 31 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53  11...HTTP_STATUS
3b90: 5f 53 45 52 56 45 52 5f 45 52 52 4f 52 20 20 20  _SERVER_ERROR   
3ba0: 20 20 20 20 3d 20 35 30 30 2c 0d 0a 09 48 54 54      = 500,...HTT
3bb0: 50 5f 53 54 41 54 55 53 5f 4e 4f 54 5f 53 55 50  P_STATUS_NOT_SUP
3bc0: 50 4f 52 54 45 44 2c 0d 0a 09 48 54 54 50 5f 53  PORTED,...HTTP_S
3bd0: 54 41 54 55 53 5f 42 41 44 5f 47 41 54 45 57 41  TATUS_BAD_GATEWA
3be0: 59 2c 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53  Y,...HTTP_STATUS
3bf0: 5f 53 45 52 56 49 43 45 5f 55 4e 41 56 41 49 4c  _SERVICE_UNAVAIL
3c00: 2c 0d 0a 09 48 54 54 50 5f 53 54 41 54 55 53 5f  ,...HTTP_STATUS_
3c10: 47 41 54 45 57 41 59 5f 54 49 4d 45 4f 55 54 20  GATEWAY_TIMEOUT 
3c20: 2f 2f 20 3d 20 35 30 34 0d 0a 7d 0d 0a 0d 0a 65  // = 504..}....e
3c30: 6e 75 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54  num {...INTERNET
3c40: 5f 50 52 45 46 45 54 43 48 5f 50 52 4f 47 52 45  _PREFETCH_PROGRE
3c50: 53 53 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 50  SS,...INTERNET_P
3c60: 52 45 46 45 54 43 48 5f 43 4f 4d 50 4c 45 54 45  REFETCH_COMPLETE
3c70: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 50 52 45  ,...INTERNET_PRE
3c80: 46 45 54 43 48 5f 41 42 4f 52 54 45 44 0d 0a 7d  FETCH_ABORTED..}
3c90: 0d 0a 0d 0a 63 6f 6e 73 74 20 46 4c 41 47 53 5f  ....const FLAGS_
3ca0: 45 52 52 4f 52 5f 55 49 5f 46 49 4c 54 45 52 5f  ERROR_UI_FILTER_
3cb0: 46 4f 52 5f 45 52 52 4f 52 53 20 20 20 20 3d 20  FOR_ERRORS    = 
3cc0: 30 78 30 31 3b 0d 0a 63 6f 6e 73 74 20 46 4c 41  0x01;..const FLA
3cd0: 47 53 5f 45 52 52 4f 52 5f 55 49 5f 46 4c 41 47  GS_ERROR_UI_FLAG
3ce0: 53 5f 43 48 41 4e 47 45 5f 4f 50 54 49 4f 4e 53  S_CHANGE_OPTIONS
3cf0: 20 3d 20 30 78 30 32 3b 0d 0a 63 6f 6e 73 74 20   = 0x02;..const 
3d00: 46 4c 41 47 53 5f 45 52 52 4f 52 5f 55 49 5f 46  FLAGS_ERROR_UI_F
3d10: 4c 41 47 53 5f 47 45 4e 45 52 41 54 45 5f 44 41  LAGS_GENERATE_DA
3d20: 54 41 20 20 3d 20 30 78 30 34 3b 0d 0a 63 6f 6e  TA  = 0x04;..con
3d30: 73 74 20 46 4c 41 47 53 5f 45 52 52 4f 52 5f 55  st FLAGS_ERROR_U
3d40: 49 5f 46 4c 41 47 53 5f 4e 4f 5f 55 49 20 20 20  I_FLAGS_NO_UI   
3d50: 20 20 20 20 20 20 20 3d 20 30 78 30 38 3b 0d 0a         = 0x08;..
3d60: 0d 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0d 0a 09  ..const DWORD...
3d70: 48 54 54 50 5f 41 44 44 52 45 51 5f 49 4e 44 45  HTTP_ADDREQ_INDE
3d80: 58 5f 4d 41 53 4b 20 20 20 20 20 20 20 20 20 20  X_MASK          
3d90: 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30           = 0x000
3da0: 30 46 46 46 46 2c 0d 0a 09 48 54 54 50 5f 41 44  0FFFF,...HTTP_AD
3db0: 44 52 45 51 5f 46 4c 41 47 53 5f 4d 41 53 4b 20  DREQ_FLAGS_MASK 
3dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3dd0: 20 20 3d 20 30 78 46 46 46 46 30 30 30 30 2c 0d    = 0xFFFF0000,.
3de0: 0a 09 48 54 54 50 5f 41 44 44 52 45 51 5f 46 4c  ..HTTP_ADDREQ_FL
3df0: 41 47 5f 43 4f 41 4c 45 53 43 45 5f 57 49 54 48  AG_COALESCE_WITH
3e00: 5f 53 45 4d 49 43 4f 4c 4f 4e 20 3d 20 30 78 30  _SEMICOLON = 0x0
3e10: 31 30 30 30 30 30 30 2c 0d 0a 09 48 54 54 50 5f  1000000,...HTTP_
3e20: 41 44 44 52 45 51 5f 46 4c 41 47 5f 41 44 44 5f  ADDREQ_FLAG_ADD_
3e30: 49 46 5f 4e 45 57 20 20 20 20 20 20 20 20 20 20  IF_NEW          
3e40: 20 20 20 20 3d 20 30 78 31 30 30 30 30 30 30 30      = 0x10000000
3e50: 2c 0d 0a 09 48 54 54 50 5f 41 44 44 52 45 51 5f  ,...HTTP_ADDREQ_
3e60: 46 4c 41 47 5f 41 44 44 20 20 20 20 20 20 20 20  FLAG_ADD        
3e70: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
3e80: 78 32 30 30 30 30 30 30 30 2c 0d 0a 09 48 54 54  x20000000,...HTT
3e90: 50 5f 41 44 44 52 45 51 5f 46 4c 41 47 5f 43 4f  P_ADDREQ_FLAG_CO
3ea0: 41 4c 45 53 43 45 5f 57 49 54 48 5f 43 4f 4d 4d  ALESCE_WITH_COMM
3eb0: 41 20 20 20 20 20 3d 20 30 78 34 30 30 30 30 30  A     = 0x400000
3ec0: 30 30 2c 0d 0a 09 48 54 54 50 5f 41 44 44 52 45  00,...HTTP_ADDRE
3ed0: 51 5f 46 4c 41 47 5f 43 4f 41 4c 45 53 43 45 20  Q_FLAG_COALESCE 
3ee0: 20 20 20 20 20 20 20 20 20 3d 20 48 54 54 50 5f           = HTTP_
3ef0: 41 44 44 52 45 51 5f 46 4c 41 47 5f 43 4f 41 4c  ADDREQ_FLAG_COAL
3f00: 45 53 43 45 5f 57 49 54 48 5f 43 4f 4d 4d 41 2c  ESCE_WITH_COMMA,
3f10: 0d 0a 09 48 54 54 50 5f 41 44 44 52 45 51 5f 46  ...HTTP_ADDREQ_F
3f20: 4c 41 47 5f 52 45 50 4c 41 43 45 20 20 20 20 20  LAG_REPLACE     
3f30: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
3f40: 38 30 30 30 30 30 30 30 3b 0d 0a 0d 0a 65 6e 75  80000000;....enu
3f50: 6d 20 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 45  m {...INTERNET_E
3f60: 52 52 4f 52 5f 42 41 53 45 20 20 20 20 20 20 20  RROR_BASE       
3f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3f80: 3d 20 31 32 30 30 30 2c 0d 0a 09 45 52 52 4f 52  = 12000,...ERROR
3f90: 5f 49 4e 54 45 52 4e 45 54 5f 4f 55 54 5f 4f 46  _INTERNET_OUT_OF
3fa0: 5f 48 41 4e 44 4c 45 53 2c 0d 0a 09 45 52 52 4f  _HANDLES,...ERRO
3fb0: 52 5f 49 4e 54 45 52 4e 45 54 5f 54 49 4d 45 4f  R_INTERNET_TIMEO
3fc0: 55 54 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  UT,...ERROR_INTE
3fd0: 52 4e 45 54 5f 45 58 54 45 4e 44 45 44 5f 45 52  RNET_EXTENDED_ER
3fe0: 52 4f 52 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54  ROR,...ERROR_INT
3ff0: 45 52 4e 45 54 5f 49 4e 54 45 52 4e 41 4c 5f 45  ERNET_INTERNAL_E
4000: 52 52 4f 52 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e  RROR,...ERROR_IN
4010: 54 45 52 4e 45 54 5f 49 4e 56 41 4c 49 44 5f 55  TERNET_INVALID_U
4020: 52 4c 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  RL,...ERROR_INTE
4030: 52 4e 45 54 5f 55 4e 52 45 43 4f 47 4e 49 5a 45  RNET_UNRECOGNIZE
4040: 44 5f 53 43 48 45 4d 45 2c 0d 0a 09 45 52 52 4f  D_SCHEME,...ERRO
4050: 52 5f 49 4e 54 45 52 4e 45 54 5f 4e 41 4d 45 5f  R_INTERNET_NAME_
4060: 4e 4f 54 5f 52 45 53 4f 4c 56 45 44 2c 0d 0a 09  NOT_RESOLVED,...
4070: 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 50  ERROR_INTERNET_P
4080: 52 4f 54 4f 43 4f 4c 5f 4e 4f 54 5f 46 4f 55 4e  ROTOCOL_NOT_FOUN
4090: 44 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52  D,...ERROR_INTER
40a0: 4e 45 54 5f 49 4e 56 41 4c 49 44 5f 4f 50 54 49  NET_INVALID_OPTI
40b0: 4f 4e 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  ON,...ERROR_INTE
40c0: 52 4e 45 54 5f 42 41 44 5f 4f 50 54 49 4f 4e 5f  RNET_BAD_OPTION_
40d0: 4c 45 4e 47 54 48 2c 0d 0a 09 45 52 52 4f 52 5f  LENGTH,...ERROR_
40e0: 49 4e 54 45 52 4e 45 54 5f 4f 50 54 49 4f 4e 5f  INTERNET_OPTION_
40f0: 4e 4f 54 5f 53 45 54 54 41 42 4c 45 2c 0d 0a 09  NOT_SETTABLE,...
4100: 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 53  ERROR_INTERNET_S
4110: 48 55 54 44 4f 57 4e 2c 0d 0a 09 45 52 52 4f 52  HUTDOWN,...ERROR
4120: 5f 49 4e 54 45 52 4e 45 54 5f 49 4e 43 4f 52 52  _INTERNET_INCORR
4130: 45 43 54 5f 55 53 45 52 5f 4e 41 4d 45 2c 0d 0a  ECT_USER_NAME,..
4140: 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f  .ERROR_INTERNET_
4150: 49 4e 43 4f 52 52 45 43 54 5f 50 41 53 53 57 4f  INCORRECT_PASSWO
4160: 52 44 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  RD,...ERROR_INTE
4170: 52 4e 45 54 5f 4c 4f 47 49 4e 5f 46 41 49 4c 55  RNET_LOGIN_FAILU
4180: 52 45 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  RE,...ERROR_INTE
4190: 52 4e 45 54 5f 49 4e 56 41 4c 49 44 5f 4f 50 45  RNET_INVALID_OPE
41a0: 52 41 54 49 4f 4e 2c 0d 0a 09 45 52 52 4f 52 5f  RATION,...ERROR_
41b0: 49 4e 54 45 52 4e 45 54 5f 4f 50 45 52 41 54 49  INTERNET_OPERATI
41c0: 4f 4e 5f 43 41 4e 43 45 4c 4c 45 44 2c 0d 0a 09  ON_CANCELLED,...
41d0: 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 49  ERROR_INTERNET_I
41e0: 4e 43 4f 52 52 45 43 54 5f 48 41 4e 44 4c 45 5f  NCORRECT_HANDLE_
41f0: 54 59 50 45 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e  TYPE,...ERROR_IN
4200: 54 45 52 4e 45 54 5f 49 4e 43 4f 52 52 45 43 54  TERNET_INCORRECT
4210: 5f 48 41 4e 44 4c 45 5f 53 54 41 54 45 2c 0d 0a  _HANDLE_STATE,..
4220: 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f  .ERROR_INTERNET_
4230: 4e 4f 54 5f 50 52 4f 58 59 5f 52 45 51 55 45 53  NOT_PROXY_REQUES
4240: 54 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52  T,...ERROR_INTER
4250: 4e 45 54 5f 52 45 47 49 53 54 52 59 5f 56 41 4c  NET_REGISTRY_VAL
4260: 55 45 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 0d 0a 09  UE_NOT_FOUND,...
4270: 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 42  ERROR_INTERNET_B
4280: 41 44 5f 52 45 47 49 53 54 52 59 5f 50 41 52 41  AD_REGISTRY_PARA
4290: 4d 45 54 45 52 2c 0d 0a 09 45 52 52 4f 52 5f 49  METER,...ERROR_I
42a0: 4e 54 45 52 4e 45 54 5f 4e 4f 5f 44 49 52 45 43  NTERNET_NO_DIREC
42b0: 54 5f 41 43 43 45 53 53 2c 0d 0a 09 45 52 52 4f  T_ACCESS,...ERRO
42c0: 52 5f 49 4e 54 45 52 4e 45 54 5f 4e 4f 5f 43 4f  R_INTERNET_NO_CO
42d0: 4e 54 45 58 54 2c 0d 0a 09 45 52 52 4f 52 5f 49  NTEXT,...ERROR_I
42e0: 4e 54 45 52 4e 45 54 5f 4e 4f 5f 43 41 4c 4c 42  NTERNET_NO_CALLB
42f0: 41 43 4b 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54  ACK,...ERROR_INT
4300: 45 52 4e 45 54 5f 52 45 51 55 45 53 54 5f 50 45  ERNET_REQUEST_PE
4310: 4e 44 49 4e 47 2c 0d 0a 09 45 52 52 4f 52 5f 49  NDING,...ERROR_I
4320: 4e 54 45 52 4e 45 54 5f 49 4e 43 4f 52 52 45 43  NTERNET_INCORREC
4330: 54 5f 46 4f 52 4d 41 54 2c 0d 0a 09 45 52 52 4f  T_FORMAT,...ERRO
4340: 52 5f 49 4e 54 45 52 4e 45 54 5f 49 54 45 4d 5f  R_INTERNET_ITEM_
4350: 4e 4f 54 5f 46 4f 55 4e 44 2c 0d 0a 09 45 52 52  NOT_FOUND,...ERR
4360: 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 43 41 4e 4e  OR_INTERNET_CANN
4370: 4f 54 5f 43 4f 4e 4e 45 43 54 2c 0d 0a 09 45 52  OT_CONNECT,...ER
4380: 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 43 4f 4e  ROR_INTERNET_CON
4390: 4e 45 43 54 49 4f 4e 5f 41 42 4f 52 54 45 44 2c  NECTION_ABORTED,
43a0: 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45  ...ERROR_INTERNE
43b0: 54 5f 43 4f 4e 4e 45 43 54 49 4f 4e 5f 52 45 53  T_CONNECTION_RES
43c0: 45 54 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  ET,...ERROR_INTE
43d0: 52 4e 45 54 5f 46 4f 52 43 45 5f 52 45 54 52 59  RNET_FORCE_RETRY
43e0: 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e  ,...ERROR_INTERN
43f0: 45 54 5f 49 4e 56 41 4c 49 44 5f 50 52 4f 58 59  ET_INVALID_PROXY
4400: 5f 52 45 51 55 45 53 54 2c 0d 0a 09 45 52 52 4f  _REQUEST,...ERRO
4410: 52 5f 49 4e 54 45 52 4e 45 54 5f 4e 45 45 44 5f  R_INTERNET_NEED_
4420: 55 49 2c 20 20 20 20 20 20 20 20 20 20 20 20 20  UI,             
4430: 20 20 20 2f 2f 20 3d 20 49 4e 54 45 52 4e 45 54     // = INTERNET
4440: 5f 45 52 52 4f 52 5f 42 41 53 45 20 2b 20 20 33  _ERROR_BASE +  3
4450: 34 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e  4...ERROR_INTERN
4460: 45 54 5f 48 41 4e 44 4c 45 5f 45 58 49 53 54 53  ET_HANDLE_EXISTS
4470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20                = 
4480: 49 4e 54 45 52 4e 45 54 5f 45 52 52 4f 52 5f 42  INTERNET_ERROR_B
4490: 41 53 45 20 2b 20 20 33 36 2c 0d 0a 09 45 52 52  ASE +  36,...ERR
44a0: 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 53 45 43 5f  OR_INTERNET_SEC_
44b0: 43 45 52 54 5f 44 41 54 45 5f 49 4e 56 41 4c 49  CERT_DATE_INVALI
44c0: 44 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52  D,...ERROR_INTER
44d0: 4e 45 54 5f 53 45 43 5f 43 45 52 54 5f 43 4e 5f  NET_SEC_CERT_CN_
44e0: 49 4e 56 41 4c 49 44 2c 0d 0a 09 45 52 52 4f 52  INVALID,...ERROR
44f0: 5f 49 4e 54 45 52 4e 45 54 5f 48 54 54 50 5f 54  _INTERNET_HTTP_T
4500: 4f 5f 48 54 54 50 53 5f 4f 4e 5f 52 45 44 49 52  O_HTTPS_ON_REDIR
4510: 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e  ,...ERROR_INTERN
4520: 45 54 5f 48 54 54 50 53 5f 54 4f 5f 48 54 54 50  ET_HTTPS_TO_HTTP
4530: 5f 4f 4e 5f 52 45 44 49 52 2c 0d 0a 09 45 52 52  _ON_REDIR,...ERR
4540: 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 4d 49 58 45  OR_INTERNET_MIXE
4550: 44 5f 53 45 43 55 52 49 54 59 2c 0d 0a 09 45 52  D_SECURITY,...ER
4560: 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f 43 48 47  ROR_INTERNET_CHG
4570: 5f 50 4f 53 54 5f 49 53 5f 4e 4f 4e 5f 53 45 43  _POST_IS_NON_SEC
4580: 55 52 45 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54  URE,...ERROR_INT
4590: 45 52 4e 45 54 5f 50 4f 53 54 5f 49 53 5f 4e 4f  ERNET_POST_IS_NO
45a0: 4e 5f 53 45 43 55 52 45 2c 0d 0a 09 45 52 52 4f  N_SECURE,...ERRO
45b0: 52 5f 49 4e 54 45 52 4e 45 54 5f 43 4c 49 45 4e  R_INTERNET_CLIEN
45c0: 54 5f 41 55 54 48 5f 43 45 52 54 5f 4e 45 45 44  T_AUTH_CERT_NEED
45d0: 45 44 2c 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45  ED,...ERROR_INTE
45e0: 52 4e 45 54 5f 49 4e 56 41 4c 49 44 5f 43 41 2c  RNET_INVALID_CA,
45f0: 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45  ...ERROR_INTERNE
4600: 54 5f 43 4c 49 45 4e 54 5f 41 55 54 48 5f 4e 4f  T_CLIENT_AUTH_NO
4610: 54 5f 53 45 54 55 50 2c 0d 0a 09 45 52 52 4f 52  T_SETUP,...ERROR
4620: 5f 49 4e 54 45 52 4e 45 54 5f 41 53 59 4e 43 5f  _INTERNET_ASYNC_
4630: 54 48 52 45 41 44 5f 46 41 49 4c 45 44 2c 0d 0a  THREAD_FAILED,..
4640: 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45 54 5f  .ERROR_INTERNET_
4650: 52 45 44 49 52 45 43 54 5f 53 43 48 45 4d 45 5f  REDIRECT_SCHEME_
4660: 43 48 41 4e 47 45 2c 20 2f 2f 20 3d 20 49 4e 54  CHANGE, // = INT
4670: 45 52 4e 45 54 5f 45 52 52 4f 52 5f 42 41 53 45  ERNET_ERROR_BASE
4680: 20 2b 20 20 34 38 0d 0a 0d 0a 09 45 52 52 4f 52   +  48.....ERROR
4690: 5f 46 54 50 5f 54 52 41 4e 53 46 45 52 5f 49 4e  _FTP_TRANSFER_IN
46a0: 5f 50 52 4f 47 52 45 53 53 20 20 20 20 20 20 20  _PROGRESS       
46b0: 20 20 20 20 20 3d 20 49 4e 54 45 52 4e 45 54 5f       = INTERNET_
46c0: 45 52 52 4f 52 5f 42 41 53 45 20 2b 20 31 31 30  ERROR_BASE + 110
46d0: 2c 0d 0a 09 45 52 52 4f 52 5f 46 54 50 5f 44 52  ,...ERROR_FTP_DR
46e0: 4f 50 50 45 44 2c 20 20 20 20 20 20 20 20 20 20  OPPED,          
46f0: 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 3d 20             // = 
4700: 49 4e 54 45 52 4e 45 54 5f 45 52 52 4f 52 5f 42  INTERNET_ERROR_B
4710: 41 53 45 20 2b 20 31 31 31 0d 0a 09 45 52 52 4f  ASE + 111...ERRO
4720: 52 5f 47 4f 50 48 45 52 5f 50 52 4f 54 4f 43 4f  R_GOPHER_PROTOCO
4730: 4c 5f 45 52 52 4f 52 20 20 20 20 20 20 20 20 20  L_ERROR         
4740: 20 20 20 20 20 20 3d 20 49 4e 54 45 52 4e 45 54        = INTERNET
4750: 5f 45 52 52 4f 52 5f 42 41 53 45 20 2b 20 31 33  _ERROR_BASE + 13
4760: 30 2c 0d 0a 09 45 52 52 4f 52 5f 47 4f 50 48 45  0,...ERROR_GOPHE
4770: 52 5f 4e 4f 54 5f 46 49 4c 45 2c 0d 0a 09 45 52  R_NOT_FILE,...ER
4780: 52 4f 52 5f 47 4f 50 48 45 52 5f 44 41 54 41 5f  ROR_GOPHER_DATA_
4790: 45 52 52 4f 52 2c 0d 0a 09 45 52 52 4f 52 5f 47  ERROR,...ERROR_G
47a0: 4f 50 48 45 52 5f 45 4e 44 5f 4f 46 5f 44 41 54  OPHER_END_OF_DAT
47b0: 41 2c 0d 0a 09 45 52 52 4f 52 5f 47 4f 50 48 45  A,...ERROR_GOPHE
47c0: 52 5f 49 4e 56 41 4c 49 44 5f 4c 4f 43 41 54 4f  R_INVALID_LOCATO
47d0: 52 2c 0d 0a 09 45 52 52 4f 52 5f 47 4f 50 48 45  R,...ERROR_GOPHE
47e0: 52 5f 49 4e 43 4f 52 52 45 43 54 5f 4c 4f 43 41  R_INCORRECT_LOCA
47f0: 54 4f 52 5f 54 59 50 45 2c 0d 0a 09 45 52 52 4f  TOR_TYPE,...ERRO
4800: 52 5f 47 4f 50 48 45 52 5f 4e 4f 54 5f 47 4f 50  R_GOPHER_NOT_GOP
4810: 48 45 52 5f 50 4c 55 53 2c 0d 0a 09 45 52 52 4f  HER_PLUS,...ERRO
4820: 52 5f 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55  R_GOPHER_ATTRIBU
4830: 54 45 5f 4e 4f 54 5f 46 4f 55 4e 44 2c 0d 0a 09  TE_NOT_FOUND,...
4840: 45 52 52 4f 52 5f 47 4f 50 48 45 52 5f 55 4e 4b  ERROR_GOPHER_UNK
4850: 4e 4f 57 4e 5f 4c 4f 43 41 54 4f 52 2c 20 20 20  NOWN_LOCATOR,   
4860: 20 20 20 20 20 20 20 2f 2f 20 3d 20 49 4e 54 45         // = INTE
4870: 52 4e 45 54 5f 45 52 52 4f 52 5f 42 41 53 45 20  RNET_ERROR_BASE 
4880: 2b 20 31 33 38 2c 0d 0a 09 45 52 52 4f 52 5f 48  + 138,...ERROR_H
4890: 54 54 50 5f 48 45 41 44 45 52 5f 4e 4f 54 5f 46  TTP_HEADER_NOT_F
48a0: 4f 55 4e 44 20 20 20 20 20 20 20 20 20 20 20 20  OUND            
48b0: 20 20 20 3d 20 49 4e 54 45 52 4e 45 54 5f 45 52     = INTERNET_ER
48c0: 52 4f 52 5f 42 41 53 45 20 2b 20 31 35 30 2c 0d  ROR_BASE + 150,.
48d0: 0a 09 45 52 52 4f 52 5f 48 54 54 50 5f 44 4f 57  ..ERROR_HTTP_DOW
48e0: 4e 4c 45 56 45 4c 5f 53 45 52 56 45 52 2c 0d 0a  NLEVEL_SERVER,..
48f0: 09 45 52 52 4f 52 5f 48 54 54 50 5f 49 4e 56 41  .ERROR_HTTP_INVA
4900: 4c 49 44 5f 53 45 52 56 45 52 5f 52 45 53 50 4f  LID_SERVER_RESPO
4910: 4e 53 45 2c 0d 0a 09 45 52 52 4f 52 5f 48 54 54  NSE,...ERROR_HTT
4920: 50 5f 49 4e 56 41 4c 49 44 5f 48 45 41 44 45 52  P_INVALID_HEADER
4930: 2c 0d 0a 09 45 52 52 4f 52 5f 48 54 54 50 5f 49  ,...ERROR_HTTP_I
4940: 4e 56 41 4c 49 44 5f 51 55 45 52 59 5f 52 45 51  NVALID_QUERY_REQ
4950: 55 45 53 54 2c 0d 0a 09 45 52 52 4f 52 5f 48 54  UEST,...ERROR_HT
4960: 54 50 5f 48 45 41 44 45 52 5f 41 4c 52 45 41 44  TP_HEADER_ALREAD
4970: 59 5f 45 58 49 53 54 53 2c 0d 0a 09 45 52 52 4f  Y_EXISTS,...ERRO
4980: 52 5f 48 54 54 50 5f 52 45 44 49 52 45 43 54 5f  R_HTTP_REDIRECT_
4990: 46 41 49 4c 45 44 2c 0d 0a 09 45 52 52 4f 52 5f  FAILED,...ERROR_
49a0: 49 4e 54 45 52 4e 45 54 5f 53 45 43 55 52 49 54  INTERNET_SECURIT
49b0: 59 5f 43 48 41 4e 4e 45 4c 5f 45 52 52 4f 52 2c  Y_CHANNEL_ERROR,
49c0: 0d 0a 09 45 52 52 4f 52 5f 49 4e 54 45 52 4e 45  ...ERROR_INTERNE
49d0: 54 5f 55 4e 41 42 4c 45 5f 54 4f 5f 43 41 43 48  T_UNABLE_TO_CACH
49e0: 45 5f 46 49 4c 45 2c 0d 0a 09 45 52 52 4f 52 5f  E_FILE,...ERROR_
49f0: 49 4e 54 45 52 4e 45 54 5f 54 43 50 49 50 5f 4e  INTERNET_TCPIP_N
4a00: 4f 54 5f 49 4e 53 54 41 4c 4c 45 44 2c 0d 0a 09  OT_INSTALLED,...
4a10: 45 52 52 4f 52 5f 48 54 54 50 5f 4e 4f 54 5f 52  ERROR_HTTP_NOT_R
4a20: 45 44 49 52 45 43 54 45 44 2c 20 20 20 20 20 20  EDIRECTED,      
4a30: 20 20 20 20 20 20 20 2f 2f 20 3d 20 49 4e 54 45         // = INTE
4a40: 52 4e 45 54 5f 45 52 52 4f 52 5f 42 41 53 45 20  RNET_ERROR_BASE 
4a50: 2b 20 31 36 30 0d 0a 09 2f 2f 20 77 68 79 3f 0d  + 160...// why?.
4a60: 0a 09 49 4e 54 45 52 4e 45 54 5f 45 52 52 4f 52  ..INTERNET_ERROR
4a70: 5f 4c 41 53 54 20 20 20 20 20 20 20 20 20 20 20  _LAST           
4a80: 20 20 20 20 20 20 20 3d 20 45 52 52 4f 52 5f 49         = ERROR_I
4a90: 4e 54 45 52 4e 45 54 5f 54 43 50 49 50 5f 4e 4f  NTERNET_TCPIP_NO
4aa0: 54 5f 49 4e 53 54 41 4c 4c 45 44 0d 0a 7d 0d 0a  T_INSTALLED..}..
4ab0: 0d 0a 0d 0a 63 6f 6e 73 74 20 4e 4f 52 4d 41 4c  ....const NORMAL
4ac0: 5f 43 41 43 48 45 5f 45 4e 54 52 59 20 20 20 20  _CACHE_ENTRY    
4ad0: 20 3d 20 30 78 30 30 30 30 30 31 3b 0d 0a 63 6f   = 0x000001;..co
4ae0: 6e 73 74 20 53 54 41 42 4c 45 5f 43 41 43 48 45  nst STABLE_CACHE
4af0: 5f 45 4e 54 52 59 20 20 20 20 20 3d 20 30 78 30  _ENTRY     = 0x0
4b00: 30 30 30 30 32 3b 0d 0a 63 6f 6e 73 74 20 53 54  00002;..const ST
4b10: 49 43 4b 59 5f 43 41 43 48 45 5f 45 4e 54 52 59  ICKY_CACHE_ENTRY
4b20: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 34 3b       = 0x000004;
4b30: 0d 0a 63 6f 6e 73 74 20 53 50 41 52 53 45 5f 43  ..const SPARSE_C
4b40: 41 43 48 45 5f 45 4e 54 52 59 20 20 20 20 20 3d  ACHE_ENTRY     =
4b50: 20 30 78 30 31 30 30 30 30 3b 0d 0a 63 6f 6e 73   0x010000;..cons
4b60: 74 20 4f 43 58 5f 43 41 43 48 45 5f 45 4e 54 52  t OCX_CACHE_ENTR
4b70: 59 20 20 20 20 20 20 20 20 3d 20 30 78 30 32 30  Y        = 0x020
4b80: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 43 4f 4f 4b  000;..const COOK
4b90: 49 45 5f 43 41 43 48 45 5f 45 4e 54 52 59 20 20  IE_CACHE_ENTRY  
4ba0: 20 20 20 3d 20 30 78 31 30 30 30 30 30 3b 0d 0a     = 0x100000;..
4bb0: 63 6f 6e 73 74 20 55 52 4c 48 49 53 54 4f 52 59  const URLHISTORY
4bc0: 5f 43 41 43 48 45 5f 45 4e 54 52 59 20 3d 20 30  _CACHE_ENTRY = 0
4bd0: 78 32 30 30 30 30 30 3b 0d 0a 0d 0a 63 6f 6e 73  x200000;....cons
4be0: 74 20 43 41 43 48 45 5f 45 4e 54 52 59 5f 41 54  t CACHE_ENTRY_AT
4bf0: 54 52 49 42 55 54 45 5f 46 43 20 20 3d 20 30 78  TRIBUTE_FC  = 0x
4c00: 30 30 30 34 3b 0d 0a 63 6f 6e 73 74 20 43 41 43  0004;..const CAC
4c10: 48 45 5f 45 4e 54 52 59 5f 48 49 54 52 41 54 45  HE_ENTRY_HITRATE
4c20: 5f 46 43 20 20 20 20 3d 20 30 78 30 30 31 30 3b  _FC    = 0x0010;
4c30: 0d 0a 63 6f 6e 73 74 20 43 41 43 48 45 5f 45 4e  ..const CACHE_EN
4c40: 54 52 59 5f 4d 4f 44 54 49 4d 45 5f 46 43 20 20  TRY_MODTIME_FC  
4c50: 20 20 3d 20 30 78 30 30 34 30 3b 0d 0a 63 6f 6e    = 0x0040;..con
4c60: 73 74 20 43 41 43 48 45 5f 45 4e 54 52 59 5f 45  st CACHE_ENTRY_E
4c70: 58 50 54 49 4d 45 5f 46 43 20 20 20 20 3d 20 30  XPTIME_FC    = 0
4c80: 78 30 30 38 30 3b 0d 0a 63 6f 6e 73 74 20 43 41  x0080;..const CA
4c90: 43 48 45 5f 45 4e 54 52 59 5f 41 43 43 54 49 4d  CHE_ENTRY_ACCTIM
4ca0: 45 5f 46 43 20 20 20 20 3d 20 30 78 30 31 30 30  E_FC    = 0x0100
4cb0: 3b 0d 0a 63 6f 6e 73 74 20 43 41 43 48 45 5f 45  ;..const CACHE_E
4cc0: 4e 54 52 59 5f 53 59 4e 43 54 49 4d 45 5f 46 43  NTRY_SYNCTIME_FC
4cd0: 20 20 20 3d 20 30 78 30 32 30 30 3b 0d 0a 63 6f     = 0x0200;..co
4ce0: 6e 73 74 20 43 41 43 48 45 5f 45 4e 54 52 59 5f  nst CACHE_ENTRY_
4cf0: 48 45 41 44 45 52 49 4e 46 4f 5f 46 43 20 3d 20  HEADERINFO_FC = 
4d00: 30 78 30 34 30 30 3b 0d 0a 0d 0a 65 6e 75 6d 20  0x0400;....enum 
4d10: 7b 0d 0a 09 57 49 4e 49 4e 45 54 5f 41 50 49 5f  {...WININET_API_
4d20: 46 4c 41 47 5f 41 53 59 4e 43 20 20 20 20 20 20  FLAG_ASYNC      
4d30: 20 3d 20 31 2c 0d 0a 09 57 49 4e 49 4e 45 54 5f   = 1,...WININET_
4d40: 41 50 49 5f 46 4c 41 47 5f 53 59 4e 43 20 20 20  API_FLAG_SYNC   
4d50: 20 20 20 20 20 3d 20 34 2c 0d 0a 09 57 49 4e 49       = 4,...WINI
4d60: 4e 45 54 5f 41 50 49 5f 46 4c 41 47 5f 55 53 45  NET_API_FLAG_USE
4d70: 5f 43 4f 4e 54 45 58 54 20 3d 20 38 0d 0a 7d 0d  _CONTEXT = 8..}.
4d80: 0a 0d 0a 2f 2f 20 46 49 58 4d 45 3a 20 68 6f 77  ...// FIXME: how
4d90: 20 73 68 6f 75 6c 64 20 74 68 65 73 65 20 72 65   should these re
4da0: 61 6c 6c 79 20 62 65 20 67 72 6f 75 70 65 64 3f  ally be grouped?
4db0: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 52 46 5f 41  ..enum {...IRF_A
4dc0: 53 59 4e 43 20 20 20 20 20 20 20 3d 20 57 49 4e  SYNC       = WIN
4dd0: 49 4e 45 54 5f 41 50 49 5f 46 4c 41 47 5f 41 53  INET_API_FLAG_AS
4de0: 59 4e 43 2c 0d 0a 09 49 52 46 5f 53 59 4e 43 20  YNC,...IRF_SYNC 
4df0: 20 20 20 20 20 20 20 3d 20 57 49 4e 49 4e 45 54         = WININET
4e00: 5f 41 50 49 5f 46 4c 41 47 5f 53 59 4e 43 2c 0d  _API_FLAG_SYNC,.
4e10: 0a 09 49 52 46 5f 55 53 45 5f 43 4f 4e 54 45 58  ..IRF_USE_CONTEX
4e20: 54 20 3d 20 57 49 4e 49 4e 45 54 5f 41 50 49 5f  T = WININET_API_
4e30: 46 4c 41 47 5f 55 53 45 5f 43 4f 4e 54 45 58 54  FLAG_USE_CONTEXT
4e40: 2c 0d 0a 7d 0d 0a 63 6f 6e 73 74 20 49 52 46 5f  ,..}..const IRF_
4e50: 4e 4f 5f 57 41 49 54 20 3d 20 38 3b 0d 0a 0d 0a  NO_WAIT = 8;....
4e60: 65 6e 75 6d 20 7b 0d 0a 09 48 53 52 5f 41 53 59  enum {...HSR_ASY
4e70: 4e 43 20 3d 20 57 49 4e 49 4e 45 54 5f 41 50 49  NC = WININET_API
4e80: 5f 46 4c 41 47 5f 41 53 59 4e 43 2c 0d 0a 09 48  _FLAG_ASYNC,...H
4e90: 53 52 5f 53 59 4e 43 20 3d 20 57 49 4e 49 4e 45  SR_SYNC = WININE
4ea0: 54 5f 41 50 49 5f 46 4c 41 47 5f 53 59 4e 43 2c  T_API_FLAG_SYNC,
4eb0: 0d 0a 09 48 53 52 5f 55 53 45 5f 43 4f 4e 54 45  ...HSR_USE_CONTE
4ec0: 58 54 20 3d 20 57 49 4e 49 4e 45 54 5f 41 50 49  XT = WININET_API
4ed0: 5f 46 4c 41 47 5f 55 53 45 5f 43 4f 4e 54 45 58  _FLAG_USE_CONTEX
4ee0: 54 2c 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 48  T,..}....const H
4ef0: 53 52 5f 49 4e 49 54 49 41 54 45 20 3d 20 20 38  SR_INITIATE =  8
4f00: 3b 0d 0a 63 6f 6e 73 74 20 48 53 52 5f 44 4f 57  ;..const HSR_DOW
4f10: 4e 4c 4f 41 44 20 3d 20 31 36 3b 0d 0a 63 6f 6e  NLOAD = 16;..con
4f20: 73 74 20 48 53 52 5f 43 48 55 4e 4b 45 44 20 20  st HSR_CHUNKED  
4f30: 3d 20 33 32 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 49  = 32;....const I
4f40: 4e 54 45 52 4e 45 54 5f 44 49 41 4c 5f 55 4e 41  NTERNET_DIAL_UNA
4f50: 54 54 45 4e 44 45 44 20 20 20 20 20 20 20 20 20  TTENDED         
4f60: 20 20 20 20 20 3d 20 30 78 38 30 30 30 3b 0d 0a       = 0x8000;..
4f70: 63 6f 6e 73 74 20 49 4e 54 45 52 4e 45 54 5f 44  const INTERNET_D
4f80: 49 41 4c 53 54 41 54 45 5f 44 49 53 43 4f 4e 4e  IALSTATE_DISCONN
4f90: 45 43 54 45 44 20 20 20 20 20 20 20 3d 20 31 3b  ECTED       = 1;
4fa0: 0d 0a 63 6f 6e 73 74 20 49 4e 54 45 52 45 4e 54  ..const INTERENT
4fb0: 5f 47 4f 4f 4e 4c 49 4e 45 5f 52 45 46 52 45 53  _GOONLINE_REFRES
4fc0: 48 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20  H             = 
4fd0: 31 3b 0d 0a 63 6f 6e 73 74 20 49 4e 54 45 52 45  1;..const INTERE
4fe0: 4e 54 5f 47 4f 4f 4e 4c 49 4e 45 5f 4d 41 53 4b  NT_GOONLINE_MASK
4ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
5000: 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 49 4e 54 45  = 1;..const INTE
5010: 52 4e 45 54 5f 41 55 54 4f 44 49 41 4c 5f 46 4f  RNET_AUTODIAL_FO
5020: 52 43 45 5f 4f 4e 4c 49 4e 45 20 20 20 20 20 20  RCE_ONLINE      
5030: 20 20 3d 20 31 3b 0d 0a 63 6f 6e 73 74 20 49 4e    = 1;..const IN
5040: 54 45 52 4e 45 54 5f 41 55 54 4f 44 49 41 4c 5f  TERNET_AUTODIAL_
5050: 46 4f 52 43 45 5f 55 4e 41 54 54 45 4e 44 45 44  FORCE_UNATTENDED
5060: 20 20 20 20 3d 20 32 3b 0d 0a 63 6f 6e 73 74 20      = 2;..const 
5070: 49 4e 54 45 52 4e 45 54 5f 41 55 54 4f 44 49 41  INTERNET_AUTODIA
5080: 4c 5f 46 41 49 4c 49 46 53 45 43 55 52 49 54 59  L_FAILIFSECURITY
5090: 43 48 45 43 4b 20 3d 20 34 3b 0d 0a 63 6f 6e 73  CHECK = 4;..cons
50a0: 74 20 49 4e 54 45 52 4e 45 54 5f 43 4f 4e 4e 45  t INTERNET_CONNE
50b0: 43 54 49 4f 4e 5f 4d 4f 44 45 4d 20 20 20 20 20  CTION_MODEM     
50c0: 20 20 20 20 20 20 20 20 3d 20 30 78 30 31 3b 0d          = 0x01;.
50d0: 0a 63 6f 6e 73 74 20 49 4e 54 45 52 4e 45 54 5f  .const INTERNET_
50e0: 43 4f 4e 4e 45 43 54 49 4f 4e 5f 4c 41 4e 20 20  CONNECTION_LAN  
50f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30               = 0
5100: 78 30 32 3b 0d 0a 63 6f 6e 73 74 20 49 4e 54 45  x02;..const INTE
5110: 52 4e 45 54 5f 43 4f 4e 4e 45 43 54 49 4f 4e 5f  RNET_CONNECTION_
5120: 50 52 4f 58 59 20 20 20 20 20 20 20 20 20 20 20  PROXY           
5130: 20 20 3d 20 30 78 30 34 3b 0d 0a 63 6f 6e 73 74    = 0x04;..const
5140: 20 49 4e 54 45 52 4e 45 54 5f 43 4f 4e 4e 45 43   INTERNET_CONNEC
5150: 54 49 4f 4e 5f 4d 4f 44 45 4d 5f 42 55 53 59 20  TION_MODEM_BUSY 
5160: 20 20 20 20 20 20 20 3d 20 30 78 30 38 3b 0d 0a         = 0x08;..
5170: 63 6f 6e 73 74 20 49 4e 54 45 52 4e 45 54 5f 52  const INTERNET_R
5180: 41 53 5f 49 4e 53 54 41 4c 4c 45 44 20 20 20 20  AS_INSTALLED    
5190: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
51a0: 31 30 3b 0d 0a 63 6f 6e 73 74 20 49 4e 54 45 52  10;..const INTER
51b0: 4e 45 54 5f 43 4f 4e 4e 45 43 54 49 4f 4e 5f 4f  NET_CONNECTION_O
51c0: 46 46 4c 49 4e 45 20 20 20 20 20 20 20 20 20 20  FFLINE          
51d0: 20 3d 20 30 78 32 30 3b 0d 0a 63 6f 6e 73 74 20   = 0x20;..const 
51e0: 49 4e 54 45 52 4e 45 54 5f 43 4f 4e 4e 45 43 54  INTERNET_CONNECT
51f0: 49 4f 4e 5f 43 4f 4e 46 49 47 55 52 45 44 20 20  ION_CONFIGURED  
5200: 20 20 20 20 20 20 3d 20 30 78 34 30 3b 0d 0a 0d        = 0x40;...
5210: 0a 65 6e 75 6d 20 7b 0d 0a 09 43 41 43 48 45 47  .enum {...CACHEG
5220: 52 4f 55 50 5f 53 45 41 52 43 48 5f 41 4c 4c 20  ROUP_SEARCH_ALL 
5230: 20 20 3d 20 30 2c 0d 0a 09 43 41 43 48 45 47 52    = 0,...CACHEGR
5240: 4f 55 50 5f 53 45 41 52 43 48 5f 42 59 55 52 4c  OUP_SEARCH_BYURL
5250: 20 3d 20 31 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20   = 1..}....enum 
5260: 7b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 43 41 43  {...INTERNET_CAC
5270: 48 45 5f 47 52 4f 55 50 5f 41 44 44 20 20 20 20  HE_GROUP_ADD    
5280: 3d 20 30 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  = 0,...INTERNET_
5290: 43 41 43 48 45 5f 47 52 4f 55 50 5f 52 45 4d 4f  CACHE_GROUP_REMO
52a0: 56 45 20 3d 20 31 0d 0a 7d 0d 0a 0d 0a 6d 69 78  VE = 1..}....mix
52b0: 69 6e 20 44 45 43 4c 41 52 45 5f 48 41 4e 44 4c  in DECLARE_HANDL
52c0: 45 21 28 22 48 49 4e 54 45 52 4e 45 54 22 29 3b  E!("HINTERNET");
52d0: 20 2f 2f 20 64 6f 65 73 6e 27 74 20 77 6f 72 6b   // doesn't work
52e0: 20 2d 20 62 75 67 0d 0a 2f 2a 73 74 72 75 63 74   - bug../*struct
52f0: 20 48 49 4e 54 45 52 4e 45 54 20 7b 0d 0a 09 48   HINTERNET {...H
5300: 41 4e 44 4c 45 20 68 3b 0d 0a 09 61 6c 69 61 73  ANDLE h;...alias
5310: 20 68 20 74 68 69 73 3b 0d 0a 7d 2a 2f 0d 0a 61   h this;..}*/..a
5320: 6c 69 61 73 20 48 49 4e 54 45 52 4e 45 54 2a 20  lias HINTERNET* 
5330: 4c 50 48 49 4e 54 45 52 4e 45 54 3b 0d 0a 0d 0a  LPHINTERNET;....
5340: 61 6c 69 61 73 20 4c 4f 4e 47 4c 4f 4e 47 20 47  alias LONGLONG G
5350: 52 4f 55 50 49 44 3b 0d 0a 61 6c 69 61 73 20 57  ROUPID;..alias W
5360: 4f 52 44 20 49 4e 54 45 52 4e 45 54 5f 50 4f 52  ORD INTERNET_POR
5370: 54 3b 0d 0a 61 6c 69 61 73 20 57 4f 52 44 2a 20  T;..alias WORD* 
5380: 4c 50 49 4e 54 45 52 4e 45 54 5f 50 4f 52 54 3b  LPINTERNET_PORT;
5390: 0d 0a 0d 0a 65 6e 75 6d 20 49 4e 54 45 52 4e 45  ....enum INTERNE
53a0: 54 5f 53 43 48 45 4d 45 20 7b 0d 0a 09 49 4e 54  T_SCHEME {...INT
53b0: 45 52 4e 45 54 5f 53 43 48 45 4d 45 5f 50 41 52  ERNET_SCHEME_PAR
53c0: 54 49 41 4c 20 3d 20 2d 32 2c 0d 0a 09 49 4e 54  TIAL = -2,...INT
53d0: 45 52 4e 45 54 5f 53 43 48 45 4d 45 5f 55 4e 4b  ERNET_SCHEME_UNK
53e0: 4e 4f 57 4e 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  NOWN,...INTERNET
53f0: 5f 53 43 48 45 4d 45 5f 44 45 46 41 55 4c 54 2c  _SCHEME_DEFAULT,
5400: 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 43 48 45  ...INTERNET_SCHE
5410: 4d 45 5f 46 54 50 2c 0d 0a 09 49 4e 54 45 52 4e  ME_FTP,...INTERN
5420: 45 54 5f 53 43 48 45 4d 45 5f 47 4f 50 48 45 52  ET_SCHEME_GOPHER
5430: 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 43 48  ,...INTERNET_SCH
5440: 45 4d 45 5f 48 54 54 50 2c 0d 0a 09 49 4e 54 45  EME_HTTP,...INTE
5450: 52 4e 45 54 5f 53 43 48 45 4d 45 5f 48 54 54 50  RNET_SCHEME_HTTP
5460: 53 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 43  S,...INTERNET_SC
5470: 48 45 4d 45 5f 46 49 4c 45 2c 0d 0a 09 49 4e 54  HEME_FILE,...INT
5480: 45 52 4e 45 54 5f 53 43 48 45 4d 45 5f 4e 45 57  ERNET_SCHEME_NEW
5490: 53 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 53 43  S,...INTERNET_SC
54a0: 48 45 4d 45 5f 4d 41 49 4c 54 4f 2c 0d 0a 09 49  HEME_MAILTO,...I
54b0: 4e 54 45 52 4e 45 54 5f 53 43 48 45 4d 45 5f 53  NTERNET_SCHEME_S
54c0: 4f 43 4b 53 2c 0d 0a 09 49 4e 54 45 52 4e 45 54  OCKS,...INTERNET
54d0: 5f 53 43 48 45 4d 45 5f 46 49 52 53 54 20 3d 20  _SCHEME_FIRST = 
54e0: 49 4e 54 45 52 4e 45 54 5f 53 43 48 45 4d 45 5f  INTERNET_SCHEME_
54f0: 46 54 50 2c 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  FTP,...INTERNET_
5500: 53 43 48 45 4d 45 5f 4c 41 53 54 20 3d 20 49 4e  SCHEME_LAST = IN
5510: 54 45 52 4e 45 54 5f 53 43 48 45 4d 45 5f 53 4f  TERNET_SCHEME_SO
5520: 43 4b 53 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 4e  CKS..}..alias IN
5530: 54 45 52 4e 45 54 5f 53 43 48 45 4d 45 2a 20 4c  TERNET_SCHEME* L
5540: 50 49 4e 54 45 52 4e 45 54 5f 53 43 48 45 4d 45  PINTERNET_SCHEME
5550: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 49 4e 54 45  ;....struct INTE
5560: 52 4e 45 54 5f 41 53 59 4e 43 5f 52 45 53 55 4c  RNET_ASYNC_RESUL
5570: 54 20 7b 0d 0a 09 44 57 4f 52 44 20 64 77 52 65  T {...DWORD dwRe
5580: 73 75 6c 74 3b 0d 0a 09 44 57 4f 52 44 20 64 77  sult;...DWORD dw
5590: 45 72 72 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  Error;..}..alias
55a0: 20 49 4e 54 45 52 4e 45 54 5f 41 53 59 4e 43 5f   INTERNET_ASYNC_
55b0: 52 45 53 55 4c 54 2a 20 4c 50 49 4e 54 45 52 4e  RESULT* LPINTERN
55c0: 45 54 5f 41 53 59 4e 43 5f 52 45 53 55 4c 54 3b  ET_ASYNC_RESULT;
55d0: 0d 0a 0d 0a 73 74 72 75 63 74 20 49 4e 54 45 52  ....struct INTER
55e0: 4e 45 54 5f 50 52 45 46 45 54 43 48 5f 53 54 41  NET_PREFETCH_STA
55f0: 54 55 53 20 7b 0d 0a 09 44 57 4f 52 44 20 64 77  TUS {...DWORD dw
5600: 53 74 61 74 75 73 3b 0d 0a 09 44 57 4f 52 44 20  Status;...DWORD 
5610: 64 77 53 69 7a 65 3b 0d 0a 7d 0d 0a 61 6c 69 61  dwSize;..}..alia
5620: 73 20 49 4e 54 45 52 4e 45 54 5f 50 52 45 46 45  s INTERNET_PREFE
5630: 54 43 48 5f 53 54 41 54 55 53 2a 20 4c 50 49 4e  TCH_STATUS* LPIN
5640: 54 45 52 4e 45 54 5f 50 52 45 46 45 54 43 48 5f  TERNET_PREFETCH_
5650: 53 54 41 54 55 53 3b 0d 0a 0d 0a 73 74 72 75 63  STATUS;....struc
5660: 74 20 49 4e 54 45 52 4e 45 54 5f 50 52 4f 58 59  t INTERNET_PROXY
5670: 5f 49 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20  _INFO {...DWORD 
5680: 64 77 41 63 63 65 73 73 54 79 70 65 3b 0d 0a 09  dwAccessType;...
5690: 4c 50 43 54 53 54 52 20 6c 70 73 7a 50 72 6f 78  LPCTSTR lpszProx
56a0: 79 3b 0d 0a 09 4c 50 43 54 53 54 52 20 6c 70 73  y;...LPCTSTR lps
56b0: 7a 50 72 6f 78 79 42 79 70 61 73 73 3b 0d 0a 7d  zProxyBypass;..}
56c0: 0d 0a 61 6c 69 61 73 20 49 4e 54 45 52 4e 45 54  ..alias INTERNET
56d0: 5f 50 52 4f 58 59 5f 49 4e 46 4f 2a 20 4c 50 49  _PROXY_INFO* LPI
56e0: 4e 54 45 52 4e 45 54 5f 50 52 4f 58 59 5f 49 4e  NTERNET_PROXY_IN
56f0: 46 4f 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 49 4e  FO;....struct IN
5700: 54 45 52 4e 45 54 5f 56 45 52 53 49 4f 4e 5f 49  TERNET_VERSION_I
5710: 4e 46 4f 20 7b 0d 0a 09 44 57 4f 52 44 20 64 77  NFO {...DWORD dw
5720: 4d 61 6a 6f 72 56 65 72 73 69 6f 6e 3b 0d 0a 09  MajorVersion;...
5730: 44 57 4f 52 44 20 64 77 4d 69 6e 6f 72 56 65 72  DWORD dwMinorVer
5740: 73 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  sion;..}..alias 
5750: 49 4e 54 45 52 4e 45 54 5f 56 45 52 53 49 4f 4e  INTERNET_VERSION
5760: 5f 49 4e 46 4f 2a 20 4c 50 49 4e 54 45 52 4e 45  _INFO* LPINTERNE
5770: 54 5f 56 45 52 53 49 4f 4e 5f 49 4e 46 4f 3b 0d  T_VERSION_INFO;.
5780: 0a 0d 0a 73 74 72 75 63 74 20 55 52 4c 5f 43 4f  ...struct URL_CO
5790: 4d 50 4f 4e 45 4e 54 53 41 20 7b 0d 0a 09 44 57  MPONENTSA {...DW
57a0: 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 64 77  ORD           dw
57b0: 53 74 72 75 63 74 53 69 7a 65 20 3d 20 55 52 4c  StructSize = URL
57c0: 5f 43 4f 4d 50 4f 4e 45 4e 54 53 41 2e 73 69 7a  _COMPONENTSA.siz
57d0: 65 6f 66 3b 0d 0a 09 4c 50 53 54 52 20 20 20 20  eof;...LPSTR    
57e0: 20 20 20 20 20 20 20 6c 70 73 7a 53 63 68 65 6d         lpszSchem
57f0: 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20  e;...DWORD      
5800: 20 20 20 20 20 64 77 53 63 68 65 6d 65 4c 65 6e       dwSchemeLen
5810: 67 74 68 3b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  gth;...INTERNET_
5820: 53 43 48 45 4d 45 20 6e 53 63 68 65 6d 65 3b 0d  SCHEME nScheme;.
5830: 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20 20  ..LPSTR         
5840: 20 20 6c 70 73 7a 48 6f 73 74 4e 61 6d 65 3b 0d    lpszHostName;.
5850: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
5860: 20 20 64 77 48 6f 73 74 4e 61 6d 65 4c 65 6e 67    dwHostNameLeng
5870: 74 68 3b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 50  th;...INTERNET_P
5880: 4f 52 54 20 20 20 6e 50 6f 72 74 3b 0d 0a 09 4c  ORT   nPort;...L
5890: 50 53 54 52 20 20 20 20 20 20 20 20 20 20 20 6c  PSTR           l
58a0: 70 73 7a 55 73 65 72 4e 61 6d 65 3b 0d 0a 09 44  pszUserName;...D
58b0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 20 64  WORD           d
58c0: 77 55 73 65 72 4e 61 6d 65 4c 65 6e 67 74 68 3b  wUserNameLength;
58d0: 0d 0a 09 4c 50 53 54 52 20 20 20 20 20 20 20 20  ...LPSTR        
58e0: 20 20 20 6c 70 73 7a 50 61 73 73 77 6f 72 64 3b     lpszPassword;
58f0: 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ...DWORD        
5900: 20 20 20 64 77 50 61 73 73 77 6f 72 64 4c 65 6e     dwPasswordLen
5910: 67 74 68 3b 0d 0a 09 4c 50 53 54 52 20 20 20 20  gth;...LPSTR    
5920: 20 20 20 20 20 20 20 6c 70 73 7a 55 72 6c 50 61         lpszUrlPa
5930: 74 68 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  th;...DWORD     
5940: 20 20 20 20 20 20 64 77 55 72 6c 50 61 74 68 4c        dwUrlPathL
5950: 65 6e 67 74 68 3b 0d 0a 09 4c 50 53 54 52 20 20  ength;...LPSTR  
5960: 20 20 20 20 20 20 20 20 20 6c 70 73 7a 45 78 74           lpszExt
5970: 72 61 49 6e 66 6f 3b 0d 0a 09 44 57 4f 52 44 20  raInfo;...DWORD 
5980: 20 20 20 20 20 20 20 20 20 20 64 77 45 78 74 72            dwExtr
5990: 61 49 6e 66 6f 4c 65 6e 67 74 68 3b 0d 0a 7d 0d  aInfoLength;..}.
59a0: 0a 61 6c 69 61 73 20 55 52 4c 5f 43 4f 4d 50 4f  .alias URL_COMPO
59b0: 4e 45 4e 54 53 41 2a 20 4c 50 55 52 4c 5f 43 4f  NENTSA* LPURL_CO
59c0: 4d 50 4f 4e 45 4e 54 53 41 3b 0d 0a 0d 0a 73 74  MPONENTSA;....st
59d0: 72 75 63 74 20 55 52 4c 5f 43 4f 4d 50 4f 4e 45  ruct URL_COMPONE
59e0: 4e 54 53 57 20 7b 0d 0a 09 44 57 4f 52 44 20 20  NTSW {...DWORD  
59f0: 64 77 53 74 72 75 63 74 53 69 7a 65 20 3d 20 55  dwStructSize = U
5a00: 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 57 2e 73  RL_COMPONENTSW.s
5a10: 69 7a 65 6f 66 3b 0d 0a 09 4c 50 57 53 54 52 20  izeof;...LPWSTR 
5a20: 6c 70 73 7a 53 63 68 65 6d 65 3b 0d 0a 09 44 57  lpszScheme;...DW
5a30: 4f 52 44 20 20 64 77 53 63 68 65 6d 65 4c 65 6e  ORD  dwSchemeLen
5a40: 67 74 68 3b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f  gth;...INTERNET_
5a50: 53 43 48 45 4d 45 20 6e 53 63 68 65 6d 65 3b 0d  SCHEME nScheme;.
5a60: 0a 09 4c 50 57 53 54 52 20 6c 70 73 7a 48 6f 73  ..LPWSTR lpszHos
5a70: 74 4e 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 20  tName;...DWORD  
5a80: 64 77 48 6f 73 74 4e 61 6d 65 4c 65 6e 67 74 68  dwHostNameLength
5a90: 3b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 50 4f 52  ;...INTERNET_POR
5aa0: 54 20 6e 50 6f 72 74 3b 0d 0a 09 4c 50 57 53 54  T nPort;...LPWST
5ab0: 52 20 6c 70 73 7a 55 73 65 72 4e 61 6d 65 3b 0d  R lpszUserName;.
5ac0: 0a 09 44 57 4f 52 44 20 20 64 77 55 73 65 72 4e  ..DWORD  dwUserN
5ad0: 61 6d 65 4c 65 6e 67 74 68 3b 0d 0a 09 4c 50 57  ameLength;...LPW
5ae0: 53 54 52 20 6c 70 73 7a 50 61 73 73 77 6f 72 64  STR lpszPassword
5af0: 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 50 61 73  ;...DWORD  dwPas
5b00: 73 77 6f 72 64 4c 65 6e 67 74 68 3b 0d 0a 09 4c  swordLength;...L
5b10: 50 57 53 54 52 20 6c 70 73 7a 55 72 6c 50 61 74  PWSTR lpszUrlPat
5b20: 68 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 55 72  h;...DWORD  dwUr
5b30: 6c 50 61 74 68 4c 65 6e 67 74 68 3b 0d 0a 09 4c  lPathLength;...L
5b40: 50 57 53 54 52 20 6c 70 73 7a 45 78 74 72 61 49  PWSTR lpszExtraI
5b50: 6e 66 6f 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77  nfo;...DWORD  dw
5b60: 45 78 74 72 61 49 6e 66 6f 4c 65 6e 67 74 68 3b  ExtraInfoLength;
5b70: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 55 52 4c 5f 43  ..}..alias URL_C
5b80: 4f 4d 50 4f 4e 45 4e 54 53 57 2a 20 4c 50 55 52  OMPONENTSW* LPUR
5b90: 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 57 3b 0d 0a  L_COMPONENTSW;..
5ba0: 0d 0a 73 74 72 75 63 74 20 49 4e 54 45 52 4e 45  ..struct INTERNE
5bb0: 54 5f 43 45 52 54 49 46 49 43 41 54 45 5f 49 4e  T_CERTIFICATE_IN
5bc0: 46 4f 20 7b 0d 0a 09 46 49 4c 45 54 49 4d 45 20  FO {...FILETIME 
5bd0: 66 74 45 78 70 69 72 79 3b 0d 0a 09 46 49 4c 45  ftExpiry;...FILE
5be0: 54 49 4d 45 20 66 74 53 74 61 72 74 3b 0d 0a 09  TIME ftStart;...
5bf0: 4c 50 54 53 54 52 20 20 20 6c 70 73 7a 53 75 62  LPTSTR   lpszSub
5c00: 6a 65 63 74 49 6e 66 6f 3b 0d 0a 09 4c 50 54 53  jectInfo;...LPTS
5c10: 54 52 20 20 20 6c 70 73 7a 49 73 73 75 65 72 49  TR   lpszIssuerI
5c20: 6e 66 6f 3b 0d 0a 09 4c 50 54 53 54 52 20 20 20  nfo;...LPTSTR   
5c30: 6c 70 73 7a 50 72 6f 74 6f 63 6f 6c 4e 61 6d 65  lpszProtocolName
5c40: 3b 0d 0a 09 4c 50 54 53 54 52 20 20 20 6c 70 73  ;...LPTSTR   lps
5c50: 7a 53 69 67 6e 61 74 75 72 65 41 6c 67 4e 61 6d  zSignatureAlgNam
5c60: 65 3b 0d 0a 09 4c 50 54 53 54 52 20 20 20 6c 70  e;...LPTSTR   lp
5c70: 73 7a 45 6e 63 72 79 70 74 69 6f 6e 41 6c 67 4e  szEncryptionAlgN
5c80: 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  ame;...DWORD    
5c90: 64 77 4b 65 79 53 69 7a 65 3b 0d 0a 7d 0d 0a 61  dwKeySize;..}..a
5ca0: 6c 69 61 73 20 49 4e 54 45 52 4e 45 54 5f 43 45  lias INTERNET_CE
5cb0: 52 54 49 46 49 43 41 54 45 5f 49 4e 46 4f 2a 20  RTIFICATE_INFO* 
5cc0: 4c 50 49 4e 54 45 52 4e 45 54 5f 43 45 52 54 49  LPINTERNET_CERTI
5cd0: 46 49 43 41 54 45 5f 49 4e 46 4f 3b 0d 0a 0d 0a  FICATE_INFO;....
5ce0: 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29  extern (Windows)
5cf0: 20 61 6c 69 61 73 20 76 6f 69 64 20 66 75 6e 63   alias void func
5d00: 74 69 6f 6e 28 48 49 4e 54 45 52 4e 45 54 2c 20  tion(HINTERNET, 
5d10: 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 50 56  DWORD, DWORD, PV
5d20: 4f 49 44 2c 20 44 57 4f 52 44 29 0d 0a 20 20 49  OID, DWORD)..  I
5d30: 4e 54 45 52 4e 45 54 5f 53 54 41 54 55 53 5f 43  NTERNET_STATUS_C
5d40: 41 4c 4c 42 41 43 4b 3b 0d 0a 61 6c 69 61 73 20  ALLBACK;..alias 
5d50: 49 4e 54 45 52 4e 45 54 5f 53 54 41 54 55 53 5f  INTERNET_STATUS_
5d60: 43 41 4c 4c 42 41 43 4b 2a 20 4c 50 49 4e 54 45  CALLBACK* LPINTE
5d70: 52 4e 45 54 5f 53 54 41 54 55 53 5f 43 41 4c 4c  RNET_STATUS_CALL
5d80: 42 41 43 4b 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 49  BACK;....const I
5d90: 4e 54 45 52 4e 45 54 5f 49 4e 56 41 4c 49 44 5f  NTERNET_INVALID_
5da0: 53 54 41 54 55 53 5f 43 41 4c 4c 42 41 43 4b 0d  STATUS_CALLBACK.
5db0: 0a 20 20 3d 20 63 61 73 74 28 49 4e 54 45 52 4e  .  = cast(INTERN
5dc0: 45 54 5f 53 54 41 54 55 53 5f 43 41 4c 4c 42 41  ET_STATUS_CALLBA
5dd0: 43 4b 29 20 2d 31 3b 0d 0a 0d 0a 73 74 72 75 63  CK) -1;....struc
5de0: 74 20 47 4f 50 48 45 52 5f 46 49 4e 44 5f 44 41  t GOPHER_FIND_DA
5df0: 54 41 41 20 7b 0d 0a 09 43 48 41 52 5b 4d 41 58  TAA {...CHAR[MAX
5e00: 5f 47 4f 50 48 45 52 5f 44 49 53 50 4c 41 59 5f  _GOPHER_DISPLAY_
5e10: 54 45 58 54 2b 31 5d 20 44 69 73 70 6c 61 79 53  TEXT+1] DisplayS
5e20: 74 72 69 6e 67 3b 0d 0a 09 44 57 4f 52 44 20 20  tring;...DWORD  
5e30: 20 20 47 6f 70 68 65 72 54 79 70 65 3b 0d 0a 09    GopherType;...
5e40: 44 57 4f 52 44 20 20 20 20 53 69 7a 65 4c 6f 77  DWORD    SizeLow
5e50: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 53 69 7a  ;...DWORD    Siz
5e60: 65 48 69 67 68 3b 0d 0a 09 46 49 4c 45 54 49 4d  eHigh;...FILETIM
5e70: 45 20 4c 61 73 74 4d 6f 64 69 66 69 63 61 74 69  E LastModificati
5e80: 6f 6e 54 69 6d 65 3b 0d 0a 09 43 48 41 52 5b 4d  onTime;...CHAR[M
5e90: 41 58 5f 47 4f 50 48 45 52 5f 4c 4f 43 41 54 4f  AX_GOPHER_LOCATO
5ea0: 52 5f 4c 45 4e 47 54 48 2b 31 5d 20 4c 6f 63 61  R_LENGTH+1] Loca
5eb0: 74 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47  tor;..}..alias G
5ec0: 4f 50 48 45 52 5f 46 49 4e 44 5f 44 41 54 41 41  OPHER_FIND_DATAA
5ed0: 2a 20 4c 50 47 4f 50 48 45 52 5f 46 49 4e 44 5f  * LPGOPHER_FIND_
5ee0: 44 41 54 41 41 3b 0d 0a 0d 0a 73 74 72 75 63 74  DATAA;....struct
5ef0: 20 47 4f 50 48 45 52 5f 46 49 4e 44 5f 44 41 54   GOPHER_FIND_DAT
5f00: 41 57 20 7b 0d 0a 09 57 43 48 41 52 5b 4d 41 58  AW {...WCHAR[MAX
5f10: 5f 47 4f 50 48 45 52 5f 44 49 53 50 4c 41 59 5f  _GOPHER_DISPLAY_
5f20: 54 45 58 54 2b 31 5d 20 44 69 73 70 6c 61 79 53  TEXT+1] DisplayS
5f30: 74 72 69 6e 67 3b 0d 0a 09 44 57 4f 52 44 20 20  tring;...DWORD  
5f40: 20 20 47 6f 70 68 65 72 54 79 70 65 3b 0d 0a 09    GopherType;...
5f50: 44 57 4f 52 44 20 20 20 20 53 69 7a 65 4c 6f 77  DWORD    SizeLow
5f60: 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 53 69 7a  ;...DWORD    Siz
5f70: 65 48 69 67 68 3b 0d 0a 09 46 49 4c 45 54 49 4d  eHigh;...FILETIM
5f80: 45 20 4c 61 73 74 4d 6f 64 69 66 69 63 61 74 69  E LastModificati
5f90: 6f 6e 54 69 6d 65 3b 0d 0a 09 57 43 48 41 52 5b  onTime;...WCHAR[
5fa0: 4d 41 58 5f 47 4f 50 48 45 52 5f 4c 4f 43 41 54  MAX_GOPHER_LOCAT
5fb0: 4f 52 5f 4c 45 4e 47 54 48 2b 31 5d 20 4c 6f 63  OR_LENGTH+1] Loc
5fc0: 61 74 6f 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  ator;..}..alias 
5fd0: 47 4f 50 48 45 52 5f 46 49 4e 44 5f 44 41 54 41  GOPHER_FIND_DATA
5fe0: 57 2a 20 4c 50 47 4f 50 48 45 52 5f 46 49 4e 44  W* LPGOPHER_FIND
5ff0: 5f 44 41 54 41 57 3b 0d 0a 0d 0a 73 74 72 75 63  _DATAW;....struc
6000: 74 20 47 4f 50 48 45 52 5f 41 44 4d 49 4e 5f 41  t GOPHER_ADMIN_A
6010: 54 54 52 49 42 55 54 45 5f 54 59 50 45 20 7b 0d  TTRIBUTE_TYPE {.
6020: 0a 09 4c 50 43 54 53 54 52 20 43 6f 6d 6d 65 6e  ..LPCTSTR Commen
6030: 74 3b 0d 0a 09 4c 50 43 54 53 54 52 20 45 6d 61  t;...LPCTSTR Ema
6040: 69 6c 41 64 64 72 65 73 73 3b 0d 0a 7d 0d 0a 61  ilAddress;..}..a
6050: 6c 69 61 73 20 47 4f 50 48 45 52 5f 41 44 4d 49  lias GOPHER_ADMI
6060: 4e 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45  N_ATTRIBUTE_TYPE
6070: 2a 20 4c 50 47 4f 50 48 45 52 5f 41 44 4d 49 4e  * LPGOPHER_ADMIN
6080: 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 3b  _ATTRIBUTE_TYPE;
6090: 0d 0a 0d 0a 73 74 72 75 63 74 20 47 4f 50 48 45  ....struct GOPHE
60a0: 52 5f 4d 4f 44 5f 44 41 54 45 5f 41 54 54 52 49  R_MOD_DATE_ATTRI
60b0: 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09 46 49  BUTE_TYPE {...FI
60c0: 4c 45 54 49 4d 45 20 44 61 74 65 41 6e 64 54 69  LETIME DateAndTi
60d0: 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47 4f  me;..}..alias GO
60e0: 50 48 45 52 5f 4d 4f 44 5f 44 41 54 45 5f 41 54  PHER_MOD_DATE_AT
60f0: 54 52 49 42 55 54 45 5f 54 59 50 45 2a 20 4c 50  TRIBUTE_TYPE* LP
6100: 47 4f 50 48 45 52 5f 4d 4f 44 5f 44 41 54 45 5f  GOPHER_MOD_DATE_
6110: 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d  ATTRIBUTE_TYPE;.
6120: 0a 0d 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52  ...struct GOPHER
6130: 5f 54 54 4c 5f 41 54 54 52 49 42 55 54 45 5f 54  _TTL_ATTRIBUTE_T
6140: 59 50 45 20 7b 0d 0a 09 44 57 4f 52 44 20 54 74  YPE {...DWORD Tt
6150: 6c 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47 4f 50  l;..}..alias GOP
6160: 48 45 52 5f 54 54 4c 5f 41 54 54 52 49 42 55 54  HER_TTL_ATTRIBUT
6170: 45 5f 54 59 50 45 2a 20 4c 50 47 4f 50 48 45 52  E_TYPE* LPGOPHER
6180: 5f 54 54 4c 5f 41 54 54 52 49 42 55 54 45 5f 54  _TTL_ATTRIBUTE_T
6190: 59 50 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 47  YPE;....struct G
61a0: 4f 50 48 45 52 5f 53 43 4f 52 45 5f 41 54 54 52  OPHER_SCORE_ATTR
61b0: 49 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09 49  IBUTE_TYPE {...I
61c0: 4e 54 20 53 63 6f 72 65 3b 0d 0a 7d 0d 0a 61 6c  NT Score;..}..al
61d0: 69 61 73 20 47 4f 50 48 45 52 5f 53 43 4f 52 45  ias GOPHER_SCORE
61e0: 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a  _ATTRIBUTE_TYPE*
61f0: 20 4c 50 47 4f 50 48 45 52 5f 53 43 4f 52 45 5f   LPGOPHER_SCORE_
6200: 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d  ATTRIBUTE_TYPE;.
6210: 0a 0d 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52  ...struct GOPHER
6220: 5f 53 43 4f 52 45 5f 52 41 4e 47 45 5f 41 54 54  _SCORE_RANGE_ATT
6230: 52 49 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09  RIBUTE_TYPE {...
6240: 49 4e 54 20 4c 6f 77 65 72 42 6f 75 6e 64 3b 0d  INT LowerBound;.
6250: 0a 09 49 4e 54 20 55 70 70 65 72 42 6f 75 6e 64  ..INT UpperBound
6260: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47 4f 50 48  ;..}..alias GOPH
6270: 45 52 5f 53 43 4f 52 45 5f 52 41 4e 47 45 5f 41  ER_SCORE_RANGE_A
6280: 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a 20 4c  TTRIBUTE_TYPE* L
6290: 50 47 4f 50 48 45 52 5f 53 43 4f 52 45 5f 52 41  PGOPHER_SCORE_RA
62a0: 4e 47 45 5f 41 54 54 52 49 42 55 54 45 5f 54 59  NGE_ATTRIBUTE_TY
62b0: 50 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 47 4f  PE;....struct GO
62c0: 50 48 45 52 5f 53 49 54 45 5f 41 54 54 52 49 42  PHER_SITE_ATTRIB
62d0: 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09 4c 50 43  UTE_TYPE {...LPC
62e0: 54 53 54 52 20 53 69 74 65 3b 0d 0a 7d 0d 0a 61  TSTR Site;..}..a
62f0: 6c 69 61 73 20 47 4f 50 48 45 52 5f 53 49 54 45  lias GOPHER_SITE
6300: 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a  _ATTRIBUTE_TYPE*
6310: 20 4c 50 47 4f 50 48 45 52 5f 53 49 54 45 5f 41   LPGOPHER_SITE_A
6320: 54 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d 0a  TTRIBUTE_TYPE;..
6330: 0d 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52 5f  ..struct GOPHER_
6340: 4f 52 47 41 4e 49 5a 41 54 49 4f 4e 5f 41 54 54  ORGANIZATION_ATT
6350: 52 49 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09  RIBUTE_TYPE {...
6360: 4c 50 43 54 53 54 52 20 4f 72 67 61 6e 69 7a 61  LPCTSTR Organiza
6370: 74 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  tion;..}..alias 
6380: 47 4f 50 48 45 52 5f 4f 52 47 41 4e 49 5a 41 54  GOPHER_ORGANIZAT
6390: 49 4f 4e 5f 41 54 54 52 49 42 55 54 45 5f 54 59  ION_ATTRIBUTE_TY
63a0: 50 45 2a 20 4c 50 47 4f 50 48 45 52 5f 4f 52 47  PE* LPGOPHER_ORG
63b0: 41 4e 49 5a 41 54 49 4f 4e 5f 41 54 54 52 49 42  ANIZATION_ATTRIB
63c0: 55 54 45 5f 54 59 50 45 3b 0d 0a 0d 0a 73 74 72  UTE_TYPE;....str
63d0: 75 63 74 20 47 4f 50 48 45 52 5f 4c 4f 43 41 54  uct GOPHER_LOCAT
63e0: 49 4f 4e 5f 41 54 54 52 49 42 55 54 45 5f 54 59  ION_ATTRIBUTE_TY
63f0: 50 45 20 7b 0d 0a 09 4c 50 43 54 53 54 52 20 4c  PE {...LPCTSTR L
6400: 6f 63 61 74 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69  ocation;..}..ali
6410: 61 73 20 47 4f 50 48 45 52 5f 4c 4f 43 41 54 49  as GOPHER_LOCATI
6420: 4f 4e 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50  ON_ATTRIBUTE_TYP
6430: 45 2a 20 4c 50 47 4f 50 48 45 52 5f 4c 4f 43 41  E* LPGOPHER_LOCA
6440: 54 49 4f 4e 5f 41 54 54 52 49 42 55 54 45 5f 54  TION_ATTRIBUTE_T
6450: 59 50 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 47  YPE;....struct G
6460: 4f 50 48 45 52 5f 47 45 4f 47 52 41 50 48 49 43  OPHER_GEOGRAPHIC
6470: 41 4c 5f 4c 4f 43 41 54 49 4f 4e 5f 41 54 54 52  AL_LOCATION_ATTR
6480: 49 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09 49  IBUTE_TYPE {...I
6490: 4e 54 20 44 65 67 72 65 65 73 4e 6f 72 74 68 3b  NT DegreesNorth;
64a0: 0d 0a 09 49 4e 54 20 4d 69 6e 75 74 65 73 4e 6f  ...INT MinutesNo
64b0: 72 74 68 3b 0d 0a 09 49 4e 54 20 53 65 63 6f 6e  rth;...INT Secon
64c0: 64 73 4e 6f 72 74 68 3b 0d 0a 09 49 4e 54 20 44  dsNorth;...INT D
64d0: 65 67 72 65 65 73 45 61 73 74 3b 0d 0a 09 49 4e  egreesEast;...IN
64e0: 54 20 4d 69 6e 75 74 65 73 45 61 73 74 3b 0d 0a  T MinutesEast;..
64f0: 09 49 4e 54 20 53 65 63 6f 6e 64 73 45 61 73 74  .INT SecondsEast
6500: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47 4f 50 48  ;..}..alias GOPH
6510: 45 52 5f 47 45 4f 47 52 41 50 48 49 43 41 4c 5f  ER_GEOGRAPHICAL_
6520: 4c 4f 43 41 54 49 4f 4e 5f 41 54 54 52 49 42 55  LOCATION_ATTRIBU
6530: 54 45 5f 54 59 50 45 2a 0d 0a 20 20 4c 50 47 4f  TE_TYPE*..  LPGO
6540: 50 48 45 52 5f 47 45 4f 47 52 41 50 48 49 43 41  PHER_GEOGRAPHICA
6550: 4c 5f 4c 4f 43 41 54 49 4f 4e 5f 41 54 54 52 49  L_LOCATION_ATTRI
6560: 42 55 54 45 5f 54 59 50 45 3b 0d 0a 0d 0a 73 74  BUTE_TYPE;....st
6570: 72 75 63 74 20 47 4f 50 48 45 52 5f 54 49 4d 45  ruct GOPHER_TIME
6580: 5a 4f 4e 45 5f 41 54 54 52 49 42 55 54 45 5f 54  ZONE_ATTRIBUTE_T
6590: 59 50 45 20 7b 0d 0a 09 49 4e 54 20 5a 6f 6e 65  YPE {...INT Zone
65a0: 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 47 4f 50 48  ;..}..alias GOPH
65b0: 45 52 5f 54 49 4d 45 5a 4f 4e 45 5f 41 54 54 52  ER_TIMEZONE_ATTR
65c0: 49 42 55 54 45 5f 54 59 50 45 2a 20 4c 50 47 4f  IBUTE_TYPE* LPGO
65d0: 50 48 45 52 5f 54 49 4d 45 5a 4f 4e 45 5f 41 54  PHER_TIMEZONE_AT
65e0: 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d 0a 0d  TRIBUTE_TYPE;...
65f0: 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52 5f 50  .struct GOPHER_P
6600: 52 4f 56 49 44 45 52 5f 41 54 54 52 49 42 55 54  ROVIDER_ATTRIBUT
6610: 45 5f 54 59 50 45 20 7b 0d 0a 09 4c 50 43 54 53  E_TYPE {...LPCTS
6620: 54 52 20 50 72 6f 76 69 64 65 72 3b 0d 0a 7d 0d  TR Provider;..}.
6630: 0a 61 6c 69 61 73 20 47 4f 50 48 45 52 5f 50 52  .alias GOPHER_PR
6640: 4f 56 49 44 45 52 5f 41 54 54 52 49 42 55 54 45  OVIDER_ATTRIBUTE
6650: 5f 54 59 50 45 2a 20 4c 50 47 4f 50 48 45 52 5f  _TYPE* LPGOPHER_
6660: 50 52 4f 56 49 44 45 52 5f 41 54 54 52 49 42 55  PROVIDER_ATTRIBU
6670: 54 45 5f 54 59 50 45 3b 0d 0a 0d 0a 73 74 72 75  TE_TYPE;....stru
6680: 63 74 20 47 4f 50 48 45 52 5f 56 45 52 53 49 4f  ct GOPHER_VERSIO
6690: 4e 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45  N_ATTRIBUTE_TYPE
66a0: 20 7b 0d 0a 09 4c 50 43 54 53 54 52 20 56 65 72   {...LPCTSTR Ver
66b0: 73 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20  sion;..}..alias 
66c0: 47 4f 50 48 45 52 5f 56 45 52 53 49 4f 4e 5f 41  GOPHER_VERSION_A
66d0: 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a 20 4c  TTRIBUTE_TYPE* L
66e0: 50 47 4f 50 48 45 52 5f 56 45 52 53 49 4f 4e 5f  PGOPHER_VERSION_
66f0: 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d  ATTRIBUTE_TYPE;.
6700: 0a 0d 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52  ...struct GOPHER
6710: 5f 41 42 53 54 52 41 43 54 5f 41 54 54 52 49 42  _ABSTRACT_ATTRIB
6720: 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09 4c 50 43  UTE_TYPE {...LPC
6730: 54 53 54 52 20 53 68 6f 72 74 41 62 73 74 72 61  TSTR ShortAbstra
6740: 63 74 3b 0d 0a 09 4c 50 43 54 53 54 52 20 41 62  ct;...LPCTSTR Ab
6750: 73 74 72 61 63 74 46 69 6c 65 3b 0d 0a 7d 0d 0a  stractFile;..}..
6760: 61 6c 69 61 73 20 47 4f 50 48 45 52 5f 41 42 53  alias GOPHER_ABS
6770: 54 52 41 43 54 5f 41 54 54 52 49 42 55 54 45 5f  TRACT_ATTRIBUTE_
6780: 54 59 50 45 2a 20 4c 50 47 4f 50 48 45 52 5f 41  TYPE* LPGOPHER_A
6790: 42 53 54 52 41 43 54 5f 41 54 54 52 49 42 55 54  BSTRACT_ATTRIBUT
67a0: 45 5f 54 59 50 45 3b 0d 0a 0d 0a 73 74 72 75 63  E_TYPE;....struc
67b0: 74 20 47 4f 50 48 45 52 5f 56 49 45 57 5f 41 54  t GOPHER_VIEW_AT
67c0: 54 52 49 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a  TRIBUTE_TYPE {..
67d0: 09 4c 50 43 54 53 54 52 20 43 6f 6e 74 65 6e 74  .LPCTSTR Content
67e0: 54 79 70 65 3b 0d 0a 09 4c 50 43 54 53 54 52 20  Type;...LPCTSTR 
67f0: 4c 61 6e 67 75 61 67 65 3b 0d 0a 09 44 57 4f 52  Language;...DWOR
6800: 44 20 20 20 53 69 7a 65 3b 0d 0a 7d 0d 0a 61 6c  D   Size;..}..al
6810: 69 61 73 20 47 4f 50 48 45 52 5f 56 49 45 57 5f  ias GOPHER_VIEW_
6820: 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a 20  ATTRIBUTE_TYPE* 
6830: 4c 50 47 4f 50 48 45 52 5f 56 49 45 57 5f 41 54  LPGOPHER_VIEW_AT
6840: 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d 0a 0d  TRIBUTE_TYPE;...
6850: 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52 5f 56  .struct GOPHER_V
6860: 45 52 4f 4e 49 43 41 5f 41 54 54 52 49 42 55 54  ERONICA_ATTRIBUT
6870: 45 5f 54 59 50 45 20 7b 0d 0a 09 42 4f 4f 4c 20  E_TYPE {...BOOL 
6880: 54 72 65 65 57 61 6c 6b 3b 0d 0a 7d 0d 0a 61 6c  TreeWalk;..}..al
6890: 69 61 73 20 47 4f 50 48 45 52 5f 56 45 52 4f 4e  ias GOPHER_VERON
68a0: 49 43 41 5f 41 54 54 52 49 42 55 54 45 5f 54 59  ICA_ATTRIBUTE_TY
68b0: 50 45 2a 20 4c 50 47 4f 50 48 45 52 5f 56 45 52  PE* LPGOPHER_VER
68c0: 4f 4e 49 43 41 5f 41 54 54 52 49 42 55 54 45 5f  ONICA_ATTRIBUTE_
68d0: 54 59 50 45 3b 0d 0a 0d 0a 73 74 72 75 63 74 20  TYPE;....struct 
68e0: 47 4f 50 48 45 52 5f 41 53 4b 5f 41 54 54 52 49  GOPHER_ASK_ATTRI
68f0: 42 55 54 45 5f 54 59 50 45 20 7b 0d 0a 09 4c 50  BUTE_TYPE {...LP
6900: 43 54 53 54 52 20 51 75 65 73 74 69 6f 6e 54 79  CTSTR QuestionTy
6910: 70 65 3b 0d 0a 09 4c 50 43 54 53 54 52 20 51 75  pe;...LPCTSTR Qu
6920: 65 73 74 69 6f 6e 54 65 78 74 3b 0d 0a 7d 0d 0a  estionText;..}..
6930: 61 6c 69 61 73 20 47 4f 50 48 45 52 5f 41 53 4b  alias GOPHER_ASK
6940: 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a  _ATTRIBUTE_TYPE*
6950: 20 4c 50 47 4f 50 48 45 52 5f 41 53 4b 5f 41 54   LPGOPHER_ASK_AT
6960: 54 52 49 42 55 54 45 5f 54 59 50 45 3b 0d 0a 0d  TRIBUTE_TYPE;...
6970: 0a 73 74 72 75 63 74 20 47 4f 50 48 45 52 5f 55  .struct GOPHER_U
6980: 4e 4b 4e 4f 57 4e 5f 41 54 54 52 49 42 55 54 45  NKNOWN_ATTRIBUTE
6990: 5f 54 59 50 45 20 7b 0d 0a 09 4c 50 43 54 53 54  _TYPE {...LPCTST
69a0: 52 20 54 65 78 74 3b 0d 0a 7d 0d 0a 61 6c 69 61  R Text;..}..alia
69b0: 73 20 47 4f 50 48 45 52 5f 55 4e 4b 4e 4f 57 4e  s GOPHER_UNKNOWN
69c0: 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a  _ATTRIBUTE_TYPE*
69d0: 20 4c 50 47 4f 50 48 45 52 5f 55 4e 4b 4e 4f 57   LPGOPHER_UNKNOW
69e0: 4e 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45  N_ATTRIBUTE_TYPE
69f0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 47 4f 50 48  ;....struct GOPH
6a00: 45 52 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50  ER_ATTRIBUTE_TYP
6a10: 45 20 7b 0d 0a 09 44 57 4f 52 44 20 43 61 74 65  E {...DWORD Cate
6a20: 67 6f 72 79 49 64 3b 0d 0a 09 44 57 4f 52 44 20  goryId;...DWORD 
6a30: 41 74 74 72 69 62 75 74 65 49 64 3b 0d 0a 09 75  AttributeId;...u
6a40: 6e 69 6f 6e 20 7b 0d 0a 09 09 47 4f 50 48 45 52  nion {....GOPHER
6a50: 5f 41 44 4d 49 4e 5f 41 54 54 52 49 42 55 54 45  _ADMIN_ATTRIBUTE
6a60: 5f 54 59 50 45 20 20 20 20 20 20 20 20 20 20 20  _TYPE           
6a70: 20 20 20 20 20 20 41 64 6d 69 6e 3b 0d 0a 09 09        Admin;....
6a80: 47 4f 50 48 45 52 5f 4d 4f 44 5f 44 41 54 45 5f  GOPHER_MOD_DATE_
6a90: 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 20 20  ATTRIBUTE_TYPE  
6aa0: 20 20 20 20 20 20 20 20 20 20 20 20 4d 6f 64 44              ModD
6ab0: 61 74 65 3b 0d 0a 09 09 47 4f 50 48 45 52 5f 54  ate;....GOPHER_T
6ac0: 54 4c 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50  TL_ATTRIBUTE_TYP
6ad0: 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  E               
6ae0: 20 20 20 20 54 74 6c 3b 0d 0a 09 09 47 4f 50 48      Ttl;....GOPH
6af0: 45 52 5f 53 43 4f 52 45 5f 41 54 54 52 49 42 55  ER_SCORE_ATTRIBU
6b00: 54 45 5f 54 59 50 45 20 20 20 20 20 20 20 20 20  TE_TYPE         
6b10: 20 20 20 20 20 20 20 20 53 63 6f 72 65 3b 0d 0a          Score;..
6b20: 09 09 47 4f 50 48 45 52 5f 53 43 4f 52 45 5f 52  ..GOPHER_SCORE_R
6b30: 41 4e 47 45 5f 41 54 54 52 49 42 55 54 45 5f 54  ANGE_ATTRIBUTE_T
6b40: 59 50 45 20 20 20 20 20 20 20 20 20 20 20 53 63  YPE           Sc
6b50: 6f 72 65 52 61 6e 67 65 3b 0d 0a 09 09 47 4f 50  oreRange;....GOP
6b60: 48 45 52 5f 53 49 54 45 5f 41 54 54 52 49 42 55  HER_SITE_ATTRIBU
6b70: 54 45 5f 54 59 50 45 20 20 20 20 20 20 20 20 20  TE_TYPE         
6b80: 20 20 20 20 20 20 20 20 20 53 69 74 65 3b 0d 0a           Site;..
6b90: 09 09 47 4f 50 48 45 52 5f 4f 52 47 41 4e 49 5a  ..GOPHER_ORGANIZ
6ba0: 41 54 49 4f 4e 5f 41 54 54 52 49 42 55 54 45 5f  ATION_ATTRIBUTE_
6bb0: 54 59 50 45 20 20 20 20 20 20 20 20 20 20 4f 72  TYPE          Or
6bc0: 67 61 6e 69 7a 61 74 69 6f 6e 3b 0d 0a 09 09 47  ganization;....G
6bd0: 4f 50 48 45 52 5f 4c 4f 43 41 54 49 4f 4e 5f 41  OPHER_LOCATION_A
6be0: 54 54 52 49 42 55 54 45 5f 54 59 50 45 20 20 20  TTRIBUTE_TYPE   
6bf0: 20 20 20 20 20 20 20 20 20 20 20 4c 6f 63 61 74             Locat
6c00: 69 6f 6e 3b 0d 0a 09 09 47 4f 50 48 45 52 5f 47  ion;....GOPHER_G
6c10: 45 4f 47 52 41 50 48 49 43 41 4c 5f 4c 4f 43 41  EOGRAPHICAL_LOCA
6c20: 54 49 4f 4e 5f 41 54 54 52 49 42 55 54 45 5f 54  TION_ATTRIBUTE_T
6c30: 59 50 45 20 47 65 6f 67 72 61 70 68 69 63 61 6c  YPE Geographical
6c40: 4c 6f 63 61 74 69 6f 6e 3b 0d 0a 09 09 47 4f 50  Location;....GOP
6c50: 48 45 52 5f 54 49 4d 45 5a 4f 4e 45 5f 41 54 54  HER_TIMEZONE_ATT
6c60: 52 49 42 55 54 45 5f 54 59 50 45 20 20 20 20 20  RIBUTE_TYPE     
6c70: 20 20 20 20 20 20 20 20 20 54 69 6d 65 5a 6f 6e           TimeZon
6c80: 65 3b 0d 0a 09 09 47 4f 50 48 45 52 5f 50 52 4f  e;....GOPHER_PRO
6c90: 56 49 44 45 52 5f 41 54 54 52 49 42 55 54 45 5f  VIDER_ATTRIBUTE_
6ca0: 54 59 50 45 20 20 20 20 20 20 20 20 20 20 20 20  TYPE            
6cb0: 20 20 50 72 6f 76 69 64 65 72 3b 0d 0a 09 09 47    Provider;....G
6cc0: 4f 50 48 45 52 5f 56 45 52 53 49 4f 4e 5f 41 54  OPHER_VERSION_AT
6cd0: 54 52 49 42 55 54 45 5f 54 59 50 45 20 20 20 20  TRIBUTE_TYPE    
6ce0: 20 20 20 20 20 20 20 20 20 20 20 56 65 72 73 69             Versi
6cf0: 6f 6e 3b 0d 0a 09 09 47 4f 50 48 45 52 5f 41 42  on;....GOPHER_AB
6d00: 53 54 52 41 43 54 5f 41 54 54 52 49 42 55 54 45  STRACT_ATTRIBUTE
6d10: 5f 54 59 50 45 20 20 20 20 20 20 20 20 20 20 20  _TYPE           
6d20: 20 20 20 41 62 73 74 72 61 63 74 3b 0d 0a 09 09     Abstract;....
6d30: 47 4f 50 48 45 52 5f 56 49 45 57 5f 41 54 54 52  GOPHER_VIEW_ATTR
6d40: 49 42 55 54 45 5f 54 59 50 45 20 20 20 20 20 20  IBUTE_TYPE      
6d50: 20 20 20 20 20 20 20 20 20 20 20 20 56 69 65 77              View
6d60: 3b 0d 0a 09 09 47 4f 50 48 45 52 5f 56 45 52 4f  ;....GOPHER_VERO
6d70: 4e 49 43 41 5f 41 54 54 52 49 42 55 54 45 5f 54  NICA_ATTRIBUTE_T
6d80: 59 50 45 20 20 20 20 20 20 20 20 20 20 20 20 20  YPE             
6d90: 20 56 65 72 6f 6e 69 63 61 3b 0d 0a 09 09 47 4f   Veronica;....GO
6da0: 50 48 45 52 5f 41 53 4b 5f 41 54 54 52 49 42 55  PHER_ASK_ATTRIBU
6db0: 54 45 5f 54 59 50 45 20 20 20 20 20 20 20 20 20  TE_TYPE         
6dc0: 20 20 20 20 20 20 20 20 20 20 41 73 6b 3b 0d 0a            Ask;..
6dd0: 09 09 47 4f 50 48 45 52 5f 55 4e 4b 4e 4f 57 4e  ..GOPHER_UNKNOWN
6de0: 5f 41 54 54 52 49 42 55 54 45 5f 54 59 50 45 20  _ATTRIBUTE_TYPE 
6df0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 6e                Un
6e00: 6b 6e 6f 77 6e 3b 0d 0a 09 7d 20 2f 2b 41 74 74  known;...} /+Att
6e10: 72 69 62 75 74 65 54 79 70 65 3b 2b 2f 0d 0a 7d  ributeType;+/..}
6e20: 0d 0a 61 6c 69 61 73 20 47 4f 50 48 45 52 5f 41  ..alias GOPHER_A
6e30: 54 54 52 49 42 55 54 45 5f 54 59 50 45 2a 20 4c  TTRIBUTE_TYPE* L
6e40: 50 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55 54  PGOPHER_ATTRIBUT
6e50: 45 5f 54 59 50 45 3b 0d 0a 0d 0a 61 6c 69 61 73  E_TYPE;....alias
6e60: 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c   BOOL function(L
6e70: 50 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55 54  PGOPHER_ATTRIBUT
6e80: 45 5f 54 59 50 45 2c 20 44 57 4f 52 44 29 0d 0a  E_TYPE, DWORD)..
6e90: 20 20 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55    GOPHER_ATTRIBU
6ea0: 54 45 5f 45 4e 55 4d 45 52 41 54 4f 52 3b 0d 0a  TE_ENUMERATOR;..
6eb0: 0d 0a 73 74 72 75 63 74 20 49 4e 54 45 52 4e 45  ..struct INTERNE
6ec0: 54 5f 43 41 43 48 45 5f 45 4e 54 52 59 5f 49 4e  T_CACHE_ENTRY_IN
6ed0: 46 4f 41 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20  FOA {...DWORD   
6ee0: 20 64 77 53 74 72 75 63 74 53 69 7a 65 20 3d 20   dwStructSize = 
6ef0: 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45  INTERNET_CACHE_E
6f00: 4e 54 52 59 5f 49 4e 46 4f 41 2e 73 69 7a 65 6f  NTRY_INFOA.sizeo
6f10: 66 3b 0d 0a 09 4c 50 53 54 52 20 20 20 20 6c 70  f;...LPSTR    lp
6f20: 73 7a 53 6f 75 72 63 65 55 72 6c 4e 61 6d 65 3b  szSourceUrlName;
6f30: 0d 0a 09 4c 50 53 54 52 20 20 20 20 6c 70 73 7a  ...LPSTR    lpsz
6f40: 4c 6f 63 61 6c 46 69 6c 65 4e 61 6d 65 3b 0d 0a  LocalFileName;..
6f50: 09 44 57 4f 52 44 20 20 20 20 43 61 63 68 65 45  .DWORD    CacheE
6f60: 6e 74 72 79 54 79 70 65 3b 0d 0a 09 44 57 4f 52  ntryType;...DWOR
6f70: 44 20 20 20 20 64 77 55 73 65 43 6f 75 6e 74 3b  D    dwUseCount;
6f80: 0d 0a 09 44 57 4f 52 44 20 20 20 20 64 77 48 69  ...DWORD    dwHi
6f90: 74 52 61 74 65 3b 0d 0a 09 44 57 4f 52 44 20 20  tRate;...DWORD  
6fa0: 20 20 64 77 53 69 7a 65 4c 6f 77 3b 0d 0a 09 44    dwSizeLow;...D
6fb0: 57 4f 52 44 20 20 20 20 64 77 53 69 7a 65 48 69  WORD    dwSizeHi
6fc0: 67 68 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 4c  gh;...FILETIME L
6fd0: 61 73 74 4d 6f 64 69 66 69 65 64 54 69 6d 65 3b  astModifiedTime;
6fe0: 0d 0a 09 46 49 4c 45 54 49 4d 45 20 45 78 70 69  ...FILETIME Expi
6ff0: 72 65 54 69 6d 65 3b 0d 0a 09 46 49 4c 45 54 49  reTime;...FILETI
7000: 4d 45 20 4c 61 73 74 41 63 63 65 73 73 54 69 6d  ME LastAccessTim
7010: 65 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 4c 61  e;...FILETIME La
7020: 73 74 53 79 6e 63 54 69 6d 65 3b 0d 0a 09 50 42  stSyncTime;...PB
7030: 59 54 45 20 20 20 20 6c 70 48 65 61 64 65 72 49  YTE    lpHeaderI
7040: 6e 66 6f 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20  nfo;...DWORD    
7050: 64 77 48 65 61 64 65 72 49 6e 66 6f 53 69 7a 65  dwHeaderInfoSize
7060: 3b 0d 0a 09 4c 50 53 54 52 20 20 20 20 6c 70 73  ;...LPSTR    lps
7070: 7a 46 69 6c 65 45 78 74 65 6e 73 69 6f 6e 3b 0d  zFileExtension;.
7080: 0a 09 44 57 4f 52 44 20 20 20 20 64 77 52 65 73  ..DWORD    dwRes
7090: 65 72 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  erved;..}..alias
70a0: 20 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f   INTERNET_CACHE_
70b0: 45 4e 54 52 59 5f 49 4e 46 4f 41 2a 20 4c 50 49  ENTRY_INFOA* LPI
70c0: 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e  NTERNET_CACHE_EN
70d0: 54 52 59 5f 49 4e 46 4f 41 3b 0d 0a 0d 0a 73 74  TRY_INFOA;....st
70e0: 72 75 63 74 20 49 4e 54 45 52 4e 45 54 5f 43 41  ruct INTERNET_CA
70f0: 43 48 45 5f 45 4e 54 52 59 5f 49 4e 46 4f 57 20  CHE_ENTRY_INFOW 
7100: 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20 64 77 53  {...DWORD    dwS
7110: 74 72 75 63 74 53 69 7a 65 20 3d 20 49 4e 54 45  tructSize = INTE
7120: 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52 59  RNET_CACHE_ENTRY
7130: 5f 49 4e 46 4f 57 2e 73 69 7a 65 6f 66 3b 0d 0a  _INFOW.sizeof;..
7140: 09 4c 50 57 53 54 52 20 20 20 6c 70 73 7a 53 6f  .LPWSTR   lpszSo
7150: 75 72 63 65 55 72 6c 4e 61 6d 65 3b 0d 0a 09 4c  urceUrlName;...L
7160: 50 57 53 54 52 20 20 20 6c 70 73 7a 4c 6f 63 61  PWSTR   lpszLoca
7170: 6c 46 69 6c 65 4e 61 6d 65 3b 0d 0a 09 44 57 4f  lFileName;...DWO
7180: 52 44 20 20 20 20 43 61 63 68 65 45 6e 74 72 79  RD    CacheEntry
7190: 54 79 70 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20  Type;...DWORD   
71a0: 20 64 77 55 73 65 43 6f 75 6e 74 3b 0d 0a 09 44   dwUseCount;...D
71b0: 57 4f 52 44 20 20 20 20 64 77 48 69 74 52 61 74  WORD    dwHitRat
71c0: 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 64 77  e;...DWORD    dw
71d0: 53 69 7a 65 4c 6f 77 3b 0d 0a 09 44 57 4f 52 44  SizeLow;...DWORD
71e0: 20 20 20 20 64 77 53 69 7a 65 48 69 67 68 3b 0d      dwSizeHigh;.
71f0: 0a 09 46 49 4c 45 54 49 4d 45 20 4c 61 73 74 4d  ..FILETIME LastM
7200: 6f 64 69 66 69 65 64 54 69 6d 65 3b 0d 0a 09 46  odifiedTime;...F
7210: 49 4c 45 54 49 4d 45 20 45 78 70 69 72 65 54 69  ILETIME ExpireTi
7220: 6d 65 3b 0d 0a 09 46 49 4c 45 54 49 4d 45 20 4c  me;...FILETIME L
7230: 61 73 74 41 63 63 65 73 73 54 69 6d 65 3b 0d 0a  astAccessTime;..
7240: 09 46 49 4c 45 54 49 4d 45 20 4c 61 73 74 53 79  .FILETIME LastSy
7250: 6e 63 54 69 6d 65 3b 0d 0a 09 50 42 59 54 45 20  ncTime;...PBYTE 
7260: 20 20 20 6c 70 48 65 61 64 65 72 49 6e 66 6f 3b     lpHeaderInfo;
7270: 0d 0a 09 44 57 4f 52 44 20 20 20 20 64 77 48 65  ...DWORD    dwHe
7280: 61 64 65 72 49 6e 66 6f 53 69 7a 65 3b 0d 0a 09  aderInfoSize;...
7290: 4c 50 57 53 54 52 20 20 20 6c 70 73 7a 46 69 6c  LPWSTR   lpszFil
72a0: 65 45 78 74 65 6e 73 69 6f 6e 3b 0d 0a 09 44 57  eExtension;...DW
72b0: 4f 52 44 20 20 20 20 64 77 52 65 73 65 72 76 65  ORD    dwReserve
72c0: 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49 4e 54  d;..}..alias INT
72d0: 45 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52  ERNET_CACHE_ENTR
72e0: 59 5f 49 4e 46 4f 57 2a 20 4c 50 49 4e 54 45 52  Y_INFOW* LPINTER
72f0: 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52 59 5f  NET_CACHE_ENTRY_
7300: 49 4e 46 4f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74  INFOW;....struct
7310: 20 49 4e 54 45 52 4e 45 54 5f 42 55 46 46 45 52   INTERNET_BUFFER
7320: 53 41 20 7b 0d 0a 09 44 57 4f 52 44 20 20 20 20  SA {...DWORD    
7330: 20 20 20 20 20 20 20 20 20 20 64 77 53 74 72 75            dwStru
7340: 63 74 53 69 7a 65 20 3d 20 49 4e 54 45 52 4e 45  ctSize = INTERNE
7350: 54 5f 42 55 46 46 45 52 53 41 2e 73 69 7a 65 6f  T_BUFFERSA.sizeo
7360: 66 3b 0d 0a 09 49 4e 54 45 52 4e 45 54 5f 42 55  f;...INTERNET_BU
7370: 46 46 45 52 53 41 2a 20 4e 65 78 74 3b 0d 0a 09  FFERSA* Next;...
7380: 4c 50 43 53 54 52 20 20 20 20 20 20 20 20 20 20  LPCSTR          
7390: 20 20 20 6c 70 63 73 7a 48 65 61 64 65 72 3b 0d     lpcszHeader;.
73a0: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
73b0: 20 20 20 20 20 64 77 48 65 61 64 65 72 73 4c 65       dwHeadersLe
73c0: 6e 67 74 68 3b 0d 0a 09 44 57 4f 52 44 20 20 20  ngth;...DWORD   
73d0: 20 20 20 20 20 20 20 20 20 20 20 64 77 48 65 61             dwHea
73e0: 64 65 72 73 54 6f 74 61 6c 3b 0d 0a 09 4c 50 56  dersTotal;...LPV
73f0: 4f 49 44 20 20 20 20 20 20 20 20 20 20 20 20 20  OID             
7400: 6c 70 76 42 75 66 66 65 72 3b 0d 0a 09 44 57 4f  lpvBuffer;...DWO
7410: 52 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20  RD              
7420: 64 77 42 75 66 66 65 72 4c 65 6e 67 74 68 3b 0d  dwBufferLength;.
7430: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20  ..DWORD         
7440: 20 20 20 20 20 64 77 42 75 66 66 65 72 54 6f 74       dwBufferTot
7450: 61 6c 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  al;...DWORD     
7460: 20 20 20 20 20 20 20 20 20 64 77 4f 66 66 73 65           dwOffse
7470: 74 4c 6f 77 3b 0d 0a 09 44 57 4f 52 44 20 20 20  tLow;...DWORD   
7480: 20 20 20 20 20 20 20 20 20 20 20 64 77 4f 66 66             dwOff
7490: 73 65 74 48 69 67 68 3b 0d 0a 7d 0d 0a 61 6c 69  setHigh;..}..ali
74a0: 61 73 20 49 4e 54 45 52 4e 45 54 5f 42 55 46 46  as INTERNET_BUFF
74b0: 45 52 53 41 2a 20 4c 50 49 4e 54 45 52 4e 45 54  ERSA* LPINTERNET
74c0: 5f 42 55 46 46 45 52 53 41 3b 0d 0a 0d 0a 73 74  _BUFFERSA;....st
74d0: 72 75 63 74 20 49 4e 54 45 52 4e 45 54 5f 42 55  ruct INTERNET_BU
74e0: 46 46 45 52 53 57 20 7b 0d 0a 09 44 57 4f 52 44  FFERSW {...DWORD
74f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 77                dw
7500: 53 74 72 75 63 74 53 69 7a 65 20 3d 20 49 4e 54  StructSize = INT
7510: 45 52 4e 45 54 5f 42 55 46 46 45 52 53 57 2e 73  ERNET_BUFFERSW.s
7520: 69 7a 65 6f 66 3b 0d 0a 09 49 4e 54 45 52 4e 45  izeof;...INTERNE
7530: 54 5f 42 55 46 46 45 52 53 57 2a 20 4e 65 78 74  T_BUFFERSW* Next
7540: 3b 0d 0a 09 4c 50 43 57 53 54 52 20 20 20 20 20  ;...LPCWSTR     
7550: 20 20 20 20 20 20 20 6c 70 63 73 7a 48 65 61 64         lpcszHead
7560: 65 72 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  er;...DWORD     
7570: 20 20 20 20 20 20 20 20 20 64 77 48 65 61 64 65           dwHeade
7580: 72 73 4c 65 6e 67 74 68 3b 0d 0a 09 44 57 4f 52  rsLength;...DWOR
7590: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64  D              d
75a0: 77 48 65 61 64 65 72 73 54 6f 74 61 6c 3b 0d 0a  wHeadersTotal;..
75b0: 09 4c 50 56 4f 49 44 20 20 20 20 20 20 20 20 20  .LPVOID         
75c0: 20 20 20 20 6c 70 76 42 75 66 66 65 72 3b 0d 0a      lpvBuffer;..
75d0: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
75e0: 20 20 20 20 64 77 42 75 66 66 65 72 4c 65 6e 67      dwBufferLeng
75f0: 74 68 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20  th;...DWORD     
7600: 20 20 20 20 20 20 20 20 20 64 77 42 75 66 66 65           dwBuffe
7610: 72 54 6f 74 61 6c 3b 0d 0a 09 44 57 4f 52 44 20  rTotal;...DWORD 
7620: 20 20 20 20 20 20 20 20 20 20 20 20 20 64 77 4f               dwO
7630: 66 66 73 65 74 4c 6f 77 3b 0d 0a 09 44 57 4f 52  ffsetLow;...DWOR
7640: 44 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64  D              d
7650: 77 4f 66 66 73 65 74 48 69 67 68 3b 0d 0a 7d 0d  wOffsetHigh;..}.
7660: 0a 61 6c 69 61 73 20 49 4e 54 45 52 4e 45 54 5f  .alias INTERNET_
7670: 42 55 46 46 45 52 53 57 2a 20 4c 50 49 4e 54 45  BUFFERSW* LPINTE
7680: 52 4e 45 54 5f 42 55 46 46 45 52 53 57 3b 0d 0a  RNET_BUFFERSW;..
7690: 0d 0a 63 6f 6e 73 74 20 73 69 7a 65 5f 74 0d 0a  ..const size_t..
76a0: 09 47 52 4f 55 50 5f 4f 57 4e 45 52 5f 53 54 4f  .GROUP_OWNER_STO
76b0: 52 41 47 45 5f 53 49 5a 45 20 3d 20 20 20 34 2c  RAGE_SIZE =   4,
76c0: 0d 0a 09 47 52 4f 55 50 4e 41 4d 45 5f 4d 41 58  ...GROUPNAME_MAX
76d0: 5f 4c 45 4e 47 54 48 20 20 20 20 20 3d 20 31 32  _LENGTH     = 12
76e0: 30 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 49 4e 54  0;....struct INT
76f0: 45 52 4e 45 54 5f 43 41 43 48 45 5f 47 52 4f 55  ERNET_CACHE_GROU
7700: 50 5f 49 4e 46 4f 41 20 7b 0d 0a 09 44 57 4f 52  P_INFOA {...DWOR
7710: 44 20 64 77 47 72 6f 75 70 53 69 7a 65 3b 0d 0a  D dwGroupSize;..
7720: 09 44 57 4f 52 44 20 64 77 47 72 6f 75 70 46 6c  .DWORD dwGroupFl
7730: 61 67 73 3b 0d 0a 09 44 57 4f 52 44 20 64 77 47  ags;...DWORD dwG
7740: 72 6f 75 70 54 79 70 65 3b 0d 0a 09 44 57 4f 52  roupType;...DWOR
7750: 44 20 64 77 44 69 73 6b 55 73 61 67 65 3b 0d 0a  D dwDiskUsage;..
7760: 09 44 57 4f 52 44 20 64 77 44 69 73 6b 51 75 6f  .DWORD dwDiskQuo
7770: 74 61 3b 0d 0a 09 44 57 4f 52 44 5b 47 52 4f 55  ta;...DWORD[GROU
7780: 50 5f 4f 57 4e 45 52 5f 53 54 4f 52 41 47 45 5f  P_OWNER_STORAGE_
7790: 53 49 5a 45 5d 20 64 77 4f 77 6e 65 72 53 74 6f  SIZE] dwOwnerSto
77a0: 72 61 67 65 3b 0d 0a 09 43 48 41 52 5b 47 52 4f  rage;...CHAR[GRO
77b0: 55 50 4e 41 4d 45 5f 4d 41 58 5f 4c 45 4e 47 54  UPNAME_MAX_LENGT
77c0: 48 5d 20 20 20 20 20 20 73 7a 47 72 6f 75 70 4e  H]      szGroupN
77d0: 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 49  ame;..}..alias I
77e0: 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 47 52  NTERNET_CACHE_GR
77f0: 4f 55 50 5f 49 4e 46 4f 41 2a 20 4c 50 49 4e 54  OUP_INFOA* LPINT
7800: 45 52 4e 45 54 5f 43 41 43 48 45 5f 47 52 4f 55  ERNET_CACHE_GROU
7810: 50 5f 49 4e 46 4f 41 3b 0d 0a 0d 0a 73 74 72 75  P_INFOA;....stru
7820: 63 74 20 49 4e 54 45 52 4e 45 54 5f 43 41 43 48  ct INTERNET_CACH
7830: 45 5f 47 52 4f 55 50 5f 49 4e 46 4f 57 20 7b 0d  E_GROUP_INFOW {.
7840: 0a 09 44 57 4f 52 44 20 64 77 47 72 6f 75 70 53  ..DWORD dwGroupS
7850: 69 7a 65 3b 0d 0a 09 44 57 4f 52 44 20 64 77 47  ize;...DWORD dwG
7860: 72 6f 75 70 46 6c 61 67 73 3b 0d 0a 09 44 57 4f  roupFlags;...DWO
7870: 52 44 20 64 77 47 72 6f 75 70 54 79 70 65 3b 0d  RD dwGroupType;.
7880: 0a 09 44 57 4f 52 44 20 64 77 44 69 73 6b 55 73  ..DWORD dwDiskUs
7890: 61 67 65 3b 0d 0a 09 44 57 4f 52 44 20 64 77 44  age;...DWORD dwD
78a0: 69 73 6b 51 75 6f 74 61 3b 0d 0a 09 44 57 4f 52  iskQuota;...DWOR
78b0: 44 5b 47 52 4f 55 50 5f 4f 57 4e 45 52 5f 53 54  D[GROUP_OWNER_ST
78c0: 4f 52 41 47 45 5f 53 49 5a 45 5d 20 64 77 4f 77  ORAGE_SIZE] dwOw
78d0: 6e 65 72 53 74 6f 72 61 67 65 3b 0d 0a 09 57 43  nerStorage;...WC
78e0: 48 41 52 5b 47 52 4f 55 50 4e 41 4d 45 5f 4d 41  HAR[GROUPNAME_MA
78f0: 58 5f 4c 45 4e 47 54 48 5d 20 20 20 20 20 73 7a  X_LENGTH]     sz
7900: 47 72 6f 75 70 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61  GroupName;..}..a
7910: 6c 69 61 73 20 49 4e 54 45 52 4e 45 54 5f 43 41  lias INTERNET_CA
7920: 43 48 45 5f 47 52 4f 55 50 5f 49 4e 46 4f 57 2a  CHE_GROUP_INFOW*
7930: 20 4c 50 49 4e 54 45 52 4e 45 54 5f 43 41 43 48   LPINTERNET_CACH
7940: 45 5f 47 52 4f 55 50 5f 49 4e 46 4f 57 3b 0d 0a  E_GROUP_INFOW;..
7950: 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77  ..extern (Window
7960: 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65  s) {...BOOL Inte
7970: 72 6e 65 74 54 69 6d 65 46 72 6f 6d 53 79 73 74  rnetTimeFromSyst
7980: 65 6d 54 69 6d 65 28 53 59 53 54 45 4d 54 49 4d  emTime(SYSTEMTIM
7990: 45 2a 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52  E*, DWORD, LPSTR
79a0: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c  , DWORD);...BOOL
79b0: 20 49 6e 74 65 72 6e 65 74 54 69 6d 65 54 6f 53   InternetTimeToS
79c0: 79 73 74 65 6d 54 69 6d 65 28 4c 50 43 53 54 52  ystemTime(LPCSTR
79d0: 2c 20 53 59 53 54 45 4d 54 49 4d 45 2a 2c 20 44  , SYSTEMTIME*, D
79e0: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e  WORD);...BOOL In
79f0: 74 65 72 6e 65 74 44 65 62 75 67 47 65 74 4c 6f  ternetDebugGetLo
7a00: 63 61 6c 54 69 6d 65 28 53 59 53 54 45 4d 54 49  calTime(SYSTEMTI
7a10: 4d 45 2a 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  ME*, PDWORD);...
7a20: 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 43 72 61  BOOL InternetCra
7a30: 63 6b 55 72 6c 41 28 4c 50 43 53 54 52 2c 20 44  ckUrlA(LPCSTR, D
7a40: 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 4c 50 55  WORD, DWORD, LPU
7a50: 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 41 29 3b  RL_COMPONENTSA);
7a60: 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74  ...BOOL Internet
7a70: 43 72 61 63 6b 55 72 6c 57 28 4c 50 43 57 53 54  CrackUrlW(LPCWST
7a80: 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c  R, DWORD, DWORD,
7a90: 20 4c 50 55 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54   LPURL_COMPONENT
7aa0: 53 57 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65  SW);...BOOL Inte
7ab0: 72 6e 65 74 43 72 65 61 74 65 55 72 6c 41 28 4c  rnetCreateUrlA(L
7ac0: 50 55 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 41  PURL_COMPONENTSA
7ad0: 2c 20 44 57 4f 52 44 2c 20 4c 50 53 54 52 2c 20  , DWORD, LPSTR, 
7ae0: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
7af0: 49 6e 74 65 72 6e 65 74 43 72 65 61 74 65 55 72  InternetCreateUr
7b00: 6c 57 28 4c 50 55 52 4c 5f 43 4f 4d 50 4f 4e 45  lW(LPURL_COMPONE
7b10: 4e 54 53 57 2c 20 44 57 4f 52 44 2c 20 4c 50 57  NTSW, DWORD, LPW
7b20: 53 54 52 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09  STR, PDWORD);...
7b30: 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 43 61 6e  BOOL InternetCan
7b40: 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 41 28 4c 50  onicalizeUrlA(LP
7b50: 43 53 54 52 2c 20 4c 50 53 54 52 2c 20 50 44 57  CSTR, LPSTR, PDW
7b60: 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42  ORD, DWORD);...B
7b70: 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 43 61 6e 6f  OOL InternetCano
7b80: 6e 69 63 61 6c 69 7a 65 55 72 6c 57 28 4c 50 43  nicalizeUrlW(LPC
7b90: 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 50 44  WSTR, LPWSTR, PD
7ba0: 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  WORD, DWORD);...
7bb0: 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 43 68 65  BOOL InternetChe
7bc0: 63 6b 43 6f 6e 6e 65 63 74 69 6f 6e 41 28 4c 50  ckConnectionA(LP
7bd0: 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f  CSTR, DWORD, DWO
7be0: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65  RD);...BOOL Inte
7bf0: 72 6e 65 74 43 68 65 63 6b 43 6f 6e 6e 65 63 74  rnetCheckConnect
7c00: 69 6f 6e 57 28 4c 50 43 57 53 54 52 2c 20 44 57  ionW(LPCWSTR, DW
7c10: 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42  ORD, DWORD);...B
7c20: 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 43 6f 6d 62  OOL InternetComb
7c30: 69 6e 65 55 72 6c 41 28 4c 50 43 53 54 52 2c 20  ineUrlA(LPCSTR, 
7c40: 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c 20 50  LPCSTR, LPSTR, P
7c50: 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a  DWORD, DWORD);..
7c60: 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 43 6f  .BOOL InternetCo
7c70: 6d 62 69 6e 65 55 72 6c 57 28 4c 50 43 57 53 54  mbineUrlW(LPCWST
7c80: 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 57 53  R, LPCWSTR, LPWS
7c90: 54 52 2c 20 50 44 57 4f 52 44 2c 20 44 57 4f 52  TR, PDWORD, DWOR
7ca0: 44 29 3b 0d 0a 09 48 49 4e 54 45 52 4e 45 54 20  D);...HINTERNET 
7cb0: 49 6e 74 65 72 6e 65 74 4f 70 65 6e 41 28 4c 50  InternetOpenA(LP
7cc0: 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50 43  CSTR, DWORD, LPC
7cd0: 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 44 57 4f  STR, LPCSTR, DWO
7ce0: 52 44 29 3b 0d 0a 09 48 49 4e 54 45 52 4e 45 54  RD);...HINTERNET
7cf0: 20 49 6e 74 65 72 6e 65 74 4f 70 65 6e 57 28 4c   InternetOpenW(L
7d00: 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c  PCWSTR, DWORD, L
7d10: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c  PCWSTR, LPCWSTR,
7d20: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
7d30: 49 6e 74 65 72 6e 65 74 43 6c 6f 73 65 48 61 6e  InternetCloseHan
7d40: 64 6c 65 28 48 49 4e 54 45 52 4e 45 54 29 3b 0d  dle(HINTERNET);.
7d50: 0a 09 48 49 4e 54 45 52 4e 45 54 20 49 6e 74 65  ..HINTERNET Inte
7d60: 72 6e 65 74 43 6f 6e 6e 65 63 74 41 28 48 49 4e  rnetConnectA(HIN
7d70: 54 45 52 4e 45 54 2c 20 4c 50 43 53 54 52 2c 20  TERNET, LPCSTR, 
7d80: 49 4e 54 45 52 4e 45 54 5f 50 4f 52 54 2c 20 4c  INTERNET_PORT, L
7d90: 50 43 53 54 52 2c 0d 0a 09 20 20 4c 50 43 53 54  PCSTR,...  LPCST
7da0: 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c  R, DWORD, DWORD,
7db0: 20 44 57 4f 52 44 29 3b 0d 0a 09 48 49 4e 54 45   DWORD);...HINTE
7dc0: 52 4e 45 54 20 49 6e 74 65 72 6e 65 74 43 6f 6e  RNET InternetCon
7dd0: 6e 65 63 74 57 28 48 49 4e 54 45 52 4e 45 54 2c  nectW(HINTERNET,
7de0: 20 4c 50 43 57 53 54 52 2c 20 49 4e 54 45 52 4e   LPCWSTR, INTERN
7df0: 45 54 5f 50 4f 52 54 2c 20 4c 50 43 57 53 54 52  ET_PORT, LPCWSTR
7e00: 2c 0d 0a 09 20 20 4c 50 43 57 53 54 52 2c 20 44  ,...  LPCWSTR, D
7e10: 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f  WORD, DWORD, DWO
7e20: 52 44 29 3b 0d 0a 09 48 49 4e 54 45 52 4e 45 54  RD);...HINTERNET
7e30: 20 49 6e 74 65 72 6e 65 74 4f 70 65 6e 55 72 6c   InternetOpenUrl
7e40: 41 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43  A(HINTERNET, LPC
7e50: 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 44 57 4f  STR, LPCSTR, DWO
7e60: 52 44 2c 20 44 57 4f 52 44 2c 0d 0a 09 20 20 44  RD, DWORD,...  D
7e70: 57 4f 52 44 29 3b 0d 0a 09 48 49 4e 54 45 52 4e  WORD);...HINTERN
7e80: 45 54 20 49 6e 74 65 72 6e 65 74 4f 70 65 6e 55  ET InternetOpenU
7e90: 72 6c 57 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c  rlW(HINTERNET, L
7ea0: 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c  PCWSTR, LPCWSTR,
7eb0: 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 0d 0a   DWORD, DWORD,..
7ec0: 09 20 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  .  DWORD);...BOO
7ed0: 4c 20 49 6e 74 65 72 6e 65 74 52 65 61 64 46 69  L InternetReadFi
7ee0: 6c 65 28 48 49 4e 54 45 52 4e 45 54 2c 20 50 56  le(HINTERNET, PV
7ef0: 4f 49 44 2c 20 44 57 4f 52 44 2c 20 50 44 57 4f  OID, DWORD, PDWO
7f00: 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 49 6e 74  RD);...DWORD Int
7f10: 65 72 6e 65 74 53 65 74 46 69 6c 65 50 6f 69 6e  ernetSetFilePoin
7f20: 74 65 72 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c  ter(HINTERNET, L
7f30: 4f 4e 47 2c 20 50 56 4f 49 44 2c 20 44 57 4f 52  ONG, PVOID, DWOR
7f40: 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  D, DWORD);...BOO
7f50: 4c 20 49 6e 74 65 72 6e 65 74 57 72 69 74 65 46  L InternetWriteF
7f60: 69 6c 65 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c  ile(HINTERNET, L
7f70: 50 43 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 50  PCVOID, DWORD, P
7f80: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49  DWORD);...BOOL I
7f90: 6e 74 65 72 6e 65 74 51 75 65 72 79 44 61 74 61  nternetQueryData
7fa0: 41 76 61 69 6c 61 62 6c 65 28 48 49 4e 54 45 52  Available(HINTER
7fb0: 4e 45 54 2c 20 50 44 57 4f 52 44 2c 20 44 57 4f  NET, PDWORD, DWO
7fc0: 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  RD, DWORD);...BO
7fd0: 4f 4c 20 49 6e 74 65 72 6e 65 74 46 69 6e 64 4e  OL InternetFindN
7fe0: 65 78 74 46 69 6c 65 41 28 48 49 4e 54 45 52 4e  extFileA(HINTERN
7ff0: 45 54 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  ET, PVOID);...BO
8000: 4f 4c 20 49 6e 74 65 72 6e 65 74 46 69 6e 64 4e  OL InternetFindN
8010: 65 78 74 46 69 6c 65 57 28 48 49 4e 54 45 52 4e  extFileW(HINTERN
8020: 45 54 2c 20 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  ET, PVOID);...BO
8030: 4f 4c 20 49 6e 74 65 72 6e 65 74 51 75 65 72 79  OL InternetQuery
8040: 4f 70 74 69 6f 6e 41 28 48 49 4e 54 45 52 4e 45  OptionA(HINTERNE
8050: 54 2c 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c  T, DWORD, PVOID,
8060: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c   PDWORD);...BOOL
8070: 20 49 6e 74 65 72 6e 65 74 51 75 65 72 79 4f 70   InternetQueryOp
8080: 74 69 6f 6e 57 28 48 49 4e 54 45 52 4e 45 54 2c  tionW(HINTERNET,
8090: 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c 20 50   DWORD, PVOID, P
80a0: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49  DWORD);...BOOL I
80b0: 6e 74 65 72 6e 65 74 53 65 74 4f 70 74 69 6f 6e  nternetSetOption
80c0: 41 28 48 49 4e 54 45 52 4e 45 54 2c 20 44 57 4f  A(HINTERNET, DWO
80d0: 52 44 2c 20 50 56 4f 49 44 2c 20 44 57 4f 52 44  RD, PVOID, DWORD
80e0: 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e  );...BOOL Intern
80f0: 65 74 53 65 74 4f 70 74 69 6f 6e 57 28 48 49 4e  etSetOptionW(HIN
8100: 54 45 52 4e 45 54 2c 20 44 57 4f 52 44 2c 20 50  TERNET, DWORD, P
8110: 56 4f 49 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  VOID, DWORD);...
8120: 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 53 65 74  BOOL InternetSet
8130: 4f 70 74 69 6f 6e 45 78 41 28 48 49 4e 54 45 52  OptionExA(HINTER
8140: 4e 45 54 2c 20 44 57 4f 52 44 2c 20 50 56 4f 49  NET, DWORD, PVOI
8150: 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 29  D, DWORD, DWORD)
8160: 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65  ;...BOOL Interne
8170: 74 53 65 74 4f 70 74 69 6f 6e 45 78 57 28 48 49  tSetOptionExW(HI
8180: 4e 54 45 52 4e 45 54 2c 20 44 57 4f 52 44 2c 20  NTERNET, DWORD, 
8190: 50 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 44 57  PVOID, DWORD, DW
81a0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74  ORD);...BOOL Int
81b0: 65 72 6e 65 74 47 65 74 4c 61 73 74 52 65 73 70  ernetGetLastResp
81c0: 6f 6e 73 65 49 6e 66 6f 41 28 50 44 57 4f 52 44  onseInfoA(PDWORD
81d0: 2c 20 4c 50 53 54 52 2c 20 50 44 57 4f 52 44 29  , LPSTR, PDWORD)
81e0: 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65  ;...BOOL Interne
81f0: 74 47 65 74 4c 61 73 74 52 65 73 70 6f 6e 73 65  tGetLastResponse
8200: 49 6e 66 6f 57 28 50 44 57 4f 52 44 2c 20 4c 50  InfoW(PDWORD, LP
8210: 57 53 54 52 2c 20 50 44 57 4f 52 44 29 3b 0d 0a  WSTR, PDWORD);..
8220: 09 49 4e 54 45 52 4e 45 54 5f 53 54 41 54 55 53  .INTERNET_STATUS
8230: 5f 43 41 4c 4c 42 41 43 4b 20 49 6e 74 65 72 6e  _CALLBACK Intern
8240: 65 74 53 65 74 53 74 61 74 75 73 43 61 6c 6c 62  etSetStatusCallb
8250: 61 63 6b 28 48 49 4e 54 45 52 4e 45 54 2c 0d 0a  ack(HINTERNET,..
8260: 09 20 20 49 4e 54 45 52 4e 45 54 5f 53 54 41 54  .  INTERNET_STAT
8270: 55 53 5f 43 41 4c 4c 42 41 43 4b 29 3b 0d 0a 09  US_CALLBACK);...
8280: 44 57 4f 52 44 20 46 74 70 47 65 74 46 69 6c 65  DWORD FtpGetFile
8290: 53 69 7a 65 28 48 49 4e 54 45 52 4e 45 54 2c 20  Size(HINTERNET, 
82a0: 4c 50 44 57 4f 52 44 29 3b 0d 0a 09 48 49 4e 54  LPDWORD);...HINT
82b0: 45 52 4e 45 54 20 46 74 70 46 69 6e 64 46 69 72  ERNET FtpFindFir
82c0: 73 74 46 69 6c 65 41 28 48 49 4e 54 45 52 4e 45  stFileA(HINTERNE
82d0: 54 2c 20 4c 50 43 53 54 52 2c 20 4c 50 57 49 4e  T, LPCSTR, LPWIN
82e0: 33 32 5f 46 49 4e 44 5f 44 41 54 41 2c 20 44 57  32_FIND_DATA, DW
82f0: 4f 52 44 2c 0d 0a 09 20 20 44 57 4f 52 44 29 3b  ORD,...  DWORD);
8300: 0d 0a 09 48 49 4e 54 45 52 4e 45 54 20 46 74 70  ...HINTERNET Ftp
8310: 46 69 6e 64 46 69 72 73 74 46 69 6c 65 57 28 48  FindFirstFileW(H
8320: 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 57 53 54  INTERNET, LPCWST
8330: 52 2c 20 4c 50 57 49 4e 33 32 5f 46 49 4e 44 5f  R, LPWIN32_FIND_
8340: 44 41 54 41 2c 20 44 57 4f 52 44 2c 0d 0a 09 20  DATA, DWORD,... 
8350: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
8360: 46 74 70 47 65 74 46 69 6c 65 41 28 48 49 4e 54  FtpGetFileA(HINT
8370: 45 52 4e 45 54 2c 20 4c 50 43 53 54 52 2c 20 4c  ERNET, LPCSTR, L
8380: 50 43 53 54 52 2c 20 42 4f 4f 4c 2c 20 44 57 4f  PCSTR, BOOL, DWO
8390: 52 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  RD, DWORD, DWORD
83a0: 29 3b 0d 0a 09 42 4f 4f 4c 20 46 74 70 47 65 74  );...BOOL FtpGet
83b0: 46 69 6c 65 57 28 48 49 4e 54 45 52 4e 45 54 2c  FileW(HINTERNET,
83c0: 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54   LPCWSTR, LPCWST
83d0: 52 2c 20 42 4f 4f 4c 2c 20 44 57 4f 52 44 2c 20  R, BOOL, DWORD, 
83e0: 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a  DWORD, DWORD);..
83f0: 09 42 4f 4f 4c 20 46 74 70 50 75 74 46 69 6c 65  .BOOL FtpPutFile
8400: 41 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43  A(HINTERNET, LPC
8410: 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 44 57 4f  STR, LPCSTR, DWO
8420: 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  RD, DWORD);...BO
8430: 4f 4c 20 46 74 70 50 75 74 46 69 6c 65 57 28 48  OL FtpPutFileW(H
8440: 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 57 53 54  INTERNET, LPCWST
8450: 52 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52  R, LPCWSTR, DWOR
8460: 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  D, DWORD);...BOO
8470: 4c 20 46 74 70 44 65 6c 65 74 65 46 69 6c 65 41  L FtpDeleteFileA
8480: 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 53  (HINTERNET, LPCS
8490: 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20 46 74 70 44  TR);...BOOL FtpD
84a0: 65 6c 65 74 65 46 69 6c 65 57 28 48 49 4e 54 45  eleteFileW(HINTE
84b0: 52 4e 45 54 2c 20 4c 50 43 57 53 54 52 29 3b 0d  RNET, LPCWSTR);.
84c0: 0a 09 42 4f 4f 4c 20 46 74 70 52 65 6e 61 6d 65  ..BOOL FtpRename
84d0: 46 69 6c 65 41 28 48 49 4e 54 45 52 4e 45 54 2c  FileA(HINTERNET,
84e0: 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52 29   LPCSTR, LPCSTR)
84f0: 3b 0d 0a 09 42 4f 4f 4c 20 46 74 70 52 65 6e 61  ;...BOOL FtpRena
8500: 6d 65 46 69 6c 65 57 28 48 49 4e 54 45 52 4e 45  meFileW(HINTERNE
8510: 54 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43 57  T, LPCWSTR, LPCW
8520: 53 54 52 29 3b 0d 0a 09 48 49 4e 54 45 52 4e 45  STR);...HINTERNE
8530: 54 20 46 74 70 4f 70 65 6e 46 69 6c 65 41 28 48  T FtpOpenFileA(H
8540: 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 53 54 52  INTERNET, LPCSTR
8550: 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20  , DWORD, DWORD, 
8560: 44 57 4f 52 44 29 3b 0d 0a 09 48 49 4e 54 45 52  DWORD);...HINTER
8570: 4e 45 54 20 46 74 70 4f 70 65 6e 46 69 6c 65 57  NET FtpOpenFileW
8580: 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 57  (HINTERNET, LPCW
8590: 53 54 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52  STR, DWORD, DWOR
85a0: 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f  D, DWORD);...BOO
85b0: 4c 20 46 74 70 43 72 65 61 74 65 44 69 72 65 63  L FtpCreateDirec
85c0: 74 6f 72 79 41 28 48 49 4e 54 45 52 4e 45 54 2c  toryA(HINTERNET,
85d0: 20 4c 50 43 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c   LPCSTR);...BOOL
85e0: 20 46 74 70 43 72 65 61 74 65 44 69 72 65 63 74   FtpCreateDirect
85f0: 6f 72 79 57 28 48 49 4e 54 45 52 4e 45 54 2c 20  oryW(HINTERNET, 
8600: 4c 50 43 57 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c  LPCWSTR);...BOOL
8610: 20 46 74 70 52 65 6d 6f 76 65 44 69 72 65 63 74   FtpRemoveDirect
8620: 6f 72 79 41 28 48 49 4e 54 45 52 4e 45 54 2c 20  oryA(HINTERNET, 
8630: 4c 50 43 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20  LPCSTR);...BOOL 
8640: 46 74 70 52 65 6d 6f 76 65 44 69 72 65 63 74 6f  FtpRemoveDirecto
8650: 72 79 57 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c  ryW(HINTERNET, L
8660: 50 43 57 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20  PCWSTR);...BOOL 
8670: 46 74 70 53 65 74 43 75 72 72 65 6e 74 44 69 72  FtpSetCurrentDir
8680: 65 63 74 6f 72 79 41 28 48 49 4e 54 45 52 4e 45  ectoryA(HINTERNE
8690: 54 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 09 42 4f  T, LPCSTR);...BO
86a0: 4f 4c 20 46 74 70 53 65 74 43 75 72 72 65 6e 74  OL FtpSetCurrent
86b0: 44 69 72 65 63 74 6f 72 79 57 28 48 49 4e 54 45  DirectoryW(HINTE
86c0: 52 4e 45 54 2c 20 4c 50 43 57 53 54 52 29 3b 0d  RNET, LPCWSTR);.
86d0: 0a 09 42 4f 4f 4c 20 46 74 70 47 65 74 43 75 72  ..BOOL FtpGetCur
86e0: 72 65 6e 74 44 69 72 65 63 74 6f 72 79 41 28 48  rentDirectoryA(H
86f0: 49 4e 54 45 52 4e 45 54 2c 20 4c 50 53 54 52 2c  INTERNET, LPSTR,
8700: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c   PDWORD);...BOOL
8710: 20 46 74 70 47 65 74 43 75 72 72 65 6e 74 44 69   FtpGetCurrentDi
8720: 72 65 63 74 6f 72 79 57 28 48 49 4e 54 45 52 4e  rectoryW(HINTERN
8730: 45 54 2c 20 4c 50 57 53 54 52 2c 20 50 44 57 4f  ET, LPWSTR, PDWO
8740: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 46 74 70 43  RD);...BOOL FtpC
8750: 6f 6d 6d 61 6e 64 41 28 48 49 4e 54 45 52 4e 45  ommandA(HINTERNE
8760: 54 2c 20 42 4f 4f 4c 2c 20 44 57 4f 52 44 2c 20  T, BOOL, DWORD, 
8770: 4c 50 43 53 54 52 2c 20 44 57 4f 52 44 5f 50 54  LPCSTR, DWORD_PT
8780: 52 2c 20 48 49 4e 54 45 52 4e 45 54 2a 29 3b 0d  R, HINTERNET*);.
8790: 0a 09 42 4f 4f 4c 20 46 74 70 43 6f 6d 6d 61 6e  ..BOOL FtpComman
87a0: 64 57 28 48 49 4e 54 45 52 4e 45 54 2c 20 42 4f  dW(HINTERNET, BO
87b0: 4f 4c 2c 20 44 57 4f 52 44 2c 20 4c 50 43 57 53  OL, DWORD, LPCWS
87c0: 54 52 2c 20 44 57 4f 52 44 5f 50 54 52 2c 20 48  TR, DWORD_PTR, H
87d0: 49 4e 54 45 52 4e 45 54 2a 29 3b 0d 0a 09 42 4f  INTERNET*);...BO
87e0: 4f 4c 20 47 6f 70 68 65 72 43 72 65 61 74 65 4c  OL GopherCreateL
87f0: 6f 63 61 74 6f 72 41 28 4c 50 43 53 54 52 2c 20  ocatorA(LPCSTR, 
8800: 49 4e 54 45 52 4e 45 54 5f 50 4f 52 54 2c 20 4c  INTERNET_PORT, L
8810: 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 44  PCSTR, LPCSTR, D
8820: 57 4f 52 44 2c 0d 0a 09 20 20 4c 50 53 54 52 2c  WORD,...  LPSTR,
8830: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c   PDWORD);...BOOL
8840: 20 47 6f 70 68 65 72 43 72 65 61 74 65 4c 6f 63   GopherCreateLoc
8850: 61 74 6f 72 57 28 4c 50 43 57 53 54 52 2c 20 49  atorW(LPCWSTR, I
8860: 4e 54 45 52 4e 45 54 5f 50 4f 52 54 2c 20 4c 50  NTERNET_PORT, LP
8870: 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20  CWSTR, LPCWSTR, 
8880: 44 57 4f 52 44 2c 0d 0a 09 20 20 4c 50 57 53 54  DWORD,...  LPWST
8890: 52 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  R, PDWORD);...BO
88a0: 4f 4c 20 47 6f 70 68 65 72 47 65 74 4c 6f 63 61  OL GopherGetLoca
88b0: 74 6f 72 54 79 70 65 41 28 4c 50 43 53 54 52 2c  torTypeA(LPCSTR,
88c0: 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c   PDWORD);...BOOL
88d0: 20 47 6f 70 68 65 72 47 65 74 4c 6f 63 61 74 6f   GopherGetLocato
88e0: 72 54 79 70 65 57 28 4c 50 43 57 53 54 52 2c 20  rTypeW(LPCWSTR, 
88f0: 50 44 57 4f 52 44 29 3b 0d 0a 09 48 49 4e 54 45  PDWORD);...HINTE
8900: 52 4e 45 54 20 47 6f 70 68 65 72 46 69 6e 64 46  RNET GopherFindF
8910: 69 72 73 74 46 69 6c 65 41 28 48 49 4e 54 45 52  irstFileA(HINTER
8920: 4e 45 54 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43  NET, LPCSTR, LPC
8930: 53 54 52 2c 0d 0a 09 20 20 4c 50 47 4f 50 48 45  STR,...  LPGOPHE
8940: 52 5f 46 49 4e 44 5f 44 41 54 41 41 2c 20 44 57  R_FIND_DATAA, DW
8950: 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 48  ORD, DWORD);...H
8960: 49 4e 54 45 52 4e 45 54 20 47 6f 70 68 65 72 46  INTERNET GopherF
8970: 69 6e 64 46 69 72 73 74 46 69 6c 65 57 28 48 49  indFirstFileW(HI
8980: 4e 54 45 52 4e 45 54 2c 20 4c 50 43 57 53 54 52  NTERNET, LPCWSTR
8990: 2c 20 4c 50 43 57 53 54 52 2c 0d 0a 09 20 20 4c  , LPCWSTR,...  L
89a0: 50 47 4f 50 48 45 52 5f 46 49 4e 44 5f 44 41 54  PGOPHER_FIND_DAT
89b0: 41 57 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  AW, DWORD, DWORD
89c0: 29 3b 0d 0a 09 48 49 4e 54 45 52 4e 45 54 20 47  );...HINTERNET G
89d0: 6f 70 68 65 72 4f 70 65 6e 46 69 6c 65 41 28 48  opherOpenFileA(H
89e0: 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 53 54 52  INTERNET, LPCSTR
89f0: 2c 20 4c 50 43 53 54 52 2c 20 44 57 4f 52 44 2c  , LPCSTR, DWORD,
8a00: 20 44 57 4f 52 44 29 3b 0d 0a 09 48 49 4e 54 45   DWORD);...HINTE
8a10: 52 4e 45 54 20 47 6f 70 68 65 72 4f 70 65 6e 46  RNET GopherOpenF
8a20: 69 6c 65 57 28 48 49 4e 54 45 52 4e 45 54 2c 20  ileW(HINTERNET, 
8a30: 4c 50 43 57 53 54 52 2c 20 4c 50 43 57 53 54 52  LPCWSTR, LPCWSTR
8a40: 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b  , DWORD, DWORD);
8a50: 0d 0a 09 42 4f 4f 4c 20 47 6f 70 68 65 72 47 65  ...BOOL GopherGe
8a60: 74 41 74 74 72 69 62 75 74 65 41 28 48 49 4e 54  tAttributeA(HINT
8a70: 45 52 4e 45 54 2c 20 4c 50 43 53 54 52 2c 20 4c  ERNET, LPCSTR, L
8a80: 50 43 53 54 52 2c 20 4c 50 42 59 54 45 2c 20 44  PCSTR, LPBYTE, D
8a90: 57 4f 52 44 2c 0d 0a 09 20 20 50 44 57 4f 52 44  WORD,...  PDWORD
8aa0: 2c 20 47 4f 50 48 45 52 5f 41 54 54 52 49 42 55  , GOPHER_ATTRIBU
8ab0: 54 45 5f 45 4e 55 4d 45 52 41 54 4f 52 2c 20 44  TE_ENUMERATOR, D
8ac0: 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 47 6f  WORD);...BOOL Go
8ad0: 70 68 65 72 47 65 74 41 74 74 72 69 62 75 74 65  pherGetAttribute
8ae0: 57 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43  W(HINTERNET, LPC
8af0: 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c  WSTR, LPCWSTR, L
8b00: 50 42 59 54 45 2c 20 44 57 4f 52 44 2c 0d 0a 09  PBYTE, DWORD,...
8b10: 20 20 50 44 57 4f 52 44 2c 20 47 4f 50 48 45 52    PDWORD, GOPHER
8b20: 5f 41 54 54 52 49 42 55 54 45 5f 45 4e 55 4d 45  _ATTRIBUTE_ENUME
8b30: 52 41 54 4f 52 2c 20 44 57 4f 52 44 29 3b 0d 0a  RATOR, DWORD);..
8b40: 09 48 49 4e 54 45 52 4e 45 54 20 48 74 74 70 4f  .HINTERNET HttpO
8b50: 70 65 6e 52 65 71 75 65 73 74 41 28 48 49 4e 54  penRequestA(HINT
8b60: 45 52 4e 45 54 2c 20 4c 50 43 53 54 52 2c 20 4c  ERNET, LPCSTR, L
8b70: 50 43 53 54 52 2c 20 4c 50 43 53 54 52 2c 20 4c  PCSTR, LPCSTR, L
8b80: 50 43 53 54 52 2c 0d 0a 09 20 20 4c 50 43 53 54  PCSTR,...  LPCST
8b90: 52 2a 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  R*, DWORD, DWORD
8ba0: 29 3b 0d 0a 09 48 49 4e 54 45 52 4e 45 54 20 48  );...HINTERNET H
8bb0: 74 74 70 4f 70 65 6e 52 65 71 75 65 73 74 57 28  ttpOpenRequestW(
8bc0: 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 43 57 53  HINTERNET, LPCWS
8bd0: 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 43  TR, LPCWSTR, LPC
8be0: 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 0d 0a  WSTR, LPCWSTR,..
8bf0: 09 20 20 4c 50 43 57 53 54 52 2a 2c 20 44 57 4f  .  LPCWSTR*, DWO
8c00: 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  RD, DWORD);...BO
8c10: 4f 4c 20 48 74 74 70 41 64 64 52 65 71 75 65 73  OL HttpAddReques
8c20: 74 48 65 61 64 65 72 73 41 28 48 49 4e 54 45 52  tHeadersA(HINTER
8c30: 4e 45 54 2c 20 4c 50 43 53 54 52 2c 20 44 57 4f  NET, LPCSTR, DWO
8c40: 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  RD, DWORD);...BO
8c50: 4f 4c 20 48 74 74 70 41 64 64 52 65 71 75 65 73  OL HttpAddReques
8c60: 74 48 65 61 64 65 72 73 57 28 48 49 4e 54 45 52  tHeadersW(HINTER
8c70: 4e 45 54 2c 20 4c 50 43 57 53 54 52 2c 20 44 57  NET, LPCWSTR, DW
8c80: 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42  ORD, DWORD);...B
8c90: 4f 4f 4c 20 48 74 74 70 53 65 6e 64 52 65 71 75  OOL HttpSendRequ
8ca0: 65 73 74 41 28 48 49 4e 54 45 52 4e 45 54 2c 20  estA(HINTERNET, 
8cb0: 4c 50 43 53 54 52 2c 20 44 57 4f 52 44 2c 20 50  LPCSTR, DWORD, P
8cc0: 56 4f 49 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  VOID, DWORD);...
8cd0: 42 4f 4f 4c 20 48 74 74 70 53 65 6e 64 52 65 71  BOOL HttpSendReq
8ce0: 75 65 73 74 57 28 48 49 4e 54 45 52 4e 45 54 2c  uestW(HINTERNET,
8cf0: 20 4c 50 43 57 53 54 52 2c 20 44 57 4f 52 44 2c   LPCWSTR, DWORD,
8d00: 20 50 56 4f 49 44 2c 20 44 57 4f 52 44 29 3b 0d   PVOID, DWORD);.
8d10: 0a 09 42 4f 4f 4c 20 48 74 74 70 51 75 65 72 79  ..BOOL HttpQuery
8d20: 49 6e 66 6f 41 28 48 49 4e 54 45 52 4e 45 54 2c  InfoA(HINTERNET,
8d30: 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c 20 50   DWORD, PVOID, P
8d40: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d  DWORD, PDWORD);.
8d50: 0a 09 42 4f 4f 4c 20 48 74 74 70 51 75 65 72 79  ..BOOL HttpQuery
8d60: 49 6e 66 6f 57 28 48 49 4e 54 45 52 4e 45 54 2c  InfoW(HINTERNET,
8d70: 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c 20 50   DWORD, PVOID, P
8d80: 44 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d  DWORD, PDWORD);.
8d90: 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 53  ..BOOL InternetS
8da0: 65 74 43 6f 6f 6b 69 65 41 28 4c 50 43 53 54 52  etCookieA(LPCSTR
8db0: 2c 20 4c 50 43 53 54 52 2c 20 4c 50 43 53 54 52  , LPCSTR, LPCSTR
8dc0: 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e  );...BOOL Intern
8dd0: 65 74 53 65 74 43 6f 6f 6b 69 65 57 28 4c 50 43  etSetCookieW(LPC
8de0: 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c  WSTR, LPCWSTR, L
8df0: 50 43 57 53 54 52 29 3b 0d 0a 09 42 4f 4f 4c 20  PCWSTR);...BOOL 
8e00: 49 6e 74 65 72 6e 65 74 47 65 74 43 6f 6f 6b 69  InternetGetCooki
8e10: 65 41 28 4c 50 43 53 54 52 2c 20 4c 50 43 53 54  eA(LPCSTR, LPCST
8e20: 52 2c 20 4c 50 53 54 52 2c 20 50 44 57 4f 52 44  R, LPSTR, PDWORD
8e30: 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e  );...BOOL Intern
8e40: 65 74 47 65 74 43 6f 6f 6b 69 65 57 28 4c 50 43  etGetCookieW(LPC
8e50: 57 53 54 52 2c 20 4c 50 43 57 53 54 52 2c 20 4c  WSTR, LPCWSTR, L
8e60: 50 57 53 54 52 2c 20 50 44 57 4f 52 44 29 3b 0d  PWSTR, PDWORD);.
8e70: 0a 09 44 57 4f 52 44 20 49 6e 74 65 72 6e 65 74  ..DWORD Internet
8e80: 41 74 74 65 6d 70 74 43 6f 6e 6e 65 63 74 28 44  AttemptConnect(D
8e90: 57 4f 52 44 29 3b 0d 0a 09 44 57 4f 52 44 20 49  WORD);...DWORD I
8ea0: 6e 74 65 72 6e 65 74 45 72 72 6f 72 44 6c 67 28  nternetErrorDlg(
8eb0: 48 57 4e 44 2c 20 48 49 4e 54 45 52 4e 45 54 2c  HWND, HINTERNET,
8ec0: 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 50   DWORD, DWORD, P
8ed0: 56 4f 49 44 2a 29 3b 0d 0a 09 44 57 4f 52 44 20  VOID*);...DWORD 
8ee0: 49 6e 74 65 72 6e 65 74 43 6f 6e 66 69 72 6d 5a  InternetConfirmZ
8ef0: 6f 6e 65 43 72 6f 73 73 69 6e 67 28 48 57 4e 44  oneCrossing(HWND
8f00: 2c 20 4c 50 53 54 52 2c 20 4c 50 53 54 52 2c 20  , LPSTR, LPSTR, 
8f10: 42 4f 4f 4c 29 3b 0d 0a 09 42 4f 4f 4c 20 43 72  BOOL);...BOOL Cr
8f20: 65 61 74 65 55 72 6c 43 61 63 68 65 45 6e 74 72  eateUrlCacheEntr
8f30: 79 41 28 4c 50 43 53 54 52 2c 20 44 57 4f 52 44  yA(LPCSTR, DWORD
8f40: 2c 20 4c 50 43 53 54 52 2c 20 4c 50 53 54 52 2c  , LPCSTR, LPSTR,
8f50: 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20   DWORD);...BOOL 
8f60: 43 72 65 61 74 65 55 72 6c 43 61 63 68 65 45 6e  CreateUrlCacheEn
8f70: 74 72 79 57 28 4c 50 43 57 53 54 52 2c 20 44 57  tryW(LPCWSTR, DW
8f80: 4f 52 44 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50  ORD, LPCWSTR, LP
8f90: 57 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  WSTR, DWORD);...
8fa0: 42 4f 4f 4c 20 43 6f 6d 6d 69 74 55 72 6c 43 61  BOOL CommitUrlCa
8fb0: 63 68 65 45 6e 74 72 79 41 28 4c 50 43 53 54 52  cheEntryA(LPCSTR
8fc0: 2c 20 4c 50 43 53 54 52 2c 20 46 49 4c 45 54 49  , LPCSTR, FILETI
8fd0: 4d 45 2c 20 46 49 4c 45 54 49 4d 45 2c 20 44 57  ME, FILETIME, DW
8fe0: 4f 52 44 2c 0d 0a 09 20 20 4c 50 42 59 54 45 2c  ORD,...  LPBYTE,
8ff0: 20 44 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c 20   DWORD, LPCSTR, 
9000: 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 43  DWORD);...BOOL C
9010: 6f 6d 6d 69 74 55 72 6c 43 61 63 68 65 45 6e 74  ommitUrlCacheEnt
9020: 72 79 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 43  ryW(LPCWSTR, LPC
9030: 57 53 54 52 2c 20 46 49 4c 45 54 49 4d 45 2c 20  WSTR, FILETIME, 
9040: 46 49 4c 45 54 49 4d 45 2c 20 44 57 4f 52 44 2c  FILETIME, DWORD,
9050: 0d 0a 09 20 20 4c 50 42 59 54 45 2c 20 44 57 4f  ...  LPBYTE, DWO
9060: 52 44 2c 20 4c 50 43 57 53 54 52 2c 20 44 57 4f  RD, LPCWSTR, DWO
9070: 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 52 65 74 72  RD);...BOOL Retr
9080: 69 65 76 65 55 72 6c 43 61 63 68 65 45 6e 74 72  ieveUrlCacheEntr
9090: 79 46 69 6c 65 41 28 4c 50 43 53 54 52 2c 20 4c  yFileA(LPCSTR, L
90a0: 50 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f  PINTERNET_CACHE_
90b0: 45 4e 54 52 59 5f 49 4e 46 4f 41 2c 0d 0a 09 20  ENTRY_INFOA,... 
90c0: 20 50 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b   PDWORD, DWORD);
90d0: 0d 0a 09 42 4f 4f 4c 20 52 65 74 72 69 65 76 65  ...BOOL Retrieve
90e0: 55 72 6c 43 61 63 68 65 45 6e 74 72 79 46 69 6c  UrlCacheEntryFil
90f0: 65 57 28 4c 50 43 57 53 54 52 2c 20 4c 50 49 4e  eW(LPCWSTR, LPIN
9100: 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54  TERNET_CACHE_ENT
9110: 52 59 5f 49 4e 46 4f 57 2c 0d 0a 09 20 20 50 44  RY_INFOW,...  PD
9120: 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  WORD, DWORD);...
9130: 42 4f 4f 4c 20 55 6e 6c 6f 63 6b 55 72 6c 43 61  BOOL UnlockUrlCa
9140: 63 68 65 45 6e 74 72 79 46 69 6c 65 28 4c 50 43  cheEntryFile(LPC
9150: 53 54 52 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 48  STR, DWORD);...H
9160: 41 4e 44 4c 45 20 52 65 74 72 69 65 76 65 55 72  ANDLE RetrieveUr
9170: 6c 43 61 63 68 65 45 6e 74 72 79 53 74 72 65 61  lCacheEntryStrea
9180: 6d 41 28 4c 50 43 53 54 52 2c 20 4c 50 49 4e 54  mA(LPCSTR, LPINT
9190: 45 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52  ERNET_CACHE_ENTR
91a0: 59 5f 49 4e 46 4f 41 2c 0d 0a 09 20 20 50 44 57  Y_INFOA,...  PDW
91b0: 4f 52 44 2c 20 42 4f 4f 4c 2c 20 44 57 4f 52 44  ORD, BOOL, DWORD
91c0: 29 3b 0d 0a 09 48 41 4e 44 4c 45 20 52 65 74 72  );...HANDLE Retr
91d0: 69 65 76 65 55 72 6c 43 61 63 68 65 45 6e 74 72  ieveUrlCacheEntr
91e0: 79 53 74 72 65 61 6d 57 28 4c 50 43 57 53 54 52  yStreamW(LPCWSTR
91f0: 2c 20 4c 50 49 4e 54 45 52 4e 45 54 5f 43 41 43  , LPINTERNET_CAC
9200: 48 45 5f 45 4e 54 52 59 5f 49 4e 46 4f 57 2c 0d  HE_ENTRY_INFOW,.
9210: 0a 09 20 20 50 44 57 4f 52 44 2c 20 42 4f 4f 4c  ..  PDWORD, BOOL
9220: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c  , DWORD);...BOOL
9230: 20 52 65 61 64 55 72 6c 43 61 63 68 65 45 6e 74   ReadUrlCacheEnt
9240: 72 79 53 74 72 65 61 6d 28 48 41 4e 44 4c 45 2c  ryStream(HANDLE,
9250: 20 44 57 4f 52 44 2c 20 50 56 4f 49 44 2c 20 50   DWORD, PVOID, P
9260: 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a  DWORD, DWORD);..
9270: 09 42 4f 4f 4c 20 55 6e 6c 6f 63 6b 55 72 6c 43  .BOOL UnlockUrlC
9280: 61 63 68 65 45 6e 74 72 79 53 74 72 65 61 6d 28  acheEntryStream(
9290: 48 41 4e 44 4c 45 2c 20 44 57 4f 52 44 29 3b 0d  HANDLE, DWORD);.
92a0: 0a 09 42 4f 4f 4c 20 47 65 74 55 72 6c 43 61 63  ..BOOL GetUrlCac
92b0: 68 65 45 6e 74 72 79 49 6e 66 6f 41 28 4c 50 43  heEntryInfoA(LPC
92c0: 53 54 52 2c 20 4c 50 49 4e 54 45 52 4e 45 54 5f  STR, LPINTERNET_
92d0: 43 41 43 48 45 5f 45 4e 54 52 59 5f 49 4e 46 4f  CACHE_ENTRY_INFO
92e0: 41 2c 20 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  A, PDWORD);...BO
92f0: 4f 4c 20 47 65 74 55 72 6c 43 61 63 68 65 45 6e  OL GetUrlCacheEn
9300: 74 72 79 49 6e 66 6f 57 28 4c 50 43 57 53 54 52  tryInfoW(LPCWSTR
9310: 2c 20 4c 50 49 4e 54 45 52 4e 45 54 5f 43 41 43  , LPINTERNET_CAC
9320: 48 45 5f 45 4e 54 52 59 5f 49 4e 46 4f 57 2c 20  HE_ENTRY_INFOW, 
9330: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
9340: 53 65 74 55 72 6c 43 61 63 68 65 45 6e 74 72 79  SetUrlCacheEntry
9350: 49 6e 66 6f 41 28 4c 50 43 53 54 52 2c 20 4c 50  InfoA(LPCSTR, LP
9360: 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45  INTERNET_CACHE_E
9370: 4e 54 52 59 5f 49 4e 46 4f 41 2c 20 44 57 4f 52  NTRY_INFOA, DWOR
9380: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74 55 72  D);...BOOL SetUr
9390: 6c 43 61 63 68 65 45 6e 74 72 79 49 6e 66 6f 57  lCacheEntryInfoW
93a0: 28 4c 50 43 57 53 54 52 2c 20 4c 50 49 4e 54 45  (LPCWSTR, LPINTE
93b0: 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52 59  RNET_CACHE_ENTRY
93c0: 5f 49 4e 46 4f 57 2c 20 44 57 4f 52 44 29 3b 0d  _INFOW, DWORD);.
93d0: 0a 09 48 41 4e 44 4c 45 20 46 69 6e 64 46 69 72  ..HANDLE FindFir
93e0: 73 74 55 72 6c 43 61 63 68 65 45 6e 74 72 79 41  stUrlCacheEntryA
93f0: 28 4c 50 43 53 54 52 2c 20 4c 50 49 4e 54 45 52  (LPCSTR, LPINTER
9400: 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52 59 5f  NET_CACHE_ENTRY_
9410: 49 4e 46 4f 41 2c 0d 0a 09 20 20 50 44 57 4f 52  INFOA,...  PDWOR
9420: 44 29 3b 0d 0a 09 48 41 4e 44 4c 45 20 46 69 6e  D);...HANDLE Fin
9430: 64 46 69 72 73 74 55 72 6c 43 61 63 68 65 45 6e  dFirstUrlCacheEn
9440: 74 72 79 57 28 4c 50 43 57 53 54 52 2c 20 4c 50  tryW(LPCWSTR, LP
9450: 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45  INTERNET_CACHE_E
9460: 4e 54 52 59 5f 49 4e 46 4f 57 2c 0d 0a 09 20 20  NTRY_INFOW,...  
9470: 50 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20  PDWORD);...BOOL 
9480: 46 69 6e 64 4e 65 78 74 55 72 6c 43 61 63 68 65  FindNextUrlCache
9490: 45 6e 74 72 79 41 28 48 41 4e 44 4c 45 2c 20 4c  EntryA(HANDLE, L
94a0: 50 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f  PINTERNET_CACHE_
94b0: 45 4e 54 52 59 5f 49 4e 46 4f 41 2c 20 50 44 57  ENTRY_INFOA, PDW
94c0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 46 69 6e  ORD);...BOOL Fin
94d0: 64 4e 65 78 74 55 72 6c 43 61 63 68 65 45 6e 74  dNextUrlCacheEnt
94e0: 72 79 57 28 48 41 4e 44 4c 45 2c 20 4c 50 49 4e  ryW(HANDLE, LPIN
94f0: 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54  TERNET_CACHE_ENT
9500: 52 59 5f 49 4e 46 4f 57 2c 20 50 44 57 4f 52 44  RY_INFOW, PDWORD
9510: 29 3b 0d 0a 09 42 4f 4f 4c 20 46 69 6e 64 43 6c  );...BOOL FindCl
9520: 6f 73 65 55 72 6c 43 61 63 68 65 28 48 41 4e 44  oseUrlCache(HAND
9530: 4c 45 29 3b 0d 0a 09 42 4f 4f 4c 20 44 65 6c 65  LE);...BOOL Dele
9540: 74 65 55 72 6c 43 61 63 68 65 45 6e 74 72 79 28  teUrlCacheEntry(
9550: 4c 50 43 53 54 52 29 3b 0d 0a 09 44 57 4f 52 44  LPCSTR);...DWORD
9560: 20 41 75 74 68 65 6e 74 69 63 61 74 65 55 73 65   AuthenticateUse
9570: 72 28 50 56 4f 49 44 2a 2c 20 4c 50 53 54 52 2c  r(PVOID*, LPSTR,
9580: 20 4c 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c   LPSTR, DWORD, L
9590: 50 53 54 52 2c 20 44 57 4f 52 44 2c 20 4c 50 53  PSTR, DWORD, LPS
95a0: 54 52 2c 0d 0a 09 20 20 4c 50 53 54 52 29 3b 0d  TR,...  LPSTR);.
95b0: 0a 09 42 4f 4f 4c 20 48 74 74 70 53 65 6e 64 52  ..BOOL HttpSendR
95c0: 65 71 75 65 73 74 45 78 41 28 48 49 4e 54 45 52  equestExA(HINTER
95d0: 4e 45 54 2c 20 4c 50 49 4e 54 45 52 4e 45 54 5f  NET, LPINTERNET_
95e0: 42 55 46 46 45 52 53 41 2c 0d 0a 09 20 20 4c 50  BUFFERSA,...  LP
95f0: 49 4e 54 45 52 4e 45 54 5f 42 55 46 46 45 52 53  INTERNET_BUFFERS
9600: 41 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 29  A, DWORD, DWORD)
9610: 3b 0d 0a 09 42 4f 4f 4c 20 48 74 74 70 53 65 6e  ;...BOOL HttpSen
9620: 64 52 65 71 75 65 73 74 45 78 57 28 48 49 4e 54  dRequestExW(HINT
9630: 45 52 4e 45 54 2c 20 4c 50 49 4e 54 45 52 4e 45  ERNET, LPINTERNE
9640: 54 5f 42 55 46 46 45 52 53 57 2c 0d 0a 09 20 20  T_BUFFERSW,...  
9650: 4c 50 49 4e 54 45 52 4e 45 54 5f 42 55 46 46 45  LPINTERNET_BUFFE
9660: 52 53 57 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52  RSW, DWORD, DWOR
9670: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 48 74 74 70 45  D);...BOOL HttpE
9680: 6e 64 52 65 71 75 65 73 74 41 28 48 49 4e 54 45  ndRequestA(HINTE
9690: 52 4e 45 54 2c 20 4c 50 49 4e 54 45 52 4e 45 54  RNET, LPINTERNET
96a0: 5f 42 55 46 46 45 52 53 41 2c 20 44 57 4f 52 44  _BUFFERSA, DWORD
96b0: 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c  , DWORD);...BOOL
96c0: 20 48 74 74 70 45 6e 64 52 65 71 75 65 73 74 57   HttpEndRequestW
96d0: 28 48 49 4e 54 45 52 4e 45 54 2c 20 4c 50 49 4e  (HINTERNET, LPIN
96e0: 54 45 52 4e 45 54 5f 42 55 46 46 45 52 53 57 2c  TERNET_BUFFERSW,
96f0: 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d   DWORD, DWORD);.
9700: 0a 09 44 57 4f 52 44 20 49 6e 74 65 72 6e 65 74  ..DWORD Internet
9710: 44 69 61 6c 28 48 57 4e 44 2c 20 4c 50 54 53 54  Dial(HWND, LPTST
9720: 52 2c 20 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52  R, DWORD, LPDWOR
9730: 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09 44 57 4f  D, DWORD);...DWO
9740: 52 44 20 49 6e 74 65 72 6e 65 74 48 61 6e 67 55  RD InternetHangU
9750: 70 28 44 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b  p(DWORD, DWORD);
9760: 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74  ...BOOL Internet
9770: 47 6f 4f 6e 6c 69 6e 65 28 4c 50 54 53 54 52 2c  GoOnline(LPTSTR,
9780: 20 48 57 4e 44 2c 20 44 57 4f 52 44 29 3b 0d 0a   HWND, DWORD);..
9790: 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 41 75  .BOOL InternetAu
97a0: 74 6f 64 69 61 6c 28 44 57 4f 52 44 2c 20 44 57  todial(DWORD, DW
97b0: 4f 52 44 29 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74  ORD);...BOOL Int
97c0: 65 72 6e 65 74 41 75 74 6f 64 69 61 6c 48 61 6e  ernetAutodialHan
97d0: 67 75 70 28 44 57 4f 52 44 29 3b 0d 0a 09 42 4f  gup(DWORD);...BO
97e0: 4f 4c 20 49 6e 74 65 72 6e 65 74 47 65 74 43 6f  OL InternetGetCo
97f0: 6e 6e 65 63 74 65 64 53 74 61 74 65 28 4c 50 44  nnectedState(LPD
9800: 57 4f 52 44 2c 20 44 57 4f 52 44 29 3b 0d 0a 09  WORD, DWORD);...
9810: 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 53 65 74  BOOL InternetSet
9820: 44 69 61 6c 53 74 61 74 65 28 4c 50 43 54 53 54  DialState(LPCTST
9830: 52 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 29  R, DWORD, DWORD)
9840: 3b 0d 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65  ;...BOOL Interne
9850: 74 52 65 61 64 46 69 6c 65 45 78 41 28 48 49 4e  tReadFileExA(HIN
9860: 54 45 52 4e 45 54 2c 20 4c 50 49 4e 54 45 52 4e  TERNET, LPINTERN
9870: 45 54 5f 42 55 46 46 45 52 53 41 2c 20 44 57 4f  ET_BUFFERSA, DWO
9880: 52 44 2c 20 44 57 4f 52 44 5f 50 54 52 29 3b 0d  RD, DWORD_PTR);.
9890: 0a 09 42 4f 4f 4c 20 49 6e 74 65 72 6e 65 74 52  ..BOOL InternetR
98a0: 65 61 64 46 69 6c 65 45 78 57 28 48 49 4e 54 45  eadFileExW(HINTE
98b0: 52 4e 45 54 2c 20 4c 50 49 4e 54 45 52 4e 45 54  RNET, LPINTERNET
98c0: 5f 42 55 46 46 45 52 53 57 2c 20 44 57 4f 52 44  _BUFFERSW, DWORD
98d0: 2c 20 44 57 4f 52 44 5f 50 54 52 29 3b 0d 0a 09  , DWORD_PTR);...
98e0: 47 52 4f 55 50 49 44 20 43 72 65 61 74 65 55 72  GROUPID CreateUr
98f0: 6c 43 61 63 68 65 47 72 6f 75 70 28 44 57 4f 52  lCacheGroup(DWOR
9900: 44 2c 20 4c 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  D, LPVOID);...BO
9910: 4f 4c 20 44 65 6c 65 74 65 55 72 6c 43 61 63 68  OL DeleteUrlCach
9920: 65 47 72 6f 75 70 28 47 52 4f 55 50 49 44 2c 20  eGroup(GROUPID, 
9930: 44 57 4f 52 44 2c 20 4c 50 56 4f 49 44 29 3b 0d  DWORD, LPVOID);.
9940: 0a 09 48 41 4e 44 4c 45 20 46 69 6e 64 46 69 72  ..HANDLE FindFir
9950: 73 74 55 72 6c 43 61 63 68 65 47 72 6f 75 70 28  stUrlCacheGroup(
9960: 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 20 4c 50  DWORD, DWORD, LP
9970: 56 4f 49 44 2c 20 44 57 4f 52 44 2c 20 47 52 4f  VOID, DWORD, GRO
9980: 55 50 49 44 2a 2c 0d 0a 09 20 20 4c 50 56 4f 49  UPID*,...  LPVOI
9990: 44 29 3b 0d 0a 09 42 4f 4f 4c 20 46 69 6e 64 4e  D);...BOOL FindN
99a0: 65 78 74 55 72 6c 43 61 63 68 65 47 72 6f 75 70  extUrlCacheGroup
99b0: 28 48 41 4e 44 4c 45 2c 20 47 52 4f 55 50 49 44  (HANDLE, GROUPID
99c0: 2a 2c 20 4c 50 56 4f 49 44 29 3b 0d 0a 09 42 4f  *, LPVOID);...BO
99d0: 4f 4c 20 47 65 74 55 72 6c 43 61 63 68 65 47 72  OL GetUrlCacheGr
99e0: 6f 75 70 41 74 74 72 69 62 75 74 65 41 28 47 52  oupAttributeA(GR
99f0: 4f 55 50 49 44 2c 20 44 57 4f 52 44 2c 20 44 57  OUPID, DWORD, DW
9a00: 4f 52 44 2c 0d 0a 09 20 20 4c 50 49 4e 54 45 52  ORD,...  LPINTER
9a10: 4e 45 54 5f 43 41 43 48 45 5f 47 52 4f 55 50 5f  NET_CACHE_GROUP_
9a20: 49 4e 46 4f 41 2c 20 4c 50 44 57 4f 52 44 2c 20  INFOA, LPDWORD, 
9a30: 4c 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20  LPVOID);...BOOL 
9a40: 47 65 74 55 72 6c 43 61 63 68 65 47 72 6f 75 70  GetUrlCacheGroup
9a50: 41 74 74 72 69 62 75 74 65 57 28 47 52 4f 55 50  AttributeW(GROUP
9a60: 49 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44  ID, DWORD, DWORD
9a70: 2c 0d 0a 09 20 20 4c 50 49 4e 54 45 52 4e 45 54  ,...  LPINTERNET
9a80: 5f 43 41 43 48 45 5f 47 52 4f 55 50 5f 49 4e 46  _CACHE_GROUP_INF
9a90: 4f 57 2c 20 4c 50 44 57 4f 52 44 2c 20 4c 50 56  OW, LPDWORD, LPV
9aa0: 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c 20 53 65 74  OID);...BOOL Set
9ab0: 55 72 6c 43 61 63 68 65 47 72 6f 75 70 41 74 74  UrlCacheGroupAtt
9ac0: 72 69 62 75 74 65 41 28 47 52 4f 55 50 49 44 2c  ributeA(GROUPID,
9ad0: 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 2c 0d 0a   DWORD, DWORD,..
9ae0: 09 20 20 4c 50 49 4e 54 45 52 4e 45 54 5f 43 41  .  LPINTERNET_CA
9af0: 43 48 45 5f 47 52 4f 55 50 5f 49 4e 46 4f 41 2c  CHE_GROUP_INFOA,
9b00: 20 4c 50 56 4f 49 44 29 3b 0d 0a 09 42 4f 4f 4c   LPVOID);...BOOL
9b10: 20 53 65 74 55 72 6c 43 61 63 68 65 47 72 6f 75   SetUrlCacheGrou
9b20: 70 41 74 74 72 69 62 75 74 65 57 28 47 52 4f 55  pAttributeW(GROU
9b30: 50 49 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52  PID, DWORD, DWOR
9b40: 44 2c 0d 0a 09 20 20 4c 50 49 4e 54 45 52 4e 45  D,...  LPINTERNE
9b50: 54 5f 43 41 43 48 45 5f 47 52 4f 55 50 5f 49 4e  T_CACHE_GROUP_IN
9b60: 46 4f 57 2c 20 4c 50 56 4f 49 44 29 3b 0d 0a 7d  FOW, LPVOID);..}
9b70: 0d 0a 0d 0a 76 65 72 73 69 6f 6e 20 28 55 6e 69  ....version (Uni
9b80: 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20  code) {...alias 
9b90: 55 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 57 20  URL_COMPONENTSW 
9ba0: 55 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 3b 0d  URL_COMPONENTS;.
9bb0: 0a 09 61 6c 69 61 73 20 4c 50 55 52 4c 5f 43 4f  ..alias LPURL_CO
9bc0: 4d 50 4f 4e 45 4e 54 53 57 20 4c 50 55 52 4c 5f  MPONENTSW LPURL_
9bd0: 43 4f 4d 50 4f 4e 45 4e 54 53 3b 0d 0a 09 61 6c  COMPONENTS;...al
9be0: 69 61 73 20 47 4f 50 48 45 52 5f 46 49 4e 44 5f  ias GOPHER_FIND_
9bf0: 44 41 54 41 57 20 47 4f 50 48 45 52 5f 46 49 4e  DATAW GOPHER_FIN
9c00: 44 5f 44 41 54 41 3b 0d 0a 09 61 6c 69 61 73 20  D_DATA;...alias 
9c10: 4c 50 47 4f 50 48 45 52 5f 46 49 4e 44 5f 44 41  LPGOPHER_FIND_DA
9c20: 54 41 57 20 4c 50 47 4f 50 48 45 52 5f 46 49 4e  TAW LPGOPHER_FIN
9c30: 44 5f 44 41 54 41 3b 0d 0a 09 61 6c 69 61 73 20  D_DATA;...alias 
9c40: 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45  INTERNET_CACHE_E
9c50: 4e 54 52 59 5f 49 4e 46 4f 57 20 49 4e 54 45 52  NTRY_INFOW INTER
9c60: 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52 59 5f  NET_CACHE_ENTRY_
9c70: 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 4c 50  INFO;...alias LP
9c80: 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 45  INTERNET_CACHE_E
9c90: 4e 54 52 59 5f 49 4e 46 4f 57 20 4c 50 49 4e 54  NTRY_INFOW LPINT
9ca0: 45 52 4e 45 54 5f 43 41 43 48 45 5f 45 4e 54 52  ERNET_CACHE_ENTR
9cb0: 59 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20  Y_INFO;...alias 
9cc0: 49 4e 54 45 52 4e 45 54 5f 42 55 46 46 45 52 53  INTERNET_BUFFERS
9cd0: 57 20 49 4e 54 45 52 4e 45 54 5f 42 55 46 46 45  W INTERNET_BUFFE
9ce0: 52 53 3b 0d 0a 09 61 6c 69 61 73 20 49 4e 54 45  RS;...alias INTE
9cf0: 52 4e 45 54 5f 43 41 43 48 45 5f 47 52 4f 55 50  RNET_CACHE_GROUP
9d00: 5f 49 4e 46 4f 57 20 49 4e 54 45 52 4e 45 54 5f  _INFOW INTERNET_
9d10: 43 41 43 48 45 5f 47 52 4f 55 50 5f 49 4e 46 4f  CACHE_GROUP_INFO
9d20: 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 49 4e 54 45  ;...alias LPINTE
9d30: 52 4e 45 54 5f 43 41 43 48 45 5f 47 52 4f 55 50  RNET_CACHE_GROUP
9d40: 5f 49 4e 46 4f 57 20 4c 50 49 4e 54 45 52 4e 45  _INFOW LPINTERNE
9d50: 54 5f 43 41 43 48 45 5f 47 52 4f 55 50 5f 49 4e  T_CACHE_GROUP_IN
9d60: 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65  FO;...alias Inte
9d70: 72 6e 65 74 43 72 61 63 6b 55 72 6c 57 20 49 6e  rnetCrackUrlW In
9d80: 74 65 72 6e 65 74 43 72 61 63 6b 55 72 6c 3b 0d  ternetCrackUrl;.
9d90: 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74  ..alias Internet
9da0: 43 72 65 61 74 65 55 72 6c 57 20 49 6e 74 65 72  CreateUrlW Inter
9db0: 6e 65 74 43 72 65 61 74 65 55 72 6c 3b 0d 0a 09  netCreateUrl;...
9dc0: 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74 43 61  alias InternetCa
9dd0: 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 57 20 49  nonicalizeUrlW I
9de0: 6e 74 65 72 6e 65 74 43 61 6e 6f 6e 69 63 61 6c  nternetCanonical
9df0: 69 7a 65 55 72 6c 3b 0d 0a 09 61 6c 69 61 73 20  izeUrl;...alias 
9e00: 49 6e 74 65 72 6e 65 74 43 68 65 63 6b 43 6f 6e  InternetCheckCon
9e10: 6e 65 63 74 69 6f 6e 57 20 49 6e 74 65 72 6e 65  nectionW Interne
9e20: 74 43 68 65 63 6b 43 6f 6e 6e 65 63 74 69 6f 6e  tCheckConnection
9e30: 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e  ;...alias Intern
9e40: 65 74 43 6f 6d 62 69 6e 65 55 72 6c 57 20 49 6e  etCombineUrlW In
9e50: 74 65 72 6e 65 74 43 6f 6d 62 69 6e 65 55 72 6c  ternetCombineUrl
9e60: 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e  ;...alias Intern
9e70: 65 74 4f 70 65 6e 57 20 49 6e 74 65 72 6e 65 74  etOpenW Internet
9e80: 4f 70 65 6e 3b 0d 0a 09 61 6c 69 61 73 20 49 6e  Open;...alias In
9e90: 74 65 72 6e 65 74 43 6f 6e 6e 65 63 74 57 20 49  ternetConnectW I
9ea0: 6e 74 65 72 6e 65 74 43 6f 6e 6e 65 63 74 3b 0d  nternetConnect;.
9eb0: 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74  ..alias Internet
9ec0: 4f 70 65 6e 55 72 6c 57 20 49 6e 74 65 72 6e 65  OpenUrlW Interne
9ed0: 74 4f 70 65 6e 55 72 6c 3b 0d 0a 09 61 6c 69 61  tOpenUrl;...alia
9ee0: 73 20 49 6e 74 65 72 6e 65 74 46 69 6e 64 4e 65  s InternetFindNe
9ef0: 78 74 46 69 6c 65 57 20 49 6e 74 65 72 6e 65 74  xtFileW Internet
9f00: 46 69 6e 64 4e 65 78 74 46 69 6c 65 3b 0d 0a 09  FindNextFile;...
9f10: 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74 51 75  alias InternetQu
9f20: 65 72 79 4f 70 74 69 6f 6e 57 20 49 6e 74 65 72  eryOptionW Inter
9f30: 6e 65 74 51 75 65 72 79 4f 70 74 69 6f 6e 3b 0d  netQueryOption;.
9f40: 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74  ..alias Internet
9f50: 53 65 74 4f 70 74 69 6f 6e 57 20 49 6e 74 65 72  SetOptionW Inter
9f60: 6e 65 74 53 65 74 4f 70 74 69 6f 6e 3b 0d 0a 09  netSetOption;...
9f70: 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74 53 65  alias InternetSe
9f80: 74 4f 70 74 69 6f 6e 45 78 57 20 49 6e 74 65 72  tOptionExW Inter
9f90: 6e 65 74 53 65 74 4f 70 74 69 6f 6e 45 78 3b 0d  netSetOptionEx;.
9fa0: 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74  ..alias Internet
9fb0: 47 65 74 4c 61 73 74 52 65 73 70 6f 6e 73 65 49  GetLastResponseI
9fc0: 6e 66 6f 57 20 49 6e 74 65 72 6e 65 74 47 65 74  nfoW InternetGet
9fd0: 4c 61 73 74 52 65 73 70 6f 6e 73 65 49 6e 66 6f  LastResponseInfo
9fe0: 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e  ;...alias Intern
9ff0: 65 74 52 65 61 64 46 69 6c 65 45 78 57 20 49 6e  etReadFileExW In
a000: 74 65 72 6e 65 74 52 65 61 64 46 69 6c 65 45 78  ternetReadFileEx
a010: 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 46 69 6e  ;...alias FtpFin
a020: 64 46 69 72 73 74 46 69 6c 65 57 20 46 74 70 46  dFirstFileW FtpF
a030: 69 6e 64 46 69 72 73 74 46 69 6c 65 3b 0d 0a 09  indFirstFile;...
a040: 61 6c 69 61 73 20 46 74 70 47 65 74 46 69 6c 65  alias FtpGetFile
a050: 57 20 46 74 70 47 65 74 46 69 6c 65 3b 0d 0a 09  W FtpGetFile;...
a060: 61 6c 69 61 73 20 46 74 70 50 75 74 46 69 6c 65  alias FtpPutFile
a070: 57 20 46 74 70 50 75 74 46 69 6c 65 3b 0d 0a 09  W FtpPutFile;...
a080: 61 6c 69 61 73 20 46 74 70 44 65 6c 65 74 65 46  alias FtpDeleteF
a090: 69 6c 65 57 20 46 74 70 44 65 6c 65 74 65 46 69  ileW FtpDeleteFi
a0a0: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 52  le;...alias FtpR
a0b0: 65 6e 61 6d 65 46 69 6c 65 57 20 46 74 70 52 65  enameFileW FtpRe
a0c0: 6e 61 6d 65 46 69 6c 65 3b 0d 0a 09 61 6c 69 61  nameFile;...alia
a0d0: 73 20 46 74 70 4f 70 65 6e 46 69 6c 65 57 20 46  s FtpOpenFileW F
a0e0: 74 70 4f 70 65 6e 46 69 6c 65 3b 0d 0a 09 61 6c  tpOpenFile;...al
a0f0: 69 61 73 20 46 74 70 43 72 65 61 74 65 44 69 72  ias FtpCreateDir
a100: 65 63 74 6f 72 79 57 20 46 74 70 43 72 65 61 74  ectoryW FtpCreat
a110: 65 44 69 72 65 63 74 6f 72 79 3b 0d 0a 09 61 6c  eDirectory;...al
a120: 69 61 73 20 46 74 70 52 65 6d 6f 76 65 44 69 72  ias FtpRemoveDir
a130: 65 63 74 6f 72 79 57 20 46 74 70 52 65 6d 6f 76  ectoryW FtpRemov
a140: 65 44 69 72 65 63 74 6f 72 79 3b 0d 0a 09 61 6c  eDirectory;...al
a150: 69 61 73 20 46 74 70 53 65 74 43 75 72 72 65 6e  ias FtpSetCurren
a160: 74 44 69 72 65 63 74 6f 72 79 57 20 46 74 70 53  tDirectoryW FtpS
a170: 65 74 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f  etCurrentDirecto
a180: 72 79 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 47  ry;...alias FtpG
a190: 65 74 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f  etCurrentDirecto
a1a0: 72 79 57 20 46 74 70 47 65 74 43 75 72 72 65 6e  ryW FtpGetCurren
a1b0: 74 44 69 72 65 63 74 6f 72 79 3b 0d 0a 09 61 6c  tDirectory;...al
a1c0: 69 61 73 20 46 74 70 43 6f 6d 6d 61 6e 64 57 20  ias FtpCommandW 
a1d0: 46 74 70 43 6f 6d 6d 61 6e 64 3b 0d 0a 09 61 6c  FtpCommand;...al
a1e0: 69 61 73 20 47 6f 70 68 65 72 47 65 74 4c 6f 63  ias GopherGetLoc
a1f0: 61 74 6f 72 54 79 70 65 57 20 47 6f 70 68 65 72  atorTypeW Gopher
a200: 47 65 74 4c 6f 63 61 74 6f 72 54 79 70 65 3b 0d  GetLocatorType;.
a210: 0a 09 61 6c 69 61 73 20 47 6f 70 68 65 72 43 72  ..alias GopherCr
a220: 65 61 74 65 4c 6f 63 61 74 6f 72 57 20 47 6f 70  eateLocatorW Gop
a230: 68 65 72 43 72 65 61 74 65 4c 6f 63 61 74 6f 72  herCreateLocator
a240: 3b 0d 0a 09 61 6c 69 61 73 20 47 6f 70 68 65 72  ;...alias Gopher
a250: 46 69 6e 64 46 69 72 73 74 46 69 6c 65 57 20 47  FindFirstFileW G
a260: 6f 70 68 65 72 46 69 6e 64 46 69 72 73 74 46 69  opherFindFirstFi
a270: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 47 6f 70 68  le;...alias Goph
a280: 65 72 4f 70 65 6e 46 69 6c 65 57 20 47 6f 70 68  erOpenFileW Goph
a290: 65 72 4f 70 65 6e 46 69 6c 65 3b 0d 0a 09 61 6c  erOpenFile;...al
a2a0: 69 61 73 20 47 6f 70 68 65 72 47 65 74 41 74 74  ias GopherGetAtt
a2b0: 72 69 62 75 74 65 57 20 47 6f 70 68 65 72 47 65  ributeW GopherGe
a2c0: 74 41 74 74 72 69 62 75 74 65 3b 0d 0a 09 61 6c  tAttribute;...al
a2d0: 69 61 73 20 48 74 74 70 53 65 6e 64 52 65 71 75  ias HttpSendRequ
a2e0: 65 73 74 57 20 48 74 74 70 53 65 6e 64 52 65 71  estW HttpSendReq
a2f0: 75 65 73 74 3b 0d 0a 09 61 6c 69 61 73 20 48 74  uest;...alias Ht
a300: 74 70 4f 70 65 6e 52 65 71 75 65 73 74 57 20 48  tpOpenRequestW H
a310: 74 74 70 4f 70 65 6e 52 65 71 75 65 73 74 3b 0d  ttpOpenRequest;.
a320: 0a 09 61 6c 69 61 73 20 48 74 74 70 41 64 64 52  ..alias HttpAddR
a330: 65 71 75 65 73 74 48 65 61 64 65 72 73 57 20 48  equestHeadersW H
a340: 74 74 70 41 64 64 52 65 71 75 65 73 74 48 65 61  ttpAddRequestHea
a350: 64 65 72 73 3b 0d 0a 09 61 6c 69 61 73 20 48 74  ders;...alias Ht
a360: 74 70 51 75 65 72 79 49 6e 66 6f 57 20 48 74 74  tpQueryInfoW Htt
a370: 70 51 75 65 72 79 49 6e 66 6f 3b 0d 0a 09 61 6c  pQueryInfo;...al
a380: 69 61 73 20 49 6e 74 65 72 6e 65 74 53 65 74 43  ias InternetSetC
a390: 6f 6f 6b 69 65 57 20 49 6e 74 65 72 6e 65 74 53  ookieW InternetS
a3a0: 65 74 43 6f 6f 6b 69 65 3b 0d 0a 09 61 6c 69 61  etCookie;...alia
a3b0: 73 20 49 6e 74 65 72 6e 65 74 47 65 74 43 6f 6f  s InternetGetCoo
a3c0: 6b 69 65 57 20 49 6e 74 65 72 6e 65 74 47 65 74  kieW InternetGet
a3d0: 43 6f 6f 6b 69 65 3b 0d 0a 09 61 6c 69 61 73 20  Cookie;...alias 
a3e0: 43 72 65 61 74 65 55 72 6c 43 61 63 68 65 45 6e  CreateUrlCacheEn
a3f0: 74 72 79 57 20 43 72 65 61 74 65 55 72 6c 43 61  tryW CreateUrlCa
a400: 63 68 65 45 6e 74 72 79 3b 0d 0a 09 61 6c 69 61  cheEntry;...alia
a410: 73 20 52 65 74 72 69 65 76 65 55 72 6c 43 61 63  s RetrieveUrlCac
a420: 68 65 45 6e 74 72 79 53 74 72 65 61 6d 57 20 52  heEntryStreamW R
a430: 65 74 72 69 65 76 65 55 72 6c 43 61 63 68 65 45  etrieveUrlCacheE
a440: 6e 74 72 79 53 74 72 65 61 6d 3b 0d 0a 09 61 6c  ntryStream;...al
a450: 69 61 73 20 46 69 6e 64 4e 65 78 74 55 72 6c 43  ias FindNextUrlC
a460: 61 63 68 65 45 6e 74 72 79 57 20 46 69 6e 64 4e  acheEntryW FindN
a470: 65 78 74 55 72 6c 43 61 63 68 65 45 6e 74 72 79  extUrlCacheEntry
a480: 3b 0d 0a 09 61 6c 69 61 73 20 43 6f 6d 6d 69 74  ;...alias Commit
a490: 55 72 6c 43 61 63 68 65 45 6e 74 72 79 57 20 43  UrlCacheEntryW C
a4a0: 6f 6d 6d 69 74 55 72 6c 43 61 63 68 65 45 6e 74  ommitUrlCacheEnt
a4b0: 72 79 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74 55  ry;...alias GetU
a4c0: 72 6c 43 61 63 68 65 45 6e 74 72 79 49 6e 66 6f  rlCacheEntryInfo
a4d0: 57 20 47 65 74 55 72 6c 43 61 63 68 65 45 6e 74  W GetUrlCacheEnt
a4e0: 72 79 49 6e 66 6f 3b 0d 0a 09 61 6c 69 61 73 20  ryInfo;...alias 
a4f0: 53 65 74 55 72 6c 43 61 63 68 65 45 6e 74 72 79  SetUrlCacheEntry
a500: 49 6e 66 6f 57 20 53 65 74 55 72 6c 43 61 63 68  InfoW SetUrlCach
a510: 65 45 6e 74 72 79 49 6e 66 6f 3b 0d 0a 09 61 6c  eEntryInfo;...al
a520: 69 61 73 20 46 69 6e 64 46 69 72 73 74 55 72 6c  ias FindFirstUrl
a530: 43 61 63 68 65 45 6e 74 72 79 57 20 46 69 6e 64  CacheEntryW Find
a540: 46 69 72 73 74 55 72 6c 43 61 63 68 65 45 6e 74  FirstUrlCacheEnt
a550: 72 79 3b 0d 0a 09 61 6c 69 61 73 20 52 65 74 72  ry;...alias Retr
a560: 69 65 76 65 55 72 6c 43 61 63 68 65 45 6e 74 72  ieveUrlCacheEntr
a570: 79 46 69 6c 65 57 20 52 65 74 72 69 65 76 65 55  yFileW RetrieveU
a580: 72 6c 43 61 63 68 65 45 6e 74 72 79 46 69 6c 65  rlCacheEntryFile
a590: 3b 0d 0a 09 61 6c 69 61 73 20 48 74 74 70 53 65  ;...alias HttpSe
a5a0: 6e 64 52 65 71 75 65 73 74 45 78 57 20 48 74 74  ndRequestExW Htt
a5b0: 70 53 65 6e 64 52 65 71 75 65 73 74 45 78 3b 0d  pSendRequestEx;.
a5c0: 0a 09 61 6c 69 61 73 20 48 74 74 70 45 6e 64 52  ..alias HttpEndR
a5d0: 65 71 75 65 73 74 57 20 48 74 74 70 45 6e 64 52  equestW HttpEndR
a5e0: 65 71 75 65 73 74 3b 0d 0a 09 61 6c 69 61 73 20  equest;...alias 
a5f0: 47 65 74 55 72 6c 43 61 63 68 65 47 72 6f 75 70  GetUrlCacheGroup
a600: 41 74 74 72 69 62 75 74 65 57 20 47 65 74 55 72  AttributeW GetUr
a610: 6c 43 61 63 68 65 47 72 6f 75 70 41 74 74 72 69  lCacheGroupAttri
a620: 62 75 74 65 3b 0d 0a 09 61 6c 69 61 73 20 53 65  bute;...alias Se
a630: 74 55 72 6c 43 61 63 68 65 47 72 6f 75 70 41 74  tUrlCacheGroupAt
a640: 74 72 69 62 75 74 65 57 20 53 65 74 55 72 6c 43  tributeW SetUrlC
a650: 61 63 68 65 47 72 6f 75 70 41 74 74 72 69 62 75  acheGroupAttribu
a660: 74 65 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a 09  te;..} else {...
a670: 61 6c 69 61 73 20 55 52 4c 5f 43 4f 4d 50 4f 4e  alias URL_COMPON
a680: 45 4e 54 53 41 20 55 52 4c 5f 43 4f 4d 50 4f 4e  ENTSA URL_COMPON
a690: 45 4e 54 53 3b 0d 0a 09 61 6c 69 61 73 20 4c 50  ENTS;...alias LP
a6a0: 55 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53 41 20  URL_COMPONENTSA 
a6b0: 4c 50 55 52 4c 5f 43 4f 4d 50 4f 4e 45 4e 54 53  LPURL_COMPONENTS
a6c0: 3b 0d 0a 09 61 6c 69 61 73 20 47 4f 50 48 45 52  ;...alias GOPHER
a6d0: 5f 46 49 4e 44 5f 44 41 54 41 41 20 47 4f 50 48  _FIND_DATAA GOPH
a6e0: 45 52 5f 46 49 4e 44 5f 44 41 54 41 3b 0d 0a 09  ER_FIND_DATA;...
a6f0: 61 6c 69 61 73 20 4c 50 47 4f 50 48 45 52 5f 46  alias LPGOPHER_F
a700: 49 4e 44 5f 44 41 54 41 41 20 4c 50 47 4f 50 48  IND_DATAA LPGOPH
a710: 45 52 5f 46 49 4e 44 5f 44 41 54 41 3b 0d 0a 09  ER_FIND_DATA;...
a720: 61 6c 69 61 73 20 49 4e 54 45 52 4e 45 54 5f 43  alias INTERNET_C
a730: 41 43 48 45 5f 45 4e 54 52 59 5f 49 4e 46 4f 41  ACHE_ENTRY_INFOA
a740: 20 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f   INTERNET_CACHE_
a750: 45 4e 54 52 59 5f 49 4e 46 4f 3b 0d 0a 09 61 6c  ENTRY_INFO;...al
a760: 69 61 73 20 4c 50 49 4e 54 45 52 4e 45 54 5f 43  ias LPINTERNET_C
a770: 41 43 48 45 5f 45 4e 54 52 59 5f 49 4e 46 4f 41  ACHE_ENTRY_INFOA
a780: 20 4c 50 49 4e 54 45 52 4e 45 54 5f 43 41 43 48   LPINTERNET_CACH
a790: 45 5f 45 4e 54 52 59 5f 49 4e 46 4f 3b 0d 0a 09  E_ENTRY_INFO;...
a7a0: 61 6c 69 61 73 20 49 4e 54 45 52 4e 45 54 5f 42  alias INTERNET_B
a7b0: 55 46 46 45 52 53 41 20 49 4e 54 45 52 4e 45 54  UFFERSA INTERNET
a7c0: 5f 42 55 46 46 45 52 53 3b 0d 0a 09 61 6c 69 61  _BUFFERS;...alia
a7d0: 73 20 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45  s INTERNET_CACHE
a7e0: 5f 47 52 4f 55 50 5f 49 4e 46 4f 41 20 49 4e 54  _GROUP_INFOA INT
a7f0: 45 52 4e 45 54 5f 43 41 43 48 45 5f 47 52 4f 55  ERNET_CACHE_GROU
a800: 50 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20  P_INFO;...alias 
a810: 4c 50 49 4e 54 45 52 4e 45 54 5f 43 41 43 48 45  LPINTERNET_CACHE
a820: 5f 47 52 4f 55 50 5f 49 4e 46 4f 41 20 4c 50 49  _GROUP_INFOA LPI
a830: 4e 54 45 52 4e 45 54 5f 43 41 43 48 45 5f 47 52  NTERNET_CACHE_GR
a840: 4f 55 50 5f 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61  OUP_INFO;...alia
a850: 73 20 47 6f 70 68 65 72 47 65 74 41 74 74 72 69  s GopherGetAttri
a860: 62 75 74 65 41 20 47 6f 70 68 65 72 47 65 74 41  buteA GopherGetA
a870: 74 74 72 69 62 75 74 65 3b 0d 0a 09 61 6c 69 61  ttribute;...alia
a880: 73 20 49 6e 74 65 72 6e 65 74 43 72 61 63 6b 55  s InternetCrackU
a890: 72 6c 41 20 49 6e 74 65 72 6e 65 74 43 72 61 63  rlA InternetCrac
a8a0: 6b 55 72 6c 3b 0d 0a 09 61 6c 69 61 73 20 49 6e  kUrl;...alias In
a8b0: 74 65 72 6e 65 74 43 72 65 61 74 65 55 72 6c 41  ternetCreateUrlA
a8c0: 20 49 6e 74 65 72 6e 65 74 43 72 65 61 74 65 55   InternetCreateU
a8d0: 72 6c 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65  rl;...alias Inte
a8e0: 72 6e 65 74 43 61 6e 6f 6e 69 63 61 6c 69 7a 65  rnetCanonicalize
a8f0: 55 72 6c 41 20 49 6e 74 65 72 6e 65 74 43 61 6e  UrlA InternetCan
a900: 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 3b 0d 0a 09  onicalizeUrl;...
a910: 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74 43 68  alias InternetCh
a920: 65 63 6b 43 6f 6e 6e 65 63 74 69 6f 6e 41 20 49  eckConnectionA I
a930: 6e 74 65 72 6e 65 74 43 68 65 63 6b 43 6f 6e 6e  nternetCheckConn
a940: 65 63 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20  ection;...alias 
a950: 49 6e 74 65 72 6e 65 74 43 6f 6d 62 69 6e 65 55  InternetCombineU
a960: 72 6c 41 20 49 6e 74 65 72 6e 65 74 43 6f 6d 62  rlA InternetComb
a970: 69 6e 65 55 72 6c 3b 0d 0a 09 61 6c 69 61 73 20  ineUrl;...alias 
a980: 49 6e 74 65 72 6e 65 74 4f 70 65 6e 41 20 49 6e  InternetOpenA In
a990: 74 65 72 6e 65 74 4f 70 65 6e 3b 0d 0a 09 61 6c  ternetOpen;...al
a9a0: 69 61 73 20 49 6e 74 65 72 6e 65 74 43 6f 6e 6e  ias InternetConn
a9b0: 65 63 74 41 20 49 6e 74 65 72 6e 65 74 43 6f 6e  ectA InternetCon
a9c0: 6e 65 63 74 3b 0d 0a 09 61 6c 69 61 73 20 49 6e  nect;...alias In
a9d0: 74 65 72 6e 65 74 4f 70 65 6e 55 72 6c 41 20 49  ternetOpenUrlA I
a9e0: 6e 74 65 72 6e 65 74 4f 70 65 6e 55 72 6c 3b 0d  nternetOpenUrl;.
a9f0: 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74  ..alias Internet
aa00: 46 69 6e 64 4e 65 78 74 46 69 6c 65 41 20 49 6e  FindNextFileA In
aa10: 74 65 72 6e 65 74 46 69 6e 64 4e 65 78 74 46 69  ternetFindNextFi
aa20: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65  le;...alias Inte
aa30: 72 6e 65 74 51 75 65 72 79 4f 70 74 69 6f 6e 41  rnetQueryOptionA
aa40: 20 49 6e 74 65 72 6e 65 74 51 75 65 72 79 4f 70   InternetQueryOp
aa50: 74 69 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 49 6e  tion;...alias In
aa60: 74 65 72 6e 65 74 53 65 74 4f 70 74 69 6f 6e 41  ternetSetOptionA
aa70: 20 49 6e 74 65 72 6e 65 74 53 65 74 4f 70 74 69   InternetSetOpti
aa80: 6f 6e 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65  on;...alias Inte
aa90: 72 6e 65 74 53 65 74 4f 70 74 69 6f 6e 45 78 41  rnetSetOptionExA
aaa0: 20 49 6e 74 65 72 6e 65 74 53 65 74 4f 70 74 69   InternetSetOpti
aab0: 6f 6e 45 78 3b 0d 0a 09 61 6c 69 61 73 20 49 6e  onEx;...alias In
aac0: 74 65 72 6e 65 74 47 65 74 4c 61 73 74 52 65 73  ternetGetLastRes
aad0: 70 6f 6e 73 65 49 6e 66 6f 41 20 49 6e 74 65 72  ponseInfoA Inter
aae0: 6e 65 74 47 65 74 4c 61 73 74 52 65 73 70 6f 6e  netGetLastRespon
aaf0: 73 65 49 6e 66 6f 3b 0d 0a 09 61 6c 69 61 73 20  seInfo;...alias 
ab00: 49 6e 74 65 72 6e 65 74 52 65 61 64 46 69 6c 65  InternetReadFile
ab10: 45 78 41 20 49 6e 74 65 72 6e 65 74 52 65 61 64  ExA InternetRead
ab20: 46 69 6c 65 45 78 3b 0d 0a 09 61 6c 69 61 73 20  FileEx;...alias 
ab30: 46 74 70 46 69 6e 64 46 69 72 73 74 46 69 6c 65  FtpFindFirstFile
ab40: 41 20 46 74 70 46 69 6e 64 46 69 72 73 74 46 69  A FtpFindFirstFi
ab50: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 47  le;...alias FtpG
ab60: 65 74 46 69 6c 65 41 20 46 74 70 47 65 74 46 69  etFileA FtpGetFi
ab70: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 50  le;...alias FtpP
ab80: 75 74 46 69 6c 65 41 20 46 74 70 50 75 74 46 69  utFileA FtpPutFi
ab90: 6c 65 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 44  le;...alias FtpD
aba0: 65 6c 65 74 65 46 69 6c 65 41 20 46 74 70 44 65  eleteFileA FtpDe
abb0: 6c 65 74 65 46 69 6c 65 3b 0d 0a 09 61 6c 69 61  leteFile;...alia
abc0: 73 20 46 74 70 52 65 6e 61 6d 65 46 69 6c 65 41  s FtpRenameFileA
abd0: 20 46 74 70 52 65 6e 61 6d 65 46 69 6c 65 3b 0d   FtpRenameFile;.
abe0: 0a 09 61 6c 69 61 73 20 46 74 70 4f 70 65 6e 46  ..alias FtpOpenF
abf0: 69 6c 65 41 20 46 74 70 4f 70 65 6e 46 69 6c 65  ileA FtpOpenFile
ac00: 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 43 72 65  ;...alias FtpCre
ac10: 61 74 65 44 69 72 65 63 74 6f 72 79 41 20 46 74  ateDirectoryA Ft
ac20: 70 43 72 65 61 74 65 44 69 72 65 63 74 6f 72 79  pCreateDirectory
ac30: 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 52 65 6d  ;...alias FtpRem
ac40: 6f 76 65 44 69 72 65 63 74 6f 72 79 41 20 46 74  oveDirectoryA Ft
ac50: 70 52 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79  pRemoveDirectory
ac60: 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 53 65 74  ;...alias FtpSet
ac70: 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f 72 79  CurrentDirectory
ac80: 41 20 46 74 70 53 65 74 43 75 72 72 65 6e 74 44  A FtpSetCurrentD
ac90: 69 72 65 63 74 6f 72 79 3b 0d 0a 09 61 6c 69 61  irectory;...alia
aca0: 73 20 46 74 70 47 65 74 43 75 72 72 65 6e 74 44  s FtpGetCurrentD
acb0: 69 72 65 63 74 6f 72 79 41 20 46 74 70 47 65 74  irectoryA FtpGet
acc0: 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f 72 79  CurrentDirectory
acd0: 3b 0d 0a 09 61 6c 69 61 73 20 46 74 70 43 6f 6d  ;...alias FtpCom
ace0: 6d 61 6e 64 41 20 46 74 70 43 6f 6d 6d 61 6e 64  mandA FtpCommand
acf0: 3b 0d 0a 09 61 6c 69 61 73 20 47 6f 70 68 65 72  ;...alias Gopher
ad00: 47 65 74 4c 6f 63 61 74 6f 72 54 79 70 65 41 20  GetLocatorTypeA 
ad10: 47 6f 70 68 65 72 47 65 74 4c 6f 63 61 74 6f 72  GopherGetLocator
ad20: 54 79 70 65 3b 0d 0a 09 61 6c 69 61 73 20 47 6f  Type;...alias Go
ad30: 70 68 65 72 43 72 65 61 74 65 4c 6f 63 61 74 6f  pherCreateLocato
ad40: 72 41 20 47 6f 70 68 65 72 43 72 65 61 74 65 4c  rA GopherCreateL
ad50: 6f 63 61 74 6f 72 3b 0d 0a 09 61 6c 69 61 73 20  ocator;...alias 
ad60: 47 6f 70 68 65 72 46 69 6e 64 46 69 72 73 74 46  GopherFindFirstF
ad70: 69 6c 65 41 20 47 6f 70 68 65 72 46 69 6e 64 46  ileA GopherFindF
ad80: 69 72 73 74 46 69 6c 65 3b 0d 0a 09 61 6c 69 61  irstFile;...alia
ad90: 73 20 47 6f 70 68 65 72 4f 70 65 6e 46 69 6c 65  s GopherOpenFile
ada0: 41 20 47 6f 70 68 65 72 4f 70 65 6e 46 69 6c 65  A GopherOpenFile
adb0: 3b 0d 0a 09 61 6c 69 61 73 20 48 74 74 70 53 65  ;...alias HttpSe
adc0: 6e 64 52 65 71 75 65 73 74 41 20 48 74 74 70 53  ndRequestA HttpS
add0: 65 6e 64 52 65 71 75 65 73 74 3b 0d 0a 09 61 6c  endRequest;...al
ade0: 69 61 73 20 48 74 74 70 4f 70 65 6e 52 65 71 75  ias HttpOpenRequ
adf0: 65 73 74 41 20 48 74 74 70 4f 70 65 6e 52 65 71  estA HttpOpenReq
ae00: 75 65 73 74 3b 0d 0a 09 61 6c 69 61 73 20 48 74  uest;...alias Ht
ae10: 74 70 41 64 64 52 65 71 75 65 73 74 48 65 61 64  tpAddRequestHead
ae20: 65 72 73 41 20 48 74 74 70 41 64 64 52 65 71 75  ersA HttpAddRequ
ae30: 65 73 74 48 65 61 64 65 72 73 3b 0d 0a 09 61 6c  estHeaders;...al
ae40: 69 61 73 20 48 74 74 70 51 75 65 72 79 49 6e 66  ias HttpQueryInf
ae50: 6f 41 20 48 74 74 70 51 75 65 72 79 49 6e 66 6f  oA HttpQueryInfo
ae60: 3b 0d 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e  ;...alias Intern
ae70: 65 74 53 65 74 43 6f 6f 6b 69 65 41 20 49 6e 74  etSetCookieA Int
ae80: 65 72 6e 65 74 53 65 74 43 6f 6f 6b 69 65 3b 0d  ernetSetCookie;.
ae90: 0a 09 61 6c 69 61 73 20 49 6e 74 65 72 6e 65 74  ..alias Internet
aea0: 47 65 74 43 6f 6f 6b 69 65 41 20 49 6e 74 65 72  GetCookieA Inter
aeb0: 6e 65 74 47 65 74 43 6f 6f 6b 69 65 3b 0d 0a 09  netGetCookie;...
aec0: 61 6c 69 61 73 20 43 72 65 61 74 65 55 72 6c 43  alias CreateUrlC
aed0: 61 63 68 65 45 6e 74 72 79 41 20 43 72 65 61 74  acheEntryA Creat
aee0: 65 55 72 6c 43 61 63 68 65 45 6e 74 72 79 3b 0d  eUrlCacheEntry;.
aef0: 0a 09 61 6c 69 61 73 20 52 65 74 72 69 65 76 65  ..alias Retrieve
af00: 55 72 6c 43 61 63 68 65 45 6e 74 72 79 53 74 72  UrlCacheEntryStr
af10: 65 61 6d 41 20 52 65 74 72 69 65 76 65 55 72 6c  eamA RetrieveUrl
af20: 43 61 63 68 65 45 6e 74 72 79 53 74 72 65 61 6d  CacheEntryStream
af30: 3b 0d 0a 09 61 6c 69 61 73 20 46 69 6e 64 4e 65  ;...alias FindNe
af40: 78 74 55 72 6c 43 61 63 68 65 45 6e 74 72 79 41  xtUrlCacheEntryA
af50: 20 46 69 6e 64 4e 65 78 74 55 72 6c 43 61 63 68   FindNextUrlCach
af60: 65 45 6e 74 72 79 3b 0d 0a 09 61 6c 69 61 73 20  eEntry;...alias 
af70: 43 6f 6d 6d 69 74 55 72 6c 43 61 63 68 65 45 6e  CommitUrlCacheEn
af80: 74 72 79 41 20 43 6f 6d 6d 69 74 55 72 6c 43 61  tryA CommitUrlCa
af90: 63 68 65 45 6e 74 72 79 3b 0d 0a 09 61 6c 69 61  cheEntry;...alia
afa0: 73 20 47 65 74 55 72 6c 43 61 63 68 65 45 6e 74  s GetUrlCacheEnt
afb0: 72 79 49 6e 66 6f 41 20 47 65 74 55 72 6c 43 61  ryInfoA GetUrlCa
afc0: 63 68 65 45 6e 74 72 79 49 6e 66 6f 3b 0d 0a 09  cheEntryInfo;...
afd0: 61 6c 69 61 73 20 53 65 74 55 72 6c 43 61 63 68  alias SetUrlCach
afe0: 65 45 6e 74 72 79 49 6e 66 6f 41 20 53 65 74 55  eEntryInfoA SetU
aff0: 72 6c 43 61 63 68 65 45 6e 74 72 79 49 6e 66 6f  rlCacheEntryInfo
b000: 3b 0d 0a 09 61 6c 69 61 73 20 46 69 6e 64 46 69  ;...alias FindFi
b010: 72 73 74 55 72 6c 43 61 63 68 65 45 6e 74 72 79  rstUrlCacheEntry
b020: 41 20 46 69 6e 64 46 69 72 73 74 55 72 6c 43 61  A FindFirstUrlCa
b030: 63 68 65 45 6e 74 72 79 3b 0d 0a 09 61 6c 69 61  cheEntry;...alia
b040: 73 20 52 65 74 72 69 65 76 65 55 72 6c 43 61 63  s RetrieveUrlCac
b050: 68 65 45 6e 74 72 79 46 69 6c 65 41 20 52 65 74  heEntryFileA Ret
b060: 72 69 65 76 65 55 72 6c 43 61 63 68 65 45 6e 74  rieveUrlCacheEnt
b070: 72 79 46 69 6c 65 3b 0d 0a 09 61 6c 69 61 73 20  ryFile;...alias 
b080: 48 74 74 70 53 65 6e 64 52 65 71 75 65 73 74 45  HttpSendRequestE
b090: 78 41 20 48 74 74 70 53 65 6e 64 52 65 71 75 65  xA HttpSendReque
b0a0: 73 74 45 78 3b 0d 0a 09 61 6c 69 61 73 20 48 74  stEx;...alias Ht
b0b0: 74 70 45 6e 64 52 65 71 75 65 73 74 41 20 48 74  tpEndRequestA Ht
b0c0: 74 70 45 6e 64 52 65 71 75 65 73 74 3b 0d 0a 09  tpEndRequest;...
b0d0: 61 6c 69 61 73 20 47 65 74 55 72 6c 43 61 63 68  alias GetUrlCach
b0e0: 65 47 72 6f 75 70 41 74 74 72 69 62 75 74 65 41  eGroupAttributeA
b0f0: 20 47 65 74 55 72 6c 43 61 63 68 65 47 72 6f 75   GetUrlCacheGrou
b100: 70 41 74 74 72 69 62 75 74 65 3b 0d 0a 09 61 6c  pAttribute;...al
b110: 69 61 73 20 53 65 74 55 72 6c 43 61 63 68 65 47  ias SetUrlCacheG
b120: 72 6f 75 70 41 74 74 72 69 62 75 74 65 41 20 53  roupAttributeA S
b130: 65 74 55 72 6c 43 61 63 68 65 47 72 6f 75 70 41  etUrlCacheGroupA
b140: 74 74 72 69 62 75 74 65 3b 0d 0a 7d 0d 0a 0d 0a  ttribute;..}....
b150: 61 6c 69 61 73 20 49 4e 54 45 52 4e 45 54 5f 42  alias INTERNET_B
b160: 55 46 46 45 52 53 2a 20 4c 50 49 4e 54 45 52 4e  UFFERS* LPINTERN
b170: 45 54 5f 42 55 46 46 45 52 53 3b 0d 0a           ET_BUFFERS;..