private function _readBSE()
	{
		// offset: 0; size: 2; recVer and recInstance

		// bit: 4-15; mask: 0xFFF0; recInstance
		$recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4;

		$length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4);
		$recordData = substr($this->_data, $this->_pos + 8, $length);

		// move stream pointer to next record
		$this->_pos += 8 + $length;

		// add BSE to BstoreContainer
		$BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE();
		$this->_object->addBSE($BSE);

		$BSE->setBLIPType($recInstance);

		// offset: 0; size: 1; btWin32 (MSOBLIPTYPE)
		$btWin32 = ord($recordData[0]);

		// offset: 1; size: 1; btWin32 (MSOBLIPTYPE)
		$btMacOS = ord($recordData[1]);

		// offset: 2; size: 16; MD4 digest
		$rgbUid = substr($recordData, 2, 16);

		// offset: 18; size: 2; tag
		$tag = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 18);

		// offset: 20; size: 4; size of BLIP in bytes
		$size = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 20);

		// offset: 24; size: 4; number of references to this BLIP
		$cRef = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 24);

		// offset: 28; size: 4; MSOFO file offset
		$foDelay = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 28);

		// offset: 32; size: 1; unused1
		$unused1 = ord($recordData{32});

		// offset: 33; size: 1; size of nameData in bytes (including null terminator)
		$cbName = ord($recordData{33});

		// offset: 34; size: 1; unused2
		$unused2 = ord($recordData{34});

		// offset: 35; size: 1; unused3
		$unused3 = ord($recordData{35});

		// offset: 36; size: $cbName; nameData
		$nameData = substr($recordData, 36, $cbName);

		// offset: 36 + $cbName, size: var; the BLIP data
		$blipData = substr($recordData, 36 + $cbName);

		// record is a container, read contents
		$reader = new PHPExcel_Reader_Excel5_Escher($BSE);
		$reader->load($blipData);
	}
private function _readBSE()
	{
		// offset: 0; size: 2; recVer and recInstance

		// bit: 4-15; mask: 0xFFF0; recInstance
		$recInstance = (0xFFF0 & PHPExcel_Reader_Excel5::_GetInt2d($this->_data, $this->_pos)) >> 4;

		$length = PHPExcel_Reader_Excel5::_GetInt4d($this->_data, $this->_pos + 4);
		$recordData = substr($this->_data, $this->_pos + 8, $length);

		// move stream pointer to next record
		$this->_pos += 8 + $length;

		// add BSE to BstoreContainer
		$BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE();
		$this->_object->addBSE($BSE);

		$BSE->setBLIPType($recInstance);

		// offset: 0; size: 1; btWin32 (MSOBLIPTYPE)
		$btWin32 = ord($recordData[0]);

		// offset: 1; size: 1; btWin32 (MSOBLIPTYPE)
		$btMacOS = ord($recordData[1]);

		// offset: 2; size: 16; MD4 digest
		$rgbUid = substr($recordData, 2, 16);

		// offset: 18; size: 2; tag
		$tag = PHPExcel_Reader_Excel5::_GetInt2d($recordData, 18);

		// offset: 20; size: 4; size of BLIP in bytes
		$size = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 20);

		// offset: 24; size: 4; number of references to this BLIP
		$cRef = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 24);

		// offset: 28; size: 4; MSOFO file offset
		$foDelay = PHPExcel_Reader_Excel5::_GetInt4d($recordData, 28);

		// offset: 32; size: 1; unused1
		$unused1 = ord($recordData{32});

		// offset: 33; size: 1; size of nameData in bytes (including null terminator)
		$cbName = ord($recordData{33});

		// offset: 34; size: 1; unused2
		$unused2 = ord($recordData{34});

		// offset: 35; size: 1; unused3
		$unused3 = ord($recordData{35});

		// offset: 36; size: $cbName; nameData
		$nameData = substr($recordData, 36, $cbName);

		// offset: 36 + $cbName, size: var; the BLIP data
		$blipData = substr($recordData, 36 + $cbName);

		// record is a container, read contents
		$reader = new PHPExcel_Reader_Excel5_Escher($BSE);
		$reader->load($blipData);
	}
private function _readBSE ( ) { // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance $ recInstance = ( 0xFFF0 & PHPExcel_Reader_Excel5 :: _GetInt2d ( $ this -> _data , $ this -> _pos ) ) >> 4 ; $ length = PHPExcel_Reader_Excel5 :: _GetInt4d ( $ this -> _data , $ this -> _pos + 4 ) ; $ recordData = substr ( $ this -> _data , $ this -> _pos + 8 , $ length ) ; // move stream pointer to next record $ this -> _pos += 8 + $ length ; // add BSE to BstoreContainer $ BSE = new PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE ( ) ; $ this -> _object -> addBSE ( $ BSE ) ; $ BSE -> setBLIPType ( $ recInstance ) ; // offset: 0; size: 1; btWin32 (MSOBLIPTYPE) $ btWin32 = ord ( $ recordData [ 0 ] ) ; // offset: 1; size: 1; btWin32 (MSOBLIPTYPE) $ btMacOS = ord ( $ recordData [ 1 ] ) ; // offset: 2; size: 16; MD4 digest $ rgbUid = substr ( $ recordData , 2 , 16 ) ; // offset: 18; size: 2; tag $ tag = PHPExcel_Reader_Excel5 :: _GetInt2d ( $ recordData , 18 ) ; // offset: 20; size: 4; size of BLIP in bytes $ size = PHPExcel_Reader_Excel5 :: _GetInt4d ( $ recordData , 20 ) ; // offset: 24; size: 4; number of references to this BLIP $ cRef = PHPExcel_Reader_Excel5 :: _GetInt4d ( $ recordData , 24 ) ; // offset: 28; size: 4; MSOFO file offset $ foDelay = PHPExcel_Reader_Excel5 :: _GetInt4d ( $ recordData , 28 ) ; // offset: 32; size: 1; unused1 $ unused1 = ord ( $ recordData { 32 } ) ; // offset: 33; size: 1; size of nameData in bytes (including null terminator) $ cbName = ord ( $ recordData { 33 } ) ; // offset: 34; size: 1; unused2 $ unused2 = ord ( $ recordData { 34 } ) ; // offset: 35; size: 1; unused3 $ unused3 = ord ( $ recordData { 35 } ) ; // offset: 36; size: $cbName; nameData $ nameData = substr ( $ recordData , 36 , $ cbName ) ; // offset: 36 + $cbName, size: var; the BLIP data $ blipData = substr ( $ recordData , 36 + $ cbName ) ; // record is a container, read contents $ reader = new PHPExcel_Reader_Excel5_Escher ( $ BSE ) ; $ reader -> load ( $ blipData ) ; }
Read BSE record
Read BSE record