OSDN Git Service

Redo the filters based on assumptions discussed in mingw-dvlpr list.
[mingw/mingw-org-wsl.git] / include / wtypes.h
1 /**
2  * @file wtypes.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _WTYPES_H
25 #define _WTYPES_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #include <rpc.h>
30 #include <rpcndr.h>
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 #define IID_NULL GUID_NULL
37 #define CLSID_NULL GUID_NULL
38 #define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt))
39 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x01
40 #define ROTFLAGS_ALLOWANYCLIENT         0x02
41
42 #ifndef __BLOB_T_DEFINED /* also in winsock2.h */
43 #define __BLOB_T_DEFINED
44 typedef struct _BLOB {
45         ULONG   cbSize;
46         BYTE    *pBlobData;
47 } BLOB,*PBLOB,*LPBLOB;
48 #endif
49
50 typedef enum tagDVASPECT {
51         DVASPECT_CONTENT=1,
52         DVASPECT_THUMBNAIL=2,
53         DVASPECT_ICON=4,
54         DVASPECT_DOCPRINT=8
55 } DVASPECT;
56 typedef enum tagDVASPECT2 {
57         DVASPECT_OPAQUE=16,
58         DVASPECT_TRANSPARENT=32
59 } DVASPECT2;
60 typedef enum tagSTATFLAG {
61         STATFLAG_DEFAULT=0,
62         STATFLAG_NONAME=1
63 } STATFLAG;
64 typedef enum tagMEMCTX {
65         MEMCTX_LOCAL=0,
66         MEMCTX_TASK,
67         MEMCTX_SHARED,
68         MEMCTX_MACSYSTEM,
69         MEMCTX_UNKNOWN=-1,
70         MEMCTX_SAME=-2
71 } MEMCTX;
72 typedef enum tagMSHCTX {
73         MSHCTX_LOCAL=0,
74         MSHCTX_NOSHAREDMEM,
75         MSHCTX_DIFFERENTMACHINE,
76         MSHCTX_INPROC,
77         MSHCTX_CROSSCTX
78 } MSHCTX;
79 typedef enum tagCLSCTX {
80         CLSCTX_INPROC_SERVER=1,CLSCTX_INPROC_HANDLER=2,CLSCTX_LOCAL_SERVER=4,
81         CLSCTX_INPROC_SERVER16=8,CLSCTX_REMOTE_SERVER=16
82 } CLSCTX;
83 typedef enum tagMSHLFLAGS {
84         MSHLFLAGS_NORMAL,MSHLFLAGS_TABLESTRONG,MSHLFLAGS_TABLEWEAK
85 } MSHLFLAGS;
86 typedef struct _FLAGGED_WORD_BLOB {
87         unsigned long fFlags;
88         unsigned long clSize;
89         unsigned short asData[1];
90 }FLAGGED_WORD_BLOB;
91
92 #ifndef OLE2ANSI
93 typedef WCHAR OLECHAR;
94 typedef LPWSTR LPOLESTR;
95 typedef LPCWSTR LPCOLESTR;
96 #define OLESTR(s) L##s
97 #else
98
99 typedef char OLECHAR;
100 typedef LPSTR LPOLESTR;
101 typedef LPCSTR LPCOLESTR;
102 #define OLESTR(s) s
103 #endif
104
105 typedef unsigned short VARTYPE;
106 typedef short VARIANT_BOOL;
107 typedef VARIANT_BOOL _VARIANT_BOOL;
108 #define VARIANT_TRUE ((VARIANT_BOOL)0xffff)
109 #define VARIANT_FALSE ((VARIANT_BOOL)0)
110 typedef OLECHAR *BSTR;
111 typedef FLAGGED_WORD_BLOB *wireBSTR;
112 typedef BSTR *LPBSTR;
113 typedef LONG SCODE;
114 typedef void *HCONTEXT;
115 typedef union tagCY {
116         _ANONYMOUS_STRUCT struct {
117                 unsigned long Lo;
118                 long Hi;
119         }_STRUCT_NAME(s);
120         LONGLONG int64;
121 } CY;
122 typedef double DATE;
123 typedef struct  tagBSTRBLOB {
124         ULONG cbSize;
125         PBYTE pData;
126 }BSTRBLOB;
127 typedef struct tagBSTRBLOB *LPBSTRBLOB;
128 typedef struct tagCLIPDATA {
129         ULONG cbSize;
130         long ulClipFmt;
131         PBYTE pClipData;
132 }CLIPDATA;
133 typedef enum tagSTGC {
134         STGC_DEFAULT,STGC_OVERWRITE,STGC_ONLYIFCURRENT,
135         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
136 }STGC;
137 typedef enum tagSTGMOVE {
138         STGMOVE_MOVE,STGMOVE_COPY,STGMOVE_SHALLOWCOPY
139 }STGMOVE;
140 enum VARENUM {
141         VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH,
142         VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8,
143         VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED,
144         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,
145         VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000,
146         VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff,
147         VT_TYPEMASK=0xfff
148 };
149
150 typedef struct _BYTE_SIZEDARR {
151         unsigned long clSize;
152         byte *pData;
153 }BYTE_SIZEDARR;
154 typedef struct _SHORT_SIZEDARR {
155         unsigned long clSize;
156         unsigned short *pData;
157 }WORD_SIZEDARR;
158 typedef struct _LONG_SIZEDARR {
159         unsigned long clSize;
160         unsigned long *pData;
161 }DWORD_SIZEDARR;
162 typedef struct _HYPER_SIZEDARR {
163         unsigned long clSize;
164         hyper *pData;
165 }HYPER_SIZEDARR;
166 typedef double DOUBLE;
167 typedef struct tagDEC {
168         USHORT wReserved;
169         _ANONYMOUS_UNION union {
170                 _ANONYMOUS_STRUCT struct {
171                         BYTE scale;
172                         BYTE sign;
173                 }_STRUCT_NAME(s);
174                 USHORT signscale;
175         } DUMMYUNIONNAME;
176         ULONG Hi32;
177         _ANONYMOUS_UNION union {
178                 _ANONYMOUS_STRUCT struct {
179                         ULONG Lo32;
180                         ULONG Mid32;
181                 }_STRUCT_NAME(s2);
182                 ULONGLONG Lo64;
183         } DUMMYUNIONNAME2;
184 } DECIMAL;
185 typedef DECIMAL *LPDECIMAL;
186 #define DECIMAL_NEG ((BYTE)0x80)
187
188 #ifdef NONAMELESSUNION
189 #define DECIMAL_SETZERO(d) {(d).DUMMYUNIONNAME2.Lo64=(d).Hi32=(d).DUMMYUNIONNAME.signscale=0;}
190 #else
191
192 #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;}
193 #endif
194
195 typedef void *HMETAFILEPICT;
196
197 #ifdef __cplusplus
198 }
199 #endif
200
201 #endif