# IOleClientSite::GetContainer

Returns a pointer to the container’s IOleContainer interface.

HRESULT GetContainer(

LPOLECONTAINER FAR* ppContainer | //Indirect pointer to the interface on the object
); |

Parameter

ppContainer
  [out] Indirect pointer to where the IOleContainer interface on the object should be returned. If an error is returned, this parameter must be set to NULL.

Return Values

S_OK
  The pointer to the container’s IOleContainer interface was successfully returned.
OLE_E_NOT_SUPPORTED
  Client site is in OLE 1 container.
E_NOINTERFACE
  The container does not implement the IOleContainer interface.

Remarks

If a container supports links to its embedded objects, implementing IOleClientSite::GetContainer enables link clients to enumerate the container’s objects and recursively traverse a containment hierarchy. This method is optional but recommended for all containers that expect to support links to their embedded objects.

Link clients can traverse a hierarchy of compound-document objects by recursively calling IOleClientSite::GetContainer to get a pointer to the link source’s container; followed by IOleContainer::QueryInterface to get a pointer to the container’s IOleObject interface and, finally, IOleObject::GetClientSite to get the container’s client site in its container.

Simple containers that do not support links to their embedded objects probably do not need to implement this method. Instead, they can return E_NOINTERFACE and set ppContainer to NULL.