OSDN Git Service

Manual resolution for LICENSE for files already containing a file
[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
28 #include <rpc.h>
29 #include <rpcndr.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 #define IID_NULL GUID_NULL
36 #define CLSID_NULL GUID_NULL
37 #define CBPCLIPDATA(d) ((d).cbSize-sizeof((d).ulClipFmt))
38 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x01
39 #define ROTFLAGS_ALLOWANYCLIENT         0x02
40
41 #ifndef __BLOB_T_DEFINED /* also in winsock2.h */
42 #define __BLOB_T_DEFINED
43 typedef struct _BLOB {
44         ULONG   cbSize;
45         BYTE    *pBlobData;
46 } BLOB,*PBLOB,*LPBLOB;
47 #endif
48 typedef enum tagDVASPECT {
49         DVASPECT_CONTENT=1,
50         DVASPECT_THUMBNAIL=2,
51         DVASPECT_ICON=4,
52         DVASPECT_DOCPRINT=8
53 } DVASPECT;
54 typedef enum tagDVASPECT2 {
55         DVASPECT_OPAQUE=16,
56         DVASPECT_TRANSPARENT=32
57 } DVASPECT2;
58 typedef enum tagSTATFLAG {
59         STATFLAG_DEFAULT=0,
60         STATFLAG_NONAME=1
61 } STATFLAG;
62 typedef enum tagMEMCTX {
63         MEMCTX_LOCAL=0,
64         MEMCTX_TASK,
65         MEMCTX_SHARED,
66         MEMCTX_MACSYSTEM,
67         MEMCTX_UNKNOWN=-1,
68         MEMCTX_SAME=-2
69 } MEMCTX;
70 typedef enum tagMSHCTX {
71         MSHCTX_LOCAL=0,
72         MSHCTX_NOSHAREDMEM,
73         MSHCTX_DIFFERENTMACHINE,
74         MSHCTX_INPROC,
75         MSHCTX_CROSSCTX
76 } MSHCTX;
77 typedef enum tagCLSCTX {
78         CLSCTX_INPROC_SERVER=1,CLSCTX_INPROC_HANDLER=2,CLSCTX_LOCAL_SERVER=4,
79         CLSCTX_INPROC_SERVER16=8,CLSCTX_REMOTE_SERVER=16
80 } CLSCTX;
81 typedef enum tagMSHLFLAGS {
82         MSHLFLAGS_NORMAL,MSHLFLAGS_TABLESTRONG,MSHLFLAGS_TABLEWEAK
83 } MSHLFLAGS;
84 typedef struct _FLAGGED_WORD_BLOB {
85         unsigned long fFlags;
86         unsigned long clSize;
87         unsigned short asData[1];
88 }FLAGGED_WORD_BLOB;
89
90 #ifndef OLE2ANSI
91 typedef WCHAR OLECHAR;
92 typedef LPWSTR LPOLESTR;
93 typedef LPCWSTR LPCOLESTR;
94 #define OLESTR(s) L##s
95 #else
96 typedef char OLECHAR;
97 typedef LPSTR LPOLESTR;
98 typedef LPCSTR LPCOLESTR;
99 #define OLESTR(s) s
100 #endif
101 typedef unsigned short VARTYPE;
102 typedef short VARIANT_BOOL;
103 typedef VARIANT_BOOL _VARIANT_BOOL;
104 #define VARIANT_TRUE ((VARIANT_BOOL)0xffff)
105 #define VARIANT_FALSE ((VARIANT_BOOL)0)
106 typedef OLECHAR *BSTR;
107 typedef FLAGGED_WORD_BLOB *wireBSTR;
108 typedef BSTR *LPBSTR;
109 typedef LONG SCODE;
110 typedef void *HCONTEXT;
111 typedef union tagCY {
112         _ANONYMOUS_STRUCT struct {
113                 unsigned long Lo;
114                 long Hi;
115         }_STRUCT_NAME(s);
116         LONGLONG int64;
117 } CY;
118 typedef double DATE;
119 typedef struct  tagBSTRBLOB {
120         ULONG cbSize;
121         PBYTE pData;
122 }BSTRBLOB;
123 typedef struct tagBSTRBLOB *LPBSTRBLOB;
124 typedef struct tagCLIPDATA {
125         ULONG cbSize;
126         long ulClipFmt;
127         PBYTE pClipData;
128 }CLIPDATA;
129 typedef enum tagSTGC {
130         STGC_DEFAULT,STGC_OVERWRITE,STGC_ONLYIFCURRENT,
131         STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE
132 }STGC;
133 typedef enum tagSTGMOVE {
134         STGMOVE_MOVE,STGMOVE_COPY,STGMOVE_SHALLOWCOPY
135 }STGMOVE;
136 enum VARENUM {
137         VT_EMPTY,VT_NULL,VT_I2,VT_I4,VT_R4,VT_R8,VT_CY,VT_DATE,VT_BSTR,VT_DISPATCH,
138         VT_ERROR,VT_BOOL,VT_VARIANT,VT_UNKNOWN,VT_DECIMAL,VT_I1=16,VT_UI1,VT_UI2,VT_UI4,VT_I8,
139         VT_UI8,VT_INT,VT_UINT,VT_VOID,VT_HRESULT,VT_PTR,VT_SAFEARRAY,VT_CARRAY,VT_USERDEFINED,
140         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,
141         VT_STORED_OBJECT,VT_BLOB_OBJECT,VT_CF,VT_CLSID,VT_BSTR_BLOB=0xfff,VT_VECTOR=0x1000,
142         VT_ARRAY=0x2000,VT_BYREF=0x4000,VT_RESERVED=0x8000,VT_ILLEGAL= 0xffff,VT_ILLEGALMASKED=0xfff,
143         VT_TYPEMASK=0xfff
144 };
145
146 typedef struct _BYTE_SIZEDARR {
147         unsigned long clSize;
148         byte *pData;
149 }BYTE_SIZEDARR;
150 typedef struct _SHORT_SIZEDARR {
151         unsigned long clSize;
152         unsigned short *pData;
153 }WORD_SIZEDARR;
154 typedef struct _LONG_SIZEDARR {
155         unsigned long clSize;
156         unsigned long *pData;
157 }DWORD_SIZEDARR;
158 typedef struct _HYPER_SIZEDARR {
159         unsigned long clSize;
160         hyper *pData;
161 }HYPER_SIZEDARR;
162 typedef double DOUBLE;
163 typedef struct tagDEC {
164         USHORT wReserved;
165         _ANONYMOUS_UNION union {
166                 _ANONYMOUS_STRUCT struct {
167                         BYTE scale;
168                         BYTE sign;
169                 }_STRUCT_NAME(s);
170                 USHORT signscale;
171         } DUMMYUNIONNAME;
172         ULONG Hi32;
173         _ANONYMOUS_UNION union {
174                 _ANONYMOUS_STRUCT struct {
175                         ULONG Lo32;
176                         ULONG Mid32;
177                 }_STRUCT_NAME(s2);
178                 ULONGLONG Lo64;
179         } DUMMYUNIONNAME2;
180 } DECIMAL;
181 typedef DECIMAL *LPDECIMAL;
182 #define DECIMAL_NEG ((BYTE)0x80)
183 #ifdef NONAMELESSUNION
184 #define DECIMAL_SETZERO(d) {(d).DUMMYUNIONNAME2.Lo64=(d).Hi32=(d).DUMMYUNIONNAME.signscale=0;}
185 #else
186 #define DECIMAL_SETZERO(d) {(d).Lo64=(d).Hi32=(d).signscale=0;}
187 #endif
188 typedef void *HMETAFILEPICT;
189 #ifdef __cplusplus
190 }
191 #endif
192 #endif