PAN_ANY: Any. PAN_NO_FIT: No fit. PAN_LETT_NORMAL_CONTACT: Normal/contact. PAN_LETT_NORMAL_WEIGHTED: Normal/weighted. PAN_LETT_NORMAL_BOXED: Normal/boxed. PAN_LETT_NORMAL_FLATTENED: Normal/flattened. PAN_LETT_NORMAL_ROUNDED: Normal/rounded. PAN_LETT_NORMAL_OFF_CENTER: Normal/off center. PAN_LETT_NORMAL_SQUARE: Normal/square PAN_LETT_OBLIQUE_CONTACT: Oblique/contact. PAN_LETT_OBLIQUE_WEIGHTED: Oblique/weighted. PAN_LETT_OBLIQUE_BOXED: Oblique/boxed. PAN_LETT_OBLIQUE_FLATTENED: Oblique/flattened. PAN_LETT_OBLIQUE_ROUNDED: Oblique/rounded. PAN_LETT_OBLIQUE_OFF_CENTER: Oblique/off center. PAN_LETT_OBLIQUE_SQUARE: Oblique/square. MapMode Enumeration The MapMode enumeration is used to define the unit of measure for transforming page space units into device space units and for defining the orientation of the drawing axes. typedef enum { MM_TEXT = 0x01, MM_LOMETRIC = 0x02, MM_HIMETRIC = 0x03, MM_LOENGLISH = 0x04, MM_HIENGLISH = 0x05, MM_TWIPS = 0x06, MM_ISOTROPIC = 0x07, MM_ANISOTROPIC = 0x08 } MapMode; MM_TEXT: Each logical unit is mapped to one device pixel. Positive x is to the right; positive y is down. MM_LOMETRIC: Each logical unit is mapped to 0.1 millimeter. Positive x is to the right; positive y is up. MM_HIMETRIC: Each logical unit is mapped to 0.01 millimeter. Positive x is to the right; positive y is up. MM_LOENGLISH: Each logical unit is mapped to 0.01 inch. Positive x is to the right; positive y is up.
Point Enumeration The Point enumeration is used to specify how a point is to be used in a drawing call. typedef enum { PT_CLOSEFIGURE = 0x01, PT_LINETO = 0x02, PT_BEZIERTO = 0x04, PT_MOVETO = 0x06 } Point; PT_CLOSEFIGURE: A PT_LINETO or PT_BEZIERTO type can be combined with this value by using the bitwise operator OR to indicate that the corresponding point is the last point in a figure and the figure is closed. The current position is set to the ending point of the closing line. PT_LINETO: Specifies that a line is to be drawn from the current position to this point, which then becomes the new current position. PT_BEZIERTO: Specifies that this point is a control point or ending point for a Bezier curve. PT_BEZIERTO types always occur in sets of three. The current position defines the starting point for the Bezier curve. The first two PT_BEZIERTO points are the control points, and the third PT_BEZIERTO point is the ending point. The ending point becomes the new current position. If there are not three consecutive PT_BEZIERTO points, an error results. PT_MOVETO: Specifies that this point starts a disjoint figure. This point becomes the new current position. PolygonFillMode Enumeration The PolygonFillMode enumeration defines values that specify how to calculate the region of a polygon that is to be filled. typedef enum { ALTERNATE = 0x01, WINDING = 0x02 } PolygonFillMode; ALTERNATE: Selects alternate mode (fills the area between odd-numbered and even-numbered polygon sides on each scan line). WINDING: Selects winding mode (fills any region with a nonzero winding value). Proportion Enumeration The Proportion enumeration defines values for one of the characteristics in the PANOSE system for classifying typefaces. typedef enum { PAN_ANY = 0x00, PAN_NO_FIT = 0x01, PAN_PROP_OLD_STYLE = 0x02, PAN_PROP_MODERN = 0x03,
Type (4 bytes): A 32-bit unsigned integer that identifies this record type as EMR_RESIZEPALETTE. This MUST be 0x00000033. Size (4 bytes): A 32-bit unsigned integer that specifies the size of this record in bytes. ihPal (4 bytes): A 32-bit unsigned integer that specifies the index of the palette object in the . NumberOfEntries (4 bytes): A 32-bit unsigned integer that specifies the number of entries in the palette after resizing. The value MUST be less than or equal to 0x00000400 and greater than 0x00000000.<94> The new size of the LogPalette object MUST be reflected in the NumberOfEntries field in that structure. See section for the specification of other Object Manipulation record types. EMR_SELECTOBJECT Record The EMR_SELECTOBJECT record adds a graphics object to the current metafile playback device context. The object is specified either by its index in the or by its value from the . 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Type Size ihObject Type (4 bytes): A 32-bit unsigned integer that identifies this record type as EMR_SELECTOBJECT. This MUST be 0x00000025. Size (4 bytes): A 32-bit unsigned integer that specifies the size of this record, in bytes. ihObject (4 bytes): A 32-bit unsigned integer that specifies either the index of a graphics object in the EMF Object Table or the index of a stock object from the StockObject enumeration. This value MUST NOT be 0, which is a reserved index that refers to the EMF metafile itself. The object specified by this record MUST be used in drawing operations that require such an object until a different object of the same type is specified by another EMR_SELECTOBJECT record, or the object is removed by an record. See section for the specification of other Object Manipulation record types. EMR_SELECTPALETTE Record The EMR_SELECTPALETTE record specifies a logical palette for the playback device context. 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Type Size
Index A 19 28 28 B 29 48 48 74 18 210 C 270 101 29 49 49 29 30 105 20 30 113 D 20 50 50 Details 20 31 122 122 E 210 210 118 118 118 118 120 120 76 76 126 126 127 127 127 127 EMR_BITBLT example ( 228, 230) 80 80 128 128 176 176 188 188 106 106 109 109 107 107 107 107 110 110 111 111 108 108 112 112 226 164 164 165 165 166 166 167 167 168 168 170 170 171 171 176 176 EMR_DELETEOBJECT example ( 254, 258, 258) 177 177 161 161 129 129 259 114 114 102 102 EMR_EXTCREATEFONTINDIRECTW example ( 244, 248, 251, 255)
171 171 173 173 161 161 130 130 103 103 130 130 247 131 131 132 132 133 133 189 189 134 134 182 182 182 182 135 135 224 115 115 103 103 189 189 136 136 83 83 207 207 190 190 162 162 104 104 137 137 138 138 190 190 87 87 138 138 140 140 140 140 141 141 142 142 143 143 144 144 145 145 145 145 146 146 147 147 148 148 149 149 150 150 151 151 152 152 153 153 154 154 155 155 178 178 191 191 156 156 191 191 192 192 104 104 EMR_SELECTOBJECT example ( 227, 230, 246, 251, 254, 257, 258, 259) 178 178 179 179 193 193 194 194 243 194 194 195 195 195 195 179 179 90 90 196 196 196
196 197 197 198 198 198 198 199 199 200 200 200 200 180 180 157 157 200 200 201 201 202 202 202 202 203 203 204 204 204 204 205 205 205 205 207 207 157 157 93 93 95 95 158 158 159 159 98 98 31 50 50 51 51 20 53 53 159 Examples 210 210 EMR_BITBLT example ( 228, 230) 226 EMR_DELETEOBJECT example ( 254, 258, 258) 259 EMR_EXTCREATEFONTINDIRECTW example ( 244, 248, 251, 255) 247 224 EMR_SELECTOBJECT example ( 227, 230, 246, 251, 254, 257, 258, 259) 243 209 32 F 32 19 33 33 G 9 34 54 54 54 54 34 H 35 55 55 56 56 57 57 I 35 36 261 16 9 L 36 19 57 57 58 58 60 60
61 61 61 61 63 63 63 63 64 64 64 64 M 37 209 16 38 38 39 203 N 15 O 163 174 48 180 16 P 66 66 183 183 40 67 67 41 70 70 41 262 42 R 20 15 16 15 70 70 70 70 42 19 19 S 261 261 43 184 44 46 46 Structures 122 20 48 20 183 T 270 206 71 71 U 72 72 V 19 19 W 47 X 73 73 48