Programming Guide: Component Manager

# Programming Guide

## Component Manager

A component is additional software added to the OpenDoc environment to support a defined OpenDoc capability. Scripting support is provided through the installation of a scripting component. A component will supply a class that provides a defined interface that is used by OpenDoc. Any number of components, each of which supply some or all of the support defined for an OpenDoc interface, could be installed.

The Component Manager has the following main parts:

- The component registry
- The component access interface

### Component Registry

The component registry is a repository that tracks all components that are installed and registered with OpenDoc. The stand-alone utility program cmgrcmd provides the interface that supports modification of the registry.

The information maintained in the component registry describes components which have been installed in the OpenDoc environment. This information includes:

Type | This code is defined by OpenDoc and acts as an identifier for the set of components that support some OpenDoc function. For example "ODDS" is the code used as the type for all components that support OpenDoc Direct Scripting.
SubType | This code is a unique identifier of a particular Component.
Flags | A set of bit-significant flags defined in the context of a particular type and identifies any variations on the support provided by the component. Each type attaches a different meaning to these bits. Scripting flags are defined in the `scrcomp.xh` binding file.
ClassName | The name of the SOM class providing the interface to the component.
DLLName | The name of the DLL containing the implementation of the class identified in ClassName.
Version | A numeric value specifying the version number of the component implementation.
Manufacturer | This code value identifies the manufacturer of the component being registered.
Description | A descriptive string.
Name | A descriptive name for the component.

### Component Access Interface

When an OpenDoc object requires the services provided by a component, it requests the component access interface to locate a suitable component, and optionally creates an instance of that component for use. The request to the component access interface specifies the capability requirements that must be met by a component as specified by its capability flags. For more information about flags, see "Component Registry".

[ Top | Previous | Next | Contents | Index | Documentation Homepage ]