Hex Artifact Content

Not logged in

Artifact 9514097d3d6522bac58a457c86ba6558d48b1143:


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