1 // Copyright © 2015, Connor Hilarides
2 // Licensed under the MIT License <LICENSE.md>
3 //! Mappings for the contents of wstypes.h
4 ENUM!{enum VARENUM {
5     VT_EMPTY = 0,
6     VT_NULL = 1,
7     VT_I2 = 2,
8     VT_I4 = 3,
9     VT_R4 = 4,
10     VT_R8 = 5,
11     VT_CY = 6,
12     VT_DATE = 7,
13     VT_BSTR = 8,
14     VT_DISPATCH = 9,
15     VT_ERROR = 10,
16     VT_BOOL = 11,
17     VT_VARIANT = 12,
18     VT_UNKNOWN = 13,
19     VT_DECIMAL = 14,
20     VT_I1 = 16,
21     VT_UI1 = 17,
22     VT_UI2 = 18,
23     VT_UI4 = 19,
24     VT_I8 = 20,
25     VT_UI8 = 21,
26     VT_INT = 22,
27     VT_UINT = 23,
28     VT_VOID = 24,
29     VT_HRESULT = 25,
30     VT_PTR = 26,
31     VT_SAFEARRAY = 27,
32     VT_CARRAY = 28,
33     VT_USERDEFINED = 29,
34     VT_LPSTR = 30,
35     VT_LPWSTR = 31,
36     VT_RECORD = 36,
37     VT_INT_PTR = 37,
38     VT_UINT_PTR = 38,
39     VT_FILETIME = 64,
40     VT_BLOB = 65,
41     VT_STREAM = 66,
42     VT_STORAGE = 67,
43     VT_STREAMED_OBJECT = 68,
44     VT_STORED_OBJECT = 69,
45     VT_BLOB_OBJECT = 70,
46     VT_CF = 71,
47     VT_CLSID = 72,
48     VT_VERSIONED_STREAM = 73,
49     VT_BSTR_BLOB = 0xfff,
50     VT_VECTOR = 0x1000,
51     VT_ARRAY = 0x2000,
52     VT_BYREF = 0x4000,
53     VT_RESERVED = 0x8000,
54     VT_ILLEGAL = 0xffff,
55 }}
56 pub const VT_ILLEGALMASKED: VARENUM = VT_BSTR_BLOB;
57 pub const VT_TYPEMASK: VARENUM = VT_BSTR_BLOB;
58 pub type DATE = ::c_double;
59 STRUCT!{struct CY {
60     int64: ::LONGLONG,
61 }}
62 STRUCT!{struct DECIMAL {
63     wReserved: ::USHORT,
64     scale: ::BYTE,
65     sign: ::BYTE,
66     Hi32: ::ULONG,
67     Lo64: ::ULONGLONG,
68 }}
69 pub const DECIMAL_NEG: ::BYTE = 0x80;
70 pub type LPDECIMAL = *mut DECIMAL;
71 pub type VARTYPE = ::c_ushort;
72 pub type wireBSTR = *mut ::FLAGGED_WORD_BLOB;
73 pub type BSTR = *mut ::OLECHAR;
74 pub type LPBSTR = *mut BSTR;
75 pub type VARIANT_BOOL = ::c_short;
76