Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 1 | /** |
| 2 | * This file has no copyright assigned and is placed in the Public Domain. |
| 3 | * This file is part of the w64 mingw-runtime package. |
| 4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| 5 | */ |
| 6 | |
| 7 | import "basetsd.h"; |
| 8 | import "guiddef.h"; |
| 9 | |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 10 | [ |
| 11 | uuid(D3980A60-910C-1068-9341-00DD010F2F1C), |
| 12 | version(0.1), |
| 13 | pointer_default(unique) |
| 14 | ] |
| 15 | |
| 16 | interface IWinTypes |
| 17 | { |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 18 | typedef struct tagRemHGLOBAL { |
| 19 | long fNullHGlobal; |
| 20 | unsigned long cbData; |
| 21 | [size_is(cbData)] byte data[]; |
| 22 | } RemHGLOBAL; |
| 23 | |
| 24 | typedef struct tagRemHMETAFILEPICT { |
| 25 | long mm; |
| 26 | long xExt; |
| 27 | long yExt; |
| 28 | unsigned long cbData; |
| 29 | [size_is(cbData)] byte data[]; |
| 30 | } RemHMETAFILEPICT; |
| 31 | |
| 32 | typedef struct tagRemHENHMETAFILE { |
| 33 | unsigned long cbData; |
| 34 | [size_is(cbData)] byte data[]; |
| 35 | } RemHENHMETAFILE; |
| 36 | |
| 37 | typedef struct tagRemHBITMAP { |
| 38 | unsigned long cbData; |
| 39 | [size_is(cbData)] byte data[]; |
| 40 | } RemHBITMAP; |
| 41 | |
| 42 | typedef struct tagRemHPALETTE { |
| 43 | unsigned long cbData; |
| 44 | [size_is(cbData)] byte data[]; |
| 45 | } RemHPALETTE; |
| 46 | |
| 47 | typedef struct tagRemBRUSH { |
| 48 | unsigned long cbData; |
| 49 | [size_is(cbData)] byte data[]; |
| 50 | } RemHBRUSH; |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 51 | |
| 52 | cpp_quote("#if 0") |
Jacek Caban | 9f2b3d5 | 2011-09-03 10:43:45 +0000 | [diff] [blame] | 53 | |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 54 | typedef byte BYTE; |
| 55 | typedef unsigned short WORD; |
| 56 | typedef unsigned int UINT; |
| 57 | typedef int INT; |
| 58 | |
Jacek Caban | 9f2b3d5 | 2011-09-03 10:43:45 +0000 | [diff] [blame] | 59 | #ifdef BOOL |
| 60 | #undef BOOL |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 61 | typedef long BOOL; |
| 62 | typedef long WINBOOL; |
Jacek Caban | 9f2b3d5 | 2011-09-03 10:43:45 +0000 | [diff] [blame] | 63 | #define BOOL WINBOOL |
| 64 | #else |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 65 | typedef long BOOL; |
Jacek Caban | 9f2b3d5 | 2011-09-03 10:43:45 +0000 | [diff] [blame] | 66 | #endif |
| 67 | |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 68 | typedef long LONG; |
| 69 | typedef UINT_PTR WPARAM; |
| 70 | typedef unsigned long DWORD; |
| 71 | typedef LONG_PTR LPARAM; |
| 72 | typedef LONG_PTR LRESULT; |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 73 | |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 74 | typedef void *HANDLE; |
| 75 | |
| 76 | #define DECLARE_WIREM_HANDLE(name) \ |
| 77 | typedef [wire_marshal(wire ## name)] void *name |
| 78 | #define DECLARE_HANDLE(name) \ |
| 79 | typedef void *name |
| 80 | |
| 81 | DECLARE_HANDLE(HMODULE); |
| 82 | DECLARE_HANDLE(HINSTANCE); |
| 83 | DECLARE_HANDLE(HTASK); |
| 84 | DECLARE_HANDLE(HKEY); |
| 85 | DECLARE_HANDLE(HDESK); |
| 86 | DECLARE_HANDLE(HMF); |
| 87 | DECLARE_HANDLE(HEMF); |
| 88 | DECLARE_HANDLE(HPEN); |
| 89 | DECLARE_HANDLE(HRSRC); |
| 90 | DECLARE_HANDLE(HSTR); |
| 91 | DECLARE_HANDLE(HWINSTA); |
| 92 | DECLARE_HANDLE(HKL); |
| 93 | DECLARE_HANDLE(HGDIOBJ); |
| 94 | |
| 95 | typedef HANDLE HDWP; |
| 96 | typedef INT HFILE; |
| 97 | typedef WORD *LPWORD; |
| 98 | typedef DWORD *LPDWORD; |
| 99 | |
| 100 | typedef char CHAR; |
| 101 | typedef [string] CHAR *LPSTR; |
| 102 | typedef [string] const CHAR *LPCSTR; |
| 103 | |
| 104 | typedef wchar_t WCHAR; |
| 105 | typedef [string] WCHAR *LPWSTR; |
| 106 | typedef [string] const WCHAR *LPCWSTR; |
| 107 | |
| 108 | typedef WCHAR TCHAR; |
| 109 | typedef [string] TCHAR *LPTSTR; |
| 110 | typedef [string] const TCHAR *LPCTSTR; |
| 111 | |
| 112 | typedef DWORD COLORREF; |
| 113 | typedef DWORD *LPCOLORREF; |
| 114 | |
| 115 | typedef HANDLE *LPHANDLE; |
| 116 | |
| 117 | typedef struct _RECTL { |
| 118 | LONG left; |
| 119 | LONG top; |
| 120 | LONG right; |
| 121 | LONG bottom; |
| 122 | } RECTL, *PRECTL, *LPRECTL; |
| 123 | |
| 124 | typedef struct tagPOINT { |
| 125 | LONG x; |
| 126 | LONG y; |
| 127 | } POINT, *PPOINT, *LPPOINT; |
| 128 | |
| 129 | typedef struct tagPOINTL { |
| 130 | LONG x; |
| 131 | LONG y; |
| 132 | } POINTL, *PPOINTL; |
| 133 | |
| 134 | typedef struct tagSIZE { |
| 135 | LONG cx; |
| 136 | LONG cy; |
| 137 | } SIZE, *PSIZE, *LPSIZE; |
| 138 | |
| 139 | typedef struct tagSIZEL { |
| 140 | LONG cx; |
| 141 | LONG cy; |
| 142 | } SIZEL, *PSIZEL, *LPSIZEL; |
Jacek Caban | 9f2b3d5 | 2011-09-03 10:43:45 +0000 | [diff] [blame] | 143 | |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 144 | cpp_quote("#endif") |
| 145 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 146 | cpp_quote("#ifndef _PALETTEENTRY_DEFINED") |
| 147 | cpp_quote("#define _PALETTEENTRY_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 148 | typedef struct tagPALETTEENTRY { |
| 149 | BYTE peRed; |
| 150 | BYTE peGreen; |
| 151 | BYTE peBlue; |
| 152 | BYTE peFlags; |
| 153 | } PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 154 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 155 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 156 | cpp_quote("#ifndef _LOGPALETTE_DEFINED") |
| 157 | cpp_quote("#define _LOGPALETTE_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 158 | typedef struct tagLOGPALETTE { |
| 159 | WORD palVersion; |
| 160 | WORD palNumEntries; |
| 161 | [size_is(palNumEntries)] PALETTEENTRY palPalEntry[]; |
| 162 | } LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 163 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 164 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 165 | cpp_quote("#ifndef OLE2ANSI") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 166 | typedef WCHAR OLECHAR; |
| 167 | typedef OLECHAR *LPOLESTR; |
| 168 | typedef const OLECHAR *LPCOLESTR; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 169 | cpp_quote("#define OLESTR(str) L##str") |
| 170 | cpp_quote("#else") |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 171 | cpp_quote(" typedef char OLECHAR;") |
| 172 | cpp_quote(" typedef LPSTR LPOLESTR;") |
| 173 | cpp_quote(" typedef LPCSTR LPCOLESTR;") |
| 174 | cpp_quote("#define OLESTR(str) str") |
| 175 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 176 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 177 | cpp_quote("#ifndef _WINDEF_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 178 | |
| 179 | typedef const RECTL *LPCRECTL; |
| 180 | typedef void *PVOID, *LPVOID; |
| 181 | typedef float FLOAT; |
| 182 | |
| 183 | typedef struct tagRECT { |
| 184 | LONG left; |
| 185 | LONG top; |
| 186 | LONG right; |
| 187 | LONG bottom; |
| 188 | } RECT, *PRECT, *LPRECT; |
| 189 | typedef const RECT *LPCRECT; |
| 190 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 191 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 192 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 193 | cpp_quote("#ifndef BASETYPES") |
| 194 | cpp_quote("#define BASETYPES") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 195 | |
| 196 | typedef unsigned char UCHAR; |
| 197 | typedef short SHORT; |
| 198 | typedef unsigned short USHORT; |
| 199 | typedef DWORD ULONG; |
| 200 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 201 | cpp_quote(" typedef ULONG *PULONG;") |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 202 | cpp_quote(" typedef USHORT *PUSHORT;") |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 203 | cpp_quote(" typedef UCHAR *PUCHAR;") |
| 204 | cpp_quote(" typedef char *PSZ;") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 205 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 206 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 207 | |
| 208 | typedef double DOUBLE; |
| 209 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 210 | cpp_quote("#ifndef _DWORDLONG_") |
| 211 | cpp_quote("#define _DWORDLONG_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 212 | cpp_quote(" __MINGW_EXTENSION") |
| 213 | typedef unsigned __int64 DWORDLONG; |
| 214 | typedef DWORDLONG *PDWORDLONG; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 215 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 216 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 217 | cpp_quote("#ifndef _ULONGLONG_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 218 | cpp_quote(" __MINGW_EXTENSION") |
| 219 | typedef __int64 LONGLONG; |
| 220 | cpp_quote(" __MINGW_EXTENSION") |
| 221 | typedef unsigned __int64 ULONGLONG; |
| 222 | typedef LONGLONG *PLONGLONG; |
| 223 | typedef ULONGLONG *PULONGLONG; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 224 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 225 | |
| 226 | cpp_quote("#if 0") |
| 227 | typedef struct _LARGE_INTEGER { |
| 228 | LONGLONG QuadPart; |
| 229 | } LARGE_INTEGER, *PLARGE_INTEGER; |
| 230 | |
| 231 | typedef struct _ULARGE_INTEGER { |
| 232 | ULONGLONG QuadPart; |
| 233 | } ULARGE_INTEGER; |
| 234 | cpp_quote("#endif") |
| 235 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 236 | cpp_quote("#ifndef _WINBASE_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 237 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 238 | cpp_quote("#ifndef _FILETIME_") |
| 239 | cpp_quote("#define _FILETIME_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 240 | typedef struct _FILETIME { |
| 241 | DWORD dwLowDateTime; |
| 242 | DWORD dwHighDateTime; |
| 243 | } FILETIME, *PFILETIME, *LPFILETIME; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 244 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 245 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 246 | cpp_quote("#ifndef _SYSTEMTIME_") |
| 247 | cpp_quote("#define _SYSTEMTIME_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 248 | typedef struct _SYSTEMTIME { |
| 249 | WORD wYear; |
| 250 | WORD wMonth; |
| 251 | WORD wDayOfWeek; |
| 252 | WORD wDay; |
| 253 | WORD wHour; |
| 254 | WORD wMinute; |
| 255 | WORD wSecond; |
| 256 | WORD wMilliseconds; |
| 257 | } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 258 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 259 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 260 | cpp_quote("#ifndef _SECURITY_ATTRIBUTES_") |
| 261 | cpp_quote("#define _SECURITY_ATTRIBUTES_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 262 | typedef struct _SECURITY_ATTRIBUTES { |
| 263 | DWORD nLength; |
| 264 | LPVOID lpSecurityDescriptor; |
| 265 | WINBOOL bInheritHandle; |
| 266 | } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 267 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 268 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 269 | cpp_quote("#ifndef SECURITY_DESCRIPTOR_REVISION") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 270 | typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL; |
| 271 | typedef PVOID PSID; |
| 272 | |
| 273 | typedef struct _ACL { |
| 274 | UCHAR AclRevision; |
| 275 | UCHAR Sbz1; |
| 276 | USHORT AclSize; |
| 277 | USHORT AceCount; |
| 278 | USHORT Sbz2; |
| 279 | } ACL, *PACL; |
| 280 | |
| 281 | typedef struct _SECURITY_DESCRIPTOR { |
| 282 | UCHAR Revision; |
| 283 | UCHAR Sbz1; |
| 284 | SECURITY_DESCRIPTOR_CONTROL Control; |
| 285 | PSID Owner; |
| 286 | PSID Group; |
| 287 | PACL Sacl; |
| 288 | PACL Dacl; |
| 289 | } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; |
| 290 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 291 | cpp_quote("#endif") |
| 292 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 293 | |
| 294 | typedef struct _COAUTHIDENTITY { |
| 295 | [size_is(UserLength+1)] USHORT *User; |
| 296 | [range(0,256)] ULONG UserLength; |
| 297 | [size_is(DomainLength+1)] USHORT *Domain; |
| 298 | [range(0,256)] ULONG DomainLength; |
| 299 | [size_is(PasswordLength+1)] USHORT *Password; |
| 300 | [range(0,256)] ULONG PasswordLength; |
| 301 | ULONG Flags; |
| 302 | } COAUTHIDENTITY; |
| 303 | |
| 304 | typedef struct _COAUTHINFO { |
| 305 | DWORD dwAuthnSvc; |
| 306 | DWORD dwAuthzSvc; |
| 307 | LPWSTR pwszServerPrincName; |
| 308 | DWORD dwAuthnLevel; |
| 309 | DWORD dwImpersonationLevel; |
| 310 | COAUTHIDENTITY *pAuthIdentityData; |
| 311 | DWORD dwCapabilities; |
| 312 | } COAUTHINFO; |
| 313 | |
| 314 | typedef LONG SCODE; |
| 315 | typedef SCODE *PSCODE; |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 316 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 317 | cpp_quote("#ifndef _HRESULT_DEFINED") |
| 318 | cpp_quote("#define _HRESULT_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 319 | typedef LONG HRESULT; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 320 | cpp_quote("#endif") |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 321 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 322 | cpp_quote("#ifndef __OBJECTID_DEFINED") |
| 323 | cpp_quote("#define __OBJECTID_DEFINED") |
| 324 | cpp_quote("#define _OBJECTID_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 325 | typedef struct _OBJECTID { |
| 326 | GUID Lineage; |
| 327 | unsigned long Uniquifier; |
| 328 | } OBJECTID; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 329 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 330 | |
| 331 | cpp_quote("#if 0") |
| 332 | typedef GUID *REFGUID; |
| 333 | typedef IID *REFIID; |
| 334 | typedef CLSID *REFCLSID; |
| 335 | typedef FMTID *REFFMTID; |
| 336 | cpp_quote("#endif") |
| 337 | |
| 338 | typedef enum tagMEMCTX { |
| 339 | MEMCTX_TASK = 1, |
| 340 | MEMCTX_SHARED = 2, |
| 341 | MEMCTX_MACSYSTEM = 3, |
| 342 | MEMCTX_UNKNOWN = -1, |
| 343 | MEMCTX_SAME = -2 |
| 344 | } MEMCTX; |
| 345 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 346 | cpp_quote("#ifndef _ROTFLAGS_DEFINED") |
| 347 | cpp_quote("#define _ROTFLAGS_DEFINED") |
| 348 | cpp_quote("#define ROTFLAGS_REGISTRATIONKEEPSALIVE 0x1") |
| 349 | cpp_quote("#define ROTFLAGS_ALLOWANYCLIENT 0x2") |
| 350 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 351 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 352 | cpp_quote("#ifndef _ROT_COMPARE_MAX_DEFINED") |
| 353 | cpp_quote("#define _ROT_COMPARE_MAX_DEFINED") |
| 354 | cpp_quote("#define ROT_COMPARE_MAX 2048") |
| 355 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 356 | |
| 357 | typedef enum tagCLSCTX { |
| 358 | CLSCTX_INPROC_SERVER = 0x1, |
| 359 | CLSCTX_INPROC_HANDLER = 0x2, |
| 360 | CLSCTX_LOCAL_SERVER = 0x4, |
| 361 | CLSCTX_INPROC_SERVER16 = 0x8, |
| 362 | CLSCTX_REMOTE_SERVER = 0x10, |
| 363 | CLSCTX_INPROC_HANDLER16 = 0x20, |
| 364 | CLSCTX_RESERVED1 = 0x40, |
| 365 | CLSCTX_RESERVED2 = 0x80, |
| 366 | CLSCTX_RESERVED3 = 0x100, |
| 367 | CLSCTX_RESERVED4 = 0x200, |
| 368 | CLSCTX_NO_CODE_DOWNLOAD = 0x400, |
| 369 | CLSCTX_RESERVED5 = 0x800, |
| 370 | CLSCTX_NO_CUSTOM_MARSHAL = 0x1000, |
| 371 | CLSCTX_ENABLE_CODE_DOWNLOAD = 0x2000, |
| 372 | CLSCTX_NO_FAILURE_LOG = 0x4000, |
| 373 | CLSCTX_DISABLE_AAA = 0x8000, |
| 374 | CLSCTX_ENABLE_AAA = 0x10000, |
| 375 | CLSCTX_FROM_DEFAULT_CONTEXT = 0x20000, |
| 376 | CLSCTX_ACTIVATE_32_BIT_SERVER = 0x40000, |
| 377 | CLSCTX_ACTIVATE_64_BIT_SERVER = 0x80000 |
| 378 | } CLSCTX; |
| 379 | |
| 380 | typedef enum tagMSHLFLAGS { |
| 381 | MSHLFLAGS_NORMAL = 0, |
| 382 | MSHLFLAGS_TABLESTRONG = 1, |
| 383 | MSHLFLAGS_TABLEWEAK = 2, |
| 384 | MSHLFLAGS_NOPING = 4, |
| 385 | MSHLFLAGS_RESERVED1 = 8, |
| 386 | MSHLFLAGS_RESERVED2 = 16, |
| 387 | MSHLFLAGS_RESERVED3 = 32, |
| 388 | MSHLFLAGS_RESERVED4 = 64 |
| 389 | } MSHLFLAGS; |
| 390 | |
| 391 | typedef enum tagMSHCTX { |
| 392 | MSHCTX_LOCAL = 0, |
| 393 | MSHCTX_NOSHAREDMEM = 1, |
| 394 | MSHCTX_DIFFERENTMACHINE = 2, |
| 395 | MSHCTX_INPROC = 3, |
| 396 | MSHCTX_CROSSCTX = 4 |
| 397 | } MSHCTX; |
| 398 | |
| 399 | typedef enum tagDVASPECT { |
| 400 | DVASPECT_CONTENT = 1, |
| 401 | DVASPECT_THUMBNAIL = 2, |
| 402 | DVASPECT_ICON = 4,DVASPECT_DOCPRINT = 8 |
| 403 | } DVASPECT; |
| 404 | |
| 405 | typedef enum tagSTGC { |
| 406 | STGC_DEFAULT = 0, |
| 407 | STGC_OVERWRITE = 1, |
| 408 | STGC_ONLYIFCURRENT = 2, |
| 409 | STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4, |
| 410 | STGC_CONSOLIDATE = 8 |
| 411 | } STGC; |
| 412 | |
| 413 | typedef enum tagSTGMOVE { |
| 414 | STGMOVE_MOVE = 0, |
| 415 | STGMOVE_COPY = 1, |
| 416 | STGMOVE_SHALLOWCOPY = 2 |
| 417 | } STGMOVE; |
| 418 | |
| 419 | typedef enum tagSTATFLAG { |
| 420 | STATFLAG_DEFAULT = 0, |
| 421 | STATFLAG_NONAME = 1, |
| 422 | STATFLAG_NOOPEN = 2 |
| 423 | } STATFLAG; |
| 424 | |
| 425 | typedef [context_handle] void *HCONTEXT; |
| 426 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 427 | cpp_quote("#ifndef _LCID_DEFINED") |
| 428 | cpp_quote("#define _LCID_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 429 | typedef DWORD LCID; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 430 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 431 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 432 | cpp_quote("#ifndef _LANGID_DEFINED") |
| 433 | cpp_quote("#define _LANGID_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 434 | typedef USHORT LANGID; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 435 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 436 | |
| 437 | typedef struct _BYTE_BLOB { |
| 438 | unsigned long clSize; |
| 439 | [size_is(clSize)] byte abData[]; |
| 440 | } BYTE_BLOB; |
| 441 | |
| 442 | typedef [unique] BYTE_BLOB *UP_BYTE_BLOB; |
| 443 | |
| 444 | typedef struct _WORD_BLOB { |
| 445 | unsigned long clSize; |
| 446 | [size_is(clSize)] unsigned short asData[]; |
| 447 | } WORD_BLOB; |
| 448 | |
| 449 | typedef [unique] WORD_BLOB *UP_WORD_BLOB; |
| 450 | |
| 451 | typedef struct _DWORD_BLOB { |
| 452 | unsigned long clSize; |
| 453 | [size_is(clSize)] unsigned long alData[]; |
| 454 | } DWORD_BLOB; |
| 455 | |
| 456 | typedef [unique] DWORD_BLOB *UP_DWORD_BLOB; |
| 457 | |
| 458 | typedef struct _FLAGGED_BYTE_BLOB { |
| 459 | unsigned long fFlags; |
| 460 | unsigned long clSize; |
| 461 | [size_is(clSize)] byte abData[]; |
| 462 | } FLAGGED_BYTE_BLOB; |
| 463 | |
| 464 | typedef [unique] FLAGGED_BYTE_BLOB *UP_FLAGGED_BYTE_BLOB; |
| 465 | |
| 466 | typedef struct _FLAGGED_WORD_BLOB { |
| 467 | unsigned long fFlags; |
| 468 | unsigned long clSize; |
| 469 | [size_is(clSize)] unsigned short asData[]; |
| 470 | } FLAGGED_WORD_BLOB; |
| 471 | |
| 472 | typedef [unique] FLAGGED_WORD_BLOB *UP_FLAGGED_WORD_BLOB; |
| 473 | |
| 474 | typedef struct _BYTE_SIZEDARR { |
| 475 | unsigned long clSize; |
| 476 | [size_is(clSize)] byte *pData; |
| 477 | } BYTE_SIZEDARR; |
| 478 | |
| 479 | typedef struct _SHORT_SIZEDARR { |
| 480 | unsigned long clSize; |
| 481 | [size_is(clSize)] unsigned short *pData; |
| 482 | } WORD_SIZEDARR; |
| 483 | |
| 484 | typedef struct _LONG_SIZEDARR { |
| 485 | unsigned long clSize; |
| 486 | [size_is(clSize)] unsigned long *pData; |
| 487 | } DWORD_SIZEDARR; |
| 488 | |
| 489 | typedef struct _HYPER_SIZEDARR { |
| 490 | unsigned long clSize; |
| 491 | [size_is(clSize)] hyper *pData; |
| 492 | } HYPER_SIZEDARR; |
| 493 | |
| 494 | const long WDT_INPROC_CALL = 0x48746457; |
| 495 | const long WDT_REMOTE_CALL = 0x52746457; |
| 496 | const long WDT_INPROC64_CALL = 0x50746457; |
| 497 | |
| 498 | typedef union _userCLIPFORMAT switch (long fContext) u { |
| 499 | case WDT_INPROC_CALL: DWORD dwValue; |
| 500 | case WDT_REMOTE_CALL: [string] wchar_t *pwszName; |
| 501 | } userCLIPFORMAT; |
| 502 | |
| 503 | typedef [unique] userCLIPFORMAT *wireCLIPFORMAT; |
| 504 | typedef [wire_marshal(wireCLIPFORMAT)] WORD CLIPFORMAT; |
| 505 | |
| 506 | typedef union _GDI_NONREMOTE switch(long fContext) u { |
| 507 | case WDT_INPROC_CALL: long hInproc; |
| 508 | case WDT_REMOTE_CALL: DWORD_BLOB *hRemote; |
| 509 | } GDI_NONREMOTE; |
| 510 | |
| 511 | typedef union _userHGLOBAL switch(long fContext) { |
| 512 | case WDT_INPROC_CALL: long hInproc; |
| 513 | case WDT_REMOTE_CALL: FLAGGED_BYTE_BLOB *hRemote; |
| 514 | case WDT_INPROC64_CALL: __int64 hInproc64; |
| 515 | } userHGLOBAL; |
| 516 | |
| 517 | typedef [unique] userHGLOBAL *wireHGLOBAL; |
| 518 | |
| 519 | typedef union _userHMETAFILE switch(long fContext) { |
| 520 | case WDT_INPROC_CALL: long hInproc; |
| 521 | case WDT_REMOTE_CALL: BYTE_BLOB *hRemote; |
| 522 | case WDT_INPROC64_CALL: __int64 hInproc64; |
| 523 | } userHMETAFILE; |
| 524 | |
| 525 | typedef struct _remoteMETAFILEPICT { |
| 526 | long mm; |
| 527 | long xExt; |
| 528 | long yExt; |
| 529 | userHMETAFILE *hMF; |
| 530 | } remoteMETAFILEPICT; |
| 531 | |
| 532 | typedef union _userHMETAFILEPICT switch(long fContext) { |
| 533 | case WDT_INPROC_CALL: long hInproc; |
| 534 | case WDT_REMOTE_CALL: remoteMETAFILEPICT *hRemote; |
| 535 | case WDT_INPROC64_CALL: __int64 hInproc64; |
| 536 | } userHMETAFILEPICT; |
| 537 | |
| 538 | typedef union _userHENHMETAFILE switch(long fContext) { |
| 539 | case WDT_INPROC_CALL: long hInproc; |
| 540 | case WDT_REMOTE_CALL: BYTE_BLOB *hRemote; |
| 541 | case WDT_INPROC64_CALL: __int64 hInproc64; |
| 542 | } userHENHMETAFILE; |
| 543 | |
| 544 | typedef struct _userBITMAP { |
| 545 | LONG bmType; |
| 546 | LONG bmWidth; |
| 547 | LONG bmHeight; |
| 548 | LONG bmWidthBytes; |
| 549 | WORD bmPlanes; |
| 550 | WORD bmBitsPixel; |
| 551 | ULONG cbSize; |
| 552 | [size_is(cbSize)] byte pBuffer[]; |
| 553 | } userBITMAP; |
| 554 | |
| 555 | typedef union _userHBITMAP switch(long fContext) u { |
| 556 | case WDT_INPROC_CALL: long hInproc; |
| 557 | case WDT_REMOTE_CALL: userBITMAP *hRemote; |
| 558 | case WDT_INPROC64_CALL: __int64 hInproc64; |
| 559 | } userHBITMAP; |
| 560 | |
| 561 | typedef union _userHPALETTE switch(long fContext) u { |
| 562 | case WDT_INPROC_CALL: long hInproc; |
| 563 | case WDT_REMOTE_CALL: LOGPALETTE *hRemote; |
| 564 | case WDT_INPROC64_CALL: __int64 hInproc64; |
| 565 | } userHPALETTE; |
| 566 | |
| 567 | typedef union _RemotableHandle switch(long fContext) { |
| 568 | case WDT_INPROC_CALL: long hInproc; |
| 569 | case WDT_REMOTE_CALL: long hRemote; |
| 570 | } RemotableHandle; |
| 571 | |
| 572 | typedef [unique] RemotableHandle *wireHWND; |
| 573 | typedef [unique] RemotableHandle *wireHMENU; |
| 574 | typedef [unique] RemotableHandle *wireHACCEL; |
| 575 | typedef [unique] RemotableHandle *wireHBRUSH; |
| 576 | typedef [unique] RemotableHandle *wireHFONT; |
| 577 | typedef [unique] RemotableHandle *wireHDC; |
| 578 | typedef [unique] RemotableHandle *wireHICON; |
| 579 | typedef [unique] RemotableHandle *wireHRGN; |
| 580 | |
| 581 | cpp_quote("#if 0") |
| 582 | #ifndef _MIDL_DECLARE_WIREM_HANDLE |
| 583 | DECLARE_WIREM_HANDLE(HWND); |
| 584 | DECLARE_WIREM_HANDLE(HMENU); |
| 585 | DECLARE_WIREM_HANDLE(HACCEL); |
| 586 | DECLARE_WIREM_HANDLE(HBRUSH); |
| 587 | DECLARE_WIREM_HANDLE(HFONT); |
| 588 | DECLARE_WIREM_HANDLE(HDC); |
| 589 | DECLARE_WIREM_HANDLE(HICON); |
| 590 | DECLARE_WIREM_HANDLE(HRGN); |
| 591 | #endif |
| 592 | |
| 593 | typedef HICON HCURSOR; |
| 594 | |
| 595 | cpp_quote("#endif") |
| 596 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 597 | cpp_quote("#ifndef _TEXTMETRIC_DEFINED") |
| 598 | cpp_quote("#define _TEXTMETRIC_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 599 | typedef struct tagTEXTMETRICW { |
| 600 | LONG tmHeight; |
| 601 | LONG tmAscent; |
| 602 | LONG tmDescent; |
| 603 | LONG tmInternalLeading; |
| 604 | LONG tmExternalLeading; |
| 605 | LONG tmAveCharWidth; |
| 606 | LONG tmMaxCharWidth; |
| 607 | LONG tmWeight; |
| 608 | LONG tmOverhang; |
| 609 | LONG tmDigitizedAspectX; |
| 610 | LONG tmDigitizedAspectY; |
| 611 | WCHAR tmFirstChar; |
| 612 | WCHAR tmLastChar; |
| 613 | WCHAR tmDefaultChar; |
| 614 | WCHAR tmBreakChar; |
| 615 | BYTE tmItalic; |
| 616 | BYTE tmUnderlined; |
| 617 | BYTE tmStruckOut; |
| 618 | BYTE tmPitchAndFamily; |
| 619 | BYTE tmCharSet; |
| 620 | } TEXTMETRICW, *PTEXTMETRICW, *LPTEXTMETRICW; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 621 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 622 | |
| 623 | cpp_quote("#if 0") |
| 624 | typedef struct tagMSG { |
| 625 | HWND hwnd; |
| 626 | UINT message; |
| 627 | WPARAM wParam; |
| 628 | LPARAM lParaml; |
| 629 | DWORD time; |
| 630 | POINT pt; |
| 631 | } MSG, *PMSG, *NPMSG, *LPMSG; |
| 632 | cpp_quote("#endif") |
| 633 | |
| 634 | typedef [unique] userHBITMAP *wireHBITMAP; |
| 635 | typedef [unique] userHPALETTE *wireHPALETTE; |
| 636 | typedef [unique] userHENHMETAFILE *wireHENHMETAFILE; |
| 637 | typedef [unique] userHMETAFILE *wireHMETAFILE; |
| 638 | typedef [unique] userHMETAFILEPICT *wireHMETAFILEPICT; |
| 639 | |
| 640 | cpp_quote("#if 0") |
| 641 | DECLARE_WIREM_HANDLE(HGLOBAL); |
| 642 | typedef HGLOBAL HLOCAL; |
| 643 | DECLARE_WIREM_HANDLE(HBITMAP); |
| 644 | DECLARE_WIREM_HANDLE(HPALETTE); |
| 645 | DECLARE_WIREM_HANDLE(HENHMETAFILE); |
| 646 | DECLARE_WIREM_HANDLE(HMETAFILE); |
| 647 | cpp_quote("#endif") |
| 648 | |
| 649 | DECLARE_WIREM_HANDLE(HMETAFILEPICT); |
Jacek Caban | 81c3ea7 | 2011-09-03 10:43:31 +0000 | [diff] [blame] | 650 | |
| 651 | } /* IWinTypes */ |
| 652 | |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 653 | typedef double DATE; |
| 654 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 655 | cpp_quote("#ifndef _tagCY_DEFINED") |
| 656 | cpp_quote("#define _tagCY_DEFINED") |
| 657 | cpp_quote("#define _CY_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 658 | |
| 659 | cpp_quote("#if 0") |
| 660 | |
| 661 | typedef struct tagCY { |
| 662 | LONGLONG int64; |
| 663 | } CY; |
| 664 | |
| 665 | cpp_quote("#else") |
| 666 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 667 | cpp_quote(" typedef union tagCY {") |
| 668 | cpp_quote(" __C89_NAMELESS struct {") |
| 669 | cpp_quote(" unsigned long Lo;") |
| 670 | cpp_quote(" long Hi;") |
| 671 | cpp_quote(" } DUMMYSTRUCTNAME;") |
| 672 | cpp_quote(" LONGLONG int64;") |
| 673 | cpp_quote(" } CY;") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 674 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 675 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 676 | cpp_quote("#endif") |
| 677 | |
| 678 | typedef CY *LPCY; |
| 679 | |
| 680 | cpp_quote("#if 0") |
| 681 | |
| 682 | typedef struct tagDEC { |
| 683 | USHORT wReserved; |
| 684 | BYTE scale; |
| 685 | BYTE sign; |
| 686 | ULONG Hi32; |
| 687 | ULONGLONG Lo64; |
| 688 | } DECIMAL; |
| 689 | |
| 690 | cpp_quote("#else") |
| 691 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 692 | cpp_quote(" typedef struct tagDEC {") |
| 693 | cpp_quote(" USHORT wReserved;") |
| 694 | cpp_quote(" __C89_NAMELESS union {") |
| 695 | cpp_quote(" __C89_NAMELESS struct {") |
| 696 | cpp_quote(" BYTE scale;") |
| 697 | cpp_quote(" BYTE sign;") |
| 698 | cpp_quote(" } DUMMYSTRUCTNAME;") |
| 699 | cpp_quote(" USHORT signscale;") |
| 700 | cpp_quote(" } DUMMYUNIONNAME;") |
| 701 | cpp_quote(" ULONG Hi32;") |
| 702 | cpp_quote(" __C89_NAMELESS union {") |
| 703 | cpp_quote(" __C89_NAMELESS struct {") |
| 704 | cpp_quote(" ULONG Lo32;") |
| 705 | cpp_quote(" ULONG Mid32;") |
| 706 | cpp_quote(" } DUMMYSTRUCTNAME2;") |
| 707 | cpp_quote(" ULONGLONG Lo64;") |
| 708 | cpp_quote(" } DUMMYUNIONNAME2;") |
| 709 | cpp_quote(" } DECIMAL;") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 710 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 711 | cpp_quote("#define DECIMAL_NEG ((BYTE)0x80)") |
| 712 | cpp_quote("#define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 713 | |
| 714 | cpp_quote("#endif") |
| 715 | |
| 716 | typedef DECIMAL *LPDECIMAL; |
| 717 | |
| 718 | typedef [unique] FLAGGED_WORD_BLOB *wireBSTR; |
| 719 | typedef [wire_marshal(wireBSTR)] OLECHAR *BSTR; |
| 720 | typedef BSTR *LPBSTR; |
| 721 | |
| 722 | typedef short VARIANT_BOOL; |
| 723 | typedef VARIANT_BOOL _VARIANT_BOOL; |
| 724 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 725 | cpp_quote("#ifndef _BOOLEAN_") |
| 726 | cpp_quote("#define _BOOLEAN_") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 727 | typedef boolean BOOLEAN; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 728 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 729 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 730 | cpp_quote("#ifndef _tagBSTRBLOB_DEFINED") |
| 731 | cpp_quote("#define _tagBSTRBLOB_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 732 | typedef struct tagBSTRBLOB { |
| 733 | ULONG cbSize; |
| 734 | [size_is(cbSize)] BYTE *pData; |
| 735 | } BSTRBLOB, *LPBSTRBLOB; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 736 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 737 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 738 | cpp_quote("#define VARIANT_TRUE ((VARIANT_BOOL)-1)") |
| 739 | cpp_quote("#define VARIANT_FALSE ((VARIANT_BOOL)0)") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 740 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 741 | cpp_quote("#ifndef _tagBLOB_DEFINED") |
| 742 | cpp_quote("#define _tagBLOB_DEFINED") |
| 743 | cpp_quote("#define _BLOB_DEFINED") |
| 744 | cpp_quote("#define _LPBLOB_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 745 | typedef struct tagBLOB { |
| 746 | ULONG cbSize; |
| 747 | [size_is(cbSize)] BYTE *pBlobData; |
| 748 | } BLOB, *LPBLOB; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 749 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 750 | |
| 751 | typedef struct tagCLIPDATA { |
| 752 | ULONG cbSize; |
| 753 | long ulClipFmt; |
| 754 | [size_is(cbSize-4)] BYTE *pClipData; |
| 755 | } CLIPDATA; |
| 756 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 757 | cpp_quote("#define CBPCLIPDATA(clipdata) ((clipdata).cbSize - sizeof((clipdata).ulClipFmt))") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 758 | |
| 759 | typedef unsigned short VARTYPE; |
| 760 | |
| 761 | #include <psdk_inc/_varenum.h> |
| 762 | |
| 763 | typedef ULONG PROPID; |
| 764 | |
| 765 | cpp_quote("#ifndef PROPERTYKEY_DEFINED") |
| 766 | cpp_quote("#define PROPERTYKEY_DEFINED") |
| 767 | typedef struct _tagpropertykey { |
| 768 | GUID fmtid; |
| 769 | DWORD pid; |
| 770 | } PROPERTYKEY; |
| 771 | cpp_quote("#endif") |
| 772 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 773 | cpp_quote("#ifndef SID_IDENTIFIER_AUTHORITY_DEFINED") |
| 774 | cpp_quote("#define SID_IDENTIFIER_AUTHORITY_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 775 | typedef struct _SID_IDENTIFIER_AUTHORITY { |
| 776 | UCHAR Value[6]; |
| 777 | } SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 778 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 779 | |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 780 | cpp_quote("#ifndef SID_DEFINED") |
| 781 | cpp_quote("#define SID_DEFINED") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 782 | typedef struct _SID { |
| 783 | BYTE Revision; |
| 784 | BYTE SubAuthorityCount; |
| 785 | SID_IDENTIFIER_AUTHORITY IdentifierAuthority; |
| 786 | [size_is(SubAuthorityCount)] ULONG SubAuthority[*]; |
| 787 | } SID, *PISID; |
| 788 | |
| 789 | typedef struct _SID_AND_ATTRIBUTES { |
| 790 | SID *Sid; |
| 791 | DWORD Attributes; |
| 792 | } SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES; |
Jacek Caban | fa634ec | 2011-09-03 10:31:21 +0000 | [diff] [blame] | 793 | cpp_quote("#endif") |
Jacek Caban | 650843a | 2011-12-30 16:30:59 +0000 | [diff] [blame] | 794 | |
| 795 | typedef struct tagCSPLATFORM { |
| 796 | DWORD dwPlatformId; |
| 797 | DWORD dwVersionHi; |
| 798 | DWORD dwVersionLo; |
| 799 | DWORD dwProcessorArch; |
| 800 | } CSPLATFORM; |
| 801 | |
| 802 | typedef struct tagQUERYCONTEXT { |
| 803 | DWORD dwContext; |
| 804 | CSPLATFORM Platform; |
| 805 | LCID Locale; |
| 806 | DWORD dwVersionHi; |
| 807 | DWORD dwVersionLo; |
| 808 | } QUERYCONTEXT; |
| 809 | |
| 810 | typedef [v1_enum] enum tagTYSPEC { |
| 811 | TYSPEC_CLSID = 0, |
| 812 | TYSPEC_FILEEXT, |
| 813 | TYSPEC_MIMETYPE, |
| 814 | TYSPEC_FILENAME, |
| 815 | TYSPEC_PROGID, |
| 816 | TYSPEC_PACKAGENAME, |
| 817 | TYSPEC_OBJECTID |
| 818 | } TYSPEC; |
| 819 | |
| 820 | typedef union switch(DWORD tyspec) { |
| 821 | case TYSPEC_CLSID: |
| 822 | CLSID clsid; |
| 823 | case TYSPEC_FILEEXT: |
| 824 | LPOLESTR pFileExt; |
| 825 | case TYSPEC_MIMETYPE: |
| 826 | LPOLESTR pMimeType; |
| 827 | case TYSPEC_PROGID: |
| 828 | LPOLESTR pProgId; |
| 829 | case TYSPEC_FILENAME: |
| 830 | LPOLESTR pFileName; |
| 831 | case TYSPEC_PACKAGENAME: |
| 832 | struct { |
| 833 | LPOLESTR pPackageName; |
| 834 | GUID PolicyId; |
| 835 | } ByName; |
| 836 | case TYSPEC_OBJECTID: |
| 837 | struct { |
| 838 | GUID ObjectId; |
| 839 | GUID PolicyId; |
| 840 | } ByObjectId; |
| 841 | } uCLSSPEC; |