/*
**    $Id: dc.h,v 1.1 1993/06/27 17:58:17 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 _DC_H_
#define _DC_H_

#include "std.h"
#include "windows.h"
#include "gdi/gdi.h"

typedef struct tagDC
{
	GDIOBJHDR header;
	BYTE byFlags;
	BYTE byFlags2;
	HANDLE hMetaFile;
	HRGN hrgnClip;
	HANDLE hPDevice;
	HANDLE hLPen;
	HANDLE hLBrush;
	HANDLE hLFont;
	HANDLE hBitmap;
	HANDLE dchPal;
	HANDLE hLDevice;
	HRGN hRaoClip;
	HANDLE hPDeviceBlock;
	HANDLE hPPen;
	HANDLE hPBrush;
	HANDLE hPFontTrans;
	HANDLE hPFont;
	LPVOID lpPDevice;
	WORD pLDevice;
	WORD pRaoClip;
	WORD pPDeviceBlock;
	WORD pPPen;
	WORD pPBrush;
	WORD pPFontTrans;
	LPVOID lpPFont;
	int nPFTIndex;
	LPVOID Transform;
	WORD wRop2;
	WORD wBkMode;
	DWORD dwBkColor;
	DWORD dwTextColor;
	int nTBreakExtra;
	int nBreakExtra;
	WORD wBreakErr;
	int nBreakRem;
	int nBreakCount;
	int nCharExtra;
	DWORD crLbkColor;
	DWORD crLTextColor;
	int lCursPosX;
	int lCursPosY;
	int WndOrgX;
	int WndOrgY;
	int WndExtX;
	int WndExtY;
	int VportOrgX;
	int VportOrgY;
	int VportExtX;
	int VportExtY;
	int UserVptOrgX;
	int UserVptOrgY;
	WORD wMapMode;
	WORD wXFormFlags;
	WORD wRelAbs;
	WORD wPolyFillMode;
	WORD wStretchBltMode;
	BYTE byPlanes;
	BYTE byBitsPix;
	WORD wPenWidth;
	WORD wPenHeight;
	WORD wTextAlign;
	DWORD dwMapperFlags;
	WORD wBrushOrgX;
	WORD wBrushOrgY;
	WORD wFontAspectX;
	WORD wFontAspectY;
	HANDLE hFontWeights;
	WORD wDCSaveLevel;
	WORD wcDCLocks;
	HRGN hVisRgn;
	WORD wDCOrgX;
	WORD wDCOrgY;
	FARPROC lpfnPrint;
	WORD wDCLogAtom;
	WORD wDCPhysAtom;
	WORD wDCFileAtom;
	WORD wPostScaleX;
	WORD wPostScaleY;
	union DC_TAIL
	{
		struct
		{
			WORD wB4;
			RECT rectB6;
			WORD wDCGlobFlags;
			WORD wC0;
		} tail_3_0;
		struct
		{
			RECT rectBounds;
			RECT rectLVB;
			FARPROC lpfnNotify;
			LPSTR lpHookData;
			WORD wDCGlobFlags;
			HDC hDCNext;
		} tail_3_1;
	} dc_tail;
} DC, FAR *LPDC;

#endif /* _DC_H_ */
