OSDN Git Service

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