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

Obtém os atributos do conjunto de itens contidos em um IShellItemArray. Se a matriz contiver mais de um item, os atributos recuperados por esse método não serão os atributos de itens únicos, mas uma combinação lógica de todos os atributos solicitados de todos os itens.

Sintaxe

HRESULT GetAttributes(
  [in]  SIATTRIBFLAGS AttribFlags,
  [in]  SFGAOF        sfgaoMask,
  [out] SFGAOF        *psfgaoAttribs
);

Parâmetros

[in] AttribFlags

Tipo: SIATTRIBFLAGS

Se a matriz contiver um único item, esse método fornecerá os mesmos resultados que GetAttributes. No entanto, se a matriz contiver vários itens, os conjuntos de atributos de todos os itens serão combinados em um único conjunto de atributos e retornados no valor apontado por psfgaoAttribs. Esse parâmetro usa um dos seguintes valores para definir como esse conjunto de atributos final é determinado:

SIATTRIBFLAGS_AND (0x00000001)

0x00000001. Se houver vários itens na matriz, use um AND bit a bit para combinar os atributos entre itens. Por exemplo, se a matriz contiver dois itens em que um item pode ser movido (SFGAO_CANMOVE) e um segundo item não puder, o método retornará (1 & 0) ou 0 para esse bit de atributo.

SIATTRIBFLAGS_OR (0x00000002)

0x00000002. Se houver vários itens na matriz, use um OR bit a bit para combinar os atributos entre itens. Por exemplo, se a matriz contiver dois itens em que um item pode ser movido (SFGAO_CANMOVE) e um segundo item não puder, o método retornará (1 | 0) ou 1 para esse bit de atributo.

SIATTRIBFLAGS_APPCOMPAT (0x00000003)

0x00000003. Recupere os atributos diretamente da fonte de dados do Shell. Para usar esse valor, a matriz de itens do Shell deve ter sido inicializada como uma IShellFolder com seu conteúdo especificado como uma matriz de PIDLs filho.

SIATTRIBFLAGS_MASK (0x00000003)

0x00000003. Uma máscara para SIATTRIBFLAGS_AND, SIATTRIBFLAGS_OR e SIATTRIBFLAGS_APPCOMPAT. Normalmente, os chamadores não usam esse valor.

SIATTRIBFLAGS_ALLITEMS (0x00004000)

0x00004000. Windows 7 e posterior. Examine todos os itens na matriz para calcular os atributos. Observe que isso pode resultar em baixo desempenho em grandes matrizes e, portanto, deve ser usado somente quando necessário. Casos em que você passa esse sinalizador devem ser extremamente raros. Consulte Comentários para obter mais detalhes.

[in] sfgaoMask

Tipo: SFGAOF

Uma máscara que especifica quais atributos específicos estão sendo solicitados. Um OR bit a bit de um ou mais dos valores SFGAO .

[out] psfgaoAttribs

Tipo: SFGAOF*

Um bitmap que, quando esse método retorna com êxito, contém os valores dos atributos solicitados.

Retornar valor

Tipo: HRESULT

Retorna S_OK se os atributos retornados corresponderem exatamente aos solicitados em sfgaoMask, S_FALSE se os atributos não corresponderem exatamente ou um valor de erro COM padrão, caso contrário.

Comentários

A matriz de itens do Shell armazena em cache atributos individuais depois que eles são determinados.

À medida que esse método passa pelas informações de atributo de coleta de matriz, ele normalmente para de examinar um atributo específico depois que esse valor é irrevogavelmente definido. Por exemplo, se o sinalizador SIATTRIBFLAGS_AND for definido, depois que um atributo for encontrado para não ser definido em um item (um valor de 0), não será necessário continuar examinando esse valor de atributo em outros itens porque o resultado da operação AND sempre será 0. Portanto, o conjunto final de atributos é comumente calculado examinando apenas os primeiros itens na matriz, que é tudo o que é necessário para obter o valor final. Se você precisar examinar todos os itens na matriz, defina o sinalizador SIATTRIBFLAGS_ALLITEMS. No entanto, lembre-se de que isso pode retardar consideravelmente o retorno do método, portanto, não faça isso sem causa.

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)