/*
 * Basic types definitions
 *
 * Copyright 1996 Alexandre Julliard
 */

#ifndef __WINE_WINDEF_H
#define __WINE_WINDEF_H __WINE_WINDEF_H

typedef void            VOID;
typedef int             INT;
typedef unsigned int    UINT;
typedef unsigned short  WORD;
typedef unsigned int    DWORD;
typedef unsigned int    ULONG;
typedef unsigned char   BYTE;
typedef long            LONG;
typedef short           SHORT;
typedef unsigned short  USHORT;
typedef char            CHAR;
typedef unsigned char   UCHAR;

typedef short           INT16;
typedef unsigned short  UINT16;
typedef unsigned short  WIN_BOOL16;

/* Macro for structure packing. */

#ifdef __GNUC__
#ifndef _EGCS_
#define WINE_PACKED   __attribute__((packed))
#define WINE_UNUSED   __attribute__((unused))
#define WINE_NORETURN __attribute__((noreturn))
#endif
#else
#define WINE_PACKED    /* nothing */
#define WINE_UNUSED    /* nothing */
#define WINE_NORETURN  /* nothing */
#endif

/* The RECT structure */
typedef struct tagRECT
{
    short  left;
    short  top;
    short  right;
    short  bottom;
} RECT, *PRECT, *LPRECT;
#endif /* __WINE_WINDEF_H */
