포인터 모니커
포인터 모니커 활성 또는 실행 중인 상태에서만 존재할 수 있는 개체를 식별합니다. 이는 수동 또는 활성 상태에 있을 수 있는 개체를 식별하는 다른 모니커 클래스와 다릅니다.
예를 들어 애플리케이션에 영구 표현이 없는 개체가 있다고 가정합니다. 일반적으로 애플리케이션의 클라이언트가 해당 개체에 액세스해야 하는 경우 클라이언트에 개체에 대한 포인터를 전달하기만 하면 됩니다. 그러나 클라이언트에 모니커가 있다고 가정합니다. 개체는 파일 모니커로 식별할 수 없습니다. 다른 개체에 포함되지 않기 때문에 파일이나 항목 모니커에 저장되지 않기 때문입니다.
대신 애플리케이션은 포인터를 내부적으로 포함하는 모니커인 포인터 모니커를 만들어 클라이언트에 전달할 수 있습니다. 클라이언트는 이 모니커를 다른 모니커와 같이 처리할 수 있습니다. 그러나 클라이언트가 포인터 모니커에서 IMoniker::BindToObject 호출하는 경우 모니커 코드는 ROT(실행 중인 개체 테이블)를 확인하거나 스토리지에서 아무것도 로드하지 않습니다. 대신 모니커 코드는 모니커 내에 저장된 포인터에서 QueryInterface 호출합니다.
포인터 모니커를 사용하면 활성 또는 실행 상태에만 존재하는 개체가 모니커 작업에 참여하고 모니커 클라이언트에서 사용할 수 있습니다. 포인터 모니커와 다른 모니커 클래스 간의 중요한 차이점은 포인터 모니커를 영구 스토리지에 저장할 수 없다는 것입니다. 이 경우 IMoniker::Save 메서드를 호출하면 오류가 반환됩니다. 즉, 포인터 모니커가 특수한 상황에서만 유용합니다. 포인터 모니커를 사용해야 하는 경우 CreatePointerMoniker 함수를 사용할 수 있습니다.
관련 항목