Hex Artifact Content

Not logged in

Artifact aa198bc3f64df113057c6124bb8d6fc9ecf48824:


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