IOleLink::GetSourceDisplayName
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::Alloc to allocate the string returned in ppszDisplayName,
and the caller is responsible for calling IMalloc::Free to free it. Both caller
and called use the allocator returned by CoGetMalloc.
Return Values
This method
supports the standard return value E_FAIL, as well as the following:
S_OK
The display
name was successfully retrieved.
CreateBindCtx and IMoniker::GetDisplayName 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 function to display the
Links dialog box, you must implement the IOleUILinkContainer 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::GetDisplayName 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