PROPSETFLAG 상수

PROPSETFLAG 상수는 속성 집합의 특성을 정의합니다. 다음 표에 나열된 값은 IPropertySetStorage 메서드, StgCreatePropStg 함수 및 StgOpenPropStg 함수의 grfFlags 매개 변수에 사용됩니다.

상수/값 설명
PROPSETFLAG_DEFAULT
0
지정되지 않은 상태로 두면 기본적으로 단순 속성 값만 속성 집합에 기록될 수 있습니다. 단순 속성 값을 사용하면 IPropertySetStorage의 복합 파일 및 독립 실행형 구현에서 속성 집합이 트랜잭션되지 않습니다. 이 목적을 위해 e가 아닌 속성 값을 사용해야 합니다.
PROPSETFLAG_NONSIMPLE
1
지정한 경우 비심플 속성 값을 속성 집합에 쓸 수 있으며 속성 집합은 스토리지 개체에 저장됩니다. 단순하지 않은 속성 값에는 VARTYPE이 VT_STORAGE, VT_STREAM, VT_STORED_OBJECT 또는 VT_STREAMED_OBJECT 포함됩니다. 이 플래그를 지정하지 않으면 단순하지 않은 형식을 속성 집합에 쓸 수 없습니다. 복합 파일 및 독립 실행형 구현에서 속성 집합은 PROPSETFLAG_NONSIMPLE 지정된 경우에만 트랜잭션될 수 있습니다.
PROPSETFLAG_ANSI
2
지정된 경우 명시적으로 유니코드가 아닌 속성 집합의 모든 문자열 값, 즉 VT_LPWSTR 이외의 문자열 값은 현재 시스템 ANSI 코드 페이지와 함께 저장됩니다. 자세한 내용은 GetACP를 참조하세요. 이 값은 사용하지 않는 것이 좋습니다. 자세한 내용은 설명 부분을 참조하세요.
이 값이 없으면 새 속성 집합의 문자열 값이 유니코드에 저장됩니다. 이 값이 제공하는 제어 수준은 속성 관련 인터페이스를 사용하는 클라이언트가 ANSI 코드 페이지에 있을 수 있는 OLE2 요약 정보와 같은 표준 속성 집합과 상호 운용할 수 있도록 하는 데 필요합니다.
PROPSETFLAG_UNBUFFERED
4
StgCreatePropStgStgOpenPropStg 함수에서만 사용됩니다. 즉, 속성 집합 인터페이스의 독립 실행형 구현에서 이러한 함수에 지정된 경우 속성 집합에 대한 변경 내용은 버퍼링되지 않습니다. 대신 변경 내용은 항상 속성 집합에 직접 기록됩니다. 속성 집합 IPropertyStorage 메서드를 호출하면 변경됩니다. 그러나 기본적으로 변경 내용은 내부 속성 집합 캐시에서 버퍼링되며 이후에 IPropertyStorage::Commit 메서드가 호출될 때 속성 집합에 기록됩니다.
속성 집합 내부 버퍼는 속성 집합을 변경할 때마다 자동으로 플러시되므로 PROPSETFLAG_UNBUFFERED 설정하면 성능이 저하됩니다. 그러나 변경 내용을 직접 작성하면 조정 문제가 방지됩니다. 예를 들어 스토리지 개체가 트랜잭션 모드에서 열리고 속성 집합이 버퍼링되는 경우입니다. 그런 다음 스토리지 개체에서 IStorage::Commit 메서드를 호출하는 경우 속성 집합 변경 내용은 아직 플러시되지 않은 버퍼에 있으므로 트랜잭션의 일부로 선택되지 않습니다. IStorage::Commit을 호출하기 전에 IPropertyStorage::Commit을 호출하여 스토리지에 변경 내용을 커밋하기 전에 속성 집합 버퍼를 플러시해야 합니다. 두 번의 호출 대신 변경 내용이 항상 속성 집합에 직접 기록되고 속성 집합의 내부 캐시에서 버퍼링되지 않도록 PROPSETFLAG_UNBUFFERED 설정할 수 있습니다. 그런 다음 트랜잭션된 스토리지가 커밋될 때 변경 내용이 선택됩니다.
PROPSETFLAG_CASE_SENSITIVE
8
지정된 경우 속성 이름은 대/소문자를 구분합니다. 대/소문자를 구분하는 속성 이름은 버전 1 속성 집합 serialization 형식에서만 가능합니다. 자세한 내용은 속성 집합 serialization을 참조하세요.

설명

이러한 값은 속성 집합을 만들고 여는 방법을 결정하는 비트 연산을 사용하여 설정하고 확인할 수 있습니다. 속성 집합은 IPropertySetStorage::Create 메서드 또는 StgCreatePropStg 함수를 사용하여 만들어집니다. IPropertySetStorage::Open 메서드 또는 StgOpenPropStg 함수를 사용하여 열립니다.

grfFlags 매개 변수에서 PROPSETFLAG_ANSI 플래그를 설정하지 않고 속성 집합을 유니코드로 만드는 것이 좋습니다. 또한 VT_LPSTR 값을 사용하지 말고 대신 VT_LPWSTR 값을 사용하는 것이 좋습니다. 속성 집합 코드 페이지가 유니코드인 경우 VT_LPSTR 문자열 값은 저장될 때 유니코드로 변환되고 검색될 때 다시 멀티바이트 문자열 값으로 변환됩니다. 속성 집합의 코드 페이지가 유니코드가 아닌 경우 현재 시스템 ANSI 코드 페이지를 사용하여 속성 이름, VT_BSTR 문자열 및 비심플 속성 값이 저장될 때 멀티바이트 문자열로 변환되고 검색될 때 유니코드로 다시 변환됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버
Windows 2000 Server[데스크톱 앱만]
헤더
Propidl.h

추가 정보

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg