2 * Metafile driver definitions
4 * Copyright 1996 Alexandre Julliard
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_METAFILEDRV_H
22 #define __WINE_METAFILEDRV_H
28 /* Metafile driver physical DC */
34 METAHEADER
*mh
; /* Pointer to metafile header */
35 UINT nextHandle
; /* Next handle number */
36 HANDLE hFile
; /* Handle for disk based MetaFile */
37 } METAFILEDRV_PDEVICE
;
40 extern BOOL
MFDRV_MetaParam0(PHYSDEV dev
, short func
);
41 extern BOOL
MFDRV_MetaParam1(PHYSDEV dev
, short func
, short param1
);
42 extern BOOL
MFDRV_MetaParam2(PHYSDEV dev
, short func
, short param1
, short param2
);
43 extern BOOL
MFDRV_MetaParam4(PHYSDEV dev
, short func
, short param1
, short param2
,
44 short param3
, short param4
);
45 extern BOOL
MFDRV_MetaParam6(PHYSDEV dev
, short func
, short param1
, short param2
,
46 short param3
, short param4
, short param5
,
48 extern BOOL
MFDRV_MetaParam8(PHYSDEV dev
, short func
, short param1
, short param2
,
49 short param3
, short param4
, short param5
,
50 short param6
, short param7
, short param8
);
51 extern BOOL
MFDRV_WriteRecord(PHYSDEV dev
, METARECORD
*mr
, DWORD rlen
);
52 extern int MFDRV_AddHandleDC( PHYSDEV dev
);
53 extern INT16
MFDRV_CreateBrushIndirect( PHYSDEV dev
, HBRUSH hBrush
);
55 /* Metafile driver functions */
57 extern BOOL
MFDRV_AbortPath( PHYSDEV dev
);
58 extern BOOL
MFDRV_Arc( PHYSDEV dev
, INT left
, INT top
, INT right
, INT bottom
,
59 INT xstart
, INT ystart
, INT xend
, INT yend
);
60 extern BOOL
MFDRV_BeginPath( PHYSDEV dev
);
61 extern BOOL
MFDRV_BitBlt( PHYSDEV devDst
, INT xDst
, INT yDst
, INT width
,
62 INT height
, PHYSDEV devSrc
, INT xSrc
, INT ySrc
,
64 extern BOOL
MFDRV_Chord( PHYSDEV dev
, INT left
, INT top
, INT right
,
65 INT bottom
, INT xstart
, INT ystart
, INT xend
,
67 extern BOOL
MFDRV_CloseFigure( PHYSDEV dev
);
68 extern BOOL
MFDRV_Ellipse( PHYSDEV dev
, INT left
, INT top
,
69 INT right
, INT bottom
);
70 extern BOOL
MFDRV_EndPath( PHYSDEV dev
);
71 extern INT
MFDRV_ExcludeClipRect( PHYSDEV dev
, INT left
, INT top
, INT right
, INT
73 extern INT
MFDRV_ExtEscape( PHYSDEV dev
, INT nEscape
, INT cbInput
, LPCVOID in_data
,
74 INT cbOutput
, LPVOID out_data
);
75 extern BOOL
MFDRV_ExtFloodFill( PHYSDEV dev
, INT x
, INT y
, COLORREF color
, UINT fillType
);
76 extern INT
MFDRV_ExtSelectClipRgn( PHYSDEV dev
, HRGN hrgn
, INT mode
);
77 extern BOOL
MFDRV_ExtTextOut( PHYSDEV dev
, INT x
, INT y
,
78 UINT flags
, const RECT
*lprect
, LPCWSTR str
,
79 UINT count
, const INT
*lpDx
);
80 extern BOOL
MFDRV_FillPath( PHYSDEV dev
);
81 extern BOOL
MFDRV_FillRgn( PHYSDEV dev
, HRGN hrgn
, HBRUSH hbrush
);
82 extern BOOL
MFDRV_FlattenPath( PHYSDEV dev
);
83 extern BOOL
MFDRV_FrameRgn( PHYSDEV dev
, HRGN hrgn
, HBRUSH hbrush
, INT x
, INT y
);
84 extern INT
MFDRV_GetDeviceCaps( PHYSDEV dev
, INT cap
);
85 extern INT
MFDRV_IntersectClipRect( PHYSDEV dev
, INT left
, INT top
, INT right
, INT
87 extern BOOL
MFDRV_InvertRgn( PHYSDEV dev
, HRGN hrgn
);
88 extern BOOL
MFDRV_LineTo( PHYSDEV dev
, INT x
, INT y
);
89 extern BOOL
MFDRV_MoveTo( PHYSDEV dev
, INT x
, INT y
);
90 extern INT
MFDRV_OffsetClipRgn( PHYSDEV dev
, INT x
, INT y
);
91 extern INT
MFDRV_OffsetViewportOrg( PHYSDEV dev
, INT x
, INT y
);
92 extern INT
MFDRV_OffsetWindowOrg( PHYSDEV dev
, INT x
, INT y
);
93 extern BOOL
MFDRV_PaintRgn( PHYSDEV dev
, HRGN hrgn
);
94 extern BOOL
MFDRV_PatBlt( PHYSDEV dev
, INT left
, INT top
, INT width
, INT height
,
96 extern BOOL
MFDRV_Pie( PHYSDEV dev
, INT left
, INT top
, INT right
,
97 INT bottom
, INT xstart
, INT ystart
, INT xend
,
99 extern BOOL
MFDRV_PolyBezier( PHYSDEV dev
, const POINT
* pt
, DWORD count
);
100 extern BOOL
MFDRV_PolyBezierTo( PHYSDEV dev
, const POINT
* pt
, DWORD count
);
101 extern BOOL
MFDRV_PolyPolygon( PHYSDEV dev
, const POINT
* pt
, const INT
* counts
,
103 extern BOOL
MFDRV_Polygon( PHYSDEV dev
, const POINT
* pt
, INT count
);
104 extern BOOL
MFDRV_Polyline( PHYSDEV dev
, const POINT
* pt
,INT count
);
105 extern BOOL
MFDRV_Rectangle( PHYSDEV dev
, INT left
, INT top
,
106 INT right
, INT bottom
);
107 extern BOOL
MFDRV_RestoreDC( PHYSDEV dev
, INT level
);
108 extern BOOL
MFDRV_RoundRect( PHYSDEV dev
, INT left
, INT top
,
109 INT right
, INT bottom
, INT ell_width
,
111 extern INT
MFDRV_SaveDC( PHYSDEV dev
);
112 extern INT
MFDRV_ScaleViewportExt( PHYSDEV dev
, INT xNum
, INT xDenom
, INT yNum
,
114 extern INT
MFDRV_ScaleWindowExt( PHYSDEV dev
, INT xNum
, INT xDenom
, INT yNum
,
116 extern HBITMAP
MFDRV_SelectBitmap( PHYSDEV dev
, HBITMAP handle
);
117 extern HBRUSH
MFDRV_SelectBrush( PHYSDEV dev
, HBRUSH handle
);
118 extern BOOL
MFDRV_SelectClipPath( PHYSDEV dev
, INT iMode
);
119 extern HFONT
MFDRV_SelectFont( PHYSDEV dev
, HFONT handle
);
120 extern HPEN
MFDRV_SelectPen( PHYSDEV dev
, HPEN handle
);
121 extern COLORREF
MFDRV_SetBkColor( PHYSDEV dev
, COLORREF color
);
122 extern INT
MFDRV_SetBkMode( PHYSDEV dev
, INT mode
);
123 extern INT
MFDRV_SetMapMode( PHYSDEV dev
, INT mode
);
124 extern DWORD
MFDRV_SetMapperFlags( PHYSDEV dev
, DWORD flags
);
125 extern COLORREF
MFDRV_SetPixel( PHYSDEV dev
, INT x
, INT y
, COLORREF color
);
126 extern INT
MFDRV_SetPolyFillMode( PHYSDEV dev
, INT mode
);
127 extern INT
MFDRV_SetROP2( PHYSDEV dev
, INT rop
);
128 extern INT
MFDRV_SetRelAbs( PHYSDEV dev
, INT mode
);
129 extern INT
MFDRV_SetStretchBltMode( PHYSDEV dev
, INT mode
);
130 extern UINT
MFDRV_SetTextAlign( PHYSDEV dev
, UINT align
);
131 extern INT
MFDRV_SetTextCharacterExtra( PHYSDEV dev
, INT extra
);
132 extern COLORREF
MFDRV_SetTextColor( PHYSDEV dev
, COLORREF color
);
133 extern INT
MFDRV_SetTextJustification( PHYSDEV dev
, INT extra
, INT breaks
);
134 extern INT
MFDRV_SetViewportExt( PHYSDEV dev
, INT x
, INT y
);
135 extern INT
MFDRV_SetViewportOrg( PHYSDEV dev
, INT x
, INT y
);
136 extern INT
MFDRV_SetWindowExt( PHYSDEV dev
, INT x
, INT y
);
137 extern INT
MFDRV_SetWindowOrg( PHYSDEV dev
, INT x
, INT y
);
138 extern BOOL
MFDRV_StretchBlt( PHYSDEV devDst
, INT xDst
, INT yDst
, INT widthDst
,
139 INT heightDst
, PHYSDEV devSrc
, INT xSrc
, INT ySrc
,
140 INT widthSrc
, INT heightSrc
, DWORD rop
);
141 extern BOOL
MFDRV_PaintRgn( PHYSDEV dev
, HRGN hrgn
);
142 extern INT
MFDRV_SetDIBitsToDevice( PHYSDEV dev
, INT xDest
, INT yDest
, DWORD cx
,
143 DWORD cy
, INT xSrc
, INT ySrc
,
144 UINT startscan
, UINT lines
, LPCVOID bits
,
145 const BITMAPINFO
*info
, UINT coloruse
);
146 extern INT
MFDRV_StretchDIBits( PHYSDEV dev
, INT xDst
, INT yDst
, INT widthDst
,
147 INT heightDst
, INT xSrc
, INT ySrc
,
148 INT widthSrc
, INT heightSrc
, const void *bits
,
149 const BITMAPINFO
*info
, UINT wUsage
,
151 extern BOOL
MFDRV_StrokeAndFillPath( PHYSDEV dev
);
152 extern BOOL
MFDRV_StrokePath( PHYSDEV dev
);
153 extern BOOL
MFDRV_WidenPath( PHYSDEV dev
);
155 #endif /* __WINE_METAFILEDRV_H */