다음을 통해 공유


데이터 형식 및 미디어 전송

Windows를 포함한 대부분의 플랫폼은 클립보드라는 함수 집합을 기반으로 애플리케이션 간에 데이터를 전송하기 위한 표준 프로토콜을 정의합니다. 이러한 함수를 사용하는 애플리케이션은 네이티브 데이터 형식이 크게 다르더라도 데이터를 공유할 수 있습니다. 일반적으로 이러한 클립보드에는 COM이 극복한 두 가지 중요한 단점이 있습니다.

첫째, 데이터 설명은 Windows의 단일 16비트 클립보드 형식 식별자와 같은 형식 식별자만 사용합니다. 즉, 클립보드는 데이터의 구조, 즉 비트 순서만 설명할 수 있습니다. "비트맵이 있음" "또는 텍스트가 있음"을 보고할 수 있지만 데이터가 구성되는 대상 디바이스, 데이터가 제공할 수 있는 보기 또는 측면 또는 전송에 가장 적합한 스토리지 미디어를 지정할 수는 없습니다. 예를 들어 "전역 메모리에 저장되고 화면이나 프린터에서 프레젠테이션 형식이 지정된 텍스트 문자열이 있습니다." 또는 "100dpi dot-matrix 프린터에 대해 렌더링되고 디스크 파일로 저장된 축소판 그림 스케치 비트맵이 있습니다."라고 보고할 수 없습니다.

둘째, 클립보드를 사용하는 모든 데이터 전송은 일반적으로 전역 메모리를 통해 발생합니다. 전역 메모리를 사용하는 것은 소량의 데이터에 대해 합리적으로 효율적이지만 20MB 멀티미디어 개체와 같은 대량의 경우 매우 비효율적입니다. 디스크의 가상 메모리로 상당한 교환이 필요한 큰 데이터 개체의 경우 전역 메모리가 느립니다. 교환되는 데이터가 디스크에 주로 상주하는 경우 가상 메모리 병목 상태를 강제로 적용하는 것은 매우 비효율적입니다. 더 나은 방법은 전역 메모리를 완전히 건너뛰고 데이터를 디스크로 직접 전송하는 것입니다.

이러한 문제를 완화하기 위해 COM은 FORMATETCSTGMEDIUM이라는 두 가지 데이터 구조를 제공합니다. 자세한 내용은 아래 항목을 참조하세요.

데이터 전송