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
);