unsigned int DocFloatImageReader::readFBSE(BlipStoreEntry &fbse, shared_ptr<OleStream> stream) {
	//OfficeArtFBSE structure is described at p.68 [MS-ODRAW]
	stream->seek(2, false); //skipping btWin32 and btMacOS
	stream->seek(16, false); //skipping rgbUid
	stream->seek(2, false); //skipping tag
	fbse.size = read4Bytes(stream);
	fbse.referenceCount = read4Bytes(stream);
	fbse.offsetInDelay = read4Bytes(stream);
	stream->seek(1, false); //skipping unused value
	unsigned int lengthName = read1Byte(stream); //if it should be multiplied on 2?
	stream->seek(2, false); // skipping unused values
	if (lengthName > 0) {
		stream->seek(lengthName, false); //skipping nameData
	}
	return 36 + lengthName;
}
unsigned int DocFloatImageReader::readFOPTE(FOPTE &fopte, shared_ptr<OleStream> stream) {
	//OfficeArtFOPTE structure is described at p.32 [MS-ODRAW]
	unsigned int dtemp;
	dtemp = read2Bytes(stream);
	fopte.pId = (dtemp & 0x3fff);
	fopte.isBlipId = ((dtemp & 0x4000) >> 14) == 0x1;
	fopte.isComplex = ((dtemp & 0x8000) >> 15) == 0x1;
	fopte.value = read4Bytes(stream);
	return 6;
}
unsigned int DocFloatImageReader::readFSP(FSP &fsp, shared_ptr<OleStream> stream) {
	//OfficeArtFSP structure is described at p.76 [MS-ODRAW]
	fsp.shapeId = read4Bytes(stream);
	stream->seek(4, false);
	return 8;
}
void GAFFile::_readHeaderBegin(GAFHeader& out)
{
    readBytes(&out.compression, 4);
    out.version = read2Bytes();
    out.fileLenght = read4Bytes();
}