다음을 통해 공유


속성 집합 관리

영구 속성 집합에는 관련 데이터가 속성으로 포함됩니다. 각 속성 집합은 FMTID 및 애플리케이션이 속성 집합에 액세스하여 속성 집합을 식별할 수 있도록 하는 GUID(Globally Unique Identifier)로 식별됩니다. 이 ID를 통해 애플리케이션은 집합에 포함된 속성을 해석합니다.

예를 들어 워드 프로세서의 문자 서식 속성 또는 그리기 프로그램에서 요소의 렌더링 특성은 속성 집합입니다.

COM은 속성 집합을 쉽게 관리할 수 있도록 IPropertySetStorage 인터페이스를 정의합니다. 이 인터페이스의 메서드를 통해 새 속성 집합을 만들거나 기존 속성 집합을 열거나 삭제할 수 있습니다. 또한 열거자를 만들고 IEnumSTATPROPSETSTG 인터페이스에 대한 포인터를 제공하는 메서드를 제공합니다. 개체의 모든 속성 집합에 대한 정보를 제공하는 개체의 STATPROPSETSTG 구조를 열거하기 위해 이 인터페이스의 메서드를 호출할 수 있습니다.

IPropertyStorage의 instance 만들거나 열 때 인터페이스를 여는 스토리지 모드를 지정해야 하므로 IStorage 또는 IStream을 지원하는 개체를 여는 것과 비슷합니다. IStorage의 경우 트랜잭션 모드, 읽기/쓰기 모드 및 공유 모드가 포함됩니다.

IPropertySetStorage::Create를 호출하여 속성 집합을 만들 때 속성 집합이 단순인지 아니면 비심플인지 지정합니다. 간단한 속성 집합에는 크기가 제한되고 Windows NT 4.0 이하의 경우 256KB 이하 또는 Windows 2000, Windows XP 및 Windows Server 2003의 1MB보다 클 수 있는 속성 집합 스트림 내에서 완전히 작성할 수 있는 형식이 포함되어 있습니다. 그러나 속성 집합에 더 많은 양의 정보를 저장해야 하는 경우 속성 집합이 비심플이 되도록 지정할 수 있습니다. 이렇게 하면 스토리지 또는 스트림 개체에 대한 포인터만 지정하는 하나 이상의 형식을 사용할 수 있습니다. 이러한 형식은 VT_STREAM, VT_STREAMED OBJECT, VT_STORAGE 및 VT_STORED_OBJECT.

이러한 속성에 저장된 데이터는 Windows NT 4.0 이전의 256KB 속성 집합 크기 제한 또는 Windows 2000, Windows XP 및 Windows Server 2003의 1MB 제한에 계산되지 않습니다. 그러나 속성에 대한 데이터(예: 이름)가 적용됩니다. 또한 트랜잭션된 업데이트가 필요한 경우 속성 집합은 비임플이어야 합니다. 물론 포인터가 있는 스트림 또는 스토리지 개체를 열어야 하므로 이러한 형식을 열면 성능이 저하됩니다.

애플리케이션에서 복합 파일을 사용하는 경우 COM 복합 파일 스토리지 개체에 구현되는 이러한 인터페이스의 COM 제공 구현을 사용할 수 있습니다.

각 속성 집합은 속성 관리에 설명된 대로 주로 논리적으로 연결된 속성 그룹으로 구성 됩니다.

COM의 속성 집합에 대한 자세한 내용은 다음을 참조하세요.