3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Basic types definitions
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright 1996 Alexandre Julliard
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _WINDEF_
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _WINDEF_
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef WINVER
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define WINVER 0x0500
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef NO_STRICT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# ifndef STRICT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define STRICT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif /* STRICT */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* NO_STRICT */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncextern "C" {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Calling conventions definitions */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#if (defined(__x86_64__) || defined(__powerpc64__) || defined(__sparc64__) || defined(__aarch64__)) && !defined(_WIN64)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _WIN64
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _WIN64
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(__i386__) && !defined(_X86_)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define _X86_
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(_X86_) && !defined(__i386__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __i386__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# ifdef __i386__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# ifdef __GNUC__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __stdcall __attribute__((__stdcall__))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# elif defined(_MSC_VER)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync /* Nothing needs to be done. __stdcall already exists */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# error You need to define __stdcall for your compiler
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# elif defined(__x86_64__) && defined (__GNUC__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __stdcall __attribute__((ms_abi))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else /* __i386__ */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif /* __i386__ */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* __stdcall */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(__i386__) && defined(__GNUC__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 2)) || defined(__APPLE__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __cdecl __attribute__((__cdecl__))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# elif defined(__x86_64__) && defined (__GNUC__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __cdecl __attribute__((ms_abi))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# elif !defined(_MSC_VER)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* __cdecl */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __ms_va_list
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# if defined(__x86_64__) && defined (__GNUC__)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __ms_va_list __builtin_ms_va_list
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __ms_va_end(list) __builtin_ms_va_end(list)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __ms_va_list va_list
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __ms_va_start(list,arg) va_start(list,arg)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __ms_va_end(list) va_end(list)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __WINESRC__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __ONLY_IN_WINELIB(x) do_not_use_this_in_wine
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __ONLY_IN_WINELIB(x) x
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef pascal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define pascal __ONLY_IN_WINELIB(__stdcall)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _pascal
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _pascal __ONLY_IN_WINELIB(__stdcall)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _stdcall __ONLY_IN_WINELIB(__stdcall)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _fastcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _fastcall __ONLY_IN_WINELIB(__stdcall)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __fastcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __fastcall __ONLY_IN_WINELIB(__stdcall)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __export
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __export __ONLY_IN_WINELIB(__stdcall)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define cdecl __ONLY_IN_WINELIB(__cdecl)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _cdecl __ONLY_IN_WINELIB(__cdecl)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef near
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define near __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef far
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define far __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _near
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _near __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _far
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _far __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef NEAR
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NEAR __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef FAR
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FAR __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef _MSC_VER
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# ifndef _declspec
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define _declspec(x) __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# ifndef __declspec
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define __declspec(x) __ONLY_IN_WINELIB(/* nothing */)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef _MSC_VER
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define inline __inline
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CALLBACK __stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define WINAPI __stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define APIPRIVATE __stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define PASCAL __stdcall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CDECL __cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _CDECL __cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define WINAPIV __cdecl
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define APIENTRY WINAPI
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define CONST __ONLY_IN_WINELIB(const)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Misc. constants. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef NULL
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NULL 0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define NULL ((void*)0)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef FALSE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef FALSE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FALSE 0
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef TRUE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef TRUE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define TRUE 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef IN
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define IN
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef OUT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define OUT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef OPTIONAL
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define OPTIONAL
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Standard data types */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef void *LPVOID;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef const void *LPCVOID;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef int BOOL, *PBOOL, *LPBOOL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned char BYTE, *PBYTE, *LPBYTE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned char UCHAR, *PUCHAR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned short WORD, *PWORD, *LPWORD;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned short USHORT, *PUSHORT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef int INT, *PINT, *LPINT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned int UINT, *PUINT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef float FLOAT, *PFLOAT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef char *PSZ;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef _MSC_VER
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef long *LPLONG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned long DWORD, *PDWORD, *LPDWORD;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned long ULONG, *PULONG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef int *LPLONG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned int DWORD, *PDWORD, *LPDWORD;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef unsigned int ULONG, *PULONG;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Macros to map Winelib names to the correct implementation name */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Note that Winelib is purely Win32. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __WINESRC__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define WINE_NO_UNICODE_MACROS 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define WINE_STRICT_PROTOTYPES 1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef WINE_NO_UNICODE_MACROS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define WINELIB_NAME_AW(func) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync func##_must_be_suffixed_with_W_or_A_in_this_context \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync func##_must_be_suffixed_with_W_or_A_in_this_context
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else /* WINE_NO_UNICODE_MACROS */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# ifdef UNICODE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define WINELIB_NAME_AW(func) func##W
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define WINELIB_NAME_AW(func) func##A
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* WINE_NO_UNICODE_MACROS */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef WINE_NO_UNICODE_MACROS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define DECL_WINELIB_TYPE_AW(type) /* nothing */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <winnt.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Polymorphic types */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef UINT_PTR WPARAM;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef LONG_PTR LPARAM;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef LONG_PTR LRESULT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Integer types */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef WORD ATOM;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef DWORD COLORREF, *LPCOLORREF;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Handle types */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef int HFILE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HACCEL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HBITMAP);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HBRUSH);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HCOLORSPACE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HDC);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HDESK);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HENHMETAFILE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HFONT);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HGLRC);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HHOOK);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HICON);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HINSTANCE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HKEY);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HKEY *PHKEY;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HKL);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HMENU);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HMETAFILE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HMONITOR);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HPALETTE);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HPEN);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HRGN);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HRSRC);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HTASK);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HWINEVENTHOOK);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HWINSTA);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLARE_HANDLE(HWND);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Handle types that must remain interchangeable even with strict on */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HINSTANCE HMODULE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HANDLE HGDIOBJ;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HANDLE HGLOBAL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HANDLE HLOCAL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HANDLE GLOBALHANDLE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HANDLE LOCALHANDLE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef HICON HCURSOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Callback function pointers types */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef WINE_STRICT_PROTOTYPES
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef INT_PTR (CALLBACK *FARPROC)(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef INT_PTR (CALLBACK *NEARPROC)(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef INT_PTR (CALLBACK *PROC)(void);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef INT_PTR (CALLBACK *FARPROC)();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef INT_PTR (CALLBACK *NEARPROC)();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef INT_PTR (CALLBACK *PROC)();
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* Macros to split words and longs. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LOBYTE(w) ((BYTE)((DWORD_PTR)(w) & 0xFF))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HIBYTE(w) ((BYTE)((DWORD_PTR)(w) >> 8))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define LOWORD(l) ((WORD)((DWORD_PTR)(l) & 0xFFFF))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HIWORD(l) ((WORD)((DWORD_PTR)(l) >> 16))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MAKEWORD(low,high) ((WORD)(((BYTE)((DWORD_PTR)(low) & 0xFF)) | ((WORD)((BYTE)((DWORD_PTR)(high) & 0xFF))) << 8))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MAKELONG(low,high) ((LONG)(((WORD)((DWORD_PTR)(low) & 0xFFFF)) | ((DWORD)((WORD)((DWORD_PTR)(high) & 0xFFFF))) << 16))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* min and max macros */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef NOMINMAX
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef max
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define max(a,b) (((a) > (b)) ? (a) : (b))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef min
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define min(a,b) (((a) < (b)) ? (a) : (b))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* NOMINMAX */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef MAX_PATH /* Work-around for Mingw */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#undef MAX_PATH
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* MAX_PATH */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define MAX_PATH 260
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HFILE_ERROR ((HFILE)-1)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* The SIZE structure */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagSIZE
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG cx;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG cy;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} SIZE, *PSIZE, *LPSIZE;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef SIZE SIZEL, *PSIZEL, *LPSIZEL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* The POINT structure */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagPOINT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG x;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG y;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} POINT, *PPOINT, *LPPOINT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _POINTL
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG x;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG y;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} POINTL, *PPOINTL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* The POINTS structure */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagPOINTS
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef WORDS_BIGENDIAN
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SHORT y;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SHORT x;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SHORT x;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync SHORT y;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} POINTS, *PPOINTS, *LPPOINTS;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _FILETIME {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef WORDS_BIGENDIAN
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwHighDateTime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwLowDateTime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#else
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwLowDateTime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync DWORD dwHighDateTime;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} FILETIME, *PFILETIME, *LPFILETIME;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define _FILETIME_
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* The RECT structure */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct tagRECT
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG left;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG top;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG right;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG bottom;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RECT, *PRECT, *LPRECT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef const RECT *LPCRECT;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _RECTL
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync{
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG left;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG top;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG right;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync LONG bottom;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} RECTL, *PRECTL, *LPRECTL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef const RECTL *LPCRECTL;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync}
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* _WINDEF_ */