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
31 /* Enhanced Metafile driver physical DC */
37 ENHMETAHEADER
*emh
; /* Pointer to enhanced metafile header */
38 UINT nextHandle
; /* Next handle number */
39 HANDLE hFile
; /* Handle for disk based MetaFile */
41 INT horzsize
, vertsize
;
42 INT logpixelsx
, logpixelsy
;
51 extern BOOL
EMFDRV_WriteRecord( PHYSDEV dev
, EMR
*emr
);
52 extern int EMFDRV_AddHandleDC( PHYSDEV dev
);
53 extern void EMFDRV_UpdateBBox( PHYSDEV dev
, RECTL
*rect
);
54 extern DWORD
EMFDRV_CreateBrushIndirect( PHYSDEV dev
, HBRUSH hBrush
);
56 /* Metafile driver functions */
57 extern BOOL
EMFDRV_AbortPath( PHYSDEV dev
);
58 extern BOOL
EMFDRV_Arc( PHYSDEV dev
, INT left
, INT top
, INT right
,
59 INT bottom
, INT xstart
, INT ystart
, INT xend
,
61 extern BOOL
EMFDRV_BeginPath( PHYSDEV dev
);
62 extern BOOL
EMFDRV_BitBlt( PHYSDEV devDst
, INT xDst
, INT yDst
,
63 INT width
, INT height
, PHYSDEV devSrc
,
64 INT xSrc
, INT ySrc
, DWORD rop
);
65 extern BOOL
EMFDRV_Chord( PHYSDEV dev
, INT left
, INT top
, INT right
,
66 INT bottom
, INT xstart
, INT ystart
, INT xend
,
68 extern BOOL
EMFDRV_CloseFigure( PHYSDEV dev
);
69 extern BOOL
EMFDRV_Ellipse( PHYSDEV dev
, INT left
, INT top
,
70 INT right
, INT bottom
);
71 extern BOOL
EMFDRV_EndPath( PHYSDEV dev
);
72 extern INT
EMFDRV_ExcludeClipRect( PHYSDEV dev
, INT left
, INT top
, INT right
, INT bottom
);
73 extern BOOL
EMFDRV_ExtFloodFill( PHYSDEV dev
, INT x
, INT y
, COLORREF color
, UINT fillType
);
74 extern INT
EMFDRV_ExtSelectClipRgn( PHYSDEV dev
, HRGN hrgn
, INT mode
);
75 extern BOOL
EMFDRV_ExtTextOut( PHYSDEV dev
, INT x
, INT y
,
76 UINT flags
, const RECT
*lprect
, LPCWSTR str
,
77 UINT count
, const INT
*lpDx
);
78 extern BOOL
EMFDRV_FillPath( PHYSDEV dev
);
79 extern BOOL
EMFDRV_FillRgn( PHYSDEV dev
, HRGN hrgn
, HBRUSH hbrush
);
80 extern BOOL
EMFDRV_FlattenPath( PHYSDEV dev
);
81 extern BOOL
EMFDRV_FrameRgn( PHYSDEV dev
, HRGN hrgn
, HBRUSH hbrush
, INT width
,
83 extern BOOL
EMFDRV_GdiComment( PHYSDEV dev
, UINT bytes
, CONST BYTE
*buffer
);
84 extern INT
EMFDRV_GetDeviceCaps( PHYSDEV dev
, INT cap
);
85 extern INT
EMFDRV_IntersectClipRect( PHYSDEV dev
, INT left
, INT top
, INT right
,
87 extern BOOL
EMFDRV_InvertRgn( PHYSDEV dev
, HRGN hrgn
);
88 extern BOOL
EMFDRV_LineTo( PHYSDEV dev
, INT x
, INT y
);
89 extern BOOL
EMFDRV_ModifyWorldTransform( PHYSDEV dev
, const XFORM
*xform
, INT mode
);
90 extern BOOL
EMFDRV_MoveTo( PHYSDEV dev
, INT x
, INT y
);
91 extern INT
EMFDRV_OffsetClipRgn( PHYSDEV dev
, INT x
, INT y
);
92 extern INT
EMFDRV_OffsetViewportOrg( PHYSDEV dev
, INT x
, INT y
);
93 extern INT
EMFDRV_OffsetWindowOrg( PHYSDEV dev
, INT x
, INT y
);
94 extern BOOL
EMFDRV_PaintRgn( PHYSDEV dev
, HRGN hrgn
);
95 extern BOOL
EMFDRV_PatBlt( PHYSDEV dev
, INT left
, INT top
,
96 INT width
, INT height
, DWORD rop
);
97 extern BOOL
EMFDRV_Pie( PHYSDEV dev
, INT left
, INT top
, INT right
,
98 INT bottom
, INT xstart
, INT ystart
, INT xend
,
100 extern BOOL
EMFDRV_PolyPolygon( PHYSDEV dev
, const POINT
* pt
,
101 const INT
* counts
, UINT polys
);
102 extern BOOL
EMFDRV_PolyPolyline( PHYSDEV dev
, const POINT
* pt
,
103 const DWORD
* counts
, DWORD polys
);
104 extern BOOL
EMFDRV_Polygon( PHYSDEV dev
, const POINT
* pt
, INT count
);
105 extern BOOL
EMFDRV_Polyline( PHYSDEV dev
, const POINT
* pt
,INT count
);
106 extern BOOL
EMFDRV_Rectangle( PHYSDEV dev
, INT left
, INT top
,
107 INT right
, INT bottom
);
108 extern BOOL
EMFDRV_RestoreDC( PHYSDEV dev
, INT level
);
109 extern BOOL
EMFDRV_RoundRect( PHYSDEV dev
, INT left
, INT top
,
110 INT right
, INT bottom
, INT ell_width
,
112 extern INT
EMFDRV_SaveDC( PHYSDEV dev
);
113 extern INT
EMFDRV_ScaleViewportExt( PHYSDEV dev
, INT xNum
,
114 INT xDenom
, INT yNum
, INT yDenom
);
115 extern INT
EMFDRV_ScaleWindowExt( PHYSDEV dev
, INT xNum
, INT xDenom
,
116 INT yNum
, INT yDenom
);
117 extern HBITMAP
EMFDRV_SelectBitmap( PHYSDEV dev
, HBITMAP handle
);
118 extern HBRUSH
EMFDRV_SelectBrush( PHYSDEV dev
, HBRUSH handle
);
119 extern BOOL
EMFDRV_SelectClipPath( PHYSDEV dev
, INT iMode
);
120 extern HFONT
EMFDRV_SelectFont( PHYSDEV dev
, HFONT handle
);
121 extern HPEN
EMFDRV_SelectPen( PHYSDEV dev
, HPEN handle
);
122 extern COLORREF
EMFDRV_SetBkColor( PHYSDEV dev
, COLORREF color
);
123 extern INT
EMFDRV_SetBkMode( PHYSDEV dev
, INT mode
);
124 extern INT
EMFDRV_SetDIBitsToDevice( PHYSDEV dev
, INT xDest
, INT yDest
,
125 DWORD cx
, DWORD cy
, INT xSrc
,
126 INT ySrc
, UINT startscan
, UINT lines
,
127 LPCVOID bits
, const BITMAPINFO
*info
,
129 extern INT
EMFDRV_SetMapMode( PHYSDEV dev
, INT mode
);
130 extern DWORD
EMFDRV_SetMapperFlags( PHYSDEV dev
, DWORD flags
);
131 extern COLORREF
EMFDRV_SetPixel( PHYSDEV dev
, INT x
, INT y
, COLORREF color
);
132 extern INT
EMFDRV_SetPolyFillMode( PHYSDEV dev
, INT mode
);
133 extern INT
EMFDRV_SetROP2( PHYSDEV dev
, INT rop
);
134 extern INT
EMFDRV_SetStretchBltMode( PHYSDEV dev
, INT mode
);
135 extern UINT
EMFDRV_SetTextAlign( PHYSDEV dev
, UINT align
);
136 extern COLORREF
EMFDRV_SetTextColor( PHYSDEV dev
, COLORREF color
);
137 extern INT
EMFDRV_SetViewportExt( PHYSDEV dev
, INT x
, INT y
);
138 extern INT
EMFDRV_SetViewportOrg( PHYSDEV dev
, INT x
, INT y
);
139 extern INT
EMFDRV_SetWindowExt( PHYSDEV dev
, INT x
, INT y
);
140 extern INT
EMFDRV_SetWindowOrg( PHYSDEV dev
, INT x
, INT y
);
141 extern BOOL
EMFDRV_SetWorldTransform( PHYSDEV dev
, const XFORM
*xform
);
142 extern BOOL
EMFDRV_StretchBlt( PHYSDEV devDst
, INT xDst
, INT yDst
,
143 INT widthDst
, INT heightDst
,
144 PHYSDEV devSrc
, INT xSrc
, INT ySrc
,
145 INT widthSrc
, INT heightSrc
, DWORD rop
);
146 extern INT
EMFDRV_StretchDIBits( PHYSDEV dev
, INT xDst
, INT yDst
, INT widthDst
,
147 INT heightDst
, INT xSrc
, INT ySrc
,
148 INT widthSrc
, INT heightSrc
,
149 const void *bits
, const BITMAPINFO
*info
,
150 UINT wUsage
, DWORD dwRop
);
151 extern BOOL
EMFDRV_StrokeAndFillPath( PHYSDEV dev
);
152 extern BOOL
EMFDRV_StrokePath( PHYSDEV dev
);
153 extern BOOL
EMFDRV_WidenPath( PHYSDEV dev
);
156 #endif /* __WINE_METAFILEDRV_H */