![](https://seccdn.libravatar.org/avatar/7209f7f566ee6578d3da67204605364d.jpg?s=120&d=mm&r=g)
Ken Irving wrote in
MS Word uses an undocumented (by design) pseudo filesystem data structure which seems to change frequently. I would be surprised if anything other than MS Word itself (and only the same version) could display a Word .doc file _perfectly_.
Ken, would you be surprized if I told you that the developers of M$ Word don't even know the file format? My last job was one of doing maintance on a program that had to read in word processor documents, M$ Word included. We had documentation on M$ Word 6.0/7.0 (same format) and on 8.0. But the funny thing is that the documentation even states that it is not 100% and the best way to access a M$ Word document is via OLE2. (For those of you that don't know what OLE2 is, OLE is the earlier version of COM. COM stands for Common Object Model. The M$'s COM/OLE/ActiveX technology allows a programmer to use another companies binary code from any language that can communicate via COM/OLE/ActiveX. What does it REALLY mean with M$ says you should use OLE to access a M$ Word document? It means that you have to HAVE M$ Word on your box so that the program that wants to read the M$ Word document can use M$ Word via OLE!!!!!! Button line is that to read a M$ Word file 100% correctly you either have to spend a huge amount of time figuring out what M$ doesn't even understand themself, or you have to use M$ Word, it's self, and your customers have to own M$ Word, too! On the other hand, Corel does a WONDERFUL job documenting the file format for Word Perfect 6 through 8, and I am sure that WP 2000 is no different.) Now, you might be wondering why nobody in M$ understands the M$ Word format, or Excel, or any of the other office product's formats. The reasoning is simply. Most MS Windows C++ Developers, self included, use Microsoft Foundation Classes (MFC) to speed up development. One feature of MFC is the ability to store the data within a C++ object with minimal work on the developers part. Let me say that again, MFC has the ability to store the applications developers data inside of his/her C++ objects for him/her. When MFC saves the C++ object's data to file it basically puts an envelope around each object. The envelope tells the MFC code which object the data belongs to once the data is read back in from the file. The result is that the developer of the application, nor the MFC developer as M$ fully understand the binary format of file! Assuming the program that wrote the file is the one that is going to read the file, this approach is wonderful. Being a MS Windows C++ Developer, I have used this feature before. It does speed things up a GREAT deal. The end result of this is another good argument for OSS (Open Source Software). If I write a program that uses this feature of a framework like MFC and both the framework and my code is OSS, then anyone can simply use the the C++ object I created to read in the data into their programs and do with it as they like. But the key is that you need to have the source code!!!!! OSS is the way of the future. For those of you that don't know about OSS, please take the time to read what www.opensource.org has to say on their web site. They also have what is called the Halloween document, it is long, but VERY worth reading!!!!! P.S. I am a MS Windows programmer because I like to eat:) I am working on ways to get away from the darkside!!!!! -- Sam Carleton ------------ http://www.bigfoot.com/~scarleton (Homepage) http://www.uptimes.net/hostinfo.html?hid=1218 (Linux Box) -- To unsubscribe send e-mail to suse-linux-e-unsubscribe@suse.com For additional commands send e-mail to suse-linux-e-help@suse.com Also check the FAQ at http://www.suse.com/Support/Doku/FAQ/