;--- include file created by h2incx v0.99.17, copyright 2005-2006 japheth
;--- source file: D:\Microsoft SDK\Include\wingdi.h, last modified: 5/2/2001 13:5
;--- cmdline used for creation: -i -o ASM -d3 -I \vctk2003\include windows.h

ifndef _WINGDI_
_WINGDI_	EQU	<>
ifdef _MAC
	include macwin32.inc
endif 
if  0 eq defined(_GDI32_)
WINGDIAPI	EQU	<DECLSPEC_IMPORT>
else 
WINGDIAPI	EQU	<>
endif 
if  0 eq defined(_SPOOL32_)
WINSPOOLAPI	EQU	<DECLSPEC_IMPORT>
else 
WINSPOOLAPI	EQU	<>
endif 
ifdef __cplusplus
;extern "C"
;{
endif 
ifndef WINVER
WINVER	EQU	0500h
endif 
ifndef NOGDI
ifndef NORASTEROPS
R2_BLACK	EQU	1
R2_NOTMERGEPEN	EQU	2
R2_MASKNOTPEN	EQU	3
R2_NOTCOPYPEN	EQU	4
R2_MASKPENNOT	EQU	5
R2_NOT	EQU	6
R2_XORPEN	EQU	7
R2_NOTMASKPEN	EQU	8
R2_MASKPEN	EQU	9
R2_NOTXORPEN	EQU	10
R2_NOP	EQU	11
R2_MERGENOTPEN	EQU	12
R2_COPYPEN	EQU	13
R2_MERGEPENNOT	EQU	14
R2_MERGEPEN	EQU	15
R2_WHITE	EQU	16
R2_LAST	EQU	16
SRCCOPY	EQU	00CC0020h
SRCPAINT	EQU	00EE0086h
SRCAND	EQU	008800C6h
SRCINVERT	EQU	00660046h
SRCERASE	EQU	00440328h
NOTSRCCOPY	EQU	00330008h
NOTSRCERASE	EQU	001100A6h
MERGECOPY	EQU	00C000CAh
MERGEPAINT	EQU	00BB0226h
PATCOPY	EQU	00F00021h
PATPAINT	EQU	00FB0A09h
PATINVERT	EQU	005A0049h
DSTINVERT	EQU	00550009h
BLACKNESS	EQU	00000042h
WHITENESS	EQU	00FF0062h
if (WINVER ge 0500h)
NOMIRRORBITMAP	EQU	80000000h
CAPTUREBLT	EQU	40000000h
endif 
MAKEROP4 macro fore,back
	exitm <( ( ( ( back )  shl  8 )  and  0FF000000h )  or  ( fore ) ) >
	endm
endif 
GDI_ERROR	EQU	0FFFFFFFFh
HGDI_ERROR	EQU	( LongToHandle ( 0FFFFFFFFh ) )
ERROR	EQU	0
NULLREGION	EQU	1
SIMPLEREGION	EQU	2
COMPLEXREGION	EQU	3
RGN_ERROR	EQU	<ERROR>
RGN_AND	EQU	1
RGN_OR	EQU	2
RGN_XOR	EQU	3
RGN_DIFF	EQU	4
RGN_COPY	EQU	5
RGN_MIN	EQU	<RGN_AND>
RGN_MAX	EQU	<RGN_COPY>
BLACKONWHITE	EQU	1
WHITEONBLACK	EQU	2
COLORONCOLOR	EQU	3
HALFTONE	EQU	4
MAXSTRETCHBLTMODE	EQU	4
if (WINVER ge 0400h)
STRETCH_ANDSCANS	EQU	<BLACKONWHITE>
STRETCH_ORSCANS	EQU	<WHITEONBLACK>
STRETCH_DELETESCANS	EQU	<COLORONCOLOR>
STRETCH_HALFTONE	EQU	<HALFTONE>
endif 
ALTERNATE	EQU	1
WINDING	EQU	2
POLYFILL_LAST	EQU	2
if (WINVER ge 0500h)
LAYOUT_RTL	EQU	00000001h
LAYOUT_BTT	EQU	00000002h
LAYOUT_VBH	EQU	00000004h
LAYOUT_ORIENTATIONMASK	EQU	( LAYOUT_RTL  or  LAYOUT_BTT  or  LAYOUT_VBH )
LAYOUT_BITMAPORIENTATIONPRESERVED	EQU	00000008h
endif 
TA_NOUPDATECP	EQU	0
TA_UPDATECP	EQU	1
TA_LEFT	EQU	0
TA_RIGHT	EQU	2
TA_CENTER	EQU	6
TA_TOP	EQU	0
TA_BOTTOM	EQU	8
TA_BASELINE	EQU	24
if (WINVER ge 0400h)
TA_RTLREADING	EQU	256
TA_MASK	EQU	( TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING )
else 
TA_MASK	EQU	( TA_BASELINE + TA_CENTER + TA_UPDATECP )
endif 
VTA_BASELINE	EQU	<TA_BASELINE>
VTA_LEFT	EQU	<TA_BOTTOM>
VTA_RIGHT	EQU	<TA_TOP>
VTA_CENTER	EQU	<TA_CENTER>
VTA_BOTTOM	EQU	<TA_RIGHT>
VTA_TOP	EQU	<TA_LEFT>
ETO_OPAQUE	EQU	0002h
ETO_CLIPPED	EQU	0004h
if (WINVER ge 0400h)
ETO_GLYPH_INDEX	EQU	0010h
ETO_RTLREADING	EQU	0080h
ETO_NUMERICSLOCAL	EQU	0400h
ETO_NUMERICSLATIN	EQU	0800h
ETO_IGNORELANGUAGE	EQU	1000h
endif 
if (_WIN32_WINNT ge 0500h)
ETO_PDY	EQU	2000h
endif 
ASPECT_FILTERING	EQU	0001h
DCB_RESET	EQU	0001h
DCB_ACCUMULATE	EQU	0002h
DCB_DIRTY	EQU	<DCB_ACCUMULATE>
DCB_SET	EQU	( DCB_RESET  or  DCB_ACCUMULATE )
DCB_ENABLE	EQU	0004h
DCB_DISABLE	EQU	0008h
ifndef NOMETAFILE
META_SETBKCOLOR	EQU	0201h
META_SETBKMODE	EQU	0102h
META_SETMAPMODE	EQU	0103h
META_SETROP2	EQU	0104h
META_SETRELABS	EQU	0105h
META_SETPOLYFILLMODE	EQU	0106h
META_SETSTRETCHBLTMODE	EQU	0107h
META_SETTEXTCHAREXTRA	EQU	0108h
META_SETTEXTCOLOR	EQU	0209h
META_SETTEXTJUSTIFICATION	EQU	020Ah
META_SETWINDOWORG	EQU	020Bh
META_SETWINDOWEXT	EQU	020Ch
META_SETVIEWPORTORG	EQU	020Dh
META_SETVIEWPORTEXT	EQU	020Eh
META_OFFSETWINDOWORG	EQU	020Fh
META_SCALEWINDOWEXT	EQU	0410h
META_OFFSETVIEWPORTORG	EQU	0211h
META_SCALEVIEWPORTEXT	EQU	0412h
META_LINETO	EQU	0213h
META_MOVETO	EQU	0214h
META_EXCLUDECLIPRECT	EQU	0415h
META_INTERSECTCLIPRECT	EQU	0416h
META_ARC	EQU	0817h
META_ELLIPSE	EQU	0418h
META_FLOODFILL	EQU	0419h
META_PIE	EQU	081Ah
META_RECTANGLE	EQU	041Bh
META_ROUNDRECT	EQU	061Ch
META_PATBLT	EQU	061Dh
META_SAVEDC	EQU	001Eh
META_SETPIXEL	EQU	041Fh
META_OFFSETCLIPRGN	EQU	0220h
META_TEXTOUT	EQU	0521h
META_BITBLT	EQU	0922h
META_STRETCHBLT	EQU	0B23h
META_POLYGON	EQU	0324h
META_POLYLINE	EQU	0325h
META_ESCAPE	EQU	0626h
META_RESTOREDC	EQU	0127h
META_FILLREGION	EQU	0228h
META_FRAMEREGION	EQU	0429h
META_INVERTREGION	EQU	012Ah
META_PAINTREGION	EQU	012Bh
META_SELECTCLIPREGION	EQU	012Ch
META_SELECTOBJECT	EQU	012Dh
META_SETTEXTALIGN	EQU	012Eh
META_CHORD	EQU	0830h
META_SETMAPPERFLAGS	EQU	0231h
META_EXTTEXTOUT	EQU	0a32h
META_SETDIBTODEV	EQU	0d33h
META_SELECTPALETTE	EQU	0234h
META_REALIZEPALETTE	EQU	0035h
META_ANIMATEPALETTE	EQU	0436h
META_SETPALENTRIES	EQU	0037h
META_POLYPOLYGON	EQU	0538h
META_RESIZEPALETTE	EQU	0139h
META_DIBBITBLT	EQU	0940h
META_DIBSTRETCHBLT	EQU	0b41h
META_DIBCREATEPATTERNBRUSH	EQU	0142h
META_STRETCHDIB	EQU	0f43h
META_EXTFLOODFILL	EQU	0548h
if (WINVER ge 0500h)
META_SETLAYOUT	EQU	0149h
endif 
META_DELETEOBJECT	EQU	01f0h
META_CREATEPALETTE	EQU	00f7h
META_CREATEPATTERNBRUSH	EQU	01F9h
META_CREATEPENINDIRECT	EQU	02FAh
META_CREATEFONTINDIRECT	EQU	02FBh
META_CREATEBRUSHINDIRECT	EQU	02FCh
META_CREATEREGION	EQU	06FFh
if (WINVER ge 0400h)
DRAWPATRECT	struct 
ptPosition	POINT	<>
ptSize	POINT	<>
wStyle	WORD	?
wPattern	WORD	?
DRAWPATRECT	ends

PDRAWPATRECT typedef ptr DRAWPATRECT

endif 
endif 
NEWFRAME	EQU	1
ABORTDOC	EQU	2
NEXTBAND	EQU	3
SETCOLORTABLE	EQU	4
GETCOLORTABLE	EQU	5
FLUSHOUTPUT	EQU	6
DRAFTMODE	EQU	7
QUERYESCSUPPORT	EQU	8
SETABORTPROC	EQU	9
STARTDOC	EQU	10
ENDDOC	EQU	11
GETPHYSPAGESIZE	EQU	12
GETPRINTINGOFFSET	EQU	13
GETSCALINGFACTOR	EQU	14
MFCOMMENT	EQU	15
GETPENWIDTH	EQU	16
SETCOPYCOUNT	EQU	17
SELECTPAPERSOURCE	EQU	18
DEVICEDATA	EQU	19
PASSTHROUGH	EQU	19
GETTECHNOLGY	EQU	20
GETTECHNOLOGY	EQU	20
SETLINECAP	EQU	21
SETLINEJOIN	EQU	22
SETMITERLIMIT	EQU	23
BANDINFO	EQU	24
DRAWPATTERNRECT	EQU	25
GETVECTORPENSIZE	EQU	26
GETVECTORBRUSHSIZE	EQU	27
ENABLEDUPLEX	EQU	28
GETSETPAPERBINS	EQU	29
GETSETPRINTORIENT	EQU	30
ENUMPAPERBINS	EQU	31
SETDIBSCALING	EQU	32
EPSPRINTING	EQU	33
ENUMPAPERMETRICS	EQU	34
GETSETPAPERMETRICS	EQU	35
POSTSCRIPT_DATA	EQU	37
POSTSCRIPT_IGNORE	EQU	38
MOUSETRAILS	EQU	39
GETDEVICEUNITS	EQU	42
GETEXTENDEDTEXTMETRICS	EQU	256
GETEXTENTTABLE	EQU	257
GETPAIRKERNTABLE	EQU	258
GETTRACKKERNTABLE	EQU	259
EXTTEXTOUT	EQU	512
GETFACENAME	EQU	513
DOWNLOADFACE	EQU	514
ENABLERELATIVEWIDTHS	EQU	768
ENABLEPAIRKERNING	EQU	769
SETKERNTRACK	EQU	770
SETALLJUSTVALUES	EQU	771
SETCHARSET	EQU	772
STRETCHBLT	EQU	2048
METAFILE_DRIVER	EQU	2049
GETSETSCREENPARAMS	EQU	3072
QUERYDIBSUPPORT	EQU	3073
BEGIN_PATH	EQU	4096
CLIP_TO_PATH	EQU	4097
END_PATH	EQU	4098
EXT_DEVICE_CAPS	EQU	4099
RESTORE_CTM	EQU	4100
SAVE_CTM	EQU	4101
SET_ARC_DIRECTION	EQU	4102
SET_BACKGROUND_COLOR	EQU	4103
SET_POLY_MODE	EQU	4104
SET_SCREEN_ANGLE	EQU	4105
SET_SPREAD	EQU	4106
TRANSFORM_CTM	EQU	4107
SET_CLIP_BOX	EQU	4108
SET_BOUNDS	EQU	4109
SET_MIRROR_MODE	EQU	4110
OPENCHANNEL	EQU	4110
DOWNLOADHEADER	EQU	4111
CLOSECHANNEL	EQU	4112
POSTSCRIPT_PASSTHROUGH	EQU	4115
ENCAPSULATED_POSTSCRIPT	EQU	4116
POSTSCRIPT_IDENTIFY	EQU	4117
POSTSCRIPT_INJECTION	EQU	4118
CHECKJPEGFORMAT	EQU	4119
CHECKPNGFORMAT	EQU	4120
GET_PS_FEATURESETTING	EQU	4121
SPCLPASSTHROUGH2	EQU	4568
PSIDENT_GDICENTRIC	EQU	0
PSIDENT_PSCENTRIC	EQU	1
PSINJECTDATA	struct 
DataBytes	DWORD	?
InjectionPoint	WORD	?
PageNumber	WORD	?
PSINJECTDATA	ends

PPSINJECTDATA typedef ptr PSINJECTDATA

PSINJECT_BEGINSTREAM	EQU	1
PSINJECT_PSADOBE	EQU	2
PSINJECT_PAGESATEND	EQU	3
PSINJECT_PAGES	EQU	4
PSINJECT_DOCNEEDEDRES	EQU	5
PSINJECT_DOCSUPPLIEDRES	EQU	6
PSINJECT_PAGEORDER	EQU	7
PSINJECT_ORIENTATION	EQU	8
PSINJECT_BOUNDINGBOX	EQU	9
PSINJECT_DOCUMENTPROCESSCOLORS	EQU	10
PSINJECT_COMMENTS	EQU	11
PSINJECT_BEGINDEFAULTS	EQU	12
PSINJECT_ENDDEFAULTS	EQU	13
PSINJECT_BEGINPROLOG	EQU	14
PSINJECT_ENDPROLOG	EQU	15
PSINJECT_BEGINSETUP	EQU	16
PSINJECT_ENDSETUP	EQU	17
PSINJECT_TRAILER	EQU	18
PSINJECT_EOF	EQU	19
PSINJECT_ENDSTREAM	EQU	20
PSINJECT_DOCUMENTPROCESSCOLORSATEND	EQU	21
PSINJECT_PAGENUMBER	EQU	100
PSINJECT_BEGINPAGESETUP	EQU	101
PSINJECT_ENDPAGESETUP	EQU	102
PSINJECT_PAGETRAILER	EQU	103
PSINJECT_PLATECOLOR	EQU	104
PSINJECT_SHOWPAGE	EQU	105
PSINJECT_PAGEBBOX	EQU	106
PSINJECT_ENDPAGECOMMENTS	EQU	107
PSINJECT_VMSAVE	EQU	200
PSINJECT_VMRESTORE	EQU	201
FEATURESETTING_NUP	EQU	0
FEATURESETTING_OUTPUT	EQU	1
FEATURESETTING_PSLEVEL	EQU	2
FEATURESETTING_CUSTPAPER	EQU	3
FEATURESETTING_MIRROR	EQU	4
FEATURESETTING_NEGATIVE	EQU	5
FEATURESETTING_PROTOCOL	EQU	6
FEATURESETTING_PRIVATE_BEGIN	EQU	1000h
FEATURESETTING_PRIVATE_END	EQU	1FFFh
PSFEATURE_OUTPUT	struct 
bPageIndependent	BOOL	?
bSetPageDevice	BOOL	?
PSFEATURE_OUTPUT	ends

PPSFEATURE_OUTPUT typedef ptr PSFEATURE_OUTPUT

PSFEATURE_CUSTPAPER	struct 
lOrientation	SDWORD	?
lWidth	SDWORD	?
lHeight	SDWORD	?
lWidthOffset	SDWORD	?
lHeightOffset	SDWORD	?
PSFEATURE_CUSTPAPER	ends

PPSFEATURE_CUSTPAPER typedef ptr PSFEATURE_CUSTPAPER

PSPROTOCOL_ASCII	EQU	0
PSPROTOCOL_BCP	EQU	1
PSPROTOCOL_TBCP	EQU	2
PSPROTOCOL_BINARY	EQU	3
QDI_SETDIBITS	EQU	1
QDI_GETDIBITS	EQU	2
QDI_DIBTOSCREEN	EQU	4
QDI_STRETCHDIB	EQU	8
SP_NOTREPORTED	EQU	4000h
SP_ERROR	EQU	- 1
SP_APPABORT	EQU	- 2
SP_USERABORT	EQU	- 3
SP_OUTOFDISK	EQU	- 4
SP_OUTOFMEMORY	EQU	- 5
PR_JOBSTATUS	EQU	0000h
OBJ_PEN	EQU	1
OBJ_BRUSH	EQU	2
OBJ_DC	EQU	3
OBJ_METADC	EQU	4
OBJ_PAL	EQU	5
OBJ_FONT	EQU	6
OBJ_BITMAP	EQU	7
OBJ_REGION	EQU	8
OBJ_METAFILE	EQU	9
OBJ_MEMDC	EQU	10
OBJ_EXTPEN	EQU	11
OBJ_ENHMETADC	EQU	12
OBJ_ENHMETAFILE	EQU	13
OBJ_COLORSPACE	EQU	14
MWT_IDENTITY	EQU	1
MWT_LEFTMULTIPLY	EQU	2
MWT_RIGHTMULTIPLY	EQU	3
MWT_MIN	EQU	<MWT_IDENTITY>
MWT_MAX	EQU	<MWT_RIGHTMULTIPLY>
_XFORM_	EQU	<>
XFORM	struct 
eM11	REAL4	?
eM12	REAL4	?
eM21	REAL4	?
eM22	REAL4	?
eDx_	REAL4	?
eDy	REAL4	?
XFORM	ends

PXFORM typedef ptr XFORM
LPXFORM typedef ptr XFORM

BITMAP	struct 
bmType	SDWORD	?
bmWidth	SDWORD	?
bmHeight	SDWORD	?
bmWidthBytes	SDWORD	?
bmPlanes	WORD	?
bmBitsPixel	WORD	?
bmBits	LPVOID	?
BITMAP	ends

PBITMAP typedef ptr BITMAP
NPBITMAP typedef ptr BITMAP
LPBITMAP typedef ptr BITMAP

	include pshpack1.inc
RGBTRIPLE	struct 
rgbtBlue	BYTE	?
rgbtGreen	BYTE	?
rgbtRed	BYTE	?
RGBTRIPLE	ends

	include poppack.inc
RGBQUAD	struct 
rgbBlue	BYTE	?
rgbGreen	BYTE	?
rgbRed	BYTE	?
rgbReserved	BYTE	?
RGBQUAD	ends

LPRGBQUAD typedef ptr RGBQUAD
if (WINVER ge 0400h)
CS_ENABLE	EQU	00000001h
CS_DISABLE	EQU	00000002h
CS_DELETE_TRANSFORM	EQU	00000003h
LCS_SIGNATURE	EQU	<'PSOC'>
LCS_sRGB	EQU	<'sRGB'>
LCS_WINDOWS_COLOR_SPACE	EQU	<'Win '>
LCSCSTYPE typedef SDWORD
LCS_CALIBRATED_RGB	EQU	00000000h
LCSGAMUTMATCH typedef SDWORD
LCS_GM_BUSINESS	EQU	00000001h
LCS_GM_GRAPHICS	EQU	00000002h
LCS_GM_IMAGES	EQU	00000004h
LCS_GM_ABS_COLORIMETRIC	EQU	00000008h
CM_OUT_OF_GAMUT	EQU	255
CM_IN_GAMUT	EQU	0
ICM_ADDPROFILE	EQU	1
ICM_DELETEPROFILE	EQU	2
ICM_QUERYPROFILE	EQU	3
ICM_SETDEFAULTPROFILE	EQU	4
ICM_REGISTERICMATCHER	EQU	5
ICM_UNREGISTERICMATCHER	EQU	6
ICM_QUERYMATCH	EQU	7
GetKValue macro cmyk
	exitm <( ( cmyk ) ) >
	endm
GetYValue macro cmyk
	exitm <( ( ( cmyk )  shr  8 ) ) >
	endm
GetMValue macro cmyk
	exitm <( ( ( cmyk )  shr  16 ) ) >
	endm
GetCValue macro cmyk
	exitm <( ( ( cmyk )  shr  24 ) ) >
	endm
CMYK macro c,m,y,k
	exitm <( ( ( ( ( k )  or  ( ( ( y ) )  shl  8 ) )  or  ( ( ( m ) )  shl  16 ) )  or  ( ( ( c ) )  shl  24 ) ) ) >
	endm
FXPT16DOT16 typedef SDWORD
LPFXPT16DOT16 typedef ptr SDWORD
FXPT2DOT30 typedef SDWORD
LPFXPT2DOT30 typedef ptr SDWORD
CIEXYZ	struct 
ciexyzX	FXPT2DOT30	?
ciexyzY	FXPT2DOT30	?
ciexyzZ	FXPT2DOT30	?
CIEXYZ	ends

LPCIEXYZ typedef ptr CIEXYZ
CIEXYZTRIPLE	struct 
ciexyzRed	CIEXYZ	<>
ciexyzGreen	CIEXYZ	<>
ciexyzBlue	CIEXYZ	<>
CIEXYZTRIPLE	ends

LPCIEXYZTRIPLE typedef ptr CIEXYZTRIPLE
LOGCOLORSPACEA	struct 
lcsSignature	DWORD	?
lcsVersion	DWORD	?
lcsSize	DWORD	?
lcsCSType	LCSCSTYPE	?
lcsIntent	LCSGAMUTMATCH	?
lcsEndpoints	CIEXYZTRIPLE	<>
lcsGammaRed	DWORD	?
lcsGammaGreen	DWORD	?
lcsGammaBlue	DWORD	?
lcsFilename	CHAR MAX_PATH dup (?)
LOGCOLORSPACEA	ends

LPLOGCOLORSPACEA typedef ptr LOGCOLORSPACEA

LOGCOLORSPACEW	struct 
lcsSignature	DWORD	?
lcsVersion	DWORD	?
lcsSize	DWORD	?
lcsCSType	LCSCSTYPE	?
lcsIntent	LCSGAMUTMATCH	?
lcsEndpoints	CIEXYZTRIPLE	<>
lcsGammaRed	DWORD	?
lcsGammaGreen	DWORD	?
lcsGammaBlue	DWORD	?
lcsFilename	WCHAR MAX_PATH dup (?)
LOGCOLORSPACEW	ends

LPLOGCOLORSPACEW typedef ptr LOGCOLORSPACEW

ifdef UNICODE
LOGCOLORSPACE typedef LOGCOLORSPACEW
LPLOGCOLORSPACE typedef LPLOGCOLORSPACEW
else 
LOGCOLORSPACE typedef LOGCOLORSPACEA
LPLOGCOLORSPACE typedef LPLOGCOLORSPACEA
endif 
endif 
BITMAPCOREHEADER	struct 
bcSize	DWORD	?
bcWidth	WORD	?
bcHeight	WORD	?
bcPlanes	WORD	?
bcBitCount	WORD	?
BITMAPCOREHEADER	ends

LPBITMAPCOREHEADER typedef ptr BITMAPCOREHEADER
PBITMAPCOREHEADER typedef ptr BITMAPCOREHEADER

BITMAPINFOHEADER	struct 
biSize	DWORD	?
biWidth	SDWORD	?
biHeight	SDWORD	?
biPlanes	WORD	?
biBitCount	WORD	?
biCompression	DWORD	?
biSizeImage	DWORD	?
biXPelsPerMeter	SDWORD	?
biYPelsPerMeter	SDWORD	?
biClrUsed	DWORD	?
biClrImportant	DWORD	?
BITMAPINFOHEADER	ends

LPBITMAPINFOHEADER typedef ptr BITMAPINFOHEADER
PBITMAPINFOHEADER typedef ptr BITMAPINFOHEADER

if (WINVER ge 0400h)
BITMAPV4HEADER	struct 
bV4Size	DWORD	?
bV4Width	SDWORD	?
bV4Height	SDWORD	?
bV4Planes	WORD	?
bV4BitCount	WORD	?
bV4V4Compression	DWORD	?
bV4SizeImage	DWORD	?
bV4XPelsPerMeter	SDWORD	?
bV4YPelsPerMeter	SDWORD	?
bV4ClrUsed	DWORD	?
bV4ClrImportant	DWORD	?
bV4RedMask	DWORD	?
bV4GreenMask	DWORD	?
bV4BlueMask	DWORD	?
bV4AlphaMask	DWORD	?
bV4CSType	DWORD	?
bV4Endpoints	CIEXYZTRIPLE	<>
bV4GammaRed	DWORD	?
bV4GammaGreen	DWORD	?
bV4GammaBlue	DWORD	?
BITMAPV4HEADER	ends

LPBITMAPV4HEADER typedef ptr BITMAPV4HEADER
PBITMAPV4HEADER typedef ptr BITMAPV4HEADER

endif 
if (WINVER ge 0500h)
BITMAPV5HEADER	struct 
bV5Size	DWORD	?
bV5Width	SDWORD	?
bV5Height	SDWORD	?
bV5Planes	WORD	?
bV5BitCount	WORD	?
bV5Compression	DWORD	?
bV5SizeImage	DWORD	?
bV5XPelsPerMeter	SDWORD	?
bV5YPelsPerMeter	SDWORD	?
bV5ClrUsed	DWORD	?
bV5ClrImportant	DWORD	?
bV5RedMask	DWORD	?
bV5GreenMask	DWORD	?
bV5BlueMask	DWORD	?
bV5AlphaMask	DWORD	?
bV5CSType	DWORD	?
bV5Endpoints	CIEXYZTRIPLE	<>
bV5GammaRed	DWORD	?
bV5GammaGreen	DWORD	?
bV5GammaBlue	DWORD	?
bV5Intent	DWORD	?
bV5ProfileData	DWORD	?
bV5ProfileSize	DWORD	?
bV5Reserved	DWORD	?
BITMAPV5HEADER	ends

LPBITMAPV5HEADER typedef ptr BITMAPV5HEADER
PBITMAPV5HEADER typedef ptr BITMAPV5HEADER

PROFILE_LINKED	EQU	<'LINK'>
PROFILE_EMBEDDED	EQU	<'MBED'>
endif 
BI_RGB	EQU	0
BI_RLE8	EQU	1
BI_RLE4	EQU	2
BI_BITFIELDS	EQU	3
BI_JPEG	EQU	4
BI_PNG	EQU	5
if (_WIN32_WINNT ge 0400h)
endif 
BITMAPINFO	struct 
bmiHeader	BITMAPINFOHEADER	<>
bmiColors	RGBQUAD 1 dup (<>)
BITMAPINFO	ends

LPBITMAPINFO typedef ptr BITMAPINFO
PBITMAPINFO typedef ptr BITMAPINFO

BITMAPCOREINFO	struct 4
bmciHeader	BITMAPCOREHEADER	<>
bmciColors	RGBTRIPLE 1 dup (<>)
BITMAPCOREINFO	ends

LPBITMAPCOREINFO typedef ptr BITMAPCOREINFO
PBITMAPCOREINFO typedef ptr BITMAPCOREINFO

	include pshpack2.inc
BITMAPFILEHEADER	struct 
bfType	WORD	?
bfSize	DWORD	?
bfReserved1	WORD	?
bfReserved2	WORD	?
bfOffBits	DWORD	?
BITMAPFILEHEADER	ends

LPBITMAPFILEHEADER typedef ptr BITMAPFILEHEADER
PBITMAPFILEHEADER typedef ptr BITMAPFILEHEADER

	include poppack.inc
MAKEPOINTS macro l
	exitm <( * ( ( POINTS FAR * )  and  ( l ) ) ) >
	endm
if (WINVER ge 0400h)
ifndef NOFONTSIG
FONTSIGNATURE	struct 
fsUsb	DWORD 4 dup (?)
fsCsb	DWORD 2 dup (?)
FONTSIGNATURE	ends

PFONTSIGNATURE typedef ptr FONTSIGNATURE
LPFONTSIGNATURE typedef ptr FONTSIGNATURE

CHARSETINFO	struct 
ciCharset	DWORD	?
ciACP	DWORD	?
fs_	FONTSIGNATURE	<>
CHARSETINFO	ends

PCHARSETINFO typedef ptr CHARSETINFO
NPCHARSETINFO typedef ptr CHARSETINFO
LPCHARSETINFO typedef ptr CHARSETINFO

TCI_SRCCHARSET	EQU	1
TCI_SRCCODEPAGE	EQU	2
TCI_SRCFONTSIG	EQU	3
LOCALESIGNATURE	struct 
lsUsb	DWORD 4 dup (?)
lsCsbDefault	DWORD 2 dup (?)
lsCsbSupported	DWORD 2 dup (?)
LOCALESIGNATURE	ends

PLOCALESIGNATURE typedef ptr LOCALESIGNATURE
LPLOCALESIGNATURE typedef ptr LOCALESIGNATURE

endif 
endif 
ifndef NOMETAFILE
HANDLETABLE	struct 
objectHandle	HGDIOBJ 1 dup (?)
HANDLETABLE	ends

PHANDLETABLE typedef ptr HANDLETABLE
LPHANDLETABLE typedef ptr HANDLETABLE

METARECORD	struct 
rdSize	DWORD	?
rdFunction	WORD	?
rdParm	WORD 1 dup (?)
METARECORD	ends

PMETARECORD typedef ptr METARECORD

LPMETARECORD typedef ptr METARECORD

METAFILEPICT	struct 
mm_	SDWORD	?
xExt	SDWORD	?
yExt	SDWORD	?
hMF	HMETAFILE	?
METAFILEPICT	ends

LPMETAFILEPICT typedef ptr METAFILEPICT

	include pshpack2.inc
METAHEADER	struct 
mtType	WORD	?
mtHeaderSize	WORD	?
mtVersion	WORD	?
mtSize	DWORD	?
mtNoObjects	WORD	?
mtMaxRecord	DWORD	?
mtNoParameters	WORD	?
METAHEADER	ends

PMETAHEADER typedef ptr METAHEADER

LPMETAHEADER typedef ptr METAHEADER

	include poppack.inc
ENHMETARECORD	struct 
iType	DWORD	?
nSize	DWORD	?
dParm	DWORD 1 dup (?)
ENHMETARECORD	ends

PENHMETARECORD typedef ptr ENHMETARECORD
LPENHMETARECORD typedef ptr ENHMETARECORD

ENHMETAHEADER	struct 
iType	DWORD	?
nSize	DWORD	?
rclBounds	RECTL	<>
rclFrame	RECTL	<>
dSignature	DWORD	?
nVersion	DWORD	?
nBytes	DWORD	?
nRecords	DWORD	?
nHandles	WORD	?
sReserved	WORD	?
nDescription	DWORD	?
offDescription	DWORD	?
nPalEntries	DWORD	?
szlDevice	SIZEL	<>
szlMillimeters	SIZEL	<>
if (WINVER ge 0400h)
cbPixelFormat	DWORD	?
offPixelFormat	DWORD	?
bOpenGL	DWORD	?
endif 
if (WINVER ge 0500h)
szlMicrometers	SIZEL	<>
endif 
ENHMETAHEADER	ends

PENHMETAHEADER typedef ptr ENHMETAHEADER
LPENHMETAHEADER typedef ptr ENHMETAHEADER

endif 
ifndef NOTEXTMETRIC
TMPF_FIXED_PITCH	EQU	01h
TMPF_VECTOR	EQU	02h
TMPF_DEVICE	EQU	08h
TMPF_TRUETYPE	EQU	04h
ifdef UNICODE
BCHAR typedef WCHAR
else 
BCHAR typedef BYTE
endif 
ifndef _TEXTMETRIC_DEFINED
_TEXTMETRIC_DEFINED	EQU	<>
TEXTMETRICA	struct DWORD
tmHeight	SDWORD	?
tmAscent	SDWORD	?
tmDescent	SDWORD	?
tmInternalLeading	SDWORD	?
tmExternalLeading	SDWORD	?
tmAveCharWidth	SDWORD	?
tmMaxCharWidth	SDWORD	?
tmWeight	SDWORD	?
tmOverhang	SDWORD	?
tmDigitizedAspectX	SDWORD	?
tmDigitizedAspectY	SDWORD	?
tmFirstChar	BYTE	?
tmLastChar	BYTE	?
tmDefaultChar	BYTE	?
tmBreakChar	BYTE	?
tmItalic	BYTE	?
tmUnderlined	BYTE	?
tmStruckOut	BYTE	?
tmPitchAndFamily	BYTE	?
tmCharSet	BYTE	?
TEXTMETRICA	ends

PTEXTMETRICA typedef ptr TEXTMETRICA
NPTEXTMETRICA typedef ptr TEXTMETRICA
LPTEXTMETRICA typedef ptr TEXTMETRICA

TEXTMETRICW	struct 
tmHeight	SDWORD	?
tmAscent	SDWORD	?
tmDescent	SDWORD	?
tmInternalLeading	SDWORD	?
tmExternalLeading	SDWORD	?
tmAveCharWidth	SDWORD	?
tmMaxCharWidth	SDWORD	?
tmWeight	SDWORD	?
tmOverhang	SDWORD	?
tmDigitizedAspectX	SDWORD	?
tmDigitizedAspectY	SDWORD	?
tmFirstChar	WCHAR	?
tmLastChar	WCHAR	?
tmDefaultChar	WCHAR	?
tmBreakChar	WCHAR	?
tmItalic	BYTE	?
tmUnderlined	BYTE	?
tmStruckOut	BYTE	?
tmPitchAndFamily	BYTE	?
tmCharSet	BYTE	?
TEXTMETRICW	ends

PTEXTMETRICW typedef ptr TEXTMETRICW
NPTEXTMETRICW typedef ptr TEXTMETRICW
LPTEXTMETRICW typedef ptr TEXTMETRICW

ifdef UNICODE
TEXTMETRIC typedef TEXTMETRICW
PTEXTMETRIC typedef PTEXTMETRICW
NPTEXTMETRIC typedef NPTEXTMETRICW
LPTEXTMETRIC typedef LPTEXTMETRICW
else 
TEXTMETRIC typedef TEXTMETRICA
PTEXTMETRIC typedef PTEXTMETRICA
NPTEXTMETRIC typedef NPTEXTMETRICA
LPTEXTMETRIC typedef LPTEXTMETRICA
endif 
endif 
NTM_REGULAR	EQU	00000040h
NTM_BOLD	EQU	00000020h
NTM_ITALIC	EQU	00000001h
NTM_NONNEGATIVE_AC	EQU	00010000h
NTM_PS_OPENTYPE	EQU	00020000h
NTM_TT_OPENTYPE	EQU	00040000h
NTM_MULTIPLEMASTER	EQU	00080000h
NTM_TYPE1	EQU	00100000h
NTM_DSIG	EQU	00200000h
	include pshpack4.inc
NEWTEXTMETRICA	struct DWORD
tmHeight	SDWORD	?
tmAscent	SDWORD	?
tmDescent	SDWORD	?
tmInternalLeading	SDWORD	?
tmExternalLeading	SDWORD	?
tmAveCharWidth	SDWORD	?
tmMaxCharWidth	SDWORD	?
tmWeight	SDWORD	?
tmOverhang	SDWORD	?
tmDigitizedAspectX	SDWORD	?
tmDigitizedAspectY	SDWORD	?
tmFirstChar	BYTE	?
tmLastChar	BYTE	?
tmDefaultChar	BYTE	?
tmBreakChar	BYTE	?
tmItalic	BYTE	?
tmUnderlined	BYTE	?
tmStruckOut	BYTE	?
tmPitchAndFamily	BYTE	?
tmCharSet	BYTE	?
ntmFlags	DWORD	?
ntmSizeEM	DWORD	?
ntmCellHeight	DWORD	?
ntmAvgWidth	DWORD	?
NEWTEXTMETRICA	ends

PNEWTEXTMETRICA typedef ptr NEWTEXTMETRICA
NPNEWTEXTMETRICA typedef ptr NEWTEXTMETRICA
LPNEWTEXTMETRICA typedef ptr NEWTEXTMETRICA

NEWTEXTMETRICW	struct 
tmHeight	SDWORD	?
tmAscent	SDWORD	?
tmDescent	SDWORD	?
tmInternalLeading	SDWORD	?
tmExternalLeading	SDWORD	?
tmAveCharWidth	SDWORD	?
tmMaxCharWidth	SDWORD	?
tmWeight	SDWORD	?
tmOverhang	SDWORD	?
tmDigitizedAspectX	SDWORD	?
tmDigitizedAspectY	SDWORD	?
tmFirstChar	WCHAR	?
tmLastChar	WCHAR	?
tmDefaultChar	WCHAR	?
tmBreakChar	WCHAR	?
tmItalic	BYTE	?
tmUnderlined	BYTE	?
tmStruckOut	BYTE	?
tmPitchAndFamily	BYTE	?
tmCharSet	BYTE	?
ntmFlags	DWORD	?
ntmSizeEM	DWORD	?
ntmCellHeight	DWORD	?
ntmAvgWidth	DWORD	?
NEWTEXTMETRICW	ends

PNEWTEXTMETRICW typedef ptr NEWTEXTMETRICW
NPNEWTEXTMETRICW typedef ptr NEWTEXTMETRICW
LPNEWTEXTMETRICW typedef ptr NEWTEXTMETRICW

ifdef UNICODE
NEWTEXTMETRIC typedef NEWTEXTMETRICW
PNEWTEXTMETRIC typedef PNEWTEXTMETRICW
NPNEWTEXTMETRIC typedef NPNEWTEXTMETRICW
LPNEWTEXTMETRIC typedef LPNEWTEXTMETRICW
else 
NEWTEXTMETRIC typedef NEWTEXTMETRICA
PNEWTEXTMETRIC typedef PNEWTEXTMETRICA
NPNEWTEXTMETRIC typedef NPNEWTEXTMETRICA
LPNEWTEXTMETRIC typedef LPNEWTEXTMETRICA
endif 
	include poppack.inc
if (WINVER ge 0400h)
NEWTEXTMETRICEXA	struct 
ntmTm	NEWTEXTMETRICA	<>
ntmFontSig	FONTSIGNATURE	<>
NEWTEXTMETRICEXA	ends

NEWTEXTMETRICEXW	struct 
ntmTm	NEWTEXTMETRICW	<>
ntmFontSig	FONTSIGNATURE	<>
NEWTEXTMETRICEXW	ends

ifdef UNICODE
NEWTEXTMETRICEX typedef NEWTEXTMETRICEXW
else 
NEWTEXTMETRICEX typedef NEWTEXTMETRICEXA
endif 
endif 
endif 
PELARRAY	struct 
paXCount	SDWORD	?
paYCount	SDWORD	?
paXExt	SDWORD	?
paYExt	SDWORD	?
paRGBs	BYTE	?
PELARRAY	ends

PPELARRAY typedef ptr PELARRAY
NPPELARRAY typedef ptr PELARRAY
LPPELARRAY typedef ptr PELARRAY

LOGBRUSH	struct 
lbStyle	DWORD	?
lbColor	COLORREF	?
lbHatch	DWORD	?
LOGBRUSH	ends

PLOGBRUSH typedef ptr LOGBRUSH
NPLOGBRUSH typedef ptr LOGBRUSH
LPLOGBRUSH typedef ptr LOGBRUSH

LOGBRUSH32	struct 
lbStyle	DWORD	?
lbColor	COLORREF	?
lbHatch	DWORD	?
LOGBRUSH32	ends

PLOGBRUSH32 typedef ptr LOGBRUSH32
NPLOGBRUSH32 typedef ptr LOGBRUSH32
LPLOGBRUSH32 typedef ptr LOGBRUSH32

PATTERN typedef LOGBRUSH
PPATTERN typedef ptr PATTERN
NPPATTERN typedef ptr PATTERN
LPPATTERN typedef ptr PATTERN
LOGPEN	struct 
lopnStyle	DWORD	?
lopnWidth	POINT	<>
lopnColor	COLORREF	?
LOGPEN	ends

PLOGPEN typedef ptr LOGPEN
NPLOGPEN typedef ptr LOGPEN
LPLOGPEN typedef ptr LOGPEN

EXTLOGPEN	struct 
elpPenStyle	DWORD	?
elpWidth	DWORD	?
elpBrushStyle	DWORD	?
elpColor	COLORREF	?
elpHatch	DWORD	?
elpNumEntries	DWORD	?
elpStyleEntry	DWORD 1 dup (?)
EXTLOGPEN	ends

PEXTLOGPEN typedef ptr EXTLOGPEN
NPEXTLOGPEN typedef ptr EXTLOGPEN
LPEXTLOGPEN typedef ptr EXTLOGPEN

ifndef _PALETTEENTRY_DEFINED
_PALETTEENTRY_DEFINED	EQU	<>
PALETTEENTRY	struct 
peRed	BYTE	?
peGreen	BYTE	?
peBlue	BYTE	?
peFlags	BYTE	?
PALETTEENTRY	ends

PPALETTEENTRY typedef ptr PALETTEENTRY
LPPALETTEENTRY typedef ptr PALETTEENTRY

endif 
ifndef _LOGPALETTE_DEFINED
_LOGPALETTE_DEFINED	EQU	<>
LOGPALETTE	struct 
palVersion	WORD	?
palNumEntries	WORD	?
palPalEntry	PALETTEENTRY 1 dup (<>)
LOGPALETTE	ends

PLOGPALETTE typedef ptr LOGPALETTE
NPLOGPALETTE typedef ptr LOGPALETTE
LPLOGPALETTE typedef ptr LOGPALETTE

endif 
LF_FACESIZE	EQU	32
LOGFONTA	struct 
lfHeight	SDWORD	?
lfWidth	SDWORD	?
lfEscapement	SDWORD	?
lfOrientation	SDWORD	?
lfWeight	SDWORD	?
lfItalic	BYTE	?
lfUnderline	BYTE	?
lfStrikeOut	BYTE	?
lfCharSet	BYTE	?
lfOutPrecision	BYTE	?
lfClipPrecision	BYTE	?
lfQuality	BYTE	?
lfPitchAndFamily	BYTE	?
lfFaceName	CHAR LF_FACESIZE dup (?)
LOGFONTA	ends

PLOGFONTA typedef ptr LOGFONTA
NPLOGFONTA typedef ptr LOGFONTA
LPLOGFONTA typedef ptr LOGFONTA

LOGFONTW	struct 
lfHeight	SDWORD	?
lfWidth	SDWORD	?
lfEscapement	SDWORD	?
lfOrientation	SDWORD	?
lfWeight	SDWORD	?
lfItalic	BYTE	?
lfUnderline	BYTE	?
lfStrikeOut	BYTE	?
lfCharSet	BYTE	?
lfOutPrecision	BYTE	?
lfClipPrecision	BYTE	?
lfQuality	BYTE	?
lfPitchAndFamily	BYTE	?
lfFaceName	WCHAR LF_FACESIZE dup (?)
LOGFONTW	ends

PLOGFONTW typedef ptr LOGFONTW
NPLOGFONTW typedef ptr LOGFONTW
LPLOGFONTW typedef ptr LOGFONTW

ifdef UNICODE
LOGFONT typedef LOGFONTW
PLOGFONT typedef PLOGFONTW
NPLOGFONT typedef NPLOGFONTW
LPLOGFONT typedef LPLOGFONTW
else 
LOGFONT typedef LOGFONTA
PLOGFONT typedef PLOGFONTA
NPLOGFONT typedef NPLOGFONTA
LPLOGFONT typedef LPLOGFONTA
endif 
LF_FULLFACESIZE	EQU	64
ENUMLOGFONTA	struct 
elfLogFont	LOGFONTA	<>
elfFullName	BYTE LF_FULLFACESIZE dup (?)
elfStyle	BYTE LF_FACESIZE dup (?)
ENUMLOGFONTA	ends

LPENUMLOGFONTA typedef ptr ENUMLOGFONTA

ENUMLOGFONTW	struct 
elfLogFont	LOGFONTW	<>
elfFullName	WCHAR LF_FULLFACESIZE dup (?)
elfStyle	WCHAR LF_FACESIZE dup (?)
ENUMLOGFONTW	ends

LPENUMLOGFONTW typedef ptr ENUMLOGFONTW

ifdef UNICODE
ENUMLOGFONT typedef ENUMLOGFONTW
LPENUMLOGFONT typedef LPENUMLOGFONTW
else 
ENUMLOGFONT typedef ENUMLOGFONTA
LPENUMLOGFONT typedef LPENUMLOGFONTA
endif 
if (WINVER ge 0400h)
ENUMLOGFONTEXA	struct 
elfLogFont	LOGFONTA	<>
elfFullName	BYTE LF_FULLFACESIZE dup (?)
elfStyle	BYTE LF_FACESIZE dup (?)
elfScript	BYTE LF_FACESIZE dup (?)
ENUMLOGFONTEXA	ends

LPENUMLOGFONTEXA typedef ptr ENUMLOGFONTEXA

ENUMLOGFONTEXW	struct 
elfLogFont	LOGFONTW	<>
elfFullName	WCHAR LF_FULLFACESIZE dup (?)
elfStyle	WCHAR LF_FACESIZE dup (?)
elfScript	WCHAR LF_FACESIZE dup (?)
ENUMLOGFONTEXW	ends

LPENUMLOGFONTEXW typedef ptr ENUMLOGFONTEXW

ifdef UNICODE
ENUMLOGFONTEX typedef ENUMLOGFONTEXW
LPENUMLOGFONTEX typedef LPENUMLOGFONTEXW
else 
ENUMLOGFONTEX typedef ENUMLOGFONTEXA
LPENUMLOGFONTEX typedef LPENUMLOGFONTEXA
endif 
endif 
OUT_DEFAULT_PRECIS	EQU	0
OUT_STRING_PRECIS	EQU	1
OUT_CHARACTER_PRECIS	EQU	2
OUT_STROKE_PRECIS	EQU	3
OUT_TT_PRECIS	EQU	4
OUT_DEVICE_PRECIS	EQU	5
OUT_RASTER_PRECIS	EQU	6
OUT_TT_ONLY_PRECIS	EQU	7
OUT_OUTLINE_PRECIS	EQU	8
OUT_SCREEN_OUTLINE_PRECIS	EQU	9
OUT_PS_ONLY_PRECIS	EQU	10
CLIP_DEFAULT_PRECIS	EQU	0
CLIP_CHARACTER_PRECIS	EQU	1
CLIP_STROKE_PRECIS	EQU	2
CLIP_MASK	EQU	0fh
CLIP_LH_ANGLES	EQU	( 1  shl  4 )
CLIP_TT_ALWAYS	EQU	( 2  shl  4 )
CLIP_EMBEDDED	EQU	( 8  shl  4 )
DEFAULT_QUALITY	EQU	0
DRAFT_QUALITY	EQU	1
PROOF_QUALITY	EQU	2
if (WINVER ge 0400h)
NONANTIALIASED_QUALITY	EQU	3
ANTIALIASED_QUALITY	EQU	4
endif 
if (_WIN32_WINNT ge 0500h)
CLEARTYPE_QUALITY	EQU	5
endif 
DEFAULT_PITCH	EQU	0
FIXED_PITCH	EQU	1
VARIABLE_PITCH	EQU	2
if (WINVER ge 0400h)
MONO_FONT	EQU	8
endif 
ANSI_CHARSET	EQU	0
DEFAULT_CHARSET	EQU	1
SYMBOL_CHARSET	EQU	2
SHIFTJIS_CHARSET	EQU	128
HANGEUL_CHARSET	EQU	129
HANGUL_CHARSET	EQU	129
GB2312_CHARSET	EQU	134
CHINESEBIG5_CHARSET	EQU	136
OEM_CHARSET	EQU	255
if (WINVER ge 0400h)
JOHAB_CHARSET	EQU	130
HEBREW_CHARSET	EQU	177
ARABIC_CHARSET	EQU	178
GREEK_CHARSET	EQU	161
TURKISH_CHARSET	EQU	162
VIETNAMESE_CHARSET	EQU	163
THAI_CHARSET	EQU	222
EASTEUROPE_CHARSET	EQU	238
RUSSIAN_CHARSET	EQU	204
MAC_CHARSET	EQU	77
BALTIC_CHARSET	EQU	186
FS_LATIN1	EQU	00000001h
FS_LATIN2	EQU	00000002h
FS_CYRILLIC	EQU	00000004h
FS_GREEK	EQU	00000008h
FS_TURKISH	EQU	00000010h
FS_HEBREW	EQU	00000020h
FS_ARABIC	EQU	00000040h
FS_BALTIC	EQU	00000080h
FS_VIETNAMESE	EQU	00000100h
FS_THAI	EQU	00010000h
FS_JISJAPAN	EQU	00020000h
FS_CHINESESIMP	EQU	00040000h
FS_WANSUNG	EQU	00080000h
FS_CHINESETRAD	EQU	00100000h
FS_JOHAB	EQU	00200000h
FS_SYMBOL	EQU	80000000h
endif 
FF_DONTCARE	EQU	( 0  shl  4 )
FF_ROMAN	EQU	( 1  shl  4 )
FF_SWISS	EQU	( 2  shl  4 )
FF_MODERN	EQU	( 3  shl  4 )
FF_SCRIPT	EQU	( 4  shl  4 )
FF_DECORATIVE	EQU	( 5  shl  4 )
FW_DONTCARE	EQU	0
FW_THIN	EQU	100
FW_EXTRALIGHT	EQU	200
FW_LIGHT	EQU	300
FW_NORMAL	EQU	400
FW_MEDIUM	EQU	500
FW_SEMIBOLD	EQU	600
FW_BOLD	EQU	700
FW_EXTRABOLD	EQU	800
FW_HEAVY	EQU	900
FW_ULTRALIGHT	EQU	<FW_EXTRALIGHT>
FW_REGULAR	EQU	<FW_NORMAL>
FW_DEMIBOLD	EQU	<FW_SEMIBOLD>
FW_ULTRABOLD	EQU	<FW_EXTRABOLD>
FW_BLACK	EQU	<FW_HEAVY>
PANOSE_COUNT	EQU	10
PAN_FAMILYTYPE_INDEX	EQU	0
PAN_SERIFSTYLE_INDEX	EQU	1
PAN_WEIGHT_INDEX	EQU	2
PAN_PROPORTION_INDEX	EQU	3
PAN_CONTRAST_INDEX	EQU	4
PAN_STROKEVARIATION_INDEX	EQU	5
PAN_ARMSTYLE_INDEX	EQU	6
PAN_LETTERFORM_INDEX	EQU	7
PAN_MIDLINE_INDEX	EQU	8
PAN_XHEIGHT_INDEX	EQU	9
PAN_CULTURE_LATIN	EQU	0
PANOSE	struct 
bFamilyType	BYTE	?
bSerifStyle	BYTE	?
bWeight	BYTE	?
bProportion	BYTE	?
bContrast	BYTE	?
bStrokeVariation	BYTE	?
bArmStyle	BYTE	?
bLetterform	BYTE	?
bMidline	BYTE	?
bXHeight	BYTE	?
PANOSE	ends

LPPANOSE typedef ptr PANOSE

PAN_ANY	EQU	0
PAN_NO_FIT	EQU	1
PAN_FAMILY_TEXT_DISPLAY	EQU	2
PAN_FAMILY_SCRIPT	EQU	3
PAN_FAMILY_DECORATIVE	EQU	4
PAN_FAMILY_PICTORIAL	EQU	5
PAN_SERIF_COVE	EQU	2
PAN_SERIF_OBTUSE_COVE	EQU	3
PAN_SERIF_SQUARE_COVE	EQU	4
PAN_SERIF_OBTUSE_SQUARE_COVE	EQU	5
PAN_SERIF_SQUARE	EQU	6
PAN_SERIF_THIN	EQU	7
PAN_SERIF_BONE	EQU	8
PAN_SERIF_EXAGGERATED	EQU	9
PAN_SERIF_TRIANGLE	EQU	10
PAN_SERIF_NORMAL_SANS	EQU	11
PAN_SERIF_OBTUSE_SANS	EQU	12
PAN_SERIF_PERP_SANS	EQU	13
PAN_SERIF_FLARED	EQU	14
PAN_SERIF_ROUNDED	EQU	15
PAN_WEIGHT_VERY_LIGHT	EQU	2
PAN_WEIGHT_LIGHT	EQU	3
PAN_WEIGHT_THIN	EQU	4
PAN_WEIGHT_BOOK	EQU	5
PAN_WEIGHT_MEDIUM	EQU	6
PAN_WEIGHT_DEMI	EQU	7
PAN_WEIGHT_BOLD	EQU	8
PAN_WEIGHT_HEAVY	EQU	9
PAN_WEIGHT_BLACK	EQU	10
PAN_WEIGHT_NORD	EQU	11
PAN_PROP_OLD_STYLE	EQU	2
PAN_PROP_MODERN	EQU	3
PAN_PROP_EVEN_WIDTH	EQU	4
PAN_PROP_EXPANDED	EQU	5
PAN_PROP_CONDENSED	EQU	6
PAN_PROP_VERY_EXPANDED	EQU	7
PAN_PROP_VERY_CONDENSED	EQU	8
PAN_PROP_MONOSPACED	EQU	9
PAN_CONTRAST_NONE	EQU	2
PAN_CONTRAST_VERY_LOW	EQU	3
PAN_CONTRAST_LOW	EQU	4
PAN_CONTRAST_MEDIUM_LOW	EQU	5
PAN_CONTRAST_MEDIUM	EQU	6
PAN_CONTRAST_MEDIUM_HIGH	EQU	7
PAN_CONTRAST_HIGH	EQU	8
PAN_CONTRAST_VERY_HIGH	EQU	9
PAN_STROKE_GRADUAL_DIAG	EQU	2
PAN_STROKE_GRADUAL_TRAN	EQU	3
PAN_STROKE_GRADUAL_VERT	EQU	4
PAN_STROKE_GRADUAL_HORZ	EQU	5
PAN_STROKE_RAPID_VERT	EQU	6
PAN_STROKE_RAPID_HORZ	EQU	7
PAN_STROKE_INSTANT_VERT	EQU	8
PAN_STRAIGHT_ARMS_HORZ	EQU	2
PAN_STRAIGHT_ARMS_WEDGE	EQU	3
PAN_STRAIGHT_ARMS_VERT	EQU	4
PAN_STRAIGHT_ARMS_SINGLE_SERIF	EQU	5
PAN_STRAIGHT_ARMS_DOUBLE_SERIF	EQU	6
PAN_BENT_ARMS_HORZ	EQU	7
PAN_BENT_ARMS_WEDGE	EQU	8
PAN_BENT_ARMS_VERT	EQU	9
PAN_BENT_ARMS_SINGLE_SERIF	EQU	10
PAN_BENT_ARMS_DOUBLE_SERIF	EQU	11
PAN_LETT_NORMAL_CONTACT	EQU	2
PAN_LETT_NORMAL_WEIGHTED	EQU	3
PAN_LETT_NORMAL_BOXED	EQU	4
PAN_LETT_NORMAL_FLATTENED	EQU	5
PAN_LETT_NORMAL_ROUNDED	EQU	6
PAN_LETT_NORMAL_OFF_CENTER	EQU	7
PAN_LETT_NORMAL_SQUARE	EQU	8
PAN_LETT_OBLIQUE_CONTACT	EQU	9
PAN_LETT_OBLIQUE_WEIGHTED	EQU	10
PAN_LETT_OBLIQUE_BOXED	EQU	11
PAN_LETT_OBLIQUE_FLATTENED	EQU	12
PAN_LETT_OBLIQUE_ROUNDED	EQU	13
PAN_LETT_OBLIQUE_OFF_CENTER	EQU	14
PAN_LETT_OBLIQUE_SQUARE	EQU	15
PAN_MIDLINE_STANDARD_TRIMMED	EQU	2
PAN_MIDLINE_STANDARD_POINTED	EQU	3
PAN_MIDLINE_STANDARD_SERIFED	EQU	4
PAN_MIDLINE_HIGH_TRIMMED	EQU	5
PAN_MIDLINE_HIGH_POINTED	EQU	6
PAN_MIDLINE_HIGH_SERIFED	EQU	7
PAN_MIDLINE_CONSTANT_TRIMMED	EQU	8
PAN_MIDLINE_CONSTANT_POINTED	EQU	9
PAN_MIDLINE_CONSTANT_SERIFED	EQU	10
PAN_MIDLINE_LOW_TRIMMED	EQU	11
PAN_MIDLINE_LOW_POINTED	EQU	12
PAN_MIDLINE_LOW_SERIFED	EQU	13
PAN_XHEIGHT_CONSTANT_SMALL	EQU	2
PAN_XHEIGHT_CONSTANT_STD	EQU	3
PAN_XHEIGHT_CONSTANT_LARGE	EQU	4
PAN_XHEIGHT_DUCKING_SMALL	EQU	5
PAN_XHEIGHT_DUCKING_STD	EQU	6
PAN_XHEIGHT_DUCKING_LARGE	EQU	7
ELF_VENDOR_SIZE	EQU	4
EXTLOGFONTA	struct 
elfLogFont	LOGFONTA	<>
elfFullName	BYTE LF_FULLFACESIZE dup (?)
elfStyle	BYTE LF_FACESIZE dup (?)
elfVersion	DWORD	?
elfStyleSize	DWORD	?
elfMatch	DWORD	?
elfReserved	DWORD	?
elfVendorId	BYTE ELF_VENDOR_SIZE dup (?)
elfCulture	DWORD	?
elfPanose	PANOSE	<>
EXTLOGFONTA	ends

PEXTLOGFONTA typedef ptr EXTLOGFONTA
NPEXTLOGFONTA typedef ptr EXTLOGFONTA
LPEXTLOGFONTA typedef ptr EXTLOGFONTA

EXTLOGFONTW	struct 
elfLogFont	LOGFONTW	<>
elfFullName	WCHAR LF_FULLFACESIZE dup (?)
elfStyle	WCHAR LF_FACESIZE dup (?)
elfVersion	DWORD	?
elfStyleSize	DWORD	?
elfMatch	DWORD	?
elfReserved	DWORD	?
elfVendorId	BYTE ELF_VENDOR_SIZE dup (?)
elfCulture	DWORD	?
elfPanose	PANOSE	<>
EXTLOGFONTW	ends

PEXTLOGFONTW typedef ptr EXTLOGFONTW
NPEXTLOGFONTW typedef ptr EXTLOGFONTW
LPEXTLOGFONTW typedef ptr EXTLOGFONTW

ifdef UNICODE
EXTLOGFONT typedef EXTLOGFONTW
PEXTLOGFONT typedef PEXTLOGFONTW
NPEXTLOGFONT typedef NPEXTLOGFONTW
LPEXTLOGFONT typedef LPEXTLOGFONTW
else 
EXTLOGFONT typedef EXTLOGFONTA
PEXTLOGFONT typedef PEXTLOGFONTA
NPEXTLOGFONT typedef NPEXTLOGFONTA
LPEXTLOGFONT typedef LPEXTLOGFONTA
endif 
ELF_VERSION	EQU	0
ELF_CULTURE_LATIN	EQU	0
RASTER_FONTTYPE	EQU	0001h
DEVICE_FONTTYPE	EQU	002h
TRUETYPE_FONTTYPE	EQU	004h
RGB macro r,g,b
	exitm <( ( ( ( r )  or  ( ( ( g ) )  shl  8 ) )  or  ( ( ( b ) )  shl  16 ) ) ) >
	endm
PALETTERGB macro r,g,b
	exitm <( 02000000h  or  RGB ( r , g , b ) ) >
	endm
PALETTEINDEX macro i
	exitm <( ( 01000000h  or  ( i ) ) ) >
	endm
PC_RESERVED	EQU	01h
PC_EXPLICIT	EQU	02h
PC_NOCOLLAPSE	EQU	04h
GetRValue macro rgb
	exitm <( ( rgb ) ) >
	endm
GetGValue macro rgb
	exitm <( ( ( ( rgb ) )  shr  8 ) ) >
	endm
GetBValue macro rgb
	exitm <( ( ( rgb )  shr  16 ) ) >
	endm
TRANSPARENT	EQU	1
OPAQUE	EQU	2
BKMODE_LAST	EQU	2
GM_COMPATIBLE	EQU	1
GM_ADVANCED	EQU	2
GM_LAST	EQU	2
PT_CLOSEFIGURE	EQU	01h
PT_LINETO	EQU	02h
PT_BEZIERTO	EQU	04h
PT_MOVETO	EQU	06h
MM_TEXT	EQU	1
MM_LOMETRIC	EQU	2
MM_HIMETRIC	EQU	3
MM_LOENGLISH	EQU	4
MM_HIENGLISH	EQU	5
MM_TWIPS	EQU	6
MM_ISOTROPIC	EQU	7
MM_ANISOTROPIC	EQU	8
MM_MIN	EQU	<MM_TEXT>
MM_MAX	EQU	<MM_ANISOTROPIC>
MM_MAX_FIXEDSCALE	EQU	<MM_TWIPS>
ABSOLUTE	EQU	1
RELATIVE	EQU	2
WHITE_BRUSH	EQU	0
LTGRAY_BRUSH	EQU	1
GRAY_BRUSH	EQU	2
DKGRAY_BRUSH	EQU	3
BLACK_BRUSH	EQU	4
NULL_BRUSH	EQU	5
HOLLOW_BRUSH	EQU	<NULL_BRUSH>
WHITE_PEN	EQU	6
BLACK_PEN	EQU	7
NULL_PEN	EQU	8
OEM_FIXED_FONT	EQU	10
ANSI_FIXED_FONT	EQU	11
ANSI_VAR_FONT	EQU	12
SYSTEM_FONT	EQU	13
DEVICE_DEFAULT_FONT	EQU	14
DEFAULT_PALETTE	EQU	15
SYSTEM_FIXED_FONT	EQU	16
if (WINVER ge 0400h)
DEFAULT_GUI_FONT	EQU	17
endif 
if (_WIN32_WINNT ge 0500h)
DC_BRUSH	EQU	18
DC_PEN	EQU	19
endif 
if (_WIN32_WINNT ge 0500h)
STOCK_LAST	EQU	19
elseif (WINVER ge 0400h)
STOCK_LAST	EQU	17
else 
STOCK_LAST	EQU	16
endif 
CLR_INVALID	EQU	0FFFFFFFFh
BS_SOLID	EQU	0
BS_NULL	EQU	1
BS_HOLLOW	EQU	<BS_NULL>
BS_HATCHED	EQU	2
BS_PATTERN	EQU	3
BS_INDEXED	EQU	4
BS_DIBPATTERN	EQU	5
BS_DIBPATTERNPT	EQU	6
BS_PATTERN8X8	EQU	7
BS_DIBPATTERN8X8	EQU	8
BS_MONOPATTERN	EQU	9
HS_HORIZONTAL	EQU	0
HS_VERTICAL	EQU	1
HS_FDIAGONAL	EQU	2
HS_BDIAGONAL	EQU	3
HS_CROSS	EQU	4
HS_DIAGCROSS	EQU	5
PS_SOLID	EQU	0
PS_DASH	EQU	1
PS_DOT	EQU	2
PS_DASHDOT	EQU	3
PS_DASHDOTDOT	EQU	4
PS_NULL	EQU	5
PS_INSIDEFRAME	EQU	6
PS_USERSTYLE	EQU	7
PS_ALTERNATE	EQU	8
PS_STYLE_MASK	EQU	0000000Fh
PS_ENDCAP_ROUND	EQU	00000000h
PS_ENDCAP_SQUARE	EQU	00000100h
PS_ENDCAP_FLAT	EQU	00000200h
PS_ENDCAP_MASK	EQU	00000F00h
PS_JOIN_ROUND	EQU	00000000h
PS_JOIN_BEVEL	EQU	00001000h
PS_JOIN_MITER	EQU	00002000h
PS_JOIN_MASK	EQU	0000F000h
PS_COSMETIC	EQU	00000000h
PS_GEOMETRIC	EQU	00010000h
PS_TYPE_MASK	EQU	000F0000h
AD_COUNTERCLOCKWISE	EQU	1
AD_CLOCKWISE	EQU	2
DRIVERVERSION	EQU	0
TECHNOLOGY	EQU	2
HORZSIZE	EQU	4
VERTSIZE	EQU	6
HORZRES	EQU	8
VERTRES	EQU	10
BITSPIXEL	EQU	12
PLANES	EQU	14
NUMBRUSHES	EQU	16
NUMPENS	EQU	18
NUMMARKERS	EQU	20
NUMFONTS	EQU	22
NUMCOLORS	EQU	24
PDEVICESIZE	EQU	26
CURVECAPS	EQU	28
LINECAPS	EQU	30
POLYGONALCAPS	EQU	32
TEXTCAPS	EQU	34
CLIPCAPS	EQU	36
RASTERCAPS	EQU	38
ASPECTX	EQU	40
ASPECTY	EQU	42
ASPECTXY	EQU	44
LOGPIXELSX	EQU	88
LOGPIXELSY	EQU	90
SIZEPALETTE	EQU	104
NUMRESERVED	EQU	106
COLORRES	EQU	108
PHYSICALWIDTH	EQU	110
PHYSICALHEIGHT	EQU	111
PHYSICALOFFSETX	EQU	112
PHYSICALOFFSETY	EQU	113
SCALINGFACTORX	EQU	114
SCALINGFACTORY	EQU	115
VREFRESH	EQU	116
DESKTOPVERTRES	EQU	117
DESKTOPHORZRES	EQU	118
BLTALIGNMENT	EQU	119
if (WINVER ge 0500h)
SHADEBLENDCAPS	EQU	120
COLORMGMTCAPS	EQU	121
endif 
ifndef NOGDICAPMASKS
DT_PLOTTER	EQU	0
DT_RASDISPLAY	EQU	1
DT_RASPRINTER	EQU	2
DT_RASCAMERA	EQU	3
DT_CHARSTREAM	EQU	4
DT_METAFILE	EQU	5
DT_DISPFILE	EQU	6
CC_NONE	EQU	0
CC_CIRCLES	EQU	1
CC_PIE	EQU	2
CC_CHORD	EQU	4
CC_ELLIPSES	EQU	8
CC_WIDE	EQU	16
CC_STYLED	EQU	32
CC_WIDESTYLED	EQU	64
CC_INTERIORS	EQU	128
CC_ROUNDRECT	EQU	256
LC_NONE	EQU	0
LC_POLYLINE	EQU	2
LC_MARKER	EQU	4
LC_POLYMARKER	EQU	8
LC_WIDE	EQU	16
LC_STYLED	EQU	32
LC_WIDESTYLED	EQU	64
LC_INTERIORS	EQU	128
PC_NONE	EQU	0
PC_POLYGON	EQU	1
PC_RECTANGLE	EQU	2
PC_WINDPOLYGON	EQU	4
PC_TRAPEZOID	EQU	4
PC_SCANLINE	EQU	8
PC_WIDE	EQU	16
PC_STYLED	EQU	32
PC_WIDESTYLED	EQU	64
PC_INTERIORS	EQU	128
PC_POLYPOLYGON	EQU	256
PC_PATHS	EQU	512
CP_NONE	EQU	0
CP_RECTANGLE	EQU	1
CP_REGION	EQU	2
TC_OP_CHARACTER	EQU	00000001h
TC_OP_STROKE	EQU	00000002h
TC_CP_STROKE	EQU	00000004h
TC_CR_90	EQU	00000008h
TC_CR_ANY	EQU	00000010h
TC_SF_X_YINDEP	EQU	00000020h
TC_SA_DOUBLE	EQU	00000040h
TC_SA_INTEGER	EQU	00000080h
TC_SA_CONTIN	EQU	00000100h
TC_EA_DOUBLE	EQU	00000200h
TC_IA_ABLE	EQU	00000400h
TC_UA_ABLE	EQU	00000800h
TC_SO_ABLE	EQU	00001000h
TC_RA_ABLE	EQU	00002000h
TC_VA_ABLE	EQU	00004000h
TC_RESERVED	EQU	00008000h
TC_SCROLLBLT	EQU	00010000h
endif 
RC_NONE	EQU	<>
RC_BITBLT	EQU	1
RC_BANDING	EQU	2
RC_SCALING	EQU	4
RC_BITMAP64	EQU	8
RC_GDI20_OUTPUT	EQU	0010h
RC_GDI20_STATE	EQU	0020h
RC_SAVEBITMAP	EQU	0040h
RC_DI_BITMAP	EQU	0080h
RC_PALETTE	EQU	0100h
RC_DIBTODEV	EQU	0200h
RC_BIGFONT	EQU	0400h
RC_STRETCHBLT	EQU	0800h
RC_FLOODFILL	EQU	1000h
RC_STRETCHDIB	EQU	2000h
RC_OP_DX_OUTPUT	EQU	4000h
RC_DEVBITS	EQU	8000h
if (WINVER ge 0500h)
SB_NONE	EQU	00000000h
SB_CONST_ALPHA	EQU	00000001h
SB_PIXEL_ALPHA	EQU	00000002h
SB_PREMULT_ALPHA	EQU	00000004h
SB_GRAD_RECT	EQU	00000010h
SB_GRAD_TRI	EQU	00000020h
CM_NONE	EQU	00000000h
CM_DEVICE_ICM	EQU	00000001h
CM_GAMMA_RAMP	EQU	00000002h
CM_CMYK_COLOR	EQU	00000004h
endif 
DIB_RGB_COLORS	EQU	0
DIB_PAL_COLORS	EQU	1
SYSPAL_ERROR	EQU	0
SYSPAL_STATIC	EQU	1
SYSPAL_NOSTATIC	EQU	2
SYSPAL_NOSTATIC256	EQU	3
CBM_INIT	EQU	04h
FLOODFILLBORDER	EQU	0
FLOODFILLSURFACE	EQU	1
CCHDEVICENAME	EQU	32
CCHFORMNAME	EQU	32
DEVMODEA	struct 
dmDeviceName	BYTE CCHDEVICENAME dup (?)
dmSpecVersion	WORD	?
dmDriverVersion	WORD	?
dmSize	WORD	?
dmDriverExtra	WORD	?
dmFields	DWORD	?
union
struct
dmOrientation	SWORD	?
dmPaperSize	SWORD	?
dmPaperLength	SWORD	?
dmPaperWidth	SWORD	?
ends
dmPosition	POINTL	<>
ends
dmScale	SWORD	?
dmCopies	SWORD	?
dmDefaultSource	SWORD	?
dmPrintQuality	SWORD	?
dmColor	SWORD	?
dmDuplex	SWORD	?
dmYResolution	SWORD	?
dmTTOption	SWORD	?
dmCollate	SWORD	?
dmFormName	BYTE CCHFORMNAME dup (?)
dmLogPixels	WORD	?
dmBitsPerPel	DWORD	?
dmPelsWidth	DWORD	?
dmPelsHeight	DWORD	?
union
dmDisplayFlags	DWORD	?
dmNup	DWORD	?
ends
dmDisplayFrequency	DWORD	?
if (WINVER ge 0400h)
dmICMMethod	DWORD	?
dmICMIntent	DWORD	?
dmMediaType	DWORD	?
dmDitherType	DWORD	?
dmReserved1	DWORD	?
dmReserved2	DWORD	?
if (WINVER ge 0500h) OR (_WIN32_WINNT ge 0400h)
dmPanningWidth	DWORD	?
dmPanningHeight	DWORD	?
endif 
endif 
DEVMODEA	ends

PDEVMODEA typedef ptr DEVMODEA
NPDEVMODEA typedef ptr DEVMODEA
LPDEVMODEA typedef ptr DEVMODEA

DEVMODEW	struct 
dmDeviceName	WCHAR CCHDEVICENAME dup (?)
dmSpecVersion	WORD	?
dmDriverVersion	WORD	?
dmSize	WORD	?
dmDriverExtra	WORD	?
dmFields	DWORD	?
union
struct
dmOrientation	SWORD	?
dmPaperSize	SWORD	?
dmPaperLength	SWORD	?
dmPaperWidth	SWORD	?
ends
dmPosition	POINTL	<>
ends
dmScale	SWORD	?
dmCopies	SWORD	?
dmDefaultSource	SWORD	?
dmPrintQuality	SWORD	?
dmColor	SWORD	?
dmDuplex	SWORD	?
dmYResolution	SWORD	?
dmTTOption	SWORD	?
dmCollate	SWORD	?
dmFormName	WCHAR CCHFORMNAME dup (?)
dmLogPixels	WORD	?
dmBitsPerPel	DWORD	?
dmPelsWidth	DWORD	?
dmPelsHeight	DWORD	?
union
dmDisplayFlags	DWORD	?
dmNup	DWORD	?
ends
dmDisplayFrequency	DWORD	?
if (WINVER ge 0400h)
dmICMMethod	DWORD	?
dmICMIntent	DWORD	?
dmMediaType	DWORD	?
dmDitherType	DWORD	?
dmReserved1	DWORD	?
dmReserved2	DWORD	?
if (WINVER ge 0500h) OR (_WIN32_WINNT ge 0400h)
dmPanningWidth	DWORD	?
dmPanningHeight	DWORD	?
endif 
endif 
DEVMODEW	ends

PDEVMODEW typedef ptr DEVMODEW
NPDEVMODEW typedef ptr DEVMODEW
LPDEVMODEW typedef ptr DEVMODEW

ifdef UNICODE
DEVMODE typedef DEVMODEW
PDEVMODE typedef PDEVMODEW
NPDEVMODE typedef NPDEVMODEW
LPDEVMODE typedef LPDEVMODEW
else 
DEVMODE typedef DEVMODEA
PDEVMODE typedef PDEVMODEA
NPDEVMODE typedef NPDEVMODEA
LPDEVMODE typedef LPDEVMODEA
endif 
if (WINVER ge 0500h) OR (_WIN32_WINNT ge 0400h)
DM_SPECVERSION	EQU	0401h
elseif (WINVER ge 0400h)
DM_SPECVERSION	EQU	0400h
else 
DM_SPECVERSION	EQU	0320h
endif 
DM_ORIENTATION	EQU	00000001h
DM_PAPERSIZE	EQU	00000002h
DM_PAPERLENGTH	EQU	00000004h
DM_PAPERWIDTH	EQU	00000008h
DM_SCALE	EQU	00000010h
if (WINVER ge 0500h)
DM_POSITION	EQU	00000020h
DM_NUP	EQU	00000040h
endif 
DM_COPIES	EQU	00000100h
DM_DEFAULTSOURCE	EQU	00000200h
DM_PRINTQUALITY	EQU	00000400h
DM_COLOR	EQU	00000800h
DM_DUPLEX	EQU	00001000h
DM_YRESOLUTION	EQU	00002000h
DM_TTOPTION	EQU	00004000h
DM_COLLATE	EQU	00008000h
DM_FORMNAME	EQU	00010000h
DM_LOGPIXELS	EQU	00020000h
DM_BITSPERPEL	EQU	00040000h
DM_PELSWIDTH	EQU	00080000h
DM_PELSHEIGHT	EQU	00100000h
DM_DISPLAYFLAGS	EQU	00200000h
DM_DISPLAYFREQUENCY	EQU	00400000h
if (WINVER ge 0400h)
DM_ICMMETHOD	EQU	00800000h
DM_ICMINTENT	EQU	01000000h
DM_MEDIATYPE	EQU	02000000h
DM_DITHERTYPE	EQU	04000000h
DM_PANNINGWIDTH	EQU	08000000h
DM_PANNINGHEIGHT	EQU	10000000h
endif 
DMORIENT_PORTRAIT	EQU	1
DMORIENT_LANDSCAPE	EQU	2
DMPAPER_FIRST	EQU	<DMPAPER_LETTER>
DMPAPER_LETTER	EQU	1
DMPAPER_LETTERSMALL	EQU	2
DMPAPER_TABLOID	EQU	3
DMPAPER_LEDGER	EQU	4
DMPAPER_LEGAL	EQU	5
DMPAPER_STATEMENT	EQU	6
DMPAPER_EXECUTIVE	EQU	7
DMPAPER_A3	EQU	8
DMPAPER_A4	EQU	9
DMPAPER_A4SMALL	EQU	10
DMPAPER_A5	EQU	11
DMPAPER_B4	EQU	12
DMPAPER_B5	EQU	13
DMPAPER_FOLIO	EQU	14
DMPAPER_QUARTO	EQU	15
DMPAPER_10X14	EQU	16
DMPAPER_11X17	EQU	17
DMPAPER_NOTE	EQU	18
DMPAPER_ENV_9	EQU	19
DMPAPER_ENV_10	EQU	20
DMPAPER_ENV_11	EQU	21
DMPAPER_ENV_12	EQU	22
DMPAPER_ENV_14	EQU	23
DMPAPER_CSHEET	EQU	24
DMPAPER_DSHEET	EQU	25
DMPAPER_ESHEET	EQU	26
DMPAPER_ENV_DL	EQU	27
DMPAPER_ENV_C5	EQU	28
DMPAPER_ENV_C3	EQU	29
DMPAPER_ENV_C4	EQU	30
DMPAPER_ENV_C6	EQU	31
DMPAPER_ENV_C65	EQU	32
DMPAPER_ENV_B4	EQU	33
DMPAPER_ENV_B5	EQU	34
DMPAPER_ENV_B6	EQU	35
DMPAPER_ENV_ITALY	EQU	36
DMPAPER_ENV_MONARCH	EQU	37
DMPAPER_ENV_PERSONAL	EQU	38
DMPAPER_FANFOLD_US	EQU	39
DMPAPER_FANFOLD_STD_GERMAN	EQU	40
DMPAPER_FANFOLD_LGL_GERMAN	EQU	41
if (WINVER ge 0400h)
DMPAPER_ISO_B4	EQU	42
DMPAPER_JAPANESE_POSTCARD	EQU	43
DMPAPER_9X11	EQU	44
DMPAPER_10X11	EQU	45
DMPAPER_15X11	EQU	46
DMPAPER_ENV_INVITE	EQU	47
DMPAPER_RESERVED_48	EQU	48
DMPAPER_RESERVED_49	EQU	49
DMPAPER_LETTER_EXTRA	EQU	50
DMPAPER_LEGAL_EXTRA	EQU	51
DMPAPER_TABLOID_EXTRA	EQU	52
DMPAPER_A4_EXTRA	EQU	53
DMPAPER_LETTER_TRANSVERSE	EQU	54
DMPAPER_A4_TRANSVERSE	EQU	55
DMPAPER_LETTER_EXTRA_TRANSVERSE	EQU	56
DMPAPER_A_PLUS	EQU	57
DMPAPER_B_PLUS	EQU	58
DMPAPER_LETTER_PLUS	EQU	59
DMPAPER_A4_PLUS	EQU	60
DMPAPER_A5_TRANSVERSE	EQU	61
DMPAPER_B5_TRANSVERSE	EQU	62
DMPAPER_A3_EXTRA	EQU	63
DMPAPER_A5_EXTRA	EQU	64
DMPAPER_B5_EXTRA	EQU	65
DMPAPER_A2	EQU	66
DMPAPER_A3_TRANSVERSE	EQU	67
DMPAPER_A3_EXTRA_TRANSVERSE	EQU	68
endif 
if (WINVER ge 0500h)
DMPAPER_DBL_JAPANESE_POSTCARD	EQU	69
DMPAPER_A6	EQU	70
DMPAPER_JENV_KAKU2	EQU	71
DMPAPER_JENV_KAKU3	EQU	72
DMPAPER_JENV_CHOU3	EQU	73
DMPAPER_JENV_CHOU4	EQU	74
DMPAPER_LETTER_ROTATED	EQU	75
DMPAPER_A3_ROTATED	EQU	76
DMPAPER_A4_ROTATED	EQU	77
DMPAPER_A5_ROTATED	EQU	78
DMPAPER_B4_JIS_ROTATED	EQU	79
DMPAPER_B5_JIS_ROTATED	EQU	80
DMPAPER_JAPANESE_POSTCARD_ROTATED	EQU	81
DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED	EQU	82
DMPAPER_A6_ROTATED	EQU	83
DMPAPER_JENV_KAKU2_ROTATED	EQU	84
DMPAPER_JENV_KAKU3_ROTATED	EQU	85
DMPAPER_JENV_CHOU3_ROTATED	EQU	86
DMPAPER_JENV_CHOU4_ROTATED	EQU	87
DMPAPER_B6_JIS	EQU	88
DMPAPER_B6_JIS_ROTATED	EQU	89
DMPAPER_12X11	EQU	90
DMPAPER_JENV_YOU4	EQU	91
DMPAPER_JENV_YOU4_ROTATED	EQU	92
DMPAPER_P16K	EQU	93
DMPAPER_P32K	EQU	94
DMPAPER_P32KBIG	EQU	95
DMPAPER_PENV_1	EQU	96
DMPAPER_PENV_2	EQU	97
DMPAPER_PENV_3	EQU	98
DMPAPER_PENV_4	EQU	99
DMPAPER_PENV_5	EQU	100
DMPAPER_PENV_6	EQU	101
DMPAPER_PENV_7	EQU	102
DMPAPER_PENV_8	EQU	103
DMPAPER_PENV_9	EQU	104
DMPAPER_PENV_10	EQU	105
DMPAPER_P16K_ROTATED	EQU	106
DMPAPER_P32K_ROTATED	EQU	107
DMPAPER_P32KBIG_ROTATED	EQU	108
DMPAPER_PENV_1_ROTATED	EQU	109
DMPAPER_PENV_2_ROTATED	EQU	110
DMPAPER_PENV_3_ROTATED	EQU	111
DMPAPER_PENV_4_ROTATED	EQU	112
DMPAPER_PENV_5_ROTATED	EQU	113
DMPAPER_PENV_6_ROTATED	EQU	114
DMPAPER_PENV_7_ROTATED	EQU	115
DMPAPER_PENV_8_ROTATED	EQU	116
DMPAPER_PENV_9_ROTATED	EQU	117
DMPAPER_PENV_10_ROTATED	EQU	118
endif 
if (WINVER ge 0500h)
DMPAPER_LAST	EQU	<DMPAPER_PENV_10_ROTATED>
elseif (WINVER ge 0400h)
DMPAPER_LAST	EQU	<DMPAPER_A3_EXTRA_TRANSVERSE>
else 
DMPAPER_LAST	EQU	<DMPAPER_FANFOLD_LGL_GERMAN>
endif 
DMPAPER_USER	EQU	256
DMBIN_FIRST	EQU	<DMBIN_UPPER>
DMBIN_UPPER	EQU	1
DMBIN_ONLYONE	EQU	1
DMBIN_LOWER	EQU	2
DMBIN_MIDDLE	EQU	3
DMBIN_MANUAL	EQU	4
DMBIN_ENVELOPE	EQU	5
DMBIN_ENVMANUAL	EQU	6
DMBIN_AUTO	EQU	7
DMBIN_TRACTOR	EQU	8
DMBIN_SMALLFMT	EQU	9
DMBIN_LARGEFMT	EQU	10
DMBIN_LARGECAPACITY	EQU	11
DMBIN_CASSETTE	EQU	14
DMBIN_FORMSOURCE	EQU	15
DMBIN_LAST	EQU	<DMBIN_FORMSOURCE>
DMBIN_USER	EQU	256
DMRES_DRAFT	EQU	- 1
DMRES_LOW	EQU	- 2
DMRES_MEDIUM	EQU	- 3
DMRES_HIGH	EQU	- 4
DMCOLOR_MONOCHROME	EQU	1
DMCOLOR_COLOR	EQU	2
DMDUP_SIMPLEX	EQU	1
DMDUP_VERTICAL	EQU	2
DMDUP_HORIZONTAL	EQU	3
DMTT_BITMAP	EQU	1
DMTT_DOWNLOAD	EQU	2
DMTT_SUBDEV	EQU	3
if (WINVER ge 0400h)
DMTT_DOWNLOAD_OUTLINE	EQU	4
endif 
DMCOLLATE_FALSE	EQU	0
DMCOLLATE_TRUE	EQU	1
DMDISPLAYFLAGS_TEXTMODE	EQU	00000004h
DMNUP_SYSTEM	EQU	1
DMNUP_ONEUP	EQU	2
if (WINVER ge 0400h)
DMICMMETHOD_NONE	EQU	1
DMICMMETHOD_SYSTEM	EQU	2
DMICMMETHOD_DRIVER	EQU	3
DMICMMETHOD_DEVICE	EQU	4
DMICMMETHOD_USER	EQU	256
DMICM_SATURATE	EQU	1
DMICM_CONTRAST	EQU	2
DMICM_COLORIMETRIC	EQU	3
DMICM_ABS_COLORIMETRIC	EQU	4
DMICM_USER	EQU	256
DMMEDIA_STANDARD	EQU	1
DMMEDIA_TRANSPARENCY	EQU	2
DMMEDIA_GLOSSY	EQU	3
DMMEDIA_USER	EQU	256
DMDITHER_NONE	EQU	1
DMDITHER_COARSE	EQU	2
DMDITHER_FINE	EQU	3
DMDITHER_LINEART	EQU	4
DMDITHER_ERRORDIFFUSION	EQU	5
DMDITHER_RESERVED6	EQU	6
DMDITHER_RESERVED7	EQU	7
DMDITHER_RESERVED8	EQU	8
DMDITHER_RESERVED9	EQU	9
DMDITHER_GRAYSCALE	EQU	10
DMDITHER_USER	EQU	256
endif 
DISPLAY_DEVICEA	struct 
cb	DWORD	?
DeviceName	CHAR 32 dup (?)
DeviceString	CHAR 128 dup (?)
StateFlags	DWORD	?
DeviceID	CHAR 128 dup (?)
DeviceKey	CHAR 128 dup (?)
DISPLAY_DEVICEA	ends

PDISPLAY_DEVICEA typedef ptr DISPLAY_DEVICEA
LPDISPLAY_DEVICEA typedef ptr DISPLAY_DEVICEA

DISPLAY_DEVICEW	struct 
cb	DWORD	?
DeviceName	WCHAR 32 dup (?)
DeviceString	WCHAR 128 dup (?)
StateFlags	DWORD	?
DeviceID	WCHAR 128 dup (?)
DeviceKey	WCHAR 128 dup (?)
DISPLAY_DEVICEW	ends

PDISPLAY_DEVICEW typedef ptr DISPLAY_DEVICEW
LPDISPLAY_DEVICEW typedef ptr DISPLAY_DEVICEW

ifdef UNICODE
DISPLAY_DEVICE typedef DISPLAY_DEVICEW
PDISPLAY_DEVICE typedef PDISPLAY_DEVICEW
LPDISPLAY_DEVICE typedef LPDISPLAY_DEVICEW
else 
DISPLAY_DEVICE typedef DISPLAY_DEVICEA
PDISPLAY_DEVICE typedef PDISPLAY_DEVICEA
LPDISPLAY_DEVICE typedef LPDISPLAY_DEVICEA
endif 
DISPLAY_DEVICE_ATTACHED_TO_DESKTOP	EQU	00000001h
DISPLAY_DEVICE_MULTI_DRIVER	EQU	00000002h
DISPLAY_DEVICE_PRIMARY_DEVICE	EQU	00000004h
DISPLAY_DEVICE_MIRRORING_DRIVER	EQU	00000008h
DISPLAY_DEVICE_VGA_COMPATIBLE	EQU	00000010h
DISPLAY_DEVICE_REMOVABLE	EQU	00000020h
DISPLAY_DEVICE_MODESPRUNED	EQU	08000000h
DISPLAY_DEVICE_REMOTE	EQU	04000000h
DISPLAY_DEVICE_DISCONNECT	EQU	02000000h
DISPLAY_DEVICE_ACTIVE	EQU	00000001h
DISPLAY_DEVICE_ATTACHED	EQU	00000002h
RDH_RECTANGLES	EQU	1
RGNDATAHEADER	struct 
dwSize	DWORD	?
iType	DWORD	?
nCount	DWORD	?
nRgnSize	DWORD	?
rcBound	RECT	<>
RGNDATAHEADER	ends

PRGNDATAHEADER typedef ptr RGNDATAHEADER

RGNDATA	struct 
rdh	RGNDATAHEADER	<>
Buffer	SBYTE 1 dup (?)
RGNDATA	ends

PRGNDATA typedef ptr RGNDATA
NPRGNDATA typedef ptr RGNDATA
LPRGNDATA typedef ptr RGNDATA

SYSRGN	EQU	4
ABC	struct 
abcA	DWORD	?
abcB	DWORD	?
abcC	DWORD	?
ABC	ends

PABC typedef ptr ABC
NPABC typedef ptr ABC
LPABC typedef ptr ABC

ABCFLOAT	struct 
abcfA	REAL4	?
abcfB	REAL4	?
abcfC	REAL4	?
ABCFLOAT	ends

PABCFLOAT typedef ptr ABCFLOAT
NPABCFLOAT typedef ptr ABCFLOAT
LPABCFLOAT typedef ptr ABCFLOAT

ifndef NOTEXTMETRIC
ifdef _MAC
	include pshpack4.inc
endif 
OUTLINETEXTMETRICA	struct 
otmSize	DWORD	?
otmTextMetrics	TEXTMETRICA	<>
otmFiller	BYTE	?
otmPanoseNumber	PANOSE	<>
otmfsSelection	DWORD	?
otmfsType	DWORD	?
otmsCharSlopeRise	DWORD	?
otmsCharSlopeRun	DWORD	?
otmItalicAngle	DWORD	?
otmEMSquare	DWORD	?
otmAscent	DWORD	?
otmDescent	DWORD	?
otmLineGap	DWORD	?
otmsCapEmHeight	DWORD	?
otmsXHeight	DWORD	?
otmrcFontBox	RECT	<>
otmMacAscent	DWORD	?
otmMacDescent	DWORD	?
otmMacLineGap	DWORD	?
otmusMinimumPPEM	DWORD	?
otmptSubscriptSize	POINT	<>
otmptSubscriptOffset	POINT	<>
otmptSuperscriptSize	POINT	<>
otmptSuperscriptOffset	POINT	<>
otmsStrikeoutSize	DWORD	?
otmsStrikeoutPosition	DWORD	?
otmsUnderscoreSize	DWORD	?
otmsUnderscorePosition	DWORD	?
otmpFamilyName	PSTR	?
otmpFaceName	PSTR	?
otmpStyleName	PSTR	?
otmpFullName	PSTR	?
OUTLINETEXTMETRICA	ends

POUTLINETEXTMETRICA typedef ptr OUTLINETEXTMETRICA
NPOUTLINETEXTMETRICA typedef ptr OUTLINETEXTMETRICA
LPOUTLINETEXTMETRICA typedef ptr OUTLINETEXTMETRICA

OUTLINETEXTMETRICW	struct 
otmSize	DWORD	?
otmTextMetrics	TEXTMETRICW	<>
otmFiller	BYTE	?
otmPanoseNumber	PANOSE	<>
otmfsSelection	DWORD	?
otmfsType	DWORD	?
otmsCharSlopeRise	DWORD	?
otmsCharSlopeRun	DWORD	?
otmItalicAngle	DWORD	?
otmEMSquare	DWORD	?
otmAscent	DWORD	?
otmDescent	DWORD	?
otmLineGap	DWORD	?
otmsCapEmHeight	DWORD	?
otmsXHeight	DWORD	?
otmrcFontBox	RECT	<>
otmMacAscent	DWORD	?
otmMacDescent	DWORD	?
otmMacLineGap	DWORD	?
otmusMinimumPPEM	DWORD	?
otmptSubscriptSize	POINT	<>
otmptSubscriptOffset	POINT	<>
otmptSuperscriptSize	POINT	<>
otmptSuperscriptOffset	POINT	<>
otmsStrikeoutSize	DWORD	?
otmsStrikeoutPosition	DWORD	?
otmsUnderscoreSize	DWORD	?
otmsUnderscorePosition	DWORD	?
otmpFamilyName	PSTR	?
otmpFaceName	PSTR	?
otmpStyleName	PSTR	?
otmpFullName	PSTR	?
OUTLINETEXTMETRICW	ends

POUTLINETEXTMETRICW typedef ptr OUTLINETEXTMETRICW
NPOUTLINETEXTMETRICW typedef ptr OUTLINETEXTMETRICW
LPOUTLINETEXTMETRICW typedef ptr OUTLINETEXTMETRICW

ifdef UNICODE
OUTLINETEXTMETRIC typedef OUTLINETEXTMETRICW
POUTLINETEXTMETRIC typedef POUTLINETEXTMETRICW
NPOUTLINETEXTMETRIC typedef NPOUTLINETEXTMETRICW
LPOUTLINETEXTMETRIC typedef LPOUTLINETEXTMETRICW
else 
OUTLINETEXTMETRIC typedef OUTLINETEXTMETRICA
POUTLINETEXTMETRIC typedef POUTLINETEXTMETRICA
NPOUTLINETEXTMETRIC typedef NPOUTLINETEXTMETRICA
LPOUTLINETEXTMETRIC typedef LPOUTLINETEXTMETRICA
endif 
ifdef _MAC
	include poppack.inc
endif 
endif 
POLYTEXTA	struct 
x	DWORD	?
y	DWORD	?
n	DWORD	?
lpstr	LPSTR	?
uiFlags	DWORD	?
rcl_	RECT	<>
pdx	DWORD	?
POLYTEXTA	ends

PPOLYTEXTA typedef ptr POLYTEXTA
NPPOLYTEXTA typedef ptr POLYTEXTA
LPPOLYTEXTA typedef ptr POLYTEXTA

POLYTEXTW	struct 
x	DWORD	?
y	DWORD	?
n	DWORD	?
lpstr	LPWSTR	?
uiFlags	DWORD	?
rcl_	RECT	<>
pdx	DWORD	?
POLYTEXTW	ends

PPOLYTEXTW typedef ptr POLYTEXTW
NPPOLYTEXTW typedef ptr POLYTEXTW
LPPOLYTEXTW typedef ptr POLYTEXTW

ifdef UNICODE
POLYTEXT typedef POLYTEXTW
PPOLYTEXT typedef PPOLYTEXTW
NPPOLYTEXT typedef NPPOLYTEXTW
LPPOLYTEXT typedef LPPOLYTEXTW
else 
POLYTEXT typedef POLYTEXTA
PPOLYTEXT typedef PPOLYTEXTA
NPPOLYTEXT typedef NPPOLYTEXTA
LPPOLYTEXT typedef LPPOLYTEXTA
endif 
FIXED	struct 
ifndef _MAC
fract	WORD	?
value	SWORD	?
else 
value	SWORD	?
fract	WORD	?
endif 
FIXED	ends

MAT2	struct 
eM11	FIXED	<>
eM12	FIXED	<>
eM21	FIXED	<>
eM22	FIXED	<>
MAT2	ends

LPMAT2 typedef ptr MAT2

GLYPHMETRICS	struct 
gmBlackBoxX	DWORD	?
gmBlackBoxY	DWORD	?
gmptGlyphOrigin	POINT	<>
gmCellIncX	SWORD	?
gmCellIncY	SWORD	?
GLYPHMETRICS	ends

LPGLYPHMETRICS typedef ptr GLYPHMETRICS

GGO_METRICS	EQU	0
GGO_BITMAP	EQU	1
GGO_NATIVE	EQU	2
GGO_BEZIER	EQU	3
if (WINVER ge 0400h)
GGO_GRAY2_BITMAP	EQU	4
GGO_GRAY4_BITMAP	EQU	5
GGO_GRAY8_BITMAP	EQU	6
GGO_GLYPH_INDEX	EQU	0080h
endif 
if (_WIN32_WINNT ge 0500h)
GGO_UNHINTED	EQU	0100h
endif 
TT_POLYGON_TYPE	EQU	24
TT_PRIM_LINE	EQU	1
TT_PRIM_QSPLINE	EQU	2
TT_PRIM_CSPLINE	EQU	3
POINTFX	struct 
x	FIXED	<>
y	FIXED	<>
POINTFX	ends

LPPOINTFX typedef ptr POINTFX

TTPOLYCURVE	struct 
wType	WORD	?
cpfx	WORD	?
apfx	POINTFX 1 dup (<>)
TTPOLYCURVE	ends

LPTTPOLYCURVE typedef ptr TTPOLYCURVE

TTPOLYGONHEADER	struct 
cb	DWORD	?
dwType	DWORD	?
pfxStart	POINTFX	<>
TTPOLYGONHEADER	ends

LPTTPOLYGONHEADER typedef ptr TTPOLYGONHEADER

if (WINVER ge 0400h)
GCP_DBCS	EQU	0001h
GCP_REORDER	EQU	0002h
GCP_USEKERNING	EQU	0008h
GCP_GLYPHSHAPE	EQU	0010h
GCP_LIGATE	EQU	0020h
GCP_DIACRITIC	EQU	0100h
GCP_KASHIDA	EQU	0400h
GCP_ERROR	EQU	8000h
FLI_MASK	EQU	103Bh
GCP_JUSTIFY	EQU	00010000h
FLI_GLYPHS	EQU	00040000h
GCP_CLASSIN	EQU	00080000h
GCP_MAXEXTENT	EQU	00100000h
GCP_JUSTIFYIN	EQU	00200000h
GCP_DISPLAYZWG	EQU	00400000h
GCP_SYMSWAPOFF	EQU	00800000h
GCP_NUMERICOVERRIDE	EQU	01000000h
GCP_NEUTRALOVERRIDE	EQU	02000000h
GCP_NUMERICSLATIN	EQU	04000000h
GCP_NUMERICSLOCAL	EQU	08000000h
GCPCLASS_LATIN	EQU	1
GCPCLASS_HEBREW	EQU	2
GCPCLASS_ARABIC	EQU	2
GCPCLASS_NEUTRAL	EQU	3
GCPCLASS_LOCALNUMBER	EQU	4
GCPCLASS_LATINNUMBER	EQU	5
GCPCLASS_LATINNUMERICTERMINATOR	EQU	6
GCPCLASS_LATINNUMERICSEPARATOR	EQU	7
GCPCLASS_NUMERICSEPARATOR	EQU	8
GCPCLASS_PREBOUNDLTR	EQU	80h
GCPCLASS_PREBOUNDRTL	EQU	40h
GCPCLASS_POSTBOUNDLTR	EQU	20h
GCPCLASS_POSTBOUNDRTL	EQU	10h
GCPGLYPH_LINKBEFORE	EQU	8000h
GCPGLYPH_LINKAFTER	EQU	4000h
GCP_RESULTSA	struct 
lStructSize	DWORD	?
lpOutString	LPSTR	?
lpOrder	DWORD	?
lpDx	DWORD	?
lpCaretPos	DWORD	?
lpClass	LPSTR	?
lpGlyphs	LPWSTR	?
nGlyphs	DWORD	?
nMaxFit	DWORD	?
GCP_RESULTSA	ends

LPGCP_RESULTSA typedef ptr GCP_RESULTSA

GCP_RESULTSW	struct 
lStructSize	DWORD	?
lpOutString	LPWSTR	?
lpOrder	DWORD	?
lpDx	DWORD	?
lpCaretPos	DWORD	?
lpClass	LPSTR	?
lpGlyphs	LPWSTR	?
nGlyphs	DWORD	?
nMaxFit	DWORD	?
GCP_RESULTSW	ends

LPGCP_RESULTSW typedef ptr GCP_RESULTSW

ifdef UNICODE
GCP_RESULTS typedef GCP_RESULTSW
LPGCP_RESULTS typedef LPGCP_RESULTSW
else 
GCP_RESULTS typedef GCP_RESULTSA
LPGCP_RESULTS typedef LPGCP_RESULTSA
endif 
endif 
RASTERIZER_STATUS	struct 
nSize	SWORD	?
wFlags	SWORD	?
nLanguageID	SWORD	?
RASTERIZER_STATUS	ends

LPRASTERIZER_STATUS typedef ptr RASTERIZER_STATUS

TT_AVAILABLE	EQU	0001h
TT_ENABLED	EQU	0002h
PIXELFORMATDESCRIPTOR	struct 
nSize	WORD	?
nVersion	WORD	?
dwFlags	DWORD	?
iPixelType	BYTE	?
cColorBits	BYTE	?
cRedBits	BYTE	?
cRedShift	BYTE	?
cGreenBits	BYTE	?
cGreenShift	BYTE	?
cBlueBits	BYTE	?
cBlueShift	BYTE	?
cAlphaBits	BYTE	?
cAlphaShift	BYTE	?
cAccumBits	BYTE	?
cAccumRedBits	BYTE	?
cAccumGreenBits	BYTE	?
cAccumBlueBits	BYTE	?
cAccumAlphaBits	BYTE	?
cDepthBits	BYTE	?
cStencilBits	BYTE	?
cAuxBuffers	BYTE	?
iLayerType	BYTE	?
bReserved	BYTE	?
dwLayerMask	DWORD	?
dwVisibleMask	DWORD	?
dwDamageMask	DWORD	?
PIXELFORMATDESCRIPTOR	ends

PPIXELFORMATDESCRIPTOR typedef ptr PIXELFORMATDESCRIPTOR
LPPIXELFORMATDESCRIPTOR typedef ptr PIXELFORMATDESCRIPTOR

PFD_TYPE_RGBA	EQU	0
PFD_TYPE_COLORINDEX	EQU	1
PFD_MAIN_PLANE	EQU	0
PFD_OVERLAY_PLANE	EQU	1
PFD_UNDERLAY_PLANE	EQU	- 1
PFD_DOUBLEBUFFER	EQU	00000001h
PFD_STEREO	EQU	00000002h
PFD_DRAW_TO_WINDOW	EQU	00000004h
PFD_DRAW_TO_BITMAP	EQU	00000008h
PFD_SUPPORT_GDI	EQU	00000010h
PFD_SUPPORT_OPENGL	EQU	00000020h
PFD_GENERIC_FORMAT	EQU	00000040h
PFD_NEED_PALETTE	EQU	00000080h
PFD_NEED_SYSTEM_PALETTE	EQU	00000100h
PFD_SWAP_EXCHANGE	EQU	00000200h
PFD_SWAP_COPY	EQU	00000400h
PFD_SWAP_LAYER_BUFFERS	EQU	00000800h
PFD_GENERIC_ACCELERATED	EQU	00001000h
PFD_SUPPORT_DIRECTDRAW	EQU	00002000h
PFD_DEPTH_DONTCARE	EQU	20000000h
PFD_DOUBLEBUFFER_DONTCARE	EQU	40000000h
PFD_STEREO_DONTCARE	EQU	80000000h
ifdef STRICT
if  0 eq defined(NOTEXTMETRIC)
proto_OLDFONTENUMPROCA typedef proto stdcall :ptr LOGFONTA,:ptr TEXTMETRICA,:DWORD,:LPARAM
OLDFONTENUMPROCA typedef ptr proto_OLDFONTENUMPROCA
proto_OLDFONTENUMPROCW typedef proto stdcall :ptr LOGFONTW,:ptr TEXTMETRICW,:DWORD,:LPARAM
OLDFONTENUMPROCW typedef ptr proto_OLDFONTENUMPROCW
ifdef UNICODE
OLDFONTENUMPROC	EQU	<OLDFONTENUMPROCW>
else 
OLDFONTENUMPROC	EQU	<OLDFONTENUMPROCA>
endif 
else 
proto_OLDFONTENUMPROCA typedef proto stdcall :ptr LOGFONTA,:ptr ,:DWORD,:LPARAM
OLDFONTENUMPROCA typedef ptr proto_OLDFONTENUMPROCA
proto_OLDFONTENUMPROCW typedef proto stdcall :ptr LOGFONTW,:ptr ,:DWORD,:LPARAM
OLDFONTENUMPROCW typedef ptr proto_OLDFONTENUMPROCW
ifdef UNICODE
OLDFONTENUMPROC	EQU	<OLDFONTENUMPROCW>
else 
OLDFONTENUMPROC	EQU	<OLDFONTENUMPROCA>
endif 
endif 
FONTENUMPROCA typedef OLDFONTENUMPROCA
FONTENUMPROCW typedef OLDFONTENUMPROCW
ifdef UNICODE
FONTENUMPROC typedef FONTENUMPROCW
else 
FONTENUMPROC typedef FONTENUMPROCA
endif 
proto_GOBJENUMPROC typedef proto stdcall :LPVOID,:LPARAM
GOBJENUMPROC typedef ptr proto_GOBJENUMPROC
proto_LINEDDAPROC typedef proto stdcall :DWORD,:DWORD,:LPARAM
LINEDDAPROC typedef ptr proto_LINEDDAPROC
else 
OLDFONTENUMPROC typedef FARPROC
FONTENUMPROCA typedef FARPROC
FONTENUMPROCW typedef FARPROC
ifdef UNICODE
FONTENUMPROC typedef FONTENUMPROCW
else 
FONTENUMPROC typedef FONTENUMPROCA
endif 
GOBJENUMPROC typedef FARPROC
LINEDDAPROC typedef FARPROC
endif 
@DefProto WINGDIAPI, AddFontResourceA, stdcall, , <:LPSTR>, 4
@DefProto WINGDIAPI, AddFontResourceW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
AddFontResource	EQU	<AddFontResourceW>
else 
AddFontResource	EQU	<AddFontResourceA>
endif 
@DefProto WINGDIAPI, AnimatePalette, stdcall, , <:HPALETTE, :DWORD, :DWORD, :ptr PALETTEENTRY>, 16
@DefProto WINGDIAPI, Arc, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 36
@DefProto WINGDIAPI, BitBlt, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :HDC, :DWORD, :DWORD, :DWORD>, 36
@DefProto WINGDIAPI, CancelDC, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, Chord, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 36
@DefProto WINGDIAPI, ChoosePixelFormat, stdcall, , <:HDC, :ptr PIXELFORMATDESCRIPTOR>, 8
@DefProto WINGDIAPI, CloseMetaFile, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, CombineRgn, stdcall, , <:HRGN, :HRGN, :HRGN, :DWORD>, 16
@DefProto WINGDIAPI, CopyMetaFileA, stdcall, , <:HMETAFILE, :LPSTR>, 8
@DefProto WINGDIAPI, CopyMetaFileW, stdcall, , <:HMETAFILE, :LPWSTR>, 8
ifdef UNICODE
CopyMetaFile	EQU	<CopyMetaFileW>
else 
CopyMetaFile	EQU	<CopyMetaFileA>
endif 
@DefProto WINGDIAPI, CreateBitmap, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD, :ptr >, 20
@DefProto WINGDIAPI, CreateBitmapIndirect, stdcall, , <:ptr BITMAP>, 4
@DefProto WINGDIAPI, CreateBrushIndirect, stdcall, , <:ptr LOGBRUSH>, 4
@DefProto WINGDIAPI, CreateCompatibleBitmap, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, CreateDiscardableBitmap, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, CreateCompatibleDC, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, CreateDCA, stdcall, , <:LPSTR, :LPSTR, :LPSTR, :ptr DEVMODEA>, 16
@DefProto WINGDIAPI, CreateDCW, stdcall, , <:LPWSTR, :LPWSTR, :LPWSTR, :ptr DEVMODEW>, 16
ifdef UNICODE
CreateDC	EQU	<CreateDCW>
else 
CreateDC	EQU	<CreateDCA>
endif 
@DefProto WINGDIAPI, CreateDIBitmap, stdcall, , <:HDC, :ptr BITMAPINFOHEADER, :DWORD, :ptr , :ptr BITMAPINFO, :DWORD>, 24
@DefProto WINGDIAPI, CreateDIBPatternBrush, stdcall, , <:HGLOBAL, :DWORD>, 8
@DefProto WINGDIAPI, CreateDIBPatternBrushPt, stdcall, , <:ptr , :DWORD>, 8
@DefProto WINGDIAPI, CreateEllipticRgn, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD>, 16
@DefProto WINGDIAPI, CreateEllipticRgnIndirect, stdcall, , <:ptr RECT>, 4
@DefProto WINGDIAPI, CreateFontIndirectA, stdcall, , <:ptr LOGFONTA>, 4
@DefProto WINGDIAPI, CreateFontIndirectW, stdcall, , <:ptr LOGFONTW>, 4
ifdef UNICODE
CreateFontIndirect	EQU	<CreateFontIndirectW>
else 
CreateFontIndirect	EQU	<CreateFontIndirectA>
endif 
@DefProto WINGDIAPI, CreateFontA, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :LPSTR>, 56
@DefProto WINGDIAPI, CreateFontW, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :LPWSTR>, 56
ifdef UNICODE
CreateFont	EQU	<CreateFontW>
else 
CreateFont	EQU	<CreateFontA>
endif 
@DefProto WINGDIAPI, CreateHatchBrush, stdcall, , <:DWORD, :COLORREF>, 8
@DefProto WINGDIAPI, CreateICA, stdcall, , <:LPSTR, :LPSTR, :LPSTR, :ptr DEVMODEA>, 16
@DefProto WINGDIAPI, CreateICW, stdcall, , <:LPWSTR, :LPWSTR, :LPWSTR, :ptr DEVMODEW>, 16
ifdef UNICODE
CreateIC	EQU	<CreateICW>
else 
CreateIC	EQU	<CreateICA>
endif 
@DefProto WINGDIAPI, CreateMetaFileA, stdcall, , <:LPSTR>, 4
@DefProto WINGDIAPI, CreateMetaFileW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
CreateMetaFile	EQU	<CreateMetaFileW>
else 
CreateMetaFile	EQU	<CreateMetaFileA>
endif 
@DefProto WINGDIAPI, CreatePalette, stdcall, , <:ptr LOGPALETTE>, 4
@DefProto WINGDIAPI, CreatePen, stdcall, , <:DWORD, :DWORD, :COLORREF>, 12
@DefProto WINGDIAPI, CreatePenIndirect, stdcall, , <:ptr LOGPEN>, 4
@DefProto WINGDIAPI, CreatePolyPolygonRgn, stdcall, , <:ptr POINT, :ptr DWORD, :DWORD, :DWORD>, 16
@DefProto WINGDIAPI, CreatePatternBrush, stdcall, , <:HBITMAP>, 4
@DefProto WINGDIAPI, CreateRectRgn, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD>, 16
@DefProto WINGDIAPI, CreateRectRgnIndirect, stdcall, , <:ptr RECT>, 4
@DefProto WINGDIAPI, CreateRoundRectRgn, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 24
@DefProto WINGDIAPI, CreateScalableFontResourceA, stdcall, , <:DWORD, :LPSTR, :LPSTR, :LPSTR>, 16
@DefProto WINGDIAPI, CreateScalableFontResourceW, stdcall, , <:DWORD, :LPWSTR, :LPWSTR, :LPWSTR>, 16
ifdef UNICODE
CreateScalableFontResource	EQU	<CreateScalableFontResourceW>
else 
CreateScalableFontResource	EQU	<CreateScalableFontResourceA>
endif 
@DefProto WINGDIAPI, CreateSolidBrush, stdcall, , <:COLORREF>, 4
@DefProto WINGDIAPI, DeleteDC, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, DeleteMetaFile, stdcall, , <:HMETAFILE>, 4
@DefProto WINGDIAPI, DeleteObject, stdcall, , <:HGDIOBJ>, 4
@DefProto WINGDIAPI, DescribePixelFormat, stdcall, , <:HDC, :DWORD, :DWORD, :LPPIXELFORMATDESCRIPTOR>, 16
proto_LPFNDEVMODE typedef proto stdcall :HWND,:HMODULE,:LPDEVMODE,:LPSTR,:LPSTR,:LPDEVMODE,:LPSTR,:DWORD
LPFNDEVMODE typedef ptr proto_LPFNDEVMODE
proto_LPFNDEVCAPS typedef proto stdcall :LPSTR,:LPSTR,:DWORD,:LPSTR,:LPDEVMODE
LPFNDEVCAPS typedef ptr proto_LPFNDEVCAPS
DM_UPDATE	EQU	1
DM_COPY	EQU	2
DM_PROMPT	EQU	4
DM_MODIFY	EQU	8
DM_IN_BUFFER	EQU	<DM_MODIFY>
DM_IN_PROMPT	EQU	<DM_PROMPT>
DM_OUT_BUFFER	EQU	<DM_COPY>
DM_OUT_DEFAULT	EQU	<DM_UPDATE>
DC_FIELDS	EQU	1
DC_PAPERS	EQU	2
DC_PAPERSIZE	EQU	3
DC_MINEXTENT	EQU	4
DC_MAXEXTENT	EQU	5
DC_BINS	EQU	6
DC_DUPLEX	EQU	7
DC_SIZE	EQU	8
DC_EXTRA	EQU	9
DC_VERSION	EQU	10
DC_DRIVER	EQU	11
DC_BINNAMES	EQU	12
DC_ENUMRESOLUTIONS	EQU	13
DC_FILEDEPENDENCIES	EQU	14
DC_TRUETYPE	EQU	15
DC_PAPERNAMES	EQU	16
DC_ORIENTATION	EQU	17
DC_COPIES	EQU	18
if (WINVER ge 0400h)
DC_BINADJUST	EQU	19
DC_EMF_COMPLIANT	EQU	20
DC_DATATYPE_PRODUCED	EQU	21
DC_COLLATE	EQU	22
DC_MANUFACTURER	EQU	23
DC_MODEL	EQU	24
endif 
if (WINVER ge 0500h)
DC_PERSONALITY	EQU	25
DC_PRINTRATE	EQU	26
DC_PRINTRATEUNIT	EQU	27
PRINTRATEUNIT_PPM	EQU	1
PRINTRATEUNIT_CPS	EQU	2
PRINTRATEUNIT_LPM	EQU	3
PRINTRATEUNIT_IPM	EQU	4
DC_PRINTERMEM	EQU	28
DC_MEDIAREADY	EQU	29
DC_STAPLE	EQU	30
DC_PRINTRATEPPM	EQU	31
DC_COLORDEVICE	EQU	32
DC_NUP	EQU	33
DC_MEDIATYPENAMES	EQU	34
DC_MEDIATYPES	EQU	35
endif 
DCTT_BITMAP	EQU	0000001h
DCTT_DOWNLOAD	EQU	0000002h
DCTT_SUBDEV	EQU	0000004h
if (WINVER ge 0400h)
DCTT_DOWNLOAD_OUTLINE	EQU	0000008h
DCBA_FACEUPNONE	EQU	0000h
DCBA_FACEUPCENTER	EQU	0001h
DCBA_FACEUPLEFT	EQU	0002h
DCBA_FACEUPRIGHT	EQU	0003h
DCBA_FACEDOWNNONE	EQU	0100h
DCBA_FACEDOWNCENTER	EQU	0101h
DCBA_FACEDOWNLEFT	EQU	0102h
DCBA_FACEDOWNRIGHT	EQU	0103h
endif 
@DefProto WINSPOOLAPI, DeviceCapabilitiesA, stdcall, , <:LPSTR, :LPSTR, :WORD, :LPSTR, :ptr DEVMODEA>, 20
@DefProto WINSPOOLAPI, DeviceCapabilitiesW, stdcall, , <:LPWSTR, :LPWSTR, :WORD, :LPWSTR, :ptr DEVMODEW>, 20
ifdef UNICODE
DeviceCapabilities	EQU	<DeviceCapabilitiesW>
else 
DeviceCapabilities	EQU	<DeviceCapabilitiesA>
endif 
@DefProto WINGDIAPI, DrawEscape, stdcall, , <:HDC, :DWORD, :DWORD, :LPSTR>, 16
@DefProto WINGDIAPI, Ellipse, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD>, 20
if (WINVER ge 0400h)
@DefProto WINGDIAPI, EnumFontFamiliesExA, stdcall, , <:HDC, :LPLOGFONTA, :FONTENUMPROCA, :LPARAM, :DWORD>, 20
@DefProto WINGDIAPI, EnumFontFamiliesExW, stdcall, , <:HDC, :LPLOGFONTW, :FONTENUMPROCW, :LPARAM, :DWORD>, 20
ifdef UNICODE
EnumFontFamiliesEx	EQU	<EnumFontFamiliesExW>
else 
EnumFontFamiliesEx	EQU	<EnumFontFamiliesExA>
endif 
endif 
@DefProto WINGDIAPI, EnumFontFamiliesA, stdcall, , <:HDC, :LPSTR, :FONTENUMPROCA, :LPARAM>, 16
@DefProto WINGDIAPI, EnumFontFamiliesW, stdcall, , <:HDC, :LPWSTR, :FONTENUMPROCW, :LPARAM>, 16
ifdef UNICODE
EnumFontFamilies	EQU	<EnumFontFamiliesW>
else 
EnumFontFamilies	EQU	<EnumFontFamiliesA>
endif 
@DefProto WINGDIAPI, EnumFontsA, stdcall, , <:HDC, :LPSTR, :FONTENUMPROCA, :LPARAM>, 16
@DefProto WINGDIAPI, EnumFontsW, stdcall, , <:HDC, :LPWSTR, :FONTENUMPROCW, :LPARAM>, 16
ifdef UNICODE
EnumFonts	EQU	<EnumFontsW>
else 
EnumFonts	EQU	<EnumFontsA>
endif 
ifdef STRICT
@DefProto WINGDIAPI, EnumObjects, stdcall, , <:HDC, :DWORD, :GOBJENUMPROC, :LPARAM>, 16
else 
@DefProto WINGDIAPI, EnumObjects, stdcall, , <:HDC, :DWORD, :GOBJENUMPROC, :LPVOID>, 16
endif 
@DefProto WINGDIAPI, EqualRgn, stdcall, , <:HRGN, :HRGN>, 8
@DefProto WINGDIAPI, Escape, stdcall, , <:HDC, :DWORD, :DWORD, :LPSTR, :LPVOID>, 20
@DefProto WINGDIAPI, ExtEscape, stdcall, , <:HDC, :DWORD, :DWORD, :LPSTR, :DWORD, :LPSTR>, 24
@DefProto WINGDIAPI, ExcludeClipRect, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINGDIAPI, ExtCreateRegion, stdcall, , <:ptr XFORM, :DWORD, :ptr RGNDATA>, 12
@DefProto WINGDIAPI, ExtFloodFill, stdcall, , <:HDC, :DWORD, :DWORD, :COLORREF, :DWORD>, 20
@DefProto WINGDIAPI, FillRgn, stdcall, , <:HDC, :HRGN, :HBRUSH>, 12
@DefProto WINGDIAPI, FloodFill, stdcall, , <:HDC, :DWORD, :DWORD, :COLORREF>, 16
@DefProto WINGDIAPI, FrameRgn, stdcall, , <:HDC, :HRGN, :HBRUSH, :DWORD, :DWORD>, 20
@DefProto WINGDIAPI, GetROP2, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetAspectRatioFilterEx, stdcall, , <:HDC, :LPSIZE>, 8
@DefProto WINGDIAPI, GetBkColor, stdcall, , <:HDC>, 4
if (_WIN32_WINNT ge 0500h)
@DefProto WINGDIAPI, GetDCBrushColor, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetDCPenColor, stdcall, , <:HDC>, 4
endif 
@DefProto WINGDIAPI, GetBkMode, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetBitmapBits, stdcall, , <:HBITMAP, :SDWORD, :LPVOID>, 12
@DefProto WINGDIAPI, GetBitmapDimensionEx, stdcall, , <:HBITMAP, :LPSIZE>, 8
@DefProto WINGDIAPI, GetBoundsRect, stdcall, , <:HDC, :LPRECT, :DWORD>, 12
@DefProto WINGDIAPI, GetBrushOrgEx, stdcall, , <:HDC, :LPPOINT>, 8
@DefProto WINGDIAPI, GetCharWidthA, stdcall, , <:HDC, :DWORD, :DWORD, :LPINT>, 16
@DefProto WINGDIAPI, GetCharWidthW, stdcall, , <:HDC, :DWORD, :DWORD, :LPINT>, 16
ifdef UNICODE
GetCharWidth	EQU	<GetCharWidthW>
else 
GetCharWidth	EQU	<GetCharWidthA>
endif 
@DefProto WINGDIAPI, GetCharWidth32A, stdcall, , <:HDC, :DWORD, :DWORD, :LPINT>, 16
@DefProto WINGDIAPI, GetCharWidth32W, stdcall, , <:HDC, :DWORD, :DWORD, :LPINT>, 16
ifdef UNICODE
GetCharWidth32	EQU	<GetCharWidth32W>
else 
GetCharWidth32	EQU	<GetCharWidth32A>
endif 
@DefProto WINGDIAPI, GetCharWidthFloatA, stdcall, , <:HDC, :DWORD, :DWORD, :PFLOAT>, 16
@DefProto WINGDIAPI, GetCharWidthFloatW, stdcall, , <:HDC, :DWORD, :DWORD, :PFLOAT>, 16
ifdef UNICODE
GetCharWidthFloat	EQU	<GetCharWidthFloatW>
else 
GetCharWidthFloat	EQU	<GetCharWidthFloatA>
endif 
@DefProto WINGDIAPI, GetCharABCWidthsA, stdcall, , <:HDC, :DWORD, :DWORD, :LPABC>, 16
@DefProto WINGDIAPI, GetCharABCWidthsW, stdcall, , <:HDC, :DWORD, :DWORD, :LPABC>, 16
ifdef UNICODE
GetCharABCWidths	EQU	<GetCharABCWidthsW>
else 
GetCharABCWidths	EQU	<GetCharABCWidthsA>
endif 
@DefProto WINGDIAPI, GetCharABCWidthsFloatA, stdcall, , <:HDC, :DWORD, :DWORD, :LPABCFLOAT>, 16
@DefProto WINGDIAPI, GetCharABCWidthsFloatW, stdcall, , <:HDC, :DWORD, :DWORD, :LPABCFLOAT>, 16
ifdef UNICODE
GetCharABCWidthsFloat	EQU	<GetCharABCWidthsFloatW>
else 
GetCharABCWidthsFloat	EQU	<GetCharABCWidthsFloatA>
endif 
@DefProto WINGDIAPI, GetClipBox, stdcall, , <:HDC, :LPRECT>, 8
@DefProto WINGDIAPI, GetClipRgn, stdcall, , <:HDC, :HRGN>, 8
@DefProto WINGDIAPI, GetMetaRgn, stdcall, , <:HDC, :HRGN>, 8
@DefProto WINGDIAPI, GetCurrentObject, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, GetCurrentPositionEx, stdcall, , <:HDC, :LPPOINT>, 8
@DefProto WINGDIAPI, GetDeviceCaps, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, GetDIBits, stdcall, , <:HDC, :HBITMAP, :DWORD, :DWORD, :LPVOID, :LPBITMAPINFO, :DWORD>, 28
@DefProto WINGDIAPI, GetFontData, stdcall, , <:HDC, :DWORD, :DWORD, :LPVOID, :DWORD>, 20
@DefProto WINGDIAPI, GetGlyphOutlineA, stdcall, , <:HDC, :DWORD, :DWORD, :LPGLYPHMETRICS, :DWORD, :LPVOID, :ptr MAT2>, 28
@DefProto WINGDIAPI, GetGlyphOutlineW, stdcall, , <:HDC, :DWORD, :DWORD, :LPGLYPHMETRICS, :DWORD, :LPVOID, :ptr MAT2>, 28
ifdef UNICODE
GetGlyphOutline	EQU	<GetGlyphOutlineW>
else 
GetGlyphOutline	EQU	<GetGlyphOutlineA>
endif 
@DefProto WINGDIAPI, GetGraphicsMode, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetMapMode, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetMetaFileBitsEx, stdcall, , <:HMETAFILE, :DWORD, :LPVOID>, 12
@DefProto WINGDIAPI, GetMetaFileA, stdcall, , <:LPSTR>, 4
@DefProto WINGDIAPI, GetMetaFileW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
GetMetaFile	EQU	<GetMetaFileW>
else 
GetMetaFile	EQU	<GetMetaFileA>
endif 
@DefProto WINGDIAPI, GetNearestColor, stdcall, , <:HDC, :COLORREF>, 8
@DefProto WINGDIAPI, GetNearestPaletteIndex, stdcall, , <:HPALETTE, :COLORREF>, 8
@DefProto WINGDIAPI, GetObjectType, stdcall, , <:HGDIOBJ>, 4
ifndef NOTEXTMETRIC
@DefProto WINGDIAPI, GetOutlineTextMetricsA, stdcall, , <:HDC, :DWORD, :LPOUTLINETEXTMETRICA>, 12
@DefProto WINGDIAPI, GetOutlineTextMetricsW, stdcall, , <:HDC, :DWORD, :LPOUTLINETEXTMETRICW>, 12
ifdef UNICODE
GetOutlineTextMetrics	EQU	<GetOutlineTextMetricsW>
else 
GetOutlineTextMetrics	EQU	<GetOutlineTextMetricsA>
endif 
endif 
@DefProto WINGDIAPI, GetPaletteEntries, stdcall, , <:HPALETTE, :DWORD, :DWORD, :LPPALETTEENTRY>, 16
@DefProto WINGDIAPI, GetPixel, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, GetPixelFormat, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetPolyFillMode, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetRasterizerCaps, stdcall, , <:LPRASTERIZER_STATUS, :DWORD>, 8
@DefProto WINGDIAPI, GetRandomRgn, stdcall, , <:HDC, :HRGN, :DWORD>, 12
@DefProto WINGDIAPI, GetRegionData, stdcall, , <:HRGN, :DWORD, :LPRGNDATA>, 12
@DefProto WINGDIAPI, GetRgnBox, stdcall, , <:HRGN, :LPRECT>, 8
@DefProto WINGDIAPI, GetStockObject, stdcall, , <:DWORD>, 4
@DefProto WINGDIAPI, GetStretchBltMode, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetSystemPaletteEntries, stdcall, , <:HDC, :DWORD, :DWORD, :LPPALETTEENTRY>, 16
@DefProto WINGDIAPI, GetSystemPaletteUse, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetTextCharacterExtra, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetTextAlign, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetTextColor, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetTextExtentPointA, stdcall, , <:HDC, :LPSTR, :DWORD, :LPSIZE>, 16
@DefProto WINGDIAPI, GetTextExtentPointW, stdcall, , <:HDC, :LPWSTR, :DWORD, :LPSIZE>, 16
ifdef UNICODE
GetTextExtentPoint	EQU	<GetTextExtentPointW>
else 
GetTextExtentPoint	EQU	<GetTextExtentPointA>
endif 
@DefProto WINGDIAPI, GetTextExtentPoint32A, stdcall, , <:HDC, :LPSTR, :DWORD, :LPSIZE>, 16
@DefProto WINGDIAPI, GetTextExtentPoint32W, stdcall, , <:HDC, :LPWSTR, :DWORD, :LPSIZE>, 16
ifdef UNICODE
GetTextExtentPoint32	EQU	<GetTextExtentPoint32W>
else 
GetTextExtentPoint32	EQU	<GetTextExtentPoint32A>
endif 
@DefProto WINGDIAPI, GetTextExtentExPointA, stdcall, , <:HDC, :LPSTR, :DWORD, :DWORD, :LPINT, :LPINT, :LPSIZE>, 28
@DefProto WINGDIAPI, GetTextExtentExPointW, stdcall, , <:HDC, :LPWSTR, :DWORD, :DWORD, :LPINT, :LPINT, :LPSIZE>, 28
ifdef UNICODE
GetTextExtentExPoint	EQU	<GetTextExtentExPointW>
else 
GetTextExtentExPoint	EQU	<GetTextExtentExPointA>
endif 
if (WINVER ge 0400h)
@DefProto WINGDIAPI, GetTextCharset, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetTextCharsetInfo, stdcall, , <:HDC, :LPFONTSIGNATURE, :DWORD>, 12
@DefProto WINGDIAPI, TranslateCharsetInfo, stdcall, , <:ptr DWORD, :LPCHARSETINFO, :DWORD>, 12
@DefProto WINGDIAPI, GetFontLanguageInfo, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetCharacterPlacementA, stdcall, , <:HDC, :LPSTR, :DWORD, :DWORD, :LPGCP_RESULTSA, :DWORD>, 24
@DefProto WINGDIAPI, GetCharacterPlacementW, stdcall, , <:HDC, :LPWSTR, :DWORD, :DWORD, :LPGCP_RESULTSW, :DWORD>, 24
ifdef UNICODE
GetCharacterPlacement	EQU	<GetCharacterPlacementW>
else 
GetCharacterPlacement	EQU	<GetCharacterPlacementA>
endif 
endif 
if (_WIN32_WINNT ge 0500h)
WCRANGE	struct 
wcLow	WCHAR	?
cGlyphs	WORD	?
WCRANGE	ends

PWCRANGE typedef ptr WCRANGE
LPWCRANGE typedef ptr WCRANGE

GLYPHSET	struct 
cbThis	DWORD	?
flAccel	DWORD	?
cGlyphsSupported	DWORD	?
cRanges	DWORD	?
ranges	WCRANGE 1 dup (<>)
GLYPHSET	ends

PGLYPHSET typedef ptr GLYPHSET
LPGLYPHSET typedef ptr GLYPHSET

GS_8BIT_INDICES	EQU	00000001h
GGI_MARK_NONEXISTING_GLYPHS	EQU	0001h
@DefProto WINGDIAPI, GetFontUnicodeRanges, stdcall, , <:HDC, :LPGLYPHSET>, 8
@DefProto WINGDIAPI, GetGlyphIndicesA, stdcall, , <:HDC, :LPSTR, :DWORD, :LPWORD, :DWORD>, 20
@DefProto WINGDIAPI, GetGlyphIndicesW, stdcall, , <:HDC, :LPWSTR, :DWORD, :LPWORD, :DWORD>, 20
ifdef UNICODE
GetGlyphIndices	EQU	<GetGlyphIndicesW>
else 
GetGlyphIndices	EQU	<GetGlyphIndicesA>
endif 
@DefProto WINGDIAPI, GetTextExtentPointI, stdcall, , <:HDC, :LPWORD, :DWORD, :LPSIZE>, 16
@DefProto WINGDIAPI, GetTextExtentExPointI, stdcall, , <:HDC, :LPWORD, :DWORD, :DWORD, :LPINT, :LPINT, :LPSIZE>, 28
@DefProto WINGDIAPI, GetCharWidthI, stdcall, , <:HDC, :DWORD, :DWORD, :LPWORD, :LPINT>, 20
@DefProto WINGDIAPI, GetCharABCWidthsI, stdcall, , <:HDC, :DWORD, :DWORD, :LPWORD, :LPABC>, 20
STAMP_DESIGNVECTOR	EQU	<( 8000000h + 'd' + ( 'v'  shl  8 ) )>
STAMP_AXESLIST	EQU	<( 8000000h + 'a' + ( 'l'  shl  8 ) )>
MM_MAX_NUMAXES	EQU	16
DESIGNVECTOR	struct 
dvReserved	DWORD	?
dvNumAxes	DWORD	?
dvValues	SDWORD MM_MAX_NUMAXES dup (?)
DESIGNVECTOR	ends

PDESIGNVECTOR typedef ptr DESIGNVECTOR
LPDESIGNVECTOR typedef ptr DESIGNVECTOR

@DefProto WINGDIAPI, AddFontResourceExA, stdcall, , <:LPSTR, :DWORD, :PVOID>, 12
@DefProto WINGDIAPI, AddFontResourceExW, stdcall, , <:LPWSTR, :DWORD, :PVOID>, 12
ifdef UNICODE
AddFontResourceEx	EQU	<AddFontResourceExW>
else 
AddFontResourceEx	EQU	<AddFontResourceExA>
endif 
@DefProto WINGDIAPI, RemoveFontResourceExA, stdcall, , <:LPSTR, :DWORD, :PVOID>, 12
@DefProto WINGDIAPI, RemoveFontResourceExW, stdcall, , <:LPWSTR, :DWORD, :PVOID>, 12
ifdef UNICODE
RemoveFontResourceEx	EQU	<RemoveFontResourceExW>
else 
RemoveFontResourceEx	EQU	<RemoveFontResourceExA>
endif 
@DefProto WINGDIAPI, AddFontMemResourceEx, stdcall, , <:PVOID, :DWORD, :PVOID, :ptr DWORD>, 16
@DefProto WINGDIAPI, RemoveFontMemResourceEx, stdcall, , <:HANDLE>, 4
FR_PRIVATE	EQU	10h
FR_NOT_ENUM	EQU	20h
MM_MAX_AXES_NAMELEN	EQU	16
AXISINFOA	struct 
axMinValue	SDWORD	?
axMaxValue	SDWORD	?
axAxisName	BYTE MM_MAX_AXES_NAMELEN dup (?)
AXISINFOA	ends

PAXISINFOA typedef ptr AXISINFOA
LPAXISINFOA typedef ptr AXISINFOA

AXISINFOW	struct 
axMinValue	SDWORD	?
axMaxValue	SDWORD	?
axAxisName	WCHAR MM_MAX_AXES_NAMELEN dup (?)
AXISINFOW	ends

PAXISINFOW typedef ptr AXISINFOW
LPAXISINFOW typedef ptr AXISINFOW

ifdef UNICODE
AXISINFO typedef AXISINFOW
PAXISINFO typedef PAXISINFOW
LPAXISINFO typedef LPAXISINFOW
else 
AXISINFO typedef AXISINFOA
PAXISINFO typedef PAXISINFOA
LPAXISINFO typedef LPAXISINFOA
endif 
AXESLISTA	struct 
axlReserved	DWORD	?
axlNumAxes	DWORD	?
axlAxisInfo	AXISINFOA MM_MAX_NUMAXES dup (<>)
AXESLISTA	ends

PAXESLISTA typedef ptr AXESLISTA
LPAXESLISTA typedef ptr AXESLISTA

AXESLISTW	struct 
axlReserved	DWORD	?
axlNumAxes	DWORD	?
axlAxisInfo	AXISINFOW MM_MAX_NUMAXES dup (<>)
AXESLISTW	ends

PAXESLISTW typedef ptr AXESLISTW
LPAXESLISTW typedef ptr AXESLISTW

ifdef UNICODE
AXESLIST typedef AXESLISTW
PAXESLIST typedef PAXESLISTW
LPAXESLIST typedef LPAXESLISTW
else 
AXESLIST typedef AXESLISTA
PAXESLIST typedef PAXESLISTA
LPAXESLIST typedef LPAXESLISTA
endif 
ENUMLOGFONTEXDVA	struct 
elfEnumLogfontEx	ENUMLOGFONTEXA	<>
elfDesignVector	DESIGNVECTOR	<>
ENUMLOGFONTEXDVA	ends

PENUMLOGFONTEXDVA typedef ptr ENUMLOGFONTEXDVA
LPENUMLOGFONTEXDVA typedef ptr ENUMLOGFONTEXDVA

ENUMLOGFONTEXDVW	struct 
elfEnumLogfontEx	ENUMLOGFONTEXW	<>
elfDesignVector	DESIGNVECTOR	<>
ENUMLOGFONTEXDVW	ends

PENUMLOGFONTEXDVW typedef ptr ENUMLOGFONTEXDVW
LPENUMLOGFONTEXDVW typedef ptr ENUMLOGFONTEXDVW

ifdef UNICODE
ENUMLOGFONTEXDV typedef ENUMLOGFONTEXDVW
PENUMLOGFONTEXDV typedef PENUMLOGFONTEXDVW
LPENUMLOGFONTEXDV typedef LPENUMLOGFONTEXDVW
else 
ENUMLOGFONTEXDV typedef ENUMLOGFONTEXDVA
PENUMLOGFONTEXDV typedef PENUMLOGFONTEXDVA
LPENUMLOGFONTEXDV typedef LPENUMLOGFONTEXDVA
endif 
@DefProto WINGDIAPI, CreateFontIndirectExA, stdcall, , <:ptr ENUMLOGFONTEXDVA>, 4
@DefProto WINGDIAPI, CreateFontIndirectExW, stdcall, , <:ptr ENUMLOGFONTEXDVW>, 4
ifdef UNICODE
CreateFontIndirectEx	EQU	<CreateFontIndirectExW>
else 
CreateFontIndirectEx	EQU	<CreateFontIndirectExA>
endif 
ifndef NOTEXTMETRIC
ENUMTEXTMETRICA	struct 
etmNewTextMetricEx	NEWTEXTMETRICEXA	<>
etmAxesList	AXESLISTA	<>
ENUMTEXTMETRICA	ends

PENUMTEXTMETRICA typedef ptr ENUMTEXTMETRICA
LPENUMTEXTMETRICA typedef ptr ENUMTEXTMETRICA

ENUMTEXTMETRICW	struct 
etmNewTextMetricEx	NEWTEXTMETRICEXW	<>
etmAxesList	AXESLISTW	<>
ENUMTEXTMETRICW	ends

PENUMTEXTMETRICW typedef ptr ENUMTEXTMETRICW
LPENUMTEXTMETRICW typedef ptr ENUMTEXTMETRICW

ifdef UNICODE
ENUMTEXTMETRIC typedef ENUMTEXTMETRICW
PENUMTEXTMETRIC typedef PENUMTEXTMETRICW
LPENUMTEXTMETRIC typedef LPENUMTEXTMETRICW
else 
ENUMTEXTMETRIC typedef ENUMTEXTMETRICA
PENUMTEXTMETRIC typedef PENUMTEXTMETRICA
LPENUMTEXTMETRIC typedef LPENUMTEXTMETRICA
endif 
endif 
endif 
@DefProto WINGDIAPI, GetViewportExtEx, stdcall, , <:HDC, :LPSIZE>, 8
@DefProto WINGDIAPI, GetViewportOrgEx, stdcall, , <:HDC, :LPPOINT>, 8
@DefProto WINGDIAPI, GetWindowExtEx, stdcall, , <:HDC, :LPSIZE>, 8
@DefProto WINGDIAPI, GetWindowOrgEx, stdcall, , <:HDC, :LPPOINT>, 8
@DefProto WINGDIAPI, IntersectClipRect, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINGDIAPI, InvertRgn, stdcall, , <:HDC, :HRGN>, 8
@DefProto WINGDIAPI, LineDDA, stdcall, , <:DWORD, :DWORD, :DWORD, :DWORD, :LINEDDAPROC, :LPARAM>, 24
@DefProto WINGDIAPI, LineTo, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, MaskBlt, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :HDC, :DWORD, :DWORD, :HBITMAP, :DWORD, :DWORD, :DWORD>, 48
@DefProto WINGDIAPI, PlgBlt, stdcall, , <:HDC, :ptr POINT, :HDC, :DWORD, :DWORD, :DWORD, :DWORD, :HBITMAP, :DWORD, :DWORD>, 40
@DefProto WINGDIAPI, OffsetClipRgn, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, OffsetRgn, stdcall, , <:HRGN, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, PatBlt, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 24
@DefProto WINGDIAPI, Pie, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 36
@DefProto WINGDIAPI, PlayMetaFile, stdcall, , <:HDC, :HMETAFILE>, 8
@DefProto WINGDIAPI, PaintRgn, stdcall, , <:HDC, :HRGN>, 8
@DefProto WINGDIAPI, PolyPolygon, stdcall, , <:HDC, :ptr POINT, :ptr DWORD, :DWORD>, 16
@DefProto WINGDIAPI, PtInRegion, stdcall, , <:HRGN, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, PtVisible, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, RectInRegion, stdcall, , <:HRGN, :ptr RECT>, 8
@DefProto WINGDIAPI, RectVisible, stdcall, , <:HDC, :ptr RECT>, 8
@DefProto WINGDIAPI, Rectangle, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINGDIAPI, RestoreDC, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, ResetDCA, stdcall, , <:HDC, :ptr DEVMODEA>, 8
@DefProto WINGDIAPI, ResetDCW, stdcall, , <:HDC, :ptr DEVMODEW>, 8
ifdef UNICODE
ResetDC	EQU	<ResetDCW>
else 
ResetDC	EQU	<ResetDCA>
endif 
@DefProto WINGDIAPI, RealizePalette, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, RemoveFontResourceA, stdcall, , <:LPSTR>, 4
@DefProto WINGDIAPI, RemoveFontResourceW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
RemoveFontResource	EQU	<RemoveFontResourceW>
else 
RemoveFontResource	EQU	<RemoveFontResourceA>
endif 
@DefProto WINGDIAPI, RoundRect, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 28
@DefProto WINGDIAPI, ResizePalette, stdcall, , <:HPALETTE, :DWORD>, 8
@DefProto WINGDIAPI, SaveDC, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, SelectClipRgn, stdcall, , <:HDC, :HRGN>, 8
@DefProto WINGDIAPI, ExtSelectClipRgn, stdcall, , <:HDC, :HRGN, :DWORD>, 12
@DefProto WINGDIAPI, SetMetaRgn, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, SelectObject, stdcall, , <:HDC, :HGDIOBJ>, 8
@DefProto WINGDIAPI, SelectPalette, stdcall, , <:HDC, :HPALETTE, :BOOL>, 12
@DefProto WINGDIAPI, SetBkColor, stdcall, , <:HDC, :COLORREF>, 8
if (_WIN32_WINNT ge 0500h)
@DefProto WINGDIAPI, SetDCBrushColor, stdcall, , <:HDC, :COLORREF>, 8
@DefProto WINGDIAPI, SetDCPenColor, stdcall, , <:HDC, :COLORREF>, 8
endif 
@DefProto WINGDIAPI, SetBkMode, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetBitmapBits, stdcall, , <:HBITMAP, :DWORD, :ptr >, 12
@DefProto WINGDIAPI, SetBoundsRect, stdcall, , <:HDC, :ptr RECT, :DWORD>, 12
@DefProto WINGDIAPI, SetDIBits, stdcall, , <:HDC, :HBITMAP, :DWORD, :DWORD, :ptr , :ptr BITMAPINFO, :DWORD>, 28
@DefProto WINGDIAPI, SetDIBitsToDevice, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :ptr , :ptr BITMAPINFO, :DWORD>, 48
@DefProto WINGDIAPI, SetMapperFlags, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetGraphicsMode, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetMapMode, stdcall, , <:HDC, :DWORD>, 8
if (WINVER ge 0500h)
@DefProto WINGDIAPI, SetLayout, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, GetLayout, stdcall, , <:HDC>, 4
endif 
@DefProto WINGDIAPI, SetMetaFileBitsEx, stdcall, , <:DWORD, :ptr BYTE>, 8
@DefProto WINGDIAPI, SetPaletteEntries, stdcall, , <:HPALETTE, :DWORD, :DWORD, :ptr PALETTEENTRY>, 16
@DefProto WINGDIAPI, SetPixel, stdcall, , <:HDC, :DWORD, :DWORD, :COLORREF>, 16
@DefProto WINGDIAPI, SetPixelV, stdcall, , <:HDC, :DWORD, :DWORD, :COLORREF>, 16
@DefProto WINGDIAPI, SetPixelFormat, stdcall, , <:HDC, :DWORD, :ptr PIXELFORMATDESCRIPTOR>, 12
@DefProto WINGDIAPI, SetPolyFillMode, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, StretchBlt, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 44
@DefProto WINGDIAPI, SetRectRgn, stdcall, , <:HRGN, :DWORD, :DWORD, :DWORD, :DWORD>, 20
@DefProto WINGDIAPI, StretchDIBits, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :ptr , :ptr BITMAPINFO, :DWORD, :DWORD>, 52
@DefProto WINGDIAPI, SetROP2, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetStretchBltMode, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetSystemPaletteUse, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetTextCharacterExtra, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetTextColor, stdcall, , <:HDC, :COLORREF>, 8
@DefProto WINGDIAPI, SetTextAlign, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetTextJustification, stdcall, , <:HDC, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, UpdateColors, stdcall, , <:HDC>, 4
if (WINVER ge 0400h)
COLOR16 typedef WORD
TRIVERTEX	struct 
x	SDWORD	?
y	SDWORD	?
Red	COLOR16	?
Green	COLOR16	?
Blue	COLOR16	?
Alpha	COLOR16	?
TRIVERTEX	ends

PTRIVERTEX typedef ptr TRIVERTEX
LPTRIVERTEX typedef ptr TRIVERTEX

GRADIENT_TRIANGLE	struct 
Vertex1	DWORD	?
Vertex2	DWORD	?
Vertex3	DWORD	?
GRADIENT_TRIANGLE	ends

PGRADIENT_TRIANGLE typedef ptr GRADIENT_TRIANGLE
LPGRADIENT_TRIANGLE typedef ptr GRADIENT_TRIANGLE

GRADIENT_RECT	struct 
UpperLeft	DWORD	?
LowerRight	DWORD	?
GRADIENT_RECT	ends

PGRADIENT_RECT typedef ptr GRADIENT_RECT
LPGRADIENT_RECT typedef ptr GRADIENT_RECT

BLENDFUNCTION	struct 
BlendOp	BYTE	?
BlendFlags	BYTE	?
SourceConstantAlpha	BYTE	?
AlphaFormat	BYTE	?
BLENDFUNCTION	ends

PBLENDFUNCTION typedef ptr BLENDFUNCTION

AC_SRC_OVER	EQU	00h
AC_SRC_ALPHA	EQU	01h
@DefProto WINGDIAPI, AlphaBlend, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :HDC, :DWORD, :DWORD, :DWORD, :DWORD, :BLENDFUNCTION>, 44
@DefProto WINGDIAPI, TransparentBlt, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 44
GRADIENT_FILL_RECT_H	EQU	00000000h
GRADIENT_FILL_RECT_V	EQU	00000001h
GRADIENT_FILL_TRIANGLE	EQU	00000002h
GRADIENT_FILL_OP_FLAG	EQU	000000ffh
@DefProto WINGDIAPI, GradientFill, stdcall, , <:HDC, :PTRIVERTEX, :DWORD, :PVOID, :DWORD, :DWORD>, 24
endif 
ifndef NOMETAFILE
@DefProto WINGDIAPI, PlayMetaFileRecord, stdcall, , <:HDC, :LPHANDLETABLE, :LPMETARECORD, :DWORD>, 16
proto_MFENUMPROC typedef proto stdcall :HDC,:ptr HANDLETABLE,:ptr METARECORD,:DWORD,:LPARAM
MFENUMPROC typedef ptr proto_MFENUMPROC
@DefProto WINGDIAPI, EnumMetaFile, stdcall, , <:HDC, :HMETAFILE, :MFENUMPROC, :LPARAM>, 16
proto_ENHMFENUMPROC typedef proto stdcall :HDC,:ptr HANDLETABLE,:ptr ENHMETARECORD,:DWORD,:LPARAM
ENHMFENUMPROC typedef ptr proto_ENHMFENUMPROC
@DefProto WINGDIAPI, CloseEnhMetaFile, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, CopyEnhMetaFileA, stdcall, , <:HENHMETAFILE, :LPSTR>, 8
@DefProto WINGDIAPI, CopyEnhMetaFileW, stdcall, , <:HENHMETAFILE, :LPWSTR>, 8
ifdef UNICODE
CopyEnhMetaFile	EQU	<CopyEnhMetaFileW>
else 
CopyEnhMetaFile	EQU	<CopyEnhMetaFileA>
endif 
@DefProto WINGDIAPI, CreateEnhMetaFileA, stdcall, , <:HDC, :LPSTR, :ptr RECT, :LPSTR>, 16
@DefProto WINGDIAPI, CreateEnhMetaFileW, stdcall, , <:HDC, :LPWSTR, :ptr RECT, :LPWSTR>, 16
ifdef UNICODE
CreateEnhMetaFile	EQU	<CreateEnhMetaFileW>
else 
CreateEnhMetaFile	EQU	<CreateEnhMetaFileA>
endif 
@DefProto WINGDIAPI, DeleteEnhMetaFile, stdcall, , <:HENHMETAFILE>, 4
@DefProto WINGDIAPI, EnumEnhMetaFile, stdcall, , <:HDC, :HENHMETAFILE, :ENHMFENUMPROC, :LPVOID, :ptr RECT>, 20
@DefProto WINGDIAPI, GetEnhMetaFileA, stdcall, , <:LPSTR>, 4
@DefProto WINGDIAPI, GetEnhMetaFileW, stdcall, , <:LPWSTR>, 4
ifdef UNICODE
GetEnhMetaFile	EQU	<GetEnhMetaFileW>
else 
GetEnhMetaFile	EQU	<GetEnhMetaFileA>
endif 
@DefProto WINGDIAPI, GetEnhMetaFileBits, stdcall, , <:HENHMETAFILE, :DWORD, :LPBYTE>, 12
@DefProto WINGDIAPI, GetEnhMetaFileDescriptionA, stdcall, , <:HENHMETAFILE, :DWORD, :LPSTR>, 12
@DefProto WINGDIAPI, GetEnhMetaFileDescriptionW, stdcall, , <:HENHMETAFILE, :DWORD, :LPWSTR>, 12
ifdef UNICODE
GetEnhMetaFileDescription	EQU	<GetEnhMetaFileDescriptionW>
else 
GetEnhMetaFileDescription	EQU	<GetEnhMetaFileDescriptionA>
endif 
@DefProto WINGDIAPI, GetEnhMetaFileHeader, stdcall, , <:HENHMETAFILE, :DWORD, :LPENHMETAHEADER>, 12
@DefProto WINGDIAPI, GetEnhMetaFilePaletteEntries, stdcall, , <:HENHMETAFILE, :DWORD, :LPPALETTEENTRY>, 12
@DefProto WINGDIAPI, GetEnhMetaFilePixelFormat, stdcall, , <:HENHMETAFILE, :DWORD, :ptr PIXELFORMATDESCRIPTOR>, 12
@DefProto WINGDIAPI, GetWinMetaFileBits, stdcall, , <:HENHMETAFILE, :DWORD, :LPBYTE, :DWORD, :HDC>, 20
@DefProto WINGDIAPI, PlayEnhMetaFile, stdcall, , <:HDC, :HENHMETAFILE, :ptr RECT>, 12
@DefProto WINGDIAPI, PlayEnhMetaFileRecord, stdcall, , <:HDC, :LPHANDLETABLE, :ptr ENHMETARECORD, :DWORD>, 16
@DefProto WINGDIAPI, SetEnhMetaFileBits, stdcall, , <:DWORD, :ptr BYTE>, 8
@DefProto WINGDIAPI, SetWinMetaFileBits, stdcall, , <:DWORD, :ptr BYTE, :HDC, :ptr METAFILEPICT>, 16
@DefProto WINGDIAPI, GdiComment, stdcall, , <:HDC, :DWORD, :ptr BYTE>, 12
endif 
ifndef NOTEXTMETRIC
@DefProto WINGDIAPI, GetTextMetricsA, stdcall, , <:HDC, :LPTEXTMETRICA>, 8
@DefProto WINGDIAPI, GetTextMetricsW, stdcall, , <:HDC, :LPTEXTMETRICW>, 8
ifdef UNICODE
GetTextMetrics	EQU	<GetTextMetricsW>
else 
GetTextMetrics	EQU	<GetTextMetricsA>
endif 
endif 
DIBSECTION	struct 
dsBm	BITMAP	<>
dsBmih	BITMAPINFOHEADER	<>
dsBitfields	DWORD 3 dup (?)
dshSection	HANDLE	?
dsOffset	DWORD	?
DIBSECTION	ends

LPDIBSECTION typedef ptr DIBSECTION
PDIBSECTION typedef ptr DIBSECTION

@DefProto WINGDIAPI, AngleArc, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :REAL4, :REAL4>, 24
@DefProto WINGDIAPI, PolyPolyline, stdcall, , <:HDC, :ptr POINT, :ptr DWORD, :DWORD>, 16
@DefProto WINGDIAPI, GetWorldTransform, stdcall, , <:HDC, :LPXFORM>, 8
@DefProto WINGDIAPI, SetWorldTransform, stdcall, , <:HDC, :ptr XFORM>, 8
@DefProto WINGDIAPI, ModifyWorldTransform, stdcall, , <:HDC, :ptr XFORM, :DWORD>, 12
@DefProto WINGDIAPI, CombineTransform, stdcall, , <:LPXFORM, :ptr XFORM, :ptr XFORM>, 12
@DefProto WINGDIAPI, CreateDIBSection, stdcall, , <:HDC, :ptr BITMAPINFO, :DWORD, :ptr ptr , :HANDLE, :DWORD>, 24
@DefProto WINGDIAPI, GetDIBColorTable, stdcall, , <:HDC, :DWORD, :DWORD, :ptr RGBQUAD>, 16
@DefProto WINGDIAPI, SetDIBColorTable, stdcall, , <:HDC, :DWORD, :DWORD, :ptr RGBQUAD>, 16
CA_NEGATIVE	EQU	0001h
CA_LOG_FILTER	EQU	0002h
ILLUMINANT_DEVICE_DEFAULT	EQU	0
ILLUMINANT_A	EQU	1
ILLUMINANT_B	EQU	2
ILLUMINANT_C	EQU	3
ILLUMINANT_D50	EQU	4
ILLUMINANT_D55	EQU	5
ILLUMINANT_D65	EQU	6
ILLUMINANT_D75	EQU	7
ILLUMINANT_F2	EQU	8
ILLUMINANT_MAX_INDEX	EQU	<ILLUMINANT_F2>
ILLUMINANT_TUNGSTEN	EQU	<ILLUMINANT_A>
ILLUMINANT_DAYLIGHT	EQU	<ILLUMINANT_C>
ILLUMINANT_FLUORESCENT	EQU	<ILLUMINANT_F2>
ILLUMINANT_NTSC	EQU	<ILLUMINANT_C>
RGB_GAMMA_MIN	EQU	02500
RGB_GAMMA_MAX	EQU	65000
REFERENCE_WHITE_MIN	EQU	6000
REFERENCE_WHITE_MAX	EQU	10000
REFERENCE_BLACK_MIN	EQU	0
REFERENCE_BLACK_MAX	EQU	4000
COLOR_ADJ_MIN	EQU	- 100
COLOR_ADJ_MAX	EQU	100
COLORADJUSTMENT	struct 
caSize	WORD	?
caFlags	WORD	?
caIlluminantIndex	WORD	?
caRedGamma	WORD	?
caGreenGamma	WORD	?
caBlueGamma	WORD	?
caReferenceBlack	WORD	?
caReferenceWhite	WORD	?
caContrast	SWORD	?
caBrightness	SWORD	?
caColorfulness	SWORD	?
caRedGreenTint	SWORD	?
COLORADJUSTMENT	ends

PCOLORADJUSTMENT typedef ptr COLORADJUSTMENT
LPCOLORADJUSTMENT typedef ptr COLORADJUSTMENT

@DefProto WINGDIAPI, SetColorAdjustment, stdcall, , <:HDC, :ptr COLORADJUSTMENT>, 8
@DefProto WINGDIAPI, GetColorAdjustment, stdcall, , <:HDC, :LPCOLORADJUSTMENT>, 8
@DefProto WINGDIAPI, CreateHalftonePalette, stdcall, , <:HDC>, 4
ifdef STRICT
proto_ABORTPROC typedef proto stdcall :HDC,:DWORD
ABORTPROC typedef ptr proto_ABORTPROC
else 
ABORTPROC typedef FARPROC
endif 
DOCINFOA	struct 
cbSize	DWORD	?
lpszDocName	LPSTR	?
lpszOutput	LPSTR	?
if (WINVER ge 0400h)
lpszDatatype	LPSTR	?
fwType	DWORD	?
endif 
DOCINFOA	ends

LPDOCINFOA typedef ptr DOCINFOA

DOCINFOW	struct 
cbSize	DWORD	?
lpszDocName	LPWSTR	?
lpszOutput	LPWSTR	?
if (WINVER ge 0400h)
lpszDatatype	LPWSTR	?
fwType	DWORD	?
endif 
DOCINFOW	ends

LPDOCINFOW typedef ptr DOCINFOW

ifdef UNICODE
DOCINFO typedef DOCINFOW
LPDOCINFO typedef LPDOCINFOW
else 
DOCINFO typedef DOCINFOA
LPDOCINFO typedef LPDOCINFOA
endif 
if (WINVER ge 0400h)
DI_APPBANDING	EQU	00000001h
DI_ROPS_READ_DESTINATION	EQU	00000002h
endif 
@DefProto WINGDIAPI, StartDocA, stdcall, , <:HDC, :ptr DOCINFOA>, 8
@DefProto WINGDIAPI, StartDocW, stdcall, , <:HDC, :ptr DOCINFOW>, 8
ifdef UNICODE
StartDoc	EQU	<StartDocW>
else 
StartDoc	EQU	<StartDocA>
endif 
@DefProto WINGDIAPI, EndDoc, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, StartPage, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, EndPage, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, AbortDoc, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, SetAbortProc, stdcall, , <:HDC, :ABORTPROC>, 8
@DefProto WINGDIAPI, AbortPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, ArcTo, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD>, 36
@DefProto WINGDIAPI, BeginPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, CloseFigure, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, EndPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, FillPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, FlattenPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetPath, stdcall, , <:HDC, :LPPOINT, :LPBYTE, :DWORD>, 16
@DefProto WINGDIAPI, PathToRegion, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, PolyDraw, stdcall, , <:HDC, :ptr POINT, :ptr BYTE, :DWORD>, 16
@DefProto WINGDIAPI, SelectClipPath, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetArcDirection, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, SetMiterLimit, stdcall, , <:HDC, :REAL4, :PFLOAT>, 12
@DefProto WINGDIAPI, StrokeAndFillPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, StrokePath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, WidenPath, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, ExtCreatePen, stdcall, , <:DWORD, :DWORD, :ptr LOGBRUSH, :DWORD, :ptr DWORD>, 20
@DefProto WINGDIAPI, GetMiterLimit, stdcall, , <:HDC, :PFLOAT>, 8
@DefProto WINGDIAPI, GetArcDirection, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetObjectA, stdcall, , <:HGDIOBJ, :DWORD, :LPVOID>, 12
@DefProto WINGDIAPI, GetObjectW, stdcall, , <:HGDIOBJ, :DWORD, :LPVOID>, 12
ifdef UNICODE
GetObject	EQU	<GetObjectW>
else 
GetObject	EQU	<GetObjectA>
endif 
@DefProto WINGDIAPI, MoveToEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, TextOutA, stdcall, , <:HDC, :DWORD, :DWORD, :LPSTR, :DWORD>, 20
@DefProto WINGDIAPI, TextOutW, stdcall, , <:HDC, :DWORD, :DWORD, :LPWSTR, :DWORD>, 20
ifdef UNICODE
TextOut	EQU	<TextOutW>
else 
TextOut	EQU	<TextOutA>
endif 
@DefProto WINGDIAPI, ExtTextOutA, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :ptr RECT, :LPSTR, :DWORD, :ptr DWORD>, 32
@DefProto WINGDIAPI, ExtTextOutW, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :ptr RECT, :LPWSTR, :DWORD, :ptr DWORD>, 32
ifdef UNICODE
ExtTextOut	EQU	<ExtTextOutW>
else 
ExtTextOut	EQU	<ExtTextOutA>
endif 
@DefProto WINGDIAPI, PolyTextOutA, stdcall, , <:HDC, :ptr POLYTEXTA, :DWORD>, 12
@DefProto WINGDIAPI, PolyTextOutW, stdcall, , <:HDC, :ptr POLYTEXTW, :DWORD>, 12
ifdef UNICODE
PolyTextOut	EQU	<PolyTextOutW>
else 
PolyTextOut	EQU	<PolyTextOutA>
endif 
@DefProto WINGDIAPI, CreatePolygonRgn, stdcall, , <:ptr POINT, :DWORD, :DWORD>, 12
@DefProto WINGDIAPI, DPtoLP, stdcall, , <:HDC, :LPPOINT, :DWORD>, 12
@DefProto WINGDIAPI, LPtoDP, stdcall, , <:HDC, :LPPOINT, :DWORD>, 12
@DefProto WINGDIAPI, Polygon, stdcall, , <:HDC, :ptr POINT, :DWORD>, 12
@DefProto WINGDIAPI, Polyline, stdcall, , <:HDC, :ptr POINT, :DWORD>, 12
@DefProto WINGDIAPI, PolyBezier, stdcall, , <:HDC, :ptr POINT, :DWORD>, 12
@DefProto WINGDIAPI, PolyBezierTo, stdcall, , <:HDC, :ptr POINT, :DWORD>, 12
@DefProto WINGDIAPI, PolylineTo, stdcall, , <:HDC, :ptr POINT, :DWORD>, 12
@DefProto WINGDIAPI, SetViewportExtEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPSIZE>, 16
@DefProto WINGDIAPI, SetViewportOrgEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, SetWindowExtEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPSIZE>, 16
@DefProto WINGDIAPI, SetWindowOrgEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, OffsetViewportOrgEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, OffsetWindowOrgEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, ScaleViewportExtEx, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :LPSIZE>, 24
@DefProto WINGDIAPI, ScaleWindowExtEx, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :DWORD, :LPSIZE>, 24
@DefProto WINGDIAPI, SetBitmapDimensionEx, stdcall, , <:HBITMAP, :DWORD, :DWORD, :LPSIZE>, 16
@DefProto WINGDIAPI, SetBrushOrgEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, GetTextFaceA, stdcall, , <:HDC, :DWORD, :LPSTR>, 12
@DefProto WINGDIAPI, GetTextFaceW, stdcall, , <:HDC, :DWORD, :LPWSTR>, 12
ifdef UNICODE
GetTextFace	EQU	<GetTextFaceW>
else 
GetTextFace	EQU	<GetTextFaceA>
endif 
FONTMAPPER_MAX	EQU	10
KERNINGPAIR	struct 
wFirst	WORD	?
wSecond	WORD	?
iKernAmount	DWORD	?
KERNINGPAIR	ends

LPKERNINGPAIR typedef ptr KERNINGPAIR

@DefProto WINGDIAPI, GetKerningPairsA, stdcall, , <:HDC, :DWORD, :LPKERNINGPAIR>, 12
@DefProto WINGDIAPI, GetKerningPairsW, stdcall, , <:HDC, :DWORD, :LPKERNINGPAIR>, 12
ifdef UNICODE
GetKerningPairs	EQU	<GetKerningPairsW>
else 
GetKerningPairs	EQU	<GetKerningPairsA>
endif 
@DefProto WINGDIAPI, GetDCOrgEx, stdcall, , <:HDC, :LPPOINT>, 8
@DefProto WINGDIAPI, FixBrushOrgEx, stdcall, , <:HDC, :DWORD, :DWORD, :LPPOINT>, 16
@DefProto WINGDIAPI, UnrealizeObject, stdcall, , <:HGDIOBJ>, 4
@DefProto WINGDIAPI, GdiFlush, stdcall, , <>, 0
@DefProto WINGDIAPI, GdiSetBatchLimit, stdcall, , <:DWORD>, 4
@DefProto WINGDIAPI, GdiGetBatchLimit, stdcall, , <>, 0
if (WINVER ge 0400h)
ICM_OFF	EQU	1
ICM_ON	EQU	2
ICM_QUERY	EQU	3
ICM_DONE_OUTSIDEDC	EQU	4
proto_ICMENUMPROCA typedef proto stdcall :LPSTR,:LPARAM
ICMENUMPROCA typedef ptr proto_ICMENUMPROCA
proto_ICMENUMPROCW typedef proto stdcall :LPWSTR,:LPARAM
ICMENUMPROCW typedef ptr proto_ICMENUMPROCW
ifdef UNICODE
ICMENUMPROC	EQU	<ICMENUMPROCW>
else 
ICMENUMPROC	EQU	<ICMENUMPROCA>
endif 
@DefProto WINGDIAPI, SetICMMode, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, CheckColorsInGamut, stdcall, , <:HDC, :LPVOID, :LPVOID, :DWORD>, 16
@DefProto WINGDIAPI, GetColorSpace, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, GetLogColorSpaceA, stdcall, , <:HCOLORSPACE, :LPLOGCOLORSPACEA, :DWORD>, 12
@DefProto WINGDIAPI, GetLogColorSpaceW, stdcall, , <:HCOLORSPACE, :LPLOGCOLORSPACEW, :DWORD>, 12
ifdef UNICODE
GetLogColorSpace	EQU	<GetLogColorSpaceW>
else 
GetLogColorSpace	EQU	<GetLogColorSpaceA>
endif 
@DefProto WINGDIAPI, CreateColorSpaceA, stdcall, , <:LPLOGCOLORSPACEA>, 4
@DefProto WINGDIAPI, CreateColorSpaceW, stdcall, , <:LPLOGCOLORSPACEW>, 4
ifdef UNICODE
CreateColorSpace	EQU	<CreateColorSpaceW>
else 
CreateColorSpace	EQU	<CreateColorSpaceA>
endif 
@DefProto WINGDIAPI, SetColorSpace, stdcall, , <:HDC, :HCOLORSPACE>, 8
@DefProto WINGDIAPI, DeleteColorSpace, stdcall, , <:HCOLORSPACE>, 4
@DefProto WINGDIAPI, GetICMProfileA, stdcall, , <:HDC, :LPDWORD, :LPSTR>, 12
@DefProto WINGDIAPI, GetICMProfileW, stdcall, , <:HDC, :LPDWORD, :LPWSTR>, 12
ifdef UNICODE
GetICMProfile	EQU	<GetICMProfileW>
else 
GetICMProfile	EQU	<GetICMProfileA>
endif 
@DefProto WINGDIAPI, SetICMProfileA, stdcall, , <:HDC, :LPSTR>, 8
@DefProto WINGDIAPI, SetICMProfileW, stdcall, , <:HDC, :LPWSTR>, 8
ifdef UNICODE
SetICMProfile	EQU	<SetICMProfileW>
else 
SetICMProfile	EQU	<SetICMProfileA>
endif 
@DefProto WINGDIAPI, GetDeviceGammaRamp, stdcall, , <:HDC, :LPVOID>, 8
@DefProto WINGDIAPI, SetDeviceGammaRamp, stdcall, , <:HDC, :LPVOID>, 8
@DefProto WINGDIAPI, ColorMatchToTarget, stdcall, , <:HDC, :HDC, :DWORD>, 12
@DefProto WINGDIAPI, EnumICMProfilesA, stdcall, , <:HDC, :ICMENUMPROCA, :LPARAM>, 12
@DefProto WINGDIAPI, EnumICMProfilesW, stdcall, , <:HDC, :ICMENUMPROCW, :LPARAM>, 12
ifdef UNICODE
EnumICMProfiles	EQU	<EnumICMProfilesW>
else 
EnumICMProfiles	EQU	<EnumICMProfilesA>
endif 
@DefProto WINGDIAPI, UpdateICMRegKeyA, stdcall, , <:DWORD, :LPSTR, :LPSTR, :DWORD>, 16
@DefProto WINGDIAPI, UpdateICMRegKeyW, stdcall, , <:DWORD, :LPWSTR, :LPWSTR, :DWORD>, 16
ifdef UNICODE
UpdateICMRegKey	EQU	<UpdateICMRegKeyW>
else 
UpdateICMRegKey	EQU	<UpdateICMRegKeyA>
endif 
endif 
if (WINVER ge 0500h)
@DefProto WINGDIAPI, ColorCorrectPalette, stdcall, , <:HDC, :HPALETTE, :DWORD, :DWORD>, 16
endif 
ifndef NOMETAFILE
ifndef _MAC
ENHMETA_SIGNATURE	EQU	464D4520h
else 
ENHMETA_SIGNATURE	EQU	20454D46h
endif 
ENHMETA_STOCK_OBJECT	EQU	80000000h
EMR_HEADER	EQU	1
EMR_POLYBEZIER	EQU	2
EMR_POLYGON	EQU	3
EMR_POLYLINE	EQU	4
EMR_POLYBEZIERTO	EQU	5
EMR_POLYLINETO	EQU	6
EMR_POLYPOLYLINE	EQU	7
EMR_POLYPOLYGON	EQU	8
EMR_SETWINDOWEXTEX	EQU	9
EMR_SETWINDOWORGEX	EQU	10
EMR_SETVIEWPORTEXTEX	EQU	11
EMR_SETVIEWPORTORGEX	EQU	12
EMR_SETBRUSHORGEX	EQU	13
EMR_EOF	EQU	14
EMR_SETPIXELV	EQU	15
EMR_SETMAPPERFLAGS	EQU	16
EMR_SETMAPMODE	EQU	17
EMR_SETBKMODE	EQU	18
EMR_SETPOLYFILLMODE	EQU	19
EMR_SETROP2	EQU	20
EMR_SETSTRETCHBLTMODE	EQU	21
EMR_SETTEXTALIGN	EQU	22
EMR_SETCOLORADJUSTMENT	EQU	23
EMR_SETTEXTCOLOR	EQU	24
EMR_SETBKCOLOR	EQU	25
EMR_OFFSETCLIPRGN	EQU	26
EMR_MOVETOEX	EQU	27
EMR_SETMETARGN	EQU	28
EMR_EXCLUDECLIPRECT	EQU	29
EMR_INTERSECTCLIPRECT	EQU	30
EMR_SCALEVIEWPORTEXTEX	EQU	31
EMR_SCALEWINDOWEXTEX	EQU	32
EMR_SAVEDC	EQU	33
EMR_RESTOREDC	EQU	34
EMR_SETWORLDTRANSFORM	EQU	35
EMR_MODIFYWORLDTRANSFORM	EQU	36
EMR_SELECTOBJECT	EQU	37
EMR_CREATEPEN	EQU	38
EMR_CREATEBRUSHINDIRECT	EQU	39
EMR_DELETEOBJECT	EQU	40
EMR_ANGLEARC	EQU	41
EMR_ELLIPSE	EQU	42
EMR_RECTANGLE	EQU	43
EMR_ROUNDRECT	EQU	44
EMR_ARC	EQU	45
EMR_CHORD	EQU	46
EMR_PIE	EQU	47
EMR_SELECTPALETTE	EQU	48
EMR_CREATEPALETTE	EQU	49
EMR_SETPALETTEENTRIES	EQU	50
EMR_RESIZEPALETTE	EQU	51
EMR_REALIZEPALETTE	EQU	52
EMR_EXTFLOODFILL	EQU	53
EMR_LINETO	EQU	54
EMR_ARCTO	EQU	55
EMR_POLYDRAW	EQU	56
EMR_SETARCDIRECTION	EQU	57
EMR_SETMITERLIMIT	EQU	58
EMR_BEGINPATH	EQU	59
EMR_ENDPATH	EQU	60
EMR_CLOSEFIGURE	EQU	61
EMR_FILLPATH	EQU	62
EMR_STROKEANDFILLPATH	EQU	63
EMR_STROKEPATH	EQU	64
EMR_FLATTENPATH	EQU	65
EMR_WIDENPATH	EQU	66
EMR_SELECTCLIPPATH	EQU	67
EMR_ABORTPATH	EQU	68
EMR_GDICOMMENT	EQU	70
EMR_FILLRGN	EQU	71
EMR_FRAMERGN	EQU	72
EMR_INVERTRGN	EQU	73
EMR_PAINTRGN	EQU	74
EMR_EXTSELECTCLIPRGN	EQU	75
EMR_BITBLT	EQU	76
EMR_STRETCHBLT	EQU	77
EMR_MASKBLT	EQU	78
EMR_PLGBLT	EQU	79
EMR_SETDIBITSTODEVICE	EQU	80
EMR_STRETCHDIBITS	EQU	81
EMR_EXTCREATEFONTINDIRECTW	EQU	82
EMR_EXTTEXTOUTA	EQU	83
EMR_EXTTEXTOUTW	EQU	84
EMR_POLYBEZIER16	EQU	85
EMR_POLYGON16	EQU	86
EMR_POLYLINE16	EQU	87
EMR_POLYBEZIERTO16	EQU	88
EMR_POLYLINETO16	EQU	89
EMR_POLYPOLYLINE16	EQU	90
EMR_POLYPOLYGON16	EQU	91
EMR_POLYDRAW16	EQU	92
EMR_CREATEMONOBRUSH	EQU	93
EMR_CREATEDIBPATTERNBRUSHPT	EQU	94
EMR_EXTCREATEPEN	EQU	95
EMR_POLYTEXTOUTA	EQU	96
EMR_POLYTEXTOUTW	EQU	97
if (WINVER ge 0400h)
EMR_SETICMMODE	EQU	98
EMR_CREATECOLORSPACE	EQU	99
EMR_SETCOLORSPACE	EQU	100
EMR_DELETECOLORSPACE	EQU	101
EMR_GLSRECORD	EQU	102
EMR_GLSBOUNDEDRECORD	EQU	103
EMR_PIXELFORMAT	EQU	104
endif 
if (WINVER ge 0500h)
EMR_RESERVED_105	EQU	105
EMR_RESERVED_106	EQU	106
EMR_RESERVED_107	EQU	107
EMR_RESERVED_108	EQU	108
EMR_RESERVED_109	EQU	109
EMR_RESERVED_110	EQU	110
EMR_COLORCORRECTPALETTE	EQU	111
EMR_SETICMPROFILEA	EQU	112
EMR_SETICMPROFILEW	EQU	113
EMR_ALPHABLEND	EQU	114
EMR_SETLAYOUT	EQU	115
EMR_TRANSPARENTBLT	EQU	116
EMR_RESERVED_117	EQU	117
EMR_GRADIENTFILL	EQU	118
EMR_RESERVED_119	EQU	119
EMR_RESERVED_120	EQU	120
EMR_COLORMATCHTOTARGETW	EQU	121
EMR_CREATECOLORSPACEW	EQU	122
endif 
EMR_MIN	EQU	1
if (WINVER ge 0500h)
EMR_MAX	EQU	122
elseif (WINVER ge 0400h)
EMR_MAX	EQU	104
else 
EMR_MAX	EQU	97
endif 
EMR	struct 
iType	DWORD	?
nSize	DWORD	?
EMR	ends

PEMR typedef ptr EMR

EMRTEXT	struct 
ptlReference	POINTL	<>
nChars	DWORD	?
offString	DWORD	?
fOptions	DWORD	?
rcl_	RECTL	<>
offDx	DWORD	?
EMRTEXT	ends

PEMRTEXT typedef ptr EMRTEXT

EMRABORTPATH	struct 
emr	EMR	<>
EMRABORTPATH	ends

PEMRABORTPATH typedef ptr EMRABORTPATH
EMRBEGINPATH typedef EMRABORTPATH
PEMRBEGINPATH typedef ptr EMRABORTPATH
EMRENDPATH typedef EMRABORTPATH
PEMRENDPATH typedef ptr EMRABORTPATH
EMRCLOSEFIGURE typedef EMRABORTPATH
PEMRCLOSEFIGURE typedef ptr EMRABORTPATH
EMRFLATTENPATH typedef EMRABORTPATH
PEMRFLATTENPATH typedef ptr EMRABORTPATH
EMRWIDENPATH typedef EMRABORTPATH
PEMRWIDENPATH typedef ptr EMRABORTPATH
EMRSETMETARGN typedef EMRABORTPATH
PEMRSETMETARGN typedef ptr EMRABORTPATH
EMRSAVEDC typedef EMRABORTPATH
PEMRSAVEDC typedef ptr EMRABORTPATH
EMRREALIZEPALETTE typedef EMRABORTPATH
PEMRREALIZEPALETTE typedef ptr EMRABORTPATH

EMRSELECTCLIPPATH	struct 
emr	EMR	<>
iMode	DWORD	?
EMRSELECTCLIPPATH	ends

PEMRSELECTCLIPPATH typedef ptr EMRSELECTCLIPPATH
EMRSETBKMODE typedef EMRSELECTCLIPPATH
PEMRSETBKMODE typedef ptr EMRSELECTCLIPPATH
EMRSETMAPMODE typedef EMRSELECTCLIPPATH
PEMRSETMAPMODE typedef ptr EMRSELECTCLIPPATH
if (WINVER ge 0500h)
EMRSETLAYOUT typedef EMRSELECTCLIPPATH
PEMRSETLAYOUT typedef ptr EMRSELECTCLIPPATH
endif 
EMRSETPOLYFILLMODE typedef EMRSELECTCLIPPATH
PEMRSETPOLYFILLMODE typedef ptr EMRSELECTCLIPPATH
EMRSETROP2 typedef EMRSELECTCLIPPATH
PEMRSETROP2 typedef ptr EMRSELECTCLIPPATH
EMRSETSTRETCHBLTMODE typedef EMRSELECTCLIPPATH
PEMRSETSTRETCHBLTMODE typedef ptr EMRSELECTCLIPPATH
EMRSETICMMODE typedef EMRSELECTCLIPPATH
PEMRSETICMMODE typedef ptr EMRSELECTCLIPPATH
EMRSETTEXTALIGN typedef EMRSELECTCLIPPATH
PEMRSETTEXTALIGN typedef ptr EMRSELECTCLIPPATH

EMRSETMITERLIMIT	struct 
emr	EMR	<>
eMiterLimit	REAL4	?
EMRSETMITERLIMIT	ends

PEMRSETMITERLIMIT typedef ptr EMRSETMITERLIMIT

EMRRESTOREDC	struct 
emr	EMR	<>
iRelative	SDWORD	?
EMRRESTOREDC	ends

PEMRRESTOREDC typedef ptr EMRRESTOREDC

EMRSETARCDIRECTION	struct 
emr	EMR	<>
iArcDirection	DWORD	?
EMRSETARCDIRECTION	ends

PEMRSETARCDIRECTION typedef ptr EMRSETARCDIRECTION

EMRSETMAPPERFLAGS	struct 
emr	EMR	<>
dwFlags	DWORD	?
EMRSETMAPPERFLAGS	ends

PEMRSETMAPPERFLAGS typedef ptr EMRSETMAPPERFLAGS

EMRSETBKCOLOR	struct 
emr	EMR	<>
crColor	COLORREF	?
EMRSETBKCOLOR	ends

PEMRSETBKCOLOR typedef ptr EMRSETBKCOLOR
EMRSETTEXTCOLOR typedef EMRSETBKCOLOR
PEMRSETTEXTCOLOR typedef ptr EMRSETBKCOLOR

EMRSELECTOBJECT	struct 
emr	EMR	<>
ihObject	DWORD	?
EMRSELECTOBJECT	ends

PEMRSELECTOBJECT typedef ptr EMRSELECTOBJECT
EMRDELETEOBJECT typedef EMRSELECTOBJECT
PEMRDELETEOBJECT typedef ptr EMRSELECTOBJECT

EMRSELECTPALETTE	struct 
emr	EMR	<>
ihPal	DWORD	?
EMRSELECTPALETTE	ends

PEMRSELECTPALETTE typedef ptr EMRSELECTPALETTE

EMRRESIZEPALETTE	struct 
emr	EMR	<>
ihPal	DWORD	?
cEntries	DWORD	?
EMRRESIZEPALETTE	ends

PEMRRESIZEPALETTE typedef ptr EMRRESIZEPALETTE

EMRSETPALETTEENTRIES	struct 
emr	EMR	<>
ihPal	DWORD	?
iStart	DWORD	?
cEntries	DWORD	?
aPalEntries	PALETTEENTRY 1 dup (<>)
EMRSETPALETTEENTRIES	ends

PEMRSETPALETTEENTRIES typedef ptr EMRSETPALETTEENTRIES

EMRSETCOLORADJUSTMENT	struct 
emr	EMR	<>
ColorAdjustment	COLORADJUSTMENT	<>
EMRSETCOLORADJUSTMENT	ends

PEMRSETCOLORADJUSTMENT typedef ptr EMRSETCOLORADJUSTMENT

EMRGDICOMMENT	struct 
emr	EMR	<>
cbData	DWORD	?
Data	BYTE 1 dup (?)
EMRGDICOMMENT	ends

PEMRGDICOMMENT typedef ptr EMRGDICOMMENT

EMREOF	struct 
emr	EMR	<>
nPalEntries	DWORD	?
offPalEntries	DWORD	?
nSizeLast	DWORD	?
EMREOF	ends

PEMREOF typedef ptr EMREOF

EMRLINETO	struct 
emr	EMR	<>
ptl	POINTL	<>
EMRLINETO	ends

PEMRLINETO typedef ptr EMRLINETO
EMRMOVETOEX typedef EMRLINETO
PEMRMOVETOEX typedef ptr EMRLINETO

EMROFFSETCLIPRGN	struct 
emr	EMR	<>
ptlOffset	POINTL	<>
EMROFFSETCLIPRGN	ends

PEMROFFSETCLIPRGN typedef ptr EMROFFSETCLIPRGN

EMRFILLPATH	struct 
emr	EMR	<>
rclBounds	RECTL	<>
EMRFILLPATH	ends

PEMRFILLPATH typedef ptr EMRFILLPATH
EMRSTROKEANDFILLPATH typedef EMRFILLPATH
PEMRSTROKEANDFILLPATH typedef ptr EMRFILLPATH
EMRSTROKEPATH typedef EMRFILLPATH
PEMRSTROKEPATH typedef ptr EMRFILLPATH

EMREXCLUDECLIPRECT	struct 
emr	EMR	<>
rclClip	RECTL	<>
EMREXCLUDECLIPRECT	ends

PEMREXCLUDECLIPRECT typedef ptr EMREXCLUDECLIPRECT
EMRINTERSECTCLIPRECT typedef EMREXCLUDECLIPRECT
PEMRINTERSECTCLIPRECT typedef ptr EMREXCLUDECLIPRECT

EMRSETVIEWPORTORGEX	struct 
emr	EMR	<>
ptlOrigin	POINTL	<>
EMRSETVIEWPORTORGEX	ends

PEMRSETVIEWPORTORGEX typedef ptr EMRSETVIEWPORTORGEX
EMRSETWINDOWORGEX typedef EMRSETVIEWPORTORGEX
PEMRSETWINDOWORGEX typedef ptr EMRSETVIEWPORTORGEX
EMRSETBRUSHORGEX typedef EMRSETVIEWPORTORGEX
PEMRSETBRUSHORGEX typedef ptr EMRSETVIEWPORTORGEX

EMRSETVIEWPORTEXTEX	struct 
emr	EMR	<>
szlExtent	SIZEL	<>
EMRSETVIEWPORTEXTEX	ends

PEMRSETVIEWPORTEXTEX typedef ptr EMRSETVIEWPORTEXTEX
EMRSETWINDOWEXTEX typedef EMRSETVIEWPORTEXTEX
PEMRSETWINDOWEXTEX typedef ptr EMRSETVIEWPORTEXTEX

EMRSCALEVIEWPORTEXTEX	struct 
emr	EMR	<>
xNum	SDWORD	?
xDenom	SDWORD	?
yNum	SDWORD	?
yDenom	SDWORD	?
EMRSCALEVIEWPORTEXTEX	ends

PEMRSCALEVIEWPORTEXTEX typedef ptr EMRSCALEVIEWPORTEXTEX
EMRSCALEWINDOWEXTEX typedef EMRSCALEVIEWPORTEXTEX
PEMRSCALEWINDOWEXTEX typedef ptr EMRSCALEVIEWPORTEXTEX

EMRSETWORLDTRANSFORM	struct 
emr	EMR	<>
xform	XFORM	<>
EMRSETWORLDTRANSFORM	ends

PEMRSETWORLDTRANSFORM typedef ptr EMRSETWORLDTRANSFORM

EMRMODIFYWORLDTRANSFORM	struct 
emr	EMR	<>
xform	XFORM	<>
iMode	DWORD	?
EMRMODIFYWORLDTRANSFORM	ends

PEMRMODIFYWORLDTRANSFORM typedef ptr EMRMODIFYWORLDTRANSFORM

EMRSETPIXELV	struct 
emr	EMR	<>
ptlPixel	POINTL	<>
crColor	COLORREF	?
EMRSETPIXELV	ends

PEMRSETPIXELV typedef ptr EMRSETPIXELV

EMREXTFLOODFILL	struct 
emr	EMR	<>
ptlStart	POINTL	<>
crColor	COLORREF	?
iMode	DWORD	?
EMREXTFLOODFILL	ends

PEMREXTFLOODFILL typedef ptr EMREXTFLOODFILL

EMRELLIPSE	struct 
emr	EMR	<>
rclBox	RECTL	<>
EMRELLIPSE	ends

PEMRELLIPSE typedef ptr EMRELLIPSE
EMRRECTANGLE typedef EMRELLIPSE
PEMRRECTANGLE typedef ptr EMRELLIPSE

EMRROUNDRECT	struct 
emr	EMR	<>
rclBox	RECTL	<>
szlCorner	SIZEL	<>
EMRROUNDRECT	ends

PEMRROUNDRECT typedef ptr EMRROUNDRECT

EMRARC	struct 
emr	EMR	<>
rclBox	RECTL	<>
ptlStart	POINTL	<>
ptlEnd	POINTL	<>
EMRARC	ends

PEMRARC typedef ptr EMRARC
EMRARCTO typedef EMRARC
PEMRARCTO typedef ptr EMRARC
EMRCHORD typedef EMRARC
PEMRCHORD typedef ptr EMRARC
EMRPIE typedef EMRARC
PEMRPIE typedef ptr EMRARC

EMRANGLEARC	struct 
emr	EMR	<>
ptlCenter	POINTL	<>
nRadius	DWORD	?
eStartAngle	REAL4	?
eSweepAngle	REAL4	?
EMRANGLEARC	ends

PEMRANGLEARC typedef ptr EMRANGLEARC

EMRPOLYLINE	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cptl	DWORD	?
aptl	POINTL 1 dup (<>)
EMRPOLYLINE	ends

PEMRPOLYLINE typedef ptr EMRPOLYLINE
EMRPOLYBEZIER typedef EMRPOLYLINE
PEMRPOLYBEZIER typedef ptr EMRPOLYLINE
EMRPOLYGON typedef EMRPOLYLINE
PEMRPOLYGON typedef ptr EMRPOLYLINE
EMRPOLYBEZIERTO typedef EMRPOLYLINE
PEMRPOLYBEZIERTO typedef ptr EMRPOLYLINE
EMRPOLYLINETO typedef EMRPOLYLINE
PEMRPOLYLINETO typedef ptr EMRPOLYLINE

EMRPOLYLINE16	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cpts	DWORD	?
apts	POINTS 1 dup (<>)
EMRPOLYLINE16	ends

PEMRPOLYLINE16 typedef ptr EMRPOLYLINE16
EMRPOLYBEZIER16 typedef EMRPOLYLINE16
PEMRPOLYBEZIER16 typedef ptr EMRPOLYLINE16
EMRPOLYGON16 typedef EMRPOLYLINE16
PEMRPOLYGON16 typedef ptr EMRPOLYLINE16
EMRPOLYBEZIERTO16 typedef EMRPOLYLINE16
PEMRPOLYBEZIERTO16 typedef ptr EMRPOLYLINE16
EMRPOLYLINETO16 typedef EMRPOLYLINE16
PEMRPOLYLINETO16 typedef ptr EMRPOLYLINE16

EMRPOLYDRAW	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cptl	DWORD	?
aptl	POINTL 1 dup (<>)
abTypes	BYTE 1 dup (?)
EMRPOLYDRAW	ends

PEMRPOLYDRAW typedef ptr EMRPOLYDRAW

EMRPOLYDRAW16	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cpts	DWORD	?
apts	POINTS 1 dup (<>)
abTypes	BYTE 1 dup (?)
EMRPOLYDRAW16	ends

PEMRPOLYDRAW16 typedef ptr EMRPOLYDRAW16

EMRPOLYPOLYLINE	struct 
emr	EMR	<>
rclBounds	RECTL	<>
nPolys	DWORD	?
cptl	DWORD	?
aPolyCounts	DWORD 1 dup (?)
aptl	POINTL 1 dup (<>)
EMRPOLYPOLYLINE	ends

PEMRPOLYPOLYLINE typedef ptr EMRPOLYPOLYLINE
EMRPOLYPOLYGON typedef EMRPOLYPOLYLINE
PEMRPOLYPOLYGON typedef ptr EMRPOLYPOLYLINE

EMRPOLYPOLYLINE16	struct 
emr	EMR	<>
rclBounds	RECTL	<>
nPolys	DWORD	?
cpts	DWORD	?
aPolyCounts	DWORD 1 dup (?)
apts	POINTS 1 dup (<>)
EMRPOLYPOLYLINE16	ends

PEMRPOLYPOLYLINE16 typedef ptr EMRPOLYPOLYLINE16
EMRPOLYPOLYGON16 typedef EMRPOLYPOLYLINE16
PEMRPOLYPOLYGON16 typedef ptr EMRPOLYPOLYLINE16

EMRINVERTRGN	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cbRgnData	DWORD	?
RgnData	BYTE 1 dup (?)
EMRINVERTRGN	ends

PEMRINVERTRGN typedef ptr EMRINVERTRGN
EMRPAINTRGN typedef EMRINVERTRGN
PEMRPAINTRGN typedef ptr EMRINVERTRGN

EMRFILLRGN	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cbRgnData	DWORD	?
ihBrush	DWORD	?
RgnData	BYTE 1 dup (?)
EMRFILLRGN	ends

PEMRFILLRGN typedef ptr EMRFILLRGN

EMRFRAMERGN	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cbRgnData	DWORD	?
ihBrush	DWORD	?
szlStroke	SIZEL	<>
RgnData	BYTE 1 dup (?)
EMRFRAMERGN	ends

PEMRFRAMERGN typedef ptr EMRFRAMERGN

EMREXTSELECTCLIPRGN	struct 
emr	EMR	<>
cbRgnData	DWORD	?
iMode	DWORD	?
RgnData	BYTE 1 dup (?)
EMREXTSELECTCLIPRGN	ends

PEMREXTSELECTCLIPRGN typedef ptr EMREXTSELECTCLIPRGN

EMREXTTEXTOUTA	struct 
emr	EMR	<>
rclBounds	RECTL	<>
iGraphicsMode	DWORD	?
exScale	REAL4	?
eyScale	REAL4	?
emrtext	EMRTEXT	<>
EMREXTTEXTOUTA	ends

PEMREXTTEXTOUTA typedef ptr EMREXTTEXTOUTA
EMREXTTEXTOUTW typedef EMREXTTEXTOUTA
PEMREXTTEXTOUTW typedef ptr EMREXTTEXTOUTA

EMRPOLYTEXTOUTA	struct 
emr	EMR	<>
rclBounds	RECTL	<>
iGraphicsMode	DWORD	?
exScale	REAL4	?
eyScale	REAL4	?
cStrings	SDWORD	?
aemrtext	EMRTEXT 1 dup (<>)
EMRPOLYTEXTOUTA	ends

PEMRPOLYTEXTOUTA typedef ptr EMRPOLYTEXTOUTA
EMRPOLYTEXTOUTW typedef EMRPOLYTEXTOUTA
PEMRPOLYTEXTOUTW typedef ptr EMRPOLYTEXTOUTA

EMRBITBLT	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
cxDest	SDWORD	?
cyDest	SDWORD	?
dwRop	DWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
xformSrc	XFORM	<>
crBkColorSrc	COLORREF	?
iUsageSrc	DWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
EMRBITBLT	ends

PEMRBITBLT typedef ptr EMRBITBLT

EMRSTRETCHBLT	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
cxDest	SDWORD	?
cyDest	SDWORD	?
dwRop	DWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
xformSrc	XFORM	<>
crBkColorSrc	COLORREF	?
iUsageSrc	DWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
cxSrc	SDWORD	?
cySrc	SDWORD	?
EMRSTRETCHBLT	ends

PEMRSTRETCHBLT typedef ptr EMRSTRETCHBLT

EMRMASKBLT	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
cxDest	SDWORD	?
cyDest	SDWORD	?
dwRop	DWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
xformSrc	XFORM	<>
crBkColorSrc	COLORREF	?
iUsageSrc	DWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
xMask	SDWORD	?
yMask	SDWORD	?
iUsageMask	DWORD	?
offBmiMask	DWORD	?
cbBmiMask	DWORD	?
offBitsMask	DWORD	?
cbBitsMask	DWORD	?
EMRMASKBLT	ends

PEMRMASKBLT typedef ptr EMRMASKBLT

EMRPLGBLT	struct 
emr	EMR	<>
rclBounds	RECTL	<>
aptlDest	POINTL 3 dup (<>)
xSrc	SDWORD	?
ySrc	SDWORD	?
cxSrc	SDWORD	?
cySrc	SDWORD	?
xformSrc	XFORM	<>
crBkColorSrc	COLORREF	?
iUsageSrc	DWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
xMask	SDWORD	?
yMask	SDWORD	?
iUsageMask	DWORD	?
offBmiMask	DWORD	?
cbBmiMask	DWORD	?
offBitsMask	DWORD	?
cbBitsMask	DWORD	?
EMRPLGBLT	ends

PEMRPLGBLT typedef ptr EMRPLGBLT

EMRSETDIBITSTODEVICE	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
cxSrc	SDWORD	?
cySrc	SDWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
iUsageSrc	DWORD	?
iStartScan	DWORD	?
cScans	DWORD	?
EMRSETDIBITSTODEVICE	ends

PEMRSETDIBITSTODEVICE typedef ptr EMRSETDIBITSTODEVICE

EMRSTRETCHDIBITS	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
cxSrc	SDWORD	?
cySrc	SDWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
iUsageSrc	DWORD	?
dwRop	DWORD	?
cxDest	SDWORD	?
cyDest	SDWORD	?
EMRSTRETCHDIBITS	ends

PEMRSTRETCHDIBITS typedef ptr EMRSTRETCHDIBITS

EMREXTCREATEFONTINDIRECTW	struct 
emr	EMR	<>
ihFont	DWORD	?
elfw	EXTLOGFONTW	<>
EMREXTCREATEFONTINDIRECTW	ends

PEMREXTCREATEFONTINDIRECTW typedef ptr EMREXTCREATEFONTINDIRECTW

EMRCREATEPALETTE	struct 
emr	EMR	<>
ihPal	DWORD	?
lgpl	LOGPALETTE	<>
EMRCREATEPALETTE	ends

PEMRCREATEPALETTE typedef ptr EMRCREATEPALETTE

EMRCREATEPEN	struct 
emr	EMR	<>
ihPen	DWORD	?
lopn	LOGPEN	<>
EMRCREATEPEN	ends

PEMRCREATEPEN typedef ptr EMRCREATEPEN

EMREXTCREATEPEN	struct 
emr	EMR	<>
ihPen	DWORD	?
offBmi	DWORD	?
cbBmi	DWORD	?
offBits	DWORD	?
cbBits	DWORD	?
elp	EXTLOGPEN	<>
EMREXTCREATEPEN	ends

PEMREXTCREATEPEN typedef ptr EMREXTCREATEPEN

EMRCREATEBRUSHINDIRECT	struct 
emr	EMR	<>
ihBrush	DWORD	?
lb	LOGBRUSH32	<>
EMRCREATEBRUSHINDIRECT	ends

PEMRCREATEBRUSHINDIRECT typedef ptr EMRCREATEBRUSHINDIRECT

EMRCREATEMONOBRUSH	struct 
emr	EMR	<>
ihBrush	DWORD	?
iUsage	DWORD	?
offBmi	DWORD	?
cbBmi	DWORD	?
offBits	DWORD	?
cbBits	DWORD	?
EMRCREATEMONOBRUSH	ends

PEMRCREATEMONOBRUSH typedef ptr EMRCREATEMONOBRUSH

EMRCREATEDIBPATTERNBRUSHPT	struct 
emr	EMR	<>
ihBrush	DWORD	?
iUsage	DWORD	?
offBmi	DWORD	?
cbBmi	DWORD	?
offBits	DWORD	?
cbBits	DWORD	?
EMRCREATEDIBPATTERNBRUSHPT	ends

PEMRCREATEDIBPATTERNBRUSHPT typedef ptr EMRCREATEDIBPATTERNBRUSHPT

EMRFORMAT	struct 
dSignature	DWORD	?
nVersion	DWORD	?
cbData	DWORD	?
offData	DWORD	?
EMRFORMAT	ends

PEMRFORMAT typedef ptr EMRFORMAT

if (WINVER ge 0400h)
EMRGLSRECORD	struct 
emr	EMR	<>
cbData	DWORD	?
Data	BYTE 1 dup (?)
EMRGLSRECORD	ends

PEMRGLSRECORD typedef ptr EMRGLSRECORD

EMRGLSBOUNDEDRECORD	struct 
emr	EMR	<>
rclBounds	RECTL	<>
cbData	DWORD	?
Data	BYTE 1 dup (?)
EMRGLSBOUNDEDRECORD	ends

PEMRGLSBOUNDEDRECORD typedef ptr EMRGLSBOUNDEDRECORD

EMRPIXELFORMAT	struct 
emr	EMR	<>
pfd	PIXELFORMATDESCRIPTOR	<>
EMRPIXELFORMAT	ends

PEMRPIXELFORMAT typedef ptr EMRPIXELFORMAT

EMRCREATECOLORSPACE	struct 
emr	EMR	<>
ihCS	DWORD	?
lcs	LOGCOLORSPACEA	<>
EMRCREATECOLORSPACE	ends

PEMRCREATECOLORSPACE typedef ptr EMRCREATECOLORSPACE

EMRSETCOLORSPACE	struct 
emr	EMR	<>
ihCS	DWORD	?
EMRSETCOLORSPACE	ends

PEMRSETCOLORSPACE typedef ptr EMRSETCOLORSPACE
EMRSELECTCOLORSPACE typedef EMRSETCOLORSPACE
PEMRSELECTCOLORSPACE typedef ptr EMRSETCOLORSPACE
EMRDELETECOLORSPACE typedef EMRSETCOLORSPACE
PEMRDELETECOLORSPACE typedef ptr EMRSETCOLORSPACE

endif 
if (WINVER ge 0500h)
EMREXTESCAPE	struct 
emr	EMR	<>
iEscape	DWORD	?
cbEscData	DWORD	?
EscData	BYTE 1 dup (?)
EMREXTESCAPE	ends

PEMREXTESCAPE typedef ptr EMREXTESCAPE
EMRDRAWESCAPE typedef EMREXTESCAPE
PEMRDRAWESCAPE typedef ptr EMREXTESCAPE

EMRNAMEDESCAPE	struct 
emr	EMR	<>
iEscape	DWORD	?
cbDriver	DWORD	?
cbEscData	DWORD	?
EscData	BYTE 1 dup (?)
EMRNAMEDESCAPE	ends

PEMRNAMEDESCAPE typedef ptr EMRNAMEDESCAPE

SETICMPROFILE_EMBEDED	EQU	00000001h
EMRSETICMPROFILE	struct 
emr	EMR	<>
dwFlags	DWORD	?
cbName	DWORD	?
cbData	DWORD	?
Data	BYTE 1 dup (?)
EMRSETICMPROFILE	ends

PEMRSETICMPROFILE typedef ptr EMRSETICMPROFILE
EMRSETICMPROFILEA typedef EMRSETICMPROFILE
PEMRSETICMPROFILEA typedef ptr EMRSETICMPROFILE
EMRSETICMPROFILEW typedef EMRSETICMPROFILE
PEMRSETICMPROFILEW typedef ptr EMRSETICMPROFILE

CREATECOLORSPACE_EMBEDED	EQU	00000001h
EMRCREATECOLORSPACEW	struct 
emr	EMR	<>
ihCS	DWORD	?
lcs	LOGCOLORSPACEW	<>
dwFlags	DWORD	?
cbData	DWORD	?
Data	BYTE 1 dup (?)
EMRCREATECOLORSPACEW	ends

PEMRCREATECOLORSPACEW typedef ptr EMRCREATECOLORSPACEW

COLORMATCHTOTARGET_EMBEDED	EQU	00000001h
EMRCOLORMATCHTOTARGET	struct 
emr	EMR	<>
dwAction	DWORD	?
dwFlags	DWORD	?
cbName	DWORD	?
cbData	DWORD	?
Data	BYTE 1 dup (?)
EMRCOLORMATCHTOTARGET	ends

PEMRCOLORMATCHTOTARGET typedef ptr EMRCOLORMATCHTOTARGET

EMRCOLORCORRECTPALETTE	struct 
emr	EMR	<>
ihPalette	DWORD	?
nFirstEntry	DWORD	?
nPalEntries	DWORD	?
nReserved	DWORD	?
EMRCOLORCORRECTPALETTE	ends

PEMRCOLORCORRECTPALETTE typedef ptr EMRCOLORCORRECTPALETTE

EMRALPHABLEND	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
cxDest	SDWORD	?
cyDest	SDWORD	?
dwRop	DWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
xformSrc	XFORM	<>
crBkColorSrc	COLORREF	?
iUsageSrc	DWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
cxSrc	SDWORD	?
cySrc	SDWORD	?
EMRALPHABLEND	ends

PEMRALPHABLEND typedef ptr EMRALPHABLEND

EMRGRADIENTFILL	struct 
emr	EMR	<>
rclBounds	RECTL	<>
nVer	DWORD	?
nTri	DWORD	?
ulMode	DWORD	?
Ver	TRIVERTEX 1 dup (<>)
EMRGRADIENTFILL	ends

PEMRGRADIENTFILL typedef ptr EMRGRADIENTFILL

EMRTRANSPARENTBLT	struct 
emr	EMR	<>
rclBounds	RECTL	<>
xDest	SDWORD	?
yDest	SDWORD	?
cxDest	SDWORD	?
cyDest	SDWORD	?
dwRop	DWORD	?
xSrc	SDWORD	?
ySrc	SDWORD	?
xformSrc	XFORM	<>
crBkColorSrc	COLORREF	?
iUsageSrc	DWORD	?
offBmiSrc	DWORD	?
cbBmiSrc	DWORD	?
offBitsSrc	DWORD	?
cbBitsSrc	DWORD	?
cxSrc	SDWORD	?
cySrc	SDWORD	?
EMRTRANSPARENTBLT	ends

PEMRTRANSPARENTBLT typedef ptr EMRTRANSPARENTBLT

endif 
GDICOMMENT_IDENTIFIER	EQU	43494447h
GDICOMMENT_WINDOWS_METAFILE	EQU	80000001h
GDICOMMENT_BEGINGROUP	EQU	00000002h
GDICOMMENT_ENDGROUP	EQU	00000003h
GDICOMMENT_MULTIFORMATS	EQU	40000004h
EPS_SIGNATURE	EQU	46535045h
GDICOMMENT_UNICODE_STRING	EQU	00000040h
GDICOMMENT_UNICODE_END	EQU	00000080h
endif 
@DefProto WINGDIAPI, wglCopyContext, stdcall, , <:HGLRC, :HGLRC, :DWORD>, 12
@DefProto WINGDIAPI, wglCreateContext, stdcall, , <:HDC>, 4
@DefProto WINGDIAPI, wglCreateLayerContext, stdcall, , <:HDC, :DWORD>, 8
@DefProto WINGDIAPI, wglDeleteContext, stdcall, , <:HGLRC>, 4
@DefProto WINGDIAPI, wglGetCurrentContext, stdcall, , <>, 0
@DefProto WINGDIAPI, wglGetCurrentDC, stdcall, , <>, 0
@DefProto WINGDIAPI, wglGetProcAddress, stdcall, , <:LPSTR>, 4
@DefProto WINGDIAPI, wglMakeCurrent, stdcall, , <:HDC, :HGLRC>, 8
@DefProto WINGDIAPI, wglShareLists, stdcall, , <:HGLRC, :HGLRC>, 8
@DefProto WINGDIAPI, wglUseFontBitmapsA, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD>, 16
@DefProto WINGDIAPI, wglUseFontBitmapsW, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD>, 16
ifdef UNICODE
wglUseFontBitmaps	EQU	<wglUseFontBitmapsW>
else 
wglUseFontBitmaps	EQU	<wglUseFontBitmapsA>
endif 
@DefProto WINGDIAPI, SwapBuffers, stdcall, , <:HDC>, 4
POINTFLOAT	struct 
x	REAL4	?
y	REAL4	?
POINTFLOAT	ends

PPOINTFLOAT typedef ptr POINTFLOAT

GLYPHMETRICSFLOAT	struct 
gmfBlackBoxX	REAL4	?
gmfBlackBoxY	REAL4	?
gmfptGlyphOrigin	POINTFLOAT	<>
gmfCellIncX	REAL4	?
gmfCellIncY	REAL4	?
GLYPHMETRICSFLOAT	ends

PGLYPHMETRICSFLOAT typedef ptr GLYPHMETRICSFLOAT
LPGLYPHMETRICSFLOAT typedef ptr GLYPHMETRICSFLOAT

WGL_FONT_LINES	EQU	0
WGL_FONT_POLYGONS	EQU	1
@DefProto WINGDIAPI, wglUseFontOutlinesA, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :REAL4, :REAL4, :DWORD, :LPGLYPHMETRICSFLOAT>, 32
@DefProto WINGDIAPI, wglUseFontOutlinesW, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :REAL4, :REAL4, :DWORD, :LPGLYPHMETRICSFLOAT>, 32
ifdef UNICODE
wglUseFontOutlines	EQU	<wglUseFontOutlinesW>
else 
wglUseFontOutlines	EQU	<wglUseFontOutlinesA>
endif 
LAYERPLANEDESCRIPTOR	struct 
nSize	WORD	?
nVersion	WORD	?
dwFlags	DWORD	?
iPixelType	BYTE	?
cColorBits	BYTE	?
cRedBits	BYTE	?
cRedShift	BYTE	?
cGreenBits	BYTE	?
cGreenShift	BYTE	?
cBlueBits	BYTE	?
cBlueShift	BYTE	?
cAlphaBits	BYTE	?
cAlphaShift	BYTE	?
cAccumBits	BYTE	?
cAccumRedBits	BYTE	?
cAccumGreenBits	BYTE	?
cAccumBlueBits	BYTE	?
cAccumAlphaBits	BYTE	?
cDepthBits	BYTE	?
cStencilBits	BYTE	?
cAuxBuffers	BYTE	?
iLayerPlane	BYTE	?
bReserved	BYTE	?
crTransparent	COLORREF	?
LAYERPLANEDESCRIPTOR	ends

PLAYERPLANEDESCRIPTOR typedef ptr LAYERPLANEDESCRIPTOR
LPLAYERPLANEDESCRIPTOR typedef ptr LAYERPLANEDESCRIPTOR

LPD_DOUBLEBUFFER	EQU	00000001h
LPD_STEREO	EQU	00000002h
LPD_SUPPORT_GDI	EQU	00000010h
LPD_SUPPORT_OPENGL	EQU	00000020h
LPD_SHARE_DEPTH	EQU	00000040h
LPD_SHARE_STENCIL	EQU	00000080h
LPD_SHARE_ACCUM	EQU	00000100h
LPD_SWAP_EXCHANGE	EQU	00000200h
LPD_SWAP_COPY	EQU	00000400h
LPD_TRANSPARENT	EQU	00001000h
LPD_TYPE_RGBA	EQU	0
LPD_TYPE_COLORINDEX	EQU	1
WGL_SWAP_MAIN_PLANE	EQU	00000001h
WGL_SWAP_OVERLAY1	EQU	00000002h
WGL_SWAP_OVERLAY2	EQU	00000004h
WGL_SWAP_OVERLAY3	EQU	00000008h
WGL_SWAP_OVERLAY4	EQU	00000010h
WGL_SWAP_OVERLAY5	EQU	00000020h
WGL_SWAP_OVERLAY6	EQU	00000040h
WGL_SWAP_OVERLAY7	EQU	00000080h
WGL_SWAP_OVERLAY8	EQU	00000100h
WGL_SWAP_OVERLAY9	EQU	00000200h
WGL_SWAP_OVERLAY10	EQU	00000400h
WGL_SWAP_OVERLAY11	EQU	00000800h
WGL_SWAP_OVERLAY12	EQU	00001000h
WGL_SWAP_OVERLAY13	EQU	00002000h
WGL_SWAP_OVERLAY14	EQU	00004000h
WGL_SWAP_OVERLAY15	EQU	00008000h
WGL_SWAP_UNDERLAY1	EQU	00010000h
WGL_SWAP_UNDERLAY2	EQU	00020000h
WGL_SWAP_UNDERLAY3	EQU	00040000h
WGL_SWAP_UNDERLAY4	EQU	00080000h
WGL_SWAP_UNDERLAY5	EQU	00100000h
WGL_SWAP_UNDERLAY6	EQU	00200000h
WGL_SWAP_UNDERLAY7	EQU	00400000h
WGL_SWAP_UNDERLAY8	EQU	00800000h
WGL_SWAP_UNDERLAY9	EQU	01000000h
WGL_SWAP_UNDERLAY10	EQU	02000000h
WGL_SWAP_UNDERLAY11	EQU	04000000h
WGL_SWAP_UNDERLAY12	EQU	08000000h
WGL_SWAP_UNDERLAY13	EQU	10000000h
WGL_SWAP_UNDERLAY14	EQU	20000000h
WGL_SWAP_UNDERLAY15	EQU	40000000h
@DefProto WINGDIAPI, wglDescribeLayerPlane, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :LPLAYERPLANEDESCRIPTOR>, 20
@DefProto WINGDIAPI, wglSetLayerPaletteEntries, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :ptr COLORREF>, 20
@DefProto WINGDIAPI, wglGetLayerPaletteEntries, stdcall, , <:HDC, :DWORD, :DWORD, :DWORD, :ptr COLORREF>, 20
@DefProto WINGDIAPI, wglRealizeLayerPalette, stdcall, , <:HDC, :DWORD, :BOOL>, 12
@DefProto WINGDIAPI, wglSwapLayerBuffers, stdcall, , <:HDC, :DWORD>, 8
if (WINVER ge 0500h)
WGLSWAP	struct 
hdc	HDC	?
uiFlags	DWORD	?
WGLSWAP	ends

PWGLSWAP typedef ptr WGLSWAP
LPWGLSWAP typedef ptr WGLSWAP

WGL_SWAPMULTIPLE_MAX	EQU	16
@DefProto WINGDIAPI, wglSwapMultipleBuffers, stdcall, , <:DWORD, :ptr WGLSWAP>, 8
endif 
endif 
ifdef __cplusplus
;}
endif 
endif 

;--- errors: 0
;--- end of file ---
