2 * Enhanced MetaFile driver dc value functions
4 * Copyright 1999 Huw D M Davies
7 #include "enhmetafiledrv.h"
9 INT EMFDRV_SaveDC( DC *dc )
12 emr.emr.iType = EMR_SAVEDC;
13 emr.emr.nSize = sizeof(emr);
14 return EMFDRV_WriteRecord( dc, &emr.emr );
17 BOOL EMFDRV_RestoreDC( DC *dc, INT level )
20 emr.emr.iType = EMR_RESTOREDC;
21 emr.emr.nSize = sizeof(emr);
22 emr.iRelative = level;
23 return EMFDRV_WriteRecord( dc, &emr.emr );
26 UINT EMFDRV_SetTextAlign( DC *dc, UINT align )
29 emr.emr.iType = EMR_SETTEXTALIGN;
30 emr.emr.nSize = sizeof(emr);
32 return EMFDRV_WriteRecord( dc, &emr.emr );
35 INT EMFDRV_SetBkMode( DC *dc, INT mode )
38 emr.emr.iType = EMR_SETBKMODE;
39 emr.emr.nSize = sizeof(emr);
41 return EMFDRV_WriteRecord( dc, &emr.emr );
44 INT EMFDRV_SetROP2( DC *dc, INT rop )
47 emr.emr.iType = EMR_SETROP2;
48 emr.emr.nSize = sizeof(emr);
50 return EMFDRV_WriteRecord( dc, &emr.emr );
53 INT EMFDRV_SetPolyFillMode( DC *dc, INT mode )
55 EMRSETPOLYFILLMODE emr;
56 emr.emr.iType = EMR_SETPOLYFILLMODE;
57 emr.emr.nSize = sizeof(emr);
59 return EMFDRV_WriteRecord( dc, &emr.emr );
62 INT EMFDRV_SetStretchBltMode( DC *dc, INT mode )
64 EMRSETSTRETCHBLTMODE emr;
65 emr.emr.iType = EMR_SETSTRETCHBLTMODE;
66 emr.emr.nSize = sizeof(emr);
68 return EMFDRV_WriteRecord( dc, &emr.emr );
71 INT EMFDRV_SetMapMode( DC *dc, INT mode )
74 emr.emr.iType = EMR_SETMAPMODE;
75 emr.emr.nSize = sizeof(emr);
77 return EMFDRV_WriteRecord( dc, &emr.emr );
80 INT EMFDRV_ExcludeClipRect( DC *dc, INT left, INT top, INT right, INT bottom )
82 EMREXCLUDECLIPRECT emr;
83 emr.emr.iType = EMR_EXCLUDECLIPRECT;
84 emr.emr.nSize = sizeof(emr);
85 emr.rclClip.left = left;
86 emr.rclClip.top = top;
87 emr.rclClip.right = right;
88 emr.rclClip.bottom = bottom;
89 return EMFDRV_WriteRecord( dc, &emr.emr );
92 INT EMFDRV_IntersectClipRect( DC *dc, INT left, INT top, INT right, INT bottom)
94 EMRINTERSECTCLIPRECT emr;
95 emr.emr.iType = EMR_INTERSECTCLIPRECT;
96 emr.emr.nSize = sizeof(emr);
97 emr.rclClip.left = left;
98 emr.rclClip.top = top;
99 emr.rclClip.right = right;
100 emr.rclClip.bottom = bottom;
101 return EMFDRV_WriteRecord( dc, &emr.emr );
104 INT EMFDRV_OffsetClipRgn( DC *dc, INT x, INT y )
106 EMROFFSETCLIPRGN emr;
107 emr.emr.iType = EMR_OFFSETCLIPRGN;
108 emr.emr.nSize = sizeof(emr);
111 return EMFDRV_WriteRecord( dc, &emr.emr );
114 DWORD EMFDRV_SetMapperFlags( DC *dc, DWORD flags )
116 EMRSETMAPPERFLAGS emr;
118 emr.emr.iType = EMR_SETMAPPERFLAGS;
119 emr.emr.nSize = sizeof(emr);
122 return EMFDRV_WriteRecord( dc, &emr.emr );