objidl.h header

This header is used by multiple technologies. For more information, see:

objidl.h contains the following programming interfaces:

Interfaces

 
IAdviseSink

Enables containers and other objects to receive notifications of data changes, view changes, and compound-document changes occurring in objects of interest.
IAdviseSink2

The IAdviseSink2 interface is an extension of the IAdviseSink interface, adding the method OnLinkSrcChange to the contract to handle a change in the moniker of a linked object.
IAgileObject

The IAgileObject interface (objidl.h) marks an interface as agile across apartments.
IAgileReference

Enables retrieving an agile reference to an object.
IApartmentShutdown

Enables registration of an apartment shutdown notification handler.
IBindCtx

Provides access to a bind context, which is an object that stores information about a particular moniker binding operation.
IBlockingLock

Provides a semaphore that can be used to provide temporarily exclusive access to a shared resource such as a file.
ICallFactory

The ICallFactory interface (objidl.h) creates a call object for processing calls to the methods of an asynchronous interface.
ICancelMethodCalls

The ICancelMethodCalls::Cancel method (objidl.h) manages cancellation requests on an outbound method call and monitors the current state of that method call on the server thread.
IClassActivator

Specifies a method that retrieves a class object.
IClientSecurity

Gives the client control over the security settings for each individual interface proxy of an object.
IComThreadingInfo

The IComThreadingInfo interface (objidl.h) enables you to obtain the apartment type, thread type, and thread GUID for the apartment and thread that the caller is executing in.
IContext

The IContext interface (objidl.h) supports setting COM+ context properties.
IDataAdviseHolder

Creates and manages advisory connections between a data object and one or more advise sinks.
IDataObject

Enables data transfer and notification of changes in data.
IDirectWriterLock

The IDirectWriterLock interface enables a single writer to obtain exclusive write access to a root storage object opened in direct mode while allowing concurrent access by multiple readers.
IEnumContextProps

The IEnumContextProps interface (objidl.h) provides a mechanism for enumerating the context properties associated with a COM+ object context.
IEnumFORMATETC

Enumerates the FORMATETC structures that define the formats and media supported by a given data object.
IEnumMoniker

Enumerates the components of a moniker or the monikers in a table of monikers.
IEnumSTATDATA

Enumerates the advisory connection information for a data object.
IEnumSTATSTG

Enumerates an array of STATSTG structures.
IEnumString

The IEnumString interface (objidl.h) enumerates strings. LPWSTR is the type that indicates a pointer to a zero-terminated string of wide, or Unicode, characters.
IEnumUnknown

The IEnumUnknown interface (objidl.h) enumerates objects with the IUnknown interface.
IExternalConnection

The IExternalConnection interface (objidl.h) manages a server object's count of marshaled and external connections.
IFastRundown

The IFastRundown interface (objidl.h) marks an interface as eligible for fast rundown behavior.
IFillLockBytes

The IFillLockBytes interface enables downloading code to write data asynchronously to a structured storage byte array.
IForegroundTransfer

Transfers the foreground window to the process hosting the COM server.
IGlobalInterfaceTable

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

The IGlobalOptions interface (objidl.h) sets and queries global properties of the Component Object Model (COM) runtime.
IInitializeSpy

Performs initialization or cleanup when entering or exiting a COM apartment.
IInternalUnknown

The IInternalUnknown interface (objidl.h) is used exclusively in lightweight client-side handlers that require access to the internal interfaces on the proxy.
ILayoutStorage

The ILayoutStorage interface enables an application to optimize the layout of its compound files for efficient downloading across a slow link.
ILockBytes

The ILockBytes interface is implemented on a byte array object that is backed by some physical storage, such as a disk file, global memory, or a database.
IMalloc

The IMalloc interface (objidl.h) allocates, frees, and manages memory.
IMallocSpy

Enables application developers to monitor (spy on) memory allocation, detect memory leaks, and simulate memory failure in calls to IMalloc methods.
IMarshal

The IMarshal interface (objidl.h) enables a COM object to define and manage the marshaling of its interface pointers.
IMarshalingStream

The IMarshalingStream interface (objidl.h) provides additional information about the marshaling context to custom-marshaled objects and unmarshalers.
IMessageFilter

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

Enables you to use a moniker object, which contains information that uniquely identifies a COM object.
IMultiQI

The IMultiQI interface (objidl.h) enables a client to query an object proxy or handler for multiple interfaces by using a single RPC call.
INoMarshal

The INoMarshal interface (objidl.h) marks an object that doesn't support being marshaled or stored in the Global Interface Table.
IObjContext

The IObjContext interface (objidl.h) performs various operations on contexts.
IPersist

Provides the CLSID of an object that can be stored persistently in the system. Allows the object to specify which object handler to use in the client process, as it is used in the default implementation of marshaling.
IPersistFile

Enables an object to be loaded from or saved to a disk file, rather than a storage object or stream.
IPersistStorage

Enables a container application to pass a storage object to one of its contained objects and to load and save the storage object.
IPersistStream

Enables the saving and loading of objects that use a simple serial stream for their storage needs.
IPipeByte

The IPipeByte interface (objidl.h) transfers data of the byte type, which is 8 bits wide.
IPipeDouble

The IPipeDouble interface (objidl.h) transfers data of the double type, which is 64 bits wide.
IPipeLong

The IPipeLong interface (objidl.h) transfers data of the long integer type, which is 32 bits wide.
IProcessInitControl

The IProcessInitControl interface (objidl.h) specifies the process initialization time-out interval.
IProcessLock

Used by ISurrogateService to prevent the process from terminating due to a time-out.
IProgressNotify

Enables applications and other objects to receive notifications of changes in the progress of a downloading operation.
IPSFactoryBuffer

The IPSFactoryBuffer interface (objidl.h) provides custom methods for the creation of COM object proxies and stubs. This interface is not marshalable.
IRootStorage

The IRootStorage interface contains a single method that switches a storage object to a different underlying file and saves the storage object to that file.
IROTData

Implemented by monikers to enable the running object table (ROT) to compare monikers against each other.
IRpcChannelBuffer

The IRpcChannelBuffer interface (objidl.h) marshals data between a COM client proxy and a COM server stub.
IRpcOptions

The IRpcOptions interface (objidl.h) enables callers to set or query the values of various properties that control how COM handles remote procedure calls (RPC).
IRpcProxyBuffer

The IRpcProxyBuffer (objidl.h) controls the RPC proxy used to marshal data between COM components.
IRpcStubBuffer

The IRpcStubBuffer interface (objidl.h) controls the RPC stub used to marshal data between COM components.
IRunnableObject

Enables a container to control the running of its embedded objects.
IRunningObjectTable

Manages access to the running object table (ROT), a globally accessible look-up table on each workstation.
ISequentialStream

The ISequentialStream interface supports simplified sequential access to stream objects. The IStream interface inherits its Read and Write methods from ISequentialStream.
IServerSecurity

The IServerSecurity (objidl.h) interface is used by a server to help authenticate the client and to manage impersonation of the client.
IStdMarshalInfo

The IStdMarshalInfo (objidl.h) interface retrieves the CLSID identifying the handler to be used in the destination process during standard marshaling.
IStorage

The IStorage interface supports the creation and management of structured storage objects.
IStream

The IStream interface lets you read and write data to stream objects.
ISurrogate

The ISurrogate (objidl.h) interface is used to dynamically load new DLL servers into an existing surrogate and free the surrogate when it is no longer needed.
ISurrogateService

Used to initialize, launch, and release a COM+ application. You can also refresh the catalog and shut down the process.
ISynchronize

The ISynchronize (objidl.h) interface provides asynchronous communication between objects about the occurrence of an event.
ISynchronizeContainer

The ISynchronizeContainer (objidl.h) interface manages a group of unsignaled synchronization objects.
ISynchronizeEvent

The ISynchronizeEvent (objidl.h) interface assigns an event handle to a synchronization object.
ISynchronizeHandle

The ISynchronizeHandle (objidl.h) interface retrieves a handle associated with a synchronization object.

Functions

 
HBITMAP_UserFree

Frees resources on the server side when called by RPC stub files.
HBITMAP_UserFree64

Frees resources on the server side when called by RPC stub files.
HBITMAP_UserMarshal

Marshals an HBITMAP object into the RPC buffer.
HBITMAP_UserMarshal64

Marshals an HBITMAP object into the RPC buffer.
HBITMAP_UserSize

Calculates the wire size of the HBITMAP object and gets its handle and data.
HBITMAP_UserSize64

Calculates the wire size of the HBITMAP object and gets its handle and data.
HBITMAP_UserUnmarshal

Unmarshals an HBITMAP object from the RPC buffer.
HBITMAP_UserUnmarshal64

Unmarshals an HBITMAP object from the RPC buffer.

Structures

 
BIND_OPTS

Contains parameters used during a moniker-binding operation.
BIND_OPTS2

The BIND_OPTS2 structure contains parameters used during a moniker-binding operation.
BIND_OPTS3

The BIND_OPTS3 structure contains parameters used during a moniker-binding operation.
COSERVERINFO

The COSERVERINFO (objidl.h) structure identifies a remote computer resource to the activation functions.
DVTARGETDEVICE

Specifies information about the target device for which data is being composed. DVTARGETDEVICE contains enough information about a Windows target device so a handle to a device context (HDC) can be created using the CreateDC function.
FORMATETC

Represents a generalized clipboard format.
INTERFACEINFO

Contains information about incoming calls.
MULTI_QI

The MULTI_QI (objidl.h) structure represents an interface in a query for multiple interfaces.
RemSNB

The RemSNB structure is used for marshaling the SNB data type.Defined in the IStorage interface (Storag.idl).
RPCOLEMESSAGE

The RPCOLEMESSAGE (objidl.h) structure contains marshaling invocation arguments and return values between COM components.
SOLE_AUTHENTICATION_INFO

The SOLE_AUTHENTICATION_INFO (objidl.h) structure identifies an authentication service, authorization service, and the information for the specified service.
SOLE_AUTHENTICATION_LIST

The SOLE_AUTHENTICATION_LIST (objidl.h) structure indicates the default authentication information to use with each authentication service.
SOLE_AUTHENTICATION_SERVICE

The SOLE_AUTHENTICATION_SERVICE (objidl.h) structure identifies an authentication service that a server is willing to use to communicate to a client.
STATDATA

Contains information used to specify each advisory connection.
STATSTG

Contains statistical data about an open storage, stream, or byte-array object.
StorageLayout

Describes a single block of data, including its name, location, and length.
uSTGMEDIUM

The uSTGMEDIUM structure represents a generalized global memory handle used for data transfer operations by the IAdviseSink, IDataObject, and IOleCache interfaces.

Enumerations

 
ACTIVATIONTYPE

The ACTIVATIONTYPE enumeration (objidl.h) specifies the kind of activation for an activatable class.
ADVF

Flags that control caching and notification of changes in data.
APTTYPE

The APTTYPE enumeration (objidl.h) specifies different types of apartments.
APTTYPEQUALIFIER

The APTTYPEQUALIFIER enumeration (objidl.h) specifies the set of possible COM apartment type qualifiers.
BIND_FLAGS

Controls aspects of moniker binding operations.
CALLTYPE

Specifies the call types used by IMessageFilter::HandleInComingCall.
CO_MARSHALING_CONTEXT_ATTRIBUTES

The CO_MARSHALING_CONTEXT_ATTRIBUTES enumeration (objidl.h) identifies one of the marshaling context attributes that can be queried using a specific method.
DATADIR

Specifies the direction of the data flow. This determines the formats that the resulting enumerator can enumerate.
EOLE_AUTHENTICATION_CAPABILITIES

The EOLE_AUTHENTICATION_CAPABILITIES enumeration (objidl.h) specifies various capabilities in CoInitializeSecurity and IClientSecurity::SetBlanket.
EXTCONN

The EXTCONN enumeration (objidl.h) specifies the type of external connection existing on an embedded object.
GLOBALOPT_PROPERTIES

The GLOBALOPT_PROPERTIES enumeration (objidl.h) identifies process-global options that you can set or query by using the IGlobalOptions interface.
GLOBALOPT_UNMARSHALING_POLICY_VALUES

The GLOBALOPT_UNMARSHALING_POLICY_VALUES enumeration (objidl.h) provides values for the COM unmarshaling policy global option.
LOCKTYPE

The LOCKTYPE enumeration values indicate the type of locking requested for the specified range of bytes. The values are used in the ILockBytes::LockRegion and IStream::LockRegion methods.
MKRREDUCE

Specifies how far a moniker should be reduced.
MKSYS

Indicates the moniker's class.
PENDINGMSG

Specifies the return values for the IMessageFilter::MessagePending method.
PENDINGTYPE

Indicates the level of nesting in the IMessageFilter::MessagePending method.
SERVERCALL

Indicates the status of server call.
STGTY

The STGTY enumeration values are used in the type member of the STATSTG structure to indicate the type of the storage element. A storage element is a storage object, a stream object, or a byte-array object (LOCKBYTES).
STREAM_SEEK

The STREAM_SEEK enumeration values specify the origin from which to calculate the new seek-pointer location.
THDTYPE

The THDTYPE enumeration (objidl.h) indicates whether a particular thread supports a message loop.
TYMED

Indicates the type of storage medium being used in a data transfer. They are used in the STGMEDIUM or FORMATETC structures.