Condividi tramite


implementazione di IEnumSTATPROPSETSTG-Compound file

L'implementazione di file composta dell'interfaccia di IEnumSTATPROPSETSTG viene usata per enumerare una matrice di strutture STATPROPSETSTG contenenti dati statistici sulle proprietà. L'implementazione IPropertySetStorage gestisce i dati statistici ed è associata a un oggetto di archiviazione file composto corrente.

Quando usare

Chiamare i metodi di IEnumSTATPROPSETSTG per enumerare strutture STATPROPSETSTG, ognuna delle quali fornisce dati su uno dei set di proprietà associati all'oggetto di archiviazione file composto.

Osservazioni

IEnumSTATPROPSETSTG::Next

Ottiene la struttura diSTATPROPSETSTG successiva o più(il numero viene specificato dal parametro celt). Gli elementi STATPROPSETSTG forniti tramite una chiamata all'implementazione di file composta di IEnumSTATPROPSETSTG::Next seguire queste regole:

  • Se IEnumSTATSETSTG::Next non può fornire STATPROPSETSTG.fmtid, gli zeri vengono scritti in tale membro. Ciò si verifica quando il set di proprietà non ha un nome predefinito (ad esempio \005SummaryInformation) e non è un valore legale.
  • Il set di proprietà DocumentSummaryInformation e UserDefined è speciale, in quanto può avere due sezioni impostate di proprietà. Questo set di proprietà è descritto nella sezione Set di proprietà DocumentSummaryInformation e UserDefined. La seconda sezione viene definita proprietà di User-Defined. Ogni sezione viene identificata con un identificatore di formato univoco (FMTID). Quando si utilizza IPropertySetStorage::Enum per enumerare i set di proprietà, il set di proprietà User-Defined non verrà enumerato.

Nota

Se si crea sempre una proprietà impostata usando IPropertySetStorage::Create, quindi, poiché viene creato un "GUID carattere" per il nome di archiviazione, IEnumSTATSETSTG::Next restituirà un VALORE FMTID diverso da zero per il set di proprietà [STATPROPSETSTG.fmtid].

 

  • Il membro STATPROPSETSTG.grfFlags non riflette necessariamente se il set di proprietà è ANSI o meno. Se PROPSETFLAG_ANSI è impostato, il set di proprietà è sicuramente ANSI. Se PROPSETFLAG_ANSI è chiaro, il set di proprietà potrebbe essere Unicode o non Unicode, perché non è possibile stabilire se è ANSI senza aprirlo.
  • Il membro STATPROPSETSTG.grfFlags riflette se il set di proprietà è semplice o meno, pertanto l'impostazione del flag PROPSETFLAG_NONSIMPLE è sempre valida.
  • Se IEnumSTATSETSTG::Next non può fornire STATPROPSETSTG.clsid, viene impostato su tutti gli zere (CLSID_NULL). Nell'implementazione del file composto COM questo si verifica quando il set di proprietà è semplice (il flag PROPSETFLAG_NONSIMPLE non è impostato) o non è semplice, ma clSID non è stato impostato in modo esplicito. Per i set di proprietà nonsimple, il CLSID ricevuto è quello gestito dal IStorage sottostante.
  • Se IEnumSTATSETSTG::Next non è in grado di fornire i campi ora [ctime, mtime, atime], ogni tempo non supportato verrà impostato su zero. Nell'implementazione del file composto COM, il recupero di questi valori dipende dal recupero dall'implementazione dell'IStorage sottostante.

IEnumSTATPROPSETSTG::Skip

Ignora il numero di elementi specificati in celt. Restituisce S_OK se il numero specificato di elementi viene ignorato, restituisce S_FALSE se vengono ignorati meno elementi di quelli richiesti. In qualsiasi altro caso, restituisce l'errore appropriato.

IEnumSTATPROPSETSTG::Reset

Imposta il cursore sull'inizio dell'enumerazione. Se ha esito positivo, restituisce S_OK, in caso contrario, restituisce STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG::Clone

Copia lo stato di enumerazione corrente di questo enumeratore.