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_SPRMIDS_HXX
21 #define INCLUDED_SW_SOURCE_FILTER_WW8_SPRMIDS_HXX
22 
23 #include <sal/types.h>
24 
25 namespace NS_sprm
26 {
27 const sal_uInt16 LN_PFSideBySide = 0x2404;
28 const sal_uInt16 LN_PBrcl = 0x2408;
29 const sal_uInt16 LN_PBrcp = 0x2409;
30 const sal_uInt16 LN_PBrcTop10 = 0x461c;
31 const sal_uInt16 LN_PBrcLeft10 = 0x461d;
32 const sal_uInt16 LN_PBrcBottom10 = 0x461e;
33 const sal_uInt16 LN_PBrcRight10 = 0x461f;
34 const sal_uInt16 LN_PBrcBetween10 = 0x4620;
35 const sal_uInt16 LN_PBrcBar10 = 0x4621;
36 const sal_uInt16 LN_PDxaFromText10 = 0x4622;
37 const sal_uInt16 LN_PRuler = 0xc632;
38 const sal_uInt16 LN_PISnapBaseLine = 0x243b;
39 const sal_uInt16 LN_PAnld = 0xc63e;
40 const sal_uInt16 LN_PPropRMark = 0xc63f;
41 const sal_uInt16 LN_PCrLf = 0x2444;
42 const sal_uInt16 LN_PHugePapx = 0x6645;
43 const sal_uInt16 LN_CChs = 0xea08;
44 const sal_uInt16 LN_CIdCharType = 0x480b;
45 const sal_uInt16 LN_CObjLocation = 0x680e;
46 const sal_uInt16 LN_CFFtcAsciSymb = 0x2a10;
47 const sal_uInt16 LN_CDefault = 0x2a32;
48 const sal_uInt16 LN_CFtcDefault = 0x4a3d;
49 const sal_uInt16 LN_CSizePos = 0xea3f;
50 const sal_uInt16 LN_CLid = 0x4a41;
51 const sal_uInt16 LN_CHpsInc = 0x2a44;
52 const sal_uInt16 LN_CHpsPosAdj = 0x2a46;
53 const sal_uInt16 LN_CHpsNew50 = 0xca49;
54 const sal_uInt16 LN_CHpsInc1 = 0xca4a;
55 const sal_uInt16 LN_CMajority50 = 0xca4c;
56 const sal_uInt16 LN_CHpsMul = 0x4a4d;
57 const sal_uInt16 LN_CFDiacColor = 0x085b;
58 const sal_uInt16 LN_CCpg = 0x486b;
59 const sal_uInt16 LN_PicBrcl = 0x2e00;
60 const sal_uInt16 LN_PicScale = 0xce01;
61 const sal_uInt16 LN_SOlstAnm = 0xd202;
62 const sal_uInt16 LN_SFAutoPgn = 0x300d;
63 const sal_uInt16 LN_SDyaPgn = 0xb00f;
64 const sal_uInt16 LN_SDxaPgn = 0xb010;
65 const sal_uInt16 LN_SGprfIhdt = 0x3014;
66 const sal_uInt16 LN_SBCustomize = 0x301e;
67 const sal_uInt16 LN_SPropRMark = 0xd227;
68 const sal_uInt16 LN_SFFacingCol = 0x3229;
69 const sal_uInt16 LN_TDefTable10 = 0xd606;
70 const sal_uInt16 LN_THTMLProps = 0x740c;
71 const sal_uInt16 LN_TSetBrc10 = 0xd626;
72 const sal_uInt16 LN_TSetShd80 = 0x7627;
73 const sal_uInt16 LN_TSetShdOdd80 = 0x7628;
74 const sal_uInt16 LN_TDiagLine = 0xd62a;
75 
76 namespace v6
77 {
78 // Microsoft Word for Windows 6.0 Binary File Format
79 //                                              Parameter size
80 const sal_uInt16 sprmPIstd = 2; // short
81 const sal_uInt16 sprmPIstdPermute = 3; // variable
82 const sal_uInt16 sprmPIncLv1 = 4; // byte
83 const sal_uInt16 sprmPJc = 5; // byte
84 const sal_uInt16 sprmPFSideBySide = 6; // byte
85 const sal_uInt16 sprmPFKeep = 7; // byte
86 const sal_uInt16 sprmPFKeepFollow = 8; // byte
87 const sal_uInt16 sprmPPageBreakBefore = 9; // byte
88 const sal_uInt16 sprmPBrcl = 10; // byte
89 const sal_uInt16 sprmPBrcp = 11; // byte
90 const sal_uInt16 sprmPAnld = 12; // variable
91 const sal_uInt16 sprmPNLvlAnm = 13; // byte
92 const sal_uInt16 sprmPFNoLineNumb = 14; // byte
93 const sal_uInt16 sprmPChgTabsPapx = 15; // variable
94 const sal_uInt16 sprmPDxaRight = 16; // word
95 const sal_uInt16 sprmPDxaLeft = 17; // word
96 const sal_uInt16 sprmPNest = 18; // word
97 const sal_uInt16 sprmPDxaLeft1 = 19; // word
98 const sal_uInt16 sprmPDyaLine = 20; // long
99 const sal_uInt16 sprmPDyaBefore = 21; // word
100 const sal_uInt16 sprmPDyaAfter = 22; // word
101 const sal_uInt16 sprmPChgTabs = 23; // variable
102 const sal_uInt16 sprmPFInTable = 24; // byte
103 const sal_uInt16 sprmPTtp = 25; // byte
104 const sal_uInt16 sprmPDxaAbs = 26; // word
105 const sal_uInt16 sprmPDyaAbs = 27; // word
106 const sal_uInt16 sprmPDxaWidth = 28; // word
107 const sal_uInt16 sprmPPc = 29; // byte
108 const sal_uInt16 sprmPBrcTop10 = 30; // word
109 const sal_uInt16 sprmPBrcLeft10 = 31; // word
110 const sal_uInt16 sprmPBrcBottom10 = 32; // word
111 const sal_uInt16 sprmPBrcRight10 = 33; // word
112 const sal_uInt16 sprmPBrcBetween10 = 34; // word
113 const sal_uInt16 sprmPBrcBar10 = 35; // word
114 const sal_uInt16 sprmPFromText10 = 36; // word
115 const sal_uInt16 sprmPWr = 37; // byte
116 const sal_uInt16 sprmPBrcTop = 38; // word
117 const sal_uInt16 sprmPBrcLeft = 39; // word
118 const sal_uInt16 sprmPBrcBottom = 40; // word
119 const sal_uInt16 sprmPBrcRight = 41; // word
120 const sal_uInt16 sprmPBrcBetween = 42; // word
121 const sal_uInt16 sprmPBrcBar = 43; // word
122 const sal_uInt16 sprmPFNoAutoHyph = 44; // byte
123 const sal_uInt16 sprmPWHeightAbs = 45; // word
124 const sal_uInt16 sprmPDcs = 46; // short
125 const sal_uInt16 sprmPShd = 47; // word
126 const sal_uInt16 sprmPDyaFromText = 48; // word
127 const sal_uInt16 sprmPDxaFromText = 49; // word
128 const sal_uInt16 sprmPFLocked = 50; // byte
129 const sal_uInt16 sprmPFWidowControl = 51; // byte
130 const sal_uInt16 sprmPRuler = 52;
131 const sal_uInt16 sprmCFStrikeRM = 65; // bit
132 const sal_uInt16 sprmCFRMark = 66; // bit
133 const sal_uInt16 sprmCFFldVanish = 67; // bit
134 const sal_uInt16 sprmCPicLocation = 68; // variable
135 const sal_uInt16 sprmCIbstRMark = 69; // short
136 const sal_uInt16 sprmCDttmRMark = 70; // long
137 const sal_uInt16 sprmCFData = 71; // bit
138 const sal_uInt16 sprmCRMReason = 72; // short
139 const sal_uInt16 sprmCChse = 73; // 3 bytes
140 const sal_uInt16 sprmCSymbol = 74; // variable
141 const sal_uInt16 sprmCFOle2 = 75; // bit
142 const sal_uInt16 sprmCIstd = 80; // short
143 const sal_uInt16 sprmCIstdPermute = 81; // variable
144 const sal_uInt16 sprmCDefault = 82; // variable
145 const sal_uInt16 sprmCPlain = 83; // 0
146 const sal_uInt16 sprmCFBold = 85; // byte
147 const sal_uInt16 sprmCFItalic = 86; // byte
148 const sal_uInt16 sprmCFStrike = 87; // byte
149 const sal_uInt16 sprmCFOutline = 88; // byte
150 const sal_uInt16 sprmCFShadow = 89; // byte
151 const sal_uInt16 sprmCFSmallCaps = 90; // byte
152 const sal_uInt16 sprmCFCaps = 91; // byte
153 const sal_uInt16 sprmCFVanish = 92; // byte
154 const sal_uInt16 sprmCFtc = 93; // word
155 const sal_uInt16 sprmCKul = 94; // byte
156 const sal_uInt16 sprmCSizePos = 95; // 3 bytes
157 const sal_uInt16 sprmCDxaSpace = 96; // word
158 const sal_uInt16 sprmCLid = 97; // word
159 const sal_uInt16 sprmCIco = 98; // byte
160 const sal_uInt16 sprmCHps = 99; // byte
161 const sal_uInt16 sprmCHpsInc = 100; // byte
162 const sal_uInt16 sprmCHpsPos = 101; // byte
163 const sal_uInt16 sprmCHpsPosAdj = 102; // byte
164 const sal_uInt16 sprmCMajority = 103; // variable
165 const sal_uInt16 sprmCIss = 104; // byte
166 const sal_uInt16 sprmCHpsNew50 = 105; // variable
167 const sal_uInt16 sprmCHpsInc1 = 106; // variable
168 const sal_uInt16 sprmCHpsKern = 107; // short
169 const sal_uInt16 sprmCMajority50 = 108; // variable
170 const sal_uInt16 sprmCHpsMul = 109; // short
171 const sal_uInt16 sprmCCondHyhen = 110; // short
172 const sal_uInt16 sprmCFSpec = 117; // bit
173 const sal_uInt16 sprmCFObj = 118; // bit
174 const sal_uInt16 sprmPicBrcl = 119; // byte
175 const sal_uInt16 sprmPicScale = 120; // length
176 const sal_uInt16 sprmPicBrcTop = 121; // word
177 const sal_uInt16 sprmPicBrcLeft = 122; // word
178 const sal_uInt16 sprmPicBrcBottom = 123; // word
179 const sal_uInt16 sprmPicBrcRight = 124; // word
180 const sal_uInt16 sprmSScnsPgn = 131; // byte
181 const sal_uInt16 sprmSiHeadingPgn = 132; // byte
182 const sal_uInt16 sprmSOlstAnm = 133; // variable
183 const sal_uInt16 sprmSDxaColWidth = 136; // 3 bytes
184 const sal_uInt16 sprmSDxaColSpacing = 137; // 3 bytes
185 const sal_uInt16 sprmSFEvenlySpaced = 138; // byte
186 const sal_uInt16 sprmSFProtected = 139; // byte
187 const sal_uInt16 sprmSDmBinFirst = 140; // word
188 const sal_uInt16 sprmSDmBinOther = 141; // word
189 const sal_uInt16 sprmSBkc = 142; // byte
190 const sal_uInt16 sprmSFTitlePage = 143; // byte
191 const sal_uInt16 sprmSCcolumns = 144; // word
192 const sal_uInt16 sprmSDxaColumns = 145; // word
193 const sal_uInt16 sprmSFAutoPgn = 146; // byte
194 const sal_uInt16 sprmSNfcPgn = 147; // byte
195 const sal_uInt16 sprmSDyaPgn = 148; // short
196 const sal_uInt16 sprmSDxaPgn = 149; // short
197 const sal_uInt16 sprmSFPgnRestart = 150; // byte
198 const sal_uInt16 sprmSFEndnote = 151; // byte
199 const sal_uInt16 sprmSLnc = 152; // byte
200 const sal_uInt16 sprmSGprfIhdt = 153; // byte
201 const sal_uInt16 sprmSNLnnMod = 154; // word
202 const sal_uInt16 sprmSDxaLnn = 155; // word
203 const sal_uInt16 sprmSDyaHdrTop = 156; // word
204 const sal_uInt16 sprmSDyaHdrBottom = 157; // word
205 const sal_uInt16 sprmSLBetween = 158; // byte
206 const sal_uInt16 sprmSVjc = 159; // byte
207 const sal_uInt16 sprmSLnnMin = 160; // word
208 const sal_uInt16 sprmSPgnStart = 161; // word
209 const sal_uInt16 sprmSBOrientation = 162; // byte
210 const sal_uInt16 sprmSBCustomize = 163;
211 const sal_uInt16 sprmSXaPage = 164; // word
212 const sal_uInt16 sprmSYaPage = 165; // word
213 const sal_uInt16 sprmSDxaLeft = 166; // word
214 const sal_uInt16 sprmSDxaRight = 167; // word
215 const sal_uInt16 sprmSDyaTop = 168; // word
216 const sal_uInt16 sprmSDyaBottom = 169; // word
217 const sal_uInt16 sprmSDzaGutter = 170; // word
218 const sal_uInt16 sprmSDMPaperReq = 171; // word
219 const sal_uInt16 sprmTJc = 182; // word (low
220 const sal_uInt16 sprmTDxaLeft = 183; // word
221 const sal_uInt16 sprmTDxaGapHalf = 184; // word
222 const sal_uInt16 sprmTFCantSplit = 185; // byte
223 const sal_uInt16 sprmTTableHeader = 186; // byte
224 const sal_uInt16 sprmTTableBorders = 187; // 12 bytes
225 const sal_uInt16 sprmTDefTable10 = 188; // variable
226 const sal_uInt16 sprmTDyaRowHeight = 189; // word
227 const sal_uInt16 sprmTDefTable = 190;
228 const sal_uInt16 sprmTDefTableShd = 191;
229 const sal_uInt16 sprmTTlp = 192; // 4 bytes
230 const sal_uInt16 sprmTSetBrc = 193; // 5 bytes
231 const sal_uInt16 sprmTInsert = 194; // 4 bytes
232 const sal_uInt16 sprmTDelete = 195; // word
233 const sal_uInt16 sprmTDxaCol = 196; // 4 bytes
234 const sal_uInt16 sprmTMerge = 197; // word
235 const sal_uInt16 sprmTSplit = 198; // word
236 const sal_uInt16 sprmTSetBrc10 = 199; // 5 bytes
237 const sal_uInt16 sprmTSetShd = 200; // 4 bytes
238 const sal_uInt16 sprmMax = 208;
239 }
240 
241 // [MS-DOC] - v20170112 Section 2.2.5.1
242 enum class SGC
243 {
244     paragraph = 1,
245     character = 2,
246     picture = 3,
247     section = 4,
248     table = 5
249 };
250 enum class SPRA
251 {
252     operand_toggle_1b_0 = 0,
253     operand_1b_1 = 1,
254     operand_2b_2 = 2,
255     operand_4b_3 = 3,
256     operand_2b_4 = 4,
257     operand_2b_5 = 5,
258     operand_varlen_6 = 6,
259     operand_3b_7 = 7
260 };
261 template <SPRA spra> constexpr int spraLen(); // no definition
spraLen()262 template <> constexpr int spraLen<SPRA::operand_toggle_1b_0>() { return 1; }
spraLen()263 template <> constexpr int spraLen<SPRA::operand_1b_1>() { return 1; }
spraLen()264 template <> constexpr int spraLen<SPRA::operand_2b_2>() { return 2; }
spraLen()265 template <> constexpr int spraLen<SPRA::operand_4b_3>() { return 4; }
spraLen()266 template <> constexpr int spraLen<SPRA::operand_2b_4>() { return 2; }
spraLen()267 template <> constexpr int spraLen<SPRA::operand_2b_5>() { return 2; }
spraLen()268 template <> constexpr int spraLen<SPRA::operand_varlen_6>() { return 0; } // variable
spraLen()269 template <> constexpr int spraLen<SPRA::operand_3b_7>() { return 3; }
270 
271 template <int ispmd, int fSpec, SGC sgc, SPRA spra> struct sprm
272 {
273     static_assert((ispmd & 0x01FF) == ispmd);
274     static_assert((fSpec & 0x0001) == fSpec);
275     static_assert((static_cast<sal_uInt16>(sgc) & 0x0007) == static_cast<sal_uInt16>(sgc));
276     static_assert((static_cast<sal_uInt16>(spra) & 0x0007) == static_cast<sal_uInt16>(spra));
277     static constexpr sal_uInt16 val = ispmd + (fSpec << 9) + (static_cast<sal_uInt16>(sgc) << 10)
278                                       + (static_cast<sal_uInt16>(spra) << 13);
279     static constexpr int len = spraLen<spra>();
280     static constexpr bool varlen = spra == SPRA::operand_varlen_6;
281 };
282 
283 template <int ispmd, int fSpec, SPRA spra> using sprmPar = sprm<ispmd, fSpec, SGC::paragraph, spra>;
284 template <int ispmd, int fSpec, SPRA spra> using sprmChr = sprm<ispmd, fSpec, SGC::character, spra>;
285 template <int ispmd, int fSpec, SPRA spra> using sprmPic = sprm<ispmd, fSpec, SGC::picture, spra>;
286 template <int ispmd, int fSpec, SPRA spra> using sprmSec = sprm<ispmd, fSpec, SGC::section, spra>;
287 template <int ispmd, int fSpec, SPRA spra> using sprmTbl = sprm<ispmd, fSpec, SGC::table, spra>;
288 
289 // Each of the following NS_sprm::Foo corresponds to a sprmFoo in [MS-DOC].
290 // E.g., NS_sprm::CFRMarkDel is for sprmCFRMarkDel.
291 
292 // [MS-DOC] - v20170112 Section 2.6.1
293 using CFRMarkDel = sprmChr<0x00, 0, SPRA::operand_toggle_1b_0>; // 0x0800
294 using CFRMarkIns = sprmChr<0x01, 0, SPRA::operand_toggle_1b_0>; // 0x0801
295 using CFFldVanish = sprmChr<0x02, 0, SPRA::operand_toggle_1b_0>; // 0x0802
296 using CPicLocation = sprmChr<0x03, 1, SPRA::operand_4b_3>; // 0x6A03
297 using CIbstRMark = sprmChr<0x04, 0, SPRA::operand_2b_2>; // 0x4804
298 using CDttmRMark = sprmChr<0x05, 0, SPRA::operand_4b_3>; // 0x6805
299 using CFData = sprmChr<0x06, 0, SPRA::operand_toggle_1b_0>; // 0x0806
300 using CIdslRMark = sprmChr<0x07, 0, SPRA::operand_2b_2>; // 0x4807
301 using CSymbol = sprmChr<0x09, 1, SPRA::operand_4b_3>; // 0x6A09
302 using CFOle2 = sprmChr<0x0A, 0, SPRA::operand_toggle_1b_0>; // 0x080A
303 using CHighlight = sprmChr<0x0C, 1, SPRA::operand_1b_1>; // 0x2A0C
304 using CFWebHidden = sprmChr<0x11, 0, SPRA::operand_toggle_1b_0>; // 0x0811
305 using CRsidProp = sprmChr<0x15, 0, SPRA::operand_4b_3>; // 0x6815
306 using CRsidText = sprmChr<0x16, 0, SPRA::operand_4b_3>; // 0x6816
307 using CRsidRMDel = sprmChr<0x17, 0, SPRA::operand_4b_3>; // 0x6817
308 using CFSpecVanish = sprmChr<0x18, 0, SPRA::operand_toggle_1b_0>; // 0x0818
309 using CFMathPr = sprmChr<0x1A, 0, SPRA::operand_varlen_6>; // 0xC81A
310 using CIstd = sprmChr<0x30, 1, SPRA::operand_2b_2>; // 0x4A30
311 using CIstdPermute = sprmChr<0x31, 1, SPRA::operand_varlen_6>; // 0xCA31
312 using CPlain = sprmChr<0x33, 1, SPRA::operand_1b_1>; // 0x2A33
313 using CKcd = sprmChr<0x34, 1, SPRA::operand_1b_1>; // 0x2A34
314 using CFBold = sprmChr<0x35, 0, SPRA::operand_toggle_1b_0>; // 0x0835
315 using CFItalic = sprmChr<0x36, 0, SPRA::operand_toggle_1b_0>; // 0x0836
316 using CFStrike = sprmChr<0x37, 0, SPRA::operand_toggle_1b_0>; // 0x0837
317 using CFOutline = sprmChr<0x38, 0, SPRA::operand_toggle_1b_0>; // 0x0838
318 using CFShadow = sprmChr<0x39, 0, SPRA::operand_toggle_1b_0>; // 0x0839
319 using CFSmallCaps = sprmChr<0x3A, 0, SPRA::operand_toggle_1b_0>; // 0x083A
320 using CFCaps = sprmChr<0x3B, 0, SPRA::operand_toggle_1b_0>; // 0x083B
321 using CFVanish = sprmChr<0x3C, 0, SPRA::operand_toggle_1b_0>; // 0x083C
322 using CKul = sprmChr<0x3E, 1, SPRA::operand_1b_1>; // 0x2A3E
323 using CDxaSpace = sprmChr<0x40, 0, SPRA::operand_2b_4>; // 0x8840
324 using CIco = sprmChr<0x42, 1, SPRA::operand_1b_1>; // 0x2A42
325 using CHps = sprmChr<0x43, 1, SPRA::operand_2b_2>; // 0x4A43
326 using CHpsPos = sprmChr<0x45, 0, SPRA::operand_2b_2>; // 0x4845
327 using CMajority = sprmChr<0x47, 1, SPRA::operand_varlen_6>; // 0xCA47
328 using CIss = sprmChr<0x48, 1, SPRA::operand_1b_1>; // 0x2A48
329 using CHpsKern = sprmChr<0x4B, 0, SPRA::operand_2b_2>; // 0x484B
330 using CHresi = sprmChr<0x4E, 0, SPRA::operand_2b_2>; // 0x484E
331 using CRgFtc0 = sprmChr<0x4F, 1, SPRA::operand_2b_2>; // 0x4A4F
332 using CRgFtc1 = sprmChr<0x50, 1, SPRA::operand_2b_2>; // 0x4A50
333 using CRgFtc2 = sprmChr<0x51, 1, SPRA::operand_2b_2>; // 0x4A51
334 using CCharScale = sprmChr<0x52, 0, SPRA::operand_2b_2>; // 0x4852
335 using CFDStrike = sprmChr<0x53, 1, SPRA::operand_1b_1>; // 0x2A53
336 using CFImprint = sprmChr<0x54, 0, SPRA::operand_toggle_1b_0>; // 0x0854
337 using CFSpec = sprmChr<0x55, 0, SPRA::operand_toggle_1b_0>; // 0x0855
338 using CFObj = sprmChr<0x56, 0, SPRA::operand_toggle_1b_0>; // 0x0856
339 using CPropRMark90 = sprmChr<0x57, 1, SPRA::operand_varlen_6>; // 0xCA57
340 using CFEmboss = sprmChr<0x58, 0, SPRA::operand_toggle_1b_0>; // 0x0858
341 using CSfxText = sprmChr<0x59, 0, SPRA::operand_1b_1>; // 0x2859
342 using CFBiDi = sprmChr<0x5A, 0, SPRA::operand_toggle_1b_0>; // 0x085A
343 using CFBoldBi = sprmChr<0x5C, 0, SPRA::operand_toggle_1b_0>; // 0x085C
344 using CFItalicBi = sprmChr<0x5D, 0, SPRA::operand_toggle_1b_0>; // 0x085D
345 using CFtcBi = sprmChr<0x5E, 1, SPRA::operand_2b_2>; // 0x4A5E
346 using CLidBi = sprmChr<0x5F, 0, SPRA::operand_2b_2>; // 0x485F
347 using CIcoBi = sprmChr<0x60, 1, SPRA::operand_2b_2>; // 0x4A60
348 using CHpsBi = sprmChr<0x61, 1, SPRA::operand_2b_2>; // 0x4A61
349 using CDispFldRMark = sprmChr<0x62, 1, SPRA::operand_varlen_6>; // 0xCA62
350 using CIbstRMarkDel = sprmChr<0x63, 0, SPRA::operand_2b_2>; // 0x4863
351 using CDttmRMarkDel = sprmChr<0x64, 0, SPRA::operand_4b_3>; // 0x6864
352 using CBrc80 = sprmChr<0x65, 0, SPRA::operand_4b_3>; // 0x6865
353 using CShd80 = sprmChr<0x66, 0, SPRA::operand_2b_2>; // 0x4866
354 using CIdslRMarkDel = sprmChr<0x67, 0, SPRA::operand_2b_2>; // 0x4867
355 using CFUsePgsuSettings = sprmChr<0x68, 0, SPRA::operand_toggle_1b_0>; // 0x0868
356 using CRgLid0_80 = sprmChr<0x6D, 0, SPRA::operand_2b_2>; // 0x486D
357 using CRgLid1_80 = sprmChr<0x6E, 0, SPRA::operand_2b_2>; // 0x486E
358 using CIdctHint = sprmChr<0x6F, 0, SPRA::operand_1b_1>; // 0x286F
359 using CCv = sprmChr<0x70, 0, SPRA::operand_4b_3>; // 0x6870
360 using CShd = sprmChr<0x71, 1, SPRA::operand_varlen_6>; // 0xCA71
361 using CBrc = sprmChr<0x72, 1, SPRA::operand_varlen_6>; // 0xCA72
362 using CRgLid0 = sprmChr<0x73, 0, SPRA::operand_2b_2>; // 0x4873
363 using CRgLid1 = sprmChr<0x74, 0, SPRA::operand_2b_2>; // 0x4874
364 using CFNoProof = sprmChr<0x75, 0, SPRA::operand_toggle_1b_0>; // 0x0875
365 using CFitText = sprmChr<0x76, 1, SPRA::operand_varlen_6>; // 0xCA76
366 using CCvUl = sprmChr<0x77, 0, SPRA::operand_4b_3>; // 0x6877
367 using CFELayout = sprmChr<0x78, 1, SPRA::operand_varlen_6>; // 0xCA78
368 using CLbcCRJ = sprmChr<0x79, 0, SPRA::operand_1b_1>; // 0x2879
369 using CFComplexScripts = sprmChr<0x82, 0, SPRA::operand_toggle_1b_0>; // 0x0882
370 using CWall = sprmChr<0x83, 1, SPRA::operand_1b_1>; // 0x2A83
371 using CCnf = sprmChr<0x85, 1, SPRA::operand_varlen_6>; // 0xCA85
372 using CNeedFontFixup = sprmChr<0x86, 1, SPRA::operand_1b_1>; // 0x2A86
373 using CPbiIBullet = sprmChr<0x87, 0, SPRA::operand_4b_3>; // 0x6887
374 using CPbiGrf = sprmChr<0x88, 0, SPRA::operand_2b_2>; // 0x4888
375 using CPropRMark = sprmChr<0x89, 1, SPRA::operand_varlen_6>; // 0xCA89
376 using CFSdtVanish = sprmChr<0x90, 1, SPRA::operand_1b_1>; // 0x2A90
377 
378 // [MS-DOC] - v20170112 Section 2.6.2
379 using PIstd = sprmPar<0x00, 1, SPRA::operand_2b_2>; // 0x4600
380 using PIstdPermute = sprmPar<0x01, 1, SPRA::operand_varlen_6>; // 0xC601
381 using PIncLvl = sprmPar<0x02, 1, SPRA::operand_1b_1>; // 0x2602
382 using PJc80 = sprmPar<0x03, 0, SPRA::operand_1b_1>; // 0x2403
383 using PFKeep = sprmPar<0x05, 0, SPRA::operand_1b_1>; // 0x2405
384 using PFKeepFollow = sprmPar<0x06, 0, SPRA::operand_1b_1>; // 0x2406
385 using PFPageBreakBefore = sprmPar<0x07, 0, SPRA::operand_1b_1>; // 0x2407
386 using PIlvl = sprmPar<0x0A, 1, SPRA::operand_1b_1>; // 0x260A
387 using PIlfo = sprmPar<0x0B, 1, SPRA::operand_2b_2>; // 0x460B
388 using PFNoLineNumb = sprmPar<0x0C, 0, SPRA::operand_1b_1>; // 0x240C
389 using PChgTabsPapx = sprmPar<0x0D, 1, SPRA::operand_varlen_6>; // 0xC60D
390 using PDxaRight80 = sprmPar<0x0E, 0, SPRA::operand_2b_4>; // 0x840E
391 using PDxaLeft80 = sprmPar<0x0F, 0, SPRA::operand_2b_4>; // 0x840F
392 using PNest80 = sprmPar<0x10, 1, SPRA::operand_2b_2>; // 0x4610
393 using PDxaLeft180 = sprmPar<0x11, 0, SPRA::operand_2b_4>; // 0x8411
394 using PDyaLine = sprmPar<0x12, 0, SPRA::operand_4b_3>; // 0x6412
395 using PDyaBefore = sprmPar<0x13, 0, SPRA::operand_2b_5>; // 0xA413
396 using PDyaAfter = sprmPar<0x14, 0, SPRA::operand_2b_5>; // 0xA414
397 using PChgTabs = sprmPar<0x15, 1, SPRA::operand_varlen_6>; // 0xC615
398 using PFInTable = sprmPar<0x16, 0, SPRA::operand_1b_1>; // 0x2416
399 using PFTtp = sprmPar<0x17, 0, SPRA::operand_1b_1>; // 0x2417
400 using PDxaAbs = sprmPar<0x18, 0, SPRA::operand_2b_4>; // 0x8418
401 using PDyaAbs = sprmPar<0x19, 0, SPRA::operand_2b_4>; // 0x8419
402 using PDxaWidth = sprmPar<0x1A, 0, SPRA::operand_2b_4>; // 0x841A
403 using PPc = sprmPar<0x1B, 1, SPRA::operand_1b_1>; // 0x261B
404 using PWr = sprmPar<0x23, 0, SPRA::operand_1b_1>; // 0x2423
405 using PBrcTop80 = sprmPar<0x24, 0, SPRA::operand_4b_3>; // 0x6424
406 using PBrcLeft80 = sprmPar<0x25, 0, SPRA::operand_4b_3>; // 0x6425
407 using PBrcBottom80 = sprmPar<0x26, 0, SPRA::operand_4b_3>; // 0x6426
408 using PBrcRight80 = sprmPar<0x27, 0, SPRA::operand_4b_3>; // 0x6427
409 using PBrcBetween80 = sprmPar<0x28, 0, SPRA::operand_4b_3>; // 0x6428
410 using PBrcBar80 = sprmPar<0x29, 1, SPRA::operand_4b_3>; // 0x6629
411 using PFNoAutoHyph = sprmPar<0x2A, 0, SPRA::operand_1b_1>; // 0x242A
412 using PWHeightAbs = sprmPar<0x2B, 0, SPRA::operand_2b_2>; // 0x442B
413 using PDcs = sprmPar<0x2C, 0, SPRA::operand_2b_2>; // 0x442C
414 using PShd80 = sprmPar<0x2D, 0, SPRA::operand_2b_2>; // 0x442D
415 using PDyaFromText = sprmPar<0x2E, 0, SPRA::operand_2b_4>; // 0x842E
416 using PDxaFromText = sprmPar<0x2F, 0, SPRA::operand_2b_4>; // 0x842F
417 using PFLocked = sprmPar<0x30, 0, SPRA::operand_1b_1>; // 0x2430
418 using PFWidowControl = sprmPar<0x31, 0, SPRA::operand_1b_1>; // 0x2431
419 using PFKinsoku = sprmPar<0x33, 0, SPRA::operand_1b_1>; // 0x2433
420 using PFWordWrap = sprmPar<0x34, 0, SPRA::operand_1b_1>; // 0x2434
421 using PFOverflowPunct = sprmPar<0x35, 0, SPRA::operand_1b_1>; // 0x2435
422 using PFTopLinePunct = sprmPar<0x36, 0, SPRA::operand_1b_1>; // 0x2436
423 using PFAutoSpaceDE = sprmPar<0x37, 0, SPRA::operand_1b_1>; // 0x2437
424 using PFAutoSpaceDN = sprmPar<0x38, 0, SPRA::operand_1b_1>; // 0x2438
425 using PWAlignFont = sprmPar<0x39, 0, SPRA::operand_2b_2>; // 0x4439
426 using PFrameTextFlow = sprmPar<0x3A, 0, SPRA::operand_2b_2>; // 0x443A
427 using POutLvl = sprmPar<0x40, 1, SPRA::operand_1b_1>; // 0x2640
428 using PFBiDi = sprmPar<0x41, 0, SPRA::operand_1b_1>; // 0x2441
429 using PFNumRMIns = sprmPar<0x43, 0, SPRA::operand_1b_1>; // 0x2443
430 using PNumRM = sprmPar<0x45, 1, SPRA::operand_varlen_6>; // 0xC645
431 using PHugePapx = sprmPar<0x46, 1, SPRA::operand_4b_3>; // 0x6646
432 using PFUsePgsuSettings = sprmPar<0x47, 0, SPRA::operand_1b_1>; // 0x2447
433 using PFAdjustRight = sprmPar<0x48, 0, SPRA::operand_1b_1>; // 0x2448
434 using PItap = sprmPar<0x49, 1, SPRA::operand_4b_3>; // 0x6649
435 using PDtap = sprmPar<0x4A, 1, SPRA::operand_4b_3>; // 0x664A
436 using PFInnerTableCell = sprmPar<0x4B, 0, SPRA::operand_1b_1>; // 0x244B
437 using PFInnerTtp = sprmPar<0x4C, 0, SPRA::operand_1b_1>; // 0x244C
438 using PShd = sprmPar<0x4D, 1, SPRA::operand_varlen_6>; // 0xC64D
439 using PBrcTop = sprmPar<0x4E, 1, SPRA::operand_varlen_6>; // 0xC64E
440 using PBrcLeft = sprmPar<0x4F, 1, SPRA::operand_varlen_6>; // 0xC64F
441 using PBrcBottom = sprmPar<0x50, 1, SPRA::operand_varlen_6>; // 0xC650
442 using PBrcRight = sprmPar<0x51, 1, SPRA::operand_varlen_6>; // 0xC651
443 using PBrcBetween = sprmPar<0x52, 1, SPRA::operand_varlen_6>; // 0xC652
444 using PBrcBar = sprmPar<0x53, 1, SPRA::operand_varlen_6>; // 0xC653
445 using PDxcRight = sprmPar<0x55, 0, SPRA::operand_2b_2>; // 0x4455
446 using PDxcLeft = sprmPar<0x56, 0, SPRA::operand_2b_2>; // 0x4456
447 using PDxcLeft1 = sprmPar<0x57, 0, SPRA::operand_2b_2>; // 0x4457
448 using PDylBefore = sprmPar<0x58, 0, SPRA::operand_2b_2>; // 0x4458
449 using PDylAfter = sprmPar<0x59, 0, SPRA::operand_2b_2>; // 0x4459
450 using PFOpenTch = sprmPar<0x5A, 0, SPRA::operand_1b_1>; // 0x245A
451 using PFDyaBeforeAuto = sprmPar<0x5B, 0, SPRA::operand_1b_1>; // 0x245B
452 using PFDyaAfterAuto = sprmPar<0x5C, 0, SPRA::operand_1b_1>; // 0x245C
453 using PDxaRight = sprmPar<0x5D, 0, SPRA::operand_2b_4>; // 0x845D
454 using PDxaLeft = sprmPar<0x5E, 0, SPRA::operand_2b_4>; // 0x845E
455 using PNest = sprmPar<0x5F, 1, SPRA::operand_2b_2>; // 0x465F
456 using PDxaLeft1 = sprmPar<0x60, 0, SPRA::operand_2b_4>; // 0x8460
457 using PJc = sprmPar<0x61, 0, SPRA::operand_1b_1>; // 0x2461
458 using PFNoAllowOverlap = sprmPar<0x62, 0, SPRA::operand_1b_1>; // 0x2462
459 using PWall = sprmPar<0x64, 1, SPRA::operand_1b_1>; // 0x2664
460 using PIpgp = sprmPar<0x65, 0, SPRA::operand_4b_3>; // 0x6465
461 using PCnf = sprmPar<0x66, 1, SPRA::operand_varlen_6>; // 0xC666
462 using PRsid = sprmPar<0x67, 0, SPRA::operand_4b_3>; // 0x6467
463 using PIstdListPermute = sprmPar<0x69, 1, SPRA::operand_varlen_6>; // 0xC669
464 using PTableProps = sprmPar<0x6B, 0, SPRA::operand_4b_3>; // 0x646B
465 using PTIstdInfo = sprmPar<0x6C, 1, SPRA::operand_varlen_6>; // 0xC66C
466 using PFContextualSpacing = sprmPar<0x6D, 0, SPRA::operand_1b_1>; // 0x246D
467 using PPropRMark = sprmPar<0x6F, 1, SPRA::operand_varlen_6>; // 0xC66F
468 using PFMirrorIndents = sprmPar<0x70, 0, SPRA::operand_1b_1>; // 0x2470
469 using PTtwo = sprmPar<0x71, 0, SPRA::operand_1b_1>; // 0x2471
470 
471 // [MS-DOC] - v20170112 Section 2.6.3
472 using TJc90 = sprmTbl<0x00, 0, SPRA::operand_2b_2>; // 0x5400
473 using TDxaLeft = sprmTbl<0x01, 1, SPRA::operand_2b_4>; // 0x9601
474 using TDxaGapHalf = sprmTbl<0x02, 1, SPRA::operand_2b_4>; // 0x9602
475 using TFCantSplit90 = sprmTbl<0x03, 0, SPRA::operand_1b_1>; // 0x3403
476 using TTableHeader = sprmTbl<0x04, 0, SPRA::operand_1b_1>; // 0x3404
477 using TTableBorders80 = sprmTbl<0x05, 1, SPRA::operand_varlen_6>; // 0xD605
478 using TDyaRowHeight = sprmTbl<0x07, 0, SPRA::operand_2b_4>; // 0x9407
479 using TDefTable = sprmTbl<0x08, 1, SPRA::operand_varlen_6>; // 0xD608
480 using TDefTableShd80 = sprmTbl<0x09, 1, SPRA::operand_varlen_6>; // 0xD609
481 using TTlp = sprmTbl<0x0A, 0, SPRA::operand_4b_3>; // 0x740A
482 using TFBiDi = sprmTbl<0x0B, 1, SPRA::operand_2b_2>; // 0x560B
483 using TDefTableShd3rd = sprmTbl<0x0C, 1, SPRA::operand_varlen_6>; // 0xD60C
484 using TPc = sprmTbl<0x0D, 1, SPRA::operand_1b_1>; // 0x360D
485 using TDxaAbs = sprmTbl<0x0E, 0, SPRA::operand_2b_4>; // 0x940E
486 using TDyaAbs = sprmTbl<0x0F, 0, SPRA::operand_2b_4>; // 0x940F
487 using TDxaFromText = sprmTbl<0x10, 0, SPRA::operand_2b_4>; // 0x9410
488 using TDyaFromText = sprmTbl<0x11, 0, SPRA::operand_2b_4>; // 0x9411
489 using TDefTableShd = sprmTbl<0x12, 1, SPRA::operand_varlen_6>; // 0xD612
490 using TTableBorders = sprmTbl<0x13, 1, SPRA::operand_varlen_6>; // 0xD613
491 using TTableWidth = sprmTbl<0x14, 1, SPRA::operand_3b_7>; // 0xF614
492 using TFAutofit = sprmTbl<0x15, 1, SPRA::operand_1b_1>; // 0x3615
493 using TDefTableShd2nd = sprmTbl<0x16, 1, SPRA::operand_varlen_6>; // 0xD616
494 using TWidthBefore = sprmTbl<0x17, 1, SPRA::operand_3b_7>; // 0xF617
495 using TWidthAfter = sprmTbl<0x18, 1, SPRA::operand_3b_7>; // 0xF618
496 using TFKeepFollow = sprmTbl<0x19, 1, SPRA::operand_1b_1>; // 0x3619
497 using TBrcTopCv = sprmTbl<0x1A, 1, SPRA::operand_varlen_6>; // 0xD61A
498 using TBrcLeftCv = sprmTbl<0x1B, 1, SPRA::operand_varlen_6>; // 0xD61B
499 using TBrcBottomCv = sprmTbl<0x1C, 1, SPRA::operand_varlen_6>; // 0xD61C
500 using TBrcRightCv = sprmTbl<0x1D, 1, SPRA::operand_varlen_6>; // 0xD61D
501 using TDxaFromTextRight = sprmTbl<0x1E, 0, SPRA::operand_2b_4>; // 0x941E
502 using TDyaFromTextBottom = sprmTbl<0x1F, 0, SPRA::operand_2b_4>; // 0x941F
503 using TSetBrc80 = sprmTbl<0x20, 1, SPRA::operand_varlen_6>; // 0xD620
504 using TInsert = sprmTbl<0x21, 1, SPRA::operand_4b_3>; // 0x7621
505 using TDelete = sprmTbl<0x22, 1, SPRA::operand_2b_2>; // 0x5622
506 using TDxaCol = sprmTbl<0x23, 1, SPRA::operand_4b_3>; // 0x7623
507 using TMerge = sprmTbl<0x24, 1, SPRA::operand_2b_2>; // 0x5624
508 using TSplit = sprmTbl<0x25, 1, SPRA::operand_2b_2>; // 0x5625
509 using TTextFlow = sprmTbl<0x29, 1, SPRA::operand_4b_3>; // 0x7629
510 using TVertMerge = sprmTbl<0x2B, 1, SPRA::operand_varlen_6>; // 0xD62B
511 using TVertAlign = sprmTbl<0x2C, 1, SPRA::operand_varlen_6>; // 0xD62C
512 using TSetShd = sprmTbl<0x2D, 1, SPRA::operand_varlen_6>; // 0xD62D
513 using TSetShdOdd = sprmTbl<0x2E, 1, SPRA::operand_varlen_6>; // 0xD62E
514 using TSetBrc = sprmTbl<0x2F, 1, SPRA::operand_varlen_6>; // 0xD62F
515 using TCellPadding = sprmTbl<0x32, 1, SPRA::operand_varlen_6>; // 0xD632
516 using TCellSpacingDefault = sprmTbl<0x33, 1, SPRA::operand_varlen_6>; // 0xD633
517 using TCellPaddingDefault = sprmTbl<0x34, 1, SPRA::operand_varlen_6>; // 0xD634
518 using TCellWidth = sprmTbl<0x35, 1, SPRA::operand_varlen_6>; // 0xD635
519 using TFitText = sprmTbl<0x36, 1, SPRA::operand_3b_7>; // 0xF636
520 using TFCellNoWrap = sprmTbl<0x39, 1, SPRA::operand_varlen_6>; // 0xD639
521 using TIstd = sprmTbl<0x3A, 1, SPRA::operand_2b_2>; // 0x563A
522 using TCellPaddingStyle = sprmTbl<0x3E, 1, SPRA::operand_varlen_6>; // 0xD63E
523 using TCellFHideMark = sprmTbl<0x42, 1, SPRA::operand_varlen_6>; // 0xD642
524 using TSetShdTable = sprmTbl<0x60, 1, SPRA::operand_varlen_6>; // 0xD660
525 using TWidthIndent = sprmTbl<0x61, 1, SPRA::operand_3b_7>; // 0xF661
526 using TCellBrcType = sprmTbl<0x62, 1, SPRA::operand_varlen_6>; // 0xD662
527 using TFBiDi90 = sprmTbl<0x64, 1, SPRA::operand_2b_2>; // 0x5664
528 using TFNoAllowOverlap = sprmTbl<0x65, 0, SPRA::operand_1b_1>; // 0x3465
529 using TFCantSplit = sprmTbl<0x66, 0, SPRA::operand_1b_1>; // 0x3466
530 using TPropRMark = sprmTbl<0x67, 1, SPRA::operand_varlen_6>; // 0xD667
531 using TWall = sprmTbl<0x68, 1, SPRA::operand_1b_1>; // 0x3668
532 using TIpgp = sprmTbl<0x69, 0, SPRA::operand_4b_3>; // 0x7469
533 using TCnf = sprmTbl<0x6A, 1, SPRA::operand_varlen_6>; // 0xD66A
534 using TDefTableShdRaw = sprmTbl<0x70, 1, SPRA::operand_varlen_6>; // 0xD670
535 using TDefTableShdRaw2nd = sprmTbl<0x71, 1, SPRA::operand_varlen_6>; // 0xD671
536 using TDefTableShdRaw3rd = sprmTbl<0x72, 1, SPRA::operand_varlen_6>; // 0xD672
537 using TRsid = sprmTbl<0x79, 0, SPRA::operand_4b_3>; // 0x7479
538 using TCellVertAlignStyle = sprmTbl<0x7C, 0, SPRA::operand_1b_1>; // 0x347C
539 using TCellNoWrapStyle = sprmTbl<0x7D, 0, SPRA::operand_1b_1>; // 0x347D
540 using TCellBrcTopStyle = sprmTbl<0x7F, 0, SPRA::operand_varlen_6>; // 0xD47F
541 using TCellBrcBottomStyle = sprmTbl<0x80, 1, SPRA::operand_varlen_6>; // 0xD680
542 using TCellBrcLeftStyle = sprmTbl<0x81, 1, SPRA::operand_varlen_6>; // 0xD681
543 using TCellBrcRightStyle = sprmTbl<0x82, 1, SPRA::operand_varlen_6>; // 0xD682
544 using TCellBrcInsideHStyle = sprmTbl<0x83, 1, SPRA::operand_varlen_6>; // 0xD683
545 using TCellBrcInsideVStyle = sprmTbl<0x84, 1, SPRA::operand_varlen_6>; // 0xD684
546 using TCellBrcTL2BRStyle = sprmTbl<0x85, 1, SPRA::operand_varlen_6>; // 0xD685
547 using TCellBrcTR2BLStyle = sprmTbl<0x86, 1, SPRA::operand_varlen_6>; // 0xD686
548 using TCellShdStyle = sprmTbl<0x87, 1, SPRA::operand_varlen_6>; // 0xD687
549 using TCHorzBands = sprmTbl<0x88, 0, SPRA::operand_1b_1>; // 0x3488
550 using TCVertBands = sprmTbl<0x89, 0, SPRA::operand_1b_1>; // 0x3489
551 using TJc = sprmTbl<0x8A, 0, SPRA::operand_2b_2>; // 0x548A
552 
553 // [MS-DOC] - v20170112 Section 2.6.4
554 using ScnsPgn = sprmSec<0x00, 0, SPRA::operand_1b_1>; // 0x3000
555 using SiHeadingPgn = sprmSec<0x01, 0, SPRA::operand_1b_1>; // 0x3001
556 using SDxaColWidth = sprmSec<0x03, 1, SPRA::operand_3b_7>; // 0xF203
557 using SDxaColSpacing = sprmSec<0x04, 1, SPRA::operand_3b_7>; // 0xF204
558 using SFEvenlySpaced = sprmSec<0x05, 0, SPRA::operand_1b_1>; // 0x3005
559 using SFProtected = sprmSec<0x06, 0, SPRA::operand_1b_1>; // 0x3006
560 using SDmBinFirst = sprmSec<0x07, 0, SPRA::operand_2b_2>; // 0x5007
561 using SDmBinOther = sprmSec<0x08, 0, SPRA::operand_2b_2>; // 0x5008
562 using SBkc = sprmSec<0x09, 0, SPRA::operand_1b_1>; // 0x3009
563 using SFTitlePage = sprmSec<0x0A, 0, SPRA::operand_1b_1>; // 0x300A
564 using SCcolumns = sprmSec<0x0B, 0, SPRA::operand_2b_2>; // 0x500B
565 using SDxaColumns = sprmSec<0x0C, 0, SPRA::operand_2b_4>; // 0x900C
566 using SNfcPgn = sprmSec<0x0E, 0, SPRA::operand_1b_1>; // 0x300E
567 using SFPgnRestart = sprmSec<0x11, 0, SPRA::operand_1b_1>; // 0x3011
568 using SFEndnote = sprmSec<0x12, 0, SPRA::operand_1b_1>; // 0x3012
569 using SLnc = sprmSec<0x13, 0, SPRA::operand_1b_1>; // 0x3013
570 using SNLnnMod = sprmSec<0x15, 0, SPRA::operand_2b_2>; // 0x5015
571 using SDxaLnn = sprmSec<0x16, 0, SPRA::operand_2b_4>; // 0x9016
572 using SDyaHdrTop = sprmSec<0x17, 0, SPRA::operand_2b_5>; // 0xB017
573 using SDyaHdrBottom = sprmSec<0x18, 0, SPRA::operand_2b_5>; // 0xB018
574 using SLBetween = sprmSec<0x19, 0, SPRA::operand_1b_1>; // 0x3019
575 using SVjc = sprmSec<0x1A, 0, SPRA::operand_1b_1>; // 0x301A
576 using SLnnMin = sprmSec<0x1B, 0, SPRA::operand_2b_2>; // 0x501B
577 using SPgnStart97 = sprmSec<0x1C, 0, SPRA::operand_2b_2>; // 0x501C
578 using SBOrientation = sprmSec<0x1D, 0, SPRA::operand_1b_1>; // 0x301D
579 using SXaPage = sprmSec<0x1F, 0, SPRA::operand_2b_5>; // 0xB01F
580 using SYaPage = sprmSec<0x20, 0, SPRA::operand_2b_5>; // 0xB020
581 using SDxaLeft = sprmSec<0x21, 0, SPRA::operand_2b_5>; // 0xB021
582 using SDxaRight = sprmSec<0x22, 0, SPRA::operand_2b_5>; // 0xB022
583 using SDyaTop = sprmSec<0x23, 0, SPRA::operand_2b_4>; // 0x9023
584 using SDyaBottom = sprmSec<0x24, 0, SPRA::operand_2b_4>; // 0x9024
585 using SDzaGutter = sprmSec<0x25, 0, SPRA::operand_2b_5>; // 0xB025
586 using SDmPaperReq = sprmSec<0x26, 0, SPRA::operand_2b_2>; // 0x5026
587 using SFBiDi = sprmSec<0x28, 1, SPRA::operand_1b_1>; // 0x3228
588 using SFRTLGutter = sprmSec<0x2A, 1, SPRA::operand_1b_1>; // 0x322A
589 using SBrcTop80 = sprmSec<0x2B, 0, SPRA::operand_4b_3>; // 0x702B
590 using SBrcLeft80 = sprmSec<0x2C, 0, SPRA::operand_4b_3>; // 0x702C
591 using SBrcBottom80 = sprmSec<0x2D, 0, SPRA::operand_4b_3>; // 0x702D
592 using SBrcRight80 = sprmSec<0x2E, 0, SPRA::operand_4b_3>; // 0x702E
593 using SPgbProp = sprmSec<0x2F, 1, SPRA::operand_2b_2>; // 0x522F
594 using SDxtCharSpace = sprmSec<0x30, 0, SPRA::operand_4b_3>; // 0x7030
595 using SDyaLinePitch = sprmSec<0x31, 0, SPRA::operand_2b_4>; // 0x9031
596 using SClm = sprmSec<0x32, 0, SPRA::operand_2b_2>; // 0x5032
597 using STextFlow = sprmSec<0x33, 0, SPRA::operand_2b_2>; // 0x5033
598 using SBrcTop = sprmSec<0x34, 1, SPRA::operand_varlen_6>; // 0xD234
599 using SBrcLeft = sprmSec<0x35, 1, SPRA::operand_varlen_6>; // 0xD235
600 using SBrcBottom = sprmSec<0x36, 1, SPRA::operand_varlen_6>; // 0xD236
601 using SBrcRight = sprmSec<0x37, 1, SPRA::operand_varlen_6>; // 0xD237
602 using SWall = sprmSec<0x39, 1, SPRA::operand_1b_1>; // 0x3239
603 using SRsid = sprmSec<0x3A, 0, SPRA::operand_4b_3>; // 0x703A
604 using SFpc = sprmSec<0x3B, 0, SPRA::operand_1b_1>; // 0x303B
605 using SRncFtn = sprmSec<0x3C, 0, SPRA::operand_1b_1>; // 0x303C
606 using SRncEdn = sprmSec<0x3E, 0, SPRA::operand_1b_1>; // 0x303E
607 using SNFtn = sprmSec<0x3F, 0, SPRA::operand_2b_2>; // 0x503F
608 using SNfcFtnRef = sprmSec<0x40, 0, SPRA::operand_2b_2>; // 0x5040
609 using SNEdn = sprmSec<0x41, 0, SPRA::operand_2b_2>; // 0x5041
610 using SNfcEdnRef = sprmSec<0x42, 0, SPRA::operand_2b_2>; // 0x5042
611 using SPropRMark = sprmSec<0x43, 1, SPRA::operand_varlen_6>; // 0xD243
612 using SPgnStart = sprmSec<0x44, 0, SPRA::operand_4b_3>; // 0x7044
613 
614 // [MS-DOC] - v20170112 Section 2.6.5
615 using PicBrcTop80 = sprmPic<0x02, 0, SPRA::operand_4b_3>; // 0x6C02
616 using PicBrcLeft80 = sprmPic<0x03, 0, SPRA::operand_4b_3>; // 0x6C03
617 using PicBrcBottom80 = sprmPic<0x04, 0, SPRA::operand_4b_3>; // 0x6C04
618 using PicBrcRight80 = sprmPic<0x05, 0, SPRA::operand_4b_3>; // 0x6C05
619 using PicBrcTop = sprmPic<0x08, 1, SPRA::operand_varlen_6>; // 0xCE08
620 using PicBrcLeft = sprmPic<0x09, 1, SPRA::operand_varlen_6>; // 0xCE09
621 using PicBrcBottom = sprmPic<0x0A, 1, SPRA::operand_varlen_6>; // 0xCE0A
622 using PicBrcRight = sprmPic<0x0B, 1, SPRA::operand_varlen_6>; // 0xCE0B
623 }
624 
625 #endif // INCLUDED_SW_SOURCE_FILTER_WW8_SPRMIDS_HXX
626 
627 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
628