# COM and Automation Objects (Windows)

This topic only applies to Windows.

This section provides a brief overview of:

- COM Objects

- Automation Objects

- Object Servers

COM Objects

The Component Object Model (COM) provides mechanisms for creating reusable software components. COM is an object-based programming model designed to promote software interoperability; that is, to allow two or more applications or components to easily cooperate with one another, even if they were written by different vendors at different times, in different programming languages, or if they are running on different machines running different operating systems.

With COM, components interact with each other and with the system through collections of function calls, also known as methods or member functions or requests, called interfaces. An interface is a semantically related set of member functions. The interface as a whole represents a feature of an object. The member functions of an interface represent the operations that make up the feature. In general, an object can support multiple interfaces and you can use COMQueryInterface (W*32 W*64) to get a pointer to any of them.

The Intel Fortran COM routines provide a Fortran interface to basic COM functions.

Automation Objects

The capabilities of an Automation objectresemble those of a COM object. An Automation object is in fact a COM object that implements the interface IDispatch. An Automation object exposes:

- Methods, which are functions that perform an action on an object. These are very similar to the member functions of COM objects.

- Properties, which hold information about the state of an object. A property can be represented by a pair of methods; one for getting the property's current value, and one for setting the property's value.

The Intel® Visual Fortran AUTO routines provide a Fortran interface to invoking an automation object's methods and setting and getting its properties.

Object Servers

COM and Automation objects are made available to users by COM and Automation servers. A COM or Automation server can be implemented either as:

- A DLL that is loaded into your process

- A separate executable program. The separate executable program can reside on the same system as your application or on a different system.

Parent topic: Use the Intel® Fortran Module Wizard (COM Client) (Windows)