다음을 통해 공유


비동기 및 동기 모니커

표준 동기 OLE 모니커의 클라이언트는 일반적으로 바인딩 중에 사용할 바인딩 컨텍스트뿐만 아니라 모니커에 대한 참조를 만들고 보유합니다. 기존 모니커를 사용하는 데 관련된 구성 요소는 다음 다이어그램에 나와 있습니다.

시스템 제공에 대한 바인딩 컨텍스트 또는 모든 모니커에 연결된 클라이언트를 보여 주는 다이어그램

클라이언트는 일반적으로 CreateFileMoniker, CreateItemMoniker 또는 CreatePointerMoniker와 같은 함수를 호출하거나 OleSaveToStream 및 OleLoadFromStream을 통해 영구 스토리지에 저장할 수 있으므로 표준 모니커 만듭니다. IBindHost::CreateMoniker 메서드를 호출하여 컨테이너 개체에서 모니커를 가져올 수도 있습니다. 클라이언트는 CreateBindCtx 함수를 호출하여 바인딩 컨텍스트를 만든 다음 IMoniker::BindToStorage 또는 IMoniker::BindToObject를 호출하여 바인딩 컨텍스트를 모니커에 전달합니다.

다음 다이어그램에 표시된 것처럼 비동기 모니커의 클라이언트는 바인딩 중에 사용할 모니커 및 바인딩 컨텍스트에 대한 참조를 만들고 보유합니다.

클라이언트 제공, Monker-Provided 및 시스템 제공 간의 연결을 보여 주는 다이어그램

비동기 동작을 가져오기 위해 클라이언트는 bind-상태 콜백 개체에서 IBindStatusCallback 인터페이스를 구현하고 RegisterBindStatusCallback 함수 또는 CreateAsyncBindCtx 함수를 호출하여 이 인터페이스를 바인딩 컨텍스트에 등록합니다. 모니커는 IBindStatusCallback::OnStartBinding 메서드 호출에서 해당 IBinding 인터페이스에 대한 포인터를 전달합니다. 클라이언트는 IBindStatusCallback::GetBindInfo 메서드에 대한 모니커의 호출에서 반환 시 바인딩하려는 방법을 비동기 모니커에 알려줍니다.

비동기 모니커