af062818b47340eef15700d2f0211576ba3506eevboxsync * Basic types definitions
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright 1996 Alexandre Julliard
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * a choice of LGPL license versions is made available with the language indicating
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
b955672b950093ff7416d1269dd4d3b69983bd8fvboxsync * of the LGPL is applied is otherwise unspecified.
af062818b47340eef15700d2f0211576ba3506eevboxsync# endif /* STRICT */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* NO_STRICT */
af062818b47340eef15700d2f0211576ba3506eevboxsyncextern "C" {
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Calling conventions definitions */
af062818b47340eef15700d2f0211576ba3506eevboxsync# ifdef __APPLE__ /* Mac OS X uses a 16-byte aligned stack and not a 4-byte one */
af062818b47340eef15700d2f0211576ba3506eevboxsync# define __stdcall __attribute__((__stdcall__)) __attribute__((__force_align_arg_pointer__))
af062818b47340eef15700d2f0211576ba3506eevboxsync /* Nothing needs to be done. __stdcall already exists */
af062818b47340eef15700d2f0211576ba3506eevboxsync# error You need to define __stdcall for your compiler
af062818b47340eef15700d2f0211576ba3506eevboxsync# else /* __i386__ */
af062818b47340eef15700d2f0211576ba3506eevboxsync# endif /* __i386__ */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __stdcall */
af062818b47340eef15700d2f0211576ba3506eevboxsync# ifdef __APPLE__ /* Mac OS X uses 16-byte aligned stack and not a 4-byte one */
af062818b47340eef15700d2f0211576ba3506eevboxsync# define __cdecl __attribute__((__cdecl__)) __attribute__((__force_align_arg_pointer__))
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* __cdecl */
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync# define __ms_va_start(list,arg) __builtin_ms_va_start(list,arg)
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync# define __ms_va_end(list) __builtin_ms_va_end(list)
af062818b47340eef15700d2f0211576ba3506eevboxsync#define __ONLY_IN_WINELIB(x) do_not_use_this_in_wine
af062818b47340eef15700d2f0211576ba3506eevboxsync# define _declspec(x) __ONLY_IN_WINELIB(/* nothing */)
af062818b47340eef15700d2f0211576ba3506eevboxsync# define __declspec(x) __ONLY_IN_WINELIB(/* nothing */)
af062818b47340eef15700d2f0211576ba3506eevboxsync# define inline __inline
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Misc. constants. */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Standard data types */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Macros to map Winelib names to the correct implementation name */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Note that Winelib is purely Win32. */
af062818b47340eef15700d2f0211576ba3506eevboxsync func##_must_be_suffixed_with_W_or_A_in_this_context \
af062818b47340eef15700d2f0211576ba3506eevboxsync func##_must_be_suffixed_with_W_or_A_in_this_context
af062818b47340eef15700d2f0211576ba3506eevboxsync#else /* WINE_NO_UNICODE_MACROS */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* WINE_NO_UNICODE_MACROS */
af062818b47340eef15700d2f0211576ba3506eevboxsync# define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Polymorphic types */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Integer types */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Handle types */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Handle types that must remain interchangeable even with strict on */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Callback function pointers types */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* Macros to split words and longs. */
af062818b47340eef15700d2f0211576ba3506eevboxsync#define MAKEWORD(low,high) ((WORD)(((BYTE)((DWORD_PTR)(low) & 0xFF)) | ((WORD)((BYTE)((DWORD_PTR)(high) & 0xFF))) << 8))
af062818b47340eef15700d2f0211576ba3506eevboxsync#define MAKELONG(low,high) ((LONG)(((WORD)((DWORD_PTR)(low) & 0xFFFF)) | ((DWORD)((WORD)((DWORD_PTR)(high) & 0xFFFF))) << 16))
af062818b47340eef15700d2f0211576ba3506eevboxsync/* min and max macros */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* NOMINMAX */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* MAX_PATH */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* The SIZE structure */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* The POINT structure */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* The POINTS structure */
af062818b47340eef15700d2f0211576ba3506eevboxsync/* The RECT structure */
af062818b47340eef15700d2f0211576ba3506eevboxsync#endif /* _WINDEF_ */