IOleLink::SetSourceMoniker
Specifies the new link source of a linked object using a moniker.
HRESULT SetSourceMoniker(
IMoniker *pmk,
| //Moniker identifying new link source
|
REFCLSID rclsid
| //CLSID of link source
|
);
|
|
Parameters
pmk
[in] Points to 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.
Comments
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
MkParseDisplayName API 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 API function to display the Links dialog box, you must implement the
IOleUILinkContainer interface. The dialog box calls your implementations of
IOleUILinkContainer::SetLinkSource and
IOleUILinkContainer::CancelLink; your implementation of these methods can call
IOleLink::SetSourceMoniker.
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 method. A container application can also use the
IOleLink::SetSourceDisplayName method to change a link's moniker.
The linked object's implementation of
IPersistStorage::Save saves both the relative and the absolute moniker.
See Also
IOleLink::GetSourceMoniker,
IOleLink::SetSourceDisplayName,
IOleUILinkContainer,
OleUIEditLinks
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database