IPropertyStorageIPropertyStorage::ReadMultiple()

概要

ReadMultiple() メソッドは、現在のプロパティセットから、指定されたプロパティを読み込みます。

C++


HRESULT ReadMultiple(
    [in]   ULONG cpspec,
    [in]   const PROPSPEC rgpspec[],
    [out]  PROPVARIANT rgpropvar[1]
);
  

C#


  

メンバ

cpspec

rgpspec 配列で指定したプロパティ数を表す数量。 このパラメータの値は、0 に設定することができますが、rgpspec の値にかかわらず、読み込まれるプロパティが無くなるためメソッドの目的は果たせません。

rgpspec

読み込むプロパティを指定する PROPSPEC 構造体の配列。 プロパティは、プロパティID または 追加の名前文字列のどちらでも指定することができます。 プロパティ配列の並び順を指定することは重要ではありません。 この配列は重複したプロパティが含まれていてもよく、結果として、シンプルプロパティに重複したプロパティの値が返されます。 非シンプルプロパティでは、二回目に開くことを試みた結果、アクセス拒否を返します。 この配列には、プロパティID と 文字列 ID を混在して含むことができます。

rgpropvar

関数が返ると、呼び出し元が割り当てた PROPVARIANT 配列には、rgpspec に対応付けられた要素として指定されたプロパティの値が含まれます。 この配列は、少なくとも cpspec パラメータで指定した数の PROPVARIANT 構造体を格納するのに十分な大きさでなければなりません。 cpspec パラメータは、配列のプロパティセットの数量を指定します。 呼び出し元が、 PROPVARIANT 構造体の値を、特定の順序で初期化することは必須ではありません。 しかしながら、この実装はすべてのメンバを正しく埋めて返します。 これらが適正ではない値の場合、この実装は PROPVARIANT 構造体の vt メンバ を VT_EMPTY にセットしなくてはなりません。

return

このメソッドは、標準的な戻り値である E_UNEXPECTED と、以下に記載のものをサポートします。

S_OK
成功しました。要求された複数のプロパティは取得されました。
S_FALSE
すべてのプロパティ名または ID は、文法的には有効ですが、プロパティセット内に存在しませんでした。 従って、プロパティは取得されず、 PROPVARIANT 構造体は、VT_EMPTY に設定されました。
STG_E_ACCESSDENIED
プロパティへの要求されたアクセスは拒否された、または、一つまたは複数のプロパティがストリームまたはストレージの場合、サブストレージまたはサブストレージへのアクセスが拒否されました。 このストレージまたはストリームは、すでに開かれています。プロパティは取得されませんでした。
STG_E_INSUFFICIENTMEMORY
この操作を実行するためのメモリが不足しています。 プロパティは取得されませんでした。 Windows NT 4.0 より前のシステムが動作しているコンピュータでは、このサイズは 256 KB が限界です。 Windows 2000Windows XPWindows Server 2003 が動作しているコンピュータでは、OLE プロパティセットとして 1 MB が限界です。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
プロパティの1つが、プロパティ型が IPropertyStorage 実装でサポートされていないため読み込めませんでした。
STG_E_INVALIDPARAMETER
パラメータの少なくとも 1 つが無効です。たとえば、PROPSPEC 構造体の 1 つに ulKind メンバの不正な値が含まれている場合などです。 ulKind メンバが、プロパティセット値の代わりに名前文字列として設定されている場合、いくつかのプロパティは取得できません。
STG_E_INVALIDPOINTER
渡されたポインタの少なくとも 1 つが無効です。プロパティは取得できませんでした。
HRESULT_FROM_WIN32(ERROR_NO_UNICODE_TRANSLATION)
ANSI から Unicode 文字列への翻訳は失敗しました。

詳細

この関数は、ファイルシステムエラーや HRESULT データ型でラップされた Win32 エラーも返します。 詳細については、Error Handling Strategies を参照してください。

詳細については、Property Storage Considerations を参照してください。

必要環境

クライアント Windows 2000 Professional [desktop apps | Windows Store apps]
サーバー Windows 2000 Server [desktop apps | Windows Store apps]
ヘッダ Propidl.h (include Objbase.h)
LIB Uuid.lib
DLL Ole32.dll
IID IID_IPropertyStorage = 00000138-0000-0000-C000-000000000046

参照

公式の情報は aa379975 を参照して下さい。