Contents

 1 Reader's Guide
1.1 What This Manual Covers
1.2 How This Book is Organized
1.3 OpenOffice.org Version History
1.4 Related documentation
1.5 Conventions
1.6 Acknowledgments
 2 First Steps
2.1 Programming with UNO
2.2 Fields of Application for UNO
2.3 Getting Started
2.3.1 Required Files
2.3.2 Installation Sets
2.3.3 Configuration
Enable Java in OpenOffice.org
Use Java UNO class files
Make the office listen
Add the API Reference to your IDE
2.3.4 First Connection
Getting Connected
Service Managers
Failed Connections
2.4 How to get Objects in OpenOffice.org
2.5 Working with Objects
2.5.1 Services
Using Interfaces
Using Properties
2.5.2 Example: Working with a Spreadsheet Document
2.5.3 Common Types
Simple Types
Strings
Enum Types and Groups of Constants
2.5.4 Struct
2.5.5 Any
2.5.6 Sequence
2.5.7 Element Access
Name Access
Index Access
Enumeration Access
2.6 How do I know Which Type I Have?
2.7 Example: Hello Text, Hello Table, Hello Shape
2.7.1 Common Mechanisms for Text, Tables and Drawings
2.7.2 Creating Text, Tables and Drawing Shapes
Text, Tables and Drawings in Writer
Text, Tables and Drawings in Calc
Drawings and Text in Draw
 3 Professional UNO
3.1 Introduction
3.2 API Concepts
3.2.1 Data Types
Simple Types
The Any Type
Interfaces
Services
Structs
Predefined Values
Sequences
Modules
Exceptions
Singletons
3.2.2 Understanding the API Reference
Specification, Implementation and Instances
Object Composition
3.3 UNO Concepts
3.3.1 UNO Interprocess Connections
Starting OpenOffice.org in Listening Mode
Importing a UNO Object
Characteristics of the Interprocess Bridge
Opening a Connection
Creating the Bridge
Closing a Connection
Example: A Connection Aware Client
3.3.2 Service Manager and Component Context
Service Manager
Component Context
3.3.3 Using UNO Interfaces
3.3.4 Properties
3.3.5 Collections and Containers
3.3.6 Event Model
3.3.7 Exception Handling
User-Defined Exceptions
Runtime Exceptions
Good Exception Handling  
3.3.8 Lifetime of UNO Objects
acquire() and release()
The XComponent Interface
Children of the XEventListener Interface
Weak Objects and References
Differences Between the Lifetime of C++ and Java Objects
3.3.9 Object Identity
3.4 UNO Language Bindings
3.4.1 Java Language Binding
Getting a Service Manager
Handling Interfaces
Type Mappings
3.4.2 UNO C++ Binding
Library Overview
System Abstraction Layer
File Access
Threadsafe Reference Counting
Threads and Thread Synchronization
Establishing Interprocess Connections
Type Mappings
Using Weak References
Exception Handling in C++
3.4.3 OpenOffice.org Basic
Handling UNO Objects
Mapping of UNO and Basic Types
Case Sensitivity
Exception Handling
Listeners
3.4.4 Automation Bridge
Introduction
Requirements
A Quick Tour
The Service Manager Component
Using UNO from Automation
Type Mappings
Automation Objects with UNO Interfaces
DCOM
The Bridge Services
Unsupported COM Features
 4 Writing UNO Components
4.1 Required Files
4.2 Using UNOIDL to Specify New Components
4.2.1 Writing the Specification
Preprocessing
Grouping Definitions in Modules
Fundamental Types
Defining an Interface
Defining a Service
Defining a Sequence
Defining a Struct
Defining an Exception
Predefining Values
Using Comments
Singleton
Reserved Types
4.2.2 Generating Source Code from UNOIDL Definitions
4.3 Component Architecture
4.4 Core Interfaces to Implement
4.4.1 XInterface
Requirements for queryInterface()
Reference Counting
4.4.2 XTypeProvider
Provided Types
ImplementationID
4.4.3 XServiceInfo
Implementation Name
Supported Service Names
4.4.4 XWeak
4.4.5 XComponent
Disposing of an XComponent
4.4.6 XInitialization
4.4.7 XMain
4.4.8 XAggregation
4.4.9 XUnoTunnel
4.5 Simple Component in Java
4.5.1 Class Definition with Helper Classes
XInterface, XTypeProvider and XWeak
XServiceInfo
4.5.2 Implementing your own Interfaces
4.5.3 Providing a Single Factory Using Helper Method
4.5.4 Write Registration Info Using Helper Method
4.5.5 Implementing without Helpers
XInterface
XTypeProvider
XComponent
4.5.6 Storing the Service Manager for Further Use
4.5.7 Create Instance with Arguments
4.5.8 Possible Structures for Java Components
One Implementation per Component File
Multiple Implementations per Component File
4.5.9 Running and Debugging Java Components
Registration
Debugging
The Java Environment in OpenOffice.org
Troubleshooting
4.6 C++ Component
4.6.1 Class Definition with Helper Template Classes
XInterface, XTypeProvider and XWeak
XServiceInfo
4.6.2 Implementing your own Interfaces
4.6.3 Providing a Single Factory Using a Helper Method
4.6.4 Write Registration Info Using Helper Method
4.6.5 Provide Implementation Environment
4.6.6 Implementing without Helpers
XInterface Implementation
XTypeProvider Implementation
Providing a Single Factory
Write Registration Info
4.6.7 Storing the Service Manager for Further Use
4.6.8 Create Instance with Arguments
4.6.9 Multiple Components in One Dynamic Link Library
4.6.10 Building and Testing C++ Components
Build Process
Test Registration and Use
4.7 Integrating Components into OpenOffice.org
4.7.1 Protocol Handler
Overview
Implementation
Configuration
Installation
4.7.2 Jobs
Overview
Execution Environment
Implementation
Initialization
Returning Results
Configuration
Installation
Using the vnd.sun.star.jobs: URL Schema  
List of supported Events
4.7.3 Add-Ons
Overview
Guidelines
Configuration
Installation
4.7.4 Disable Commands
Configuration
Disabling Commands at Runtime
4.7.5 Intercepting Context Menus
Register and Remove an Interceptor
Writing an Interceptor
4.8 File Naming Conventions
4.9 Deployment Options for Components
4.9.1 UNO Package Installation
Package Structure
Path Settings
Additional Options
4.9.2 Background: UNO Registries
UNO Type Library
Component Registration
4.9.3 Command Line Registry Tools
Component Registration Tool
UNO Type Library Tools
4.9.4 Manual Component Installation
Manually Merging a Registry and Adding it to uno.ini or soffice.ini
Alternatives
4.9.5 Bootstrapping a Service Manager
4.9.6 Special Service Manager Configurations
Dynamically Modifying the Service Manager
Creating a ServiceManager from a Given Registry File
4.10 The UNO Executable
Standalone Use Case
Server Use Case
Using the uno Executable
 5 Advanced UNO
5.1 Choosing an Implementation Language
5.1.1 Supported Programming Environments
Java
C++
OpenOffice.org Basic
OLE Automation Bridge
Python
5.1.2 Use Cases
Java
C++
OpenOffice.org Basic
OLE Automation
Python
5.1.3 Recommendation
5.2 Language Bindings
5.2.1 Implementing UNO Language Bindings
Overview of Language Bindings and Bridges
Implementation Options
5.2.2 UNO C++ bridges
Binary UNO Interfaces
C++ Proxy
Binary UNO Proxy
Additional Hints
5.2.3 UNO Reflection API
XTypeProvider Interface
Converter Service
CoreReflection Service
5.2.4 XInvocation Bridge
Scripting Existing UNO Objects
Implementing UNO objects
Example: Python Bridge PyUNO
5.2.5 Implementation Loader
Shared Library Loader
Bridges
5.2.6 Help with New Language Bindings
5.3 Differences Between UNO and Corba
5.4 UNO Design Patterns and Coding Styles
5.4.1 Double-Checked Locking
 6 Office Development
6.1 OpenOffice.org Application Environment
6.1.1 Overview
Desktop Environment
Framework API
6.1.2 Using the Desktop
6.1.3 Using the Component Framework
Getting Frames, Controllers and Models from Each Other
Frames
Controllers
Models
Window Interfaces
6.1.4 Creating Frames Manually
6.1.5 Handling Documents
Loading Documents
Closing Documents
Storing Documents
Printing Documents
6.1.6 Using the Dispatch Framework
Command URL
Processing Chain
Dispatch Process
Dispatch Results
Dispatch Interception
6.1.7 Java Window Integration
The Window Handle
Using the Window Handle
More Remote Problems
6.2 Common Application Features
6.2.1 Clipboard
Using the Clipboard
OpenOffice.org Clipboard Data Formats
6.2.2 Internationalization
Introduction
Overview and Using the API
Implementing a New Locale
6.2.3 Linguistics
Services Overview
Using Spellchecker
Using Hyphenator
Using Thesaurus
Events
Implementing a Spell Checker
Implementing a Hyphenator
Implementing a Thesaurus
6.2.4 Integrating Import and Export Filters
Approaches
Document API Filter Development
XML Based Filter Development
6.2.5 Number Formats
Managing Number Formats
Applying Number Formats
6.2.6 Document Events
6.2.7 Path Organization
Path Settings
Path Variables
6.2.8 OpenOffice.org  Single Sign-On API
Overview
Implementing the OpenOffice.org SSO API
 7 Text Documents
7.1 Overview
7.1.1 Example: Fields in a Template
7.1.2 Example: Visible Cursor Position
7.2 Handling Text Document Files
7.2.1 Creating and Loading Text Documents
7.2.2 Saving Text Documents
Storing
Exporting
7.2.3 Printing Text Documents
Printer and Print Job Settings
Printing Multiple Pages on one Page
7.3 Working with Text Documents
7.3.1 Word Processing
Editing Text
Iterating over Text
Inserting a Paragraph where no Cursor can go
Sorting Text
Inserting Text Files
Auto Text
7.3.2 Formatting
7.3.3 Navigating
Cursors
Locating Text Contents
Search and Replace
7.3.4 Tables
Table Architecture
Named Table Cells in Rows, Columns and the Table Cursor
Indexed Cells and Cell Ranges
Table Naming, Sorting, Charting and Autoformatting
Text Table Properties
Inserting Tables
Accessing Existing Tables
7.3.5 Text Fields
7.3.6 Bookmarks
7.3.7 Indexes and Index Marks
Indexes
Index marks
7.3.8 Reference Marks
7.3.9 Footnotes and Endnotes
7.3.10 Shape Objects in Text
Base Frames vs. Drawing Shapes
Text Frames
Embedded Objects
Graphic Objects
Drawing Shapes
7.3.11 Redline
7.3.12 Ruby
7.4 Overall Document Features
7.4.1 Styles
Character Styles
Paragraph Styles
Frame Styles
Page Styles
Numbering Styles
7.4.2 Settings
General Document Information
Document Properties
Creating Default Settings
Creating Document Settings
7.4.3 Line Numbering and Outline Numbering
Paragraph and Outline Numbering
Line Numbering
Number Formats
7.4.4 Text Sections
7.4.5 Page Layout
7.4.6 Columns
7.4.7 Link targets
7.5 Text Document Controller
7.5.1 TextView
7.5.2 TextViewCursor
 8 Spreadsheet Documents
8.1 Overview
8.1.1 Example: Adding a New Spreadsheet
8.1.2 Example: Editing Spreadsheet Cells
8.2 Handling Spreadsheet Document Files
8.2.1 Creating and Loading Spreadsheet Documents
8.2.2 Saving Spreadsheet Documents
Storing
Exporting
Filter Options
8.2.3 Printing Spreadsheet Documents
Printer and Print Job Settings
Page Breaks and Scaling for Printout
Print Areas
8.3 Working with Spreadsheet Documents
8.3.1 Document Structure
Spreadsheet Document
Spreadsheet Services - Overview
Spreadsheet
Cell Ranges
Cells
Cell Ranges and Cells Container
Columns and Rows
8.3.2 Formatting
Cell Formatting
Character and Paragraph Format
Indentation
Equally Formatted Cell Ranges
Table Auto Formats
Conditional Formats
8.3.3 Navigating
Cell Cursor
Referencing Ranges by Name
Named Ranges
Label Ranges
Querying for Cells with Specific Properties
Search and Replace
8.3.4 Sorting
Table Sort Descriptor
8.3.5 Database Operations
Filtering
Subtotals
Database Import
Database Ranges
8.3.6 Linking External Data
Sheet Links
Cell Area Links
DDE Links
8.3.7 DataPilot
DataPilot Tables
DataPilot Sources
8.3.8 Protecting Spreadsheets
8.3.9 Sheet Outline
8.3.10 Detective
8.3.11 Other Table Operations
Data Validation
Data Consolidation
Charts
Scenarios
8.4 Overall Document Features
8.4.1 Styles
Cell Styles
Page Styles
8.4.2 Function Handling
Calculating Function Results
Information about Functions
Recently Used Functions
8.4.3 Settings
8.5 Spreadsheet Document Controller
8.5.1 Spreadsheet View
8.5.2 View Panes
8.5.3 View Settings
8.5.4 Range Selection
8.6 Spreadsheet Add-Ins
8.6.1 Function Descriptions
8.6.2 Service Names
8.6.3 Compatibility Names
8.6.4 Custom Functions
8.6.5 Variable Results
 9 Drawing Documents and Presentation Documents
9.1 Overview
9.1.1 Example: Creating a Simple Organizational Chart
9.2 Handling Drawing Document Files
9.2.1 Creating and Loading Drawing Documents
9.2.2 Saving Drawing Documents
Storing
Exporting
Filter Options
9.2.3 Printing Drawing Documents
Printer and Print Job Settings
Special Print Settings
9.3 Working with Drawing Documents
9.3.1 Drawing Document
Document Structure
Page Handling
Page Partitioning
9.3.2 Shapes
Bezier Shapes
Shape Operations
9.3.3 Inserting Files
9.3.4 Navigating
9.4 Handling Presentation Document Files
9.4.1 Creating and Loading Presentation Documents
9.4.2 Printing Presentation Documents
9.5 Working with Presentation Documents
9.5.1 Presentation Document
9.5.2 Presentation Settings
Custom Slide Show
Presentation Effects
Slide Transition
Animations and Interactions
9.6 Overall Document Features
9.6.1 Styles
Graphics Styles
Presentation Styles
9.6.2 Settings
9.6.3 Page Formatting
9.7 Drawing and Presentation Document Controller
9.7.1 Setting the Current Page, Using the Selection
9.7.2 Zooming
9.7.3 Other Drawing-Specific View Settings
 10 Charts
10.1 Overview
10.2 Handling Chart Documents
10.2.1 Creating Charts
Creating and Adding a Chart to a Spreadsheet
Creating a Chart OLE Object in Draw and Impress
Setting the Chart Type
10.2.2 Accessing Existing Chart Documents
10.3 Working with Charts
10.3.1 Document Structure
10.3.2 Data Access
10.3.3 Chart Document Parts
Common Parts of all Chart Types
Features of Special Chart Types
10.4 Chart Document Controller
10.5 Chart Add-Ins
10.5.1 Prerequisites
10.5.2 How Add-Ins work
10.5.3 How to Apply an Add-In to a Chart Document
 11 OpenOffice.org Basic and Dialogs
11.1 First Steps with OpenOffice.org Basic
Step By Step Tutorial
A Simple Dialog
11.2 OpenOffice.org Basic IDE
11.2.1 Managing Basic and Dialog Libraries
Macro Dialog
Macro Organizer Dialog
11.2.2 Basic IDE Window
Basic Source Editor and Debugger
Dialog Editor
11.2.3 Assigning Macros to GUI Events
11.3 Features of OpenOffice.org Basic
11.3.1 Functional Range Overview
Screen I/O Functions
File I/O
Date and Time Functions
Numeric Functions
String Functions
Specific UNO Functions
11.3.2 Accessing the UNO API
StarDesktop
ThisComponent
11.3.3 Special Behavior of OpenOffice.org Basic
Threads
Rescheduling
11.4 Advanced Library Organization
11.4.1 General Structure
11.4.2 Accessing Libraries from Basic
Library Container Properties in Basic
Loading Libraries
Library Container API
11.4.3 Variable Scopes
11.5 Programming Dialogs and Dialog Controls
11.5.1 Dialog Handling
Showing a Dialog
Getting the Dialog Model
Dialog as Control Container
Dialog Properties
Common Properties
Multi-Page Dialogs
11.5.2 Dialog Controls
Command Button
Image Control
Check Box
Option Button
Label Field
Text Field
List Box
Combo Box
Horizontal/Vertical Scroll Bar
Group Box
Progress Bar
Horizontal/Vertical Line
Date Field
Time Field
Numeric Field
Currency Field
Formatted Field
Pattern Field
File Control
11.6 Creating Dialogs at Runtime
11.7 Library File Structure
11.7.1 Application Library Container
11.7.2 Document Library Container
11.8 Library Deployment
Package Structure
Path Settings
Additional Options
 12 Database Access
12.1 Overview
12.1.1 Capabilities
Platform Independence
Functioning of the OpenOffice.org API Database Integration
Integration with OpenOffice.org API
12.1.2 Architecture
12.1.3 Example: Querying the Bibliography Database
12.2 Data Sources in OpenOffice.org API
12.2.1 DatabaseContext
12.2.2 DataSources
The DataSource Service
Queries
Forms and Other Links
Tables and Columns
12.2.3 Connections
Understanding Connections
Connecting Using the DriverManager and a Database URL
Connecting Through a Specific Driver
Driver Specifics
Connection Pooling
Piggyback Connections
12.3 Manipulating Data
12.3.1 The RowSet Service
Usage
Events and Other Notifications
Clones of the RowSet Service
12.3.2 Statements
Creating Statements
Inserting and Updating Data
Getting Data from a Table
12.3.3 Result Sets
Retrieving Values from Result Sets
Moving the Result Set Cursor
Using the getXXX Methods
Scrollable Result Sets
Modifiable Result Sets
Update
Insert
Delete
Seeing Changes in Result Sets
12.3.4 ResultSetMetaData
12.3.5 Using Prepared Statements
When to Use a PreparedStatement Object
Creating a PreparedStatement Object
Supplying Values for PreparedStatement Parameters
12.3.6 PreparedStatement From DataSource Queries
12.4 Database Design
12.4.1 Retrieving Information about a Database
Retrieving General Information
Determining Feature Support
Database Limits
SQL Objects and their Attributes
12.4.2 Using DDL to Change the Database Design
12.4.3 Using SDBCX to Access the Database Design
The Extension Layer SDBCX
Catalog Service
Table Service
Column Service
Index Service
Key Service
View Service
Group Service
User Service
The Descriptor Pattern
Adding an Index
Creating a User
Adding a Group
12.5 Using DBMS Features
12.5.1 Transaction Handling
12.5.2 Stored Procedures
12.6 Writing Database Drivers
12.6.1 SDBC Driver
12.6.2 Driver Service
12.6.3 Connection Service
12.6.4 XDatabaseMetaData Interface
12.6.5 Statements
PreparedStatement
Result Set
12.6.6 Support Scalar Functions
Open Group CLI Numeric Functions
Open Group CLI String Functions
Open Group CLI Time and Date Functions
Open Group CLI System Functions  
Open Group CLI Conversion Functions
Handling Unsupported Functionality
 13 Forms
13.1 Introduction
13.2 Models and Views
13.2.1 The Model-View Paradigm
13.2.2 Models and Views for Form Controls
13.2.3 Model-View Interaction
13.2.4 Form Layer Views
View Modes
Locating Controls
Focussing Controls
13.3 Form Elements in the Document Model
13.3.1 A Hierarchy of Models
FormComponent Service
FormComponents Service
Logical Forms
Forms Container
Form Control Models
13.3.2 Control Models and Shapes
Programmatic Creation of Controls
13.4 Form Components
13.4.1 Basics
Control Models
Forms
13.4.2 HTML Forms
13.5 Data Awareness
13.5.1 Forms
Forms as Row Sets
Loadable Forms
Sub Forms
Filtering and Sorting
Parameters
13.5.2 Data Aware Controls
Control Models as Bound Components
Committing Controls
13.6 Common Tasks
13.6.1 Initializing Bound Controls
13.6.2 Automatic Key Generation
13.6.3 Data Validation
 14 Universal Content Broker
14.1 Overview
14.1.1 Capabilities
14.1.2 Architecture
14.2 Services and Interfaces
14.3 Content Providers
14.4 Using the UCB API
14.4.1 Instantiating the UCB
14.4.2 Accessing a UCB Content
14.4.3 Executing Content Commands
14.4.4 Obtaining Content Properties
14.4.5 Setting Content Properties
14.4.6 Folders
Accessing the Children of a Folder
14.4.7 Documents
Reading a Document Content
Storing a Document Content
14.4.8 Managing Contents
Creating
Deleting
Copying, Moving and Linking
14.4.9 UCP Registration Information
14.4.10 Unconfigured UCBs
14.4.11 Preconfigured UCBs
14.4.12 Content Provider Proxies
 15 Configuration Management
15.1 Overview
15.1.1 Capabilities
15.1.2 Architecture
15.2 Object Model
15.3 Configuration Data Sources
15.3.1 Connecting to a Data Source
15.3.2 Using a Data Source
15.4 Accessing Configuration Data
15.4.1 Reading Configuration Data
15.4.2 Updating Configuration Data
15.5 Customizing Configuration Data
15.5.1 Creating a Custom Configuration Schema
15.5.2 Preparing Custom Configuration Data
15.5.3 Installing Custom Configuration Data
15.6 Adding a Backend Data Store
 16 Office Bean
16.1 Introduction
16.2 Overview of the OfficeBean API
16.2.1 OfficeConnection Interface
16.2.2 OfficeWindow Interface
16.2.3 ContainerFactory Interface
16.3 LocalOfficeConnection and LocalOfficeWindow
16.4 Configuring the OfficeBean
16.4.1 Default Configuration
16.4.2 Customized Configuration
16.5 Using the OfficeBean
16.5.1 SimpleBean Example
Using SimpleBean
SimpleBean Internals
16.5.2 OfficeWriterBean Example
 17 Accessibility
17.1 Overview
17.2 Bridges
17.3 Accessibility Tree
17.4 Content Information
17.5 Listeners and Broadcasters
17.6 Implementing Accessible Objects
17.6.1 Implementation Rules
17.6.2 Services
17.7 Using the Accessibility API
17.7.1 A Simple Screen Reader  
Features
Class Overview
Putting the Accessibility Interfaces to Work
Appendix A: OpenOffice.org API-Design-Guidelines
A.1 General Design Rules
A.1.1 Universality
A.1.2 Orthogonality
A.1.3 Inheritance
A.1.4 Uniformity
A.1.5 Correct English
A.2 Definition of API Elements
A.2.1 Attributes
A.2.2 Methods
A.2.3 Interfaces
A.2.4 Properties
A.2.5 Events
A.2.6 Services
A.2.7 Exceptions
A.2.8 Enums
A.2.9 Typedefs
A.2.10 Structs
A.2.11 Parameter
A.3 Special Cases
A.4 Abbreviations
A.5 Source Files and Types
Appendix B: IDL Documentation Guidelines
B.1 Introduction
B.1.1 Process
B.1.2 File Assembly
B.1.3 Readable & Editable Structure
B.1.4 Contents
B.2 File structure
B.2.1 General
B.2.2 File-Header
B.2.3 File-Footer
B.3 Element Documentation
B.3.1 General Element Documentation
B.3.2 Example for a Major Element Documentation
B.3.3 Example for a Minor Element Documentation
B.4 Markups and Tags
B.4.1 Special Markups
B.4.2 Special Documentation Tags
B.4.3 Useful XHTML Tags
Appendix C: Universal Content Providers
C.1 The Hierarchy Content Provider
C.1.1 Preface
C.1.2 HCP Contents
C.1.3 Creation of New HCP Content
C.1.4 URL Scheme for HCP Contents
C.1.5 Commands and Properties
C.2 The File Content Provider
C.2.1 Preface
C.2.2 File Contents
C.2.3 Creation of New File Contents
C.2.4 URL Schemes for File Contents
C.2.5 Commands and Properties
C.3 The FTP Content Provider
C.3.1 Preface
C.3.2 FTP Contents
C.3.3 Creation of New FTP Content
C.3.4 URL Scheme for FTP Contents
C.3.5 Commands and Properties
C.4 The WebDAV Content Provider
C.4.1 Preface
C.4.2 DCP Contents
C.4.3 Creation of New DCP Contents
C.4.4 Authentication
C.4.5 Property Handling
C.4.6 URL Scheme for DCP Contents
C.4.7 Commands and Properties
C.5 The Package Content Provider
C.5.1 Preface
C.5.2 PCP Contents
C.5.3 Creation of New PCP Contents
C.5.4 URL Scheme for PCP Contents
C.5.5 Commands and Properties
C.6 The Help Content Provider
C.6.1 Preface
C.6.2 Help Content Provider Contents
C.6.3 URL Scheme for Help Contents
C.6.4 Properties and Commands
Appendix D: UNOIDL Syntax Specification
Glossary