Compartilhar via


Método IShellItemArray::GetPropertyStore (shobjidl_core.h)

Obtém um repositório de propriedades.

Sintaxe

HRESULT GetPropertyStore(
  [in]  GETPROPERTYSTOREFLAGS flags,
  [in]  REFIID                riid,
  [out] void                  **ppv
);

Parâmetros

[in] flags

Tipo: GETPROPERTYSTOREFLAGS

Uma das constantes GETPROPERTYSTOREFLAGS .

[in] riid

Tipo: REFIID

O IID do tipo de objeto a ser recuperado.

[out] ppv

Tipo: void**

Quando esse método retorna, contém o ponteiro de interface solicitado em riid. Normalmente, isso é IPropertyStore ou IPropertyStoreCapabilities.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Esse método é usado para obter um repositório de propriedades somente leitura que agrega propriedades coletadas de todos os itens na matriz de itens do shell.

Se houver mais de um item na matriz de itens do shell, o repositório de propriedades resultante agregará os valores de cada item de acordo com um conjunto de regras determinado por cada propriedade. Os valores lidos do repositório de propriedades serão forçados a um formulário canônico antes da agregação, conforme discutido em CoerceToCanonicalValue. A saída de uma chamada para IPropertyStore::GetValue é computada da seguinte maneira:

  • As propriedades com valor único seguem a regra especificada pela cadeia de caracteres de tipo de agregação no esquema de descrição da propriedade.
    • Se o tipo de agregação for "DateRange" e o tipo de propriedade for um filetime, retornará um VT_VECTOR | VT_FILETIME de dois valores ou um valor VT_FILETIME se os valores forem idênticos.
    • Se o tipo de agregação for "First", retornará o primeiro valor não vazio.
    • Se o tipo de agregação for "Soma", retornará a soma.
    • Se o tipo de agregação for "Média", retornará a média de todos os valores não vazios.
    • Se o tipo de agregação for "Mínimo", retornará o valor mínimo.
    • Se o tipo de agregação for "Union" e o tipo de propriedade for uma cadeia de caracteres, retornará um VT_VECTOR | VT_LPWSTR que contém a união de valores. A ordem dos valores não é especificada.
    • Se o tipo de agregação não for especificado, incompatível ou "Padrão", retornará um único valor se for idêntico para todos os itens na matriz ou um valor especial usado para indicar que os valores diferem entre alguns dos itens. O valor especial é um VT_VECTOR | VT_LPWSTR que contém duas cadeias de caracteres: "Múltiplo" e "Valores". Chamar aplicativos deve marcar para esse valor especial verificando se há VT_VECTOR | VT_LPWSTR se GetTypeFlags indicar que a propriedade tem valor único.
  • As propriedades de cadeia de caracteres com valores múltiplos retornam uma interseção de suas cadeias de caracteres. A ordem não é especificada.
As chamadas para IsPropertyWritable retornarão S_FALSE somente se todos os itens tiverem manipuladores de propriedade que implementam IPropertyStoreCapabilities e todos os repositórios de propriedades indicarem que não dão suporte à gravação da propriedade.

Chamar aplicativos pode obter outros comportamentos de agregação acessando os itens de shell individuais e seus repositórios de propriedades diretamente. Consulte IPropertyStore::GetCount, IPropertyStore::GetAt e GetPropertyStore.

Há suporte para gravação em uma matriz de itens de shell por meio da API IFileOperation .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)