복합 문서

OLE 복합 문서를 사용하면 단일 애플리케이션 내에서 작업하는 사용자가 다양한 형식으로 작성되고 여러 원본에서 파생된 데이터를 조작할 수 있습니다. 예를 들어 사용자는 두 번째 애플리케이션에서 만든 그래프와 세 번째 애플리케이션에서 만든 사운드 개체를 워드 프로세싱 문서에 삽입할 수 있습니다. 그래프를 활성화하면 두 번째 애플리케이션이 사용자 인터페이스 또는 개체를 편집하는 데 필요한 도구가 포함된 부분 이상을 로드합니다. 소리 개체를 활성화하면 세 번째 애플리케이션이 재생됩니다. 두 경우 모두 사용자는 단일 문서의 컨텍스트 내에서 외부 원본의 데이터를 조작할 수 있습니다.

OLE 복합 문서 기술은 COM, 구조적 스토리지 및 균일한 데이터 전송으로 구성된 기초에 달려 있습니다. 아래에 요약된 것처럼 이러한 각 핵심 기술은 OLE 복합 문서에서 중요한 역할을 합니다.

Com

복합 문서 개체는 기본적으로 기존 문서에 포함되거나 연결될 수 있는 COM 개체입니다. COM 개체로서 복합 문서 개체는 IUnknown 인터페이스를 노출하며, 이를 통해 클라이언트는 복합 문서 개체에 고유한 특수 기능을 제공하는 IOleObject, IOleLinkIViewObject2와 같은 여러 인터페이스를 포함하여 다른 인터페이스에 대한 포인터를 가져올 수 있습니다.

구조적 스토리지

복합 문서 개체는 자체 스토리지를 관리하려면 IPersistStorage 또는 선택적으로 IPersistStream 인터페이스를 구현해야 합니다. 복합 문서를 만드는 데 사용되는 컨테이너는 개체가 데이터를 저장하고 검색하는 IStorage 인터페이스를 제공해야 합니다. 컨테이너는 거의 항상 OLE의 복합 파일 구현에서 가져온 IStorage 인스턴스를 제공합니다. 또한 컨테이너는 개체의 IPersistStorage 및/또는 IPersistStream 인터페이스를 사용해야 합니다.

균일한 데이터 전송

포함된 개체 및 연결된 개체가 표준 Microsoft Windows 클립보드 형식이 아닌 특수 OLE 클립보드 형식을 사용하여 전송된 데이터로 시작하므로 복합 문서를 지원하는 애플리케이션은 IDataObject 를 구현해야 합니다. 즉, 데이터를 포함되거나 연결된 개체로 서식을 지정하는 것은 OLE의 균일한 데이터 전송 모델에서 제공하는 옵션 중 하나일 뿐입니다.

OLE의 복합 문서 기술은 소프트웨어 개발자와 사용자 모두에게 혜택을 줍니다. 소프트웨어 개발자는 생각할 수 있는 모든 기능을 단일 애플리케이션으로 벼락치기해야 한다고 느끼는 대신, 이제 다른 애플리케이션에 의존하여 추가 기능을 제공하는 더 작고 집중적인 애플리케이션을 개발할 수 있습니다. 소프트웨어 개발자가 핵심 기능 이외의 기능을 애플리케이션에 제공하기로 결정한 경우 개발자는 이러한 추가 서비스를 별도의 DLL로 구현할 수 있으며, 이 서비스는 서비스가 필요할 때만 메모리에 로드됩니다. 사용자는 필요에 따라 혼합하고 일치시킬 수 있는 더 작고 더 빠르고 지원되는 소프트웨어를 통해 단일 master 문서 내에서 필요한 모든 구성 요소를 조작할 수 있습니다.

자세한 내용은 아래 항목을 참조하세요.

데이터 전송

구조적 저장소