Condividi tramite


implementazione del file IEnumSTATPROPSETSTG-Compound

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

Utilizzo

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

Commenti

IEnumSTATPROPSETSTG::Next

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

  • Se IEnumSTATPROPSETSTG::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à 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 un set di proprietà usando IPropertySetStorage::Create, poiché viene creato un "GUID carattere" per il nome di archiviazione, IEnumSTATPROPSETSTG::Next restituirà un valore diverso da zero, valido FMTID 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 IEnumSTATPROPSETSTG::Next non può fornire STATPROPSETSTG.clsid, viene impostato su tutti gli zere (CLSID_NULL). Nell'implementazione del file composto COM, ciò si verifica quando il set di proprietà è semplice (il flag di PROPSETFLAG_NONSIMPLE non è impostato) o non è semplice, ma il CLSID non è stato impostato in modo esplicito. Per i set di proprietà nonsimple, il CLSID ricevuto è quello gestito dall'IStorage sottostante.
  • Se IEnumSTATPROPSETSTG::Next non è in grado di specificare i campi ora [ctime, mtime, atime], ogni ora non supportata verrà impostata su zero. Nell'implementazione del file composto COM, il recupero di questi valori dipende dal recupero dall'implementazione 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 rispetto a quelli richiesti. In qualsiasi altro caso, restituisce l'errore appropriato.

IEnumSTATPROPSETSTG::Reset

Imposta il cursore sull'inizio dell'enumerazione. In caso di esito positivo, restituisce S_OK; in caso contrario, restituisce STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG::Clone

Copia lo stato di enumerazione corrente di questo enumeratore.