The Free and Open Productivity Suite
Released: Apache OpenOffice 4.1.15

Application Framework Project

Project Owner: Carsten Driesner

This project contains modules, that define the general behaviour of the OpenOffice application components ( Writer, Calc etc. ). This covers common operations, common objects or functionality on one hand and a module for the integration of the components into the external environment on the other hand. While the latter one is done by the framework module, the first is done by the sfx2 module.

The application framework project has a wiki page. We want to move to the wiki in the near future!

The sfx2 module offers a complete set of features for an application component, the most important are:

      • document persistance; loading and saving through UCB access
      • compound document support, inplace editing
      • multiple and different views for a document
      • context sensitive user interface
      • command dispatching infrastructure
      • template handling
      • docking windows

Modules in Application Framework Project




The SFX is the core of the framework.


Contains typical resource files such as bitmaps, icons, and cursor files.


IDL compiler for the SFX framework. It generates definition (header) files used in the components code.


Integrates the application components in different environments like a desktop or a browser plugin etc. The framework module is also responsible for the content detection and content activation.


The code for the office executable.


Makes properties of the documents available through OpenOffice API.


Scripting Framework which allows to be scripted in multiple languages. You can find the module home page here.


Contains base classes, like string, date, time, streams, and so on. These classes do not need a UI system, so you can also use them in an character based user interface.


Tools layered on top of VCL.


Contains the STLport 3.5.1-a derivative from the SGI/STL.


Contains basic UNO I/O services for streaming (Pipe, DataStreams, MarkableStreams) and interprocess connections (sockets and pipes).


Component-based event handling.


The freeware infozip compression library.


Helper classes that provide UNO-based APIs.


Independent UNO Components for various purposes like OLE, PGP and Speech.


Contains stubs or makefiles for external components.


Registry client containing UNO Components for Configuration access.


Contains the configuration schemas for applications and components.


Microsoft Office compatible storage implementation.


Stub for testing framework for automated testing.

A more comprehensive description of the application framework modules can be found here.


There are several documents available which describe features,  provide valuable information about the framework internals. We also offer some example add-ons which show interesting features of the framework UNO API. Most documents/add-ons are available via download as documents. There is a second section which presents online documents.

To Do List

You can find a list of tasks that we would like to implement but until now didn't find the time to do so. These tasks can be implemented by experienced C++ developers that want to help us. You would definitely get support or help of the regular framework developers. If you are interested to work on one of these tasks please contact us on our "dev" mailing list or via e-mail to the framework project lead.


We had several valuable contribution from the community. Here is a list of contributors with some information on what they have done and who they are. Credit where credit is due as they say.


We have a list of proposal documents which describe how we can solve various problems, create a better user interface and other framework related tasks.

Apache Software Foundation

Copyright & License | Privacy | Contact Us | Donate | Thanks

Apache, OpenOffice, and the seagull logo are registered trademarks of The Apache Software Foundation. The Apache feather logo is a trademark of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.