Share via


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

연결된 개체 내에 저장된 모니커를 바인딩하여 링크 원본에 대한 연결을 활성화합니다.

구문

HRESULT BindToSource(
  [in] DWORD    bindflags,
  [in] IBindCtx *pbc
);

매개 변수

[in] bindflags

링크 원본에 바인딩된 마지막 시간과 다른 CLSID가 있는 경우 진행하는 방법을 지정합니다. 이 매개 변수가 0이고 CLSID가 다른 경우 메서드가 실패하고 OLE_E_CLASSDIFF 반환합니다. OLELINKBIND 열거형의 OLELINKBIND_EVENIFCLASSDIFF 값을 지정하고 CLSID가 다른 경우 메서드는 성공적으로 바인딩되고 연결된 개체에 저장된 CLSID를 업데이트합니다.

[in] pbc

이 바인딩 작업에 사용할 바인딩 컨텍스트의 IBindCtx 인터페이스에 대한 포인터입니다. 이 매개 변수는 NULL일 수 있습니다. 바인딩 컨텍스트는 바인딩 프로세스 중에 바인딩된 개체를 캐시하고, 바인딩 컨텍스트를 사용하여 모든 작업에 적용되는 매개 변수를 포함하며, 바인딩 구현이 해당 환경에 대한 정보를 검색해야 하는 수단을 제공합니다. 자세한 내용은 IBindCtx를 참조하세요.

반환 값

이 메서드는 성공에 대한 S_OK 반환합니다. 가능한 다른 반환 값은 다음과 같습니다.

반환 코드 설명
OLE_E_CLASSDIFF
CLSID가 변경되어 링크 원본이 바인딩되지 않았습니다. 이 오류는 bindflags 매개 변수에 OLELINKBIND_EVENIFCLASSDIFF 플래그를 지정하지 않은 경우에만 반환됩니다.
MK_E_NOOBJECT
링크 원본을 찾을 수 없거나(링크 원본의 모니커가 복합인 경우) 복합에서 식별된 일부 중간 개체를 찾을 수 없습니다.
E_UNSPEC
링크의 모니커는 NULL입니다.
 

모니커를 바인딩하려면 CreateBindCtx 함수를 호출해야 할 수 있습니다. 따라서 이 메서드는 CreateBindCtx에서 생성된 오류를 반환할 수 있습니다.

설명

발신자에 대한 참고 사항

일반적으로 컨테이너 애플리케이션은 IOleLink::BindToSource 메서드를 직접 호출할 필요가 없습니다. 링크 원본에 대한 연결을 활성화해야 하는 경우 컨테이너는 일반적으로 IOleObject::D oVerb, IOleObject::Update 또는 IOleLink::Update를 호출합니다. 연결된 개체의 이러한 메서드 구현은 IOleLink::BindToSource를 호출합니다. 컨테이너는 연결된 개체에서 호출할 때 IOleLink::BindToSource를 호출하는 OleRun 함수를 호출할 수도 있습니다.

IOleLink::BindToSource가 간접적으로 호출되는 이전에 나열된 각 예제에서 bindflags 매개 변수는 0으로 설정됩니다. 따라서 링크 소스의 클래스가 연결된 개체가 마지막으로 바인딩된 것과 다른 경우 이러한 호출은 OLE_E_CLASSDIFF 오류와 함께 실패할 수 있습니다. 예를 들어 원래 링크 원본이 최종 사용자가 이후에 Excel 스프레드시트로 변환한 포함된 Lotus 스프레드시트인 경우(형식 변경 대화 상자를 사용하여) 발생할 수 있습니다.

이제 링크 원본에 다른 CLSID가 있더라도 컨테이너를 바인딩하려면 IOleLink::BindToSource 를 직접 호출하고 bindflags 매개 변수에 대한 OLELINKBIND_EVENIFCLASSDIFF 지정할 수 있습니다. 이 호출은 링크 원본에 바인딩되고 링크 개체의 CLSID를 업데이트합니다. 또는 컨테이너가 기존 링크를 삭제하고 OleCreateLink 함수를 사용하여 새 연결된 개체를 만들 수 있습니다.

구현자에 대한 참고 사항

연결된 개체는 바인딩하는 동안 얻은 링크 원본에 대한 인터페이스 포인터를 캐시합니다.

연결된 개체의 IOleLink::BindToSource 구현은 먼저 링크 원본의 상대 모니커로 구성된 복합 문서의 모니커로 구성된 모니커를 사용하여 바인딩을 시도합니다. 성공하면 링크의 절대 모니커를 업데이트합니다. 그렇지 않으면 절대 모니커를 사용하여 바인딩을 시도하며, 성공하면 상대 모니커를 업데이트합니다.

IOleLink::BindToSource가 링크 원본에 바인딩되는 경우 링크 원본이 실행되는 동안 포함된 복합 문서를 활성 상태로 유지하기 위해 복합 문서의 IOleContainer::LockContainer 구현을 호출합니다. 또한 IOleLink::BindToSource 는 링크 원본의 IOleObject::AdviseIDataObject::D Advise 구현을 호출하여 권고 연결을 설정합니다. IOleLink::UnbindSource 구현은 컨테이너의 잠금을 해제하고 권고 연결을 삭제합니다.

요구 사항

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

추가 정보

IDataObject::D Advise

IOleContainer::LockContainer

IOleLink

IOleLink::UnbindSource

IOleLink::Update

IOleObject::Advise

IOleObject::D oVerb

IOleObject::Update

OleRun