IShellItemArray::GetPropertyStore メソッド (shobjidl_core.h)

プロパティ ストアを取得します。

構文

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

パラメーター

[in] flags

型: GETPROPERTYSTOREFLAGS

GETPROPERTYSTOREFLAGS 定数の 1 つ。

[in] riid

型: REFIID

取得するオブジェクト型の IID。

[out] ppv

型: void**

このメソッドが戻るときに、 には riid で要求されたインターフェイス ポインターが含まれます。 これは通常 、IPropertyStore または IPropertyStoreCapabilities です

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

注釈

このメソッドは、シェル項目配列内のすべての項目から収集されたプロパティを集計する読み取り専用プロパティ ストアを取得するために使用されます。

シェル項目配列に複数の項目がある場合、結果のプロパティ ストアは、各プロパティによって決定されるルールのセットに従って各項目の値を集計します。 プロパティ ストアから読み取られた値は、 CoerceToCanonicalValue で説明されているように、集計の前に正規形式に強制変換されます。 IPropertyStore::GetValue の呼び出しからの出力は、次のように計算されます。

  • 単一値プロパティは、プロパティの説明スキーマの 集計型 文字列で指定された規則に従います。
    • 集計の種類が "DateRange" で、プロパティの種類が filetime の場合は、VT_VECTOR |2 つの値のVT_FILETIME。値が同じ場合はVT_FILETIME値です。
    • 集計の種類が "First" の場合は、空でない最初の値を返します。
    • 集計の種類が "Sum" の場合は、合計を返します。
    • 集計の種類が "Average" の場合は、空でないすべての値の平均を返します。
    • 集計の種類が "Minimum" の場合は、最小値を返します。
    • 集計の種類が "Union" で、プロパティの型が文字列の場合、VT_VECTOR |値の和集合を含むVT_LPWSTR。 値の順序が指定されていません。
    • 集計の種類が指定されていない、互換性がない、または "既定" の場合は、配列内のすべての項目で同一の場合は 1 つの値を返すか、値が一部の項目間で異なっていることを示すために使用される特別な値を返します。 特殊な値は VT_VECTOR |VT_LPWSTR"Multiple" と "Values" の 2 つの文字列を含みます。 呼び出し元のアプリケーションでは、VT_VECTOR を確認して、この特別な値をチェックする必要があります。 |GetTypeFlags がプロパティが単一値であることを示す場合にVT_LPWSTRします。
  • 複数値の文字列プロパティは、文字列の交差部分を返します。 順序が指定されていません。
IsPropertyWritable の呼び出しは、すべてのアイテムに IPropertyStoreCapabilities を実装するプロパティ ハンドラーがあり、すべてのプロパティ ストアがプロパティの書き込みをサポートしていない場合にのみ、S_FALSEを返します。

アプリケーションを呼び出すと、個々のシェル項目とそのプロパティ ストアに直接アクセスすることで、他の集計動作を実現できます。 「IPropertyStore::GetCount」、「IPropertyStore::GetAt」、「GetPropertyStore」を参照してください

シェル項目の配列への書き込みは、 IFileOperation API を介してサポートされています。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl_core.h (Shobjidl.h を含む)