IOleLink::SetSourceMoniker
Specifies the
new link source of a linked object using a moniker.
HRESULT SetSourceMoniker(
IMoniker *pmk, |
//Pointer to a moniker identifying new link source |
REFCLSID rclsid |
//CLSID of link source |
); |
|
Parameters
pmk
[in] Pointer
to the IMoniker interface on a moniker that identifies the new link
source of the linked object. A value of NULL breaks the link.
rclsid
[in]
Specifies the CLSID of the link source that the linked object should use to
access information about the linked object when it is not bound.
Return Value
S_OK
The moniker
was set successfully.
Remarks
Notes to Callers
Your
container application can call IOleLink::SetSourceMoniker when the end
user changes the source of a link or breaks a link. Note that this requires
your container to use the MkParseDisplayName2DJJ.25 function to create a moniker out of the
display name that the end user enters. If you d rather have the linked object
perform the parsing, your container can call IOleLink::SetSourceDisplayName
instead of IOleLink::SetSourceMoniker.
The end user
changes the source of a link or breaks a link using the Links dialog box. If
you use the OleUIEditLinks
If the linked object is
currently bound to its link source, the linked object s implementation of IOleLink::SetSourceMoniker
closes the link before changing the moniker.
Notes on Provided Implementation
The IOleLink
contract does not specify how the linked object stores or uses the link source
moniker. The provided implementation stores the absolute moniker specified when
the link is created or when the moniker is changed; it then computes and stores
a relative moniker. Future implementations might manage monikers differently to
provide better moniker tracking. The absolute moniker provides the complete
path to the link source. The linked object uses this absolute moniker and the
moniker of the compound document to compute a relative moniker that identifies
the link source relative to the compound document that contains the link.
pmkCompoundDoc->RelativePathTo(pmkAbsolute, ppmkRelative)
When binding to the
link source, the linked object first tries to bind using the relative moniker.
If that fails, it tries to bind the absolute moniker.
When the linked object
successfully binds using either the relative or the absolute moniker, it automatically
updates the other moniker. The linked object also updates both monikers when it
is bound to the link source and it receives a rename notification through the IAdviseSink::OnRename
The linked object s
implementation of IPersistStorage::Save
See Also