2 * Enhanced MetaFile driver definitions
4 * Copyright 1999 Huw D M Davies
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_ENHMETAFILEDRV_H
22 #define __WINE_ENHMETAFILEDRV_H
28 /* Enhanced Metafile driver physical DC */
32 ENHMETAHEADER
*emh
; /* Pointer to enhanced metafile header */
33 UINT nextHandle
; /* Next handle number */
34 HFILE hFile
; /* HFILE for disk based MetaFile */
38 extern BOOL
EMFDRV_WriteRecord( DC
*dc
, EMR
*emr
);
39 extern int EMFDRV_AddHandleDC( DC
*dc
);
40 extern void EMFDRV_UpdateBBox( DC
*dc
, RECTL
*rect
);
41 extern DWORD
EMFDRV_CreateBrushIndirect( DC
*dc
, HBRUSH hBrush
);
43 /* Metafile driver functions */
44 extern BOOL
EMFDRV_AbortPath( DC
*dc
);
45 extern BOOL
EMFDRV_Arc( DC
*dc
, INT left
, INT top
, INT right
,
46 INT bottom
, INT xstart
, INT ystart
, INT xend
,
48 extern BOOL
EMFDRV_BeginPath( DC
*dc
);
49 extern BOOL
EMFDRV_BitBlt( DC
*dcDst
, INT xDst
, INT yDst
,
50 INT width
, INT height
, DC
*dcSrc
,
51 INT xSrc
, INT ySrc
, DWORD rop
);
52 extern BOOL
EMFDRV_Chord( DC
*dc
, INT left
, INT top
, INT right
,
53 INT bottom
, INT xstart
, INT ystart
, INT xend
,
55 extern BOOL
EMFDRV_CloseFigure( DC
*dc
);
56 extern BOOL
EMFDRV_Ellipse( DC
*dc
, INT left
, INT top
,
57 INT right
, INT bottom
);
58 extern BOOL
EMFDRV_EndPath( DC
*dc
);
59 extern INT
EMFDRV_ExcludeClipRect( DC
*dc
, INT left
, INT top
, INT right
,
61 extern BOOL
EMFDRV_ExtFloodFill( DC
*dc
, INT x
, INT y
,
62 COLORREF color
, UINT fillType
);
63 extern BOOL
EMFDRV_ExtTextOut( DC
*dc
, INT x
, INT y
,
64 UINT flags
, const RECT
*lprect
, LPCSTR str
,
65 UINT count
, const INT
*lpDx
);
66 extern BOOL
EMFDRV_FillPath( DC
*dc
);
67 extern BOOL
EMFDRV_FillRgn( DC
*dc
, HRGN hrgn
, HBRUSH hbrush
);
68 extern BOOL
EMFDRV_FlattenPath( DC
*dc
);
69 extern BOOL
EMFDRV_FrameRgn( DC
*dc
, HRGN hrgn
, HBRUSH hbrush
, INT width
,
71 extern INT
EMFDRV_IntersectClipRect( DC
*dc
, INT left
, INT top
, INT right
,
73 extern BOOL
EMFDRV_InvertRgn( DC
*dc
, HRGN hrgn
);
74 extern BOOL
EMFDRV_LineTo( DC
*dc
, INT x
, INT y
);
75 extern BOOL
EMFDRV_MoveTo( DC
*dc
, INT x
, INT y
);
76 extern INT
EMFDRV_OffsetClipRgn( DC
*dc
, INT x
, INT y
);
77 extern BOOL
EMFDRV_OffsetViewportOrg( DC
*dc
, INT x
, INT y
);
78 extern BOOL
EMFDRV_OffsetWindowOrg( DC
*dc
, INT x
, INT y
);
79 extern BOOL
EMFDRV_PaintRgn( DC
*dc
, HRGN hrgn
);
80 extern BOOL
EMFDRV_PatBlt( DC
*dc
, INT left
, INT top
,
81 INT width
, INT height
, DWORD rop
);
82 extern BOOL
EMFDRV_Pie( DC
*dc
, INT left
, INT top
, INT right
,
83 INT bottom
, INT xstart
, INT ystart
, INT xend
,
85 extern BOOL
EMFDRV_PolyPolygon( DC
*dc
, const POINT
* pt
,
86 const INT
* counts
, UINT polys
);
87 extern BOOL
EMFDRV_PolyPolyline( DC
*dc
, const POINT
* pt
,
88 const DWORD
* counts
, DWORD polys
);
89 extern BOOL
EMFDRV_Polygon( DC
*dc
, const POINT
* pt
, INT count
);
90 extern BOOL
EMFDRV_Polyline( DC
*dc
, const POINT
* pt
,INT count
);
91 extern BOOL
EMFDRV_Rectangle( DC
*dc
, INT left
, INT top
,
92 INT right
, INT bottom
);
93 extern BOOL
EMFDRV_RestoreDC( DC
*dc
, INT level
);
94 extern BOOL
EMFDRV_RoundRect( DC
*dc
, INT left
, INT top
,
95 INT right
, INT bottom
, INT ell_width
,
97 extern INT
EMFDRV_SaveDC( DC
*dc
);
98 extern BOOL
EMFDRV_ScaleViewportExt( DC
*dc
, INT xNum
,
99 INT xDenom
, INT yNum
, INT yDenom
);
100 extern BOOL
EMFDRV_ScaleWindowExt( DC
*dc
, INT xNum
, INT xDenom
,
101 INT yNum
, INT yDenom
);
102 extern BOOL
EMFDRV_SelectClipPath( DC
*dc
, INT iMode
);
103 extern HGDIOBJ
EMFDRV_SelectObject( DC
*dc
, HGDIOBJ handle
);
104 extern COLORREF
EMFDRV_SetBkColor( DC
*dc
, COLORREF color
);
105 extern INT
EMFDRV_SetBkMode( DC
*dc
, INT mode
);
106 extern INT
EMFDRV_SetDIBitsToDevice( DC
*dc
, INT xDest
, INT yDest
,
107 DWORD cx
, DWORD cy
, INT xSrc
,
108 INT ySrc
, UINT startscan
, UINT lines
,
109 LPCVOID bits
, const BITMAPINFO
*info
,
111 extern INT
EMFDRV_SetMapMode( DC
*dc
, INT mode
);
112 extern DWORD
EMFDRV_SetMapperFlags( DC
*dc
, DWORD flags
);
113 extern COLORREF
EMFDRV_SetPixel( DC
*dc
, INT x
, INT y
, COLORREF color
);
114 extern INT
EMFDRV_SetPolyFillMode( DC
*dc
, INT mode
);
115 extern INT
EMFDRV_SetROP2( DC
*dc
, INT rop
);
116 extern INT
EMFDRV_SetStretchBltMode( DC
*dc
, INT mode
);
117 extern UINT
EMFDRV_SetTextAlign( DC
*dc
, UINT align
);
118 extern COLORREF
EMFDRV_SetTextColor( DC
*dc
, COLORREF color
);
119 extern BOOL
EMFDRV_SetViewportExt( DC
*dc
, INT x
, INT y
);
120 extern BOOL
EMFDRV_SetViewportOrg( DC
*dc
, INT x
, INT y
);
121 extern BOOL
EMFDRV_SetWindowExt( DC
*dc
, INT x
, INT y
);
122 extern BOOL
EMFDRV_SetWindowOrg( DC
*dc
, INT x
, INT y
);
123 extern BOOL
EMFDRV_StretchBlt( DC
*dcDst
, INT xDst
, INT yDst
,
124 INT widthDst
, INT heightDst
,
125 DC
*dcSrc
, INT xSrc
, INT ySrc
,
126 INT widthSrc
, INT heightSrc
, DWORD rop
);
127 extern INT
EMFDRV_StretchDIBits( DC
*dc
, INT xDst
, INT yDst
, INT widthDst
,
128 INT heightDst
, INT xSrc
, INT ySrc
,
129 INT widthSrc
, INT heightSrc
,
130 const void *bits
, const BITMAPINFO
*info
,
131 UINT wUsage
, DWORD dwRop
);
132 extern BOOL
EMFDRV_StrokeAndFillPath( DC
*dc
);
133 extern BOOL
EMFDRV_StrokePath( DC
*dc
);
134 extern BOOL
EMFDRV_WidenPath( DC
*dc
);
137 #endif /* __WINE_METAFILEDRV_H */