다음을 통해 공유


IOleLink::SetSourceMoniker 메서드(oleidl.h)

링크 원본의 모니커를 설정합니다.

구문

HRESULT SetSourceMoniker(
  [in] IMoniker *pmk,
  [in] REFCLSID rclsid
);

매개 변수

[in] pmk

연결된 개체의 새 링크 원본을 식별하는 모니커의 IMoniker 인터페이스에 대한 포인터입니다. NULL 값은 링크를 끊습니다.

[in] rclsid

연결된 개체가 바인딩되지 않은 경우 연결된 개체에 대한 정보에 액세스하는 데 사용해야 하는 링크 원본의 CLSID입니다.

반환 값

이 메서드는 성공에 대한 S_OK 반환합니다.

설명

발신자에 대한 참고 사항

컨테이너 애플리케이션은 최종 사용자가 링크의 원본을 변경하거나 링크를 끊을 때 IOleLink::SetSourceMoniker 를 호출할 수 있습니다. 이렇게 하려면 컨테이너가 MkParseDisplayName 함수를 사용하여 최종 사용자가 입력하는 표시 이름에서 모니커를 만들어야 합니다. 연결된 개체가 구문 분석을 수행하도록 하려면 컨테이너에서 IOleLink::SetSourceMoniker 대신 IOleLink::SetSourceDisplayName을 호출할 수 있습니다.

최종 사용자는 링크의 원본을 변경하거나 링크 대화 상자를 사용하여 링크를 끊습니다. OleUIEditLinks 함수를 사용하여 링크 대화 상자를 표시하는 경우 IOleUILinkContainer 인터페이스를 구현해야 합니다. 대화 상자는 IOleUILinkContainer::SetLinkSourceIOleUILinkContainer::CancelLink의 구현을 호출합니다. 이러한 메서드의 구현에서 IOleLink::SetSourceMoniker를 호출할 수 있습니다.

연결된 개체가 현재 링크 원본에 바인딩된 경우 연결된 개체의 IOleLink::SetSourceMoniker 구현은 모니커를 변경하기 전에 링크를 닫습니다.

구현자에 대한 참고 사항

IOleLink 계약은 연결된 개체가 링크 원본 모니커를 저장하거나 사용하는 방법을 지정하지 않습니다. 제공된 구현은 링크를 만들 때 또는 모니커가 변경될 때 지정된 절대 모니커를 저장합니다. 그런 다음 상대 모니커를 계산하고 저장합니다. 향후 구현에서는 모니커를 다르게 관리하여 더 나은 모니커 추적을 제공할 수 있습니다. 절대 모니커는 링크 원본에 대한 전체 경로를 제공합니다. 연결된 개체는 이 절대 모니커와 복합 문서의 모니커를 사용하여 링크가 포함된 복합 문서를 기준으로 링크 원본을 식별하는 상대 모니커를 계산합니다.

pmkCompoundDoc-RelativePathTo>(pmkAbsolute, ppmkRelative)

링크 원본에 바인딩할 때 연결된 개체는 먼저 상대 모니커를 사용하여 바인딩을 시도합니다. 실패하면 절대 모니커를 바인딩하려고 합니다.

연결된 개체가 상대 또는 절대 모니커를 사용하여 성공적으로 바인딩되면 다른 모니커가 자동으로 업데이트됩니다. 링크된 개체는 링크 원본에 바인딩된 경우 두 모니커를 모두 업데이트하고 IAdviseSink::OnRename 메서드를 통해 이름 바꾸기 알림을 받습니다. 컨테이너 애플리케이션은 IOleLink::SetSourceDisplayName 메서드를 사용하여 링크의 모니커를 변경할 수도 있습니다.

연결된 개체의 IPersistStorage::Save 구현은 상대 모니커와 절대 모니커를 모두 저장합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 oleidl.h

추가 정보

IOleLink

IOleLink::GetSourceMoniker

IOleLink::SetSourceDisplayName

IOleUILinkContainer

OleUIEditLinks