directx header from mingw, writen by our Filip Navara
[reactos.git] / reactos / w32api / include / wtypes.h
1 #include <rpc.h>
2 #include <rpcndr.h>
3
4 #ifndef _WTYPES_H
5 #define _WTYPES_H
6 #if __GNUC__ >=3
7 #pragma GCC system_header
8 #endif
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14 #define IID_NULL GUID_NULL
15 #define CLSID_NULL GUID_NULL
16 #define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt))
17 #define DECIMAL_NEG ((BYTE)0x80)
18 #define DECIMAL_SETZERO(d) {DEC_LO64(&d)=DEC_HI32(&d)=DEC_SIGNSCALE(&d)=0;}
19 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x01
20 #define ROTFLAGS_ALLOWANYCLIENT 0x02
21
22 #ifndef __BLOB_T_DEFINED /* also in winsock2.h */
23 #define __BLOB_T_DEFINED
24 typedef struct _BLOB {
25 ULONG cbSize;
26 BYTE *pBlobData;
27 } BLOB,*PBLOB,*LPBLOB;
28 #endif
29 typedef enum tagDVASPECT {
30 DVASPECT_CONTENT=1,
31 DVASPECT_THUMBNAIL=2,
32 DVASPECT_ICON=4,
33 DVASPECT_DOCPRINT=8
34 } DVASPECT;
35 typedef enum tagDVASPECT2 {
36 DVASPECT_OPAQUE=16,
37 DVASPECT_TRANSPARENT=32
38 } DVASPECT2;
39 typedef enum tagSTATFLAG {
40 STATFLAG_DEFAULT=0,
41 STATFLAG_NONAME=1
42 } STATFLAG;
43 typedef enum tagMEMCTX {
44 MEMCTX_LOCAL=0,
45 MEMCTX_TASK,
46 MEMCTX_SHARED,
47 MEMCTX_MACSYSTEM,
48 MEMCTX_UNKNOWN=-1,
49 MEMCTX_SAME=-2
50 } MEMCTX;
51 typedef enum tagMSHCTX {
52 MSHCTX_LOCAL=0,
53 MSHCTX_NOSHAREDMEM,
54 MSHCTX_DIFFERENTMACHINE,
55 MSHCTX_INPROC,
56 MSHCTX_CROSSCTX
57 } MSHCTX;
58 typedef enum tagCLSCTX {
59 CLSCTX_INPROC_SERVER=1,CLSCTX_INPROC_HANDLER=2,CLSCTX_LOCAL_SERVER=4,
60 CLSCTX_INPROC_SERVER16=8,CLSCTX_REMOTE_SERVER=16
61 } CLSCTX;
62 typedef enum tagMSHLFLAGS {
63 MSHLFLAGS_NORMAL,MSHLFLAGS_TABLESTRONG,MSHLFLAGS_TABLEWEAK,MSHLFLAGS_NOPING
64 } MSHLFLAGS;
65 typedef struct _FLAGGED_WORD_BLOB {
66 unsigned long fFlags;
67 unsigned long clSize;
68 unsigned short asData[1];
69 }FLAGGED_WORD_BLOB;
70
71 #ifndef OLE2ANSI
72 typedef WCHAR OLECHAR;
73 typedef LPWSTR LPOLESTR;
74 typedef LPCWSTR LPCOLESTR;
75 #define OLESTR(s) L##s
76 #else
77 typedef char OLECHAR;
78 typedef LPSTR LPOLESTR;
79 typedef LPCSTR LPCOLESTR;
80 #define OLESTR(s) s
81 #endif
82 typedef unsigned short VARTYPE;
83 typedef short VARIANT_BOOL;
84 typedef VARIANT_BOOL _VARIANT_BOOL;
85 #define VARIANT_TRUE ((VARIANT_BOOL)0xffff)
86 #define VARIANT_FALSE ((VARIANT_BOOL)0)
87 typedef OLECHAR *BSTR;
88 typedef FLAGGED_WORD_BLOB *wireBSTR;
89 typedef BSTR *LPBSTR;
90 typedef LONG SCODE;
91 typedef void *HCONTEXT;
92 typedef union tagCY {
93 _ANONYMOUS_STRUCT struct {
94 unsigned long Lo;
95 long Hi;
96 }_STRUCT_NAME(s);
97 LONGLONG int64;
98 } CY;
99 typedef double DATE;
100 typedef struct tagBSTRBLOB {
101 ULONG cbSize;
102 PBYTE pData;
103 }BSTRBLOB;
104 typedef struct tagBSTRBLOB *LPBSTRBLOB;
105 typedef struct tagCLIPDATA {
106 ULONG cbSize;
107 long ulClipFmt;
108 PBYTE pClipData;
109 }CLIPDATA;
110 typedef enum tagSTGC {
111 STGC_DEFAULT,STGC_OVERWRITE,STGC_ONLYIFCURRENT,
112 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
113 }STGC;
114 typedef enum tagSTGMOVE {
115 STGMOVE_MOVE,STGMOVE_COPY,STGMOVE_SHALLOWCOPY
116 }STGMOVE;
117 enum VARENUM {
118 VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH,
119 VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8,
120 VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED,
121 VT_LPSTR,VT_LPWSTR,VT_RECORD=36,VT_INT_PTR=37,VT_UINT_PTR=38,VT_FILETIME=64,VT_BLOB,VT_STREAM,VT_STORAGE,VT_STREAMED_OBJECT,
122 VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000,
123 VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff,
124 VT_TYPEMASK=0xfff
125 };
126
127 typedef struct _BYTE_SIZEDARR {
128 unsigned long clSize;
129 byte *pData;
130 }BYTE_SIZEDARR;
131 typedef struct _SHORT_SIZEDARR {
132 unsigned long clSize;
133 unsigned short *pData;
134 }WORD_SIZEDARR;
135 typedef struct _LONG_SIZEDARR {
136 unsigned long clSize;
137 unsigned long *pData;
138 }DWORD_SIZEDARR;
139 typedef struct _HYPER_SIZEDARR {
140 unsigned long clSize;
141 hyper *pData;
142 }HYPER_SIZEDARR;
143 typedef double DOUBLE;
144 typedef struct tagDEC {
145 USHORT wReserved;
146 union {
147 struct {
148 BYTE scale;
149 BYTE sign;
150 };
151 USHORT signscale;
152 };
153 ULONG Hi32;
154 union {
155 struct {
156 ULONG Lo32;
157 ULONG Mid32;
158 };
159 ULONGLONG Lo64;
160 };
161 } DECIMAL;
162 typedef void *HMETAFILEPICT;
163 typedef struct tagCSPLATFORM {
164 DWORD dwPlatformId;
165 DWORD dwVersionHi;
166 DWORD dwVersionLo;
167 DWORD dwProcessorArch;
168 } CSPLATFORM;
169 typedef struct tagQUERYCONTEXT {
170 DWORD dwContext;
171 CSPLATFORM Platform;
172 LCID Locale;
173 DWORD dwVersionHi;
174 DWORD dwVersionLo;
175 } QUERYCONTEXT;
176 typedef struct {
177 DWORD tyspec;
178 union {
179 CLSID clsid;
180 LPOLESTR pFileExt;
181 LPOLESTR pMimeType;
182 LPOLESTR pProgId;
183 LPOLESTR pFileName;
184 struct {
185 LPOLESTR pPackageName;
186 GUID PolicyId;
187 } ByName;
188 struct {
189 GUID ObjectId;
190 GUID PolicyId;
191 } ByObjectId;
192 } tagged_union;
193 } uCLSSPEC;
194 #ifdef __cplusplus
195 }
196 #endif
197 #endif