# IOleUILinkContainer::SetLinkSource

Changes the source of a link.

HRESULT SetLinkSource(

DWORD dwLink, | //Unique 32-bit link identifier
LPTSTR lpszDisplayName, | //Pointer to source string to parse
ULONG FAR* lenFileName, | //Length of the file name portion
ULONG FAR* pchEaten, | //Pointer to number of characters successfully parsed
BOOL fValidateSource | //Specifies whether moniker should be validated
); |

Parameters

dwLink
  [in] Container-defined unique 32-bit identifier for a single link. See IOleUILinkContainer::GetNextLink .
lpszDisplayName
  [in] Pointer to new source string to be parsed.
lenFileName
  Length of the leading file name portion of the lpszDisplayName string. If the link source is not stored in a file, then lenFileName should be 0. For OLE links, call IOleLink::GetSourceDisplayName.
pchEaten
  [out] Pointer to the number of characters successfully parsed in lpszDisplayName.
fValidateSource
  [in] TRUE if the moniker should be validated; for OLE links, MkParseDisplayName should be called. FALSE if the moniker should not be validated. If possible, the link should accept the unvalidated source, and mark itself as unavailable.

Return Values

This method supports the standard return values E_FAIL,

E_INVALIDARG, and E_OUTOFMEMORY, as well as the following:

S_OK
  Successfully changed the links source.
E_ACCESSDENIED
  Insufficient access permissions.

Remarks

#### Notes To Callers

Call this method from the Change Source dialog box, with fValidateSource initially set to TRUE. Change Source can be called directly or from the Links dialog box. If this call to SetLinkSource returns an error (e.g., MkParseDisplayName failed because the source was unavailable), then you should display an Invalid Link Source message, and the user should be allowed to decide whether or not to fix the source. If the user chooses to fix the source, then the user should be returned to the Change Source dialog box with the invalid portion of the input string highlighted. If the user chooses not to fix the source, then SetLinkSource should be called a second time with fValidateSource set to FALSE, and the user should be returned to the Links dialog box with the link marked Unavailable.

See Also

MkParseDisplayName