次の方法で共有


IEnumSTATPROPSETSTG-Compound ファイルの実装

IEnumSTATPROPSETSTG インターフェイスの複合ファイル実装は、統計プロパティ データを含む STATPROPSETSTG 構造体の配列を列挙するために使用されます。 IPropertySetStorage 実装は統計データを管理し、現在の複合ファイル ストレージ オブジェクトに関連付けられています。

使用するタイミング

IEnumSTATPROPSETSTG のメソッドを呼び出して STATPROPSETSTG構造体列挙します。各構造体は、複合ファイル ストレージ オブジェクトに関連付けられているプロパティ セットの 1 つに関するデータを提供します。

備考

IEnumSTATPROPSETSTG::Next

STATPROPSETSTG構造体の次の 1 つ以上のを取得します (数値は、celt パラメーターによって指定されます)。 STATPROPSETSTG、IEnumSTATPROPSETSTG::Next の複合ファイル実装の呼び出しによって提供される要素 は、次の規則に従います。

  • IEnumSTATPROPSETSTG::NextSTATPROPSETSTG.fmtid を指定できない場合は、そのメンバーにゼロが書き込まれます。 これは、プロパティ セットに定義済みの名前 (\005SummaryInformation など) が指定されておらず、有効な値ではない場合に発生します。
  • DocumentSummaryInformation プロパティ と UserDefined プロパティ セットは、2 つのプロパティ セット セクションを持つ可能性があるため、特別です。 このプロパティ セットについては、「DocumentSummaryInformation および UserDefined プロパティ セット セクションで説明します。 2 番目のセクションは、User-Defined プロパティと呼ばれます。 各セクションは、一意の形式識別子 (FMTID) で識別されます。 プロパティ セット 列挙するために IPropertySetStorage::Enum を使用する場合、User-Defined プロパティ セットは列挙されません。

手記

IPropertySetStorage::Create使用してプロパティ セットを常に作成する場合、ストレージ名に "Character GUID" が作成されるため、IEnumSTATPROPSETSTG::Next はプロパティ セット [STATPROPSETSTG.fmtid] に対して 0 以外の有効な FMTID を返します。

 

  • STATPROPSETSTG.grfFlags メンバーは、プロパティ セットが ANSI であるかどうかを必ずしも反映しません。 PROPSETFLAG_ANSIが設定されている場合、プロパティ セットは確実に ANSI です。 PROPSETFLAG_ANSIが明確な場合、プロパティ セットは Unicode または Unicode 以外のいずれかになります。これは、開かずに ANSI であるかどうかを判断できないためです。
  • STATPROPSETSTG.grfFlags メンバーは、プロパティ セットが単純であるかどうかを反映するため、PROPSETFLAG_NONSIMPLE フラグの設定は常に有効です。
  • IEnumSTATPROPSETSTG::NextSTATPROPSETSTG.clsid を指定できない場合は、すべてのゼロ (CLSID_NULL) に設定されます。 COM 複合ファイルの実装では、これは、プロパティ セットが単純な場合 (PROPSETFLAG_NONSIMPLE フラグが設定されていない)、または単純でない場合に発生しますが、CLSID が明示的に設定されていません。 非simple プロパティ セットの場合、受信される CLSID は、基になる IStorageによって維持されます。
  • IEnumSTATPROPSETSTG::Nextが時刻フィールド [ctime, mtime, atime] を指定できない場合、サポートされていない各時刻は 0 に設定されます。 COM 複合ファイルの実装では、これらの値の取得は、基になる IStorage 実装から取得することに依存します。

IEnumSTATPROPSETSTG::Skip

celt で指定要素の数をスキップします。 指定した数の要素がスキップされた場合はS_OKを返し、要求された要素数よりも少ない要素がスキップされた場合はS_FALSEを返します。 それ以外の場合は、適切なエラーを返します。

IEnumSTATPROPSETSTG::Reset

カーソルを列挙体の先頭に設定します。 成功した場合はS_OKを返し、それ以外の場合はSTG_E_INVALIDHANDLEを返します。

IEnumSTATPROPSETSTG::Clone

この列挙子の現在の列挙状態をコピーします。