root/trunk/win32/wtypes.d

Revision 289, 4.3 kB (checked in by sleets, 4 years ago)

add uuid.d

Line 
1 /***********************************************************************\
2 *                               wtypes.d                                *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.wtypes;
11
12 import win32.rpc, win32.rpcndr;
13 private import win32.windef;
14 private import win32.uuid; // for GUID_NULL
15
16 alias GUID_NULL IID_NULL, CLSID_NULL;
17
18 const ROTFLAGS_REGISTRATIONKEEPSALIVE = 0x01;
19 const ROTFLAGS_ALLOWANYCLIENT         = 0x02;
20
21 // also in winsock2.h
22 struct BLOB {
23     ULONG cbSize;
24     BYTE* pBlobData;
25 }
26 alias BLOB* PBLOB, LPBLOB;
27
28 enum DVASPECT {
29     DVASPECT_CONTENT   = 1,
30     DVASPECT_THUMBNAIL = 2,
31     DVASPECT_ICON      = 4,
32     DVASPECT_DOCPRINT  = 8
33 }
34
35 enum DVASPECT2 {
36     DVASPECT_OPAQUE      = 16,
37     DVASPECT_TRANSPARENT = 32
38 }
39
40 enum STATFLAG {
41     STATFLAG_DEFAULT = 0,
42     STATFLAG_NONAME  = 1
43 }
44
45 enum MEMCTX {
46     MEMCTX_LOCAL = 0,
47     MEMCTX_TASK,
48     MEMCTX_SHARED,
49     MEMCTX_MACSYSTEM,
50     MEMCTX_UNKNOWN = -1,
51     MEMCTX_SAME = -2
52 }
53
54 enum MSHCTX {
55     MSHCTX_LOCAL = 0,
56     MSHCTX_NOSHAREDMEM,
57     MSHCTX_DIFFERENTMACHINE,
58     MSHCTX_INPROC,
59     MSHCTX_CROSSCTX
60 }
61
62 enum CLSCTX {
63     CLSCTX_INPROC_SERVER   = 1,
64     CLSCTX_INPROC_HANDLER  = 2,
65     CLSCTX_LOCAL_SERVER    = 4,
66     CLSCTX_INPROC_SERVER16 = 8,
67     CLSCTX_REMOTE_SERVER   = 16
68 }
69
70 enum MSHLFLAGS {
71     MSHLFLAGS_NORMAL,
72     MSHLFLAGS_TABLESTRONG,
73     MSHLFLAGS_TABLEWEAK
74 }
75
76 struct FLAGGED_WORD_BLOB {
77     uint fFlags;
78     uint clSize;
79     ushort asData[1];
80 }
81
82 alias WCHAR OLECHAR;
83 alias LPWSTR LPOLESTR;
84 alias LPCWSTR LPCOLESTR;
85
86 alias ushort VARTYPE;
87 alias short VARIANT_BOOL;
88 alias VARIANT_BOOL _VARIANT_BOOL;
89 const VARIANT_BOOL VARIANT_TRUE = -1; // 0xffff;
90 const VARIANT_BOOL VARIANT_FALSE = 0;
91
92 alias OLECHAR* BSTR;
93 alias FLAGGED_WORD_BLOB* wireBSTR;
94 alias BSTR* LPBSTR;
95 //alias LONG SCODE; // also in winerror
96 alias HANDLE HCONTEXT, HMETAFILEPICT;
97
98 union CY {
99     struct {
100         uint Lo;
101         int Hi;
102     }
103     LONGLONG int64;
104 }
105
106 alias double DATE;
107 struct  BSTRBLOB {
108     ULONG cbSize;
109     PBYTE pData;
110 }
111 alias BSTRBLOB* LPBSTRBLOB;
112
113 // Used only in the PROPVARIANT structure
114 // According to the 2003 SDK, this should be in propidl.h, not here.
115 struct CLIPDATA {
116     ULONG cbSize;
117     int ulClipFmt;
118     PBYTE pClipData;
119 }
120
121 enum STGC {
122     STGC_DEFAULT,
123     STGC_OVERWRITE,
124     STGC_ONLYIFCURRENT,
125     STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
126 }
127
128 enum STGMOVE {
129     STGMOVE_MOVE,
130     STGMOVE_COPY,
131     STGMOVE_SHALLOWCOPY
132 }
133
134 enum VARENUM {
135     VT_EMPTY,
136     VT_NULL,
137     VT_I2,
138     VT_I4,
139     VT_R4,
140     VT_R8,
141     VT_CY,
142     VT_DATE,
143     VT_BSTR,
144     VT_DISPATCH,
145     VT_ERROR,
146     VT_BOOL,
147     VT_VARIANT,
148     VT_UNKNOWN,
149     VT_DECIMAL,
150     VT_I1 = 16,
151     VT_UI1,
152     VT_UI2,
153     VT_UI4,
154     VT_I8,
155     VT_UI8,
156     VT_INT,
157     VT_UINT,
158     VT_VOID,
159     VT_HRESULT,
160     VT_PTR,
161     VT_SAFEARRAY,
162     VT_CARRAY,
163     VT_USERDEFINED,
164     VT_LPSTR,
165     VT_LPWSTR,
166     VT_RECORD   = 36,
167     VT_INT_PTR  = 37,
168     VT_UINT_PTR = 38,
169     VT_FILETIME = 64,
170     VT_BLOB,
171     VT_STREAM,
172     VT_STORAGE,
173     VT_STREAMED_OBJECT,
174     VT_STORED_OBJECT,
175     VT_BLOB_OBJECT,
176     VT_CF,
177     VT_CLSID,
178     VT_BSTR_BLOB     = 0xfff,
179     VT_VECTOR        = 0x1000,
180     VT_ARRAY         = 0x2000,
181     VT_BYREF         = 0x4000,
182     VT_RESERVED      = 0x8000,
183     VT_ILLEGAL       = 0xffff,
184     VT_ILLEGALMASKED = 0xfff,
185     VT_TYPEMASK      = 0xfff
186 };
187
188 struct BYTE_SIZEDARR {
189     uint clSize;
190     byte* pData;
191 }
192
193 struct WORD_SIZEDARR {
194     uint clSize;
195     ushort* pData;
196 }
197
198 struct DWORD_SIZEDARR {
199 uint clSize;
200 uint* pData;
201 }
202
203 struct HYPER_SIZEDARR {
204     uint clSize;
205     hyper* pData;
206 }
207
208 alias double DOUBLE;
209
210
211 struct DECIMAL {
212     USHORT wReserved;
213     union {
214         struct {
215             ubyte scale; // valid values are 0 to 28
216             ubyte sign; // 0 for positive, DECIMAL_NEG for negatives.
217             const ubyte DECIMAL_NEG = 0x80;
218         }
219         USHORT signscale;
220     }
221     ULONG Hi32;
222     union {
223         struct {
224             ULONG Lo32;
225             ULONG Mid32;
226         }
227         ULONGLONG Lo64;
228     }
229     // #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;}
230     void setZero() { Lo64 = 0; Hi32 = 0; signscale = 0; }
231 }
Note: See TracBrowser for help on using the browser.