UNO (Universal Network Objects) is the interface based component model of OpenOffice.org. UNO offers interoperability between different programming languages, different objects models, different machine architectures and different processes either in LAN or via the internet. UNO components can be implemented in and accessed from any supported programming language.
Currently exist bindings for Java, C, C++ (compiler dependent, please see http://porting.openoffice.org for a list of supported platforms), OLE Automation and Python(in a alpha state).
Office development kit package
All tools, libaries and jar-files forming the UNO core plus all IDL interfaces used in the office are available for a seperate download. You can use the development kit to extent OpenOffice by additional components or to to script OpenOffice using the interprocess bridge.You can also use the ODK as the framework for new platform independent applications (independent of OpenOffice.org).
Documentation
UNO | The base concepts of Universal Network Objects |
Guide to UNO | A complete introduction to the language independent part of UNO. |
UNO Language Binding | A summary of definitions what functionality a language binding provides. |
Bridge | How to translate the calls from one language into another one. |
UNO-CORBA Bridge | Concepts for the UNO-CORBA bridge (not yet implemented). |
updated and revised UNO Contexts | UNO Component and Current Context |
updated and revised UNO Security | UNO Security Model |
Streaming services | Introduction into the UNO streaming concepts |
Scripting Framework | Proposals for a Language Independent Scripting Framework |
XML Description | Creating a XML module deployment description. |
Remote Bridge | How to use interprocess bridges. |
Connection Services | Additional information about the com.sun.star.io.Acceptor and com.sun.star.io.Conector services. |
UNO-Url | Specifies semantics and syntax of the UNO-Url. |
C++ bridges | This document is written for developers implementing a bridge from C++ to binary UNO. The last paragraph covers the Microsoft Visual C++ - UNO bridge in detail. |
OLE Automation Bridge | Using UNO services in a COM environment and vice versa. |
Binary TypeLibrary | Binary specification of the UNO typelibrary. |
UNO IDL specifaction | Description of UNO IDL (keywords,syntax) |
Binary UNO specifaction | Specification of binary (C-)UNO types. This is the platform-dependent intermediate (bridging) format. |
C++ UNO specification | Specification of C++ UNO types. This is what the cppumaker tool generates for you. |
C UNO specification | Specification of C UNO types. This is what the cunomaker tool generates for you. |
Uno RemoteProtocol | Binary specification of the UNO interprocess protocol. |
Java in UNO and OpenOffice | Fundamental informations for the Java developer, who wants to write components for UNO or OpenOffice |
Library Unloading | API that offers a way to unload all unused libraries at once |
Default Bootstrapping | Specification for Bootstrap Arguments and UNO Default Bootstrapping |
Micro Deployment | Specification for Bootstrap Arguments and Micro Deployment |
Text Conversions | Specification of the text conversion functions in SAL |
COM | COM - UNO language specification |
UNO and SOAP | Considerations |
UNO Synchronization and Multi Threading | Reflect the current state of handling multi threading and synchronization in UNO. |
Remote Visualization and Oneways | Example of non transparent remote visualization |
Logging | Concepts and specification of a Logging API/framework. |
Component in Java | Writing a simple UNO component in Java (Inspector/CalcAddins). |
Component in C++ | Writing a simple UNO component in C++. |
Guide to C++ UNO | This document gives an introduction to the C++ mapping of UNO. |
Remote Demo | Demo that accesses OpenOffice via an interprocess bridge. |
UNO Components | Developing components with UNO (examples in Java and C++) |
OLE Automation | Controlling OO through Automation |
API examples | Contains example usages of the
the API which are ready-to-compile. These examples are written in different programming languages. |
new Registries in UNO | Explains the UNO registry handling
and how components can be added to OpenOffice. |
IDL Reference | The generated documentation of all IDL files. |
C++ Reference | The generated documentation of all C and C++ APIs in the UDK and SAL. |
Java Reference | The generated documentation of the Java UNO API. |
Tools | Description of all command line tools |
FAQ | Frequently asked questions about UNO |
new PyUNO | Python-UNO bridge, maintained by Ralph Thomas |
Open tasks | Gives some ideas of how YOU can contribute to the udk-project |
API tests | Help implement API tests for the udk-project |
Modules in UNO Development Kit Project | |
Module | Function |
---|---|
cppu |
The UNO runtime library which is used by all language bindings except Java. |
idlc |
The IDL compiler. |
cppuhelper |
C++ UNO implementation helpers. |
javaunohelper |
Java UNO Helper implementations. |
jurt |
Java UNO runtime. Contains runtime of the Java language binding for UNO. |
bridges |
The bridges to different languages like C++ (M$ Visual C++, SUNWspro5 SPARC, egcs 2.9.?), Java and remote. |
remotebridges |
Contains UNO services to build interprocess
UNO bridges, such as iiop-bridge . |
stoc |
One components - basic UNO services. |
cpputools |
Collection of UNO utility and runtime programs. |
registry |
The implementation of the registry. |
codemaker |
Contains the programs to generate c++ header files, Java files and CORBA IDL files. The programs work on a binary type repository which is generated by the unoidl compiler. |
rdbmaker |
Generate binary type repository subset
from the binary type repository or with the service com.sun.star.reflect.TypeDescriptionManager .
|
sandbox |
A Java security manager based on Java 1.1. |
jut |
"Java UNO Tools" - a collection of Java utilities, the Java parallel to the cpputools project. |
product |
Contains makefiles to build a UDK zip file, which contains all core libraries of the UNO component model. Additionally this module contains some UNO samples. |
Interesting modules outside the UNO Development Kit Project | |
Module | Function |
---|---|
sal |
The System abstraction layer implements a basic abstraction of the underlying system. For your components to be system independent you should use SAL. SAL includes abstractions for thread creation and synchronization. Mechanisms for process communication and file system access are also part of this library. Management of libraries and profiles is also included. Functions for creating and manipulating strings and wide strings belong to SAL. The functionality of SAL is splitted in two namespaces osl (system functions) and rtl (strings and memory management) SAL only exports functions conforming to the c calling convention. So, it should be suitable to be a system abstraction for any language. |
store |
This project provides the hierarchical storages for the component registry. |