IOleObject

The IOleObject interface is the principal means by which an embedded object provides basic functionality to, and communicates with, its container.

When to Implement

An object application must implement this interface, along with at least IDataObject and IPersistStorage, for each type of embedded object that it supports. Although this interface contains 21 methods, only three are nontrivial to implement and must be fully implemented: DoVerb, SetHostNames, and Close. Six of the methods provide optional functionality, which, if not desired, can be implemented to return E_NOTIMPL: SetExtent, InitFromData, GetClipboardData, SetColorScheme, SetMoniker, and GetMoniker. The latter two methods are useful mainly for enabling links to embedded objects.

When to Use

Call the methods of this interface to enable a container to communicate with an embedded object. A container must call DoVerb to activate an embedded object, SetHostNames to communicate the names of the container application and container document, and Close to move an object from a running to a loaded state. Calls to all other methods are optional.

Methods in VTable Order

IUnknown Methods Description
QueryInterface Returns pointers to supported interfaces.
AddRef Increments reference count.
Release Decrements reference count.

IOleObject Methods Description
SetClientSite Informs object of its client site in container.
GetClientSite Retrieves object's client site.
SetHostNames Communicates names of container application and container document.
Close Moves object from running to loaded state.
SetMoniker Informs object of its moniker.
GetMoniker Retrieves object's moniker.
InitFromData Initializes embedded object from selected data.
GetClipboardData Retrieves a data transfer object from the Clipboard.
DoVerb Invokes object to perform one of its enumerated actions ("verbs").
EnumVerbs Enumerates actions ("verbs") for an object.
Update Updates an object.
IsUpToDate Checks if object is up to date.
GetUserClassID Returns an object's class identifier.
GetUserType Retrieves object's user-type name.
SetExtent Sets extent of object's display area.
GetExtent Retrieves extent of object's display area.
Advise Establishes advisory connection with object.
Unadvise Destroys advisory connection with object.
EnumAdvise Enumerates object's advisory connections.
GetMiscStatus Retrieves status of object.
SetColorScheme Recommends color scheme to object application.

QuickInfo

  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in oleidl.h.