- Fixed resource functions to work directly from the HMODULE instead of
[wine] / include / enhmetafiledrv.h
1 /*
2  * Enhanced MetaFile driver definitions
3  */
4
5 #ifndef __WINE_ENHMETAFILEDRV_H
6 #define __WINE_ENHMETAFILEDRV_H
7
8 #include "windef.h"
9 #include "wingdi.h"
10 #include "gdi.h"
11
12 /* Enhanced Metafile driver physical DC */
13
14 typedef struct
15 {
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;
20
21
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 );
26
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 );
119
120
121 #endif  /* __WINE_METAFILEDRV_H */
122