속성 및 속성 집합

Automation 및 Microsoft ActiveX Controls에서 제공하는 런타임 속성의 종류는 중요하지만 파일 시스템에 영구적으로 저장된 개체로 정보를 저장해야 하는 경우를 직접 해결하지는 않습니다. 이러한 엔터티에는 파일(구조적, 복합 등), 디렉터리 및 요약 카탈로그가 포함될 수 있습니다. COM은 이러한 영구 속성에 대한 표준 직렬화된 형식과 속성 집합 및 해당 속성을 만들고 조작할 수 있는 인터페이스 및 함수 집합을 모두 제공합니다.

영구 속성은 집합으로 저장되며 하나 이상의 집합이 파일 시스템 엔터티와 연결될 수 있습니다. 이러한 영구 속성 집합은 세분화된 값의 컬렉션으로 표현되는 데 적합한 데이터를 저장하는 데 사용됩니다. 대용량 데이터 베이스로 사용할 수 없습니다. 시스템의 개체에 대한 요약 정보를 저장하는 데 사용할 수 있으며, 해당 속성 집합을 해석하는 방법을 이해하는 다른 개체에서 액세스할 수 있습니다.

이전 버전의 COM은 속성 및 사용량과 관련하여 거의 지정하지 않았지만 개발자가 IStorage instance 속성 및 속성 집합을 저장할 수 있는 직렬화된 형식을 정의했습니다. 문서에 대한 요약 정보에 사용되는 단일 속성 집합의 속성 식별자 및 의미 체계도 정의되었습니다. 당시에는 해당 구조를 데이터 스트림으로 직접 만들고 조작해야 했습니다. 구조적 스토리지 직렬화된 속성 집합 형식을 참조하세요.

그러나 이제 COM은 속성 집합을 관리하는 두 가지 기본 인터페이스를 정의합니다.

이러한 인터페이스가 IStorage 인터페이스(예: 복합 파일)를 지원하는 개체에서 구현될 때 직렬화된 형식을 직접 처리할 필요가 없습니다. IPropertySetStorageIPropertyStorage를 통해 속성을 작성하면 IStorage 메서드를 통해 볼 수 있듯이 COM 속성 집합 형식을 정확히 준수하는 데이터가 만들어집니다. 반대의 경우도 마찬가지입니다. IStorage 를 사용하여 COM 속성 집합 형식에 작성된 속성은 IPropertySetStorageIPropertyStorage 를 통해 표시됩니다( IStream 에 쓸 것으로 예상할 수 없고 IPropertyStorage 를 통해 속성을 즉시 사용할 수 있거나 그 반대의 경우도 마찬가지임).

IPropertySetStorage 인터페이스는 속성 집합을 만들고 관리하는 메서드를 정의합니다. IPropertyStorage 인터페이스는 속성 집합 내의 속성을 직접 조작합니다. 애플리케이션 개발자는 이러한 인터페이스의 메서드를 호출하여 지정된 파일 시스템 엔터티에 적합한 속성 집합을 관리할 수 있습니다. 이러한 인터페이스를 사용하면 끊임없는 검색과 같은 성능 병목 현상이 발생할 수 있는 각 애플리케이션에서 구현을 사용하는 대신 속성에 대해 하나의 조정된 읽기 및 쓰기 구현을 제공합니다. 인터페이스를 구현하여 성능을 향상시킬 수 있으므로 보다 효율적인 캐싱과 같이 속성을 더 빠르게 읽고 쓸 수 있습니다. 또한 IPropertyStorageIPropertySetStorage 를 사용하면 IStorage를 지원하지 않는 엔터티에서 속성을 조작할 수 있습니다. 일반적으로 대부분의 애플리케이션에서는 그렇지 않습니다.

이 섹션에서는 다음 항목을 다룹니다.

COM의 속성 집합 구현

속성 집합 고려 사항

속성 관리

속성 집합 관리

속성 집합 저장

성능 특성