Hex Artifact Content

Not logged in

Artifact bca565610f0d70a9b48cff4ef85e3ba34f0a0c80:


0000: 69 6d 70 6f 72 74 20 63 6f 72 65 2e 73 79 73 2e  import core.sys.
0010: 77 69 6e 64 6f 77 73 2e 77 69 6e 64 6f 77 73 3b  windows.windows;
0020: 0a 0a 2f 2f 20 48 61 63 6b 21 0a 2f 2f 0a 2f 2f  ..// Hack!.//.//
0030: 20 5f 61 63 72 74 75 73 65 64 5f 64 6c 6c e3 81   _acrtused_dll..
0040: 8c e5 8b 9d e6 89 8b e3 81 ab e7 b5 82 e4 ba 86  ................
0050: e6 99 82 e3 81 ab e6 a8 99 e6 ba 96 e5 85 a5 e5  ................
0060: 87 ba e5 8a 9b e3 83 8f e3 83 b3 e3 83 89 e3 83  ................
0070: ab e3 82 92 0a 2f 2f 20 e9 96 89 e3 81 98 e3 81  .....// ........
0080: a1 e3 82 83 e3 81 a3 e3 81 a6 e5 9b b0 e3 82 8b  ................
0090: e3 81 ae e3 81 a7 e3 80 81 e3 81 9d e3 81 ae e8  ................
00a0: be ba e3 82 8a e3 81 a0 e3 81 91 e3 81 af e9 96  ................
00b0: 89 e3 81 98 e3 81 aa e3 81 84 e3 82 88 e3 81 86  ................
00c0: e3 81 aa 0a 2f 2f 20 43 6c 6f 73 65 48 61 6e 64  ....// CloseHand
00d0: 6c 65 e3 82 92 e7 aa 81 e3 81 a3 e8 be bc e3 82  le..............
00e0: 93 e3 81 a7 e5 9b 9e e9 81 bf e3 80 82 e3 81 84  ................
00f0: e3 81 84 e3 81 ae e3 81 8b e3 81 93 e3 82 8c e3  ................
0100: 80 82 0a 0a 65 78 74 65 72 6e 28 57 69 6e 64 6f  ....extern(Windo
0110: 77 73 29 0a 7b 0a 09 70 72 69 76 61 74 65 20 61  ws).{..private a
0120: 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69  lias BOOL functi
0130: 6f 6e 28 48 41 4e 44 4c 45 29 20 43 6c 48 6e 54  on(HANDLE) ClHnT
0140: 3b 0a 09 70 72 69 76 61 74 65 20 43 6c 48 6e 54  ;..private ClHnT
0150: 20 20 52 65 61 6c 5f 43 6c 6f 73 65 48 61 6e 64    Real_CloseHand
0160: 6c 65 3b 0a 09 70 72 69 76 61 74 65 20 48 41 4e  le;..private HAN
0170: 44 4c 45 20 73 74 64 69 6e 3b 0a 09 70 72 69 76  DLE stdin;..priv
0180: 61 74 65 20 48 41 4e 44 4c 45 20 73 74 64 6f 75  ate HANDLE stdou
0190: 74 3b 0a 09 70 72 69 76 61 74 65 20 48 41 4e 44  t;..private HAND
01a0: 4c 45 20 73 74 64 65 72 72 3b 0a 0a 09 42 4f 4f  LE stderr;...BOO
01b0: 4c 20 43 6c 6f 73 65 48 61 6e 64 6c 65 28 20 48  L CloseHandle( H
01c0: 41 4e 44 4c 45 20 68 20 29 0a 09 7b 0a 09 09 69  ANDLE h )..{...i
01d0: 66 28 20 68 3d 3d 73 74 64 69 6e 20 20 29 20 72  f( h==stdin  ) r
01e0: 65 74 75 72 6e 20 54 52 55 45 3b 0a 09 09 69 66  eturn TRUE;...if
01f0: 28 20 68 3d 3d 73 74 64 6f 75 74 20 29 20 72 65  ( h==stdout ) re
0200: 74 75 72 6e 20 54 52 55 45 3b 0a 09 09 69 66 28  turn TRUE;...if(
0210: 20 68 3d 3d 73 74 64 65 72 72 20 29 20 72 65 74   h==stderr ) ret
0220: 75 72 6e 20 54 52 55 45 3b 0a 09 09 72 65 74 75  urn TRUE;...retu
0230: 72 6e 20 52 65 61 6c 5f 43 6c 6f 73 65 48 61 6e  rn Real_CloseHan
0240: 64 6c 65 28 68 29 3b 0a 09 7d 0a 7d 0a 0a 73 74  dle(h);..}.}..st
0250: 61 74 69 63 20 74 68 69 73 28 29 0a 7b 0a 09 52  atic this().{..R
0260: 65 61 6c 5f 43 6c 6f 73 65 48 61 6e 64 6c 65 20  eal_CloseHandle 
0270: 3d 20 63 61 73 74 28 43 6c 48 6e 54 29 0a 09 09  = cast(ClHnT)...
0280: 47 65 74 50 72 6f 63 41 64 64 72 65 73 73 28 20  GetProcAddress( 
0290: 47 65 74 4d 6f 64 75 6c 65 48 61 6e 64 6c 65 41  GetModuleHandleA
02a0: 28 22 6b 65 72 6e 65 6c 33 32 2e 64 6c 6c 22 29  ("kernel32.dll")
02b0: 2c 20 22 43 6c 6f 73 65 48 61 6e 64 6c 65 22 20  , "CloseHandle" 
02c0: 29 3b 0a 09 73 74 64 69 6e 20 20 3d 20 47 65 74  );..stdin  = Get
02d0: 53 74 64 48 61 6e 64 6c 65 28 53 54 44 5f 49 4e  StdHandle(STD_IN
02e0: 50 55 54 5f 48 41 4e 44 4c 45 20 29 3b 0a 09 73  PUT_HANDLE );..s
02f0: 74 64 6f 75 74 20 3d 20 47 65 74 53 74 64 48 61  tdout = GetStdHa
0300: 6e 64 6c 65 28 53 54 44 5f 4f 55 54 50 55 54 5f  ndle(STD_OUTPUT_
0310: 48 41 4e 44 4c 45 29 3b 0a 09 73 74 64 65 72 72  HANDLE);..stderr
0320: 20 3d 20 47 65 74 53 74 64 48 61 6e 64 6c 65 28   = GetStdHandle(
0330: 53 54 44 5f 45 52 52 4f 52 5f 48 41 4e 44 4c 45  STD_ERROR_HANDLE
0340: 20 29 3b 0a 7d 0a                                 );.}.