Artifact 9514097d3d6522bac58a457c86ba6558d48b1143:
- File
src/win32/wtypes.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 77 74 79 70 65 wtype
0070: 73 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 s.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: 77 74 79 70 65 73 3b 0d 0a 0d 0a 69 6d 70 6f 72 wtypes;....impor
02c0: 74 20 77 69 6e 33 32 2e 72 70 63 2c 20 77 69 6e t win32.rpc, win
02d0: 33 32 2e 72 70 63 6e 64 72 3b 0d 0a 70 72 69 76 32.rpcndr;..priv
02e0: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 ate import win32
02f0: 2e 77 69 6e 64 65 66 3b 0d 0a 70 72 69 76 61 74 .windef;..privat
0300: 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 75 e import win32.u
0310: 75 69 64 3b 20 2f 2f 20 66 6f 72 20 47 55 49 44 uid; // for GUID
0320: 5f 4e 55 4c 4c 0d 0a 0d 0a 61 6c 69 61 73 20 47 _NULL....alias G
0330: 55 49 44 5f 4e 55 4c 4c 20 49 49 44 5f 4e 55 4c UID_NULL IID_NUL
0340: 4c 2c 20 43 4c 53 49 44 5f 4e 55 4c 4c 3b 0d 0a L, CLSID_NULL;..
0350: 0d 0a 63 6f 6e 73 74 20 52 4f 54 46 4c 41 47 53 ..const ROTFLAGS
0360: 5f 52 45 47 49 53 54 52 41 54 49 4f 4e 4b 45 45 _REGISTRATIONKEE
0370: 50 53 41 4c 49 56 45 20 3d 20 30 78 30 31 3b 0d PSALIVE = 0x01;.
0380: 0a 63 6f 6e 73 74 20 52 4f 54 46 4c 41 47 53 5f .const ROTFLAGS_
0390: 41 4c 4c 4f 57 41 4e 59 43 4c 49 45 4e 54 20 20 ALLOWANYCLIENT
03a0: 20 20 20 20 20 20 20 3d 20 30 78 30 32 3b 0d 0a = 0x02;..
03b0: 0d 0a 2f 2f 20 61 6c 73 6f 20 69 6e 20 77 69 6e ..// also in win
03c0: 73 6f 63 6b 32 2e 68 0d 0a 73 74 72 75 63 74 20 sock2.h..struct
03d0: 42 4c 4f 42 20 7b 0d 0a 09 55 4c 4f 4e 47 20 63 BLOB {...ULONG c
03e0: 62 53 69 7a 65 3b 0d 0a 09 42 59 54 45 2a 20 70 bSize;...BYTE* p
03f0: 42 6c 6f 62 44 61 74 61 3b 0d 0a 7d 0d 0a 61 6c BlobData;..}..al
0400: 69 61 73 20 42 4c 4f 42 2a 20 50 42 4c 4f 42 2c ias BLOB* PBLOB,
0410: 20 4c 50 42 4c 4f 42 3b 0d 0a 0d 0a 65 6e 75 6d LPBLOB;....enum
0420: 20 44 56 41 53 50 45 43 54 20 7b 0d 0a 09 44 56 DVASPECT {...DV
0430: 41 53 50 45 43 54 5f 43 4f 4e 54 45 4e 54 20 20 ASPECT_CONTENT
0440: 20 3d 20 31 2c 0d 0a 09 44 56 41 53 50 45 43 54 = 1,...DVASPECT
0450: 5f 54 48 55 4d 42 4e 41 49 4c 20 3d 20 32 2c 0d _THUMBNAIL = 2,.
0460: 0a 09 44 56 41 53 50 45 43 54 5f 49 43 4f 4e 20 ..DVASPECT_ICON
0470: 20 20 20 20 20 3d 20 34 2c 0d 0a 09 44 56 41 53 = 4,...DVAS
0480: 50 45 43 54 5f 44 4f 43 50 52 49 4e 54 20 20 3d PECT_DOCPRINT =
0490: 20 38 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 44 56 8..}....enum DV
04a0: 41 53 50 45 43 54 32 20 7b 0d 0a 09 44 56 41 53 ASPECT2 {...DVAS
04b0: 50 45 43 54 5f 4f 50 41 51 55 45 20 20 20 20 20 PECT_OPAQUE
04c0: 20 3d 20 31 36 2c 0d 0a 09 44 56 41 53 50 45 43 = 16,...DVASPEC
04d0: 54 5f 54 52 41 4e 53 50 41 52 45 4e 54 20 3d 20 T_TRANSPARENT =
04e0: 33 32 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 53 54 32..}....enum ST
04f0: 41 54 46 4c 41 47 20 7b 0d 0a 09 53 54 41 54 46 ATFLAG {...STATF
0500: 4c 41 47 5f 44 45 46 41 55 4c 54 20 3d 20 30 2c LAG_DEFAULT = 0,
0510: 0d 0a 09 53 54 41 54 46 4c 41 47 5f 4e 4f 4e 41 ...STATFLAG_NONA
0520: 4d 45 20 20 3d 20 31 0d 0a 7d 0d 0a 0d 0a 65 6e ME = 1..}....en
0530: 75 6d 20 4d 45 4d 43 54 58 20 7b 0d 0a 09 4d 45 um MEMCTX {...ME
0540: 4d 43 54 58 5f 4c 4f 43 41 4c 20 3d 20 30 2c 0d MCTX_LOCAL = 0,.
0550: 0a 09 4d 45 4d 43 54 58 5f 54 41 53 4b 2c 0d 0a ..MEMCTX_TASK,..
0560: 09 4d 45 4d 43 54 58 5f 53 48 41 52 45 44 2c 0d .MEMCTX_SHARED,.
0570: 0a 09 4d 45 4d 43 54 58 5f 4d 41 43 53 59 53 54 ..MEMCTX_MACSYST
0580: 45 4d 2c 0d 0a 09 4d 45 4d 43 54 58 5f 55 4e 4b EM,...MEMCTX_UNK
0590: 4e 4f 57 4e 20 3d 20 2d 31 2c 0d 0a 09 4d 45 4d NOWN = -1,...MEM
05a0: 43 54 58 5f 53 41 4d 45 20 3d 20 2d 32 0d 0a 7d CTX_SAME = -2..}
05b0: 0d 0a 0d 0a 65 6e 75 6d 20 4d 53 48 43 54 58 20 ....enum MSHCTX
05c0: 7b 0d 0a 09 4d 53 48 43 54 58 5f 4c 4f 43 41 4c {...MSHCTX_LOCAL
05d0: 20 3d 20 30 2c 0d 0a 09 4d 53 48 43 54 58 5f 4e = 0,...MSHCTX_N
05e0: 4f 53 48 41 52 45 44 4d 45 4d 2c 0d 0a 09 4d 53 OSHAREDMEM,...MS
05f0: 48 43 54 58 5f 44 49 46 46 45 52 45 4e 54 4d 41 HCTX_DIFFERENTMA
0600: 43 48 49 4e 45 2c 0d 0a 09 4d 53 48 43 54 58 5f CHINE,...MSHCTX_
0610: 49 4e 50 52 4f 43 2c 0d 0a 09 4d 53 48 43 54 58 INPROC,...MSHCTX
0620: 5f 43 52 4f 53 53 43 54 58 0d 0a 7d 0d 0a 0d 0a _CROSSCTX..}....
0630: 65 6e 75 6d 20 43 4c 53 43 54 58 20 7b 0d 0a 09 enum CLSCTX {...
0640: 43 4c 53 43 54 58 5f 49 4e 50 52 4f 43 5f 53 45 CLSCTX_INPROC_SE
0650: 52 56 45 52 20 20 20 3d 20 31 2c 0d 0a 09 43 4c RVER = 1,...CL
0660: 53 43 54 58 5f 49 4e 50 52 4f 43 5f 48 41 4e 44 SCTX_INPROC_HAND
0670: 4c 45 52 20 20 3d 20 32 2c 0d 0a 09 43 4c 53 43 LER = 2,...CLSC
0680: 54 58 5f 4c 4f 43 41 4c 5f 53 45 52 56 45 52 20 TX_LOCAL_SERVER
0690: 20 20 20 3d 20 34 2c 0d 0a 09 43 4c 53 43 54 58 = 4,...CLSCTX
06a0: 5f 49 4e 50 52 4f 43 5f 53 45 52 56 45 52 31 36 _INPROC_SERVER16
06b0: 20 3d 20 38 2c 0d 0a 09 43 4c 53 43 54 58 5f 52 = 8,...CLSCTX_R
06c0: 45 4d 4f 54 45 5f 53 45 52 56 45 52 20 20 20 3d EMOTE_SERVER =
06d0: 20 31 36 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 4d 16..}....enum M
06e0: 53 48 4c 46 4c 41 47 53 20 7b 0d 0a 09 4d 53 48 SHLFLAGS {...MSH
06f0: 4c 46 4c 41 47 53 5f 4e 4f 52 4d 41 4c 2c 0d 0a LFLAGS_NORMAL,..
0700: 09 4d 53 48 4c 46 4c 41 47 53 5f 54 41 42 4c 45 .MSHLFLAGS_TABLE
0710: 53 54 52 4f 4e 47 2c 0d 0a 09 4d 53 48 4c 46 4c STRONG,...MSHLFL
0720: 41 47 53 5f 54 41 42 4c 45 57 45 41 4b 0d 0a 7d AGS_TABLEWEAK..}
0730: 0d 0a 0d 0a 73 74 72 75 63 74 20 46 4c 41 47 47 ....struct FLAGG
0740: 45 44 5f 57 4f 52 44 5f 42 4c 4f 42 20 7b 0d 0a ED_WORD_BLOB {..
0750: 09 75 69 6e 74 20 66 46 6c 61 67 73 3b 0d 0a 09 .uint fFlags;...
0760: 75 69 6e 74 20 63 6c 53 69 7a 65 3b 0d 0a 09 75 uint clSize;...u
0770: 73 68 6f 72 74 5b 31 5d 20 61 73 44 61 74 61 3b short[1] asData;
0780: 0d 0a 7d 0d 0a 0d 0a 61 6c 69 61 73 20 57 43 48 ..}....alias WCH
0790: 41 52 20 4f 4c 45 43 48 41 52 3b 0d 0a 61 6c 69 AR OLECHAR;..ali
07a0: 61 73 20 4c 50 57 53 54 52 20 4c 50 4f 4c 45 53 as LPWSTR LPOLES
07b0: 54 52 3b 0d 0a 61 6c 69 61 73 20 4c 50 43 57 53 TR;..alias LPCWS
07c0: 54 52 20 4c 50 43 4f 4c 45 53 54 52 3b 0d 0a 0d TR LPCOLESTR;...
07d0: 0a 61 6c 69 61 73 20 75 73 68 6f 72 74 20 56 41 .alias ushort VA
07e0: 52 54 59 50 45 3b 0d 0a 61 6c 69 61 73 20 73 68 RTYPE;..alias sh
07f0: 6f 72 74 20 56 41 52 49 41 4e 54 5f 42 4f 4f 4c ort VARIANT_BOOL
0800: 3b 0d 0a 61 6c 69 61 73 20 56 41 52 49 41 4e 54 ;..alias VARIANT
0810: 5f 42 4f 4f 4c 20 5f 56 41 52 49 41 4e 54 5f 42 _BOOL _VARIANT_B
0820: 4f 4f 4c 3b 0d 0a 63 6f 6e 73 74 20 56 41 52 49 OOL;..const VARI
0830: 41 4e 54 5f 42 4f 4f 4c 20 56 41 52 49 41 4e 54 ANT_BOOL VARIANT
0840: 5f 54 52 55 45 20 3d 20 2d 31 3b 20 2f 2f 20 30 _TRUE = -1; // 0
0850: 78 66 66 66 66 3b 0d 0a 63 6f 6e 73 74 20 56 41 xffff;..const VA
0860: 52 49 41 4e 54 5f 42 4f 4f 4c 20 56 41 52 49 41 RIANT_BOOL VARIA
0870: 4e 54 5f 46 41 4c 53 45 20 3d 20 30 3b 0d 0a 0d NT_FALSE = 0;...
0880: 0a 61 6c 69 61 73 20 4f 4c 45 43 48 41 52 2a 20 .alias OLECHAR*
0890: 42 53 54 52 3b 0d 0a 61 6c 69 61 73 20 46 4c 41 BSTR;..alias FLA
08a0: 47 47 45 44 5f 57 4f 52 44 5f 42 4c 4f 42 2a 20 GGED_WORD_BLOB*
08b0: 77 69 72 65 42 53 54 52 3b 0d 0a 61 6c 69 61 73 wireBSTR;..alias
08c0: 20 42 53 54 52 2a 20 4c 50 42 53 54 52 3b 0d 0a BSTR* LPBSTR;..
08d0: 2f 2f 61 6c 69 61 73 20 4c 4f 4e 47 20 53 43 4f //alias LONG SCO
08e0: 44 45 3b 20 2f 2f 20 61 6c 73 6f 20 69 6e 20 77 DE; // also in w
08f0: 69 6e 65 72 72 6f 72 0d 0a 6d 69 78 69 6e 20 44 inerror..mixin D
0900: 45 43 4c 41 52 45 5f 48 41 4e 44 4c 45 21 28 22 ECLARE_HANDLE!("
0910: 48 43 4f 4e 54 45 58 54 22 29 3b 0d 0a 6d 69 78 HCONTEXT");..mix
0920: 69 6e 20 44 45 43 4c 41 52 45 5f 48 41 4e 44 4c in DECLARE_HANDL
0930: 45 21 28 22 48 4d 45 54 41 46 49 4c 45 50 49 43 E!("HMETAFILEPIC
0940: 54 22 29 3b 0d 0a 0d 0a 75 6e 69 6f 6e 20 43 59 T");....union CY
0950: 20 7b 0d 0a 09 73 74 72 75 63 74 20 7b 0d 0a 09 {...struct {...
0960: 09 75 69 6e 74 20 4c 6f 3b 0d 0a 09 09 69 6e 74 .uint Lo;....int
0970: 20 48 69 3b 0d 0a 09 7d 0d 0a 09 4c 4f 4e 47 4c Hi;...}...LONGL
0980: 4f 4e 47 20 69 6e 74 36 34 3b 0d 0a 7d 0d 0a 0d ONG int64;..}...
0990: 0a 61 6c 69 61 73 20 64 6f 75 62 6c 65 20 44 41 .alias double DA
09a0: 54 45 3b 0d 0a 73 74 72 75 63 74 20 20 42 53 54 TE;..struct BST
09b0: 52 42 4c 4f 42 20 7b 0d 0a 09 55 4c 4f 4e 47 20 RBLOB {...ULONG
09c0: 63 62 53 69 7a 65 3b 0d 0a 09 50 42 59 54 45 20 cbSize;...PBYTE
09d0: 70 44 61 74 61 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 pData;..}..alias
09e0: 20 42 53 54 52 42 4c 4f 42 2a 20 4c 50 42 53 54 BSTRBLOB* LPBST
09f0: 52 42 4c 4f 42 3b 0d 0a 0d 0a 2f 2f 20 55 73 65 RBLOB;....// Use
0a00: 64 20 6f 6e 6c 79 20 69 6e 20 74 68 65 20 50 52 d only in the PR
0a10: 4f 50 56 41 52 49 41 4e 54 20 73 74 72 75 63 74 OPVARIANT struct
0a20: 75 72 65 0d 0a 2f 2f 20 41 63 63 6f 72 64 69 6e ure..// Accordin
0a30: 67 20 74 6f 20 74 68 65 20 32 30 30 33 20 53 44 g to the 2003 SD
0a40: 4b 2c 20 74 68 69 73 20 73 68 6f 75 6c 64 20 62 K, this should b
0a50: 65 20 69 6e 20 70 72 6f 70 69 64 6c 2e 68 2c 20 e in propidl.h,
0a60: 6e 6f 74 20 68 65 72 65 2e 0d 0a 73 74 72 75 63 not here...struc
0a70: 74 20 43 4c 49 50 44 41 54 41 20 7b 0d 0a 09 55 t CLIPDATA {...U
0a80: 4c 4f 4e 47 20 63 62 53 69 7a 65 3b 0d 0a 09 69 LONG cbSize;...i
0a90: 6e 74 20 75 6c 43 6c 69 70 46 6d 74 3b 0d 0a 09 nt ulClipFmt;...
0aa0: 50 42 59 54 45 20 70 43 6c 69 70 44 61 74 61 3b PBYTE pClipData;
0ab0: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 53 54 47 43 ..}....enum STGC
0ac0: 20 7b 0d 0a 09 53 54 47 43 5f 44 45 46 41 55 4c {...STGC_DEFAUL
0ad0: 54 2c 0d 0a 09 53 54 47 43 5f 4f 56 45 52 57 52 T,...STGC_OVERWR
0ae0: 49 54 45 2c 0d 0a 09 53 54 47 43 5f 4f 4e 4c 59 ITE,...STGC_ONLY
0af0: 49 46 43 55 52 52 45 4e 54 2c 0d 0a 09 53 54 47 IFCURRENT,...STG
0b00: 43 5f 44 41 4e 47 45 52 4f 55 53 4c 59 43 4f 4d C_DANGEROUSLYCOM
0b10: 4d 49 54 4d 45 52 45 4c 59 54 4f 44 49 53 4b 43 MITMERELYTODISKC
0b20: 41 43 48 45 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 ACHE..}....enum
0b30: 53 54 47 4d 4f 56 45 20 7b 0d 0a 09 53 54 47 4d STGMOVE {...STGM
0b40: 4f 56 45 5f 4d 4f 56 45 2c 0d 0a 09 53 54 47 4d OVE_MOVE,...STGM
0b50: 4f 56 45 5f 43 4f 50 59 2c 0d 0a 09 53 54 47 4d OVE_COPY,...STGM
0b60: 4f 56 45 5f 53 48 41 4c 4c 4f 57 43 4f 50 59 0d OVE_SHALLOWCOPY.
0b70: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 56 41 52 45 4e .}....enum VAREN
0b80: 55 4d 20 7b 0d 0a 09 56 54 5f 45 4d 50 54 59 2c UM {...VT_EMPTY,
0b90: 0d 0a 09 56 54 5f 4e 55 4c 4c 2c 0d 0a 09 56 54 ...VT_NULL,...VT
0ba0: 5f 49 32 2c 0d 0a 09 56 54 5f 49 34 2c 0d 0a 09 _I2,...VT_I4,...
0bb0: 56 54 5f 52 34 2c 0d 0a 09 56 54 5f 52 38 2c 0d VT_R4,...VT_R8,.
0bc0: 0a 09 56 54 5f 43 59 2c 0d 0a 09 56 54 5f 44 41 ..VT_CY,...VT_DA
0bd0: 54 45 2c 0d 0a 09 56 54 5f 42 53 54 52 2c 0d 0a TE,...VT_BSTR,..
0be0: 09 56 54 5f 44 49 53 50 41 54 43 48 2c 0d 0a 09 .VT_DISPATCH,...
0bf0: 56 54 5f 45 52 52 4f 52 2c 0d 0a 09 56 54 5f 42 VT_ERROR,...VT_B
0c00: 4f 4f 4c 2c 0d 0a 09 56 54 5f 56 41 52 49 41 4e OOL,...VT_VARIAN
0c10: 54 2c 0d 0a 09 56 54 5f 55 4e 4b 4e 4f 57 4e 2c T,...VT_UNKNOWN,
0c20: 0d 0a 09 56 54 5f 44 45 43 49 4d 41 4c 2c 0d 0a ...VT_DECIMAL,..
0c30: 09 56 54 5f 49 31 20 3d 20 31 36 2c 0d 0a 09 56 .VT_I1 = 16,...V
0c40: 54 5f 55 49 31 2c 0d 0a 09 56 54 5f 55 49 32 2c T_UI1,...VT_UI2,
0c50: 0d 0a 09 56 54 5f 55 49 34 2c 0d 0a 09 56 54 5f ...VT_UI4,...VT_
0c60: 49 38 2c 0d 0a 09 56 54 5f 55 49 38 2c 0d 0a 09 I8,...VT_UI8,...
0c70: 56 54 5f 49 4e 54 2c 0d 0a 09 56 54 5f 55 49 4e VT_INT,...VT_UIN
0c80: 54 2c 0d 0a 09 56 54 5f 56 4f 49 44 2c 0d 0a 09 T,...VT_VOID,...
0c90: 56 54 5f 48 52 45 53 55 4c 54 2c 0d 0a 09 56 54 VT_HRESULT,...VT
0ca0: 5f 50 54 52 2c 0d 0a 09 56 54 5f 53 41 46 45 41 _PTR,...VT_SAFEA
0cb0: 52 52 41 59 2c 0d 0a 09 56 54 5f 43 41 52 52 41 RRAY,...VT_CARRA
0cc0: 59 2c 0d 0a 09 56 54 5f 55 53 45 52 44 45 46 49 Y,...VT_USERDEFI
0cd0: 4e 45 44 2c 0d 0a 09 56 54 5f 4c 50 53 54 52 2c NED,...VT_LPSTR,
0ce0: 0d 0a 09 56 54 5f 4c 50 57 53 54 52 2c 0d 0a 09 ...VT_LPWSTR,...
0cf0: 56 54 5f 52 45 43 4f 52 44 20 20 20 3d 20 33 36 VT_RECORD = 36
0d00: 2c 0d 0a 09 56 54 5f 49 4e 54 5f 50 54 52 20 20 ,...VT_INT_PTR
0d10: 3d 20 33 37 2c 0d 0a 09 56 54 5f 55 49 4e 54 5f = 37,...VT_UINT_
0d20: 50 54 52 20 3d 20 33 38 2c 0d 0a 09 56 54 5f 46 PTR = 38,...VT_F
0d30: 49 4c 45 54 49 4d 45 20 3d 20 36 34 2c 0d 0a 09 ILETIME = 64,...
0d40: 56 54 5f 42 4c 4f 42 2c 0d 0a 09 56 54 5f 53 54 VT_BLOB,...VT_ST
0d50: 52 45 41 4d 2c 0d 0a 09 56 54 5f 53 54 4f 52 41 REAM,...VT_STORA
0d60: 47 45 2c 0d 0a 09 56 54 5f 53 54 52 45 41 4d 45 GE,...VT_STREAME
0d70: 44 5f 4f 42 4a 45 43 54 2c 0d 0a 09 56 54 5f 53 D_OBJECT,...VT_S
0d80: 54 4f 52 45 44 5f 4f 42 4a 45 43 54 2c 0d 0a 09 TORED_OBJECT,...
0d90: 56 54 5f 42 4c 4f 42 5f 4f 42 4a 45 43 54 2c 0d VT_BLOB_OBJECT,.
0da0: 0a 09 56 54 5f 43 46 2c 0d 0a 09 56 54 5f 43 4c ..VT_CF,...VT_CL
0db0: 53 49 44 2c 0d 0a 09 56 54 5f 42 53 54 52 5f 42 SID,...VT_BSTR_B
0dc0: 4c 4f 42 20 20 20 20 20 3d 20 30 78 66 66 66 2c LOB = 0xfff,
0dd0: 0d 0a 09 56 54 5f 56 45 43 54 4f 52 20 20 20 20 ...VT_VECTOR
0de0: 20 20 20 20 3d 20 30 78 31 30 30 30 2c 0d 0a 09 = 0x1000,...
0df0: 56 54 5f 41 52 52 41 59 20 20 20 20 20 20 20 20 VT_ARRAY
0e00: 20 3d 20 30 78 32 30 30 30 2c 0d 0a 09 56 54 5f = 0x2000,...VT_
0e10: 42 59 52 45 46 20 20 20 20 20 20 20 20 20 3d 20 BYREF =
0e20: 30 78 34 30 30 30 2c 0d 0a 09 56 54 5f 52 45 53 0x4000,...VT_RES
0e30: 45 52 56 45 44 20 20 20 20 20 20 3d 20 30 78 38 ERVED = 0x8
0e40: 30 30 30 2c 0d 0a 09 56 54 5f 49 4c 4c 45 47 41 000,...VT_ILLEGA
0e50: 4c 20 20 20 20 20 20 20 3d 20 30 78 66 66 66 66 L = 0xffff
0e60: 2c 0d 0a 09 56 54 5f 49 4c 4c 45 47 41 4c 4d 41 ,...VT_ILLEGALMA
0e70: 53 4b 45 44 20 3d 20 30 78 66 66 66 2c 0d 0a 09 SKED = 0xfff,...
0e80: 56 54 5f 54 59 50 45 4d 41 53 4b 20 20 20 20 20 VT_TYPEMASK
0e90: 20 3d 20 30 78 66 66 66 0d 0a 7d 3b 0d 0a 0d 0a = 0xfff..};....
0ea0: 73 74 72 75 63 74 20 42 59 54 45 5f 53 49 5a 45 struct BYTE_SIZE
0eb0: 44 41 52 52 20 7b 0d 0a 09 75 69 6e 74 20 63 6c DARR {...uint cl
0ec0: 53 69 7a 65 3b 0d 0a 09 62 79 74 65 2a 20 70 44 Size;...byte* pD
0ed0: 61 74 61 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 ata;..}....struc
0ee0: 74 20 57 4f 52 44 5f 53 49 5a 45 44 41 52 52 20 t WORD_SIZEDARR
0ef0: 7b 0d 0a 09 75 69 6e 74 20 63 6c 53 69 7a 65 3b {...uint clSize;
0f00: 0d 0a 09 75 73 68 6f 72 74 2a 20 70 44 61 74 61 ...ushort* pData
0f10: 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 44 ;..}....struct D
0f20: 57 4f 52 44 5f 53 49 5a 45 44 41 52 52 20 7b 0d WORD_SIZEDARR {.
0f30: 0a 75 69 6e 74 20 63 6c 53 69 7a 65 3b 0d 0a 75 .uint clSize;..u
0f40: 69 6e 74 2a 20 70 44 61 74 61 3b 0d 0a 7d 0d 0a int* pData;..}..
0f50: 0d 0a 73 74 72 75 63 74 20 48 59 50 45 52 5f 53 ..struct HYPER_S
0f60: 49 5a 45 44 41 52 52 20 7b 0d 0a 09 75 69 6e 74 IZEDARR {...uint
0f70: 20 63 6c 53 69 7a 65 3b 0d 0a 09 68 79 70 65 72 clSize;...hyper
0f80: 2a 20 70 44 61 74 61 3b 0d 0a 7d 0d 0a 0d 0a 61 * pData;..}....a
0f90: 6c 69 61 73 20 64 6f 75 62 6c 65 20 44 4f 55 42 lias double DOUB
0fa0: 4c 45 3b 0d 0a 0d 0a 0d 0a 73 74 72 75 63 74 20 LE;......struct
0fb0: 44 45 43 49 4d 41 4c 20 7b 0d 0a 09 55 53 48 4f DECIMAL {...USHO
0fc0: 52 54 20 77 52 65 73 65 72 76 65 64 3b 0d 0a 09 RT wReserved;...
0fd0: 75 6e 69 6f 6e 20 7b 0d 0a 09 09 73 74 72 75 63 union {....struc
0fe0: 74 20 7b 0d 0a 09 09 09 75 62 79 74 65 20 73 63 t {.....ubyte sc
0ff0: 61 6c 65 3b 20 2f 2f 20 76 61 6c 69 64 20 76 61 ale; // valid va
1000: 6c 75 65 73 20 61 72 65 20 30 20 74 6f 20 32 38 lues are 0 to 28
1010: 0d 0a 09 09 09 75 62 79 74 65 20 73 69 67 6e 3b .....ubyte sign;
1020: 20 2f 2f 20 30 20 66 6f 72 20 70 6f 73 69 74 69 // 0 for positi
1030: 76 65 2c 20 44 45 43 49 4d 41 4c 5f 4e 45 47 20 ve, DECIMAL_NEG
1040: 66 6f 72 20 6e 65 67 61 74 69 76 65 73 2e 0d 0a for negatives...
1050: 09 09 09 65 6e 75 6d 20 75 62 79 74 65 20 44 45 ...enum ubyte DE
1060: 43 49 4d 41 4c 5f 4e 45 47 20 3d 20 30 78 38 30 CIMAL_NEG = 0x80
1070: 3b 0d 0a 09 09 7d 0d 0a 09 09 55 53 48 4f 52 54 ;....}....USHORT
1080: 20 73 69 67 6e 73 63 61 6c 65 3b 0d 0a 09 7d 0d signscale;...}.
1090: 0a 09 55 4c 4f 4e 47 20 48 69 33 32 3b 0d 0a 09 ..ULONG Hi32;...
10a0: 75 6e 69 6f 6e 20 7b 0d 0a 09 09 73 74 72 75 63 union {....struc
10b0: 74 20 7b 0d 0a 09 09 09 55 4c 4f 4e 47 20 4c 6f t {.....ULONG Lo
10c0: 33 32 3b 0d 0a 09 09 09 55 4c 4f 4e 47 20 4d 69 32;.....ULONG Mi
10d0: 64 33 32 3b 0d 0a 09 09 7d 0d 0a 09 09 55 4c 4f d32;....}....ULO
10e0: 4e 47 4c 4f 4e 47 20 4c 6f 36 34 3b 0d 0a 09 7d NGLONG Lo64;...}
10f0: 0d 0a 09 2f 2f 20 23 64 65 66 69 6e 65 20 44 45 ...// #define DE
1100: 43 49 4d 41 4c 5f 53 45 54 5a 45 52 4f 28 64 29 CIMAL_SETZERO(d)
1110: 20 7b 28 64 29 2e 4c 6f 36 34 3d 28 64 29 2e 48 {(d).Lo64=(d).H
1120: 69 33 32 3d 28 64 29 2e 73 69 67 6e 73 63 61 6c i32=(d).signscal
1130: 65 3d 30 3b 7d 0d 0a 09 76 6f 69 64 20 73 65 74 e=0;}...void set
1140: 5a 65 72 6f 28 29 20 7b 20 4c 6f 36 34 20 3d 20 Zero() { Lo64 =
1150: 30 3b 20 48 69 33 32 20 3d 20 30 3b 20 73 69 67 0; Hi32 = 0; sig
1160: 6e 73 63 61 6c 65 20 3d 20 30 3b 20 7d 0d 0a 7d nscale = 0; }..}
1170: 0d 0a ..