/*
**    $Id: windows.h,v 1.4 1993/06/28 03:07:45 pjs Exp $
**    Copyright (C) 1993  Patrick Sweeney
**
**    This program is free software; you can redistribute it and/or modify
**    it under the terms of the GNU General Public License as published by
**    the Free Software Foundation; either version 2 of the License, or
**    any later version.
**
**    This program 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 General Public License for more details.
**
**    You should have received a copy of the GNU General Public License
**    along with this program; if not, write to the Free Software
**    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _WINDOWS_H_
#define _WINDOWS_H_

#include "std.h"
#include <stdio.h>

#define NOT_IMPLEMENTED()\
do {\
	fprintf(stderr, "Function not yet implemented! File=%s Line=%d\n",\
		__FILE__, __LINE__);\
	exit(1);\
} while(0)

#define FALSE 0
#define TRUE 1

#define FAR
#define NEAR
#define far
#define near
#define _interrupt /* FIXX! undefined for now */

#define PASCAL

typedef long (*FARPROC)();
typedef i16_t HANDLE;
typedef HANDLE HWND;
typedef HANDLE GLOBALHANDLE;
typedef HANDLE ATOM;
typedef HANDLE HMEM;
typedef HANDLE HMENU;
typedef HANDLE HDC;
typedef HANDLE HRGN;
typedef HANDLE HBITMAP;
typedef HANDLE HPEN;
typedef HANDLE HCURSOR;
typedef HANDLE HICON;
typedef HANDLE HBRUSH;
typedef HANDLE HPALETTE;
typedef HANDLE HFONT;

typedef i32_t DWORD;
typedef i16_t WORD;
typedef bool_t BOOL;
typedef u8_t BYTE;
typedef i32_t LONG;
typedef void *LPVOID;
typedef char *LPSTR;
typedef char *NPSTR;
typedef char *LPMSG;
typedef BYTE *LPBYTE;
typedef int *LPINT;
typedef char *PSTR;
typedef int CATCHBUF[9];
typedef int *LPCATCHBUF;

typedef any_t *FILECDRPROC;	/* FIXX!!!! */

typedef struct tagPOINT
{
	int x;
	int y;
} POINT, *LPPOINT;

typedef struct tagMSG
{
	HWND hwnd;
	WORD message;
	WORD wParam;
	LONG lParam;
	DWORD time;
	POINT pt;
} MSG;

typedef struct tagRECT
{
	int left;
	int top;
	int right;
	int bottom;
} RECT, *LPRECT;

#endif /* _WINDOWS_H_ */
