2.3.3.5 META_EXTTEXTOUT Record

The META_EXTTEXTOUT Record outputs text by using the font, background color, and text color that are defined in the playback device context. Optionally, dimensions can be provided for clipping, opaquing, or both.


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

RecordSize

RecordFunction

Y

X

StringLength

fwOpts

Rectangle (optional)

...

...

String (variable)

...

Dx (variable)

...

RecordSize (4 bytes): A 32-bit unsigned integer that defines the number of WORD structures, defined in [MS-DTYP] section 2.2.61, in the WMF record.

RecordFunction (2 bytes): A 16-bit unsigned integer that defines this WMF record type. The lower byte MUST match the lower byte of the RecordType Enumeration (section 2.1.1.11) table value META_EXTTEXTOUT.

Y (2 bytes): A 16-bit signed integer that defines the y-coordinate, in logical units, where the text string is to be located.

X (2 bytes): A 16-bit signed integer that defines the x-coordinate, in logical units, where the text string is to be located.

StringLength (2 bytes): A 16-bit signed integer that defines the length of the string.

fwOpts (2 bytes): A 16-bit unsigned integer that defines the use of the application-defined rectangle. This member can be a combination of one or more values in the ExtTextOutOptions Flags (section 2.1.2.2).

Rectangle (8 bytes): An optional 8-byte Rect Object (section 2.2.2.18).) When either ETO_CLIPPED, ETO_OPAQUE, or both are specified, the rectangle defines the dimensions, in logical coordinates, used for clipping, opaquing, or both. When neither ETO_CLIPPED nor ETO_OPAQUE is specified, the coordinates in Rectangle are ignored.

String (variable): A variable-length string that specifies the text to be drawn. The string does not need to be null-terminated, because StringLength specifies the length of the string. If the length is odd, an extra byte is placed after it so that the following member (optional Dx) is aligned on a 16-bit boundary. The string will be decoded based on the font object currently selected into the playback device context. If a font matching the font object’s specification is not found, the decoding is undefined. If a matching font is found that matches the charset specified in the font object, the string should be decoded with the codepages in the following table.

CharSet

CodePage ID

ANSI_CHARSET

1252

OEM_CHARSET

437

SHIFTJIS_CHARSET

932

HANGEUL_CHARSET

949

JOHAB_CHARSET

1361

GB2312_CHARSET

936

CHINESEBIG5_CHARSET

950

HEBREW_CHARSET

1255

ARABIC_CHARSET

1256

GREEK_CHARSET

1253

TURKISH_CHARSET

1254

BALTIC_CHARSET

1257

EASTEUROPE_CHARSET

1250

RUSSIAN_CHARSET

1251

THAI_CHARSET

874

VIETNAMESE_CHARSET

1258

SYMBOL_CHARSET

42

Dx (variable): An optional array of 16-bit signed integers that indicate the distance between origins of adjacent character cells. For example, Dx[i] logical units separate the origins of character cell i and character cell i + 1. If this field is present, there MUST be the same number of values as there are characters in the string.

See section 2.3.3 for the specification of other Drawing Records.