windef.h revision 4b9d6701570cb98fd36e209314239d104ec584d3
/*
* Basic types definitions
*
* Copyright 1996 Alexandre Julliard
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef _WINDEF_
#define _WINDEF_
#ifndef WINVER
#define WINVER 0x0500
#endif
#ifndef NO_STRICT
# ifndef STRICT
# define STRICT
# endif /* STRICT */
#endif /* NO_STRICT */
#ifdef __cplusplus
extern "C" {
#endif
/* Calling conventions definitions */
#if defined(__x86_64__) && !defined(_WIN64)
#define _WIN64
#endif
#ifndef _WIN64
# define _X86_
# endif
# define __i386__
# endif
#endif
#ifndef __stdcall
# ifdef __i386__
# ifdef __GNUC__
# ifdef __APPLE__ /* Mac OS X uses a 16-byte aligned stack and not a 4-byte one */
# else
# endif
/* Nothing needs to be done. __stdcall already exists */
# else
# endif
# else /* __i386__ */
# define __stdcall
# endif /* __i386__ */
#endif /* __stdcall */
#ifndef __cdecl
# ifdef __APPLE__ /* Mac OS X uses 16-byte aligned stack and not a 4-byte one */
# else
# endif
# define __cdecl
# endif
#endif /* __cdecl */
#ifndef __ms_va_list
# if defined(__x86_64__) && defined (__GNUC__)
# define __ms_va_list __builtin_ms_va_list
# else
# define __ms_va_list va_list
# endif
#endif
#ifdef __WINESRC__
#define __ONLY_IN_WINELIB(x) do_not_use_this_in_wine
#else
#define __ONLY_IN_WINELIB(x) x
#endif
#ifndef pascal
#endif
#ifndef _pascal
#endif
#ifndef _stdcall
#endif
#ifndef _fastcall
#endif
#ifndef __fastcall
#endif
#ifndef __export
#endif
#ifndef cdecl
#endif
#ifndef _cdecl
#endif
#ifndef near
#endif
#ifndef far
#endif
#ifndef _near
#endif
#ifndef _far
#endif
#ifndef NEAR
#endif
#ifndef FAR
#endif
#ifndef _MSC_VER
# ifndef _declspec
# endif
# ifndef __declspec
# endif
#endif
#ifdef _MSC_VER
# define inline __inline
#endif
#define APIPRIVATE __stdcall
#define CONST const
/* Misc. constants. */
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void*)0)
#endif
#ifdef FALSE
#endif
#define FALSE 0
#ifdef TRUE
#endif
#define TRUE 1
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifndef OPTIONAL
#define OPTIONAL
#endif
/* Standard data types */
typedef void *LPVOID;
typedef const void *LPCVOID;
typedef char *PSZ;
#ifdef _MSC_VER
typedef long *LPLONG;
#else
typedef int *LPLONG;
#endif
/* Macros to map Winelib names to the correct implementation name */
/* Note that Winelib is purely Win32. */
#ifdef __WINESRC__
#define WINE_NO_UNICODE_MACROS 1
#define WINE_STRICT_PROTOTYPES 1
#endif
#ifdef WINE_NO_UNICODE_MACROS
# define WINELIB_NAME_AW(func) \
#else /* WINE_NO_UNICODE_MACROS */
# ifdef UNICODE
# else
# endif
#endif /* WINE_NO_UNICODE_MACROS */
#ifdef WINE_NO_UNICODE_MACROS
#else
#endif
#include <winnt.h>
/* Polymorphic types */
/* Integer types */
/* Handle types */
typedef int HFILE;
/* Handle types that must remain interchangeable even with strict on */
typedef HANDLE GLOBALHANDLE;
typedef HANDLE LOCALHANDLE;
/* Callback function pointers types */
#ifdef WINE_STRICT_PROTOTYPES
#else
#endif
/* Macros to split words and longs. */
#define MAKEWORD(low,high) ((WORD)(((BYTE)((DWORD_PTR)(low) & 0xFF)) | ((WORD)((BYTE)((DWORD_PTR)(high) & 0xFF))) << 8))
#define MAKELONG(low,high) ((LONG)(((WORD)((DWORD_PTR)(low) & 0xFFFF)) | ((DWORD)((WORD)((DWORD_PTR)(high) & 0xFFFF))) << 16))
/* min and max macros */
#ifndef NOMINMAX
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#endif /* NOMINMAX */
#ifdef MAX_PATH /* Work-around for Mingw */
#endif /* MAX_PATH */
#define MAX_PATH 260
/* The SIZE structure */
typedef struct tagSIZE
{
/* The POINT structure */
typedef struct tagPOINT
{
LONG x;
LONG y;
typedef struct _POINTL
{
LONG x;
LONG y;
/* The POINTS structure */
typedef struct tagPOINTS
{
#ifdef WORDS_BIGENDIAN
SHORT y;
SHORT x;
#else
SHORT x;
SHORT y;
#endif
typedef struct _FILETIME {
#ifdef WORDS_BIGENDIAN
#else
#endif
#define _FILETIME_
/* The RECT structure */
typedef struct tagRECT
{
typedef struct _RECTL
{
#ifdef __cplusplus
}
#endif
#endif /* _WINDEF_ */