Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

The following table shows the COM interfaces with a description of the purpose of each.

Note:
Windows Mobile may not support all of the programming elements in this section. For information about differences between the COM implementation available for Windows Mobile devices and that available for Windows Embedded CE devices, see COM and DCOM in Windows Mobile Devices.

Programming element Description

IAccessControl

This interface manages access to objects and properties.

IBindCtx

This interface provides access to a bind context, which is an object that stores information about a particular moniker binding operation.

ICatRegister

This interface provides methods for registering and unregistering component category information in the registry.

IClassActivator

This interface specifies a method that retrieves a class object.

IClassFactory

Because this interface contains two methods intended to deal with an entire class of objects, it is implemented on the class object for a specific class of objects, identified by a class identifier (CLSID).

IClassFactory2

This interface enables a class factory object, in any sort of object server, to control object creation through licensing.

IClientSecurity

This interface gives the client control over the security settings for each individual interface proxy of an object.

IConnectionPoint

This interface supports connection points for connectable objects.

IConnectionPointContainer

This interface supports connection points for connectable objects.

IContinueCallback

This interface is a generic callback mechanism for interruptible processes that should periodically ask an object whether to continue.

IDataObject

This interface specifies methods that enable data transfer and notification of changes in data.

IDccMan::Advise

This interface is implemented by Connection Manager. It allows an application some control of the connection manager and the ability to register for connection notifications.

IDccManSink

This interface is implemented by a client application that needs to be notified by Connection Manager about the connection and disconnection events it handles.

IEnumConnectionPoints

This interface enumerates connection points. Connectable objects support the following features:

IEnumConnections

This interface enumerates the current connections for a connectable object.

IEnumFORMATETC

This interface is used to enumerate an array of FORMATETCstructures.

IEnumMoniker

This interface is used to enumerate the components of a moniker or to enumerate the monikers in a table of monikers.

IEnumSTATDATA

This interface is used to enumerate through an array of STATDATAstructures, which contain advisory connection information for a data object.

IEnumSTATSTG

This interface is used to enumerate through an array of STATSTGstructures that contains statistical information about an open storage, stream, or byte array object.

IEnumString

This interface enumerates strings.

IEnumUnknown

This enumerator enumerates objects with the IUnknowninterface.

IErrorlog

This interface is an abstraction of an error log used to communicate detailed error information between a client and an object.

IExternalConnection

This interface manages a server object's count of marshaled, or external, connections.

IFillLockBytes

This interface enables downloading code to write data asynchronously to a structured storage byte array.

IGlobalInterfaceTable

This interface allows any apartment in a process to get access to an interface implemented on an object in any other apartment in the process.

IMalloc

This interface allocates, frees, and manages memory.

IMallocSpy

This interface is a debugging interface that allows application developers to monitor (spy on) memory allocation, detect memory leaks, and simulate memory failure in calls to IMallocmethods.

IMarshal

This interface enables a COM object to define and manage the marshaling of its interface pointers.

IMessageFilter

This interface provides COM servers and applications with the ability to selectively handle incoming and outgoing COM messages while waiting for responses from synchronous calls.

IMoniker

This interface contains methods that allow you to use a moniker object, which contains information that uniquely identifies a Component Object Model (COM) object.

IMultiQI

This interface enables a client to query an object proxy, or handler, for multiple interfaces, using a single RPC call.

IObjectSafety

This interface allows a container to retrieve the current initialization or scripting capabilities for an ActiveX control and to ask a control to make itself safe.

IOleControlSite

This interface provides methods to enable a site object to manage each embedded control within a container.

IOleItemContainer

This interface is used by item monikers when they are bound to the objects they identify.

IOleLink

This interface provides functions for managing information about the linked object, such as the location of the link source and the cached presentation data for the linked object.

IParseDisplayName

This interface parses a displayable name string to convert it into a moniker for custom moniker implementations.

IPersist

This interface defines the single method GetClassID, which is designed to supply the class identifier (CLSID) of an object that can be stored persistently in the system.

IPersistFile

This interface provides methods that permit an object to be loaded from or saved to a disk file, rather than a storage object or stream.

IPersistPropertyBag:IPersist

This interface works in conjunction with IPropertyBagto define an individual property-based persistence mechanism.

IPersistStorage

This interface defines methods that enable a container application to pass a storage object to one of its contained objects and to load and save the storage object.

IPersistStream

This interface provides methods for saving and loading objects that use a simple serial stream for their storage needs.

IPersistStreamInit

This interface is defined as a replacement for IPersistStreamto add an initialization method, InitNew.

IProgressNotify

This interface enables applications and other objects to receive notifications of changes during a downloading operation.

IPropertyBag

This interface provides an object with a property bag in which the object can persistently save its properties.

IProvideClassInfo

This interface provides a single method for accessing the type information for an object's coclass entry in its type library.

IProvideClassInfo2

This interface is a simple extension to the IProvideClassInfointerface for the purpose of making it quick and easy to retrieve an object's outgoing interface IID for its default event set.

IROTData

This interface is implemented by monikers to enable the Running Object Table (ROT) to compare monikers against each other.

IRunnableObject

This interface enables a container to control the running of its embedded objects.

IRunningObjectTable

This interface manages access to the Running Object Table (ROT), a globally accessible look-up table on each workstation.

ISequentialStream

This interface supports simplified sequential access to stream objects.

IServerSecurity

This interface is used by a server to help authenticate the client and to manage impersonation of the client.

ISpecifyPropertyPages:IUnknown

This interface is used to support property pages for an object.

IStdMarshalInfo

This interface returns the CLSID identifying the handler to be used in the destination process during standard marshaling.

ISurrogate

This interface defines two methods: one for dynamically loading new DLL servers into an existing surrogate, and one to free the surrogate when it is no longer needed.

IUnknown

This interface enables clients to get pointers to other interfaces on a specified object through the IUnknown::QueryInterfacemethod, and manage the existence of the object through the IUnknown::AddRefand IUnknown::Releasemethods.

IViewObject2

This interface is an extension to the IViewObjectinterface, which returns the size of the drawing for a given view of an object.

IViewObjectEx

This interface is an extension derived from the IViewObjectExinterface to provide support for:

IAccessControl

This interface manages access to objects and properties.

See Also

Reference

COM Reference