<?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="BKF" package="org.apache.poi.hwpf.model.types">
    <suffix>AbstractType</suffix>
    <extends>HDFType</extends>
    <description>BooKmark First descriptor (BKF). &lt;p&gt;Class and fields descriptions are
        quoted
        from Microsoft Office Word 97-2007 Binary File Format (.doc) Specification
    </description>
    <author>Sergey Vladimirov; according to Microsoft Office Word 97-2007 Binary File Format (.doc)
        Specification
    </author>
    <fields>
        <field type="short" size="2" name="ibkl"
            description="Index to BKL entry in plcfbkl that describes the ending position of this bookmark in the CP stream"/>
        <field type="short" size="2" name="bkf_flags">
            <bit number="0" mask="0x007F" name="itcFirst"
                description="When bkf.fCol==1, this is the index to the first column of a table column bookmark"/>
            <bit number="1" mask="0x0080" name="fPub"
                description="When 1, this indicates that this bookmark is marking the range of a Macintosh Publisher section"/>
            <bit number="2" mask="0x7F00" name="itcLim"
                description="When bkf.fCol==1, this is the index to limit column of a table column bookmark"/>
            <bit number="3" mask="0x8000" name="fCol"
                description="When 1, this bookmark marks a range of columns in a table specified by (bkf.itcFirst, bkf.itcLim)"/>
        </field>
    </fields>
</record>
