LibreOffice Module filter (master)
1
filter
source
msfilter
dffrecordheader.cxx
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
#include <
filter/msfilter/dffrecordheader.hxx
>
21
22
bool
ReadDffRecordHeader
(
SvStream
& rIn,
DffRecordHeader
& rRec)
23
{
24
rRec.
nFilePos
= rIn.
Tell
();
25
sal_uInt16 nTmp(0);
26
rIn.
ReadUInt16
(nTmp);
27
rRec.
nImpVerInst
= nTmp;
28
rRec.
nRecVer
= sal::static_int_cast<sal_uInt8>(nTmp & 0x000F);
29
rRec.
nRecInstance
= nTmp >> 4;
30
rRec.
nRecType
= 0;
31
rIn.
ReadUInt16
(rRec.
nRecType
);
32
rRec.
nRecLen
= 0;
33
rIn.
ReadUInt32
(rRec.
nRecLen
);
34
35
// preserving overflow, optimally we would check
36
// the record size against the parent header
37
if
(rRec.
nRecLen
> (
SAL_MAX_UINT32
- rRec.
nFilePos
))
38
rIn.
SetError
(
SVSTREAM_FILEFORMAT_ERROR
);
39
40
return
rIn.
good
();
41
}
42
43
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
DffRecordHeader
Definition:
dffrecordheader.hxx:30
DffRecordHeader::nFilePos
sal_uLong nFilePos
Definition:
dffrecordheader.hxx:37
DffRecordHeader::nRecVer
sal_uInt8 nRecVer
Definition:
dffrecordheader.hxx:32
DffRecordHeader::nRecInstance
sal_uInt16 nRecInstance
Definition:
dffrecordheader.hxx:33
DffRecordHeader::nRecLen
sal_uInt32 nRecLen
Definition:
dffrecordheader.hxx:36
DffRecordHeader::nRecType
sal_uInt16 nRecType
Definition:
dffrecordheader.hxx:35
DffRecordHeader::nImpVerInst
sal_uInt16 nImpVerInst
Definition:
dffrecordheader.hxx:34
SvStream
SvStream::Tell
sal_uInt64 Tell() const
SvStream::good
bool good() const
SvStream::ReadUInt32
SvStream & ReadUInt32(sal_uInt32 &rUInt32)
SvStream::SetError
void SetError(ErrCode nErrorCode)
SvStream::ReadUInt16
SvStream & ReadUInt16(sal_uInt16 &rUInt16)
ReadDffRecordHeader
bool ReadDffRecordHeader(SvStream &rIn, DffRecordHeader &rRec)
Definition:
dffrecordheader.cxx:22
dffrecordheader.hxx
SVSTREAM_FILEFORMAT_ERROR
#define SVSTREAM_FILEFORMAT_ERROR
SAL_MAX_UINT32
#define SAL_MAX_UINT32
Generated on Sun Jul 30 2023 04:26:36 for LibreOffice Module filter (master) by
1.9.3