IPropertySetStorage::Open 메서드(propidl.h)

Open 메서드는 속성 집합 스토리지 개체에 포함된 속성 집합을 엽니다.

구문

HRESULT Open(
  [in]  REFFMTID         rfmtid,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

매개 변수

[in] rfmtid

열 속성 집합의 FMTID(형식 식별자)입니다. 플랫폼 SDK에서 잘 알려진 미리 정의된 FMTID에 대한 자세한 내용은 미리 정의된 속성 집합 형식 식별자를 참조하세요.

[in] grfMode

새로 만든 속성 집합을 열 액세스 모드입니다. 이러한 플래그는 STGM 상수에서 가져옵니다. 이 메서드의 컨텍스트에서 사용할 수 있는 플래그 및 해당 의미는 다음 설명 섹션에 설명되어 있습니다.

[out] ppprstg

요청된 속성 스토리지 하위 개체에 대한 인터페이스 포인터를 수신하는 IPropertyStorage 포인터 변수에 대한 포인터입니다.

반환 값

이 메서드는 다음 외에도 E_UNEXPECTED 표준 반환 값을 지원합니다.

설명

속성 집합을 열 모드는 매개 변수 grfMode에 지정됩니다. 이러한 플래그는 STGM 상수에서 가져온 것이지만, 이 방법의 경우 법적 값과 그 의미는 다음과 같습니다(이러한 플래그 값의 특정 조합만 적법함).

의미
STGM_DIRECT 추가 수준의 트랜잭션 중첩 없이 속성 집합을 엽니다. 이는 기본값입니다(STGM_DIRECT 또는 STGM_TRANSACTED 지정되지 않은 경우 동작).
STGM_TRANSACTED 추가 수준의 트랜잭션 중첩을 사용하여 속성 집합을 엽니다(트랜잭션 이외의 경우 이 속성 집합 스토리지 개체). 트랜잭션 모드는 비심플 속성 집합에만 사용할 수 있습니다. 속성 집합의 변경 내용은 이 속성 집합 스토리지의 트랜잭션에 표시되기 전에 IPropertyStorage::Commit 을 호출하여 커밋해야 합니다.
STGM_READ 읽기 액세스 권한이 있는 속성 집합을 엽니다. 속성 집합 스토리지에 대한 읽기 권한이 필요합니다.
STGM_WRITE 쓰기 액세스 권한이 있는 속성 집합을 엽니다. IPropertyStorage의 모든 구현이 이 모드를 지원하는 것은 아닙니다.
STGM_READWRITE 읽기 및 쓰기 액세스 권한이 있는 속성 집합을 엽니다. 이 플래그는 STGM_READ 및 STGM_WRITE 값의 이진 OR이 아닙니다.
STGM_SHARE_DENY_NONE 이 속성 집합 스토리지에서 설정된 속성의 후속 열기는 읽기 또는 쓰기 액세스가 거부되지 않습니다. (모든 구현에서는 사용할 수 없습니다.)
STGM_SHARE_DENY_READ 이 속성 집합 스토리지에서 설정된 속성의 후속 열기는 읽기 권한이 거부됩니다. 모든 구현에서는 사용할 수 없습니다.
STGM_SHARE_DENY_WRITE 이 속성 집합 스토리지에서 설정된 속성의 후속 열기는 쓰기 액세스가 거부됩니다. 이 값은 일반적으로 여러 사용자가 열어 놓은 개체의 불필요한 복사본을 만들지 못하도록 트랜잭션 모드에서 사용됩니다. 즉, STGM_TRANSACTED 지정되었지만 이 값이 지정되지 않은 경우 후속 개구부가 있는지 여부에 관계없이 스냅샷 수행됩니다. 따라서 이 값을 지정하여 성능을 향상시킬 수 있습니다. 모든 구현에서는 사용할 수 없습니다.
STGM_SHARE_EXCLUSIVE 이 속성 집합 스토리지에서 설정된 속성의 후속 열기는 불가능합니다. 이 값은 STGM_SHARE_DENY_READ 및 STGM_SHARE_DENY_WRITE 요소의 간단한 이진 OR이 아닙니다.
 

이 메서드는 기본 IStorage::OpenStream (단순 속성 집합의 경우) 또는 IStorage::OpenStorage (비심플 속성 집합의 경우)의 제약 조건이 적용됩니다. 단순 및 비심플 속성 집합에 대한 자세한 내용은 속성 집합에 대한 스토리지 및 Stream 개체를 참조하세요. 예를 들어 IPropertySetStorage-Compound 파일 구현을 사용하는 경우 grfMode 매개 변수에서 IPropertySetStorage::Open에 대한 STGM_SHARE_EXCLUSIVE 지정해야 합니다. 반대로 IPropertySetStorage 독립 실행형 구현을 사용하는 경우 IPropertySetStorage::Open 에는 호출자 지정 IStorage에 적용되는 제약 조건이 적용됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 propidl.h(Objbase.h 포함)
라이브러리 Uuid.lib
DLL Ole32.dll

추가 정보

EnumAll 샘플

IPropertySetStorage

IPropertySetStorage::Create

PROPVARIANT

샘플

WriteRead 샘플