OLE Programmatic Identifier
Programmatic Identifier is a simply a short name used to describe the object.
It is made up of three components:
An application name (such as Excel)
A class name (such as spreadsheet or chart) - excel.application
An optional version number. Generally, this number is omitted, so that the latest version will be loaded. In rare cases where a bug compatible version is required, the user will specify the version number.
In general usage, the programmatic identifier is simply used as a name to reference an object.
An interface is a collection of properties and methods (functions) which are used to make requests and get state information. An interface may be published by an object for others to call into or as a description of the functions and properties the object would like made available to it. This outward going description is referred to as an event interface. In addition to the default inbound and outbound interfaces, functions and properties may include types which are in fact interfaces. These can be understood as instances of some object that makes properties and methods available. For example, a spreadsheet object may contain other objects (cells) which are available through a function or property. The value returned is, in fact, an interface type. The functions described below make it possible to get a list of interfaces referenced within a class and get a list of the properties and methods that make up its definition.
A class is equivalent to a type of OLE object. There is one class named by each programmatic identifier. Usually a class has a default interface, which includes some number of properties and methods. Some classes have a default event interface as well. This is true of ActiveX controls, which sent messages to the containing application using the event interface.
While event describes an interface usage, this document refers to methods and properties of the default outbound interface as events.
An enumerated type is a set of constant integer values with assigned names. For example, the enumeration ValidPositions might contain the values Top, Bottom, Left and Right, assigned the values 1, 2, 3 and 4 respectively. Methods and properties may include enumerated types as arguments and return values. These values can be referred to by name.