IShellItemArray::GetPropertyStore 메서드(shobjidl_core.h)

속성 저장소를 가져옵니다.

구문

HRESULT GetPropertyStore(
  [in]  GETPROPERTYSTOREFLAGS flags,
  [in]  REFIID                riid,
  [out] void                  **ppv
);

매개 변수

[in] flags

형식: GETPROPERTYSTOREFLAGS

GETPROPERTYSTOREFLAGS 상수 중 하나입니다.

[in] riid

형식: REFIID

검색할 개체 형식의 IID입니다.

[out] ppv

형식: void**

이 메서드가 반환되면 riid에서 요청된 인터페이스 포인터가 포함됩니다. 일반적으로 IPropertyStore 또는 IPropertyStoreCapabilities입니다.

반환 값

형식: HRESULT

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 메서드는 셸 항목 배열의 모든 항목에서 수집된 속성을 집계하는 읽기 전용 속성 저장소를 가져오는 데 사용됩니다.

셸 항목 배열에 둘 이상의 항목이 있는 경우 결과 속성 저장소는 각 속성에 의해 결정된 규칙 집합에 따라 각 항목의 값을 집계합니다. 속성 저장소에서 읽은 값은 CoerceToCanonicalValue에서 설명한 대로 집계 전에 정식 형식으로 강제 변환됩니다. IPropertyStore::GetValue 호출의 출력은 다음과 같이 계산됩니다.

  • 단일 값 속성은 속성 설명 스키마의 집계 형식 문자열에 지정된 규칙을 따릅니다.
    • 집계 형식이 "DateRange"이고 속성 형식이 filetime이면 VT_VECTOR | 두 값의 VT_FILETIME 또는 값이 동일한 경우 VT_FILETIME 값입니다.
    • 집계 형식이 "First"이면 비어 있지 않은 첫 번째 값을 반환합니다.
    • 집계 형식이 "Sum"이면 합계를 반환합니다.
    • 집계 형식이 "Average"이면 비어 있지 않은 모든 값의 평균을 반환합니다.
    • 집계 형식이 "Minimum"이면 최소값을 반환합니다.
    • 집계 형식이 "Union"이고 속성 형식이 문자열이면 VT_VECTOR | 값의 합을 포함하는 VT_LPWSTR. 값의 순서는 지정되지 않습니다.
    • 집계 형식이 지정되지 않거나 호환되지 않거나 "Default"인 경우 배열의 모든 항목에 대해 동일한 경우 단일 값을 반환하거나 일부 항목 간에 값이 다르다는 것을 나타내는 데 사용되는 특수 값을 반환합니다. 특수 값은 VT_VECTOR | "다중" 및 "값"의 두 문자열을 포함하는 VT_LPWSTR. 호출 애플리케이션은 VT_VECTOR 확인하여 이 특수 값에 대해 검사 합니다. | GetTypeFlags가 속성이 단일 값임을 나타내는 경우 VT_LPWSTR.
  • 다중값 문자열 속성은 해당 문자열의 교집합을 반환합니다. 순서가 지정되지 않았습니다.
IsPropertyWritable에 대한 호출은 모든 항목에 IPropertyStoreCapabilities를 구현하는 속성 처리기가 있고 모든 속성 저장소가 속성 작성을 지원하지 않음을 나타내는 경우에만 S_FALSE 반환합니다.

호출 애플리케이션은 개별 셸 항목 및 해당 속성 저장소에 직접 액세스하여 다른 집계 동작을 수행할 수 있습니다. IPropertyStore::GetCount, IPropertyStore::GetAtGetPropertyStore를 참조하세요.

셸 항목 배열에 대한 쓰기는 IFileOperation API를 통해 지원됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shobjidl_core.h(Shobjidl.h 포함)