다음을 통해 공유


IOleObject::SetMoniker 메서드(oleidl.h)

개체의 컨테이너 모니커, 컨테이너에 상대적인 개체의 자체 모니커 또는 개체의 전체 모니커를 알 수 있습니다.

구문

HRESULT SetMoniker(
  [in] DWORD    dwWhichMoniker,
  [in] IMoniker *pmk
);

매개 변수

[in] dwWhichMoniker

모니커는 pmk로 전달됩니다. 가능한 값은 열거형 OLEWHICHMK에서 가져옵니다.

[in] pmk

모니커를 반환할 위치에 대한 포인터입니다.

반환 값

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

반환 코드 설명
E_FAIL
작업이 실패했습니다.

설명

포함된 개체에 대한 링크를 지원하는 컨테이너는 모니커가 변경될 때 포함된 개체에 알릴 수 있어야 합니다. 그렇지 않으면 연결 클라이언트에서 개체에 바인딩하려는 후속 시도가 실패합니다. IOleObject::SetMoniker 메서드는 컨테이너가 이 정보를 전달하는 한 가지 방법을 제공합니다.

컨테이너는 자체 모니커, 컨테이너에 상대적인 개체의 모니커 또는 개체의 전체 모니커를 전달할 수 있습니다. 실제로 컨테이너가 개체의 전체 모니커 이외의 다른 항목을 전달하는 경우 각 개체는 컨테이너를 다시 호출하여 전체 모니커의 할당을 요청합니다. 이 경우 개체는 실행 중인 개체 테이블에 자신을 등록해야 합니다.

컨테이너에 상대적인 개체의 모니커는 개체의 영구 상태의 일부로 개체 처리기에 의해 저장됩니다. 그러나 컨테이너의 이름을 언제든지 바꿀 수 있으므로 개체 컨테이너의 모니커를 개체 내부에 영구적으로 저장해서는 안 됩니다.

발신자에게 참고 사항

컨테이너의 이름이 변경되면 컨테이너 가 IOleObject::SetMoniker 를 호출하고 컨테이너의 포함된 개체가 현재 또는 잠재적으로 링크 원본으로 사용될 수 있습니다. 컨테이너는 포함된 개체가 이미 모니커를 알고 있기 때문에 연결 컨텍스트에서 주로 SetMoniker를 호출합니다. 연결 컨텍스트에서도 개체가 IOleClientSite::GetMoniker 를 호출하여 새 모니커를 강제로 할당할 수 있으므로 이 메서드를 호출하는 것은 선택 사항입니다.

구현자에 대한 참고 사항

IOleObject::SetMoniker에 대한 호출을 받으면 개체는 실행 중인 개체 테이블에 전체 모니커를 등록하고 IAdviseSink::OnRename 알림을 개체에 대해 존재하는 모든 싱크에 보내야 합니다.

요구 사항

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

추가 정보

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

IOleObject

IOleObject::GetMoniker