Avoid buffer overflows in builtin dll loading (with the help of Dmitry
[wine/multimedia.git] / include / enhmetafiledrv.h
blob303e376802dca76d4cd6c338d5100028f02a485b
1 /*
2 * Enhanced MetaFile driver definitions
3 */
5 #ifndef __WINE_ENHMETAFILEDRV_H
6 #define __WINE_ENHMETAFILEDRV_H
8 #include "windef.h"
9 #include "wingdi.h"
10 #include "gdi.h"
12 /* Enhanced Metafile driver physical DC */
14 typedef struct
16 ENHMETAHEADER *emh; /* Pointer to enhanced metafile header */
17 UINT nextHandle; /* Next handle number */
18 HFILE hFile; /* HFILE for disk based MetaFile */
19 } EMFDRV_PDEVICE;
22 extern BOOL EMFDRV_WriteRecord( DC *dc, EMR *emr );
23 extern int EMFDRV_AddHandleDC( DC *dc );
24 extern void EMFDRV_UpdateBBox( DC *dc, RECTL *rect );
25 extern DWORD EMFDRV_CreateBrushIndirect( DC *dc, HBRUSH hBrush );
27 /* Metafile driver functions */
28 extern BOOL EMFDRV_AbortPath( DC *dc );
29 extern BOOL EMFDRV_Arc( DC *dc, INT left, INT top, INT right,
30 INT bottom, INT xstart, INT ystart, INT xend,
31 INT yend );
32 extern BOOL EMFDRV_BeginPath( DC *dc );
33 extern BOOL EMFDRV_BitBlt( DC *dcDst, INT xDst, INT yDst,
34 INT width, INT height, DC *dcSrc,
35 INT xSrc, INT ySrc, DWORD rop );
36 extern BOOL EMFDRV_Chord( DC *dc, INT left, INT top, INT right,
37 INT bottom, INT xstart, INT ystart, INT xend,
38 INT yend );
39 extern BOOL EMFDRV_CloseFigure( DC *dc );
40 extern BOOL EMFDRV_Ellipse( DC *dc, INT left, INT top,
41 INT right, INT bottom );
42 extern BOOL EMFDRV_EndPath( DC *dc );
43 extern INT EMFDRV_ExcludeClipRect( DC *dc, INT left, INT top, INT right,
44 INT bottom );
45 extern BOOL EMFDRV_ExtFloodFill( DC *dc, INT x, INT y,
46 COLORREF color, UINT fillType );
47 extern BOOL EMFDRV_ExtTextOut( DC *dc, INT x, INT y,
48 UINT flags, const RECT *lprect, LPCSTR str,
49 UINT count, const INT *lpDx );
50 extern BOOL EMFDRV_FillPath( DC *dc );
51 extern BOOL EMFDRV_FillRgn( DC *dc, HRGN hrgn, HBRUSH hbrush );
52 extern BOOL EMFDRV_FlattenPath( DC *dc );
53 extern BOOL EMFDRV_FrameRgn( DC *dc, HRGN hrgn, HBRUSH hbrush, INT width,
54 INT height );
55 extern INT EMFDRV_IntersectClipRect( DC *dc, INT left, INT top, INT right,
56 INT bottom );
57 extern BOOL EMFDRV_InvertRgn( DC *dc, HRGN hrgn );
58 extern BOOL EMFDRV_LineTo( DC *dc, INT x, INT y );
59 extern BOOL EMFDRV_MoveToEx( DC *dc, INT x, INT y, LPPOINT pt);
60 extern INT EMFDRV_OffsetClipRgn( DC *dc, INT x, INT y );
61 extern BOOL EMFDRV_OffsetViewportOrg( DC *dc, INT x, INT y );
62 extern BOOL EMFDRV_OffsetWindowOrg( DC *dc, INT x, INT y );
63 extern BOOL EMFDRV_PaintRgn( DC *dc, HRGN hrgn );
64 extern BOOL EMFDRV_PatBlt( DC *dc, INT left, INT top,
65 INT width, INT height, DWORD rop );
66 extern BOOL EMFDRV_Pie( DC *dc, INT left, INT top, INT right,
67 INT bottom, INT xstart, INT ystart, INT xend,
68 INT yend );
69 extern BOOL EMFDRV_PolyPolygon( DC *dc, const POINT* pt,
70 const INT* counts, UINT polys);
71 extern BOOL EMFDRV_PolyPolyline( DC *dc, const POINT* pt,
72 const DWORD* counts, DWORD polys);
73 extern BOOL EMFDRV_Polygon( DC *dc, const POINT* pt, INT count );
74 extern BOOL EMFDRV_Polyline( DC *dc, const POINT* pt,INT count);
75 extern BOOL EMFDRV_Rectangle( DC *dc, INT left, INT top,
76 INT right, INT bottom);
77 extern BOOL EMFDRV_RestoreDC( DC *dc, INT level );
78 extern BOOL EMFDRV_RoundRect( DC *dc, INT left, INT top,
79 INT right, INT bottom, INT ell_width,
80 INT ell_height );
81 extern INT EMFDRV_SaveDC( DC *dc );
82 extern BOOL EMFDRV_ScaleViewportExt( DC *dc, INT xNum,
83 INT xDenom, INT yNum, INT yDenom );
84 extern BOOL EMFDRV_ScaleWindowExt( DC *dc, INT xNum, INT xDenom,
85 INT yNum, INT yDenom );
86 extern BOOL EMFDRV_SelectClipPath( DC *dc, INT iMode );
87 extern HGDIOBJ EMFDRV_SelectObject( DC *dc, HGDIOBJ handle );
88 extern COLORREF EMFDRV_SetBkColor( DC *dc, COLORREF color );
89 extern INT EMFDRV_SetBkMode( DC *dc, INT mode );
90 extern INT EMFDRV_SetDIBitsToDevice( DC *dc, INT xDest, INT yDest,
91 DWORD cx, DWORD cy, INT xSrc,
92 INT ySrc, UINT startscan, UINT lines,
93 LPCVOID bits, const BITMAPINFO *info,
94 UINT coloruse );
95 extern INT EMFDRV_SetMapMode( DC *dc, INT mode );
96 extern DWORD EMFDRV_SetMapperFlags( DC *dc, DWORD flags );
97 extern COLORREF EMFDRV_SetPixel( DC *dc, INT x, INT y, COLORREF color );
98 extern INT EMFDRV_SetPolyFillMode( DC *dc, INT mode );
99 extern INT EMFDRV_SetROP2( DC *dc, INT rop );
100 extern INT EMFDRV_SetStretchBltMode( DC *dc, INT mode );
101 extern UINT EMFDRV_SetTextAlign( DC *dc, UINT align );
102 extern COLORREF EMFDRV_SetTextColor( DC *dc, COLORREF color );
103 extern BOOL EMFDRV_SetViewportExt( DC *dc, INT x, INT y );
104 extern BOOL EMFDRV_SetViewportOrg( DC *dc, INT x, INT y );
105 extern BOOL EMFDRV_SetWindowExt( DC *dc, INT x, INT y );
106 extern BOOL EMFDRV_SetWindowOrg( DC *dc, INT x, INT y );
107 extern BOOL EMFDRV_StretchBlt( DC *dcDst, INT xDst, INT yDst,
108 INT widthDst, INT heightDst,
109 DC *dcSrc, INT xSrc, INT ySrc,
110 INT widthSrc, INT heightSrc, DWORD rop );
111 extern INT EMFDRV_StretchDIBits( DC *dc, INT xDst, INT yDst, INT widthDst,
112 INT heightDst, INT xSrc, INT ySrc,
113 INT widthSrc, INT heightSrc,
114 const void *bits, const BITMAPINFO *info,
115 UINT wUsage, DWORD dwRop );
116 extern BOOL EMFDRV_StrokeAndFillPath( DC *dc );
117 extern BOOL EMFDRV_StrokePath( DC *dc );
118 extern BOOL EMFDRV_WidenPath( DC *dc );
121 #endif /* __WINE_METAFILEDRV_H */