Share via




accessor function

A function that sets or retrieves the value of a property. Most properties have a pair of accessor functions. Properties that are read-only may have only one accessor function.


Microsofts brand name for the technologies that enable interoperability using the Component Object Model (COM). ActiveX technology includes, but is not limited to, OLE.

ActiveX control

A user interface element created using ActiveX technology.

Application object

The top-level object in an applications object hierarchy. The Application object identifies the application to the system, and typically becomes active when the application starts. Specified by the appobj attribute in the type library.


COM-based technology that enables binding at run time, or late binding, to an object's methods and properties and also makes possible cross-application macro programming. Formerly referred to as OLE Automation.

Automation client

An application, programming tool, or scripting language that accesses services provided by Automation objects. Formerly referred to as Automation controller.

Automation object

An instance of a class defined within an application that is exposed for access by other applications or programming tools by Automation interfaces.

Automation server

An application, type library, or other source that makes Automation objects available for programming by other applications, programming tools, or scripting languages.

return to top


class identifier (CLSID)

A universally unique identifier (UUID) for an application class that identifies an object. An object registers its class identifier (CLSID) in the system registration database so that it can be loaded and programmed by other applications.

class factory

An object that implements the IClassFactory interface, which allows it to create other objects of a specific class.

coclass (component class)

Component object class. A top-level object in the object hierarchy.

code page

The mapping between character glyphs (shapes) and the 1-byte or 2-byte numeric values that are used to represent them.

collection object

A grouping of exposed objects. A collection object can address multiple occurrences of an object as a unit (for example, to draw a set of points).

Component Object Model (COM)

The programming model and binary standard on which OLE is based. COM defines how objects and their clients interact within processes or across process boundaries.

compound document

A document that contains data of different formats, such as sound clips, spreadsheets, text, and bitmaps, created by different applications. Compound documents are stored by container applications.

container application

An OLE-based application that provides storage, a display site, and access to a compound document object.

custom interface

A user-defined COM interface that is not defined as part of OLE.

return to top


Dispatch identifier (DISPID)

The number by which a member function, parameter, or data member of an object is known internally to the IDispatch interface.

dispinterface (dispatch interface)

An IDispatch interface that responds only to a certain fixed set of names. The properties and methods of the dispinterface are not in the virtual function table (VTBL) for the object.

dual interface

An interface that supports both IDispatch and VTBLbinding.

return to top



An action recognized by an object, such as clicking the mouse or pressing a key, and for which you can write code to respond. In Automation, an event is a method that is called, rather than implemented, by an Automation object.

event sink

A function that handles events. The code associated with a Visual Basic form, which contains event handlers for one or more controls, is an event sink.

event source

A control that experiences events and calls an event handler to dispose of them.

exposed object

See Automation object.

return to top



A value returned from a function call to an interface, consisting of a severity code, context information, a facility code, and a status code that describes the result. For 16-bit Windows systems, the HRESULT is an opaque result handle defined to be zero for a successful return from a function, and nonzero if error or status information is to be returned. To convert an HRESULT into a more detailed SCODE (or return value), applications call GetSCode(). See SCODE.

return to top


ID binding

The ability to bind member names to dispatch identifiers (DISPIDs) at compile time (for example, by obtaining the IDs from a type library). This approach eliminates the need for calls to IDispatch::GetIDsOfNames, and results in improved performance over late-bound calls. See also late binding and VTBL binding.

in-place activation

The ability to activate an object from within an OLE control and to associate a verb with that activation (for example, edit, play, change). Sometimes referred to as in-place editing or visual editing.

in-process server

An object application that runs in the same process space as the Automation controller.


One or more well-defined base classes providing member functions that, when implemented in an application, provide a specific service. Interfaces may include compiled support functions to simplify their implementation.

return to top


late binding

The ability to bind member names to dispatch identifiers (IDs) at run time, rather than at compile time. See also ID binding and VTBL binding.

LCID (locale identifier)

A 32-bit value that identifies the human language preferred by a user, region, or application.


User-preference information, represented as a list of values describing the user's language and sublanguage.

return to top



The process of packaging and sending interface parameters across process boundaries.

member function

One of a group of related functions that make up an interface. See also method and property.


A member function of an exposed object that performs some action on the object, such as saving it to disk.

MIDL compiler

The Microsoft Interface Definition Library (MIDL) compiler can be used to generate a type library. For information about the MIDL compiler, see Microsoft Interface Definition Language.

multiple-document interface (MDI) application

An application that can support multiple documents from one application instance. MDI object applications can simultaneously service a user and one or more embedding containers. See also single-document interface (SDI) application.

return to top


naming guidelines

Recommendations meant to improve consistency and readability across applications.

return to top



A unit of information that resides in a compound document and whose behavior is constant no matter where it is located or used.

Object Description Language (ODL)

A scripting language used to describe exposed libraries, objects, types, and interfaces. ODL scripts are compiled into type libraries by the MIDL compiler.


Microsofts object-based technology for sharing information and services across process and machine boundaries (object linking and embedding).

out-of process server

An object application implemented in an executable file that runs in a separate process space from the Automation controller.

return to top


programmable object

See Automation object.

programmatic identifier (ProgID)

An applications unique name that is mapped to the system registry by the class identifier (CLSID). For example, registering Microsoft Excel associates a CLSID with the ProgID Excel.Application.


A data member of an exposed object. Properties are set or returned by means of get and put assessor functions.


An interface-specific object that packages parameters for that interface in preparation for a remote method call. A proxy runs in the address space of the sender and communicates with a corresponding stub in the receivers address space. See also stub, marshaling, and unmarshaling.

return to top


running object table (ROT)

A globally accessible table on each computer that keeps track of all COM objects in the running state that can be identified by a moniker. Moniker providers register an object in the table, which increments the object's reference count. Before the object can be destroyed, its moniker must be released from the table.

return to top


safe array

An array that contains information about the number of dimensions and the bounds of its dimensions. Safe arrays are passed by IDispatch::Invoke within VARIANTARGs. Their base type is VT_tag | VT_ARRAY.


A DWORD value that is used in 16-bit systems to pass detailed information to the caller of an interface member or API function. The status codes for OLE interfaces and APIs are defined in FACILITY_ITF. See HRESULT.

single-document interface (SDI) application

An application that can support only one document at a time. Multiple instances of an SDI application must be started to service both an embedded object and a user. See also multiple-document interface (MDI) application.

standard objects

A set of objects defined by Automation, including the following: Application, Document, Documents, and Font.


An interface-specific object that unpackages the parameters for that interface after they are marshaled across the process boundary, and makes the requested method call. The stub runs in the address space of the receiver and communicates with a corresponding proxy in the senders address space. See proxy, marshaling, and unmarshaling.

return to top


type description

The information used to build the type information for one or more aspects of an applications interface. Type descriptions are written in Object Description Language (ODL), and include both programmable and nonprogrammable interfaces.

type information

Information that describes the interfaces of an application. Type information is created from type descriptions using OLE Automation tools, such as the MIDL compiler or the CreateDispTypeInfo function. Type information can be accessed through the ITypeInfo interface.

type information element

A unit of information identified by one of these statements in a type description: typedef, enum, struct, module, interface, dispinterface, or coclass.

type library

A file or component within another file that contains type information about exposed objects. Type libraries are created using the MIDL compiler, and can be accessed through the ITypeLib interface.

return to top



The process of unpackaging parameters that have been sent across process boundaries.

return to top


Value property

The property that defines the default behavior of an object when no other methods or properties are specified. Indicate the Value property by specifying the default attribute in ODL.

virtual function table (VTBL)

A table of function pointers, such as an implementation of a class in C++. The pointers in the VTBL point to the members of the interfaces that an object supports.

VTBL binding

A process that allows an ActiveX client to call a method or property accessor function directly without using the IDispatch interface. VTBL binding is faster than both ID binding and latebinding because the access is direct. See also late binding and ID binding.

return to top