use crate::macros::*;
const_ordinary! { DISPATCH: u16;
=>
METHOD 0x1
PROPERTYGET 0x2
PROPERTYPUT 0x4
PROPERTYPUTREF 0x8
}
const_ordinary! { DISPID: i32;
=>
UNKNOWN -1
VALUE 0
PROPERTYPUT -3
NEWENUM -4
EVALUATE -5
CONSTRUCTOR -5
DESTRUCTOR -7
COLLECT -8
}
const_ordinary! { INVOKEKIND: u32;
=>
FUNC 1
PROPERTYGET 2
PROPERTYPUT 4
PROPERTYPUTREF 8
}
const_bitflag! { VT: u16;
=>
EMPTY 0
NULL 1
I2 2
I4 3
R4 4
R8 5
CY 6
DATE 7
BSTR 8
DISPATCH 9
ERROR 10
BOOL 11
VARIANT 12
UNKNOWN 13
DECIMAL 14
I1 16
UI1 17
UI2 18
UI4 19
I8 20
UI8 21
INT 22
UINT 23
VOID 24
HRESULT 25
PTR 26
SAFEARRAY 27
CARRAY 28
USERDEFINED 29
LPSTR 30
LPWSTR 31
RECORD 36
INT_PTR 37
UINT_PTR 38
FILETIME 64
BLOB 65
STREAM 66
STORAGE 67
STREAMED_OBJECT 68
STORED_OBJECT 69
BLOB_OBJECT 70
CF 71
CLSID 72
VERSIONED_STREAM 73
BSTR_BLOB 0xfff
VECTOR 0x1000
ARRAY 0x2000
BYREF 0x4000
RESERVED 0x8000
ILLEGAL 0xffff
ILLEGALMASKED 0xfff
TYPEMASK 0xfff
}