2.3.6.29 pInscribe_complex

The pInscribe_complex property specifies additional data for the pInscribe property, as defined in section 2.3.6.28. If the opid.fComplex bit of pInscribe equals 0x1, this property MUST exist.


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

pInscribe_complex (variable)

...

pInscribe_complex (variable): An IMsoArray record, as defined in section 2.2.51, of RECT records, as defined in section 2.2.56, that specify the rectangle within this shape in which text is inscribed. The coordinates in the RECT records are specified in the geometry space, unless a coordinate exists in the range from 0x80000000 through 0x8000007F. In that case, the value is not used directly. Instead, the final value is calculated by subtracting 0x8000000 from the original value, and then using that value as the zero-based index into the pGuides_complex array, as defined in section 2.3.6.27, to specify the value that is used.

The algorithm for calculating the inscribed rectangle varies based on the number of rectangles that are provided and on whether the text exists in a horizontal or a vertical layout. The text is laid out vertically if the txflTextFlow property of this shape equals msotxflTtoBA, msotxflBtoT, msotxflTtoBN, or msotxflVertN. Otherwise, the text is laid out horizontally. The number of rectangles that are provided MUST be zero, one, two, three, or six. The following table describes the meaning of each of these numbers of rectangles.

Number of rectangles

Meaning

Zero

The text is inscribed in the rectangle within the shape.

One

The text is inscribed in the single rectangle that is provided.

Two

If the text exists in a horizontal layout, it is inscribed in the first rectangle that is provided. If the text exists in a vertical layout, it is inscribed in the second rectangle that is provided.

Three

The three rectangles specify the minimum, middle, and maximum rectangles to use for both vertical and horizontal layouts. If the pAdjustHandles_complex property, as defined in section 2.3.6.25, is either not specified or empty, the minimum rectangle is used. Otherwise, the adjustValue property, as defined in section 2.3.6.10, and the first ADJH record, as defined in section 2.2.57, in the pAdjustHandles_complex property are used to determine how to interpolate among the three rectangles. If the apX value of the first ADJH record is controlling the adjustValue property because it equals 0x00000100, the adjustValue property is compared with xMin and xMax. Otherwise, the adjustValue property is compared with yMin and yMax. If the value of the adjustValue property is less than the midway point between these values, the inscribed rectangle is calculated by a linear interpolation between the minimum and middle rectangles. If the value of the adjustValue property is greater than the midway point between these values, the inscribed rectangle is calculated by a linear interpolation between the middle and maximum rectangles.

Six

The first three rectangles specify the minimum, middle, and maximum rectangles to use if the text exists in a horizontal layout. The last three rectangles specify the minimum, middle, and maximum rectangles to use if the text exists in a vertical layout. The same algorithm as the one for the case of three rectangles is used.