IOleLink::GetSourceDisplayName  32_V92N

Retrieves the display name of the link source of the linked object.

HRESULT GetSourceDisplayName(

    LPOLESTR *ppszDisplayName

//Indirect pointer to string containing display name of link source

   );

 

 

Parameter

ppszDisplayName

[out] Indirect pointer to the location of a zero-terminated wide character string (two bytes per character) containing the display name of the link source. If an error occurs, ppszDisplayName is set to NULL; otherwise, the implementation must use IMalloc::Alloc1THWWZM to allocate the string returned in ppszDisplayName, and the caller is responsible for calling IMalloc::Free62NW.NT to free it. Both caller and called use the allocator returned by CoGetMalloc1012PPO.

 

Return Values

This method supports the standard return value E_FAIL, as well as the following:

S_OK

The display name was successfully retrieved.

CreateBindCtx6NHJ.W6 and IMoniker::GetDisplayName2BE2_IB errors

Retrieving the display name requires calling these functions; therefore, this method may return errors generated by these functions.

 

Remarks

Notes to Callers

Your container application can call IOleLink::GetSourceDisplayName in order to display the current source of a link.

The current source of a link is displayed in the Links dialog box. If you use the OleUIEditLinks_WWWDZ function to display the Links dialog box, you must implement the IOleUILinkContainer1FDS4TO interface. The dialog box calls your implementations of IOleUILinkContainer::GetLinkSource to get the string it should display. Your implementation of that method can call IOleLink::GetSourceDisplayName.

Notes on Provided Implementation

The linked object s implementation of IOleLink::GetSourceDisplayName calls IOleLink::GetSourceMoniker to get the link source moniker, and then calls IMoniker::GetDisplayName2BE2_IB to get that moniker s display name. This operation is potentially expensive because it might require binding the moniker. All of the system-supplied monikers can return a display name without binding, but there is no guarantee that other moniker implementations can. Instead of making repeated calls to IOleLink::GetSourceDisplayName, your container application can cache the name and update it whenever the link source is bound.

See Also

IOleLink::SetSourceDisplayName, IOleUILinkContainer, IMoniker::GetDisplayName, OleUIEditLinks