blob: d62f4228a9c81292a742e671e8e9944c7f44c802 [file] [log] [blame]
Alexandre Julliardbf9130a1996-10-13 17:45:47 +00001/*
2 * Metafile driver definitions
3 */
4
5#ifndef __WINE_METAFILEDRV_H
6#define __WINE_METAFILEDRV_H
7
8#include "windows.h"
9#include "gdi.h"
10
11/* FIXME: SDK docs says these should be 1 and 2 */
Alexandre Julliard54c27111998-03-29 19:44:57 +000012/* DR 980322: most wmf's have 1, so I think 0 and 1 is correct */
Alexandre Julliardbf9130a1996-10-13 17:45:47 +000013#define METAFILE_MEMORY 0
14#define METAFILE_DISK 1
15
16/* Metafile driver physical DC */
Alexandre Julliard75d86e11996-11-17 18:59:11 +000017
Alexandre Julliardbf9130a1996-10-13 17:45:47 +000018typedef struct
19{
20 METAHEADER *mh; /* Pointer to metafile header */
21 UINT32 nextHandle; /* Next handle number */
22} METAFILEDRV_PDEVICE;
23
Alexandre Julliard75d86e11996-11-17 18:59:11 +000024
25/* Metafile driver functions */
26
27extern BOOL32 MFDRV_BitBlt( struct tagDC *dcDst, INT32 xDst, INT32 yDst,
28 INT32 width, INT32 height, struct tagDC *dcSrc,
29 INT32 xSrc, INT32 ySrc, DWORD rop );
30extern BOOL32 MFDRV_PatBlt( struct tagDC *dc, INT32 left, INT32 top,
31 INT32 width, INT32 height, DWORD rop );
32extern BOOL32 MFDRV_StretchBlt( struct tagDC *dcDst, INT32 xDst, INT32 yDst,
33 INT32 widthDst, INT32 heightDst,
34 struct tagDC *dcSrc, INT32 xSrc, INT32 ySrc,
35 INT32 widthSrc, INT32 heightSrc, DWORD rop );
Alexandre Julliard7ebe1a41996-12-22 18:27:48 +000036extern INT32 MFDRV_SetMapMode( struct tagDC *dc, INT32 mode );
37extern BOOL32 MFDRV_SetViewportExt( struct tagDC *dc, INT32 x, INT32 y );
38extern BOOL32 MFDRV_SetViewportOrg( struct tagDC *dc, INT32 x, INT32 y );
39extern BOOL32 MFDRV_SetWindowExt( struct tagDC *dc, INT32 x, INT32 y );
40extern BOOL32 MFDRV_SetWindowOrg( struct tagDC *dc, INT32 x, INT32 y );
41extern BOOL32 MFDRV_OffsetViewportOrg( struct tagDC *dc, INT32 x, INT32 y );
42extern BOOL32 MFDRV_OffsetWindowOrg( struct tagDC *dc, INT32 x, INT32 y );
43extern BOOL32 MFDRV_ScaleViewportExt( struct tagDC *dc, INT32 xNum,
44 INT32 xDenom, INT32 yNum, INT32 yDenom );
45extern BOOL32 MFDRV_ScaleWindowExt( struct tagDC *dc, INT32 xNum, INT32 xDenom,
46 INT32 yNum, INT32 yDenom );
Alexandre Julliardc6c09441997-01-12 18:32:19 +000047extern BOOL32 MFDRV_MoveToEx(struct tagDC *dc, INT32 x, INT32 y, LPPOINT32 pt);
48extern BOOL32 MFDRV_LineTo( struct tagDC *dc, INT32 x, INT32 y );
49extern BOOL32 MFDRV_Arc( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
50 INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
51 INT32 yend );
52extern BOOL32 MFDRV_Pie( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
53 INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
54 INT32 yend );
55extern BOOL32 MFDRV_Chord( struct tagDC *dc, INT32 left, INT32 top, INT32 right,
56 INT32 bottom, INT32 xstart, INT32 ystart, INT32 xend,
57 INT32 yend );
58extern BOOL32 MFDRV_Ellipse( struct tagDC *dc, INT32 left, INT32 top,
59 INT32 right, INT32 bottom );
60extern BOOL32 MFDRV_Rectangle( struct tagDC *dc, INT32 left, INT32 top,
61 INT32 right, INT32 bottom);
62extern BOOL32 MFDRV_RoundRect( struct tagDC *dc, INT32 left, INT32 top,
63 INT32 right, INT32 bottom, INT32 ell_width,
64 INT32 ell_height );
65extern COLORREF MFDRV_SetPixel( struct tagDC *dc, INT32 x, INT32 y, COLORREF color );
François Gouget241c7301998-10-28 10:47:09 +000066extern BOOL32 MFDRV_Polyline( struct tagDC *dc, const POINT32* pt,INT32 count);
67extern BOOL32 MFDRV_Polygon( struct tagDC *dc, const POINT32* pt, INT32 count );
68extern BOOL32 MFDRV_PolyPolygon( struct tagDC *dc, const POINT32* pt, const INT32* counts,
Alexandre Julliardc6c09441997-01-12 18:32:19 +000069 UINT32 polygons);
Alexandre Julliard349a9531997-02-02 19:01:52 +000070extern HGDIOBJ32 MFDRV_SelectObject( DC *dc, HGDIOBJ32 handle );
Alexandre Julliarda0d77311998-09-13 16:32:00 +000071extern COLORREF MFDRV_SetBkColor( DC *dc, COLORREF color );
72extern COLORREF MFDRV_SetTextColor( DC *dc, COLORREF color );
Alexandre Julliardc6c09441997-01-12 18:32:19 +000073extern BOOL32 MFDRV_ExtFloodFill( struct tagDC *dc, INT32 x, INT32 y,
74 COLORREF color, UINT32 fillType );
75extern BOOL32 MFDRV_ExtTextOut( struct tagDC *dc, INT32 x, INT32 y,
76 UINT32 flags, const RECT32 *lprect, LPCSTR str,
77 UINT32 count, const INT32 *lpDx );
Alexandre Julliard0623a6f1998-01-18 18:01:49 +000078extern BOOL32 MFDRV_PaintRgn( DC *dc, HRGN32 hrgn );
Alexandre Julliard75d86e11996-11-17 18:59:11 +000079
Alexandre Julliardbf9130a1996-10-13 17:45:47 +000080#endif /* __WINE_METAFILEDRV_H */