Compartir a través de


Implementación de archivos de IEnumSTATPROPSETSTG-Compound

La implementación de archivo compuesto de la interfaz IEnumSTATPROPSETSTG se usa para enumerar una matriz de estructuras STATPROPSETSTG que contienen datos estadísticos de propiedad. La implementación de IPropertySetStorage administra los datos estadísticos y está asociado a un objeto de almacenamiento de archivos compuesto actual.

Casos en los que se debe usar

Llame a los métodos de IEnumSTATPROPSETSTG para enumerar estructuras STATPROPSETSTG , cada una de las cuales proporciona datos sobre uno de los conjuntos de propiedades asociados al objeto de almacenamiento de archivos compuesto.

Observaciones

IEnumSTATPROPSETSTG::Next

Obtiene la siguiente estructura STATPROPSETSTG (el número se especifica mediante el parámetro celt ). Los elementos STATPROPSETSTG proporcionados a través de una llamada a la implementación de archivo compuesto de IEnumSTATPROPSETSTG::Next siguen estas reglas:

  • Si IEnumSTATPROPSETSTG::Next no puede proporcionar STATPROPSETSTG.fmtid, los ceros se escriben en ese miembro. Esto ocurre cuando el conjunto de propiedades no tiene un nombre predefinido (como \005SummaryInformation) y no es un valor legal.
  • El conjunto de propiedades DocumentSummaryInformation y UserDefined es especial, ya que puede tener dos secciones establecidas por propiedades. Este conjunto de propiedades se describe en la sección Conjuntos de propiedades DocumentSummaryInformation y UserDefined. La segunda sección se conoce como propiedades de User-Defined. Cada sección se identifica con un identificador de formato único (FMTID). Cuando se usa IPropertySetStorage::Enum para enumerar conjuntos de propiedades, no se enumerará el conjunto de propiedades User-Defined.

Nota

Si siempre crea un conjunto de propiedades con IPropertySetStorage::Create, porque se crea un "GUID de carácter" para el nombre de almacenamiento, IEnumSTATPROPSETSTG::Next devolverá un FMTID distinto de cero, válido para el conjunto de propiedades [STATPROPSETSTG.fmtid].

 

  • El miembro STATPROPSETSTG.grfFlags no refleja necesariamente si el conjunto de propiedades es ANSI o no. Si se establece PROPSETFLAG_ANSI, el conjunto de propiedades es definitivamente ANSI. Si PROPSETFLAG_ANSI está claro, el conjunto de propiedades podría ser Unicode o no Unicode, ya que no es posible indicar si es ANSI sin abrirlo.
  • El miembro STATPROPSETSTG.grfFlags refleja si el conjunto de propiedades es simple o no, por lo que el valor de la marca PROPSETFLAG_NONSIMPLE siempre es válido.
  • Si IEnumSTATPROPSETSTG::Next no puede proporcionar STATPROPSETSTG.clsid, se establece en todos los ceros (CLSID_NULL). En la implementación del archivo compuesto COM, esto ocurre cuando el conjunto de propiedades es simple (la marca PROPSETFLAG_NONSIMPLE no está establecida) o no es de ejemplo, pero clSID no se estableció explícitamente. En el caso de los conjuntos de propiedades nomples, el CLSID que se recibe es el que mantiene el IStorage subyacente.
  • Si IEnumSTATPROPSETSTG::Next no puede proporcionar los campos de hora [ctime, mtime, atime], cada hora no admitida se establecerá en ceros. En la implementación del archivo compuesto COM, obtener estos valores depende de recuperarlos de la implementación de IStorage subyacente.

IEnumSTATPROPSETSTG::Skip

Omite el número de elementos especificados en celt. Devuelve S_OK si se omite el número especificado de elementos, devuelve S_FALSE si se omiten menos elementos de los solicitados. En cualquier otro caso, devuelve el error adecuado.

IEnumSTATPROPSETSTG::Reset

Establece el cursor al principio de la enumeración. Si se ejecuta correctamente, devuelve S_OK; de lo contrario, devuelve STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG::Clone

Copia el estado de enumeración actual de este enumerador.