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