Hi,<br><br>Just an update on where I am. So far I&#39;ve been working on the basics of extracting the data from the .vsd file.<br>To read Visio files, the steps are roughly:<br>1. Get the interesting part (&quot;VisioDocument&quot;) from the OLE container.<br>
2. Parse the header to get a pointer to the trailer stream (as well as version, length of file, etc.)<br>3. Inflate compressed trailer.<br>4. Parse out pointers in trailer to the various - potentially compressed - streams that hold the actual Visio document content.<br>
<br>I&#39;ve done 1 - 3. I&#39;m using the WPXStream and its implementation from libwpd (<a href="http://libwpd.git.sourceforge.net/git/gitweb.cgi?p=libwpd/libwpd;a=blob;f=src/lib/WPXStreamImplementation.h;h=804453d910f537ffcf985a74ef34d6f25329d213;hb=HEAD">WPXStreamImplementation.h here</a>) to read/extract OLE streams.  The implementation of  LZW-esque decompression of the trailer is translated from Python to C++ (i.e. shamelessly ripped off) from oletoy (thanks frob). <br>
I suspect most of what I&#39;ll be doing will be stand-alone for now - developing and debugging will be too slow if LO integration is included at this early stage. Once I&#39;ve got a very basic parser, the callback interface discussed in my proposal will be implemented and integration with LO should in theory be relatively easy.<br>
<br>Note to my mentor -- I&#39;ve got a paper due for next Saturday so my main focus will be on that. I will, however, be spending some time on the next stage.<br><br>Eilidh<br>