<?xml version="1.0"?>
<!--
    ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License. You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ====================================================================
-->
<record fromfile="true" name="StdfBase" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <description>The StdfBase structure specifies general information about a style. &lt;p&gt;Class
        and fields descriptions are quoted from Microsoft Office Word 97-2007 Binary File Format and
        [MS-DOC] - v20110608 Word (.doc) Binary File Format
    </description>
    <author>Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary File Format
        Specification [*.doc] and [MS-DOC] - v20110608 Word (.doc) Binary File Format
    </author>
    <fields>
        <field type="short" size="2" name="info1">
            <bit number="1" mask="0x0FFF" name="sti"
                description="An unsigned integer that specifies the invariant style identifier for application-defined styles, or 0x0FFE for user-defined styles"/>
            <bit number="2" mask="0x1000" name="fScratch"
                description="spare field for any temporary use, always reset back to zero!"/>
            <bit number="3" mask="0x2000" name="fInvalHeight"
                description="Specifies whether the paragraph height information in the fcPlcfPhe field of FibRgFcLcb97, for any paragraphs having this paragraph style, MUST be ignored. SHOULD be 0"/>
            <bit number="4" mask="0x4000" name="fHasUpe" description="This bit is undefined and MUST be ignored"/>
            <bit number="5" mask="0x8000" name="fMassCopy" description="This bit is undefined and MUST be ignored"/>
        </field>
        <field type="short" size="2" name="info2">
            <bit number="1" mask="0x000F" name="stk" description="style kind"/>
            <bit number="2" mask="0xFFF0" name="istdBase" description="base style"/>
        </field>
        <field type="short" size="2" name="info3">
            <bit number="1" mask="0x000F" name="cupx" description="number of UPXs (and UPEs)"/>
            <bit number="2" mask="0xFFF0" name="istdNext" description="next style"/>
        </field>
        <field type="int" size="2" name="bchUpe"
            description="An unsigned integer that specifies the size, in bytes, of std in LPStd. This value MUST be equal to cbStd in LPStd"/>
        <field type="short" size="2" name="grfstd"
            description="A GRFSTD that specifies miscellaneous style properties">
            <bit number="1" mask="0x0001" name="fAutoRedef" description="number of UPXs (and UPEs)"/>
            <bit number="2" mask="0x0002" name="fHidden"
                description="Specifies whether this style is not shown in the application UI"/>
            <bit number="3" mask="0x0004" name="f97LidsSet"
                description="Specifies whether sprmCRgLid0_80 and sprmCRgLid1_80 were applied, as appropriate, to this paragraph or character style for compatibility with applications that do not support sprmCRgLid0, sprmCRgLid1, and sprmCFNoProof"/>
            <bit number="4" mask="0x0008" name="fCopyLang"
                description="If f97LidsSet is 1, this value specifies whether the applied compatibility sprmCRgLid0_80 or sprmCRgLid1_80 specified an actual language or a special LID value (0x0400) signifying that no proofing is needed for the text. This MUST be ignored if f97LidsSet is 0"/>
            <bit number="5" mask="0x0010" name="fPersonalCompose"
                description="Specifies whether this character style can be used to automatically format the new message text in a new e-mail"/>
            <bit number="6" mask="0x0020" name="fPersonalReply"
                description="Specifies whether this character style can be used to automatically format the new message text when replying to an e-mail"/>
            <bit number="7" mask="0x0040" name="fPersonal"
                description="Specifies whether this character style was applied to format all message text from one or more users in an e-mail"/>
            <bit number="8" mask="0x0080" name="fNoHtmlExport" description="This value MUST be 0 and MUST be ignored"/>
            <bit number="9" mask="0x0100" name="fSemiHidden"
                description="Specifies whether this style is not shown in the simplified main styles UI of the application"/>
            <bit number="10" mask="0x0200" name="fLocked"
                description="Specifies whether this style is prevented from being applied by using the application UI"/>
            <bit number="11" mask="0x0400" name="fInternalUse" description="This bit is undefined and MUST be ignored"/>
            <bit number="12" mask="0x0800" name="fUnhideWhenUsed"
                description="Specifies whether the fSemiHidden property is to be set to 0 when this style is used"/>
            <bit number="13" mask="0x1000" name="fQFormat"
                description="Specifies whether this style is shown in the Ribbon Style gallery"/>
            <bit number="14" mask="0xE000" name="fReserved" description="This value MUST be 0 and MUST be ignored"/>
        </field>
    </fields>
</record>
