Skip to content

A simple header file to read Microsoft compound file with minimal efforts.

License

Notifications You must be signed in to change notification settings

liweimax/compoundfilereader

 
 

Repository files navigation

compoundfilereader

simple standalone c++ header file to read compound file (Structured Storage File) content.

Source code structure

  • src/include/compoundfilereader.h The only header file needed for parsing compound file.
  • src/include/utf.h The helper header file used for converting between utf16, utf8, and unicode. It's used by samples.
  • test/data Real world compound files for tests.
  • samples/cfb command line tool to list and dump compound files.
  • samples/IEOpenedTabParser command line tool to show IE opened tab information.
  • vsproject project and solution files for Microsoft Visual Studio.

Usage

  • copy compoundfilereader.h to your source tree or: install "compoundfilereader" by git sub-module
  • #include <compoundfilereader.h> in your source code
  • construct a CompoundFileReader object by giving the buffer (see compoundfilereader.h for details)

Build the samples

Linux

run `make' (requires gcc and g++)

Windows

option1: double click 'vsproject\cfbreader\cfbreader.sln' then build in Visual Studio option2: run 'build.bat' in Visual Studio Command Prompt (requires visual studio)

Run the samples

try the following:

out/ieot "test/data/{BC59C035-E8AC-11E4-825B-10604B7CB9F0}.dat"
out/cfb list "test/data/a test email message.msg"
out/cfb dump "test/data/a test email message.msg" __properties_version1.0

TODO

  • unit tests
  • make the reader able to connect to abstract interfaces such as istream

#Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

About

A simple header file to read Microsoft compound file with minimal efforts.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 97.0%
  • Makefile 2.0%
  • Batchfile 1.0%