1
|
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 }
|