Compartilhar via


Implementação de arquivo IEnumSTATPROPSETSTG-Compound

A implementação de arquivo composto da interface IEnumSTATPROPSETSTG é usada para enumerar uma matriz de estruturas STATPROPSETSTG que contêm dados de propriedade estatística. A implementação IPropertySetStorage gerencia os dados estatísticos e está associada a um objeto de armazenamento de arquivos composto atual.

Quando usar

Chame os métodos de IEnumSTATPROPSETSTG para enumerar estruturas STATPROPSETSTG , cada uma das quais fornece dados sobre um dos conjuntos de propriedades associados ao objeto de armazenamento de arquivos composto.

Comentários

IEnumSTATPROPSETSTG::Next

Obtém a próxima ou mais estruturas STATPROPSETSTG (o número é especificado pelo parâmetro celt ). Os elementos STATPROPSETSTG fornecidos por meio de uma chamada para a implementação de arquivo composto de IEnumSTATPROPSETSTG::Next seguem estas regras:

  • Se IEnumSTATPROPSETSTG::Next não puder fornecer STATPROPSETSTG.fmtid, zeros serão gravados nesse membro. Isso ocorre quando o conjunto de propriedades não tem um nome predefinido (como \005SummaryInformation) e não é um valor legal.
  • O conjunto de propriedades DocumentSummaryInformation e UserDefined é especial, pois pode ter duas seções de conjunto de propriedades. Esse conjunto de propriedades é descrito na seção Os conjuntos de propriedades DocumentSummaryInformation e UserDefined. A segunda seção é conhecida como propriedades do User-Defined. Cada seção é identificada com um FMTID (identificador de formato exclusivo). Quando IPropertySetStorage::Enum é usado para enumerar conjuntos de propriedades, o conjunto de propriedades User-Defined não será enumerado.

Observação

Se você sempre criar um conjunto de propriedades usando IPropertySetStorage::Create, porque um "GUID de caractere" é criado para o nome de armazenamento, IEnumSTATPROPSETSTG::Next retornará um FMTID diferente de zero e válido para o conjunto de propriedades [STATPROPSETSTG.fmtid].

 

  • O membro STATPROPSETSTG.grfFlags não reflete necessariamente se o conjunto de propriedades é ANSI ou não. Se PROPSETFLAG_ANSI estiver definido, o conjunto de propriedades será definitivamente ANSI. Se PROPSETFLAG_ANSI estiver claro, o conjunto de propriedades poderá ser Unicode ou não Unicode, pois não é possível dizer se é ANSI sem abri-lo.
  • O membro STATPROPSETSTG.grfFlags reflete se o conjunto de propriedades é simples ou não, portanto, a configuração do sinalizador PROPSETFLAG_NONSIMPLE é sempre válida.
  • Se IEnumSTATPROPSETSTG::Next não puder fornecer STATPROPSETSTG.clsid, ele será definido como todos os zeros (CLSID_NULL). Na implementação do arquivo composto COM, isso ocorre quando o conjunto de propriedades é simples (o sinalizador PROPSETFLAG_NONSIMPLE não está definido) ou não é simples, mas o CLSID não foi definido explicitamente. Para conjuntos de propriedades não simples, o CLSID recebido é aquele que é mantido pelo IStorage subjacente.
  • Se IEnumSTATPROPSETSTG::Next não puder fornecer os campos de hora [ctime, mtime, atime], cada hora sem suporte será definida como zeros. Na implementação do arquivo composto COM, obter esses valores depende de recuperá-los da implementação de IStorage subjacente.

IEnumSTATPROPSETSTG::Skip

Ignora o número de elementos especificados em celt. Retorna S_OK se o número especificado de elementos for ignorado, retornará S_FALSE se menos elementos do que o solicitado forem ignorados. Em qualquer outro caso, retorna o erro apropriado.

IEnumSTATPROPSETSTG::Reset

Define o cursor como o início da enumeração. Se tiver êxito, retornará S_OK, caso contrário, retornará STG_E_INVALIDHANDLE.

IEnumSTATPROPSETSTG::Clone

Copia o estado de enumeração atual desse enumerador.