LibreOffice Module sw (master) 1
ww8struc.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_SW_SOURCE_FILTER_WW8_WW8STRUC_HXX
21#define INCLUDED_SW_SOURCE_FILTER_WW8_WW8STRUC_HXX
22
23#include <sal/config.h>
24
25#include <rtl/ustring.hxx>
26
28#include <i18nlangtag/lang.h>
29#include <tools/color.hxx>
30#include <tools/solar.h>
31#include <tools/stream.hxx>
32
33#include <vector>
34
35#ifdef _WIN32
36# pragma pack(push, 2)
37#endif
38
39class WW8Export;
40
41inline void Set_UInt8( sal_uInt8 *& p, sal_uInt8 n )
42{
43 *p = n;
44 p+= 1;
45}
46
47inline void Set_UInt16( sal_uInt8 *& p, sal_uInt16 n )
48{
49 ShortToSVBT16( n, *reinterpret_cast<SVBT16*>(p) );
50 p+= 2;
51}
52
53inline void Set_UInt32( sal_uInt8 *& p, sal_uInt32 n )
54{
55 UInt32ToSVBT32( n, *reinterpret_cast<SVBT32*>(p) );
56 p+= 4;
57}
58
60{
61 sal_uInt16 fBold:1;
62 sal_uInt16 fItalic:1;
63 sal_uInt16 fRMarkDel:1;
64 sal_uInt16 fOutline:1;
65 sal_uInt16 fFieldVanish:1;
66 sal_uInt16 fSmallCaps:1;
67 sal_uInt16 fCaps:1;
68 sal_uInt16 fVanish:1;
69 sal_uInt16 fRMark:1;
70 sal_uInt16 fSpec:1;
71 sal_uInt16 fStrike:1;
72 sal_uInt16 fObj:1;
73 sal_uInt16 fBoldBi:1;
74 sal_uInt16 fItalicBi:1;
75 sal_uInt16 fBiDi:1;
76 sal_uInt16 fDiacUSico:1;
77 sal_uInt16 fsIco:1;
78 sal_uInt16 fsFtc:1;
79 sal_uInt16 fsHps:1;
80 sal_uInt16 fsKul:1;
81 sal_uInt16 fsPos:1;
82 sal_uInt16 fsSpace:1;
83 sal_uInt16 fsLid:1;
84 sal_uInt16 fsIcoBi:1;
85 sal_uInt16 fsFtcBi:1;
86 sal_uInt16 fsHpsBi:1;
87 sal_uInt16 fsLidBi:1;
88
89 sal_uInt16 ftc;
90 sal_uInt16 hps;
98 sal_uInt16 lid;
99 sal_uInt16 ftcBi;
100 sal_uInt16 hpsBi;
101 sal_uInt16 lidBi;
102 sal_uInt32 fcPic;
103
105 : fBold(0),
106 fItalic(0),
107 fRMarkDel(0),
108 fOutline(0),
109 fFieldVanish(0),
110 fSmallCaps(0),
111 fCaps(0),
112 fVanish(0),
113 fRMark(0),
114 fSpec(0),
115 fStrike(0),
116 fObj(0),
117 fBoldBi(0),
118 fItalicBi(0),
119 fBiDi(0),
120 fDiacUSico(0),
121 fsIco(0),
122 fsFtc(0),
123 fsHps(0),
124 fsKul(0),
125 fsPos(0),
126 fsSpace(0),
127 fsLid(0),
128 fsIcoBi(0),
129 fsFtcBi(0),
130 fsHpsBi(0),
131 fsLidBi(0),
132
133 ftc(0),
134 hps(0),
135 qpsSpace(0),
136 fSysVanish(0),
137 fNumRun(0),
138 ico(0),
139 kul(0),
140 hpsPos(0),
141 icoBi(0),
142 lid(0),
143 ftcBi(0),
144 hpsBi(0),
145 lidBi(0),
146 fcPic(0)
147 {
148 }
149};
150
151typedef sal_Int16 WW8_PN;
152typedef sal_Int32 WW8_FC;
153typedef sal_Int32 WW8_CP;
154
157
170{
171 // Base part of STD:
172 sal_uInt16 sti : 12; // invariant style identifier
173 sal_uInt16 fScratch : 1; // spare field for any temporary use,
174 // always reset back to zero!
175 sal_uInt16 fInvalHeight : 1; // PHEs of all text with this style are wrong
176 sal_uInt16 fHasUpe : 1; // UPEs have been generated
177 sal_uInt16 fMassCopy : 1; // std has been mass-copied; if unused at
178 // save time, style should be deleted
179 sal_uInt16 sgc : 4; // style type code
180 sal_uInt16 istdBase : 12; // base style
181 sal_uInt16 cupx : 4; // # of UPXs (and UPEs)
182 sal_uInt16 istdNext : 12; // next style
183 sal_uInt16 bchUpe; // offset to end of upx's, start of upe's
184 // new:
185 // from Ver8 on there are two more fields:
186 sal_uInt16 fAutoRedef : 1; /* auto redefine style when appropriate */
187 sal_uInt16 fHidden : 1; /* hidden from UI? */
188 sal_uInt16 : 14; /* unused bits */
189
190 // Variable length part of STD:
191 // sal_uInt8 stzName[2]; /* sub-names are separated by chDelimStyle
192 // char grupx[];
193 // the UPEs are not stored on the file; they are a cache of the based-on
194 // chain
195 // char grupe[];
196};
197
198static_assert(sizeof (WW8_STD) == 10, "this has to match the msword size");
199
201struct WW8_FFN_BASE // Font Descriptor
202{
203 // from Ver6 on
204 sal_uInt8 cbFfnM1; // 0x0 total length of FFN - 1.
205
206 sal_uInt8 prg: 2; // 0x1:03 pitch request
207 sal_uInt8 fTrueType : 1; // 0x1:04 when 1, font is a TrueType font
208 sal_uInt8 _reserved1 : 1; // 0x1:08 reserved
209 sal_uInt8 ff : 3; // 0x1:70 font family id
210 sal_uInt8 _reserved2 : 1; // 0x1:80 reserved
211
212 short wWeight; // 0x2 base weight of font
213 sal_uInt8 chs; // 0x4 character set identifier
214 sal_uInt8 ibszAlt; // 0x5 index into ffn.szFfn to the name of the alternate font
215};
216
217static_assert(sizeof (WW8_FFN_BASE) == 6, "this has to match the msword size");
218
222{
223 // from Ver8 on as Unicode
224 OUString sFontname;// 0x6 or 0x40 resp. from Ver8 on zero terminated string that
225 // records name of font.
226 // Maximal size of szFfn is 65 characters.
227 // Attention: This array can be smaller!!!
228 // Possibly followed by a second sz which records the
229 // name of an alternate font to use if the first named
230 // font does not exist on this system.
232};
233
234struct WW8_BRCVer6 // BoRder Code (WW6 version)
235{
237// sal_uInt16 dxpLineWidth : 3;// 0007 When dxpLineWidth is 0, 1, 2, 3, 4, or 5, this field is the width of
238 // a single line of border in units of 0.75 points
239 // Must be nonzero when brcType is nonzero.
240 // 6 == dotted, 7 == dashed.
241// sal_uInt16 brcType : 2; // 0018 border type code: 0 == none, 1 == single, 2 == thick, 3 == double
242// sal_uInt16 fShadow : 1; // 0020 when 1, border is drawn with shadow. Must be 0 when BRC is a substructure of the TC
243// sal_uInt16 ico : 5; // 07C0 color code (see chp.ico)
244// sal_uInt16 dxpSpace : 5; // F800 width of space to maintain between border and text within border.
245 // Must be 0 when BRC is a substructure of the TC. Stored in points for Windows.
246 WW8_BRCVer6() = default;
247
249 { return aBits1[0] & 0x07; }
251 { return (aBits1[0] & 0x18) >> 3; }
252 bool fShadow() const
253 { return !!(aBits1[0] & 0x20); }
255 { return ((aBits1[0] & 0xc0) >> 6) | ((aBits1[1] & 0x07) << 2); }
257 { return aBits1[1] >> 3; }
258};
259
260struct WW8_BRC // BoRder Code (WW8 version)
261// Documented at http://msdn.microsoft.com/en-us/library/dd952599.aspx
262{
265// sal_uInt8 dptLineWidth;
266// sal_uInt8 brcType;
267// sal_uInt8 ico;
268// sal_uInt8 dptSpace : 5
269// bool fShadow : 1;
270// bool fFrame : 1;
271// bool fReserved : 1;
272 WW8_BRC() = default;
273
274 sal_uInt8 dptLineWidth() const // border line width (1/8pt)
275 { return aBits1[0]; }
276 sal_uInt8 brcType() const // border type (eg single, double, dotted)
277 { return aBits1[1]; }
278 sal_uInt8 ico() const // colour index, 1-17 or 0=auto
279 { return aBits2[0]; }
280 sal_uInt8 dptSpace() const // space between text & border (pt)
281 { return aBits2[1] & 0x1f; }
282 bool fShadow() const // shadow effect
283 { return !!(aBits2[1] & 0x20); }
284 bool fFrame() const // 3D frame effect
285 { return !!(aBits2[1] & 0x40); }
286 bool isNil() const // nil = no border
287 { return aBits1[0] == 0xff && aBits1[1] == 0xff; }
288
289 WW8_BRC(sal_uInt8 _dptLineWidth, sal_uInt8 _brcType, sal_uInt8 _ico,
290 sal_uInt8 _dptSpace, bool _fShadow, bool _fFrame)
291 {
292 assert(_dptSpace < 0x20);
293 aBits1[0] = _dptLineWidth;
294 aBits1[1] = _brcType;
295 aBits2[0] = _ico;
296 aBits2[1] = _dptSpace | (static_cast<sal_uInt8>(_fShadow) << 5)
297 | (static_cast<sal_uInt8>(_fFrame) << 6);
298 }
299 // Convert BRC from WW6 to WW8 format
300 explicit WW8_BRC(const WW8_BRCVer6& brcVer6);
301
302 // Returns LO border width in twips=1/20pt, taking into account brcType
303 short DetermineBorderProperties(short *pSpace) const;
304};
305
306typedef WW8_BRC WW8_BRC5[5]; // 5 * Border Code
307
308struct WW8_BRCVer9 // BoRder Code (WW9 version)
309// Documented at http://msdn.microsoft.com/en-us/library/dd907496.aspx
310{
311 SVBT32 aBits1 = {}; // border colour (RGB)
313// sal_uInt8 dptLineWidth; // border line width (1/8pt)
314// sal_uInt8 brcType; // border type (eg single, double, dotted)
315// sal_uInt8 dptSpace : 5; // space between text & border (pt)
316// bool fShadow : 1; // border has shadow effect
317// bool fFrame : 1; // border has 3D effect
318// sal_uInt16 fReserved : 9; // unused
319 WW8_BRCVer9() = default;
320
321 sal_uInt32 cv() const // colour value (BGR)
322 { return SVBT32ToUInt32(aBits1); }
323 sal_uInt8 dptLineWidth() const // border line width (1/8pt)
324 { return aBits2[0]; }
325 sal_uInt8 brcType() const // border type (eg single, double, dotted)
326 { return aBits2[1]; }
327 sal_uInt8 dptSpace() const // space between text & border (pt)
328 { return aBits2[2] & 0x1f; }
329 bool fShadow() const // shadow effect
330 { return !!(aBits2[2] & 0x20); }
331 bool fFrame() const // 3D frame effect
332 { return !!(aBits2[2] & 0x40); }
333 bool isNil() const // nil = no border
334 { return SVBT32ToUInt32(aBits2) == 0xffffffff; }
335
336 WW8_BRCVer9(sal_uInt32 _cv, sal_uInt8 _dptLineWidth, sal_uInt8 _brcType,
337 sal_uInt8 _dptSpace, bool _fShadow, bool _fFrame)
338 {
339 assert(_dptSpace < 0x20);
340 UInt32ToSVBT32(_cv, aBits1);
341 aBits2[0] = _dptLineWidth;
342 aBits2[1] = _brcType;
343 aBits2[2] = _dptSpace | (static_cast<sal_uInt8>(_fShadow) << 5)
344 | (static_cast<sal_uInt8>(_fFrame) << 6);
345 aBits2[3] = 0;
346 }
347 // Convert BRC from WW8 to WW9 format
348 explicit WW8_BRCVer9(const WW8_BRC& brcVer8);
349
350 // Returns LO border width in twips=1/20pt, taking into account brcType
351 short DetermineBorderProperties(short *pSpace=nullptr) const;
352};
353
354typedef WW8_BRCVer9 WW8_BRCVer9_5[5]; // 5 * Border Code
355
357{
358 WW8_TOP = 0, WW8_LEFT = 1, WW8_BOT = 2, WW8_RIGHT = 3, WW8_BETW = 4
360
361/*
362Document Typography Info (DOPTYPOGRAPHY) These options are Far East only,
363and are accessible through the Typography tab of the Tools/Options dialog.
364*/
366{
367public:
369 void WriteToMem(sal_uInt8 *&pData) const;
370
371 //Maps what I think is the language this is to affect to the OOo language
373
374 sal_uInt16 m_fKerningPunct : 1; // true if we're kerning punctuation
375 sal_uInt16 m_iJustification : 2; // Kinsoku method of justification:
376 // 0 = always expand
377 // 1 = compress punctuation
378 // 2 = compress punctuation and kana.
379 sal_uInt16 m_iLevelOfKinsoku : 2; // Level of Kinsoku:
380 // 0 = Level 1
381 // 1 = Level 2
382 // 2 = Custom
383 sal_uInt16 m_f2on1 : 1; // 2-page-on-1 feature is turned on.
384 sal_uInt16 m_reserved1 : 4; // in 97 it's marked as reserved BUT
385 sal_uInt16 m_reserved2 : 6; // reserved ?
386 //we find that the following applies,
387 //2 == Japanese
388 //4 == Chinese (VR...
389 //6 == Korean
390 //8 == Chinese (Ta...
391 //perhaps a bit field where the DOP can possibly relate to more than
392 //one language at a time, nevertheless MS seems to have painted
393 //themselves into a small corner with one DopTypography for the
394 //full document, might not matter all that much though ?
395
397 static constexpr OUStringLiteral JapanNotBeginLevel1
398 = u"\u0021\u0025\u0029\u002c\u002e\u003a\u003b\u003f"
399 "\u005d\u007d\u00a2\u00b0\u2019\u201d\u2030\u2032"
400 "\u2033\u2103\u3001\u3002\u3005\u3009\u300b\u300d"
401 "\u300f\u3011\u3015\u309b\u309c\u309d\u309e\u30fb"
402 "\u30fd\u30fe\uff01\uff05\uff09\uff0c\uff0e\uff1a"
403 "\uff1b\uff1f\uff3d\uff5d\uff61\uff63\uff64\uff65"
404 "\uff9e\uff9f\uffe0";
405 static constexpr OUStringLiteral JapanNotEndLevel1
406 = u"\u0024\u0028\u005b\u005c\u007b\u00a3\u00a5\u2018"
407 "\u201c\u3008\u300a\u300c\u300e\u3010\u3014\uff04"
408 "\uff08\uff3b\uff5b\uff62\uffe1\uffe5";
409
410 sal_Int16 m_cchFollowingPunct; // length of rgxchFPunct
411 sal_Int16 m_cchLeadingPunct; // length of rgxchLPunct
412
413 // array of characters that should never appear at the start of a line
415 // array of characters that should never appear at the end of a line
417};
418
420{
421 short xaGrid; // x-coord of the upper left-hand corner of the grid
422 short yaGrid; // y-coord of the upper left-hand corner of the grid
423 short dxaGrid; // width of each grid square
424 short dyaGrid; // height of each grid square
425
426 /* attention: you must not put bit fields on top of such a byte array read from a file!
427 instead put an aBits1 on it and read it out with &.
428 reason: compilers on Intel and Sparc sort the bits differently
429 */
430
431 short dyGridDisplay:7; // the number of grid squares (in the y direction)
432 // between each gridline drawn on the screen. 0 means
433 // don't display any gridlines in the y direction.
434 short fTurnItOff :1; // suppress display of gridlines
435 short dxGridDisplay:7; // the number of grid squares (in the x direction)
436 // between each gridline drawn on the screen. 0 means
437 // don't display any gridlines in the y direction.
438 short fFollowMargins:1; // if true, the grid will start at the left and top
439 // margins and ignore xaGrid and yaGrid.
440};
441
442static_assert(sizeof (WW8_DOGRID) == 10, "this has to match the msword size");
443
445{
446 sal_Int32 lcb; // 0x0 number of bytes in the PIC structure plus size of following picture data which may be a Window's metafile, a bitmap, or the filename of a TIFF file.
447 sal_uInt16 cbHeader; // 0x4 number of bytes in the PIC (to allow for future expansion).
448 struct {
449 sal_Int16 mm; // 0x6 int
450 sal_Int16 xExt; // 0x8 int
451 sal_Int16 yExt; // 0xa int
452 sal_Int16 hMF; // 0xc int
454// sal_uInt8 bm[14]; // 0xe BITMAP(14 bytes) Window's bitmap structure when PIC describes a BITMAP.
455 sal_uInt8 rcWinMF[14]; // 0xe rc (rectangle - 8 bytes) rect for window origin
456 // and extents when metafile is stored -- ignored if 0
457 sal_Int16 dxaGoal; // 0x1c horizontal measurement in twips of the rectangle the picture should be imaged within.
458 sal_Int16 dyaGoal; // 0x1e vertical measurement in twips of the rectangle the picture should be imaged within.
459 sal_uInt16 mx; // 0x20 horizontal scaling factor supplied by user in .1% units.
460 sal_uInt16 my; // 0x22 vertical scaling factor supplied by user in .1% units.
461 sal_Int16 dxaCropLeft; // 0x24 the amount the picture has been cropped on the left in twips.
462 sal_Int16 dyaCropTop; // 0x26 the amount the picture has been cropped on the top in twips.
463 sal_Int16 dxaCropRight; // 0x28 the amount the picture has been cropped on the right in twips.
464 sal_Int16 dyaCropBottom;// 0x2a the amount the picture has been cropped on the bottom in twips.
465 sal_Int16 brcl : 4; // 000F Obsolete, superseded by brcTop, etc. In
466 sal_Int16 fFrameEmpty : 1; // 0010 picture consists of a single frame
467 sal_Int16 fBitmap : 1; // 0020 ==1, when picture is just a bitmap
468 sal_Int16 fDrawHatch : 1; // 0040 ==1, when picture is an active OLE object
469 sal_Int16 fError : 1; // 0080 ==1, when picture is just an error message
470 sal_Int16 bpp : 8; // FF00 bits per pixel, 0 = unknown
472// BRC brcTop; // 0x2e specification for border above picture
473// BRC brcLeft; // 0x30 specification for border to the left
474// BRC brcBottom; // 0x32 specification for border below picture
475// BRC brcRight; // 0x34 specification for border to the right
476 sal_Int16 dxaOrigin; // 0x36 horizontal offset of hand annotation origin
477 sal_Int16 dyaOrigin; // 0x38 vertical offset of hand annotation origin
478// sal_uInt8 rgb[]; // 0x3a variable array of bytes containing Window's metafile, bitmap or TIFF file filename.
479};
480
482{
483 SVBT32 lcb; // 0x0 number of bytes in the PIC structure plus size of following picture data which may be a Window's metafile, a bitmap, or the filename of a TIFF file.
484 SVBT16 cbHeader; // 0x4 number of bytes in the PIC (to allow for future expansion).
485 struct {
486 SVBT16 mm; // 0x6 int
487 SVBT16 xExt; // 0x8 int
488 SVBT16 yExt; // 0xa int
489 SVBT16 hMF; // 0xc int
491// sal_uInt8 bm[14]; // 0xe BITMAP(14 bytes) Window's bitmap structure when PIC describes a BITMAP.
492 sal_uInt8 rcWinMF[14]; // 0xe rc (rectangle - 8 bytes) rect for window origin
493 // and extents when metafile is stored -- ignored if 0
494 SVBT16 dxaGoal; // 0x1c horizontal measurement in twips of the rectangle the picture should be imaged within.
495 SVBT16 dyaGoal; // 0x1e vertical measurement in twips of the rectangle the picture should be imaged within.
496 SVBT16 mx; // 0x20 horizontal scaling factor supplied by user in .1% units.
497 SVBT16 my; // 0x22 vertical scaling factor supplied by user in .1% units.
498 SVBT16 dxaCropLeft; // 0x24 the amount the picture has been cropped on the left in twips.
499 SVBT16 dyaCropTop; // 0x26 the amount the picture has been cropped on the top in twips.
500 SVBT16 dxaCropRight; // 0x28 the amount the picture has been cropped on the right in twips.
501 SVBT16 dyaCropBottom;// 0x2a the amount the picture has been cropped on the bottom in twips.
504// WW8_BRC rgbrc[4];
505// BRC brcTop; // 0x2e specification for border above picture
506// BRC brcLeft; // 0x30 specification for border to the left
507// BRC brcBottom; // 0x32 specification for border below picture
508// BRC brcRight; // 0x34 specification for border to the right
509// SVBT16 dxaOrigin; // 0x36 horizontal offset of hand annotation origin
510// SVBT16 dyaOrigin; // 0x38 vertical offset of hand annotation origin
511// sal_uInt8 rgb[]; // 0x3a variable array of bytes containing Window's metafile, bitmap or TIFF file filename.
512};
513
514static_assert(sizeof (WW8_PIC_SHADOW) == 0x2E, "this has to match the msword size");
515 // "0x2E": cf. SwWW8ImplReader::PicRead pDataStream->Read call
516
518{
520// sal_uInt8 jc : 3; // 0x07 justification code: 0=left tab, 1=centered tab, 2=right tab, 3=decimal tab, 4=bar
521// sal_uInt8 tlc : 3; // 0x38 tab leader code: 0=no leader, 1=dotted leader,
522 // 2=hyphenated leader, 3=single line leader, 4=heavy line leader
523// * int :2 C0 reserved
524};
525
526struct WW8_TCell // this is the base for further work (corresponds mostly to the Ver8 format)
527{
528 // The single-bit fields should ideally be bool, but probably need to keep
529 // them as sal_uInt8 to make them combine with the following two-bit
530 // nVertAlign:
531 sal_uInt8 bFirstMerged : 1;// 0001 set to 1 when cell is first cell of a range of cells that have been merged.
532 sal_uInt8 bMerged : 1;// 0002 set to 1 when cell has been merged with preceding cell.
533 sal_uInt8 bVertical : 1;// set to 1 when cell has vertical text flow
534 sal_uInt8 bBackward : 1;// for a vertical table cell, text flow is bottom to top when 1 and is bottom to top when 0.
535 sal_uInt8 bRotateFont : 1;// set to 1 when cell has rotated characters (i.e. uses @font)
536 sal_uInt8 bVertMerge : 1;// set to 1 when cell is vertically merged with the cell(s) above and/or below. When cells are vertically merged, the display area of the merged cells are consolidated. The consolidated area is used to display the contents of the first vertically merged cell (the cell with fVertRestart set to 1), and all other vertically merged cells (those with fVertRestart set to 0) must be empty. Cells can only be merged vertically if their left and right boundaries are (nearly) identical (i.e. if corresponding entries in rgdxaCenter of the table rows differ by at most 3).
537 sal_uInt8 bVertRestart : 1;// set to 1 when the cell is the first of a set of vertically merged cells. The contents of a cell with fVertStart set to 1 are displayed in the consolidated area belonging to the entire set of vertically merged cells. Vertically merged cells with fVertRestart set to 0 must be empty.
538 sal_uInt8 nVertAlign : 2;// specifies the alignment of the cell contents relative to text flow (e.g. in a cell with bottom to top text flow and bottom vertical alignment, the text is shifted horizontally to match the cell's right boundary):
539 // 0 top
540 // 1 center
541 // 2 bottom
542 sal_uInt16 fUnused : 7;// reserved - do not remove, fills up the sal_uInt16!
543
544 WW8_BRCVer9 rgbrc[4]; // border codes
545//notational convenience for referring to brcTop, brcLeft, etc fields.
546// BRC brcTop; // specification of the top border of a table cell
547// BRC brcLeft; // specification of left border of table row
548// BRC brcBottom; // specification of bottom border of table row
549// BRC brcRight; // specification of right border of table row.
550
553 bVertRestart(0), nVertAlign(0), fUnused(0) {}
554 // default member initializers for the bitfields will only work in C++20
555};
556// cbTC (count of bytes of a TC) is 18(decimal), 12(hex).
557
558struct WW8_TCellVer6 // read from file
559{
562// sal_uInt16 fFirstMerged : 1;// 0001 set to 1 when cell is first cell of a range of cells that have been merged.
563// sal_uInt16 fMerged : 1; // 0002 set to 1 when cell has been merged with preceding cell.
564// sal_uInt16 fUnused : 14; // FFFC reserved
566// notational convenience for referring to brcTop, brcLeft, etc fields:
567// BRC brcTop; // specification of the top border of a table cell
568// BRC brcLeft; // specification of left border of table row
569// BRC brcBottom; // specification of bottom border of table row
570// BRC brcRight; // specification of right border of table row.
571};
572// cbTC (count of bytes of a TC) is 10(decimal), A(hex).
573
574struct WW8_TCellVer8 // read from file
575{
576 SVBT16 aBits1Ver8; // Documentation: see above at WW8_TCell
577 SVBT16 aUnused; // reserve
578 WW8_BRC rgbrcVer8[4]; // Documentation: see above at WW8_TCell
579};
580// cbTC (count of bytes of a TC) is 20(decimal), 14(hex).
581
582struct WW8_SHD // struct SHD is missing from the description
583{
584private:
585 sal_uInt16 maBits;
586// sal_uInt16 nFore : 5; // 0x001f ForegroundColor
587// sal_uInt16 nBack : 5; // 0x03e0 BackgroundColor
588// sal_uInt16 nStyle : 5; // 0x7c00 Percentage and Style
589// sal_uInt16 nDontKnow : 1; // 0x8000 ??? from Ver8: also for Style
590
591public:
592 WW8_SHD() : maBits(0) {}
593
594 sal_uInt8 GetFore() const { return static_cast<sal_uInt8>( maBits & 0x1f); }
595 sal_uInt8 GetBack() const { return static_cast<sal_uInt8>((maBits >> 5 ) & 0x1f); }
596 sal_uInt8 GetStyle(bool bVer67) const
597 { return static_cast<sal_uInt8>((maBits >> 10) & ( bVer67 ? 0x1f : 0x3f ) ); }
598
599 sal_uInt16 GetValue() const { return maBits; }
600
601 void SetWWValue(SVBT16 const nVal) { maBits = SVBT16ToUInt16(nVal); }
602
604 {
605 maBits &= 0xffe0;
606 maBits |= (nVal & 0x1f);
607 }
609 {
610 maBits &= 0xfc1f;
611 maBits |= (nVal & 0x1f) << 5;
612 }
614 {
615 maBits &= 0x03ff;
616 maBits |= (nVal & 0x3f) << 10;
617 }
618};
619
621{
622 sal_uInt8 nfc; // 0 number format code, 0=Arabic, 1=Upper case Roman, 2=Lower case Roman
623 // 3=Upper case Letter, 4=Lower case letter, 5=Ordinal
624 sal_uInt8 cbTextBefore; // 1 offset into anld.rgch limit of prefix text
627// sal_uInt8 jc : 2; // 3 : 0x03 justification code, 0=left, 1=center, 2=right, 3=left and right justify
628// sal_uInt8 fPrev : 1; // 0x04 when ==1, include previous levels
629// sal_uInt8 fHang : 1; // 0x08 when ==1, number will be displayed using a hanging indent
630// sal_uInt8 fSetBold : 1; // 0x10 when ==1, boldness of number will be determined by anld.fBold.
631// sal_uInt8 fSetItalic : 1;// 0x20 when ==1, italicness of number will be determined by anld.fItalic
632// sal_uInt8 fSetSmallCaps : 1;// 0x40 when ==1, anld.fSmallCaps will determine whether number will be displayed in small caps or not.
633// sal_uInt8 fSetCaps : 1; // 0x80 when ==1, anld.fCaps will determine whether number will be displayed capitalized or not
635// sal_uInt8 fSetStrike : 1;// 4 : 0x01 when ==1, anld.fStrike will determine whether the number will be displayed using strikethrough or not.
636// sal_uInt8 fSetKul : 1; // 0x02 when ==1, anld.kul will determine the underlining state of the autonumber.
637// sal_uInt8 fPrevSpace : 1;// 0x04 when ==1, autonumber will be displayed with a single prefixing space character
638// sal_uInt8 fBold : 1; // 0x08 determines boldness of autonumber when anld.fSetBold == 1.
639// sal_uInt8 fItalic : 1; // 0x10 determines italicness of autonumber when anld.fSetItalic == 1.
640// sal_uInt8 fSmallCaps : 1;// 0x20 determines whether autonumber will be displayed using small caps when anld.fSetSmallCaps == 1.
641// sal_uInt8 fCaps : 1; // 0x40 determines whether autonumber will be displayed using caps when anld.fSetCaps == 1.
642// sal_uInt8 fStrike : 1; // 0x80 determines whether autonumber will be displayed using caps when anld.fSetStrike == 1.
644// sal_uInt8 kul : 3; // 5 : 0x07 determines whether autonumber will be displayed with underlining when anld.fSetKul == 1.
645// sal_uInt8 ico : 5; // 0xF1 color of autonumber
646 SVBT16 ftc; // 6 font code of autonumber
647 SVBT16 hps; // 8 font half point size (or 0=auto)
648 SVBT16 iStartAt; // 0x0a starting value (0 to 65535)
649 SVBT16 dxaIndent; // 0x0c *short?* *sal_uInt16?* width of prefix text (same as indent)
650 SVBT16 dxaSpace; // 0x0e minimum space between number and paragraph
651};
652// *cbANLV (count of bytes of ANLV) is 16 (decimal), 10(hex).
653
655{
657 sal_uInt8 fNumber1; // 0x10 number only 1 item per table cell
658 sal_uInt8 fNumberAcross; // 0x11 number across cells in table rows(instead of down)
659 sal_uInt8 fRestartHdn; // 0x12 restart heading number on section boundary
660 sal_uInt8 fSpareX; // 0x13 unused( should be 0)
661 sal_uInt8 rgchAnld[32]; // 0x14 characters displayed before/after autonumber
662};
663
665{
666 WW8_ANLV rganlv[9]; // 0 an array of 9 ANLV structures (heading levels)
667 sal_uInt8 fRestartHdr; // 0x90 when ==1, restart heading on section break
668 sal_uInt8 fSpareOlst2; // 0x91 reserved
669 sal_uInt8 fSpareOlst3; // 0x92 reserved
670 sal_uInt8 fSpareOlst4; // 0x93 reserved
671 sal_uInt8 rgch[64]; // 0x94 array of 64 chars text before/after number
672};
673// cbOLST is 212(decimal), D4(hex).
674
676{
677 SVBT32 fc; // 0 FC pointing to drawing object data
678 SVBT16 ctxbx; // 4 count of textboxes in the drawing object
679};
680
681struct WW8_DO
682{
683 SVBT16 dok; // 0 Drawn Object Kind, currently this is always 0
684 SVBT16 cb; // 2 size (count of bytes) of the entire DO
685 sal_uInt8 bx; // 4 x position relative to anchor CP
686 sal_uInt8 by; // 5 y position relative to anchor CP
687
688 /*
689 bx and by above are apparently better described by this info from the rtf standard...
690
691 \dobxpage The drawing object is page relative in the x-direction.
692 \dobxcolumn The drawing object is column relative in the x-direction.
693 \dobxmargin The drawing object is margin relative in the x-direction.
694
695 \dobypage The drawing object is page relative in the y-direction.
696 \dobypara The drawing object is paragraph relative in the y-direction.
697 \dobymargin The drawing object is margin relative in the y-direction.
698
699 */
700
701 SVBT16 dhgt; // 6 height of DO
703// sal_uInt16 fAnchorLock : 1; // 8 1 if the DO anchor is locked
704// sal_uInt8[] rgdp; // 0xa variable length array of drawing primitives
705};
706
708{
709 SVBT16 dpk; // 0 Drawn Primitive Kind REVIEW davebu
710 // 0=start of grouping, 1=line, 2=textbox, 3=rectangle,
711 // 4=arc, 5=ellipse, 6=polyline, 7=callout textbox,
712 // 8=end of grouping, 9=sample primitive holding default values
713 SVBT16 cb; // 2 size (count of bytes) of this DP
714 SVBT16 xa; // 4 These 2 points describe the rectangle
715 SVBT16 ya; // 6 enclosing this DP relative to the origin of
716 SVBT16 dxa; // 8 the DO
717 SVBT16 dya; // 0xa
718};
719
721{
722 SVBT32 lnpc; // LiNe Property Color -- RGB color value
723 SVBT16 lnpw; // line property weight in twips
724 SVBT16 lnps; // line property style : 0=Solid, 1=Dashed
725 // 2=Dotted, 3=Dash Dot, 4=Dash Dot Dot, 5=Hollow
726};
727
728struct WW8_DP_SHADOW // shading!
729{
730 SVBT16 shdwpi; // Shadow Property Intensity
731 SVBT16 xaOffset; // x offset of shadow
732 SVBT16 yaOffset; // y offset of shadow
733};
734
736{
737 SVBT32 dlpcFg; // FiLl Property Color ForeGround -- RGB color value
738 SVBT32 dlpcBg; // Property Color BackGround -- RGB color value
739 SVBT16 flpp; // FiLl Property Pattern REVIEW davebu
740};
741
743{
745// sal_uInt16 eppsStart : 2; // Start EndPoint Property Style
746 // 0=None, 1=Hollow, 2=Filled
747// sal_uInt16 eppwStart : 2; // Start EndPoint Property Weight
748// sal_uInt16 epplStart : 2; // Start EndPoint Property length
749// sal_uInt16 dummyStart : 10; // Alignment
751// sal_uInt16 eppsEnd : 2; // End EndPoint Property Style
752// sal_uInt16 eppwEnd : 2; // End EndPoint Property Weight
753// sal_uInt16 epplEnd : 2; // End EndPoint Property length
754// sal_uInt16 dummyEnd : 10; // Alignment
755};
756
758{
759// WW8_DPHEAD dphead; // 0 Common header for a drawing primitive
760 SVBT16 xaStart; // starting point for line
762 SVBT16 xaEnd; // ending point for line
767};
768
770{
775// sal_uInt16 fRoundCorners : 1; //0x24 0001 1 if the textbox has rounded corners
776// sal_uInt16 zaShape : 15; // 0x24 000e REVIEW davebu
777 SVBT16 dzaInternalMargin; // 0x26 REVIEW davebu
778};
779
781{
786// sal_uInt16 fRoundCorners : 1; // 0x24 0001 1 if the textbox has rounded corners
787// sal_uInt16 zaShape : 15; // 0x24 000e REVIEW davebu
788};
789
791{
795 sal_uInt8 fLeft; // 0x24 00ff REVIEW davebu
796 sal_uInt8 fUp; // 0x24 ff00 REVIEW davebu
797// sal_uInt16 fLeft : 8; // 0x24 00ff REVIEW davebu
798// sal_uInt16 fUp : 8; // 0x24 ff00 REVIEW davebu
799};
800
802{
806};
807
809{
815// sal_uInt16 fPolygon : 1; // 0x28 0001 1 if this is a polygon
816// sal_uInt16 cpt : 15; // 0x28 00fe count of points
817// short xaFirst; // 0x2a These are the endpoints of the first line.
818// short yaFirst; // 0x2c
819// short xaEnd; // 0x2e
820// short yaEnd; // 0x30
821// short rgpta[]; // 0x32 An array of xa,ya pairs for the remaining points
822};
823
825{
826 SVBT16 flags; // 0x0c REVIEW davebu flags
827 SVBT16 dzaOffset; // 0x0e REVIEW davebu
828 SVBT16 dzaDescent; // 0x10 REVIEW davebu
829 SVBT16 dzaLength; // 0x12 REVIEW davebu
830 WW8_DPHEAD dpheadTxbx; // 0x14 DPHEAD for a textbox
831 WW8_DP_TXTBOX dptxbx; // 0x20 DP for a textbox
832 WW8_DPHEAD dpheadPolyLine; // 0x4c DPHEAD for a Polyline
833 WW8_DP_POLYLINE dpPolyLine; // 0x48 DP for a polyline
834};
835
837{
839// sal_uInt8 fNoParaLast : 1; // when 1, means that piece contains no end of paragraph marks.
840// sal_uInt8 fPaphNil : 1; // used internally by Word
841// sal_uInt8 fCopied : 1; // used internally by Word
842// * int :5
843 sal_uInt8 aBits2; // fn int:8, used internally by Word
844 SVBT32 fc; // file offset of beginning of piece. The size of the
845 // ithpiece can be determined by subtracting rgcp[i] of
846 // the containing plcfpcd from its rgcp[i+1].
847 SVBT16 prm; // PRM contains either a single sprm or else an index number
848 // of the grpprl which contains the sprms that modify the
849 // properties of the piece.
850};
851
852// AnnoTation References Descriptor (ATRD)
853struct WW8_ATRD // for version 8
854{
855 SVBT16 xstUsrInitl[ 10 ]; // pascal-style String holding initials
856 // of annotation author
857 SVBT16 ibst; // index into GrpXstAtnOwners
858 SVBT16 ak; // not used
859 SVBT16 grfbmc; // not used
860 SVBT32 ITagBkmk; // when not -1, this tag identifies the
861 // annotation bookmark that locates the
862 // range of CPs in the main document which
863 // this annotation references.
864};
865
867{
868 // --- Extended bit since Word 2002 ---
869
875};
876
877struct WW67_ATRD // for versions 6/7
878{
879 char xstUsrInitl[ 10 ]; // pascal-style String holding initials
880 // of annotation author
881 SVBT16 ibst; // index into GrpXstAtnOwners
882 SVBT16 ak; // not used
883 SVBT16 grfbmc; // not used
884 SVBT32 ITagBkmk; // when not -1, this tag identifies the
885 // annotation bookmark that locates the
886 // range of CPs in the main document which
887 // this annotation references.
888};
889
891{
892 sal_Int16 nTDxaAbs;
893 sal_Int16 nTDyaAbs;
894 sal_Int16 nLeftMargin;
895 sal_Int16 nRightMargin;
896 sal_Int16 nUpperMargin;
897 sal_Int16 nLowerMargin;
900};
901
903{
904public:
905 sal_Int32 nSpId; //Shape Identifier. Used in conjunction with the office art data (found via fcDggInfo in the FIB) to find the actual data for this shape.
906 sal_Int32 nXaLeft; //left of rectangle enclosing shape relative to the origin of the shape
907 sal_Int32 nYaTop; //top of rectangle enclosing shape relative to the origin of the shape
908 sal_Int32 nXaRight; //right of rectangle enclosing shape relative to the origin of the shape
909 sal_Int32 nYaBottom;//bottom of the rectangle enclosing shape relative to the origin of the shape
910 sal_uInt16 bHdr:1;
911 //0001 1 in the undo doc when shape is from the header doc, 0 otherwise (undefined when not in the undo doc)
912 sal_uInt16 nbx:2;
913 //0006 x position of shape relative to anchor CP
914 //0 relative to page margin
915 //1 relative to top of page
916 //2 relative to text (column for horizontal text; paragraph for vertical text)
917 //3 reserved for future use
918 sal_uInt16 nby:2;
919 //0018 y position of shape relative to anchor CP
920 //0 relative to page margin
921 //1 relative to top of page
922 //2 relative to text (paragraph for horizontal text; column for vertical text)
923 sal_uInt16 nwr:4;
924 //01E0 text wrapping mode
925 //0 like 2, but doesn't require absolute object
926 //1 no text next to shape
927 //2 wrap around absolute object
928 //3 wrap as if no object present
929 //4 wrap tightly around object
930 //5 wrap tightly, but allow holes
931 //6-15 reserved for future use
932 sal_uInt16 nwrk:4;
933 //1E00 text wrapping mode type (valid only for wrapping modes 2 and 4
934 //0 wrap both sides
935 //1 wrap only on left
936 //2 wrap only on right
937 //3 wrap only on largest side
938 sal_uInt16 bRcaSimple:1;
939 //2000 when set, temporarily overrides bx, by, forcing the xaLeft, xaRight, yaTop, and yaBottom fields to all be page relative.
940 sal_uInt16 bBelowText:1;
941 //4000
942 //1 shape is below text
943 //0 shape is above text
944 sal_uInt16 bAnchorLock:1;
945 //8000 1 anchor is locked
946 // 0 anchor is not locked
947 sal_Int32 nTxbx; //count of textboxes in shape (undo doc only)
948public:
950};
951
952struct WW8_FSPA_SHADOW // all members at same position and size
953{ // due to: pF = (WW8_FSPA*)pFS;
961};
962
963static_assert(sizeof (WW8_FSPA_SHADOW) == 26, "this has to match the msword size");
964 // "26": cf. WW8ScannerBase ctor case 8 creation of pMainFdoa and pHdFtFdoa
965
967{
974};
975
977{
978 // M.M. This is the extra data stored in the SttbfFnm
979 // For now I only need the String Id
984};
985
987{
988 // M.M. This is the WkbPLCF struct
989 // For now I only need the Link Id
996};
997
998#ifdef _WIN32
999# pragma pack(pop)
1000#endif
1001
1002// Maximum number of columns according the WW8 specification
1004
1005struct SEPr
1006{
1007 SEPr();
1018 sal_uInt16 nLnnMod;
1019 sal_Int32 dxaLnn;
1020 sal_Int16 dxaPgn;
1021 sal_Int16 dyaPgn;
1024 sal_uInt16 dmBinFirst;
1025 sal_uInt16 dmBinOther;
1026 sal_uInt16 dmPaperReq;
1027/*
1028 28 1C brcTop BRC top page border
1029
1030 32 20 brcLeft BRC left page border
1031
1032 36 24 brcBottom BRC bottom page border
1033
1034 40 28 brcRight BRC right page border
1035*/
1036 sal_Int16 fPropRMark;
1037 sal_Int16 ibstPropRMark;
1038 sal_Int32 dttmPropRMark; //DTTM
1039 sal_Int32 dxtCharSpace;
1040 sal_Int32 dyaLinePitch;
1041 sal_uInt16 clm;
1042 sal_Int16 reserved1;
1045 sal_uInt16 pgnStart;
1046 sal_Int16 lnnMin;
1047 sal_uInt16 wTextFlow;
1048 sal_Int16 reserved2;
1049 sal_uInt16 pgbApplyTo:3;
1050 sal_uInt16 pgbPageDepth:2;
1051 sal_Int16 pgbOffsetFrom:3;
1052 sal_Int16 :8;
1053 sal_uInt32 xaPage;
1054 sal_uInt32 yaPage;
1055 sal_uInt32 xaPageNUp;
1056 sal_uInt32 yaPageNUp;
1057 sal_uInt32 dxaLeft;
1058 sal_uInt32 dxaRight;
1059 sal_Int32 dyaTop;
1060 sal_Int32 dyaBottom;
1061 sal_uInt32 dzaGutter;
1062 sal_uInt32 dyaHdrTop;
1063 sal_uInt32 dyaHdrBottom;
1064 sal_Int16 ccolM1; // have to be less than MAX_NO_OF_SEP_COLUMNS according the WW8 specification
1071 sal_Int32 dxaColumns;
1072
1073 // Fixed array - two entries for each SEP column to store width of column and spacing to next column.
1074 // At odd index values [1,3,5,...] the column widths are stored.
1075 // At even index values [2,4,6,...] the spacings to the next columns are stored.
1076 // Value at index 0 is initialized with 0 and used for easier iteration on the array
1078
1082 sal_Int16 reserved4;
1083};
1084
1085namespace wwUtility
1086{
1087 inline sal_uInt32 RGBToBGR(::Color nColour)
1088 {
1089 // we can use this because the translation is symmetric
1090 return sal_uInt32(msfilter::util::BGRToRGB(sal_uInt32(nColour)));
1091 }
1092}
1093
1096{
1097public:
1099 void Read(SvStream& rStream);
1100 void Write(WW8Export& rExport);
1101
1102 sal_uInt32 m_nId;
1103 OUString m_aUri;
1104 OUString m_aTag;
1105};
1106
1109{
1110public:
1111 void Read(SvStream& rStream);
1112 void Write(WW8Export& rExport);
1113
1114 std::vector<MSOFactoidType> m_aFactoidTypes;
1115 std::vector<OUString> m_aStringTable;
1116};
1117
1120{
1121public:
1122 MSOProperty();
1123 void Read(SvStream& rStream);
1124 void Write(SvStream& rStream);
1125
1127 sal_uInt32 m_nKey;
1129 sal_uInt32 m_nValue;
1130};
1131
1134{
1135public:
1137 bool Read(SvStream& rStream);
1138 void Write(WW8Export& rExport);
1139
1141 sal_uInt16 m_nId;
1142 std::vector<MSOProperty> m_aProperties;
1143};
1144
1147{
1148public:
1149 void Read(SvStream& rStream, WW8_FC fcFactoidData, sal_uInt32 lcbFactoidData);
1150 void Write(WW8Export& rExport);
1151
1153 std::vector<MSOPropertyBag> m_aPropBags;
1154};
1155
1156#endif
1157
1158/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
[MS-OSHARED] FactoidType: one smart tag type.
Definition: ww8struc.hxx:1096
OUString m_aUri
Definition: ww8struc.hxx:1103
OUString m_aTag
Definition: ww8struc.hxx:1104
sal_uInt32 m_nId
Definition: ww8struc.hxx:1102
void Write(WW8Export &rExport)
Definition: ww8scan.cxx:6733
void Read(SvStream &rStream)
Definition: ww8scan.cxx:6723
[MS-OSHARED] PropertyBagStore: smart tag types and string store.
Definition: ww8struc.hxx:1109
void Write(WW8Export &rExport)
Definition: ww8scan.cxx:6782
void Read(SvStream &rStream)
Definition: ww8scan.cxx:6747
std::vector< MSOFactoidType > m_aFactoidTypes
Definition: ww8struc.hxx:1114
std::vector< OUString > m_aStringTable
Definition: ww8struc.hxx:1115
[MS-OSHARED] PropertyBag: stores information about one smart tag.
Definition: ww8struc.hxx:1134
bool Read(SvStream &rStream)
Definition: ww8scan.cxx:6819
void Write(WW8Export &rExport)
Definition: ww8scan.cxx:6843
std::vector< MSOProperty > m_aProperties
Definition: ww8struc.hxx:1142
sal_uInt16 m_nId
Matches MSOFactoidType::m_nId in MSOPropertyBagStore::m_aFactoidTypes.
Definition: ww8struc.hxx:1141
[MS-OSHARED] Property: stores information about one smart-tag key/value.
Definition: ww8struc.hxx:1120
sal_uInt32 m_nValue
Index into MSOPropertyBagStore::m_aStringTable.
Definition: ww8struc.hxx:1129
void Write(SvStream &rStream)
Definition: ww8scan.cxx:6808
sal_uInt32 m_nKey
Index into MSOPropertyBagStore::m_aStringTable.
Definition: ww8struc.hxx:1127
void Read(SvStream &rStream)
Definition: ww8scan.cxx:6802
sal_Int16 m_cchFollowingPunct
Definition: ww8struc.hxx:410
static constexpr OUStringLiteral JapanNotBeginLevel1
Definition: ww8struc.hxx:398
void ReadFromMem(sal_uInt8 *&pData)
Definition: ww8scan.cxx:8298
sal_uInt16 m_reserved1
Definition: ww8struc.hxx:384
sal_uInt16 m_iLevelOfKinsoku
Definition: ww8struc.hxx:379
static constexpr OUStringLiteral JapanNotEndLevel1
Definition: ww8struc.hxx:406
void WriteToMem(sal_uInt8 *&pData) const
Definition: ww8scan.cxx:8329
sal_uInt16 m_fKerningPunct
Definition: ww8struc.hxx:374
sal_uInt16 m_f2on1
Definition: ww8struc.hxx:383
sal_Int16 m_cchLeadingPunct
Definition: ww8struc.hxx:411
LanguageType GetConvertedLang() const
Definition: ww8scan.cxx:8349
sal_Unicode m_rgxchLPunct[nMaxLeading]
Definition: ww8struc.hxx:416
sal_Unicode m_rgxchFPunct[nMaxFollowing]
Definition: ww8struc.hxx:414
sal_uInt16 m_iJustification
Definition: ww8struc.hxx:375
sal_uInt16 m_reserved2
Definition: ww8struc.hxx:385
Exporter of the binary Word file formats.
Definition: wrtww8.hxx:997
[MS-DOC] SmartTagData: stores information about all smart tags in the document.
Definition: ww8struc.hxx:1147
void Read(SvStream &rStream, WW8_FC fcFactoidData, sal_uInt32 lcbFactoidData)
Definition: ww8scan.cxx:6853
std::vector< MSOPropertyBag > m_aPropBags
Definition: ww8struc.hxx:1153
void Write(WW8Export &rExport)
Definition: ww8scan.cxx:6871
MSOPropertyBagStore m_aPropBagStore
Definition: ww8struc.hxx:1152
float u
void * p
sal_Int64 n
std::unique_ptr< sal_Int32[]> pData
::Color BGRToRGB(sal_uInt32 nColour)
sal_uInt32 RGBToBGR(::Color nColour)
Definition: ww8struc.hxx:1087
sal_uInt8 SVBT32[4]
sal_uInt8 SVBT16[2]
sal_Int8 vjc
Definition: ww8struc.hxx:1023
sal_Int32 dyaLinePitch
Definition: ww8struc.hxx:1040
sal_Int16 reserved2
Definition: ww8struc.hxx:1048
sal_Int32 dxtCharSpace
Definition: ww8struc.hxx:1039
sal_uInt32 yaPage
Definition: ww8struc.hxx:1054
sal_uInt8 fFacingCol
Definition: ww8struc.hxx:1068
sal_Int16 dxaPgn
Definition: ww8struc.hxx:1020
sal_uInt8 nfcPgn
Definition: ww8struc.hxx:1011
sal_uInt8 cnsPgn
Definition: ww8struc.hxx:1013
sal_Int32 dyaTop
Definition: ww8struc.hxx:1059
sal_Int16 lnnMin
Definition: ww8struc.hxx:1046
sal_uInt16 clm
Definition: ww8struc.hxx:1041
sal_Int8 fEvenlySpaced
Definition: ww8struc.hxx:1065
sal_uInt16 dmPaperReq
Definition: ww8struc.hxx:1026
sal_uInt32 xaPageNUp
Definition: ww8struc.hxx:1055
sal_uInt8 bkc
Definition: ww8struc.hxx:1008
sal_Int8 lnc
Definition: ww8struc.hxx:1016
sal_Int8 reserved3
Definition: ww8struc.hxx:1066
sal_uInt8 fRTLAlignment
Definition: ww8struc.hxx:1070
sal_uInt16 wTextFlow
Definition: ww8struc.hxx:1047
sal_Int32 dxaColumns
Definition: ww8struc.hxx:1071
sal_Int32 dxaColumnWidth
Definition: ww8struc.hxx:1079
sal_Int16 ccolM1
Definition: ww8struc.hxx:1064
sal_uInt8 dmOrientFirst
Definition: ww8struc.hxx:1080
sal_uInt8 fPgnRestart
Definition: ww8struc.hxx:1014
sal_uInt32 dyaHdrTop
Definition: ww8struc.hxx:1062
sal_uInt32 dyaHdrBottom
Definition: ww8struc.hxx:1063
sal_Int32 dxaLnn
Definition: ww8struc.hxx:1019
sal_uInt32 dxaRight
Definition: ww8struc.hxx:1058
sal_uInt32 yaPageNUp
Definition: ww8struc.hxx:1056
sal_uInt8 dmOrientPage
Definition: ww8struc.hxx:1043
sal_uInt16 pgbApplyTo
Definition: ww8struc.hxx:1049
sal_uInt16 dmBinOther
Definition: ww8struc.hxx:1025
sal_Int32 rgdxaColumnWidthSpacing[MAX_NO_OF_SEP_COLUMNS *2+1]
Definition: ww8struc.hxx:1077
sal_Int16 ibstPropRMark
Definition: ww8struc.hxx:1037
sal_uInt8 fBiDi
Definition: ww8struc.hxx:1067
sal_uInt32 xaPage
Definition: ww8struc.hxx:1053
sal_Int16 reserved1
Definition: ww8struc.hxx:1042
sal_uInt8 fRTLGutter
Definition: ww8struc.hxx:1069
sal_uInt16 pgnStart
Definition: ww8struc.hxx:1045
sal_Int16 pgbOffsetFrom
Definition: ww8struc.hxx:1051
sal_uInt8 fTitlePage
Definition: ww8struc.hxx:1009
sal_uInt32 dxaLeft
Definition: ww8struc.hxx:1057
sal_Int16 dyaPgn
Definition: ww8struc.hxx:1021
sal_uInt8 fLayout
Definition: ww8struc.hxx:1081
sal_uInt8 fUnlocked
Definition: ww8struc.hxx:1012
sal_uInt8 fEndNote
Definition: ww8struc.hxx:1015
sal_uInt16 pgbPageDepth
Definition: ww8struc.hxx:1050
sal_Int8 fAutoPgn
Definition: ww8struc.hxx:1010
sal_Int8 fLBetween
Definition: ww8struc.hxx:1022
sal_uInt8 iHeadingPgn
Definition: ww8struc.hxx:1044
sal_Int32 dttmPropRMark
Definition: ww8struc.hxx:1038
sal_Int8 grpfIhdt
Definition: ww8struc.hxx:1017
sal_uInt16 dmBinFirst
Definition: ww8struc.hxx:1024
SEPr()
Definition: ww8scan.cxx:8527
sal_Int16 reserved4
Definition: ww8struc.hxx:1082
sal_Int32 dyaBottom
Definition: ww8struc.hxx:1060
sal_Int16 fPropRMark
Definition: ww8struc.hxx:1036
sal_uInt32 dzaGutter
Definition: ww8struc.hxx:1061
sal_uInt16 nLnnMod
Definition: ww8struc.hxx:1018
SVBT16 grfbmc
Definition: ww8struc.hxx:883
char xstUsrInitl[10]
Definition: ww8struc.hxx:879
SVBT16 ak
Definition: ww8struc.hxx:882
SVBT16 ibst
Definition: ww8struc.hxx:881
SVBT32 ITagBkmk
Definition: ww8struc.hxx:884
sal_uInt8 fNumberAcross
Definition: ww8struc.hxx:658
sal_uInt8 fNumber1
Definition: ww8struc.hxx:657
sal_uInt8 fSpareX
Definition: ww8struc.hxx:660
sal_uInt8 fRestartHdn
Definition: ww8struc.hxx:659
sal_uInt8 rgchAnld[32]
Definition: ww8struc.hxx:661
WW8_ANLV eAnlv
Definition: ww8struc.hxx:656
sal_uInt8 aBits3
Definition: ww8struc.hxx:643
SVBT16 hps
Definition: ww8struc.hxx:647
sal_uInt8 aBits2
Definition: ww8struc.hxx:634
SVBT16 iStartAt
Definition: ww8struc.hxx:648
SVBT16 dxaSpace
Definition: ww8struc.hxx:650
sal_uInt8 aBits1
Definition: ww8struc.hxx:626
sal_uInt8 cbTextAfter
Definition: ww8struc.hxx:625
SVBT16 dxaIndent
Definition: ww8struc.hxx:649
SVBT16 ftc
Definition: ww8struc.hxx:646
sal_uInt8 nfc
Definition: ww8struc.hxx:622
sal_uInt8 cbTextBefore
Definition: ww8struc.hxx:624
SVBT32 cDepth
Definition: ww8struc.hxx:872
SVBT32 Discussitem
Definition: ww8struc.hxx:874
SVBT32 diatrdParent
Definition: ww8struc.hxx:873
SVBT16 ibst
Definition: ww8struc.hxx:857
SVBT16 xstUsrInitl[10]
Definition: ww8struc.hxx:855
SVBT16 grfbmc
Definition: ww8struc.hxx:859
SVBT32 ITagBkmk
Definition: ww8struc.hxx:860
SVBT16 ak
Definition: ww8struc.hxx:858
sal_uInt8 ico() const
Definition: ww8struc.hxx:254
SVBT16 aBits1
Definition: ww8struc.hxx:236
sal_uInt8 brcType() const
Definition: ww8struc.hxx:250
sal_uInt8 dxpLineWidth() const
Definition: ww8struc.hxx:248
WW8_BRCVer6()=default
bool fShadow() const
Definition: ww8struc.hxx:252
sal_uInt8 dxpSpace() const
Definition: ww8struc.hxx:256
bool fShadow() const
Definition: ww8struc.hxx:329
SVBT32 aBits1
Definition: ww8struc.hxx:311
sal_uInt8 brcType() const
Definition: ww8struc.hxx:325
bool isNil() const
Definition: ww8struc.hxx:333
WW8_BRCVer9(sal_uInt32 _cv, sal_uInt8 _dptLineWidth, sal_uInt8 _brcType, sal_uInt8 _dptSpace, bool _fShadow, bool _fFrame)
Definition: ww8struc.hxx:336
WW8_BRCVer9()=default
bool fFrame() const
Definition: ww8struc.hxx:331
sal_uInt8 dptLineWidth() const
Definition: ww8struc.hxx:323
SVBT32 aBits2
Definition: ww8struc.hxx:312
sal_uInt32 cv() const
Definition: ww8struc.hxx:321
sal_uInt8 dptSpace() const
Definition: ww8struc.hxx:327
short DetermineBorderProperties(short *pSpace=nullptr) const
Definition: ww8scan.cxx:1370
sal_uInt8 dptSpace() const
Definition: ww8struc.hxx:280
bool isNil() const
Definition: ww8struc.hxx:286
sal_uInt8 ico() const
Definition: ww8struc.hxx:278
SVBT16 aBits2
Definition: ww8struc.hxx:264
sal_uInt8 dptLineWidth() const
Definition: ww8struc.hxx:274
WW8_BRC()=default
SVBT16 aBits1
Definition: ww8struc.hxx:263
bool fShadow() const
Definition: ww8struc.hxx:282
sal_uInt8 brcType() const
Definition: ww8struc.hxx:276
bool fFrame() const
Definition: ww8struc.hxx:284
WW8_BRC(sal_uInt8 _dptLineWidth, sal_uInt8 _brcType, sal_uInt8 _ico, sal_uInt8 _dptSpace, bool _fShadow, bool _fFrame)
Definition: ww8struc.hxx:289
short DetermineBorderProperties(short *pSpace) const
Definition: ww8scan.cxx:1364
short dyGridDisplay
Definition: ww8struc.hxx:431
short dxGridDisplay
Definition: ww8struc.hxx:435
short dyaGrid
Definition: ww8struc.hxx:424
short fFollowMargins
Definition: ww8struc.hxx:438
short dxaGrid
Definition: ww8struc.hxx:423
short xaGrid
Definition: ww8struc.hxx:421
short yaGrid
Definition: ww8struc.hxx:422
short fTurnItOff
Definition: ww8struc.hxx:434
sal_uInt8 bx
Definition: ww8struc.hxx:685
SVBT16 aBits1
Definition: ww8struc.hxx:702
sal_uInt8 by
Definition: ww8struc.hxx:686
SVBT16 cb
Definition: ww8struc.hxx:684
SVBT16 dok
Definition: ww8struc.hxx:683
SVBT16 dhgt
Definition: ww8struc.hxx:701
SVBT16 dya
Definition: ww8struc.hxx:717
SVBT16 dpk
Definition: ww8struc.hxx:709
SVBT16 cb
Definition: ww8struc.hxx:713
SVBT16 ya
Definition: ww8struc.hxx:715
SVBT16 xa
Definition: ww8struc.hxx:714
SVBT16 dxa
Definition: ww8struc.hxx:716
sal_uInt8 fLeft
Definition: ww8struc.hxx:795
WW8_DP_FILL aFill
Definition: ww8struc.hxx:793
sal_uInt8 fUp
Definition: ww8struc.hxx:796
WW8_DP_LINETYPE aLnt
Definition: ww8struc.hxx:792
WW8_DP_SHADOW aShd
Definition: ww8struc.hxx:794
WW8_DP_POLYLINE dpPolyLine
Definition: ww8struc.hxx:833
WW8_DP_TXTBOX dptxbx
Definition: ww8struc.hxx:831
WW8_DPHEAD dpheadTxbx
Definition: ww8struc.hxx:830
WW8_DPHEAD dpheadPolyLine
Definition: ww8struc.hxx:832
WW8_DP_SHADOW aShd
Definition: ww8struc.hxx:805
WW8_DP_LINETYPE aLnt
Definition: ww8struc.hxx:803
WW8_DP_FILL aFill
Definition: ww8struc.hxx:804
SVBT32 dlpcBg
Definition: ww8struc.hxx:738
SVBT16 flpp
Definition: ww8struc.hxx:739
SVBT32 dlpcFg
Definition: ww8struc.hxx:737
SVBT16 aStartBits
Definition: ww8struc.hxx:744
SVBT16 aEndBits
Definition: ww8struc.hxx:750
WW8_DP_LINETYPE aLnt
Definition: ww8struc.hxx:764
WW8_DP_SHADOW aShd
Definition: ww8struc.hxx:766
SVBT16 xaStart
Definition: ww8struc.hxx:760
SVBT16 xaEnd
Definition: ww8struc.hxx:762
WW8_DP_LINEEND aEpp
Definition: ww8struc.hxx:765
SVBT16 yaStart
Definition: ww8struc.hxx:761
SVBT16 yaEnd
Definition: ww8struc.hxx:763
WW8_DP_LINEEND aEpp
Definition: ww8struc.hxx:812
WW8_DP_LINETYPE aLnt
Definition: ww8struc.hxx:810
WW8_DP_SHADOW aShd
Definition: ww8struc.hxx:813
WW8_DP_FILL aFill
Definition: ww8struc.hxx:811
WW8_DP_FILL aFill
Definition: ww8struc.hxx:783
WW8_DP_LINETYPE aLnt
Definition: ww8struc.hxx:782
SVBT16 aBits1
Definition: ww8struc.hxx:785
WW8_DP_SHADOW aShd
Definition: ww8struc.hxx:784
SVBT16 yaOffset
Definition: ww8struc.hxx:732
SVBT16 shdwpi
Definition: ww8struc.hxx:730
SVBT16 xaOffset
Definition: ww8struc.hxx:731
WW8_DP_FILL aFill
Definition: ww8struc.hxx:772
WW8_DP_SHADOW aShd
Definition: ww8struc.hxx:773
WW8_DP_LINETYPE aLnt
Definition: ww8struc.hxx:771
SVBT16 aBits1
Definition: ww8struc.hxx:774
SVBT16 dzaInternalMargin
Definition: ww8struc.hxx:777
SVBT16 ctxbx
Definition: ww8struc.hxx:678
SVBT32 fc
Definition: ww8struc.hxx:677
base for reading AND working on (will have different subclasses
Definition: ww8struc.hxx:202
sal_uInt8 chs
Definition: ww8struc.hxx:213
sal_uInt8 ff
Definition: ww8struc.hxx:209
sal_uInt8 _reserved1
Definition: ww8struc.hxx:208
sal_uInt8 ibszAlt
Definition: ww8struc.hxx:214
sal_uInt8 cbFfnM1
Definition: ww8struc.hxx:204
short wWeight
Definition: ww8struc.hxx:212
sal_uInt8 prg
Definition: ww8struc.hxx:206
sal_uInt8 fTrueType
Definition: ww8struc.hxx:207
sal_uInt8 _reserved2
Definition: ww8struc.hxx:210
This is what we use in the Parser (and Dumper)
Definition: ww8struc.hxx:222
WW8_FFN_BASE aFFNBase
Definition: ww8struc.hxx:231
OUString sFontname
Definition: ww8struc.hxx:224
SVBT32 nYaBottom
Definition: ww8struc.hxx:958
sal_Int32 nYaBottom
Definition: ww8struc.hxx:909
sal_uInt16 nby
Definition: ww8struc.hxx:918
@ RelPgMargin
Definition: ww8struc.hxx:949
@ RelPageBorder
Definition: ww8struc.hxx:949
sal_Int32 nXaRight
Definition: ww8struc.hxx:908
sal_uInt16 bHdr
Definition: ww8struc.hxx:910
sal_Int32 nXaLeft
Definition: ww8struc.hxx:906
sal_Int32 nSpId
Definition: ww8struc.hxx:905
sal_uInt16 nwrk
Definition: ww8struc.hxx:932
sal_Int32 nTxbx
Definition: ww8struc.hxx:947
sal_Int32 nYaTop
Definition: ww8struc.hxx:907
sal_uInt16 bBelowText
Definition: ww8struc.hxx:940
sal_uInt16 bRcaSimple
Definition: ww8struc.hxx:938
sal_uInt16 nbx
Definition: ww8struc.hxx:912
sal_uInt16 nwr
Definition: ww8struc.hxx:923
sal_uInt16 bAnchorLock
Definition: ww8struc.hxx:944
sal_uInt8 fSpareOlst3
Definition: ww8struc.hxx:669
sal_uInt8 fRestartHdr
Definition: ww8struc.hxx:667
WW8_ANLV rganlv[9]
Definition: ww8struc.hxx:666
sal_uInt8 fSpareOlst4
Definition: ww8struc.hxx:670
sal_uInt8 rgch[64]
Definition: ww8struc.hxx:671
sal_uInt8 fSpareOlst2
Definition: ww8struc.hxx:668
sal_uInt8 aBits1
Definition: ww8struc.hxx:838
SVBT16 prm
Definition: ww8struc.hxx:847
SVBT32 fc
Definition: ww8struc.hxx:844
sal_uInt8 aBits2
Definition: ww8struc.hxx:843
sal_uInt8 rcWinMF[14]
Definition: ww8struc.hxx:492
SVBT16 dxaCropRight
Definition: ww8struc.hxx:500
sal_uInt8 aBits2
Definition: ww8struc.hxx:503
SVBT16 dyaGoal
Definition: ww8struc.hxx:495
sal_uInt8 aBits1
Definition: ww8struc.hxx:502
struct WW8_PIC_SHADOW::@14 MFP
SVBT16 dxaGoal
Definition: ww8struc.hxx:494
SVBT16 dxaCropLeft
Definition: ww8struc.hxx:498
SVBT16 dyaCropTop
Definition: ww8struc.hxx:499
SVBT16 dyaCropBottom
Definition: ww8struc.hxx:501
SVBT16 cbHeader
Definition: ww8struc.hxx:484
sal_uInt16 cbHeader
Definition: ww8struc.hxx:447
sal_Int16 brcl
Definition: ww8struc.hxx:465
sal_Int16 hMF
Definition: ww8struc.hxx:452
sal_Int16 dyaOrigin
Definition: ww8struc.hxx:477
sal_Int16 bpp
Definition: ww8struc.hxx:470
sal_uInt8 rcWinMF[14]
Definition: ww8struc.hxx:455
sal_Int16 dxaCropRight
Definition: ww8struc.hxx:463
sal_Int16 dyaCropBottom
Definition: ww8struc.hxx:464
sal_Int16 dxaOrigin
Definition: ww8struc.hxx:476
sal_Int16 dxaCropLeft
Definition: ww8struc.hxx:461
sal_Int16 dyaCropTop
Definition: ww8struc.hxx:462
sal_uInt16 mx
Definition: ww8struc.hxx:459
sal_Int16 xExt
Definition: ww8struc.hxx:450
sal_uInt16 my
Definition: ww8struc.hxx:460
WW8_BRC rgbrc[4]
Definition: ww8struc.hxx:471
sal_Int16 yExt
Definition: ww8struc.hxx:451
sal_Int16 dxaGoal
Definition: ww8struc.hxx:457
sal_Int16 fError
Definition: ww8struc.hxx:469
struct WW8_PIC::@13 MFP
sal_Int16 fDrawHatch
Definition: ww8struc.hxx:468
sal_Int16 dyaGoal
Definition: ww8struc.hxx:458
sal_Int32 lcb
Definition: ww8struc.hxx:446
sal_Int16 fFrameEmpty
Definition: ww8struc.hxx:466
sal_Int16 fBitmap
Definition: ww8struc.hxx:467
sal_Int16 mm
Definition: ww8struc.hxx:449
void SetBack(sal_uInt8 nVal)
Definition: ww8struc.hxx:608
sal_uInt16 maBits
Definition: ww8struc.hxx:585
sal_uInt16 GetValue() const
Definition: ww8struc.hxx:599
sal_uInt8 GetBack() const
Definition: ww8struc.hxx:595
void SetFore(sal_uInt8 nVal)
Definition: ww8struc.hxx:603
void SetWWValue(SVBT16 const nVal)
Definition: ww8struc.hxx:601
sal_uInt8 GetFore() const
Definition: ww8struc.hxx:594
sal_uInt8 GetStyle(bool bVer67) const
Definition: ww8struc.hxx:596
void SetStyle(sal_uInt8 nVal)
Definition: ww8struc.hxx:613
STD - STyle Definition.
Definition: ww8struc.hxx:170
sal_uInt16 fScratch
Definition: ww8struc.hxx:173
sal_uInt16 istdNext
Definition: ww8struc.hxx:182
sal_uInt16 fHasUpe
Definition: ww8struc.hxx:176
sal_uInt16 cupx
Definition: ww8struc.hxx:181
sal_uInt16 bchUpe
Definition: ww8struc.hxx:183
sal_uInt16 sti
Definition: ww8struc.hxx:172
sal_uInt16 sgc
Definition: ww8struc.hxx:179
sal_uInt16 istdBase
Definition: ww8struc.hxx:180
sal_uInt16 fInvalHeight
Definition: ww8struc.hxx:175
sal_uInt16 fAutoRedef
Definition: ww8struc.hxx:186
sal_uInt16 fMassCopy
Definition: ww8struc.hxx:177
sal_uInt16 fHidden
Definition: ww8struc.hxx:187
SVBT16 reserved3
Definition: ww8struc.hxx:983
SVBT16 reserved1
Definition: ww8struc.hxx:981
SVBT16 reserved2
Definition: ww8struc.hxx:982
SVBT16 nStringId
Definition: ww8struc.hxx:980
sal_uInt8 aBits1
Definition: ww8struc.hxx:519
WW8_BRCVer6 rgbrcVer6[4]
Definition: ww8struc.hxx:565
sal_uInt8 aBits2Ver6
Definition: ww8struc.hxx:561
sal_uInt8 aBits1Ver6
Definition: ww8struc.hxx:560
WW8_BRC rgbrcVer8[4]
Definition: ww8struc.hxx:578
SVBT16 aBits1Ver8
Definition: ww8struc.hxx:576
SVBT16 aUnused
Definition: ww8struc.hxx:577
sal_uInt8 nVertAlign
Definition: ww8struc.hxx:538
WW8_BRCVer9 rgbrc[4]
Definition: ww8struc.hxx:544
sal_uInt8 bRotateFont
Definition: ww8struc.hxx:535
sal_uInt8 bBackward
Definition: ww8struc.hxx:534
sal_uInt8 bVertical
Definition: ww8struc.hxx:533
sal_uInt8 bVertMerge
Definition: ww8struc.hxx:536
sal_uInt8 bFirstMerged
Definition: ww8struc.hxx:531
sal_uInt16 fUnused
Definition: ww8struc.hxx:542
sal_uInt8 bMerged
Definition: ww8struc.hxx:532
sal_uInt8 bVertRestart
Definition: ww8struc.hxx:537
SVBT32 ShapeId
Definition: ww8struc.hxx:972
SVBT32 cTxbx_iNextReuse
Definition: ww8struc.hxx:968
SVBT32 reserved
Definition: ww8struc.hxx:971
SVBT16 fReusable
Definition: ww8struc.hxx:970
SVBT32 txidUndo
Definition: ww8struc.hxx:973
SVBT32 cReusable
Definition: ww8struc.hxx:969
sal_Int16 nLowerMargin
Definition: ww8struc.hxx:897
sal_Int16 nUpperMargin
Definition: ww8struc.hxx:896
sal_Int16 nTDyaAbs
Definition: ww8struc.hxx:893
sal_uInt8 nTPc
Definition: ww8struc.hxx:898
sal_Int16 nLeftMargin
Definition: ww8struc.hxx:894
sal_Int16 nRightMargin
Definition: ww8struc.hxx:895
sal_Int16 nTDxaAbs
Definition: ww8struc.hxx:892
sal_uInt8 nPWr
Definition: ww8struc.hxx:899
SVBT16 reserved4
Definition: ww8struc.hxx:994
SVBT16 reserved2
Definition: ww8struc.hxx:991
SVBT16 reserved5
Definition: ww8struc.hxx:995
SVBT16 reserved3
Definition: ww8struc.hxx:992
SVBT16 nLinkId
Definition: ww8struc.hxx:993
SVBT16 reserved1
Definition: ww8struc.hxx:990
sal_uInt16 fBold
Definition: ww8struc.hxx:61
sal_uInt16 fBiDi
Definition: ww8struc.hxx:75
sal_uInt16 fSmallCaps
Definition: ww8struc.hxx:66
sal_uInt16 fRMarkDel
Definition: ww8struc.hxx:63
sal_uInt16 fsSpace
Definition: ww8struc.hxx:82
sal_uInt16 fSpec
Definition: ww8struc.hxx:70
sal_uInt16 fsLid
Definition: ww8struc.hxx:83
sal_uInt16 fsHpsBi
Definition: ww8struc.hxx:86
sal_uInt8 qpsSpace
Definition: ww8struc.hxx:91
sal_uInt16 hps
Definition: ww8struc.hxx:90
sal_uInt16 fRMark
Definition: ww8struc.hxx:69
sal_uInt8 icoBi
Definition: ww8struc.hxx:97
sal_uInt16 fVanish
Definition: ww8struc.hxx:68
sal_uInt16 fsIco
Definition: ww8struc.hxx:77
sal_uInt16 fsPos
Definition: ww8struc.hxx:81
sal_uInt16 fCaps
Definition: ww8struc.hxx:67
sal_uInt16 fFieldVanish
Definition: ww8struc.hxx:65
sal_uInt16 fItalicBi
Definition: ww8struc.hxx:74
sal_uInt16 fItalic
Definition: ww8struc.hxx:62
sal_uInt16 fsFtc
Definition: ww8struc.hxx:78
sal_uInt16 fStrike
Definition: ww8struc.hxx:71
sal_uInt16 fsLidBi
Definition: ww8struc.hxx:87
sal_uInt16 hpsBi
Definition: ww8struc.hxx:100
sal_uInt16 lid
Definition: ww8struc.hxx:98
sal_uInt16 fDiacUSico
Definition: ww8struc.hxx:76
sal_uInt8 ico
Definition: ww8struc.hxx:94
sal_uInt16 fsIcoBi
Definition: ww8struc.hxx:84
sal_uInt8 fSysVanish
Definition: ww8struc.hxx:92
sal_uInt16 fsHps
Definition: ww8struc.hxx:79
sal_uInt8 kul
Definition: ww8struc.hxx:95
sal_uInt16 lidBi
Definition: ww8struc.hxx:101
sal_uInt16 ftc
Definition: ww8struc.hxx:89
sal_uInt8 hpsPos
Definition: ww8struc.hxx:96
sal_uInt16 fsFtcBi
Definition: ww8struc.hxx:85
sal_uInt16 fOutline
Definition: ww8struc.hxx:64
sal_uInt16 fsKul
Definition: ww8struc.hxx:80
sal_uInt16 fObj
Definition: ww8struc.hxx:72
sal_uInt32 fcPic
Definition: ww8struc.hxx:102
sal_uInt16 ftcBi
Definition: ww8struc.hxx:99
sal_uInt8 fNumRun
Definition: ww8struc.hxx:93
sal_uInt16 fBoldBi
Definition: ww8struc.hxx:73
unsigned char sal_uInt8
#define SAL_MAX_INT32
sal_uInt16 sal_Unicode
signed char sal_Int8
void Set_UInt32(sal_uInt8 *&p, sal_uInt32 n)
Definition: ww8struc.hxx:53
void Set_UInt8(sal_uInt8 *&p, sal_uInt8 n)
Definition: ww8struc.hxx:41
const sal_uInt8 MAX_NO_OF_SEP_COLUMNS
Definition: ww8struc.hxx:1003
sal_Int16 WW8_PN
Definition: ww8struc.hxx:151
BRC_Sides
Definition: ww8struc.hxx:357
@ WW8_LEFT
Definition: ww8struc.hxx:358
@ WW8_BOT
Definition: ww8struc.hxx:358
@ WW8_TOP
Definition: ww8struc.hxx:358
@ WW8_BETW
Definition: ww8struc.hxx:358
@ WW8_RIGHT
Definition: ww8struc.hxx:358
sal_Int32 WW8_CP
Definition: ww8struc.hxx:153
WW8_BRCVer9 WW8_BRCVer9_5[5]
Definition: ww8struc.hxx:354
sal_Int32 WW8_FC
Definition: ww8struc.hxx:152
void Set_UInt16(sal_uInt8 *&p, sal_uInt16 n)
Definition: ww8struc.hxx:47
const WW8_FC WW8_FC_MAX
Definition: ww8struc.hxx:155
const WW8_CP WW8_CP_MAX
Definition: ww8struc.hxx:156
WW8_BRC WW8_BRC5[5]
Definition: ww8struc.hxx:306