Artifact dcfd30a46b353b59b479e087779f233f8d8612dd:
- File
src/win32/httpext.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 65 httpe 0070: 78 74 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 xt.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into 0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\******* 0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32. 02b0: 68 74 74 70 65 78 74 3b 0d 0a 0d 0a 2f 2a 20 43 httpext;..../* C 02c0: 6f 6d 6d 65 6e 74 20 66 72 6f 6d 20 4d 69 6e 47 omment from MinG 02d0: 57 0d 0a 20 20 20 20 20 20 20 68 74 74 70 65 78 W.. httpex 02e0: 74 2e 68 20 2d 20 48 65 61 64 65 72 20 66 6f 72 t.h - Header for 02f0: 20 49 53 41 50 49 20 65 78 74 65 6e 73 69 6f 6e ISAPI extension 0300: 73 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 54 68 69 s..... Thi 0310: 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f s file is part o 0320: 66 20 61 20 66 72 65 65 20 6c 69 62 72 61 72 79 f a free library 0330: 20 66 6f 72 20 74 68 65 20 57 69 6e 33 32 20 41 for the Win32 A 0340: 50 49 2e 0d 0a 0d 0a 20 20 20 20 20 20 20 54 68 PI..... Th 0350: 69 73 20 6c 69 62 72 61 72 79 20 69 73 20 64 69 is library is di 0360: 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 stributed in the 0370: 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 hope that it wi 0380: 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0d 0a 20 ll be useful,.. 0390: 20 20 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 but WITHOU 03a0: 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 T ANY WARRANTY; 03b0: 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 without even the 03c0: 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 implied warrant 03d0: 79 20 6f 66 0d 0a 20 20 20 20 20 20 20 4d 45 52 y of.. MER 03e0: 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 CHANTABILITY or 03f0: 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 FITNESS FOR A PA 0400: 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 RTICULAR PURPOSE 0410: 2e 0d 0a 2a 2f 0d 0a 0d 0a 70 72 69 76 61 74 65 ...*/....private 0420: 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77 69 import win32.wi 0430: 6e 64 6f 77 73 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b ndows;....enum { 0440: 0d 0a 20 20 20 20 48 53 45 5f 56 45 52 53 49 4f .. HSE_VERSIO 0450: 4e 5f 4d 41 4a 4f 52 20 20 20 20 20 20 20 20 20 N_MAJOR 0460: 20 20 20 20 20 20 3d 20 32 2c 0d 0a 20 20 20 20 = 2,.. 0470: 48 53 45 5f 56 45 52 53 49 4f 4e 5f 4d 49 4e 4f HSE_VERSION_MINO 0480: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R 0490: 3d 20 30 2c 0d 0a 20 20 20 20 48 53 45 5f 4c 4f = 0,.. HSE_LO 04a0: 47 5f 42 55 46 46 45 52 5f 4c 45 4e 20 20 20 20 G_BUFFER_LEN 04b0: 20 20 20 20 20 20 20 20 20 20 3d 20 38 30 2c 0d = 80,. 04c0: 0a 20 20 20 20 48 53 45 5f 4d 41 58 5f 45 58 54 . HSE_MAX_EXT 04d0: 5f 44 4c 4c 5f 4e 41 4d 45 5f 4c 45 4e 20 20 20 _DLL_NAME_LEN 04e0: 20 20 20 20 20 3d 20 32 35 36 2c 0d 0a 20 20 20 = 256,.. 04f0: 20 48 53 45 5f 53 54 41 54 55 53 5f 53 55 43 43 HSE_STATUS_SUCC 0500: 45 53 53 20 20 20 20 20 20 20 20 20 20 20 20 20 ESS 0510: 20 3d 20 31 2c 0d 0a 20 20 20 20 48 53 45 5f 53 = 1,.. HSE_S 0520: 54 41 54 55 53 5f 53 55 43 43 45 53 53 5f 41 4e TATUS_SUCCESS_AN 0530: 44 5f 4b 45 45 50 5f 43 4f 4e 4e 2c 0d 0a 20 20 D_KEEP_CONN,.. 0540: 20 20 48 53 45 5f 53 54 41 54 55 53 5f 50 45 4e HSE_STATUS_PEN 0550: 44 49 4e 47 2c 0d 0a 20 20 20 20 48 53 45 5f 53 DING,.. HSE_S 0560: 54 41 54 55 53 5f 45 52 52 4f 52 2c 0d 0a 20 20 TATUS_ERROR,.. 0570: 20 20 48 53 45 5f 52 45 51 5f 42 41 53 45 20 20 HSE_REQ_BASE 0580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0590: 20 20 3d 20 30 2c 0d 0a 20 20 20 20 48 53 45 5f = 0,.. HSE_ 05a0: 52 45 51 5f 53 45 4e 44 5f 55 52 4c 5f 52 45 44 REQ_SEND_URL_RED 05b0: 49 52 45 43 54 5f 52 45 53 50 2c 0d 0a 20 20 20 IRECT_RESP,.. 05c0: 20 48 53 45 5f 52 45 51 5f 53 45 4e 44 5f 55 52 HSE_REQ_SEND_UR 05d0: 4c 2c 0d 0a 20 20 20 20 48 53 45 5f 52 45 51 5f L,.. HSE_REQ_ 05e0: 53 45 4e 44 5f 52 45 53 50 4f 4e 53 45 5f 48 45 SEND_RESPONSE_HE 05f0: 41 44 45 52 2c 0d 0a 20 20 20 20 48 53 45 5f 52 ADER,.. HSE_R 0600: 45 51 5f 44 4f 4e 45 5f 57 49 54 48 5f 53 45 53 EQ_DONE_WITH_SES 0610: 53 49 4f 4e 2c 0d 0a 20 20 20 20 48 53 45 5f 52 SION,.. HSE_R 0620: 45 51 5f 53 45 4e 44 5f 52 45 53 50 4f 4e 53 45 EQ_SEND_RESPONSE 0630: 5f 48 45 41 44 45 52 5f 45 58 20 3d 20 31 30 31 _HEADER_EX = 101 0640: 36 2c 0d 0a 20 20 20 20 48 53 45 5f 52 45 51 5f 6,.. HSE_REQ_ 0650: 45 4e 44 5f 52 45 53 45 52 56 45 44 20 20 20 20 END_RESERVED 0660: 20 20 20 20 20 20 20 20 3d 20 31 30 30 30 2c 0d = 1000,. 0670: 0a 20 20 20 20 48 53 45 5f 54 45 52 4d 5f 41 44 . HSE_TERM_AD 0680: 56 49 53 4f 52 59 5f 55 4e 4c 4f 41 44 20 20 20 VISORY_UNLOAD 0690: 20 20 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 = 0x0000000 06a0: 31 2c 0d 0a 20 20 20 20 48 53 45 5f 54 45 52 4d 1,.. HSE_TERM 06b0: 5f 4d 55 53 54 5f 55 4e 4c 4f 41 44 2c 0d 0a 20 _MUST_UNLOAD,.. 06c0: 20 20 20 48 53 45 5f 49 4f 5f 53 59 4e 43 20 20 HSE_IO_SYNC 06d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 06e0: 20 20 20 3d 20 30 78 30 30 30 30 30 30 30 31 2c = 0x00000001, 06f0: 0d 0a 20 20 20 20 48 53 45 5f 49 4f 5f 41 53 59 .. HSE_IO_ASY 0700: 4e 43 2c 0d 0a 20 20 20 20 48 53 45 5f 49 4f 5f NC,.. HSE_IO_ 0710: 44 49 53 43 4f 4e 4e 45 43 54 5f 41 46 54 45 52 DISCONNECT_AFTER 0720: 5f 53 45 4e 44 20 20 20 20 3d 20 30 78 30 30 30 _SEND = 0x000 0730: 30 30 30 30 34 2c 0d 0a 20 20 20 20 48 53 45 5f 00004,.. HSE_ 0740: 49 4f 5f 53 45 4e 44 5f 48 45 41 44 45 52 53 20 IO_SEND_HEADERS 0750: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 = 0x 0760: 30 30 30 30 30 30 30 38 0d 0a 7d 0d 0a 0d 0a 6d 00000008..}....m 0770: 69 78 69 6e 20 44 45 43 4c 41 52 45 5f 48 41 4e ixin DECLARE_HAN 0780: 44 4c 45 21 28 22 48 43 4f 4e 4e 22 29 3b 0d 0a DLE!("HCONN");.. 0790: 0d 0a 73 74 72 75 63 74 20 48 53 45 5f 56 45 52 ..struct HSE_VER 07a0: 53 49 4f 4e 5f 49 4e 46 4f 20 7b 0d 0a 09 44 57 SION_INFO {...DW 07b0: 4f 52 44 20 64 77 45 78 74 65 6e 73 69 6f 6e 56 ORD dwExtensionV 07c0: 65 72 73 69 6f 6e 3b 0d 0a 09 43 48 41 52 5b 48 ersion;...CHAR[H 07d0: 53 45 5f 4d 41 58 5f 45 58 54 5f 44 4c 4c 5f 4e SE_MAX_EXT_DLL_N 07e0: 41 4d 45 5f 4c 45 4e 5d 20 6c 70 73 7a 45 78 74 AME_LEN] lpszExt 07f0: 65 6e 73 69 6f 6e 44 65 73 63 3b 0d 0a 7d 0d 0a ensionDesc;..}.. 0800: 61 6c 69 61 73 20 48 53 45 5f 56 45 52 53 49 4f alias HSE_VERSIO 0810: 4e 5f 49 4e 46 4f 2a 20 4c 50 48 53 45 5f 56 45 N_INFO* LPHSE_VE 0820: 52 53 49 4f 4e 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 RSION_INFO;....s 0830: 74 72 75 63 74 20 45 58 54 45 4e 53 49 4f 4e 5f truct EXTENSION_ 0840: 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 20 7b 0d CONTROL_BLOCK {. 0850: 0a 09 44 57 4f 52 44 20 20 63 62 53 69 7a 65 20 ..DWORD cbSize 0860: 3d 20 45 58 54 45 4e 53 49 4f 4e 5f 43 4f 4e 54 = EXTENSION_CONT 0870: 52 4f 4c 5f 42 4c 4f 43 4b 2e 73 69 7a 65 6f 66 ROL_BLOCK.sizeof 0880: 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 56 65 72 ;...DWORD dwVer 0890: 73 69 6f 6e 3b 0d 0a 09 48 43 4f 4e 4e 20 20 43 sion;...HCONN C 08a0: 6f 6e 6e 49 44 3b 0d 0a 09 44 57 4f 52 44 20 20 onnID;...DWORD 08b0: 64 77 48 74 74 70 53 74 61 74 75 73 43 6f 64 65 dwHttpStatusCode 08c0: 3b 0d 0a 09 43 48 41 52 5b 48 53 45 5f 4c 4f 47 ;...CHAR[HSE_LOG 08d0: 5f 42 55 46 46 45 52 5f 4c 45 4e 5d 20 6c 70 73 _BUFFER_LEN] lps 08e0: 7a 4c 6f 67 44 61 74 61 3b 0d 0a 09 4c 50 53 54 zLogData;...LPST 08f0: 52 20 20 6c 70 73 7a 4d 65 74 68 6f 64 3b 0d 0a R lpszMethod;.. 0900: 09 4c 50 53 54 52 20 20 6c 70 73 7a 51 75 65 72 .LPSTR lpszQuer 0910: 79 53 74 72 69 6e 67 3b 0d 0a 09 4c 50 53 54 52 yString;...LPSTR 0920: 20 20 6c 70 73 7a 50 61 74 68 49 6e 66 6f 3b 0d lpszPathInfo;. 0930: 0a 09 4c 50 53 54 52 20 20 6c 70 73 7a 50 61 74 ..LPSTR lpszPat 0940: 68 54 72 61 6e 73 6c 61 74 65 64 3b 0d 0a 09 44 hTranslated;...D 0950: 57 4f 52 44 20 20 63 62 54 6f 74 61 6c 42 79 74 WORD cbTotalByt 0960: 65 73 3b 0d 0a 09 44 57 4f 52 44 20 20 63 62 41 es;...DWORD cbA 0970: 76 61 69 6c 61 62 6c 65 3b 0d 0a 09 4c 50 42 59 vailable;...LPBY 0980: 54 45 20 6c 70 62 44 61 74 61 3b 0d 0a 09 4c 50 TE lpbData;...LP 0990: 53 54 52 20 20 6c 70 73 7a 43 6f 6e 74 65 6e 74 STR lpszContent 09a0: 54 79 70 65 3b 0d 0a 09 65 78 74 65 72 6e 28 50 Type;...extern(P 09b0: 61 73 63 61 6c 29 20 42 4f 4f 4c 20 66 75 6e 63 ascal) BOOL func 09c0: 74 69 6f 6e 28 48 43 4f 4e 4e 2c 20 4c 50 53 54 tion(HCONN, LPST 09d0: 52 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57 4f R, LPVOID, LPDWO 09e0: 52 44 29 0d 0a 09 20 20 47 65 74 53 65 72 76 65 RD)... GetServe 09f0: 72 56 61 72 69 61 62 6c 65 3b 0d 0a 09 65 78 74 rVariable;...ext 0a00: 65 72 6e 28 50 61 73 63 61 6c 29 20 42 4f 4f 4c ern(Pascal) BOOL 0a10: 20 66 75 6e 63 74 69 6f 6e 28 48 43 4f 4e 4e 2c function(HCONN, 0a20: 20 4c 50 56 4f 49 44 2c 20 4c 50 44 57 4f 52 44 LPVOID, LPDWORD 0a30: 2c 20 44 57 4f 52 44 29 20 57 72 69 74 65 43 6c , DWORD) WriteCl 0a40: 69 65 6e 74 3b 0d 0a 09 65 78 74 65 72 6e 28 50 ient;...extern(P 0a50: 61 73 63 61 6c 29 20 42 4f 4f 4c 20 66 75 6e 63 ascal) BOOL func 0a60: 74 69 6f 6e 28 48 43 4f 4e 4e 2c 20 4c 50 56 4f tion(HCONN, LPVO 0a70: 49 44 2c 20 4c 50 44 57 4f 52 44 29 20 52 65 61 ID, LPDWORD) Rea 0a80: 64 43 6c 69 65 6e 74 3b 0d 0a 09 65 78 74 65 72 dClient;...exter 0a90: 6e 28 50 61 73 63 61 6c 29 20 42 4f 4f 4c 20 66 n(Pascal) BOOL f 0aa0: 75 6e 63 74 69 6f 6e 28 48 43 4f 4e 4e 2c 20 44 unction(HCONN, D 0ab0: 57 4f 52 44 2c 20 4c 50 56 4f 49 44 2c 20 4c 50 WORD, LPVOID, LP 0ac0: 44 57 4f 52 44 2c 20 4c 50 44 57 4f 52 44 29 0d DWORD, LPDWORD). 0ad0: 0a 09 20 20 53 65 72 76 65 72 53 75 70 70 6f 72 .. ServerSuppor 0ae0: 74 46 75 6e 63 74 69 6f 6e 3b 0d 0a 7d 0d 0a 61 tFunction;..}..a 0af0: 6c 69 61 73 20 45 58 54 45 4e 53 49 4f 4e 5f 43 lias EXTENSION_C 0b00: 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 2a 20 4c 50 ONTROL_BLOCK* LP 0b10: 45 58 54 45 4e 53 49 4f 4e 5f 43 4f 4e 54 52 4f EXTENSION_CONTRO 0b20: 4c 5f 42 4c 4f 43 4b 3b 0d 0a 0d 0a 65 78 74 65 L_BLOCK;....exte 0b30: 72 6e 20 28 50 61 73 63 61 6c 29 20 7b 0d 0a 09 rn (Pascal) {... 0b40: 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 alias BOOL funct 0b50: 69 6f 6e 28 48 53 45 5f 56 45 52 53 49 4f 4e 5f ion(HSE_VERSION_ 0b60: 49 4e 46 4f 2a 29 20 50 46 4e 5f 47 45 54 45 58 INFO*) PFN_GETEX 0b70: 54 45 4e 53 49 4f 4e 56 45 52 53 49 4f 4e 3b 0d TENSIONVERSION;. 0b80: 0a 09 61 6c 69 61 73 20 44 57 4f 52 44 20 66 75 ..alias DWORD fu 0b90: 6e 63 74 69 6f 6e 28 45 58 54 45 4e 53 49 4f 4e nction(EXTENSION 0ba0: 5f 43 4f 4e 54 52 4f 4c 5f 42 4c 4f 43 4b 2a 29 _CONTROL_BLOCK*) 0bb0: 20 50 46 4e 5f 48 54 54 50 45 58 54 45 4e 53 49 PFN_HTTPEXTENSI 0bc0: 4f 4e 50 52 4f 43 3b 0d 0a 09 61 6c 69 61 73 20 ONPROC;...alias 0bd0: 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 44 57 BOOL function(DW 0be0: 4f 52 44 29 20 50 46 4e 5f 54 45 52 4d 49 4e 41 ORD) PFN_TERMINA 0bf0: 54 45 45 58 54 45 4e 53 49 4f 4e 3b 0d 0a 09 61 TEEXTENSION;...a 0c00: 6c 69 61 73 20 56 4f 49 44 20 66 75 6e 63 74 69 lias VOID functi 0c10: 6f 6e 28 45 58 54 45 4e 53 49 4f 4e 5f 43 4f 4e on(EXTENSION_CON 0c20: 54 52 4f 4c 5f 42 4c 4f 43 4b 2a 2c 20 50 56 4f TROL_BLOCK*, PVO 0c30: 49 44 2c 20 44 57 4f 52 44 2c 20 44 57 4f 52 44 ID, DWORD, DWORD 0c40: 29 20 50 46 4e 5f 48 53 45 5f 49 4f 5f 43 4f 4d ) PFN_HSE_IO_COM 0c50: 50 4c 45 54 49 4f 4e 3b 0d 0a 7d 0d 0a 0d 0a 73 PLETION;..}....s 0c60: 74 72 75 63 74 20 48 53 45 5f 54 46 5f 49 4e 46 truct HSE_TF_INF 0c70: 4f 20 7b 0d 0a 09 50 46 4e 5f 48 53 45 5f 49 4f O {...PFN_HSE_IO 0c80: 5f 43 4f 4d 50 4c 45 54 49 4f 4e 20 70 66 6e 48 _COMPLETION pfnH 0c90: 73 65 49 4f 3b 0d 0a 09 50 56 4f 49 44 20 20 70 seIO;...PVOID p 0ca0: 43 6f 6e 74 65 78 74 3b 0d 0a 09 48 41 4e 44 4c Context;...HANDL 0cb0: 45 20 68 46 69 6c 65 3b 0d 0a 09 4c 50 43 53 54 E hFile;...LPCST 0cc0: 52 20 70 73 7a 53 74 61 74 75 73 43 6f 64 65 3b R pszStatusCode; 0cd0: 0d 0a 09 44 57 4f 52 44 20 20 42 79 74 65 73 54 ...DWORD BytesT 0ce0: 6f 57 72 69 74 65 3b 0d 0a 09 44 57 4f 52 44 20 oWrite;...DWORD 0cf0: 20 4f 66 66 73 65 74 3b 0d 0a 09 50 56 4f 49 44 Offset;...PVOID 0d00: 20 20 70 48 65 61 64 3b 0d 0a 09 44 57 4f 52 44 pHead;...DWORD 0d10: 20 20 48 65 61 64 4c 65 6e 67 74 68 3b 0d 0a 09 HeadLength;... 0d20: 50 56 4f 49 44 20 20 70 54 61 69 6c 3b 0d 0a 09 PVOID pTail;... 0d30: 44 57 4f 52 44 20 20 54 61 69 6c 4c 65 6e 67 74 DWORD TailLengt 0d40: 68 3b 0d 0a 09 44 57 4f 52 44 20 20 64 77 46 6c h;...DWORD dwFl 0d50: 61 67 73 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 48 ags;..}..alias H 0d60: 53 45 5f 54 46 5f 49 4e 46 4f 2a 20 4c 50 48 53 SE_TF_INFO* LPHS 0d70: 45 5f 54 46 5f 49 4e 46 4f 3b 0d 0a 0d 0a 73 74 E_TF_INFO;....st 0d80: 72 75 63 74 20 48 53 45 5f 53 45 4e 44 5f 48 45 ruct HSE_SEND_HE 0d90: 41 44 45 52 5f 45 58 5f 49 4e 46 4f 20 7b 0d 0a ADER_EX_INFO {.. 0da0: 09 4c 50 43 53 54 52 20 70 73 7a 53 74 61 74 75 .LPCSTR pszStatu 0db0: 73 3b 0d 0a 09 4c 50 43 53 54 52 20 70 73 7a 48 s;...LPCSTR pszH 0dc0: 65 61 64 65 72 3b 0d 0a 09 44 57 4f 52 44 20 20 eader;...DWORD 0dd0: 63 63 68 53 74 61 74 75 73 3b 0d 0a 09 44 57 4f cchStatus;...DWO 0de0: 52 44 20 20 63 63 68 48 65 61 64 65 72 3b 0d 0a RD cchHeader;.. 0df0: 09 42 4f 4f 4c 20 20 20 66 4b 65 65 70 43 6f 6e .BOOL fKeepCon 0e00: 6e 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 48 53 45 n;..}..alias HSE 0e10: 5f 53 45 4e 44 5f 48 45 41 44 45 52 5f 45 58 5f _SEND_HEADER_EX_ 0e20: 49 4e 46 4f 2a 20 4c 50 48 53 45 5f 53 45 4e 44 INFO* LPHSE_SEND 0e30: 5f 48 45 41 44 45 52 5f 45 58 5f 49 4e 46 3b 0d _HEADER_EX_INF;. 0e40: 0a 0d 0a 65 78 74 65 72 6e 20 28 50 61 73 63 61 ...extern (Pasca 0e50: 6c 29 20 7b 0d 0a 09 42 4f 4f 4c 20 47 65 74 45 l) {...BOOL GetE 0e60: 78 74 65 6e 73 69 6f 6e 56 65 72 73 69 6f 6e 28 xtensionVersion( 0e70: 48 53 45 5f 56 45 52 53 49 4f 4e 5f 49 4e 46 4f HSE_VERSION_INFO 0e80: 2a 29 3b 0d 0a 09 44 57 4f 52 44 20 48 74 74 70 *);...DWORD Http 0e90: 45 78 74 65 6e 73 69 6f 6e 50 72 6f 63 28 45 58 ExtensionProc(EX 0ea0: 54 45 4e 53 49 4f 4e 5f 43 4f 4e 54 52 4f 4c 5f TENSION_CONTROL_ 0eb0: 42 4c 4f 43 4b 2a 29 3b 0d 0a 09 42 4f 4f 4c 20 BLOCK*);...BOOL 0ec0: 54 65 72 6d 69 6e 61 74 65 45 78 74 65 6e 73 69 TerminateExtensi 0ed0: 6f 6e 28 44 57 4f 52 44 29 3b 0d 0a 7d 0d 0a on(DWORD);..}..