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 ..