Threads without active or focus window should not receive keyboard
[wine.git] / include / wtypes.h
blobd7cfcc78f984fe5780f3f6d2d06449803210eb00
1 /*
2 * Defines the basic types used by COM interfaces.
3 */
5 #ifndef __WINE_WTYPES_H
6 #define __WINE_WTYPES_H
8 #include "basetsd.h"
9 #include "guiddef.h"
10 #include "rpc.h"
12 typedef WORD CLIPFORMAT, *LPCLIPFORMAT;
14 typedef CHAR OLECHAR16;
15 typedef WCHAR OLECHAR;
17 typedef LPSTR LPOLESTR16;
18 typedef LPWSTR LPOLESTR;
20 typedef LPCSTR LPCOLESTR16;
21 typedef LPCWSTR LPCOLESTR;
23 typedef OLECHAR16 *BSTR16;
24 typedef OLECHAR *BSTR;
26 typedef BSTR16 *LPBSTR16;
27 typedef BSTR *LPBSTR;
29 #ifndef _DWORDLONG_
30 #define _DWORDLONG_
31 typedef __uint64 DWORDLONG, *PDWORDLONG;
32 #endif
34 #ifndef _ULONGLONG_
35 #define _ULONGLONG_
36 typedef __int64 LONGLONG, *PLONGLONG;
37 typedef __uint64 ULONGLONG, *PULONGLONG;
38 #endif
40 #define OLESTR16(x) x
41 #define OLESTR(x) L##x
43 typedef enum tagDVASPECT
45 DVASPECT_CONTENT = 1,
46 DVASPECT_THUMBNAIL = 2,
47 DVASPECT_ICON = 4,
48 DVASPECT_DOCPRINT = 8
49 } DVASPECT;
51 typedef enum tagSTGC
53 STGC_DEFAULT = 0,
54 STGC_OVERWRITE = 1,
55 STGC_ONLYIFCURRENT = 2,
56 STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4
57 } STGC;
59 typedef struct _COAUTHIDENTITY
61 USHORT* User;
62 ULONG UserLength;
63 USHORT* Domain;
64 ULONG DomainLength;
65 USHORT* Password;
66 ULONG PasswordLength;
67 ULONG Flags;
68 } COAUTHIDENTITY;
70 typedef struct _COAUTHINFO
72 DWORD dwAuthnSvc;
73 DWORD dwAuthzSvc;
74 LPWSTR pwszServerPrincName;
75 DWORD dwAuthnLevel;
76 DWORD dwImpersonationLevel;
77 COAUTHIDENTITY* pAuthIdentityData;
78 DWORD dwCapabilities;
79 } COAUTHINFO;
81 typedef struct _COSERVERINFO
83 DWORD dwReserved1;
84 LPWSTR pwszName;
85 COAUTHINFO* pAuthInfo;
86 DWORD dwReserved2;
87 } COSERVERINFO;
89 typedef enum tagCLSCTX
91 CLSCTX_INPROC_SERVER = 0x1,
92 CLSCTX_INPROC_HANDLER = 0x2,
93 CLSCTX_LOCAL_SERVER = 0x4,
94 CLSCTX_INPROC_SERVER16 = 0x8,
95 CLSCTX_REMOTE_SERVER = 0x10,
96 CLSCTX_INPROC_HANDLER16 = 0x20,
97 CLSCTX_INPROC_SERVERX86 = 0x40,
98 CLSCTX_INPROC_HANDLERX86 = 0x80
99 } CLSCTX;
101 #define CLSCTX_INPROC (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER)
102 #define CLSCTX_ALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
103 #define CLSCTX_SERVER (CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER)
105 typedef unsigned short VARTYPE;
107 typedef ULONG PROPID;
109 #ifndef _tagBLOB_DEFINED
110 #define _tagBLOB_DEFINED
111 #define _BLOB_DEFINED
112 #define _LPBLOB_DEFINED
113 typedef struct tagBLOB
115 ULONG cbSize;
116 BYTE *pBlobData;
117 } BLOB, *LPBLOB;
118 #endif
120 #ifndef _tagCY_DEFINED
121 #define _tagCY_DEFINED
123 typedef union tagCY {
124 struct {
125 #ifdef BIG_ENDIAN
126 LONG Hi;
127 LONG Lo;
128 #else /* defined(BIG_ENDIAN) */
129 ULONG Lo;
130 LONG Hi;
131 #endif /* defined(BIG_ENDIAN) */
132 } DUMMYSTRUCTNAME;
133 LONGLONG int64;
134 } CY;
136 #endif /* _tagCY_DEFINED */
139 * 0 == FALSE and -1 == TRUE
141 #define VARIANT_TRUE ((VARIANT_BOOL)0xFFFF)
142 #define VARIANT_FALSE ((VARIANT_BOOL)0x0000)
143 typedef short VARIANT_BOOL,_VARIANT_BOOL;
145 typedef struct tagCLIPDATA
147 ULONG cbSize;
148 long ulClipFmt;
149 BYTE *pClipData;
150 } CLIPDATA;
152 /* Macro to calculate the size of the above pClipData */
153 #define CBPCLIPDATA(clipdata) ( (clipdata).cbSize - sizeof((clipdata).ulClipFmt) )
155 typedef LONG SCODE;
157 #ifndef _FILETIME_
158 #define _FILETIME_
159 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
160 typedef struct
162 DWORD dwLowDateTime;
163 DWORD dwHighDateTime;
164 } FILETIME, *LPFILETIME;
165 #endif /* _FILETIME_ */
167 #ifndef _SECURITY_DEFINED
168 #define _SECURITY_DEFINED
170 typedef struct {
171 BYTE Value[6];
172 } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY;
174 typedef struct _SID {
175 BYTE Revision;
176 BYTE SubAuthorityCount;
177 SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
178 DWORD SubAuthority[1];
179 } SID,*PSID;
182 * ACL
185 typedef struct _ACL {
186 BYTE AclRevision;
187 BYTE Sbz1;
188 WORD AclSize;
189 WORD AceCount;
190 WORD Sbz2;
191 } ACL, *PACL;
193 typedef DWORD SECURITY_INFORMATION;
194 typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
195 typedef DWORD ACCESS_MASK, *PACCESS_MASK;
197 typedef PVOID PGENERIC_MAPPING;
199 /* The security descriptor structure */
200 typedef struct {
201 BYTE Revision;
202 BYTE Sbz1;
203 SECURITY_DESCRIPTOR_CONTROL Control;
204 PSID Owner;
205 PSID Group;
206 PACL Sacl;
207 PACL Dacl;
208 } SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
210 #ifndef _ROTFLAGS_DEFINED
211 #define _ROTFLAGS_DEFINED
212 #define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1
213 #define ROTFLAGS_ALLOWANYCLIENT 0x2
214 #endif /* !defined(_ROTFLAGS_DEFINED) */
216 #endif /* _SECURITY_DEFINED */
219 #endif /* __WINE_WTYPES_H */