
Packet Type 65 (0x41)
Graphics Box Style
The "Content" prefix ID referred to in this description, is the standard File Name packet. The
"Caption" prefix ID referred to in this description is the standard WP Text packet.
Several of the fields documented in this packet exist only if various bit flags are set. The
condition for the existence of a field and a reference to the controlling flag will precede the data.
When computing overall sizes and offsets, remember to keep this fact in mind.
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.
[number of prefix packet IDs] (may be 0)
[name/library data prefix IDs] (none currently defined) see box
name/library data prefix ID flag field below
[counter prefix IDs (type=0x11)] (counter currently defined)
[positioning data prefix IDs] (none currently defined) see box
positioning data prefix ID flag field below
[content prefix IDs] (content rendering IDs, actual content not
allowed) see box content prefix ID flag field below
[caption prefix IDs] (WP text packets), (2 possible: default caption
initial style, default caption number style; actual caption data not
allowed) see box caption prefix ID flag field below
[border prefix IDs (type=0x30)] (2 possible: border style and border
style overrides) see box border prefix ID flag field below
[fill prefix IDs (type=0x44)] (fill style currently defined) see box
fill prefix ID flag field below
[wrap prefix IDs] (none currently defined) see box wrap prefix ID
flag field below
[hypertext prefix IDs] (2 possible) see box hypertext prefix ID flag
field below
Box name/library data:
[total size of box data] (not including this word)
[size of box name and library data area] (not including this word)
<box name/library data prefix ID flags> (none currently defined)
<box library management flags>
bit 0: 1 = this is a library style
bits 1-7: undefined
[box name length word]
> 0 user-defined box style; a word string containing the name
follows
0 name is "Figure Box" (English only)
-1 name is "Table Box" (English only)
-2 name is "Text Box" (English only)
-3 name is "User Box" (English only)
-4 name is "Equation Box" (English only)
-5 name is "Button Box" (English only)
< -5 undefined box style name
[word text of name (if box name length > 0)] x ?
Box counter data:
[size of box counter area]
<box counter prefix ID flags>
bit 0: 1 = counter prefix ID appears at front of style
bits 1-7: currently undefined
Box positioning data:
[size of box positioning area] (not including this word)
<box positioning prefix ID flags> no bits currently defined
<box general positioning flags>
bits 0-2: box anchor value
0 = page anchor
1 = paragraph anchor
2 = character anchor
bit 3: page offset bit (only used for page anchor boxes)
0 = don't use automatic code placement when inserting
1 = do use automatic code placement when inserting (will delay box
code if necessary)
bit 4: overlap flag - Added for WP 7.0
0 = box is not overlapping another box
1 = box is overlapping another box
bit 5: auto flag (used in WPwin) - Added for WP 7.0
0 = place box to the right of the page
1 = place the box at the cursor
bits 6-7: currently undefined
<box horizontal position flags> horizontal position flags are ignored
for character-anchored boxes
bits 0-1: horizontal alignment type
0 = absolute from left of page
1 = aligned to margins
2 = aligned to columns
bits 2-4: horizontal alignment
0 = left
1 = right
2 = center
3 = full
bits 5-7: currently undefined
[box horizontal offset (signed WPU) or absolute position (unsigned
WPU)]
<left column (for page anchored boxes aligned to columns)>
<right column (for page anchored boxes aligned to columns)>
<box vertical position flags> vertical position flags are ignored for
paragraph- anchored boxes
bits 0-1: vertical alignment type (ignored for character-anchored
boxes)
0 = absolute from top of page
1 = aligned to margins
bits 2-4: vertical alignment
0 = top
1 = bottom
2 = center
3 = full/baseline (treated as baseline for character boxes)
bit 5: character box vertical effect
0 = box affects line height
1 = box does not affect line height (still affects cursor
position)
bits 6-7: currently undefined
[box vertical offset (signed WPU) or absolute position (unsigned WPU)]
<box width flags>
bit 0: width value flag
0 = fixed width (width from width word)
1 = automatic width from content
bits 1-7: currently undefined
[box width (unsigned WPU)]
<box height flags>
bit 0: height value flag
0 = fixed height (height from height word)
1 = automatic height from content
bits 1-7: currently undefined
[box height (unsigned WPU)]
Box content data:
[size of content area] (not including this word)
<box content prefix ID flags> (not currently defined)
<box content type>
0 = no content (empty)
1 = text content (WP 7.0 document)
2 = linked text content (WP 7.0 document)
3 = image (graphics) content (WPG2.0 document)
4 = equation content
5 = presentation content (Draw Presentation document)
6 = real-time video content (not used)
7 = macro content (WPM document)
8 = sound content(WPS document)
128 (0x80) = external content (content rendering/editing is handled
by an outside application)
<box content alignment flags>
bits 0-1: horizontal alignment of content
0 = left
1 = right
2 = center
bits 2-3: vertical alignment of content
0 = top
1 = bottom
2 = center
bit 4: if content is scalable, preserve aspect ratio
0 = preserve aspect ratio
1 = don't preserve aspect ratio
bits 5-7: currently undefined
[total size of content rendering data] (not including this word)
If box content type is empty, there is no rendering data and this word
must be 0. This word is the same as the total size word at the front
of all the content rendering data definitions.
<box content rendering information> (this will be one of the 9 blocks
of data defined below under Box Content Rendering Information
controlled by the box content type field)
Box Content Rendering Information
The following paragraphs describe the content rendering information for each content type
(see
the box content type field above). The general form is a word of total length, followed by a word
of fixed-size length, followed by the data.
Text Content Rendering Information
Exists if box content type field equals 1.
[total size of text rendering information] (not including this word)
<prefix ID flags>
bit 0: 1 = text content prefix ID appears at front of function.
This bit must not be set for a style.
bit 1: 1 = text content default style prefix ID appears at front of
style. This bit should not be set in function override data.
bits 2-7: currently undefined
<text content rendering flag>
bit 0: 1 = format text according to simple box rectangle (before
corners are applied, and before rotation and translation)
bit 1: currently undefined
bits 2-3: text rotation
0 = text not rotated
1 = rotated 90
2 = rotated 180
3 = rotated 270
bits 4-7: currently undefined
Text Content Override
If the text content rendering override bit is set in the box override flags, and the content type
of
the box is text, the following data is appended to the bottom of the text content rendering flag
field:
[total size of text content override data] (not including this word)
[text content override flags] Bits in this flag determine which of
the following data exits. If a bit is set, the corresponding data is
appended under this flag field. If a bit is 0, the corresponding data
is omitted.
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
Linked Text Content Flags
Exists if box content type field equals 2. Currently not used.
Image Content Rendering Flags
Exists if box content type field equals 3.
[total size of graphics rendering information] (not including this
word)
<prefix ID flags>
bit 0: 1 = Image content prefix ID appears at front of function.
This bit must not be set for a style.
bits 1-7: currently undefined
[image native width (WPU)]
[image native height (WPU)]
<image content rendering flags>
bits 0-1: area fill handling
0 = normal fills
1 = no area fills are performed (fills are transparent)
2 = non-transparent area fills are always opaque white
bit 2: 1 = Invert colors. The color inversion is performed after
the color to black and white conversion, if black and white bit is
set.
bit 3: 1 = colors converted to black and white (black and white
threshold)
bits 4-5: available
bit 6: 1 = mirror contents in y
bit 7: 1 = mirror contents in x
{fixed point x scale factor to apply to image} default = 1.0 (scaled
to fit in box)
{fixed point y scale factor to apply to image} default = 1.0 (scaled
to fit in box)
{signed x translation value to apply to image} (-1.0 to +1.0)
interpreted as fraction of untransformed image width. Default = 0,
means no translation. Positive translation means image is shifted
right.
{signed y translation value to apply to image} (-1.0 to +1.0)
interpreted as fraction of untransformed image height. Default = 0,
means no translation. Positive translation means image is shifted up.
{fixed point rotation angle to apply to image} (0.0-360.0,
counterclockwise) default = 0
<black and white threshold> (0-255) default = 127
The black and white threshold value ranges from 0-255 and simply
defines the luminosity cutoff for mapping to black or white.
Luminosity is determined by calculating .30 Red + .59 Green + .11 Blue
and normalizing to 0-255 range.
{fixed point lightness value} (-1.0 to 1.0) 0 indicates no adjustment
{fixed point contrast value> (-1.0 to 1.0) 0 indicates no adjustment
<image dither method flags>
bits 0-3: dither method
0 = use .PRS specified default
1 = force halftoning
2 = force ordered dither
3 = force error-diffusion dither
bits 4-7: dither source
0 = use .PRS specified default
1 = force WP dithering/halftoning
2 = force printer dithering/halftoning
3 = use external source (e.g., OLE server under Windows)
{halftone screen LPI} fixed point value, default = -1.0 for LPI is
interpreted to mean use the .PRS-specified default.
{plane 0, halftone screen angle} fixed point value, default = -1.0
for the screen angle is interpreted to mean use the .PRS-specified
default.
{plane 1, halftone screen angle} fixed point value, default = -1.0
{plane 2, halftone screen angle} fixed point value, default = -1.0
{plane 3, halftone screen angle} fixed point value, default = -1.0
The double word fixed point values are 65536ths. In other words,
there is one word of integer and 1 word of fraction (65536ths).
[fractional portion]
[integer portion]
Image Content Override
If the image content rendering override bit is set in the box override flags, and the content
type of
the box is image, the following data is appended after the "plane 3, halftone screen angle" field
above:
[total size of image content override data] (not including this word)
[image content override flags]
If the labeled bit in the image content override flags field is set,
the corresponding data will be appended under this flag field.
bit 15: Prefix ID flag override. If this override bit is set, and
bit 0 of the prefix ID flags is overridden, the image native size
override must also be set.
<mask>
<data>
bit 14: Image native size. This override bit must be set if bit 0
in the image content prefix id flags is overridden.
[image native width (WPU)]
[image native height (WPU)]
bit 13: image content rendering flags override
<mask>
<data>
bit 12: scaling factor override
{fixed point x scaling factor}
{fixed point y scaling factor}
bit 11: translation factor override
{x translation factor}
{y translation factor}
bit 10: rotation angle override
{data}
bit 9: black and white threshold override
<data>
bit 8: lightness value override
{data}
bit 7: contrast value override
{data}
bit 6: halftone data override
{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
<mask>
<data>
bits 4-0: currently undefined
Equation Content Rendering Information
Used if box content type field equals 4. This is subject to change.
[total size of equation rendering data] (not including this word)
<prefix ID flags>
bit 0: 1 = equation markup text prefix ID appears at front of
function. This bit must not be set for a style.
bit 1: 1 = equation compact box format appears at front of function.
This bit must not be set for a style. If bit 0 is set (indicating
equation markup text prefix id), bit 2 must be set, even if the prefix
ID is invalid (0).
bit 2:
0 = use current document font for equation. Current document font
means the font in effect where the box function appears. For a box
template, current document font means the initial document font.
1 = typeface descriptor prefix ID appears at front of style
bits 3-7: currently undefined
<equation content rendering flags>
bits 0-7: currently undefined
[equation base font size] (in unsigned WPU)
<equation color (RGBS)> x 4
{fixed point rotation value to apply to equation} (0.0-360.0,
counter-clockwise)
Equation Content Rendering Data Override
If the content rendering override bit is set in the box override flags, and the content type of
the
box is equation, the following data is appended to the fixed-point rotation value to apply to
equation field above:
[total size of equation content override data] (not including this
word)
[equation content override flags]
The following data appear according to bits set in the equation
content override flags. This corresponding data is appended to this
flag field.
bit 15: prefix ID flag override
<mask>
<data>
bit 14: equation rendering flags override
<mask>
<data>
bit 13: equation font size override
[equation base font size]
bit 12: equation color override
<equation color (RGBS)> x 4
bit 11: equation rotation override
{fixed-point rotation angle} (0.0-360.0)
bits 10-0: currently undefined
Presentation Content Rendering Information
Used if Box content type field equals 5. This is subject to change.
[total size of presentation rendering data] (not including this word)
<prefix ID flags>
bit 0: 1 = Presentation content prefix ID appears at front of
function. This bit must not be set for a style.
bits 1-7: currently undefined
<presentation content rendering flags>
bit 0:
1 = run presentation in a full sized window/screen
0 = run presentation inside the box which encloses it
Presentation Content Rendering Data Override
Information pending.
Video Content Rendering Information
Used if box content type field equals 6. Currently not used.
[total size of video rendering data] (not including this word)
<prefix ID flags>
bit 0: 1 = Video content prefix ID appears at front of function.
This bit must not be set for a style.
bits 1-7: currently undefined
<video content rendering flags>
bit 0:
1 = run video in a full sized window/screen
0 = run video inside the box which encloses it
Video Content Rendering Data Override
Information pending.
Macro Content Rendering Information
Used if box content type field equals 7. Currently not used.
[total size of macro rendering data] (not including this word)
<prefix ID flags>
bit 0: 1 = Macro content prefix ID appears at front of function.
This bit must not be set for a style.
bits 1-7: currently undefined
<macro start action>
Macro Content Rendering Data Override
Information pending.
Sound Content Rendering Information
Used if box content type field equals 8. Currently not used.
[total size of sound rendering data] (not including this word)
<prefix ID flags>
bit 0: 1 = Sound content prefix ID appears at front of function.
This bit must not be set for a style.
bits 1-7: currently undefined
<sound start action>
Sound Content Rendering Data Override
Information pending.
External Content Rendering Information
Used if box content type field equals 128 (0x80). Currently not used.
[total size of external rendering data] (not including this word)
<prefix ID flags>
bit 0: 1 = External content prefix ID appears at front of function.
This bit must not be set for a style.
bits 1-7: currently undefined
External Content Rendering Data Override
Information pending.
(Graphics Box Style Packet Continued)
Box caption data:
[size of caption area] (not including this word)
<box caption prefix ID flags>
bit 0: 1 = Caption data prefix ID appears at front of function.
This bit must not be set in a style.
bit 1: 1 = Caption default initial style prefix ID appears at front
of style. This should not be set in function override data.
bit 2: 1 = Caption default number style prefix ID appears at front
of style. This should not be set in function override data.
bits 3-7: currently undefined
<caption positioning flags>
bits 0-1: side of content that caption appears on.
0 = left
1 = right
2 = top
3 = bottom
bit 2-3: where caption is in relation to border
0 = outside
1 = inside
2 = on
bits 4-5: caption alignment
0 = left or top
1 = right or bottom
2 = center
bit 6: caption alignment offset word
0 = caption alignment offset word is signed WPU
1 = caption alignment offset word is signed 32768ths of box width
or height, depending on caption rotation
bit 7: currently undefined
<caption formatting flags>
bits 0-1: formatting width
0 = use caption formatting width word as unsigned WPU
1 = use caption formatting width word as unsigned 65336ths
2 = format caption as if 65536/65536ths, then use maximum line
width (automatic size)
bits 2-3: caption rotation
0 = caption not rotated
1 = rotated 90
2 = rotated 180
3 = rotated 270
bits 4-7: currently undefined
[caption formatting width] (the units of measure used here depends on
the caption formatting flags field above)
[caption alignment offset] (the units of measure used here depends on
the caption formatting flags field above)
Box border data:
[size of border area] (not including this word)
<box border prefix ID flags>
bit 0: 1 = border style prefix ID appears at front of style
bits 1-7: currently undefined
[total size of border template override data] (not including this
word, minimum = 2)
This word is the same as the total size word at the front of the
border template override data definitions. It is not an additional
word. The following word (fill template override flags) is the same
as the word described in the fill template override data definition.
It is not an additional flag word.
[border template override flags]
<border template override data> x ? (see Border Template Override Data
below)
Box fill data:
[size of fill area] (not including this word)
<box fill prefix ID flags>
bit 0: 1 = fill style prefix ID appears at front of style
bits 1-7: currently undefined
[total size of fill style override data] (not including this word,
minimum value = 2) This word is the same as the total size word at the
front of the fill template override data definitions. It is not an
additional word.
[fill style override flags] This word is the same as the word
described in the fill template override data definition. It is not an
additional flag word.
<fill style override data> x ?
Box wrapping data:
[size of box wrapping area] (not including this word)
<box wrapping prefix ID flags> No bits currently defined
<box wrapping flags>
bits 0-3: indicates which side text wraps around box
0 = wrap text on side with largest area for text (i.e., most space
between side and margin).
1 = wrap text on left side
2 = wrap text on right side
3 = do not wrap text on either side (text flows from above box to
below box)
4 = wrap text on both sides with text flow crossing the box for
each line
5 = Wrap text on both sides with text flow working in a columnar
fashion.
6 = no text wrap
bits 4-7: method used to generate the wrapping rectangles.
0 = Generate one wrap rectangle enclosing the entire box. Always
relative to the box, never the content.
1 = Generate irregular wrap rectangles via an internal algorithm.
If no border style is referenced, generate wrap rectangles from
contents; otherwise, generate wrap rectangles from border (including
rounded corners) + border outside spacing. If there is a border, the
wrap rectangle is relative to the box; otherwise, it is relative to
the content.
2 = use user-defined wrap rectangles relative to the box
3 = use user-defined wrap rectangles relative to the content
Box hypertext data:
Hypertext prefix IDs should not exist in a templates, and the hypertext action type should be
none in a template.
[size of hypertext definition area] (not including this word)
<hypertext prefix ID flags>
bit 0: 1 = filename (doc or macro) prefix ID appears at front of
function
bit 1: 1 = bookmark name prefix ID appears at front of function
bits 2-7: currently undefined
<hypertext type flag>
0 = Hypertext action not defined (only value allowed in style)
1 = Hypertext bookmark action
2 = Hypertext macro action
Border Template Override Data
If the border template override bit is set in the box 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
<mask>
<data>
bit 14: border general flags data
<mask>
<data>
bit 13: corner radius data
[corner radius]
bit 12: inside spacing data
[left inside spacing]
[right inside spacing]
[top inside spacing]
[bottom inside spacing]
bit 11: outside spacing data
[left outside spacing]
[right outside spacing]
[top outside spacing]
[bottom outside spacing]
bit 10: drop shadow data
<drop shadow flag>
[drop shadow spacing>
<drop shadow color (RGBS)> x 4
bit 9: border color data
<border color (RGBS)> x 4
bits 0-8: currently undefined
Box Fill Override Data
If the box fill override bit is set in the box 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
<mask>
<data>
bit 14: fill template data override (see Fill Template Override Data
below)
bits 13-0: currently undefined
Fill Template Override 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
<foreground/start color (RGBS)> x 4
<background/end color (RGBS)> x 4
bits 14-0: currently undefined
Box Wrapping Override 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
<mask>
<data>
bit 14: wrapping flags
<mask>
<data>
bits 13-0: currently undefined
Box Hypertext Override Data
If the box hypertext 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
<mask>
<data>
bit 14: box hypertext type flags override
<data>
bits 13-0: currently undefined
Format of Platform-Independent Wrap Rectangles
Each wrap rectangle consists of four 16-bit words as follows:
[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]
Units for the above 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. 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 Rules
All currently undefined data should be set to 0 when a new box template or box function is
created.
For any flag data, only those bits currently defined should be modified. All others should be
preserved.
Code should be written to preserve fixed and variable length data that may be added later.
This
means utilizing the value of the total length and the values of the lengths of individual data
sections.
Names of templates will not be longer than 80 characters (160 bytes), not including length
word.
Packet Type 66 (0x42)
Border Line Style
The following format shows all possible fields. Some of the fields may or may not exist
depending on various flag bits.
[number of prefix IDs (minimum 0)]
[name/library data PID] (none currently defined)
[line data PIDs] (none currently defined)
[total size of line style data] (not including this word nor any
previous PID data)
Line name and library data area:
[size of line name and library data> (not including this word)
<line name/library data PID flags> (none currently defined, controls
name/library data PID above)
<line library management flags>
bit 0: 1 = this is a library style
bits 1-7: undefined
[line name length]
> 0 length of style name in bytes
0 single line (English only)
-1 double line (English only)
-2 dashed line (English only)
-3 dotted line (English only)
-4 thick line (English only)
-5 extra thick line (English only)
-6 thin/thick double line (English only)
-7 thick/thin double line (English only)
-8 button top/left line (English only)
-9 button bottom/right line (English only)
[line name] x ? exists only if line name length > 0
Line data area:
[size of line data] (not including this word)
<line data PID flags> (none currently defined, controls line data PIDs
above)
[total width of line definition (WPUs)]
<number of parallel line segments defined (minimum 1)>
When the line definition is used in a border, the first line defined is the innermost and the last
line defined the outer-most. When the line definition is used for a horizontal line, the first line
defined is the top-most and the last line defined is the bottom-most. When the line definition is
used for a vertical line, the first line defined is the left-most and the last line defined is the
right-most.
The following is repeated for each line piece defined:
[size of line segment definition] (not including this word)
<line segment general flags>
Bits 0-1: style type
0 = predefined WPG line style (see Predefined WPG Line Style Data
below)
1 = custom (user-defined) line style, data in segment definition
Bits 2-7: currently undefined
[width (thickness) of line (WPUs, may be zero)]
[spacing between this border line and the next] Spacing is measured
between the two printable edges of the lines next to each other.
<line segment (RGBS)> x 4
<line segment style definition> x ? data depends on value in general
flags (see Line Segment Styles below)
Line Segment Styles
One of the following data fields appears in the style definition field above, based on the style
type field in the line segment general flags.
Predefined WPG line style data (Exists if the line segment general flags field equals 0):
<WPG line style set (0 for now)>
<WPG line style Number>
Custom line style data (Exists if the line segment general flags field equals 1):
<number of on/off commands (minimum 2)> If the count is zero or 1, the line is solid.
Therefore the minimum must be 2. The commands alternate between on and off run lengths for
drawing the line.
[on/off commands] (run lengths in unsigned WPUs, see Rendition Options in the
Graphics File
Format section for examples)
Packet Type 67 (0x43)
Fill Style
The following format shows all possible fields. Some of the fields may or may not exist
depending on various bit flags.
[number of child prefix IDs (minimum 0)]
[name/library data PIDs] (none currently defined)
[fill data PIDs] (none currently defined)
[total size of fill style data] (not including this word)
[size of fill name and library data area] (not including this word)]
<fill name/library data prefix ID flags] (none currently defined)
<fill library management flags>
bit 0: 1 = this is a library style
bits 1-7: undefined
[fill name length word]
> 0 = length of fill style name text in bytes
0 = 10% fill (English only)
-1 = 20% fill (English only)
-2 = 30% fill (English only)
-3 = 40% fill (English only)
-4 = 50% fill (English only)
-5 = 60% fill (English only)
-6 = 70% fill (English only)
-7 = 80% fill (English only)
-8 = 90% fill (English only)
-9 = 100% fill (English only)
-10 = button fill (English only)
<word text of name> x ? (present only if fill name length > 0)
[size of fill style first variable-length area] (not including this
word)
<fill prefix ID flags> (none currently defined)
<color 1 (RGBS) (foreground for WPG2, starting for gradient)> x 4
<color 2 (RGBS) (background for WPG2, ending for gradient)> x 4
<fill type>
0 = WPG2 pattern set/index
1 = gradient fill
[size of fill information] (not including this word)
<variable fill information, depending on type> x ? (see Fill Types
Data below)
Fill Types Data
Depending on how the value contained in the fill type field, one of the two following data
blocks
is inserted into the fill information field above.
WPG2 Pattern Fill
Used if fill type field equals 0.
<WPG2 pattern set (always 0)>
<WPG2 pattern index>
Gradient Fill
Used if fill type field equals 1.
<flags>
bits 0-4: Gradient type. These correspond exactly to the gradient
types the graphical interface supports.
0 = linear
1 = radial
2 = rectangular
bit 5: 1 = rectangular or radial gradient has same aspect ratio as
document object
0 = square or circular
bits 6-7: currently undefined
[number of gradient steps] (0 means calculate number of steps)
{fixed point gradient rotation angle} (0.0-360.0)
[fractional (65536ths) x offset of gradient starting point from left
of object bounding box] (for convenience, 65535 is considered 65536)
[fractional (65536ths) y offset of gradient starting point from top of
object bounding box] (for convenience, 65535 is considered 65536)
Packet Type 68 (0x44)
Border Style
The following format shows all possible fields. Some of the fields may or may not exist,
depending on various bit flags.
[number of prefix IDs (minimum 1)
[left side line style PID (type=0x42)]
[right side line style PID (type=0x42)]
[top side line style PID (type=0x42)]
[bottom side line style PID (type=0x42)]
[separator side line style PID (type=0x42)]
[total size of border style data] (not including this word)
[size of border name and library data area] (not including this word)
<border name and library data prefix ID flags> (none currently
defined)
<border library management flags>
bit 0: 1 = this is a library style
[border name length word]
> 0 = length of border style name text in bytes
0 = spacing only (no lines)
-1 = single border (English only)
-2 = double border (English only)
-3 = dashed border line (English only)
-4 = dotted border (English only)
-5 = thick border (English only)
-6 = extra thick border (English only)
-7 = thin/thick double border (English only)
-8 = thick/thin double border (English only)
-9 = thick top and bottom border (English only)
-10 = button border (English only)
<word text of name> x ? (if border name length word > 0)
[size of border data area] (not including this word)
<border prefix ID flags>
bit 0: 1 = left side line PID appears at front of style
bit 1: 1 = right side line PID appears at front of style
bit 2: 1 = top side line PID appears at front of style
bit 3: 1 = bottom side line PID appears at front of style
bit 4: 1 = separator line PID appears at front of style
bits 5-7: currently undefined
<general definition flags>
bit 0: 1 = user border color for line colors
0 = use colors from individual segment definitions
bits 1-7: currently undefined
[corner radius (WPUs)]
[left inside spacing]
[right inside spacing]
[top inside spacing]
[bottom inside spacing]
[left outside spacing]
[right outside spacing]
[top outside spacing]
[bottom outside spacing]
[separator outside spacing] (Separator spacing is added to both sides
of the separator line.)
<border color (RGBS)> x 4
<drop shadow flag>
0 = no drop shadow effect
1 = drop shadow toward upper left corner
2 = drop shadow toward lower left corner
3 = drop shadow toward lower right corner
4 = drop shadow toward upper right corner
[drop shadow spacing (WPU)]
<drop shadow color (RGBS)> x 4
Packet Type 69 (0x45)
Graphics Rule Counter
This packet has the same format as the Counters Data packet 17 (0x11).
[name] x ? null terminated
<number of counter levels valid (1-5)>
<default numbering method for each level> x 5
[level name 1] x ? null terminated
[level name 2] x ? null terminated
[level name 3] x ? null terminated
[level name 4] x ? null terminated
[level name 5] x ? null terminated
Packet Type 70 (0x46) - Added for WP 7.0
Intellitag TAG with Attributes
[number of attributes]
[attribute 1 prefix ID] prefix ID's of attribute values (child
packets)
[attribute 2 prefix ID]
...
[attribute n prefix ID]
[tag error flag] error flag that encompasses full tag (0 = no error)
bit 0: tag length is exceeded
bit 1: attribute specification length exceeded
bit 2: number of IDs in attribute values exceeded
bit 3: number of entities in attribute values exceeded
The following information is repeated for each attribute:
[attribute DTD index] can get type of attribute from index number
<attribute error code>
bit 7: 1 = both LITDEL and ALITDEL are in the attribute value
bits 0-6:
0 no error
1 attribute is unknown to DTD
2 illegal character in attribute name value
3 illegal character in attribute name token value
4 illegal character in attribute number value
5 illegal character in attribute number token value
6 value in attribute exceeds NAMELEN limit
7 too many tokens in attribute
8 value in attribute exceeds LITLEN limit
9 no mapping for extended character in attribute
10 attribute has empty attribute value literal
11 token value not in declared value list
12 mismatch between DTD fixed value and attribute value
13 unknown entity type attribute value
14 illegal entity type attribute value
15 entity open in attribute value not expanded
16 character reference open in attribute value not checked
17 attribute is duplicated in tag
Packet Type 71 (0x47) - Added for WP 7.0
IntelliTag® Attribute Text
[number of blocks = 1]
{offset to text}
{size of text}
<lit delimiter>
1 = LITDEL present
2 = ALITDEL present
3 = both present
[attribute name] x ?
<text> x ?
Packet Type 72 (0x48) - Added for WP 7.0
IntelliTag LGC Filename
[number of child PIDs = 3]
[child ID for LSI filename]
[child ID for Document Type name]
[child ID for Alias filename]
<Reserved> x 6
<LGC filename> x ?
Packet Type 73 (0x49) - Added for WP 7.0
IntelliTag External File Reference
[number of child PIDs = 2]
[notation attribute PID]
[system identifier (filename) PID]
[data type] CDATA, SDATA, and so forth
[entity declaration error] error flag for entire declaration
[number of text strings] currently 3
[size of entity name]
[size of public identifier]
[size of notation name]
[external entity name] x ?
[public identifier] x ?
[notation name] x ?
Packet Type 74 (0x4A) - Added for WP 7.0
IntelliTag Notation Attributes
[number of attributes]
[attribute 1 PID] prefix IDs of attribute values
[attribute 2 prefix ID]
...
[attribute n prefix ID]
[notation error flag] error flag for this set of attributes (see
packet 0x46)
The following information is repeated for each attribute:
[attribute 1 DTD index] can get type of attribute from index number
<attribute 1 error code> error for each attribute (see packet 0x46)
Packet Type 75 (0x4B) - Added for WP 7.0
IntelliTag DTD Entity Reference
[entity name] x ?
Packet Type 76 (0x4C) - 82 (0x52)
Reserved
Packet Type 83 (0x53)
Windows Data Store Directory
No documentation will be provided for this packet.
Packet Type 84 (0x54)
Windows Data Store Data
No documentation will be provided for this packet.
Packet Type 85 (0x55)
Desired Font Descriptor
For further description of the primary family ID, scripting system, width, weight, attributes,
and
so forth, see the documentation for Packet Type 32 (0x20), which has the same format as this
packet.
[average character width (WPU)]
[short ascender height (PSU)]
[x height (PSU)]
[descender height (PSU)]
[italic adjust ()]
[primary family ID]
<scripting system>
<primary character set>
<width (aspect ratio)>
<weight>
<attributes>
<general characteristics>
<classification>
<fill byte>
<font type>
<font source file type>
[typeface name length] maximum 58
<typeface name> x ? WP word string
When no printer is selected, the default font descriptor is the following:
[0x3C = average character width]
<0x1e14 = ascender height (77%)>
<0x170C = x height>
<0x0A8C = descender height>
<0 = italic adj>
<1 = Courier family ID>
<1 = scripting system>
<0 = primary character set (ASCII)>
<0x70 = width (aspect ratio)>
<0x60 = weight>
<0 = attributes (normal)>
<0x25 = general characteristics>
<0 = serif classification>
<0 = built-in font type>
<0x10 = .PRS source>
<0 = typeface name length for default descriptor>
<typeface name = does not exist for default descriptor>
Packet Type 86 (0x56)
Merge File Type
[merge file type]
1 = primary document
2 = table secondary type merge document
4 = secondary merge type document
Packet Type 87 (0x57)
Sound Clip
[number of child prefix IDs = 1]
[child file packet PID (type=0x58)]
<sound clip type>
0 = MIDI sound
1 = digital audio
others to be defined
<left volume> in units of dB
<right volume> in units of dB
[sound clip description] x ? null terminated
Example 1:
Packet type 0x57 points to a child packet type 0x58 (Sound Clip Child Packet). This child
packet
0x58 contains a filename and may point to one or more child packets which are also packet type
0x58. These child packets contain sound data.
Example 2:
Packet type 0x57 points to a child packet type 0x07 (Native Filename). This child packet
0x07
contains a filename and may point to one or more child packets which are packet type 0x6F
(Graphics Data). These child packets contain sound data in this case.
Both of these examples are supported by WordPerfect.
Packet Type 88 (0x58)
Sound Clip Child Packet
Contains a filename or a data packet. If this packet does not have any children, the format
is:
[sound data filename] x ? null terminated or <sound data> x ?
If this packet does have children, the format is the following:
[number of child IDs]
[ID 1 (type=0x58)] ID of child packet containing sound data
[ID 2 (type=0x58)] ID of child packet containing sound data
.. ..
[ID n (type=0x58)] last child ID containing sound data
[tag 1] tag flag for first child packet
[tag 2] tag flag for second child packet
.. ..
[tag n] last tag for last child ID
[sound filename] x ? null terminated
Format for tag flags
0x0001 = data being kept internal
0x0010 = data being kept internal (hot link)
0x0011 = data being kept internal (warm link)
0x0012 = data being kept internal (cold link)
Packet Type 89 (0x59)
Merge Associated Data File
[merge associated filename] x ?
Packet Type 90 (0x5A)
Embedded Font (TrueType on Windows)
This data is platform specific.
<font data> x ?
Packet Type 91 (0x5B) - 95 (0x5F)
Available
Packet Type 96 (0x60)
Text/Single Cell Name
Holds floating cell name.
[length of cell name packet]
[count always = 0 for single cell packets]
[cell name word string] x 21(max) null terminated
Packet Type 97 (0x61)
Table Names
This packet holds one or more table names.
[length of table names packet]
[count of names which follow the table name]
The count of names will be 0 if no data follows the table name. If count of names is greater
than
zero, the structure data following the table exists. The data following the table name is a
repeating structure for names of cells, columns, rows, and blocks.
[table name] x 21(max) null terminated
[length of this name structure]
[reference name] x ? null terminated
[reference type]
1 = row
2 = column
3 = cell
4 = block
The data which follows depends on the reference type.
Row Type (1):
[row number]
Column Type (2):
[column number]
Cell Type (3):
[row number of Cell]
[col number of Cell]
Block Type (4):
[begin row number of block]
[begin col number of block]
[end row number of block]
[end col number of block]
Packet Type 98 (0x62)
Page Number Format String
[page number format string] x ?
Packet Type 99 (0x63)
Math Formulas for Columns
<constants and operators> x ?
Math Operators
Data are stored in postfix or Reverse Polish Notation (RPN) order. All postfix math rules
apply.
Operators are stored in the following WordPerfect-specific codes:
Operator
|
| Code
| Add
| (+)
| 1 (0x1)
| Subtract
| ()
| 2 (0x2)
| Multiply
| (*)
| 3 (0x3)
| Divide
| (/)
| 4 (0x4)
| Negative
| ()
| 5 (0x5)
| Positive
| (+)
| 6 (0x6)
| Average
| (+/)
| 7 (0x7)
| Equal
| (=)
| 8 (0x8)
| Average Totals
| (=/)
| 9 (0x9) |
Constants
Each (decimal) digit of a constant is stored as a hexadecimal value in a nibble (4 bits, 2
nibbles
per byte). The first nibble of the constant equals 12 (0xC) and marks the beginning of the
number. Following this nibble, each digit is stored as that digit plus 1 [that is, 0 = 1 (0x1), 1 = 2
(0x2), 9 = 10 (0xA)] and occupies one nibble. If the number occupies fewer than seven digits, a
15 (0xF) follows the last digit. A seven-digit number has no 15 (0xF) value on the end. The 14
(0xE) value represents a decimal point. WordPerfect puts 1 (0x1) into unused bytes that follow
15 (0xF), but these unused bytes are not required to read the value of the constant. Examples are
shown in the table below.
Hex Bytes
| Decimal Value
| C2 3E 4F 01
| 12.3
| C1 F0 01 01
| 0
| C3 51 2F 00
| 2,401 (in the last unused byte [2 nibbles], 00 is equivalent to 01)
| CA 11 11 11
| 9,000,000
| CE 42 71 F0
| .3160
| C1 E4 27 1F
| 0.3160
| CA 9E 87 F0
| 98.76 |

Packet Type 100 (0x64)
Equation Compact Box
<node type>
<node contents> x ?
<node type>
<node contents> x ?
..
..
Node types:
1 = attribute type (size = 8)
[scale x]
[scale y]
[attributes]
[font index]
0 = base font
1 = super/sub font
2 = double super/sub font
2 = box type (size of fixed portion of box type = 5)
[x position (relative to equation box)]
[y position (relative to equation box)]
<length of string>
<string> x ?
3 = font type (three font descriptors, each 139 bytes long)
<font descriptor for base font> x 139
<font descriptor for subscript/superscript font> x 139
<font descriptor for double subscript/superscript font> x 139
4 = diacritical type (same as box but for diacritical chars)
[x position (relative to equation box)]
[y position (relative to equation box)]
<length of string>
<string> x ?
5 = line type (line type box for underline) (size = 8)
[x position (relative to equation box)]
[y position (relative to equation box)]
[width of box]
[height of box]
Packet Type 101 (0x65)
Reserved
Format before printing flag. Used by WP formatter. Invalid in disk files.
Packet Type 102 (0x66)
Unique Table ID
The packet is repeated for each table that exists in a document. It contains only one
word.
[unique table ID] table creation count
Packet Type 103 (0x67)
Unique Floating Cell ID
The packet is repeated for each floating cell that exists within a document. It contains only
one word.
[unique floating cell ID] floating cell creation count
Packet Type 104 (0x68)
Table Database
This packet is used by WordPerfect for Windows and is not used in DOS.
Packet Type 105 (0x69) - Added for WP 7.0
Table Style
The data in this packet will appear in the order shown below. Much of the data is optional
and
exists only if a corresponding flag bit is set.
[number of PIDs]
[table border ID] check bit 0 of [PID flags]
[table default lines IDs] check bit 1 of [PID flags]
[table border override line IDs] present for each [table border
override line IDs flags] bit set
[default line override IDs] present for each [table default line IDs
flags] bit set
[last row line IDs] present for each [last row border IDs flags] bit
set
[first column line IDs] present for each [first column border IDs
flags] bit set
[last column line IDs] present for each [last column border IDs
flag]bit set
[header rows line IDs] check bit 0 of [header row flags] for each
header row
[table fill ID] check bit 2 of [PID flags]
[table alternate fill ID] check bit 3 of [PID flags]
[last row fill ID] check bit 7 of [PID flags]
[first column fill ID] check bit 9 of [PID flags]
[last column fill ID] check bit 11 of [PID flags]
[header rows fill IDs] check bit 1 of [header row flags] for each
header row
[size of all of the following data] excluding this word
[size of name information]
<name/library PID flags> none currently defined.
<library management flags>
[length of table style name] negative number indicates predefined
table style
<table style name> x ? exists if length > 0
[size of rest of data] excluding this word
[PID flags] border and fill PIDs exist if bit is set
bit 0: 1 = table border ID exists
bit 1: 1 = table default lines ID exists
bit 2: 1 = table fill ID exists
bit 3: 1 = table alternate fill ID exists
bit 4: 1 = table border override lines IDs exist
bit 5: 1 = default line override IDs exist
bit 6: 1 = last row line IDs exist
bit 7: 1 = last row fill ID exists
bit 8: 1 = first column line IDs exist
bit 9: 1 = first column fill ID exists
bit 10: 1 = last column line IDs exist
bit 11: 1 = last column fill ID exists
bit 12: 1 = drop shadow exists
[override flags] border, fill, and format overrides exist if bit is
set
bit 0: 1 = table border overrides exist
bit 1: 1 = default line overrides exist
bit 2: 1 = table fill overrides exist
bit 3: 1 = table alt. fill overrides exist
bit 4: 1 = last row line overrides exist
bit 5: 1 = last row fill overrides exist
bit 6: 1 = first column line overrides exist
bit 7: 1 = first column fill overrides exist
bit 8: 1 = last column line overrides exist
bit 9: 1 = last column fill overrides exist
bit 10: 1 = table format overrides exist
bit 11: 1 = last row format overrides exist
bit 12: 1 = first column format overrides exist
bit 13: 1 = last column format overrides exist
[number of header rows]
[starting header row number] zero based
<alternating fill flag>
0 = no alternate fill
1 = rows
2 = columns
3 = both rows and columns
[number of times to do primary fill]
[number of times to do alternating fill]
The remaining data is present only if the associated flag bits are set.
[table border override line IDs flags] check bit 4 of [PID flags]
bit 0: 1 = left line PID exists
bit 1: 1 = right line PID exists
bit 2: 1 = top line PID exists
bit 3: 1 = bottom line PID exists
bit 4: 1 = inside/separator line PID exists
<table border overrides> x 6 check bit 0 of [override flags] (see
Border Override Data below)
[table default line IDs flags] check bit 5 of [PID flags]
bit 0: 1 = left line PID exists
bit 1: 1 = right line PID exists
bit 2: 1 = top line PID exists
bit 3: 1 = bottom line PID exists
bit 4: 1 = inside/separator line PID exists
<table default line overrides> x 6 check bit 1 of [override flags]
(see Border Override Databelow)
<table fill overrides> x 10 check bit 2 of [override flags] (see Fill
Override Data below)
<table alternate fill overrides> x 10 check bit 3 of [override flags]
(see Fill Override Data below)
<table format data> x 11 check bit 10 of [override flags] (see Format
Data below)
<drop shadow overrides> x 7 check bit 12 of [PID flags] (see Drop
Shadow Data below)
[last row border IDs flags] check bit 6 of [PID flags]
bit 0: 1 = left line PID exists
bit 1: 1 = right line PID exists
bit 2: 1 = top line PID exists
bit 3: 1 = bottom line PID exists
bit 4: 1 = inside/separator line PID exists
<last row border overrides> x 6 check bit 4 of [override flags] (see
Border Override Data below)
<last row fill overrides> x 10 check bit 5 of [override flags] (see
Fill Override Data below)
<last row format data> x 11 check bit 11 of [override flags] (see
Format Data below)
[first column border IDs flags] check bit 8 of [PID flags]
bit 0: 1 = left line PID exists
bit 1: 1 = right line PID exists
bit 2: 1 = top line PID exists
bit 3: 1 = bottom line PID exists
bit 4: 1 = inside/separator line PID exists
<first column border overrides> x 6 check bit 6 of [override flags]
(see Border Override Databelow)
<first column fill overrides> x 10 check bit 7 of [override flags]
(see Fill Override Data below)
<first column format data> x 11 check bit 12 of [override flags] (see
Format Data below)
[last column border IDs flags] check bit 10 of [PID flags]
bit 0: 1 = left line PID exists
bit 1: 1 = right line PID exists
bit 2: 1 = top line PID exists
bit 3: 1 = bottom line PID exists
bit 4: 1 = inside/separator line PID exists
<last column border overrides> x 6 check bit 8 of [override flags]
(see Border Override Databelow)
<last column fill overrides> x 10 check bit 9 of [override flags] (see
Fill Override Data below)
<last column format data> x 11 check bit 13 of [override flags] (see
Format Data below)
The following flags word is included for each header row in the table. The flags indicate
what
data exists after the flags word.
[header row flags]
bit 0: 1 = border line IDs exist
bit 1: 1 = fill pattern ID exists
bit 2: 1 = border overrides exist
bit 3: 1 = fill overrides exist
bit 4: 1 = format data exists
[line IDs flags] check bit 0 of [header row flags]
[fill pattern PID] check bit 1 of [header row flags]
<border overrides> x 6 check bit 2 of [header row flags] (see Border
Override Data below)
<fill overrides> x 10 check bit 3 of [header row flags] (see Fill
Override Data below)
<format data> x 11 check bit 4 of [header row flags] (see Format Data
below)
Border Override Data
[use flags]
bit 0: red
bit 1: green
bit 2: blue
bit 3: shade
<border line override color (RGBS)> x 4
Fill Override Data
[use flags]
bit 0: foreground
bit 1: background
<fill override foreground color (RGBS)> x 4
<fill override background color (RGBS)> x 4
Format Data
[use flags]
bit 0: attributes
bit 1: number type
bit 2: currency index
bit 3: justification
bit 4: join cells in row or column
[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
[number type]
bits 0-3: number of digits to display after decimal point or date
index information
bit 4: 1 = display with commas
bit 5: rounding
0 = use full precision in calculations
1 = use displayed precision
bits 6-7: negative numbers
0 = '-' (use minus sign)
1 = ( ) (use parentheses)
2 = CR/DR (use credit/debit symbols)
3 = not defined
bits 8-11: standard formats
0 = general
1 = integer
2 = fixed
3 = percent
4 = currency
5 = accounting
6 = commas
7 = scientific
8 = date
9 = text
bit 12: 1 = text
bit 13: 1 = set currency symbol on
bits 14-15: notation
0 = floating point
1 = scientific
2 = fixed
3 = not defined
<currency symbol index>
bits 0-6: index of the desired currency, default = 0
bit 7: alignment
[justification]
0 = left
1 = full
2 = center
3 = right
4 = all (kinto waritsuke)
5 = decimal align
Drop Shadow Data
<drop shadow flag>
0 = no drop shadow
1 = upper left corner
2 = lower left corner
3 = lower right corner
4 = upper right corner
[drop shadow spacing]
<drop shadow color (RGBS)> x 4
Packet Type 106 (0x6A) - 109 (0x6C)
Reserved
Packet Type 109 (0x6D) - Added for WP 7.0
World Wide Web
[number of PIDs = 2]
[base URL PID (type=0x07)]
[background image URL PID (type=0x07)]
[flags]
bit 0: 1 = document is an Internet Publisher Document
bit 1:
0 = use first heading in document for HTML title
1 = use Document Summary Descriptive Name for HTML title
<text color (RGB)>
<hypertext color (RGB)>
<visited hypertext color (RGB)>
<active hypertext color (RGB)>
<background color (RGB)>
Packet Type 110 (0x6E) - Added for WP 7.0
Conversion Font Descriptor
5.x and 6.x fonts which are used only for conversion purposes are
stored. The equivalent
5.xpacket is 0x30. When a document is converted from 6.x to
5.x, the native 6.0 fonts are stored
in 0x30 packets. When a document is converted from 5.x to 6.x, then
the native 5.x fonts are
stored in packet type 0x6E. This packet type was first used in 6.0a for Windows and 6.0b for
DOS.
Packet Type 111 (0x6F)
Graphics Data
Contains WPG graphics data. See the Graphics File Format documentation for
details of the
graphic format.
Packet Type 112 (0x70)
OLE Object Descriptor
<marker> x 44
"WPWin7.0/OLE 2.0 Prefix Information Marker"
"WPWin6.0/OLE 1.0 Prefix Information Marker"
{version} = 3 for WordPerfect 7
[extra data] = (boolean) True if data follows
[reserved]
[link options]
0 - Always
1 - OnSave
2 - OnCall
3 - OnClose
[reserved]
{pfxFlags}
0 - none
1 - empty
2 - icon
4 - link broken
{Object Number} - zero based
[null-terminated wordstring] x ?
If Ole 2, wordstring will be 7-8 characters and the null
terminator indicating the ole stream.
If Ole 1, contains all Ole 1 data (any size).
Packet Type 113 (0x71)
OLE Object Data
No documentation will be provided for this packet.
Packet Type 114 (0x72)
File Theta
Theta associated with this file. No documentation will be provided for this packet.
Packet Type 115 (0x73)
DDE Link Information
This packet will have at least one child packet defined. Any child packets will have a tag
flag
defining the platform of the DDE Data packet. All windows platforms use the Windows
platform tag (0x9800).
[count (n) of child PIDs]
[child PID] x n PID for each child packet
[tag flags] x n platform private tag for each child packet
0x8000 = DG
0x8400 = Macintosh
0x8800 = NeXT
0x8C00 = PC (MS-DOS)
0x9000 = UNIX
0x9400 = VAX
0x9800 = Windows
0x9C00 = IBM 370
0xA000 = OLE
[filename] x ? null-terminated word string defining the user name of
the DDE link
Packet Type 116 (0x74)
DDE Link Data
<link storage and update options>
bit 0: 1 = text (bits 0 and 1 are mutually exclusive)
bit 1: 1 = graphics
bit 2: must be 0
bit 3: must be 0
bit 4: 1 = manual (bits 4 and 5 are mutually exclusive)
bit 5: 1 = automatic
bit 6: must be 0
bit 7: must be 0
[default format for link]
{date time stamp (seconds)} reserved, set to NULL.
[date time stamp (year)] reserved, set to NULL.
[link name] x 128 This null-terminated string should be the same as
the filename in packet type 116 (0x73).
<link source> x 384 This null-terminated string should contain the
server application, topic and item names. The names are to be
separated by a vertical bar (|) such as server|topic|item.
<link source document name> x 64 null-terminated string
The [default format for link] (DFL) and <link source document name> (LSDN) items
are
mutually exclusive. If the format is predefined, the DFL should be the predefined constant. If
the format is not defined, the LSDN should have the name that would be returned from the
Windows API function GetClipboardFormatName( ). If the format is unknown, then the DFL
should be 0 and the LSDN a null string. WordPerfect will then negotiate the preferred format
type when the document is loaded the first time.
Packet Type 117 (0x75)
Template Description
No documentation will be provided for this packet.
Packet Type 118 (0x76)
Macintosh Specific Data
No documentation will be provided for this packet.
Packet Type 119 (0x77) - Added for WP 7.0
Formatter Undo State
[undo levels] number of undos in document
[redo levels] number of redos in document (The structures for redos
are the same as the undos, but will start after the last undo index.)
The next 6 bytes are repeated for each undo and redo level.
[undo level] level number at this index
[undo count] number of undos at this level
[undo token] token that triggered this undo (margin change, text, and
so forth)
Packet Type 120 (0x78)
Reserved
Packet Type 121 (0x79)
Reserved
Packet Type 122 (0x7A)
Reserved
Packet Type 123 (0x7B) - Added for WP 7.0
Swapped Style Undo
This packet is the same format as Normal Style packet type 0x30. It is used to undo a style
change.
Packet Type 124 (0x7C) - Added for WP 7.0
OBEX ID
ID string for export of OBEX data.
{0xFFFFFFFF} region ID for the whole document
<Obex object ID> x ? null-terminated ANSI string format
Packet Type 125 (0x7D) - Added for WP 7.0
SGML Tag with Attributes (Parent Packet)
[number of attributes]
[attribute 1 PID] PIDs of attribute values (child packets)
[attribute 2 PID]
...
[attribute n PID]
[tag error flag] bitwise error flag for the entire tag
0 = no error
1 = tag length is exceeded for the tag
2 = attribute specification length exceeded for the tag
4 = number of IDs in attribute values is exceeded
8 = number of entities in attribute values is exceeded
The following information is repeated for each individual attribute.
[attribute 1 DTD index] index to attribute information in memory
<attribute 1 error code> error for individual attribute
Only bit 7 is bitwise. If bit 7 is set then both LITDEL and ALITDEL
is in the attribute value.
0 = no error
1 = attribute is unknown to DTD
2 = illegal character in attribute name value
3 = illegal character in attribute name token value
4 = illegal character in attribute number value
5 = illegal character in attribute number token value
6 = value in attribute exceeds name length limit
7 = too many tokens in attribute
8 = value in attribute exceeds LITLEN limit
9 = no mapping for extended character in attribute
10 = attribute has empty attribute value literal
11 = token value not in declared value list
12 = mismatch between DTD fixed value and attribute value
13 = unknown entity type attribute value
14 = illegal entity type attribute value
15 = entity open in attribute value not expanded
16 = character reference open in attribute value not checked
17 = attribute is duplicated in tag
[attribute 2 DTD index]
<attribute 2 error code>
...
[attribute n DTD index]
<attribute n error code>
Packet Type 126 (0x7E) - Added for WP 7.0
SGML Attribute Value (Child Packet)
[number of blocks = 1]
{offset to text}
{size of text}
<literal delimiter>
1 = LITDEL
2 = ALITDEL
3 = both present
[attribute name] x ?
<text> x ?
Packet Type 127 (0x7F) - Added for WP 7.0
SGML LGC Filename
If this packet ever has child IDs, the format will be that of the Native Filename packet type
0x07.
[LGC filename] x ? null terminated
Packet Type 128 (0x80) - Added for WP 7.0
SGML External Entity
[number of child IDs = 1]
[ID 1 (type=0x81)] ID of child packet for notation attributes
[data type] CDATA, SDATA, and so forth
[entity declaration error] error flag for full declaration
[number of text strings]
[size of entity name]
[size of file path (system ID)]
[size of public ID]
[size of notation name]
[external entity name] x ?
[file path (system ID)] x ?
[public ID] x ?
[notation name] x ?
Packet Type 129 (0x81) - Added for WP 7.0
SGML Notation with Attributes
Identical to SGML Tag with Attributes packet (0x7D).
[number of attributes]
[attribute 1 PID] PIDs of attribute values
[attribute 2 PID]
...
[attribute n PID]
[notation error flag] error flag for entire notation (see packet
type 0x7D)
The following information is repeated for each individual attribute:
[attribute DTD index] index to attribute information in memory
<attribute error code> error for individual attributes (see packet
type 0x7D)

|