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é actuel.

Quand utiliser

Appelez les méthodes de IEnumSTATPROPSETSTG pour énumérer 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é.

Remarques

IEnumSTATPROPSETSTG ::Next

Obtient la ou plusieurs 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 ::Next suivez 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 (par exemple\ 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. Cet ensemble de propriétés est décrit dans la section Les 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 jeu de propriétés User-Defined ne sera pas énuméré.

Note

Si vous créez toujours un jeu de propriétés à l’aide de IPropertySetStorage ::Create, car un « GUID de caractère » est créé pour le nom de stockage, IEnumSTATPROPSETSTG ::Next renvoie un FMTID non différent de zéro, valide 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, l’ensemble 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 savoir 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. Par conséquent, le paramètre de l’indicateur de PROPSETFLAG_NONSIMPLE est toujours valide.
  • Si IEnumSTATPROPSETSTG ::Next ne peut pas fournir STATPROPSETSTG.clsid, il est défini sur toutes 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 le IStorage sous-jacent.
  • Si IEnumSTATPROPSETSTG ::Next ne peut pas fournir les champs de temps [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 celt. 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 tout autre cas, retourne l’erreur appropriée.

IEnumSTATPROPSETSTG ::Reset

Définit le curseur au début de l’énumération. Si elle réussit, retourne S_OK, sinon, retourne STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG ::Clone

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