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

This method retrieves the moniker identifying the link source of a linked object.


HRESULT GetSourceMoniker(



[out] Address of the IMoniker *pointer variable that receives the interface pointer to an absolute moniker that identifies the link source.

When successful, the implementation must call the IUnknown::AddRefmethod on *ppmk; it is the caller's responsibility to call IUnknown::Release.

If an error occurs, the implementation must set *ppmkto NULL.

Return Value

If the method succeeds, the return value is S_OK.

If no moniker is available, the method returns MK_E_UNAVAILABLE.


The linked object stores both an absolute and a relative moniker for the link source.

If the relative moniker is non-NULL and a moniker is available for the compound document, IOleLink::GetSourceMonikerreturns the moniker created by composing the relative moniker onto the end of the compound document's moniker. Otherwise, it returns the absolute moniker or, if an error occurs, NULL.

The container specifies the absolute moniker when it calls one of the OleCreateLinkfunctions to create a link.

The application can call the IOleLink::SetSourceMonikeror IOleLink::SetSourceDisplayNamemethod to change the absolute moniker. In addition, the linked object automatically updates the monikers whenever it successfully binds to the link source or when it is bound to the link source and it receives a rename notification through the IAdviseSink::OnRenamemethod.

To determine whether the platform supports this interface, see Determining Supported COM APIs.

Notes to Callers

Your container application can call IOleLink::GetSourceMonikerto display the current source of a link in the Linksdialog box.

Note that this requires your container to use the IMoniker::GetDisplayNamemethod to get the display name of the moniker.

If you would rather get the display name directly, your container can call IOleLink::GetSourceDisplayNameinstead of IOleLink::GetSourceMoniker.


Header Oleidl.h, oleidl.idl
Library ole32.lib, uuid.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also