3.2.2.16 EMR_EXTCREATEFONTINDIRECTW Example

This section provides an example of an EMF EMR_EXTCREATEFONTINDIRECTW record ([MS-EMF] section 2.3.7.8).

 00000190:            52 00 00 00 70 01 00 00 01 00 00 00 
 000001A0:C4 FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 
 000001B0:90 01 00 00 00 00 00 00 07 40 00 12 54 00 69 00 
 000001C0:6D 00 65 00 73 00 20 00 4E 00 65 00 77 00 20 00 
 000001D0:52 00 6F 00 6D 00 61 00 6E 00 00 00 00 00 00 00 
 000001E0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000001F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 
 00000200:08 5A 18 00 24 A8 56 07 D0 EE 7D 07 C4 F0 7D 07 
 00000210:37 A4 07 30 90 00 B7 00 B8 1A E2 01 00 00 00 00 
 00000220:00 00 00 00 B8 1A E2 01 6F EC EE 94 D4 A5 07 30 
 00000230:48 F1 7D 07 40 F8 A9 30 84 F8 A9 30 78 A3 07 30 
 00000240:28 48 24 00 01 00 00 00 02 00 00 00 50 EE 7D 07 
 00000250:54 EE 7D 07 AC 1E 24 00 00 90 FD 7F 00 90 FD 7F 
 00000260:00 00 B9 6E B8 00 B9 6E 18 EE 7D 07 00 00 B9 6E 
 00000270:50 EE 7D 07 14 00 00 00 01 00 00 00 00 00 00 00 
 00000280:00 00 00 00 00 00 00 00 47 16 90 01 00 00 00 00 
 00000290:00 00 00 00 00 00 00 00 87 3A 00 20 00 00 00 00 
 000002A0:00 00 00 00 00 00 00 00 FF 01 00 00 00 00 00 00 
 000002B0:54 00 69 00 6D 00 65 00 73 00 20 00 00 00 65 00 
 000002C0:77 00 20 00 52 00 6F 00 6D 00 61 00 6E 00 00 00 
 000002D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
 000002E0:00 00 00 00 00 00 00 00 F0 EE 7D 07 5A B0 02 30 
 000002F0:F0 EE 7D 07 8C 63 AB 30 08 EF 7D 07 64 76 00 08 
 00000300:00 00 00 00 


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 (0x00000052)

Size (0x00000170)

ihFonts (0x00000001)

elw (360 bytes)

...

...

...

Type (4 bytes): 0x00000052 identifies the record type as EMR_EXTCREATEFONTINDIRECTW.

Size (4 bytes): 0x00000170 specifies the size of this record in bytes.

ihFonts (4 bytes): 0x00000001 specifies the object index in the EMF Object Table ([MS-EMF] section 3.1.1) to assign to the font.

elw (360 bytes): To determine the type of logical font object in this field, an algorithm ([MS-EMF] section 2.3.7.8) is applied, which indicates that this is an LogFontExDv object ([MS-EMF] section 2.2.15).


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

Height (0xFFFFFFC4)

Width (0x00000000)

Escapement (0x00000000)

Orientation (0x00000000)

Weight (0x000000190)

Italic (0x00)

Underline (0x00)

StrikeOut (0x00)

CharSet (0x00)

OutPrecision (0x07)

ClipPrecision (0x40)

Quality (0x00)

PitchAndFamily (0x12)

Facename ("Times New Roman") (68 bytes)

...

...

...

Height (4 bytes): 0xFFFFFFC4 has an absolute value of 60, which specifies the character height for this font in logical units.

Width (4 bytes): 0x00000000 specifies a computed font width. The aspect ratio of the device is matched against the digitization aspect ratio of the font to find the closest match, determined by the absolute value of the difference.

Escapement (4 bytes): 0x00000000 specifies an angle of 0 degrees between the baseline of a row of text and the x-axis of the device.

Orientation (4 bytes): 0x00000000 specifies an angle of 0 degrees between each character's baseline and the x-axis of the device.

Weight (4 bytes): 0x000000190 specifies that the weight of the font is 400, in the range 0 through 1000, from lightest to darkest, with 400 (0x00000190) considered normal.

Italic (1 byte): 0x00 specifies that the font is not italic.

Underline (1 byte): 0x00 specifies that the font is not underlined.

StrikeOut (1 byte): 0x00 specifies that the font characters do not have a strike-out graphic.

CharSet (1 byte): 0x00 specifies the ANSI_CHARSET, as defined in the CharacterSet enumeration ([MS-WMF] section 2.1.1.5).

OutPrecision (1 byte): 0x07 specifies the output precision, which is how closely the output matches the requested font properties, from the OutPrecision enumeration ([MS-WMF] section 2.1.1.21). The value 0x07 specifies that the font mapper choose a TrueType font.

ClipPrecision (1 byte): 0x40 specifies the clipping precision, which is how to clip characters that are partially outside the clipping region, from the ClipPrecision flags ([MS-WMF] section 2.1.2.1). The value 0x40 specifies that font association be turned off.

Quality (1 byte): 0x00 specifies default output quality, from the FontQuality enumeration ([MS-WMF] section 2.1.1.10).

PitchAndFamily (1 byte): 0x12 specifies a variable-pitch font with serifs, from the FamilyFont and PitchFont enumerations ([MS-WMF] sections 2.1.1.8 and 2.1.1.24, respectively).

Facename (68 bytes): "Times New Roman" specifies the typeface name of the font in Unicode characters.


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

FullName ("") (132 bytes)

...

...

...

Style ("") (68 bytes)

...

...

...

Script ("") (68 bytes)

...

...

...

Signature (0x80007664)

NumAxes (0x00000000)

FullName (132 bytes): An empty string specifies the font's full name.

Style (68 bytes): An empty string describes the font's style.

Script (68 bytes): An empty string describes the font's character set.

Signature (4 bytes): 0x80007664 specifies the signature of an DesignVector object ([MS-EMF] section 2.2.3).

NumAxes (4 bytes): 0x00000000 specifies the number of font axes described in the DesignVector object.