Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
2.2.5 EmrText Object

2.2.5 EmrText Object

The EmrText object contains values for text output.

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

Reference

...

Chars

offString

Options

Rectangle (16 bytes)

...

...

offDx

StringBuffer (variable)

...

DxBuffer (variable)

...

Reference (8 bytes): A WMF PointL object ([MS-WMF] section 2.2.2.15) that specifies the coordinates of the reference point used to position the string. The reference point is defined by the last EMR_SETTEXTALIGN record (section 2.3.11.25). If no such record has been set, the default alignment is TA_LEFT,TA_TOP.

Chars (4 bytes): A 32-bit unsigned integer that specifies the number of characters in the string.

offString (4 bytes): A 32-bit unsigned integer that specifies the offset to the output string, in bytes, from the start of the record in which this object is contained. This value MUST be 8- or 16-bit aligned, according to the character format.

Options (4 bytes): A 32-bit unsigned integer that specifies how to use the rectangle specified in the Rectangle field. This field can be a combination of more than one ExtTextOutOptions enumeration (section 2.1.11) values.

Rectangle (16 bytes): An optional WMF RectL object ([MS-WMF] section 2.2.2.19) that defines a clipping and/or opaquing rectangle in logical units. This rectangle is applied to the text output performed by the containing record.<55>

offDx (4 bytes): A 32-bit unsigned integer that specifies the offset to an intercharacter spacing array, in bytes, from the start of the record in which this object is contained. This value MUST be 32-bit aligned.

StringBuffer (variable): The character string buffer.

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)

...

OutputString (variable)

...

UndefinedSpace1 (variable): An optional number of unused bytes. The OutputString field is not required to follow immediately the preceding portion of this structure.

OutputString (variable): An array of characters that specify the string to output. The location of this field is specified by the value of offString in bytes from the start of this record. The number of characters is specified by the value of Chars.

DxBuffer (variable): The optional character spacing buffer.

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)

...

OutputDx (variable)

...

UndefinedSpace2 (variable): An optional number of unused bytes. The OutputDx field is not required to follow immediately the preceding portion of this structure.

OutputDx (variable): An array of 32-bit unsigned integers that specify the output spacing between the origins of adjacent character cells in logical units. The location of this field is specified by the value of offDx in bytes from the start of this record. If spacing is defined, this field contains the same number of values as characters in the output string.

If the Options field of the EmrText object contains the ETO_PDY flag, then this buffer contains twice as many values as there are characters in the output string, one horizontal and one vertical offset for each, in that order.

If ETO_RTLREADING is specified, characters are laid right to left instead of left to right. No other options affect the interpretation of this field.

The size and encoding of the characters in the OutputString is determined by the type of record that contains the EmrText object, as follows:

Show:
© 2015 Microsoft