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 0a 2a 20 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 77 74 79 70 65 73 wtypes
0070: 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .d
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0090: 20 20 2a 0a 2a 20 20 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 2a 0a 2a 20 *.*
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50 Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20 I header module
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 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: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 *.*
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66 Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77 rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20 s headers
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20 *.*
01c0: 20 20 20 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 2a 0a 2a 20 20 20 20 20 20 20 20 20 *.*
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 6c Pl
0220: 61 63 65 64 20 69 6e 74 6f 20 70 75 62 6c 69 63 aced into public
0230: 20 64 6f 6d 61 69 6e 20 20 20 20 20 20 20 20 20 domain
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a *.
0250: 5c 2a 2a 2a 2a 2a 2a 2a 2a 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 2f 0a 6d 6f 64 75 6c 65 ********/.module
02a0: 20 77 69 6e 33 32 2e 77 74 79 70 65 73 3b 0a 0a win32.wtypes;..
02b0: 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 72 70 63 import win32.rpc
02c0: 2c 20 77 69 6e 33 32 2e 72 70 63 6e 64 72 3b 0a , win32.rpcndr;.
02d0: 70 72 69 76 61 74 65 20 69 6d 70 6f 72 74 20 77 private import w
02e0: 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0a 70 72 69 in32.windef;.pri
02f0: 76 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 vate import win3
0300: 32 2e 75 75 69 64 3b 20 2f 2f 20 66 6f 72 20 47 2.uuid; // for G
0310: 55 49 44 5f 4e 55 4c 4c 0a 0a 61 6c 69 61 73 20 UID_NULL..alias
0320: 47 55 49 44 5f 4e 55 4c 4c 20 49 49 44 5f 4e 55 GUID_NULL IID_NU
0330: 4c 4c 2c 20 43 4c 53 49 44 5f 4e 55 4c 4c 3b 0a LL, CLSID_NULL;.
0340: 0a 63 6f 6e 73 74 20 52 4f 54 46 4c 41 47 53 5f .const ROTFLAGS_
0350: 52 45 47 49 53 54 52 41 54 49 4f 4e 4b 45 45 50 REGISTRATIONKEEP
0360: 53 41 4c 49 56 45 20 3d 20 30 78 30 31 3b 0a 63 SALIVE = 0x01;.c
0370: 6f 6e 73 74 20 52 4f 54 46 4c 41 47 53 5f 41 4c onst ROTFLAGS_AL
0380: 4c 4f 57 41 4e 59 43 4c 49 45 4e 54 20 20 20 20 LOWANYCLIENT
0390: 20 20 20 20 20 3d 20 30 78 30 32 3b 0a 0a 2f 2f = 0x02;..//
03a0: 20 61 6c 73 6f 20 69 6e 20 77 69 6e 73 6f 63 6b also in winsock
03b0: 32 2e 68 0a 73 74 72 75 63 74 20 42 4c 4f 42 20 2.h.struct BLOB
03c0: 7b 0a 09 55 4c 4f 4e 47 20 63 62 53 69 7a 65 3b {..ULONG cbSize;
03d0: 0a 09 42 59 54 45 2a 20 70 42 6c 6f 62 44 61 74 ..BYTE* pBlobDat
03e0: 61 3b 0a 7d 0a 61 6c 69 61 73 20 42 4c 4f 42 2a a;.}.alias BLOB*
03f0: 20 50 42 4c 4f 42 2c 20 4c 50 42 4c 4f 42 3b 0a PBLOB, LPBLOB;.
0400: 0a 65 6e 75 6d 20 44 56 41 53 50 45 43 54 20 7b .enum DVASPECT {
0410: 0a 09 44 56 41 53 50 45 43 54 5f 43 4f 4e 54 45 ..DVASPECT_CONTE
0420: 4e 54 20 20 20 3d 20 31 2c 0a 09 44 56 41 53 50 NT = 1,..DVASP
0430: 45 43 54 5f 54 48 55 4d 42 4e 41 49 4c 20 3d 20 ECT_THUMBNAIL =
0440: 32 2c 0a 09 44 56 41 53 50 45 43 54 5f 49 43 4f 2,..DVASPECT_ICO
0450: 4e 20 20 20 20 20 20 3d 20 34 2c 0a 09 44 56 41 N = 4,..DVA
0460: 53 50 45 43 54 5f 44 4f 43 50 52 49 4e 54 20 20 SPECT_DOCPRINT
0470: 3d 20 38 0a 7d 0a 0a 65 6e 75 6d 20 44 56 41 53 = 8.}..enum DVAS
0480: 50 45 43 54 32 20 7b 0a 09 44 56 41 53 50 45 43 PECT2 {..DVASPEC
0490: 54 5f 4f 50 41 51 55 45 20 20 20 20 20 20 3d 20 T_OPAQUE =
04a0: 31 36 2c 0a 09 44 56 41 53 50 45 43 54 5f 54 52 16,..DVASPECT_TR
04b0: 41 4e 53 50 41 52 45 4e 54 20 3d 20 33 32 0a 7d ANSPARENT = 32.}
04c0: 0a 0a 65 6e 75 6d 20 53 54 41 54 46 4c 41 47 20 ..enum STATFLAG
04d0: 7b 0a 09 53 54 41 54 46 4c 41 47 5f 44 45 46 41 {..STATFLAG_DEFA
04e0: 55 4c 54 20 3d 20 30 2c 0a 09 53 54 41 54 46 4c ULT = 0,..STATFL
04f0: 41 47 5f 4e 4f 4e 41 4d 45 20 20 3d 20 31 0a 7d AG_NONAME = 1.}
0500: 0a 0a 65 6e 75 6d 20 4d 45 4d 43 54 58 20 7b 0a ..enum MEMCTX {.
0510: 09 4d 45 4d 43 54 58 5f 4c 4f 43 41 4c 20 3d 20 .MEMCTX_LOCAL =
0520: 30 2c 0a 09 4d 45 4d 43 54 58 5f 54 41 53 4b 2c 0,..MEMCTX_TASK,
0530: 0a 09 4d 45 4d 43 54 58 5f 53 48 41 52 45 44 2c ..MEMCTX_SHARED,
0540: 0a 09 4d 45 4d 43 54 58 5f 4d 41 43 53 59 53 54 ..MEMCTX_MACSYST
0550: 45 4d 2c 0a 09 4d 45 4d 43 54 58 5f 55 4e 4b 4e EM,..MEMCTX_UNKN
0560: 4f 57 4e 20 3d 20 2d 31 2c 0a 09 4d 45 4d 43 54 OWN = -1,..MEMCT
0570: 58 5f 53 41 4d 45 20 3d 20 2d 32 0a 7d 0a 0a 65 X_SAME = -2.}..e
0580: 6e 75 6d 20 4d 53 48 43 54 58 20 7b 0a 09 4d 53 num MSHCTX {..MS
0590: 48 43 54 58 5f 4c 4f 43 41 4c 20 3d 20 30 2c 0a HCTX_LOCAL = 0,.
05a0: 09 4d 53 48 43 54 58 5f 4e 4f 53 48 41 52 45 44 .MSHCTX_NOSHARED
05b0: 4d 45 4d 2c 0a 09 4d 53 48 43 54 58 5f 44 49 46 MEM,..MSHCTX_DIF
05c0: 46 45 52 45 4e 54 4d 41 43 48 49 4e 45 2c 0a 09 FERENTMACHINE,..
05d0: 4d 53 48 43 54 58 5f 49 4e 50 52 4f 43 2c 0a 09 MSHCTX_INPROC,..
05e0: 4d 53 48 43 54 58 5f 43 52 4f 53 53 43 54 58 0a MSHCTX_CROSSCTX.
05f0: 7d 0a 0a 65 6e 75 6d 20 43 4c 53 43 54 58 20 7b }..enum CLSCTX {
0600: 0a 09 43 4c 53 43 54 58 5f 49 4e 50 52 4f 43 5f ..CLSCTX_INPROC_
0610: 53 45 52 56 45 52 20 20 20 3d 20 31 2c 0a 09 43 SERVER = 1,..C
0620: 4c 53 43 54 58 5f 49 4e 50 52 4f 43 5f 48 41 4e LSCTX_INPROC_HAN
0630: 44 4c 45 52 20 20 3d 20 32 2c 0a 09 43 4c 53 43 DLER = 2,..CLSC
0640: 54 58 5f 4c 4f 43 41 4c 5f 53 45 52 56 45 52 20 TX_LOCAL_SERVER
0650: 20 20 20 3d 20 34 2c 0a 09 43 4c 53 43 54 58 5f = 4,..CLSCTX_
0660: 49 4e 50 52 4f 43 5f 53 45 52 56 45 52 31 36 20 INPROC_SERVER16
0670: 3d 20 38 2c 0a 09 43 4c 53 43 54 58 5f 52 45 4d = 8,..CLSCTX_REM
0680: 4f 54 45 5f 53 45 52 56 45 52 20 20 20 3d 20 31 OTE_SERVER = 1
0690: 36 0a 7d 0a 0a 65 6e 75 6d 20 4d 53 48 4c 46 4c 6.}..enum MSHLFL
06a0: 41 47 53 20 7b 0a 09 4d 53 48 4c 46 4c 41 47 53 AGS {..MSHLFLAGS
06b0: 5f 4e 4f 52 4d 41 4c 2c 0a 09 4d 53 48 4c 46 4c _NORMAL,..MSHLFL
06c0: 41 47 53 5f 54 41 42 4c 45 53 54 52 4f 4e 47 2c AGS_TABLESTRONG,
06d0: 0a 09 4d 53 48 4c 46 4c 41 47 53 5f 54 41 42 4c ..MSHLFLAGS_TABL
06e0: 45 57 45 41 4b 0a 7d 0a 0a 73 74 72 75 63 74 20 EWEAK.}..struct
06f0: 46 4c 41 47 47 45 44 5f 57 4f 52 44 5f 42 4c 4f FLAGGED_WORD_BLO
0700: 42 20 7b 0a 09 75 69 6e 74 20 66 46 6c 61 67 73 B {..uint fFlags
0710: 3b 0a 09 75 69 6e 74 20 63 6c 53 69 7a 65 3b 0a ;..uint clSize;.
0720: 09 75 73 68 6f 72 74 20 61 73 44 61 74 61 5b 31 .ushort asData[1
0730: 5d 3b 0a 7d 0a 0a 61 6c 69 61 73 20 57 43 48 41 ];.}..alias WCHA
0740: 52 20 4f 4c 45 43 48 41 52 3b 0a 61 6c 69 61 73 R OLECHAR;.alias
0750: 20 4c 50 57 53 54 52 20 4c 50 4f 4c 45 53 54 52 LPWSTR LPOLESTR
0760: 3b 0a 61 6c 69 61 73 20 4c 50 43 57 53 54 52 20 ;.alias LPCWSTR
0770: 4c 50 43 4f 4c 45 53 54 52 3b 0a 0a 61 6c 69 61 LPCOLESTR;..alia
0780: 73 20 75 73 68 6f 72 74 20 56 41 52 54 59 50 45 s ushort VARTYPE
0790: 3b 0a 61 6c 69 61 73 20 73 68 6f 72 74 20 56 41 ;.alias short VA
07a0: 52 49 41 4e 54 5f 42 4f 4f 4c 3b 0a 61 6c 69 61 RIANT_BOOL;.alia
07b0: 73 20 56 41 52 49 41 4e 54 5f 42 4f 4f 4c 20 5f s VARIANT_BOOL _
07c0: 56 41 52 49 41 4e 54 5f 42 4f 4f 4c 3b 0a 63 6f VARIANT_BOOL;.co
07d0: 6e 73 74 20 56 41 52 49 41 4e 54 5f 42 4f 4f 4c nst VARIANT_BOOL
07e0: 20 56 41 52 49 41 4e 54 5f 54 52 55 45 20 3d 20 VARIANT_TRUE =
07f0: 2d 31 3b 20 2f 2f 20 30 78 66 66 66 66 3b 0a 63 -1; // 0xffff;.c
0800: 6f 6e 73 74 20 56 41 52 49 41 4e 54 5f 42 4f 4f onst VARIANT_BOO
0810: 4c 20 56 41 52 49 41 4e 54 5f 46 41 4c 53 45 20 L VARIANT_FALSE
0820: 3d 20 30 3b 0a 0a 61 6c 69 61 73 20 4f 4c 45 43 = 0;..alias OLEC
0830: 48 41 52 2a 20 42 53 54 52 3b 0a 61 6c 69 61 73 HAR* BSTR;.alias
0840: 20 46 4c 41 47 47 45 44 5f 57 4f 52 44 5f 42 4c FLAGGED_WORD_BL
0850: 4f 42 2a 20 77 69 72 65 42 53 54 52 3b 0a 61 6c OB* wireBSTR;.al
0860: 69 61 73 20 42 53 54 52 2a 20 4c 50 42 53 54 52 ias BSTR* LPBSTR
0870: 3b 0a 2f 2f 61 6c 69 61 73 20 4c 4f 4e 47 20 53 ;.//alias LONG S
0880: 43 4f 44 45 3b 20 2f 2f 20 61 6c 73 6f 20 69 6e CODE; // also in
0890: 20 77 69 6e 65 72 72 6f 72 0a 61 6c 69 61 73 20 winerror.alias
08a0: 48 41 4e 44 4c 45 20 48 43 4f 4e 54 45 58 54 2c HANDLE HCONTEXT,
08b0: 20 48 4d 45 54 41 46 49 4c 45 50 49 43 54 3b 0a HMETAFILEPICT;.
08c0: 0a 75 6e 69 6f 6e 20 43 59 20 7b 0a 09 73 74 72 .union CY {..str
08d0: 75 63 74 20 7b 0a 09 09 75 69 6e 74 20 4c 6f 3b uct {...uint Lo;
08e0: 0a 09 09 69 6e 74 20 48 69 3b 0a 09 7d 0a 09 4c ...int Hi;..}..L
08f0: 4f 4e 47 4c 4f 4e 47 20 69 6e 74 36 34 3b 0a 7d ONGLONG int64;.}
0900: 0a 0a 61 6c 69 61 73 20 64 6f 75 62 6c 65 20 44 ..alias double D
0910: 41 54 45 3b 0a 73 74 72 75 63 74 20 20 42 53 54 ATE;.struct BST
0920: 52 42 4c 4f 42 20 7b 0a 09 55 4c 4f 4e 47 20 63 RBLOB {..ULONG c
0930: 62 53 69 7a 65 3b 0a 09 50 42 59 54 45 20 70 44 bSize;..PBYTE pD
0940: 61 74 61 3b 0a 7d 0a 61 6c 69 61 73 20 42 53 54 ata;.}.alias BST
0950: 52 42 4c 4f 42 2a 20 4c 50 42 53 54 52 42 4c 4f RBLOB* LPBSTRBLO
0960: 42 3b 0a 0a 2f 2f 20 55 73 65 64 20 6f 6e 6c 79 B;..// Used only
0970: 20 69 6e 20 74 68 65 20 50 52 4f 50 56 41 52 49 in the PROPVARI
0980: 41 4e 54 20 73 74 72 75 63 74 75 72 65 0a 2f 2f ANT structure.//
0990: 20 41 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 According to th
09a0: 65 20 32 30 30 33 20 53 44 4b 2c 20 74 68 69 73 e 2003 SDK, this
09b0: 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 20 70 72 should be in pr
09c0: 6f 70 69 64 6c 2e 68 2c 20 6e 6f 74 20 68 65 72 opidl.h, not her
09d0: 65 2e 0a 73 74 72 75 63 74 20 43 4c 49 50 44 41 e..struct CLIPDA
09e0: 54 41 20 7b 0a 09 55 4c 4f 4e 47 20 63 62 53 69 TA {..ULONG cbSi
09f0: 7a 65 3b 0a 09 69 6e 74 20 75 6c 43 6c 69 70 46 ze;..int ulClipF
0a00: 6d 74 3b 0a 09 50 42 59 54 45 20 70 43 6c 69 70 mt;..PBYTE pClip
0a10: 44 61 74 61 3b 0a 7d 0a 0a 65 6e 75 6d 20 53 54 Data;.}..enum ST
0a20: 47 43 20 7b 0a 09 53 54 47 43 5f 44 45 46 41 55 GC {..STGC_DEFAU
0a30: 4c 54 2c 0a 09 53 54 47 43 5f 4f 56 45 52 57 52 LT,..STGC_OVERWR
0a40: 49 54 45 2c 0a 09 53 54 47 43 5f 4f 4e 4c 59 49 ITE,..STGC_ONLYI
0a50: 46 43 55 52 52 45 4e 54 2c 0a 09 53 54 47 43 5f FCURRENT,..STGC_
0a60: 44 41 4e 47 45 52 4f 55 53 4c 59 43 4f 4d 4d 49 DANGEROUSLYCOMMI
0a70: 54 4d 45 52 45 4c 59 54 4f 44 49 53 4b 43 41 43 TMERELYTODISKCAC
0a80: 48 45 0a 7d 0a 0a 65 6e 75 6d 20 53 54 47 4d 4f HE.}..enum STGMO
0a90: 56 45 20 7b 0a 09 53 54 47 4d 4f 56 45 5f 4d 4f VE {..STGMOVE_MO
0aa0: 56 45 2c 0a 09 53 54 47 4d 4f 56 45 5f 43 4f 50 VE,..STGMOVE_COP
0ab0: 59 2c 0a 09 53 54 47 4d 4f 56 45 5f 53 48 41 4c Y,..STGMOVE_SHAL
0ac0: 4c 4f 57 43 4f 50 59 0a 7d 0a 0a 65 6e 75 6d 20 LOWCOPY.}..enum
0ad0: 56 41 52 45 4e 55 4d 20 7b 0a 09 56 54 5f 45 4d VARENUM {..VT_EM
0ae0: 50 54 59 2c 0a 09 56 54 5f 4e 55 4c 4c 2c 0a 09 PTY,..VT_NULL,..
0af0: 56 54 5f 49 32 2c 0a 09 56 54 5f 49 34 2c 0a 09 VT_I2,..VT_I4,..
0b00: 56 54 5f 52 34 2c 0a 09 56 54 5f 52 38 2c 0a 09 VT_R4,..VT_R8,..
0b10: 56 54 5f 43 59 2c 0a 09 56 54 5f 44 41 54 45 2c VT_CY,..VT_DATE,
0b20: 0a 09 56 54 5f 42 53 54 52 2c 0a 09 56 54 5f 44 ..VT_BSTR,..VT_D
0b30: 49 53 50 41 54 43 48 2c 0a 09 56 54 5f 45 52 52 ISPATCH,..VT_ERR
0b40: 4f 52 2c 0a 09 56 54 5f 42 4f 4f 4c 2c 0a 09 56 OR,..VT_BOOL,..V
0b50: 54 5f 56 41 52 49 41 4e 54 2c 0a 09 56 54 5f 55 T_VARIANT,..VT_U
0b60: 4e 4b 4e 4f 57 4e 2c 0a 09 56 54 5f 44 45 43 49 NKNOWN,..VT_DECI
0b70: 4d 41 4c 2c 0a 09 56 54 5f 49 31 20 3d 20 31 36 MAL,..VT_I1 = 16
0b80: 2c 0a 09 56 54 5f 55 49 31 2c 0a 09 56 54 5f 55 ,..VT_UI1,..VT_U
0b90: 49 32 2c 0a 09 56 54 5f 55 49 34 2c 0a 09 56 54 I2,..VT_UI4,..VT
0ba0: 5f 49 38 2c 0a 09 56 54 5f 55 49 38 2c 0a 09 56 _I8,..VT_UI8,..V
0bb0: 54 5f 49 4e 54 2c 0a 09 56 54 5f 55 49 4e 54 2c T_INT,..VT_UINT,
0bc0: 0a 09 56 54 5f 56 4f 49 44 2c 0a 09 56 54 5f 48 ..VT_VOID,..VT_H
0bd0: 52 45 53 55 4c 54 2c 0a 09 56 54 5f 50 54 52 2c RESULT,..VT_PTR,
0be0: 0a 09 56 54 5f 53 41 46 45 41 52 52 41 59 2c 0a ..VT_SAFEARRAY,.
0bf0: 09 56 54 5f 43 41 52 52 41 59 2c 0a 09 56 54 5f .VT_CARRAY,..VT_
0c00: 55 53 45 52 44 45 46 49 4e 45 44 2c 0a 09 56 54 USERDEFINED,..VT
0c10: 5f 4c 50 53 54 52 2c 0a 09 56 54 5f 4c 50 57 53 _LPSTR,..VT_LPWS
0c20: 54 52 2c 0a 09 56 54 5f 52 45 43 4f 52 44 20 20 TR,..VT_RECORD
0c30: 20 3d 20 33 36 2c 0a 09 56 54 5f 49 4e 54 5f 50 = 36,..VT_INT_P
0c40: 54 52 20 20 3d 20 33 37 2c 0a 09 56 54 5f 55 49 TR = 37,..VT_UI
0c50: 4e 54 5f 50 54 52 20 3d 20 33 38 2c 0a 09 56 54 NT_PTR = 38,..VT
0c60: 5f 46 49 4c 45 54 49 4d 45 20 3d 20 36 34 2c 0a _FILETIME = 64,.
0c70: 09 56 54 5f 42 4c 4f 42 2c 0a 09 56 54 5f 53 54 .VT_BLOB,..VT_ST
0c80: 52 45 41 4d 2c 0a 09 56 54 5f 53 54 4f 52 41 47 REAM,..VT_STORAG
0c90: 45 2c 0a 09 56 54 5f 53 54 52 45 41 4d 45 44 5f E,..VT_STREAMED_
0ca0: 4f 42 4a 45 43 54 2c 0a 09 56 54 5f 53 54 4f 52 OBJECT,..VT_STOR
0cb0: 45 44 5f 4f 42 4a 45 43 54 2c 0a 09 56 54 5f 42 ED_OBJECT,..VT_B
0cc0: 4c 4f 42 5f 4f 42 4a 45 43 54 2c 0a 09 56 54 5f LOB_OBJECT,..VT_
0cd0: 43 46 2c 0a 09 56 54 5f 43 4c 53 49 44 2c 0a 09 CF,..VT_CLSID,..
0ce0: 56 54 5f 42 53 54 52 5f 42 4c 4f 42 20 20 20 20 VT_BSTR_BLOB
0cf0: 20 3d 20 30 78 66 66 66 2c 0a 09 56 54 5f 56 45 = 0xfff,..VT_VE
0d00: 43 54 4f 52 20 20 20 20 20 20 20 20 3d 20 30 78 CTOR = 0x
0d10: 31 30 30 30 2c 0a 09 56 54 5f 41 52 52 41 59 20 1000,..VT_ARRAY
0d20: 20 20 20 20 20 20 20 20 3d 20 30 78 32 30 30 30 = 0x2000
0d30: 2c 0a 09 56 54 5f 42 59 52 45 46 20 20 20 20 20 ,..VT_BYREF
0d40: 20 20 20 20 3d 20 30 78 34 30 30 30 2c 0a 09 56 = 0x4000,..V
0d50: 54 5f 52 45 53 45 52 56 45 44 20 20 20 20 20 20 T_RESERVED
0d60: 3d 20 30 78 38 30 30 30 2c 0a 09 56 54 5f 49 4c = 0x8000,..VT_IL
0d70: 4c 45 47 41 4c 20 20 20 20 20 20 20 3d 20 30 78 LEGAL = 0x
0d80: 66 66 66 66 2c 0a 09 56 54 5f 49 4c 4c 45 47 41 ffff,..VT_ILLEGA
0d90: 4c 4d 41 53 4b 45 44 20 3d 20 30 78 66 66 66 2c LMASKED = 0xfff,
0da0: 0a 09 56 54 5f 54 59 50 45 4d 41 53 4b 20 20 20 ..VT_TYPEMASK
0db0: 20 20 20 3d 20 30 78 66 66 66 0a 7d 3b 0a 0a 73 = 0xfff.};..s
0dc0: 74 72 75 63 74 20 42 59 54 45 5f 53 49 5a 45 44 truct BYTE_SIZED
0dd0: 41 52 52 20 7b 0a 09 75 69 6e 74 20 63 6c 53 69 ARR {..uint clSi
0de0: 7a 65 3b 0a 09 62 79 74 65 2a 20 70 44 61 74 61 ze;..byte* pData
0df0: 3b 0a 7d 0a 0a 73 74 72 75 63 74 20 57 4f 52 44 ;.}..struct WORD
0e00: 5f 53 49 5a 45 44 41 52 52 20 7b 0a 09 75 69 6e _SIZEDARR {..uin
0e10: 74 20 63 6c 53 69 7a 65 3b 0a 09 75 73 68 6f 72 t clSize;..ushor
0e20: 74 2a 20 70 44 61 74 61 3b 0a 7d 0a 0a 73 74 72 t* pData;.}..str
0e30: 75 63 74 20 44 57 4f 52 44 5f 53 49 5a 45 44 41 uct DWORD_SIZEDA
0e40: 52 52 20 7b 0a 75 69 6e 74 20 63 6c 53 69 7a 65 RR {.uint clSize
0e50: 3b 0a 75 69 6e 74 2a 20 70 44 61 74 61 3b 0a 7d ;.uint* pData;.}
0e60: 0a 0a 73 74 72 75 63 74 20 48 59 50 45 52 5f 53 ..struct HYPER_S
0e70: 49 5a 45 44 41 52 52 20 7b 0a 09 75 69 6e 74 20 IZEDARR {..uint
0e80: 63 6c 53 69 7a 65 3b 0a 09 68 79 70 65 72 2a 20 clSize;..hyper*
0e90: 70 44 61 74 61 3b 0a 7d 0a 0a 61 6c 69 61 73 20 pData;.}..alias
0ea0: 64 6f 75 62 6c 65 20 44 4f 55 42 4c 45 3b 0a 0a double DOUBLE;..
0eb0: 0a 73 74 72 75 63 74 20 44 45 43 49 4d 41 4c 20 .struct DECIMAL
0ec0: 7b 0a 09 55 53 48 4f 52 54 20 77 52 65 73 65 72 {..USHORT wReser
0ed0: 76 65 64 3b 0a 09 75 6e 69 6f 6e 20 7b 0a 09 09 ved;..union {...
0ee0: 73 74 72 75 63 74 20 7b 0a 09 09 09 75 62 79 74 struct {....ubyt
0ef0: 65 20 73 63 61 6c 65 3b 20 2f 2f 20 76 61 6c 69 e scale; // vali
0f00: 64 20 76 61 6c 75 65 73 20 61 72 65 20 30 20 74 d values are 0 t
0f10: 6f 20 32 38 0a 09 09 09 75 62 79 74 65 20 73 69 o 28....ubyte si
0f20: 67 6e 3b 20 2f 2f 20 30 20 66 6f 72 20 70 6f 73 gn; // 0 for pos
0f30: 69 74 69 76 65 2c 20 44 45 43 49 4d 41 4c 5f 4e itive, DECIMAL_N
0f40: 45 47 20 66 6f 72 20 6e 65 67 61 74 69 76 65 73 EG for negatives
0f50: 2e 0a 09 09 09 75 62 79 74 65 20 44 45 43 49 4d .....ubyte DECIM
0f60: 41 4c 5f 4e 45 47 20 3d 20 30 78 38 30 3b 0a 09 AL_NEG = 0x80;..
0f70: 09 7d 0a 09 09 55 53 48 4f 52 54 20 73 69 67 6e .}...USHORT sign
0f80: 73 63 61 6c 65 3b 0a 09 7d 0a 09 55 4c 4f 4e 47 scale;..}..ULONG
0f90: 20 48 69 33 32 3b 0a 09 75 6e 69 6f 6e 20 7b 0a Hi32;..union {.
0fa0: 09 09 73 74 72 75 63 74 20 7b 0a 09 09 09 55 4c ..struct {....UL
0fb0: 4f 4e 47 20 4c 6f 33 32 3b 0a 09 09 09 55 4c 4f ONG Lo32;....ULO
0fc0: 4e 47 20 4d 69 64 33 32 3b 0a 09 09 7d 0a 09 09 NG Mid32;...}...
0fd0: 55 4c 4f 4e 47 4c 4f 4e 47 20 4c 6f 36 34 3b 0a ULONGLONG Lo64;.
0fe0: 09 7d 0a 09 2f 2f 20 23 64 65 66 69 6e 65 20 44 .}..// #define D
0ff0: 45 43 49 4d 41 4c 5f 53 45 54 5a 45 52 4f 28 64 ECIMAL_SETZERO(d
1000: 29 20 7b 28 64 29 2e 4c 6f 36 34 3d 28 64 29 2e ) {(d).Lo64=(d).
1010: 48 69 33 32 3d 28 64 29 2e 73 69 67 6e 73 63 61 Hi32=(d).signsca
1020: 6c 65 3d 30 3b 7d 0a 09 76 6f 69 64 20 73 65 74 le=0;}..void set
1030: 5a 65 72 6f 28 29 20 7b 20 4c 6f 36 34 20 3d 20 Zero() { Lo64 =
1040: 30 3b 20 48 69 33 32 20 3d 20 30 3b 20 73 69 67 0; Hi32 = 0; sig
1050: 6e 73 63 61 6c 65 20 3d 20 30 3b 20 7d 0a 7d 0a nscale = 0; }.}.