Partager via


implémentation de fichier IEnumSTATPROPSETSTG-Compound

L’implémentation de fichier composé de l’interface IEnumSTATPROPSETSTG est utilisée pour énumérer un tableau de structures STATPROPSETSTG qui contiennent des données de propriété statistique. L’implémentation IPropertySetStorage gère les données statistiques et est associée à un objet de stockage de fichiers composés actuel.

Quand l’utiliser

Appelez les méthodes de IEnumSTATPROPSETSTG pour énumérer les structures STATPROPSETSTG , chacune fournissant des données sur l’un des jeux de propriétés associés à l’objet de stockage de fichiers composés.

Notes

IEnumSTATPROPSETSTG::Next

Obtient les structures STATPROPSETSTG suivantes (le nombre est spécifié par le paramètre celt ). Les éléments STATPROPSETSTG fournis par le biais d’un appel à l’implémentation de fichier composé de IEnumSTATPROPSETSTG::Suivant suivent ces règles :

  • Si IEnumSTATPROPSETSTG::Next ne peut pas fournir STATPROPSETSTG.fmtid, les zéros sont écrits dans ce membre. Cela se produit lorsque le jeu de propriétés n’a pas de nom prédéfini (tel que \005SummaryInformation) et n’est pas une valeur légale.
  • Le jeu de propriétés DocumentSummaryInformation et UserDefined est spécial, car il peut avoir deux sections de jeu de propriétés. Ce jeu de propriétés est décrit dans la section Ensembles de propriétés DocumentSummaryInformation et UserDefined. La deuxième section est appelée propriétés User-Defined. Chaque section est identifiée avec un identificateur de format unique (FMTID). Lorsque IPropertySetStorage::Enum est utilisé pour énumérer les jeux de propriétés, le User-Defined jeu de propriétés n’est pas énuméré.

Notes

Si vous créez toujours un jeu de propriétés à l’aide de IPropertySetStorage::Create, alors, parce qu’un « GUID de caractère » est créé pour le nom de stockage, IEnumSTATPROPSETSTG::Next retourne une valeur FMTID valide et différente de zéro pour le jeu de propriétés [STATPROPSETSTG.fmtid].

 

  • Le membre STATPROPSETSTG.grfFlags ne reflète pas nécessairement si le jeu de propriétés est ANSI ou non. Si PROPSETFLAG_ANSI est défini, le jeu de propriétés est certainement ANSI. Si PROPSETFLAG_ANSI est clair, le jeu de propriétés peut être Unicode ou non Unicode, car il n’est pas possible de dire s’il s’agit d’ANSI sans l’ouvrir.
  • Le membre STATPROPSETSTG.grfFlags indique si le jeu de propriétés est simple ou non, de sorte que le paramètre de l’indicateur PROPSETFLAG_NONSIMPLE est toujours valide.
  • Si IEnumSTATPROPSETSTG::Next ne peut pas fournir STATPROPSETSTG.clsid, il est défini sur tous les zéros (CLSID_NULL). Dans l’implémentation du fichier composé COM, cela se produit lorsque le jeu de propriétés est simple (l’indicateur PROPSETFLAG_NONSIMPLE n’est pas défini) ou n’est pas simple, mais que le CLSID n’a pas été défini explicitement. Pour les jeux de propriétés non simples, le CLSID reçu est celui qui est géré par l’IStorage sous-jacent.
  • Si IEnumSTATPROPSETSTG::Next ne peut pas fournir les champs d’heure [ctime, mtime, atime], chaque heure non prise en charge est définie sur zéros. Dans l’implémentation de fichier composé COM, l’obtention de ces valeurs dépend de leur récupération à partir de l’implémentation IStorage sous-jacente.

IEnumSTATPROPSETSTG::Skip

Ignore le nombre d’éléments spécifiés dans celte. Retourne S_OK si le nombre spécifié d’éléments est ignoré, retourne S_FALSE si moins d’éléments que demandés sont ignorés. Dans tous les autres cas, retourne l’erreur appropriée.

IEnumSTATPROPSETSTG::Reset

Définit le curseur sur le début de l’énumération. En cas de réussite, retourne S_OK, sinon, retourne STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG::Clone

Copie l’état d’énumération actuel de cet énumérateur.