Function 221 (0xDD) = Style Group



The Style Group subfunctions have page orientation.


0xDD00

Begin On

<221 (0xDD)> <0 (0x00)> [size = variable] <flags = PRFXID+2 (encased/paired function)>

<number of PIDs = 1>

[style PID (type=0x30)]

[size of non-deletable information = 3]

[hash of this Begin On]

<system style number (-1 if normal)>

<undocumented deletable data> x ?

[size] <0xDD>


0xDD01

Begin Off

<221 (0xDD)> <1 (0x01)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD02

End On

<221 (0xDD)> <2 (0x02)> [size = variable] <flags = PRFXID+ 2 (encased/Paired Function>

<number of PIDs = 1>

[style PID (type=0x30)]

[size of non-deletable information = 3]

[hash of this End On]

<system style number (-1 is normal)>

<undocumented deletable data> x ?

[size] <0xDD>


0xDD03

End Off

<221 (0xDD)> <3 (0x03)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD04

Paragraph Style Begin On (Part 1)

<221 (0xDD)> <4 (0x04)> [size = variable] <flags = PRFXID+2 (encased/paired function)>

<number of PIDs = 1>

[paragraph style PID (type=0x30)]

[size of non-deletable information = 3]

[hash of this paragraph style Begin On]

<system style number (-1 if normal)>

<undocumented deletable data> x ?

[size] <0xDD>


0xDD05

Paragraph Style Begin Off (Part 1)

<221 (0xDD)> <5 (0x05)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD06

Paragraph Style Begin On (Part 2)

<221 (0xDD)> <6 (0x06)> [size = 12] <flags = PRFXID+2 (encased/paired function)>

<number of PIDs = 1>

[paragraph style PID (type=0x30)]

[size of non-deletable information = 2]

[hash of this paragraph style End On]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD07

Paragraph Style Begin Off (Part 2)

<221 (0xDD)> <7 (0x07)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD08

Paragraph Style End On

<221 (0xDD)> <8 (0x08)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 4]

[paragraph style PID (type=0x30)]

[hash of this paragraph style End On]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD09

Paragraph Style End Off

<221 (0xDD)> <9 (0x09)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDD>


0xDD0A

Global On

<221 (0xDD)> <10 (0x0A)> [size = variable] <flags = PRFXID+3 (encased function)>

<number of PIDs = 1>

[style PID (type=0x30)]

[size of non-deletable information = 3]

[hash of this Global On]

<system style number (-1 if normal)>

<undocumented deletable data> x ?

[size] <0xDD>


0xDD0B

Global Off

<221 (0xDD)> <11 (0x0B)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDD>


Function 222 (0xDE) = Merge Group



The Merge Group subfunctions have character orientation.

Non-Paired Merge Subfunctions: 0 (0x00) - 31 (0x1F)



Subfunction Description
0 (0x00) Beep
1 (0x01) Break
2 (0x02) Cancel Off
3 (0x03) Cancel On
4 (0x04) Continue
5 (0x05) Date
6 (0x06) Default
7 (0x07) Display Stop
8 (0x08) Else
9 (0x09) End Case
10 (0x0A) End Field
11 (0x0B) End FOR
12 (0x0C) End IF
13 (0x0D) End Record
14 (0x0E) End WHILE
15 (0x0F) Next
16 (0x10) Next Record
17 (0x11) Page Off
18 (0x12) Page On
19 (0x13) Print
20 (0x14) Quit
21 (0x15) Process On
22 (0x16) Return
23 (0x17) Return Cancel
24 (0x18) Return Error
25 (0x19) Rewrite
26 (0x1A) Step Off
27 (0x1B) Step On
28 (0x1C) Stop
29 (0x1D) Process Off
30 (0x1E) FEP Off (for Asia)
31 (0x1F) FEP On (for Asia)








<222 (0xDE)> <subfunction> [size = variable] <flags = 0>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDE>

Paired Merge Subfunctions: 48 (0x30) - 148 (0x94)

The subfunctions in this list are paired so that the even-numbered codes are the On functions and the odd numbered codes are the Off functions. Each instance of a subfunction will consist of the On subfunction, a string of information, and the Off subfunction. The detailed structure is shown following the table of subfunctions below. The string information required by each merge code is documented in parentheses next to the On function code. Square brackets are used to indicate optional string data. The parentheses and square brackets are not included in the actual string data.



Subfunction Description
48 (0x30) ASSIGN On (var;expr)
49 (0x31) ASSIGN Off
50 (0x32) CALL On (label)
51 (0x33) CALL Off
52 (0x34) CAPS On (expr)
53 (0x35) CAPS Off
54 (0x36) CASE On (exp;case1;label;...;ELSE;label)
55 (0x37) CASE Off
56 (0x38) CASEOF On (expr[;...;expr])
57 (0x39) CASEOF Off
58 (0x3A) CHAINMACRO On (macroname)
59 (0x3B) CHAINMACRO Off
60 (0x3C) CHAINDATA On (filename)
61 (0x3D) CHAINDATA Off
62 (0x3E) CHAINFORM On (filename)
63 (0x3F) CHAINFORM Off
64 (0x40) CHAR On (var;[;prompt][;title])
65 (0x41) CHAR Off
66 (0x42) CODES On (merge codes)
67 (0x43) CODES Off
68 (0x44) COMMENT On (comment)
69 (0x45) COMMENT Off
70 (0x46) CTON On (character)
71 (0x47) CTON Off
72 (0x48) DOCUMENT On (filename)
73 (0x49) DOCUMENT Off
74 (0x4A) EMBEDMACRO On (macro commands)
75 (0x4B) EMBEDMACRO Off
76 (0x4C) FIELD On (field)
77 (0x4D) FIELD Off
78 (0x4E) FIELDNAMES On (name1;...;nameN)
79 (0x4F) FIELDNAMES Off
80 (0x50) FIRSTCAP On (string)
81 (0x51) FIRSTCAP Off
82 (0x52) FOR On (var;start;stop;step)
83 (0x53) FOR Off
84 (0x54) FOREACH On (var;expr;expr;...)
85 (0x55) FOREACH Off
86 (0x56) GETSTRING On (variable[;prompt][;title])
87 (0x57) GETSTRING Off
88 (0x58) GO On (label)
89 (0x59) GO Off
90 (0x5A) IF On (expr)
91 (0x5B) IF Off
92 (0x5C) IFBLANK On (field)
93 (0x5D) IFBLANK Off
94 (0x5E) IFEXISTS On (var)
95 (0x5F) IFEXISTS Off
96 (0x60) IFNOTBLANK On (field)
97 (0x61) IFNOTBLANK Off
98 (0x62) INSERT On (WP text)
99 (0x63) INSERT Off
100 (0x64) KEYBOARD On ([prompt])
101 (0x65) KEYBOARD Off
102 (0x66) LABEL On (label)
103 (0x67) LABEL Off
104 (0x68) LOCAL On (var)
105 (0x69) LOCAL Off
106 (0x6A) LOOK On (var)
107 (0x6B) LOOK Off
108 (0x6C) MRGCMND On (merge codes)
109 (0x6D) MRGCMND Off
110 (0x6E) NESTDATA On (filename)
111 (0x6F) NESTDATA Off
112 (0x70) NESTFORM On (filename)
113 (0x71) NESTFORM Off
114 (0x72) NESTMACRO On (macroname)
115 (0x73) NESTMACRO Off
116 (0x74) NTOC On (number)
117 (0x75) NTOC Off
118 (0x76) ONCANCEL On (action)
119 (0x77) ONCANCEL Off
120 (0x78) ONERROR On (action)
121 (0x79) ONERROR Off
122 (0x7A) PROMPT On (message)
123 (0x7B) PROMPT Off
124 (0x7C) STATUSPROMPT On (message)
125 (0x7D) STATUSPROMPT Off
126 (0x7E) STRLEN On (expr)
127 (0x7F) STRLEN Off
128 (0x80) STRPOS On (expr;subexpr)
129 (0x81) STRPOS Off
130 (0x82) SUBSTDATA On (filename)
131 (0x83) SUBSTDATA Off
132 (0x84) SUBSTFORM On (filename)
133 (0x85) SUBSTFORM Off
134 (0x86) SUBSTR On (expr;start;length)
135 (0x87) SUBSTR Off
136 (0x88) SYSTEM On (sysvar)
137 (0x89) SYSTEM Off
138 (0x8A) TOLOWER On (expr)
139 (0x8B) TOLOWER Off
140 (0x8C) TOUPPER On (string)
141 (0x8D) TOUPPER Off
142 (0x8E) VARIABLE On (var)
143 (0x8F) VARIABLE Off
144 (0x90) WAIT On (10ths second)
145 (0x91) WAIT Off
146 (0x92) WHILE On (expr)
147 (0x93) WHILE Off
148 (0x94) POSTNET On (string)
149 (0x95) POSTNET Off






<222 (0xDE)> <on subfunction> [size = variable] <flags = 1 (simple paired function)>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xDE>

<associated string information> x ?

<222 (0xDE)> <off subfunction> [size = 10] <flags = 1 (simple paired function)>

[size of non-deletable information = 0]

[size] <0xDE>


Function 223 (0xDF) = Box Group



The Box Group subfunctions have character orientation.


0xDF00

Character-Anchored Box:0 (0x00)

See structure under Page-Anchored Box below.


0xDF01

Paragraph-Anchored Box1 (0x01)

See structure under Page-Anchored Box below.


0xDF02

Page-Anchored Box2 (0x02)

<223 (0xDF)> <subfunction #> [size = variable] <flags = PRFXID>

<number of PIDs (minimum 1)>

[box template PID (type=0x41)] required

[box counter PID (type=0x11)] if indicated by override flags

[box PIDs] (none currently defined)

[box contents PIDs (type=0x40)] if indicated by override flags

[box caption PIDs (type=0x08)] if indicated by override flags

[box border PIDs (type=0x42)] as many as needed as indicated by override flags

[box fill PIDs (type=0x43)] if indicated by override flags

[box hypertext PIDs (type=0x07 or 0x17)] if indicated by override flags

type 0x07 for Hypertext macro filename, type 0x17 for Hypertext bookmark

[size of non-deletable information]

<reserved for future use> x 14

[total size of override and wrap rectangle data for box] not including this word

[total size of override data] not including this word

[box override flags]

See definition under Specific Format of Box Override Flags and Data below.

[number of platform-independent wrap rectangles]

Four wrap rectangle data words per rectangle:

[unsigned offset of left side of rectangle from left side of formatted render box]

[unsigned offset of right side of rectangle from left side of formatted render box]

[unsigned offset of top side of rectangle from top side of formatted render box]

[unsigned offset of bottom side of rectangle from top side of formatted render box]

<undocumented deletable data> x ?

[size] <0xDF>

Units for the above wrap rectangle values are in 65536ths of the appropriate dimension (width or height) of the formatted box in which content is to be rendered. The left offset value and the right offset value are measured in 65536ths of the width of the formatted box. The top offset value and bottom offset value are measured in 65536ths of the height of the formatted box. Note that the right value must be greater than or equal to the left value and the bottom value must be greater than or equal to the top value. Allowable values are from 0 to 65535. For convenience, 65535 is considered 65536.

General Format of Box Override Flags and Data:

The box may have associated override flags in the box function. The override flags are a 16-bit entity (word) and each bit corresponds to data in the box definition.

For each bit in the box override flags, there is corresponding data. The size of the data depends on what the override bit represents. The order of the data depends on the order of the override bits, with one exception, noted below. For example, if both bits 15 and 14 in the override flag are set, the data corresponding to bit 15 appear earlier in the override data area than the data corresponding to bit 14. The exception is for border or fill template overrides. Because the data are prefix IDs, the data appear in the prefix ID area at the beginning of the function. The order of the prefix IDs corresponds to the bit order of the override flags.

If an override bit is set in the box override flags, a mask appears defining which bits within the corresponding data are overridden followed by the actual override data. For example, assume a data byte has two fields, the first field covering bits 0-3 and the second field covering bits 4-7. Assume the first field (bits 0-3) is to be overridden but the second field (bits 4-7) is not. The corresponding override bit will be set in the box override flags word. The data corresponding to this override bit will be a mask byte (value 0x0F) and a data byte, of which only the bottom 4 bits matter.

All currently undefined data must be set to 0 when creating a new box template or box function. For any flag data, only those bits currently defined should be modified. All others should be preserved. Write code to preserve fixed- and variable-length data that may be added later. This means using the total length and length-of-fixed portion words. Names of templates cannot be longer than 80 characters (160 bytes), not including length word.

Specific Format of Box Override Flags and Data:

bit 15: Box counter data.

If the box counter override bit is set in the box's override flags, the following data appear:

[total size of box counter override data (not including this word)]

[box counter override flags]

The following data appear according to bits set in the box counter override flags:

bit 15: Box counter prefix ID flags. Corresponding data:

<mask>

<data>

bits 14-0: currently undefined

bit 14: Box positioning data.

If the box position override bit is set in the box override flags, the following data appear:

[total size of box position override data (not including this word)]

[box position override flags]

The following data appear according to bits set in the box position override flags:

bit 15: Box positioning prefix ID flags. Corresponding data:

<mask>

<data>

bit 14: Box general positioning flags. Corresponding data:

<mask>

<data>

bit 13: Box horizontal positioning data override. Corresponding data:

<box horizontal positioning flags>

[horizontal offset]

<left column>

<right column>

bit 12: Box vertical positioning data override. Corresponding data:

<box vertical positioning flags>

[vertical offset]

bit 11: Box width data override. Corresponding data:

<box width flags>

[box width value]

bit 10: Box height data override. Corresponding data:

<box height flags>

[box height value]

bits 9-0: currently undefined

bit 13: box content data

If the content override bit is set for the box's override flags, the following data appear:

[total size of content override data (not including this word)]

[content override flags]

The following data appear according to bits set in the content override flags

bit 15: Box content prefix ID flags override. Corresponding data:

<mask>

<data>

bit 14: Content type override. Corresponding data:

<content type>

bit 13: Content rendering information. Corresponding data:

If the content type of the box is image:

[total size of image content override data (not including this word)]

[image content override flags]

bit 15: Prefix ID flag override. Corresponding data:

<mask>

<data>

If this override bit is set, and bit 0 of the mask byte is set such that the prefix ID flags is overridden, the image native size override bit 14 must also be set.

bit 14: Image native size override. Corresponding data:

[image native width (WPUs)]

[image native height (WPUs)]

This override bit must be set if bit 0 in the image content prefix ID flags is overridden. See previous bit, bit 15.

bit 13: Image content render flags override. Corresponding data:

<mask>

<data>

bit 12: Scaling factor override. Corresponding data:

{fixed point x scaling factor}

{fixed point y scaling factor}

bit 11: Translation factor override. Corresponding data:

{x translation factor}

{y translation factor}

bit 10: Rotation angle override. Corresponding data:

{data}

bit 9: Black and white threshold override. Corresponding data:

<data>

bit 8: Lightness value override. Corresponding data:

{data}

bit 7: Contrast value override. Corresponding data:

{data}

bit 6: Halftone data override. Corresponding data:

{halftone screen LPI}

{plane 0 halftone screen angle}

{plane 1 halftone screen angle}

{plane 2 halftone screen angle}

{plane 3 halftone screen angle}

bit 5: Image dither flags override. Corresponding data:

<mask>

<data>

bits 4-0: currently undefined

If the content type of the box is text:

[total size of text content override data] (not including this short value)

[text content override flags]

bit 15: Prefix ID flag override. Corresponding data:

<mask>

<data>

bit 14: Text content rendering flag override. Corresponding data:

<mask>

<data>

bits 13-0: currently undefined

If the content type of the box is equation:

[total size of equation content override data] (not including this short value)

[equation content override flags]

bit 15: Prefix ID flag override. Corresponding data:

<mask>

<data>

bit 14: Equation content rendering flag override. Corresponding data:

<mask>

<data>

bit 13: Equation font size override. Corresponding data:

[equation base font size]

bit 12: Equation color override. Corresponding data:

<equation color (RGBS)> x 4

bit 11: Equation rotation override. Corresponding data:

{fixed point rotation angle (0.0-360.0)}

bits 10-0: currently undefined.

If the content type is Presentation, Video, Macro, Sound, or External:

Currently undefined

bit 12: Content alignment information. Corresponding data:

<mask>

<data>

bits 11-0: currently undefined

bit 12: box caption data

If the box caption override bit is set in the box's override flags, the following data appear:

[total size of caption override data (not including this word)]

[caption override flags]

The following data appear according to bits set in the border template override flags

bit 15: Box caption prefix ID flags override. Corresponding data:

<mask>

<data>

bit 14: Caption positioning override. Corresponding data:

<caption positioning flags data>

[caption alignment offset word]

bit 13: Caption formatting override. Corresponding data:

<caption formatting flags data>

[caption formatting word ]

bits 12-0: currently undefined

bit 11: box border data:

If the box border override bit is set in the box's override flags, the following data appear:

[total size of box border override data (not including this word)]

[box border override flags ]

The following data appear according to bits set in the border template override flags:

bit 15: Box border prefix ID flags override. Corresponding data:

<mask>

<data>

bit 14: Border template override data. Corresponding data:

If the border template override bit is set in the box's override flags, the following data appear:

[total size of border template override data (not including this word)]

[border template override flags]

The following data appear according to bits set in the border template override flags:

bit 15: Border template prefix ID flags data. Corresponding data:

<mask>

<data>

bit 14: Border general flags data. Corresponding data:

<mask>

<data>

bit 13: Corner radius data. Corresponding data:

[corner radius]

bit 12: Inside spacing data. Corresponding data:

[left inside spacing]

[right inside spacing]

[top inside spacing]

[bottom inside spacing]

bit 11: Outside spacing data. Corresponding data:

[left outside spacing]

[right outside spacing]

[top outside spacing]

[bottom outside spacing]

bit 10: Drop shadow data. Corresponding data:

<drop shadow flag>

[drop shadow spacing]

<drop shadow color (RGBS)> x 4

bit 9: Border color data. Corresponding data:

<border color (RGBS)> x 4

bits 8-0: currently undefined

bits 13-0: currently undefined

bit 10: box fill data:

If the box fill override bit is set in the box's override flags, the following data appear:

[total size of fill template override data (not including this word)]

[border fill override flags]

The following data appear according to bits set in the fill template override flags

bit 15: Box fill prefix ID flags override. Corresponding data:

<mask>

<data>

bit 14: Fill template data override. Corresponding data:

If the fill template override bit is set in the box fill override flags, the following data appear:

[total size of fill template override data (not including this word)]

[fill template override flags]

The following data appear according to bits set in the fill template override flags

bit 15: Fill colors override. Corresponding data:

<foreground/start color (RGBS)> x 4

<background/end color (RGBS)> x 4

bits 14-0: currently undefined

bits 13-0: currently undefined

bit 9: box wrapping data

If the box wrapping override bit is set in the box override flags, the following data appear:

[total size of box wrapping override data (not including this word)]

[box wrapping override flags]

The following data appear according to bits set in the box wrapping override flags:

bit 15: Box wrapping prefix ID override. Corresponding data:

<mask>

<data>

bit 14: Wrapping flags. Corresponding data:

<mask>

<data>

bits 13-0: currently undefined

bit 8: box hypertext wrapping data

If the box hypertext wrapping override bit is set in the box override flags, the following data appear:

[total size of box hypertext override data (not including this word)]

[box hypertext override flags]

The following data appear according to bits set in the box hypertext override flags:

bit 15: Box hypertext prefix ID override. Corresponding data:

<mask>

<data>

bit 14: Box hypertext type flags override. Corresponding data:

<data>

bits 13-0: currently undefined

bits 7-0: currently undefined


0xDF03

Graphics Rule

<223 (0xDF)> <3 (0x03)> [size = variable] <flags = PRFXID>

<number of PIDs (minimum 2)>

[border line template PID (type = 0x42)]

[document function rule count PID (type = 0x45)]

The rule function count prefix packet exists merely to keep a count of rule functions in the document. Its content should be a single 16-bit short value of zero (0). When a rule function in created, the prefix packet will be created or its use count incremented. The prefix packet ID will be placed in the function at insertion so that the prefix packet use count will be decremented if the function is deleted. The use count must correspond exactly to the number of rule functions in the document.

[size of non-deletable data]

<reserved for future use> x 14

Rule positioning data:

[size of rule positioning area] not including this word

<rule general position flags>

bits 2-7: undefined

bit 1: rule thickness flag

0 = rule thickness determined by border line style thickness

1 = rule thickness set by user, border line style scaled for display

bit 0: horizontal vertical flag

0 = horizontal rule

1 = vertical rule

<rule horizontal positioning flags>

bits 5-7: undefined

bits 2-4: alignment (if margin-relative)

0 = left

1 = right

2 = centered

3 = full

bit 0: alignment type

0 = absolute (relative to left of page)

1 = margin-relative

2 = between columns (vertical rule only)

[absolute horizontal position (unsigned WPUs)]

<left column> (for rules between columns)

<rule vertical positioning flags>

bits 5-7: undefined

bits 2-4: alignment (if margin relative)

0 = top

1 = bottom

2 = centered

3 = full

bit 0-1: alignment type

0 = absolute (relative to top of page)

1 = margin-relative (vertical rule only)

2 = baseline (horizontal rule only)

[absolute vertical position (unsigned WPUs)]

[rule thickness (unsigned WPUs)]

[rule length (unsigned WPUs)]

If horizontal rule:

[rule top outside spacing (unsigned WPUs)]

[rule bottom outside spacing (unsigned WPUs)]

If left or right aligned vertical rule:

[rule kick-out spacing (unsigned WPUs)] The kick-outspacing is the distance between the margin and the side of the rule closest to the margin (right side for left-aligned rules and left side for right-aligned rules). Note that left and right aligned vertical rules are outside the margins. For 5.1 compatibility, the default kick-out spacing is 1/8.

Rule line definition data:

[size of line definition area] not including this word

<rule line definition flags>

bit 1-7: undefined

bit 0: color use flag

0 = use color from line template segment definitions

1 = use color from rule template for all segments

<rule color (RGBS)> x 4

<undocumented deletable data> x ?

[size] <0xDF>

General Rules

All currently undefined data should be set to 0 when a new document rule function is created. For any flag data, only those bits currently defined should be modified. All others should be preserved.


Function 224 (0xE0) = Tab Group



The Tab Group subfunctions have character orientation.


0xE000

Tab

<224 (0xE0)> <tab definition shown below> [size = variable] <flags = 0>

[size of non-deletable information = 0]

<undocumented deletable data> x ?

[size] <0xE0>

<tab definition>

bit 0: 1 = soft type (tab, align, center, and so forth), (uses the tab set definition type)

bit 1: 1 = dot leader

bit 2: 1 = generic search (only used in search code, ignore bits 0 and 1 when comparing)

bits 3-7: tab type

76543

00000 = back tab

00001 = table tab

00010 = left tab

00100 = bar tab

00110 = left indent

00111 = left/right indent

01000 = center on margins

01001 = center on current position

01010 = center tab

10000 = flush right

10010 = right tab

11010 = decimal tab

Note that bits 6-7 are the alignment bits:

00 = no alignment

01 = center

10 = right alignment

11 = decimal alignment

Bits 4-5 are not 00 if the tab type uses the tab table to get the next tab position.

Bit 3 is used to make each type unique.


Function 225 (0xE1) = Platform Group



The Platform Group subfunctions have character orientation.

These subfunctions do not currently contain deletable data, however, deletable data and prefix IDs may be added to any function or subfunction at any time.


0xE100

Dynamic Data Exchange Start

<225 (0xE1)> <0 (0x00)> [size = 17] <flags = PRFXID+3 (encased function)>

<number of PIDs = 1>

[DDE PID (type = 0x73 or 0x74)]

[size of non-deletable information = 4]

<reserved> x 4

[size] <0xE1>

0xE101Dynamic Data Exchange End <225 (0xE1)> <1 (0x01)> [size = 17] <flags = PRFXID+3 (encased function)> <number of PIDs = 1> [DDE PID (type = 0x73 or 0x74)] [size of non-deletable information = 4] <reserved> x 4 [size] <0xE1>


0xE102

Publish Data Start

<225 (0xE1)> <2 (0x02)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information]

<non-deletable data> x ?

[size] <0xE1>


0xE103

Publish Data End

<225 (0xE1)> <3 (0x03)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information]

<non-deletable data> x ?

[size] <0xE1>


0xE104

Subscribe Data Start

<225 (0xE1)> <4 (0x04)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information]

<non-deletable data> x ?

[size] <0xE1>


0xE105

Subscribe Data End

<225 (0xE1)> <5 (0x05)> [size = variable] <flags = 3 (encased function)>

[size of non-deletable information]

<non-deletable data> x ?

[size] <0xE1>


0xE106

Subtitle Mark

<225 (0xE1)> <6 (0x06)> [size = 10] <flags = 0>

[size of non-deletable information = 0]

[size] <0xE1>


0xE107

Subtitle Text

<225 (0xE1)> <7 (0x07)> [size = variable] <flags = 0>

[size of non-deletable information]

[number of lines of base text involved (always 1 for now)]

[width of text including white space (WPU)]

[starting horizontal cursor position of base text]

[ending horizontal cursor position of base text]

[max top shoulder of base text]

[max bottom shoulder of base text]

[max top shoulder of subtitle text]

[max bottom shoulder of subtitle text]

<number of bytes of subtitle text>

<subtitle text (word string)> x ?

...repeat for each line

[size] <0xE1>


0xE108

Subtitle Option

<225 (0xE1)> <8 (0x08)> [size = 14] <flags = 0>

[size of non-deletable information = 4]

<justification>

0 = left justified

1 = full justified

2 = center justified

3 = indented full justified

4 = all (kinto waritsuke) justified

5 = indented all justified

<flag>

bit 0: 0 = position subtitle text above line

1 = position subtitle text below line

bit 1: 0 = do not print graphically

1 = print graphically

bit 2: 0 = use width of base text

1 = use max width of base text or subtitle text

bit 3: 0 = wrap base text as unit

1 = base text and subtitle text can wrap

[leading adjustment (signed WPU)]

[size] <0xE1>


0xE109

Subtitle Text Options

<225 (0xE1)> <9 (0x09)> [size = variable] <flags = PRFXID>

<number of PIDs = 1>

[desired subtitle font PID (type=0x55)]

[size of non-deletable information = 16]

[desired point size (WPU)]

[hash of matched typeface descriptor]

[matched font index in font list]

[matched point size of font (WPU)]

[attribute word 1]

bit 0: 1 = extra large

bit 1: 1 = very large

bit 2: 1 = large

bit 3: 1 = small print

bit 4: 1 = fine print

bit 5: 1 = superscript

bit 6: 1 = subscript

bit 7: 1 = outline

bit 8: 1 = italics

bit 9: 1 = shadow

bit 10: 1 = redline

bit 11: 1 = double underline

bit 12: 1 = bold

bit 13: 1 = strikeout

bit 14: 1 = underline

bit 15: 1 = small caps

[attribute word 2]

bit 0: 1 = blink

bit 1: 1 = reverse video

<color (RGBS)> x 4

[size] <0xE1>


0xE10A

Suppress Subtitle

<225 (0xE1)> <10 (0x0A)> [size = 11] <flags = 0>

[size of non-deletable information = 1]

<suppress code>

0 = no suppression

1 = suppress subtitles

[size] <0xE1>


0xE10B

Third Party

<225 (0xE1)> <11 (0x0B)> [size = variable] <flags = unknown>

[size of non-deletable information]

[company ID] Companies must call and register an ID with Corel Corporation Limited.

<company defined information> x ?

[size] <0xE1>


0xE10C

Pen Foreground Color (32-bit), Text

<225 (0xE1)> <12 (0x0C)> [size = 14] <flags = 0>

[size of non-deletable information = 4]

<pen foreground color (RGBT)> x 4

[size] <0xE1>


0xE10D

Pen Foreground Color (64-bit), Text

<225 (0xE1)> <13 (0x0D)> [size = 18] <flags = 0>

[size of non-deletable information = 8]

<pen foreground color (RGBT)> x 8

[size] <0xE1>


0xE10E

Pen Background Color (32-bit), Text

<225 (0xE1)> <14 (0x0E)> [size = 14] <flags = 0>

[size of non-deletable information = 4]

<pen foreground color (RGBT)> x 4

[size] <0xE1>


0xE10F

Pen Background Color (64-bit), Text

<225 (0xE1)> <15 (0x0F)> [size = 18] <flags = 0>

[size of non-deletable information = 8]

<pen foreground color (RGBT)> x 8

[size] <0xE1>


0xE110

Pen Style, Text

<225 (0xE1)> <16 (0x10)> [size = 12] <flags = 0>

[size of non-deletable information = 2]

[pen style index (unsigned)]

[size] <0xE1>


0xE111

Pen Pattern, Text

<225 (0xE1)> <17 (0x11)> [size = 12] <flags = 0>

[size of non-deletable information = 2]

[pen pattern index (unsigned)]

[size] <0xE1>


0xE112

Pen Size (16-bit), Text

<225 (0xE1)> <18 (0x12)> [size = 14] <flags = 0>

[size of non-deletable information = 4]

[pen width (0 = hairline) (unsigned WPU)]

[pen height (0 = hairline) (unsigned WPU)]

[size] <0xE1>


0xE113

Pen Size (32-bit), Text

<225 (0xE1)> <19 (0x13)> [size = 18] <flags = 0>

[size of non-deletable information = 8]

{pen width (0 = hairline) (unsigned WPU) 16.16}

{pen height (0 = hairline) (unsigned WPU) 16.16}

[size] <0xE1>


0xE114

Brush Gradient (32-bit), Text

<225 (0xE1)> <20 (0x14)> [size = variable] <flags = 0>

[size of non-deletable information]

{brush gradient angle}

[horizontal gradient reference]

[vertical gradient reference]

<brush gradient flag>

bit 7: anchor flag

bit 6: granularity flag

if anchor flag bit is set then:

[horizontal gradient extent minimum (signed WPU)]

[vertical gradient extent minimum (signed WPU)]

[horizontal gradient extent maximum (signed WPU)]

[vertical gradient extent maximum (signed WPU)]

[size] <0xE1>


0xE115

Brush Gradient (64-bit), Text

<225 (0xE1)> <21 (0x15)> [size = variable] <flags = 0>

[size of non-deletable information]

{brush gradient angle}

[horizontal gradient reference]

[vertical gradient reference]

<brush gradient flag>

bit 7: anchor flag

bit 6: granularity flag

if anchor flag is set then:

{horizontal gradient extent minimum (signed WPU) 16.16}

{vertical gradient extent minimum (signed WPU) 16.16}

{horizontal gradient extent maximum (signed WPU) 16.16}

{vertical gradient extent maximum (signed WPU) 16.16}

[size] <0xE1>


0xE116

Brush Foreground Color (32-bit), Text

<225 (0xE1)> <22 (0x16)> [size = variable] <flags = 0>

[size of non-deletable information]

<gradient type>

if gradient type is 0 (none), then:

<brush foreground color (RGBT)> x 4

else

[number, n, of brush foreground colors]

for each color:

<brush foreground color (RGBT)> x 4

after all brush foreground colors:

[color position array] x (n-1)

[size] <0xE1>


0xE117

Brush Foreground Color (64-bit), Text

<225 (0xE1)> <23 (0x17)> [size = variable] <flags = 0>

[size of non-deletable information]

<gradient type>

if gradient type is 0 (none), then:

<brush foreground color (RGBT)> x 8

else

[number, n, of brush foreground colors]

for each color:

<brush foreground color (RGBT)> x 8

after all brush foreground colors:

[color position array] x (n-1)

[size] <0xE1>


0xE118

Brush Background Color (32-bit), Text

<225 (0xE1)> <24 (0x18)> [size = 14] <flags = 0>

[size of non-deletable information = 4]

<brush background color (RGBT)> x 4

[size] <0xE1>


0xE119

Brush Background Color (64-bit), Text

<225 (0xE1)> <25 (0x19)> [size = 18] <flags = 0>

[size of non-deletable information = 8]

<brush background color (RGBT)> x 8

[size] <0xE1>


0xE11A

Brush Pattern, Text

<225 (0xE1)> <26 (0x1A)> [size = 12] <flags = 0>

[size of non-deletable information = 2]

[brush pattern index (unsigned)]

[size] <0xE1>


0xE11B

Miscellaneous Attributes, Text

<225 (0xE1)> <27 (0x1B)> [size = 11] <flags = 0>

[size of non-deletable information = 1]

<flag>

bit 1: 0 = turn outline on

1 = turn outline off

bit 0: 0 = turn fill on

1 = turn fill off (hollow fill)

[size] <0xE1>


0xE11C

Presentations Slide Options

<225 (0xE1)> <28 (0x1C)> [size = variable] <flags = 0>

[size of non-deletable information]

<slide options> x ?

[size] <0xE1>


0xE11D

Presentations Organization Chart Node Options

<225 (0xE1)> <29 (0x1D)> [size = variable] <flags = 0>

[size of non-deletable information]

[flag]

bit 1: 0 = node is not a staff node

1 = node is a staff node

bit 0: 0 = node is not current top node

1 = node is current top node

[size] <0xE1>


0xE11E

Hide for Conversions

<225 (0xE1)> <30 (0x1E)> [size = variable] <flags = (0 or PRFXID) + (0 or 3 {encased function})>

<number of PIDs>

[PIDs] x ?

[size of non-deletable information]

<product type of the hidden code = 1 for WP files>

<file type>

0x0A = WP 6.x

0x2C = Macintosh WP 3.x

<major version>

3 = Macintosh WP 3.x

2 = WP 6.x

<minor version>

0 = Macintosh WP 3.0 or WP 6.0

<hidden function data> x ?

[size] <0xE1>


0xE11F

Hide Off for Conversions

<225 (0xE1)> <31 (0x1F)> [size = 10] <flags = 3 (encased function)>

[size of non-deletable information = 0]

[size] <0xE1>


Function 226 (0xE2) = Formatter Group



The formatter group subfunctions have character orientation.

This group is platform dependent and formatter specific, and is undocumented. WordPerfect rebuilds the group when a document is retrieved or opened. Developers should use the size word to skip over any 0xE2 function codes.

<226 (0xE2)> formatter group function

<0 (0x00) to 255 (0xFF)>

[size = variable] size of function code

<undocumented data> x ?

[size] <0xE2>