Compartilhar via


Implementação de arquivo IEnumSTATPROPSETSTG-Compound

A implementação de arquivo composto da interfaceIEnumSTATPROPSETSTG é usada para enumerar uma matriz de estruturasSTATPROPSETSTGque contêm dados de propriedade estatística. A implementação do 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 de STATPROPSETSTG, cada uma das quais fornece dados sobre um dos conjuntos de propriedades associados ao objeto de armazenamento de arquivos composto.

Observações

IEnumSTATPROPSETSTG::Next

Obtém a próxima uma ou mais estruturas deSTATPROPSETSTG(o número é especificado pelo parâmetro de celt). Os elementos STATPROPSETSTG fornecidos por meio de uma chamada para a implementação de arquivo composto de IEnumSTATPROPSETSTG::Next siga 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.

Nota

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 não 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 de arquivo composto COM, isso ocorre quando o conjunto de propriedades é simples (o sinalizador de PROPSETFLAG_NONSIMPLE não está definido) ou não é simplificado, mas o CLSID não foi definido explicitamente. Para conjuntos de propriedades não simplificados, o CLSID recebido é aquele que é mantido peloIStoragesubjacente.
  • Se IEnumSTATPROPSETSTG::Next não puder fornecer os campos de tempo [ctime, mtime, atime], cada tempo sem suporte será definido como zeros. Na implementação de arquivo composto COM, a obtenção desses valores depende da recuperação deles da implementação de IStorage subjacente.

IEnumSTATPROPSETSTG::Skip

Ignora o número de elementos especificados em de 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.