| 1 | /* | 
 
 
 
 
 | 2 | * windef.h | 
 
 
 
 
 | 3 | * | 
 
 
 
 
 | 4 | * Common definitions for the Win32 API. | 
 
 
 
 
 | 5 | * | 
 
 
 
 
 | 6 | * $Id: windef.h,v 34e5e7606781 2016/05/23 18:31:09 keithmarshall $ | 
 
 
 
 
 | 7 | * | 
 
 
 
 
 | 8 | * Written by Anders Norlander  <anorland@hem2.passagen.se> | 
 
 
 
 
 | 9 | * Copyright (C) 1998-2002, 2006-2008, 2010, 2015, MinGW.org Project | 
 
 
 
 
 | 10 | * | 
 
 
 
 
 | 11 | * | 
 
 
 
 
 | 12 | * Permission is hereby granted, free of charge, to any person obtaining a | 
 
 
 
 
 | 13 | * copy of this software and associated documentation files (the "Software"), | 
 
 
 
 
 | 14 | * to deal in the Software without restriction, including without limitation | 
 
 
 
 
 | 15 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | 
 
 
 
 
 | 16 | * and/or sell copies of the Software, and to permit persons to whom the | 
 
 
 
 
 | 17 | * Software is furnished to do so, subject to the following conditions: | 
 
 
 
 
 | 18 | * | 
 
 
 
 
 | 19 | * The above copyright notice and this permission notice (including the next | 
 
 
 
 
 | 20 | * paragraph) shall be included in all copies or substantial portions of the | 
 
 
 
 
 | 21 | * Software. | 
 
 
 
 
 | 22 | * | 
 
 
 
 
 | 23 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
 
 
 
 
 | 24 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
 
 
 
 
 | 25 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | 
 
 
 
 
 | 26 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 
 
 
 
 
 | 27 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | 
 
 
 
 
 | 28 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 
 
 
 
 
 | 29 | * DEALINGS IN THE SOFTWARE. | 
 
 
 
 
 | 30 | * | 
 
 
 
 
 | 31 | */ | 
 
 
 
 
 | 32 | #ifndef _WINDEF_H | 
 
 
 
 
 | 33 | #define _WINDEF_H | 
 
 
 
 
 | 34 | #pragma GCC system_header | 
 
 
 
 
 | 35 |  | 
 
 
 
 
 | 36 | /* We used to provide preprocessor code here, to ensure that WINVER | 
 
 
 
 
 | 37 | * and _WIN32_WINNT are defined; this is now handled by inclusion of | 
 
 
 
 
 | 38 | * w32api.h, which in turn includes sdkddkver.h, so implementing the | 
 
 
 
 
 | 39 | * preferred technique of deriving these from a user assigned, (or | 
 
 
 
 
 | 40 | * default), NTDDI_VERSION setting. | 
 
 
 
 
 | 41 | */ | 
 
 
 
 
 | 42 | #include <w32api.h> | 
 
 
 
 
 | 43 |  | 
 
 
 
 
 | 44 | _BEGIN_C_DECLS | 
 
 
 
 
 | 45 |  | 
 
 
 
 
 | 46 | #ifndef WIN32 | 
 
 
 
 
 | 47 | #define WIN32 | 
 
 
 
 
 | 48 | #endif | 
 
 
 
 
 | 49 | #ifndef _WIN32 | 
 
 
 
 
 | 50 | #define _WIN32 | 
 
 
 
 
 | 51 | #endif | 
 
 
 
 
 | 52 | #define FAR | 
 
 
 
 
 | 53 | #define far | 
 
 
 
 
 | 54 | #define NEAR | 
 
 
 
 
 | 55 | #define near | 
 
 
 
 
 | 56 | #ifndef CONST | 
 
 
 
 
 | 57 | #define CONST const | 
 
 
 
 
 | 58 | #endif | 
 
 
 
 
 | 59 | #undef MAX_PATH | 
 
 
 
 
 | 60 | #define MAX_PATH 260 | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | #ifndef NULL | 
 
 
 
 
 | 63 | #ifdef __cplusplus | 
 
 
 
 
 | 64 | #define NULL 0 | 
 
 
 
 
 | 65 | #else | 
 
 
 
 
 | 66 | #define NULL ((void*)0) | 
 
 
 
 
 | 67 | #endif | 
 
 
 
 
 | 68 | #endif | 
 
 
 
 
 | 69 | #ifndef FALSE | 
 
 
 
 
 | 70 | #define FALSE 0 | 
 
 
 
 
 | 71 | #endif | 
 
 
 
 
 | 72 | #ifndef TRUE | 
 
 
 
 
 | 73 | #define TRUE 1 | 
 
 
 
 
 | 74 | #endif | 
 
 
 
 
 | 75 |  | 
 
 
 
 
 | 76 | #ifndef _NO_W32_PSEUDO_MODIFIERS | 
 
 
 
 
 | 77 | /* Pseudo-modifiers support function argument classification: | 
 
 
 
 
 | 78 | * we don't use these unnecessary defines in the w32api headers, | 
 
 
 
 
 | 79 | * but define them by default, since that is what people expect; | 
 
 
 
 
 | 80 | * this is conditional, so that users may avoid the pollution. | 
 
 
 
 
 | 81 | */ | 
 
 
 
 
 | 82 | # define IN | 
 
 
 
 
 | 83 | # define OUT | 
 
 
 
 
 | 84 | # ifndef OPTIONAL | 
 
 
 
 
 | 85 | #  define OPTIONAL | 
 
 
 
 
 | 86 | # endif | 
 
 
 
 
 | 87 | #endif | 
 
 
 
 
 | 88 |  | 
 
 
 
 
 | 89 | #ifdef __GNUC__ | 
 
 
 
 
 | 90 | #ifndef _fastcall | 
 
 
 
 
 | 91 | #define _fastcall __attribute__((fastcall)) | 
 
 
 
 
 | 92 | #endif | 
 
 
 
 
 | 93 | #ifndef __fastcall | 
 
 
 
 
 | 94 | #define __fastcall __attribute__((fastcall)) | 
 
 
 
 
 | 95 | #endif | 
 
 
 
 
 | 96 | #ifndef _stdcall | 
 
 
 
 
 | 97 | #define _stdcall __attribute__((stdcall)) | 
 
 
 
 
 | 98 | #endif | 
 
 
 
 
 | 99 | #ifndef __stdcall | 
 
 
 
 
 | 100 | #define __stdcall __attribute__((stdcall)) | 
 
 
 
 
 | 101 | #endif | 
 
 
 
 
 | 102 | #ifndef _cdecl | 
 
 
 
 
 | 103 | #define _cdecl __attribute__((cdecl)) | 
 
 
 
 
 | 104 | #endif | 
 
 
 
 
 | 105 | #ifndef __cdecl | 
 
 
 
 
 | 106 | #define __cdecl __attribute__((cdecl)) | 
 
 
 
 
 | 107 | #endif | 
 
 
 
 
 | 108 | #ifndef __declspec | 
 
 
 
 
 | 109 | #define __declspec(e) __attribute__((e)) | 
 
 
 
 
 | 110 | #endif | 
 
 
 
 
 | 111 | #ifndef _declspec | 
 
 
 
 
 | 112 | #define _declspec(e) __attribute__((e)) | 
 
 
 
 
 | 113 | #endif | 
 
 
 
 
 | 114 | #else | 
 
 
 
 
 | 115 | #define _cdecl | 
 
 
 
 
 | 116 | #define __cdecl | 
 
 
 
 
 | 117 | #endif | 
 
 
 
 
 | 118 |  | 
 
 
 
 
 | 119 | #undef pascal | 
 
 
 
 
 | 120 | #undef _pascal | 
 
 
 
 
 | 121 | #undef __pascal | 
 
 
 
 
 | 122 | #define pascal __stdcall | 
 
 
 
 
 | 123 | #define _pascal __stdcall | 
 
 
 
 
 | 124 | #define __pascal __stdcall | 
 
 
 
 
 | 125 | #define PASCAL _pascal | 
 
 
 
 
 | 126 | #define CDECL _cdecl | 
 
 
 
 
 | 127 | #define STDCALL __stdcall | 
 
 
 
 
 | 128 | #define FASTCALL __fastcall | 
 
 
 
 
 | 129 | #define WINAPI __stdcall | 
 
 
 
 
 | 130 | #define WINAPIV __cdecl | 
 
 
 
 
 | 131 | #define APIENTRY __stdcall | 
 
 
 
 
 | 132 | #define CALLBACK __stdcall | 
 
 
 
 
 | 133 | #define APIPRIVATE __stdcall | 
 
 
 
 
 | 134 |  | 
 
 
 
 
 | 135 | #define DECLSPEC_IMPORT __declspec(dllimport) | 
 
 
 
 
 | 136 | #define DECLSPEC_EXPORT __declspec(dllexport) | 
 
 
 
 
 | 137 | #ifdef __GNUC__ | 
 
 
 
 
 | 138 | #define DECLSPEC_NORETURN __declspec(noreturn) | 
 
 
 
 
 | 139 | #define DECLARE_STDCALL_P( type ) __stdcall type | 
 
 
 
 
 | 140 | #elif defined(__WATCOMC__) | 
 
 
 
 
 | 141 | #define DECLSPEC_NORETURN | 
 
 
 
 
 | 142 | #define DECLARE_STDCALL_P( type ) type __stdcall | 
 
 
 
 
 | 143 | #endif /* __GNUC__/__WATCOMC__ */ | 
 
 
 
 
 | 144 | #define MAKEWORD(a,b)   ((WORD)(((BYTE)(a))|(((WORD)((BYTE)(b)))<<8))) | 
 
 
 
 
 | 145 | #define MAKELONG(a,b)   ((LONG)(((WORD)(a))|(((DWORD)((WORD)(b)))<<16))) | 
 
 
 
 
 | 146 | #define LOWORD(l)       ((WORD)((DWORD)(l))) | 
 
 
 
 
 | 147 | #define HIWORD(l)       ((WORD)(((DWORD)(l)>>16)&0xFFFF)) | 
 
 
 
 
 | 148 | #define LOBYTE(w)       ((BYTE)(w)) | 
 
 
 
 
 | 149 | #define HIBYTE(w)       ((BYTE)(((WORD)(w)>>8)&0xFF)) | 
 
 
 
 
 | 150 |  | 
 
 
 
 
 | 151 | #ifndef __WATCOMC__ | 
 
 
 
 
 | 152 | #ifndef _export | 
 
 
 
 
 | 153 | #define _export | 
 
 
 
 
 | 154 | #endif | 
 
 
 
 
 | 155 | #ifndef __export | 
 
 
 
 
 | 156 | #define __export | 
 
 
 
 
 | 157 | #endif | 
 
 
 
 
 | 158 | #endif | 
 
 
 
 
 | 159 |  | 
 
 
 
 
 | 160 | #ifndef NOMINMAX | 
 
 
 
 
 | 161 | #ifndef max | 
 
 
 
 
 | 162 | #define max(a,b) ((a)>(b)?(a):(b)) | 
 
 
 
 
 | 163 | #endif | 
 
 
 
 
 | 164 | #ifndef min | 
 
 
 
 
 | 165 | #define min(a,b) ((a)<(b)?(a):(b)) | 
 
 
 
 
 | 166 | #endif | 
 
 
 
 
 | 167 | #endif | 
 
 
 
 
 | 168 |  | 
 
 
 
 
 | 169 | #define UNREFERENCED_PARAMETER(P) {(P)=(P);} | 
 
 
 
 
 | 170 | #define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);} | 
 
 
 
 
 | 171 | #define DBG_UNREFERENCED_PARAMETER(P) | 
 
 
 
 
 | 172 | #define DBG_UNREFERENCED_LOCAL_VARIABLE(L) | 
 
 
 
 
 | 173 |  | 
 
 
 
 
 | 174 | #ifndef NONAMELESSUNION | 
 
 
 
 
 | 175 | #ifdef __GNUC__ | 
 
 
 
 
 | 176 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) | 
 
 
 
 
 | 177 | #define _ANONYMOUS_UNION __extension__ | 
 
 
 
 
 | 178 | #define _ANONYMOUS_STRUCT __extension__ | 
 
 
 
 
 | 179 | #else | 
 
 
 
 
 | 180 | #if defined(__cplusplus) | 
 
 
 
 
 | 181 | #define _ANONYMOUS_UNION __extension__ | 
 
 
 
 
 | 182 | #endif /* __cplusplus */ | 
 
 
 
 
 | 183 | #endif /* __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) */ | 
 
 
 
 
 | 184 | #elif defined(__WATCOMC__) | 
 
 
 
 
 | 185 | #define _ANONYMOUS_UNION | 
 
 
 
 
 | 186 | #define _ANONYMOUS_STRUCT | 
 
 
 
 
 | 187 | #endif /* __GNUC__/__WATCOMC__ */ | 
 
 
 
 
 | 188 | #endif /* NONAMELESSUNION */ | 
 
 
 
 
 | 189 |  | 
 
 
 
 
 | 190 | #ifndef _ANONYMOUS_UNION | 
 
 
 
 
 | 191 | #define _ANONYMOUS_UNION | 
 
 
 
 
 | 192 | #define _UNION_NAME(x) x | 
 
 
 
 
 | 193 | #define DUMMYUNIONNAME  u | 
 
 
 
 
 | 194 | #define DUMMYUNIONNAME2 u2 | 
 
 
 
 
 | 195 | #define DUMMYUNIONNAME3 u3 | 
 
 
 
 
 | 196 | #define DUMMYUNIONNAME4 u4 | 
 
 
 
 
 | 197 | #define DUMMYUNIONNAME5 u5 | 
 
 
 
 
 | 198 | #define DUMMYUNIONNAME6 u6 | 
 
 
 
 
 | 199 | #define DUMMYUNIONNAME7 u7 | 
 
 
 
 
 | 200 | #define DUMMYUNIONNAME8 u8 | 
 
 
 
 
 | 201 | #else | 
 
 
 
 
 | 202 | #define _UNION_NAME(x) | 
 
 
 
 
 | 203 | #define DUMMYUNIONNAME | 
 
 
 
 
 | 204 | #define DUMMYUNIONNAME2 | 
 
 
 
 
 | 205 | #define DUMMYUNIONNAME3 | 
 
 
 
 
 | 206 | #define DUMMYUNIONNAME4 | 
 
 
 
 
 | 207 | #define DUMMYUNIONNAME5 | 
 
 
 
 
 | 208 | #define DUMMYUNIONNAME6 | 
 
 
 
 
 | 209 | #define DUMMYUNIONNAME7 | 
 
 
 
 
 | 210 | #define DUMMYUNIONNAME8 | 
 
 
 
 
 | 211 | #endif | 
 
 
 
 
 | 212 | #ifndef _ANONYMOUS_STRUCT | 
 
 
 
 
 | 213 | #define _ANONYMOUS_STRUCT | 
 
 
 
 
 | 214 | #define _STRUCT_NAME(x) x | 
 
 
 
 
 | 215 | #define DUMMYSTRUCTNAME s | 
 
 
 
 
 | 216 | #define DUMMYSTRUCTNAME2 s2 | 
 
 
 
 
 | 217 | #define DUMMYSTRUCTNAME3 s3 | 
 
 
 
 
 | 218 | #else | 
 
 
 
 
 | 219 | #define _STRUCT_NAME(x) | 
 
 
 
 
 | 220 | #define DUMMYSTRUCTNAME | 
 
 
 
 
 | 221 | #define DUMMYSTRUCTNAME2 | 
 
 
 
 
 | 222 | #define DUMMYSTRUCTNAME3 | 
 
 
 
 
 | 223 | #endif | 
 
 
 
 
 | 224 |  | 
 
 
 
 
 | 225 | #ifndef NO_STRICT | 
 
 
 
 
 | 226 | #ifndef STRICT | 
 
 
 
 
 | 227 | #define STRICT 1 | 
 
 
 
 
 | 228 | #endif | 
 
 
 
 
 | 229 | #endif | 
 
 
 
 
 | 230 |  | 
 
 
 
 
 | 231 | #if defined (__GNUC__) && defined (__SEH_NOOP) | 
 
 
 
 
 | 232 | /* FIXME: This will make some code compile. The programs will most | 
 
 
 
 
 | 233 | * likely crash when an exception is raised, but at least they will | 
 
 
 
 
 | 234 | * compile. | 
 
 
 
 
 | 235 | */ | 
 
 
 
 
 | 236 | # define __try | 
 
 
 
 
 | 237 | # define __except(x) if (0) /* don't execute handler */ | 
 
 
 
 
 | 238 | # define __finally | 
 
 
 
 
 | 239 |  | 
 
 
 
 
 | 240 | # define _try __try | 
 
 
 
 
 | 241 | # define _except __except | 
 
 
 
 
 | 242 | # define _finally __finally | 
 
 
 
 
 | 243 | #endif | 
 
 
 
 
 | 244 |  | 
 
 
 
 
 | 245 | typedef unsigned long DWORD; | 
 
 
 
 
 | 246 | typedef int WINBOOL,*PWINBOOL,*LPWINBOOL; | 
 
 
 
 
 | 247 | /* FIXME: Is there a good solution to this? */ | 
 
 
 
 
 | 248 | #ifndef XFree86Server | 
 
 
 
 
 | 249 | #ifndef __OBJC__ | 
 
 
 
 
 | 250 | typedef WINBOOL BOOL; | 
 
 
 
 
 | 251 | #else | 
 
 
 
 
 | 252 | #define BOOL WINBOOL | 
 
 
 
 
 | 253 | #endif | 
 
 
 
 
 | 254 | typedef unsigned char BYTE; | 
 
 
 
 
 | 255 | #endif /* ndef XFree86Server */ | 
 
 
 
 
 | 256 | typedef BOOL *PBOOL,*LPBOOL; | 
 
 
 
 
 | 257 | typedef unsigned short WORD; | 
 
 
 
 
 | 258 | typedef float FLOAT; | 
 
 
 
 
 | 259 | typedef FLOAT *PFLOAT; | 
 
 
 
 
 | 260 | typedef BYTE *PBYTE,*LPBYTE; | 
 
 
 
 
 | 261 | typedef int *PINT,*LPINT; | 
 
 
 
 
 | 262 | typedef WORD *PWORD,*LPWORD; | 
 
 
 
 
 | 263 | typedef long *LPLONG; | 
 
 
 
 
 | 264 | typedef DWORD *PDWORD,*LPDWORD; | 
 
 
 
 
 | 265 | typedef CONST void *PCVOID,*LPCVOID; | 
 
 
 
 
 | 266 | typedef int INT; | 
 
 
 
 
 | 267 | typedef unsigned int UINT,*PUINT,*LPUINT; | 
 
 
 
 
 | 268 |  | 
 
 
 
 
 | 269 | #include <winnt.h> | 
 
 
 
 
 | 270 |  | 
 
 
 
 
 | 271 | typedef UINT_PTR WPARAM; | 
 
 
 
 
 | 272 | typedef LONG_PTR LPARAM; | 
 
 
 
 
 | 273 | typedef LONG_PTR LRESULT; | 
 
 
 
 
 | 274 | #ifndef _HRESULT_DEFINED | 
 
 
 
 
 | 275 | typedef LONG HRESULT; | 
 
 
 
 
 | 276 | #define _HRESULT_DEFINED | 
 
 
 
 
 | 277 | #endif | 
 
 
 
 
 | 278 | #ifndef XFree86Server | 
 
 
 
 
 | 279 | typedef WORD ATOM; | 
 
 
 
 
 | 280 | #endif /* XFree86Server */ | 
 
 
 
 
 | 281 | typedef HANDLE HHOOK; | 
 
 
 
 
 | 282 | typedef HANDLE HGLOBAL; | 
 
 
 
 
 | 283 | typedef HANDLE HLOCAL; | 
 
 
 
 
 | 284 | typedef HANDLE GLOBALHANDLE; | 
 
 
 
 
 | 285 | typedef HANDLE LOCALHANDLE; | 
 
 
 
 
 | 286 | typedef void *HGDIOBJ; | 
 
 
 
 
 | 287 | DECLARE_HANDLE(HACCEL); | 
 
 
 
 
 | 288 | DECLARE_HANDLE(HBITMAP); | 
 
 
 
 
 | 289 | DECLARE_HANDLE(HBRUSH); | 
 
 
 
 
 | 290 | DECLARE_HANDLE(HCOLORSPACE); | 
 
 
 
 
 | 291 | DECLARE_HANDLE(HDC); | 
 
 
 
 
 | 292 | DECLARE_HANDLE(HGLRC); | 
 
 
 
 
 | 293 | DECLARE_HANDLE(HDESK); | 
 
 
 
 
 | 294 | DECLARE_HANDLE(HENHMETAFILE); | 
 
 
 
 
 | 295 | DECLARE_HANDLE(HFONT); | 
 
 
 
 
 | 296 | DECLARE_HANDLE(HICON); | 
 
 
 
 
 | 297 | DECLARE_HANDLE(HKEY); | 
 
 
 
 
 | 298 | /* FIXME: How to handle these. SM_CMONITORS etc in winuser.h also. */ | 
 
 
 
 
 | 299 | DECLARE_HANDLE(HMONITOR); | 
 
 
 
 
 | 300 | #define HMONITOR_DECLARED 1 | 
 
 
 
 
 | 301 | DECLARE_HANDLE(HTERMINAL); | 
 
 
 
 
 | 302 | DECLARE_HANDLE(HWINEVENTHOOK); | 
 
 
 
 
 | 303 |  | 
 
 
 
 
 | 304 | typedef HKEY *PHKEY; | 
 
 
 
 
 | 305 | DECLARE_HANDLE(HMENU); | 
 
 
 
 
 | 306 | DECLARE_HANDLE(HMETAFILE); | 
 
 
 
 
 | 307 | DECLARE_HANDLE(HINSTANCE); | 
 
 
 
 
 | 308 | typedef HINSTANCE HMODULE; | 
 
 
 
 
 | 309 | DECLARE_HANDLE(HPALETTE); | 
 
 
 
 
 | 310 | DECLARE_HANDLE(HPEN); | 
 
 
 
 
 | 311 | DECLARE_HANDLE(HRGN); | 
 
 
 
 
 | 312 | DECLARE_HANDLE(HRSRC); | 
 
 
 
 
 | 313 | DECLARE_HANDLE(HSTR); | 
 
 
 
 
 | 314 | DECLARE_HANDLE(HTASK); | 
 
 
 
 
 | 315 | DECLARE_HANDLE(HWND); | 
 
 
 
 
 | 316 | DECLARE_HANDLE(HWINSTA); | 
 
 
 
 
 | 317 | DECLARE_HANDLE(HKL); | 
 
 
 
 
 | 318 | typedef int HFILE; | 
 
 
 
 
 | 319 | typedef HICON HCURSOR; | 
 
 
 
 
 | 320 | typedef DWORD COLORREF; | 
 
 
 
 
 | 321 | typedef int (WINAPI *FARPROC)(); | 
 
 
 
 
 | 322 | typedef int (WINAPI *NEARPROC)(); | 
 
 
 
 
 | 323 | typedef int (WINAPI *PROC)(); | 
 
 
 
 
 | 324 | typedef struct tagRECT { | 
 
 
 
 
 | 325 | LONG left; | 
 
 
 
 
 | 326 | LONG top; | 
 
 
 
 
 | 327 | LONG right; | 
 
 
 
 
 | 328 | LONG bottom; | 
 
 
 
 
 | 329 | } RECT,*PRECT,*LPRECT; | 
 
 
 
 
 | 330 | typedef const RECT *LPCRECT; | 
 
 
 
 
 | 331 | typedef struct tagRECTL { | 
 
 
 
 
 | 332 | LONG left; | 
 
 
 
 
 | 333 | LONG top; | 
 
 
 
 
 | 334 | LONG right; | 
 
 
 
 
 | 335 | LONG bottom; | 
 
 
 
 
 | 336 | } RECTL,*PRECTL,*LPRECTL; | 
 
 
 
 
 | 337 | typedef const RECTL *LPCRECTL; | 
 
 
 
 
 | 338 | typedef struct tagPOINT { | 
 
 
 
 
 | 339 | LONG x; | 
 
 
 
 
 | 340 | LONG y; | 
 
 
 
 
 | 341 | } POINT,POINTL,*PPOINT,*LPPOINT,*PPOINTL,*LPPOINTL; | 
 
 
 
 
 | 342 | typedef struct tagSIZE { | 
 
 
 
 
 | 343 | LONG cx; | 
 
 
 
 
 | 344 | LONG cy; | 
 
 
 
 
 | 345 | } SIZE,SIZEL,*PSIZE,*LPSIZE,*PSIZEL,*LPSIZEL; | 
 
 
 
 
 | 346 | typedef struct tagPOINTS { | 
 
 
 
 
 | 347 | SHORT x; | 
 
 
 
 
 | 348 | SHORT y; | 
 
 
 
 
 | 349 | } POINTS,*PPOINTS,*LPPOINTS; | 
 
 
 
 
 | 350 |  | 
 
 
 
 
 | 351 | _END_C_DECLS | 
 
 
 
 
 | 352 |  | 
 
 
 
 
 | 353 | #endif /* _WINDEF_H: $RCSfile: windef.h,v $: end of file */ |