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 UndefinedSpace1 (variable) ... EmfDescription (variable) ... EmfDescription (variable): An optional, null-terminated Unicode UTF16-LE string of arbitrary length and content. Its location in the record and number of characters are specified by the offDescription and nDescription fields, respectively, in EmfHeader. If the value of either field is zero, no description string is present. EmfPixelFormatBuffer (variable): An optional array of bytes that contains the EMF pixel format descriptor, which is not required to be contiguous with the fixed portion of the EmfMetafileHeaderExtension2 record or with the EMF description string. Accordingly, the field in this buffer that is labeled "UndefinedSpace" is optional and MUST be ignored. 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 UndefinedSpace2 (variable) ... EmfPixelFormat (40 bytes, optional) ... ... EmfPixelFormat (40 bytes): An optional object (section 2.2.22) that specifies the last pixel format that was defined when the metafile was recorded. Its size and location in the record are specified by the cbPixelFormat and offPixelFormat fields, respectively, in EmfHeaderExtension1. If the value of either field is zero, no pixel format descriptor is present. Note: No single structure definition can accurately represent every possible combination of optional fields. Therefore, the implementer is responsible for writing software that determines which fields are actually present in a given metafile, and for unmarshaling the contents of each field appropriately. The value of the Size field can be used to distinguish between the different EMR_HEADER record types. See EMR_HEADER record types (section 2.3.4.2) for details. See section 2.3.4.2 for additional header record types. Drawing Record Types The drawing record types perform graphics drawing. The following are EMF drawing record types.
Protocol syntax refers to data elements (such as packets, structures, enumerations, and methods) as well as interfaces. Protocol revision refers to changes made to a protocol that affect the bits that are sent over the wire. The changes made to this document are listed in the following table. For more information, please contact . Section Tracking number (if applicable) and description Major change (Y or N) Change type ColorAdjustment Enumeration Changed "should" to "is". N Content update. ExtTextOutOptions Enumeration Changed "should" to "is". N Content update. 2.1.11 ExtTextOutOptions Enumeration Removed "SHOULD" from product behavior note. N Content update. GraphicsMode Enumeration Changed "MAY NOT" (not a valid prescriptive term) to "SHOULD".. Y Content update.
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