IPropertySetStorage-Compound 파일 구현
COM 복합 파일 스토리지 개체 구현IPropertyStorage, 단일 영구 속성 집합을 관리하는 인터페이스 및 영구 속성 집합 그룹을 관리하는 인터페이스인 IPropertySetStorage구현이 포함됩니다.
IPropertySetStorage복합 파일 구현에 대한 포인터를 얻으려면 식별자 IID_IStorage 헤더 정의 이름을 riid 매개 변수로 지정하거나 StgCreateStorageEx 또는 StgOpenStorageEx 함수를 사용합니다. 두 경우 모두 STGFMT_STORAGE stgfmt 매개 변수로 지정합니다. (STGFMT_ANY StgOpenStorageEx경우에 지정할 수도 있습니다.) 또한 IID(인터페이스 식별자) IID_IPropertySetStorage 헤더 정의 이름을 riid 매개 변수로 지정합니다. 두 함수 모두 IPropertySetStorage 인터페이스를 개체에 대한 포인터를 제공합니다.
복합 파일 구현에 대한 포인터를 가져오는 또 다른 방법은 식별자 IID_IStorage 헤더 정의 이름을 riid 매개 변수로 지정하거나 StgCreateDocfile 또는 StgOpenStorage 함수를 사용하는 것입니다. 그러면 개체 IStorage 인터페이스에 대한 포인터가 표시됩니다. 영구 속성 집합을 처리하려면 IPropertySetStorage 인터페이스에 대해 IStorage::QueryInterface 호출합니다.
IPropertySetStorage를 사용하는 경우
IPropertySetStorage 메서드를 호출하여 현재 복합 파일 속성 집합 스토리지에서 속성 집합을 만들거나 열거나 삭제합니다. 스토리지의 속성 집합을 열거하는 데 사용할 수 있는 열거자에 대한 포인터를 제공하는 IPropertySetStorage::Enum메서드도 있습니다.
방법
현재 복합 파일 스토리지에 새 속성 집합을 만들고 반환 시 IPropertyStorage 복합 파일 구현에 대한 인터페이스 포인터를 제공합니다. 이 구현에서 속성 집합은 PROPSETFLAG_NONSIMPLE 지정된 경우에만 트랜잭션될 수 있습니다. 이 메서드를 사용하려면 grfMode 매개 변수에 지정된 공유 모드를 STGM_SHARE_EXCLUSIVE 액세스 모드가 STGM_READ 또는 STGM_READWRITE(STGM_WRITE 모드는 지원되지 않음)해야 합니다.
현재 속성 스토리지에서 기존 속성 집합을 엽니다. 반환할 때 IPropertyStorage복합 파일 구현에 대한 인터페이스 포인터를 제공합니다. 이 메서드를 사용하려면 grfMode 매개 변수에 지정된 공유 모드를 STGM_SHARE_EXCLUSIVE 액세스 모드가 STGM_READ 또는 STGM_READWRITE(STGM_WRITE 지원되지 않음)해야 합니다.
이 속성 스토리지에서 설정된 속성을 삭제합니다.
STATPROPSETSTG 구조를 열거하는 데 사용되는 개체를 만듭니다. 각 STATPROPSETSTG 구조체는 단일 속성 집합에 대한 데이터를 제공합니다.
발언
Windows 2000부터 IPropertySetStorage 복합 파일 구현은 간단한 모드를 지원합니다. 단순 모드는 StgCreateStorageEx 및 StgOpenStorageEx 함수에 대한 STGM_SIMPLE 플래그를 지정하여 표시됩니다. 복합 파일을 단순 모드로 열면 연결된 IPropertySetStorage 구현이 다음과 같이 제한됩니다.
- 단순 속성 집합만 만들 수 있습니다. 즉, IPropertySetStorage::Create 메서드에 대한 grfFlags 매개 변수에 PROPSETFLAG_NONSIMPLE 값을 지정하면 오류가 발생합니다.
- STGM_SIMPLE 사용하여 StgCreateStorageEx 사용하여 복합 파일을 만들고 IPropertySetStorage 인터페이스를 쿼리한 후에는 IPropertySetStorage::Create 한 번만 호출할 수 있습니다. 그런 다음 Create 메서드를 다시 호출하기 전에 IPropertyStorage 인터페이스를 해제해야 합니다. 단순 모드에 대한 자세한 내용은 STGM 상수참조하세요.
- StgCreateStorageEx 사용하여 스토리지 개체를 만든 후에는 IPropertySetStorage::Open 메서드를 사용하여 속성 집합을 열 수 없습니다. 대신 IPropertySetStorage 쿼리하고 Open 메서드를 호출하기 전에 StgOpenStorageEx 사용해야 합니다.
- STGM_SIMPLE 플래그를 사용하여 StgOpenStorageEx 복합 파일을 열고 IPropertySetStorage 인터페이스에 대한 쿼리를 수행한 후 IPropertySetStorage::Open사용하여 한 번에 하나의 속성 집합을 열 수 있습니다. 또한 속성 집합이 열려 있는 동안 속성 집합의 총 크기를 늘리지 못할 수도 있습니다.
단순 속성 집합은 거래할 수 없습니다. grfFlags 매개 변수에 PROPSETFLAG_NONSIMPLE 지정하지 않는 한 Create 및 Open 메서드의 grfmode 매개 변수에 STGM_TRANSACTED 지정할 수 없습니다. 단순 및 비 단순 속성 집합은 위에서 설명한 단순 모드 속성 집합과 관련이 없습니다. 단순 및 비임플 속성 집합에 대한 자세한 내용은 속성 집합 대한Storage 및 Stream 개체를 참조하세요.
메모
DocumentSummaryInformation 및 사용자 정의 속성 집합은 두 개의 속성 집합 섹션이 있을 수 있다는 측면에서 고유합니다. 자세한 내용은 DocumentSummaryInformation 및 사용자 정의 속성 집합참조하세요.
관련 항목