Compartilhar via


enumeração _SHGDNF (shobjidl_core.h)

Define os valores usados com os métodos IShellFolder::GetDisplayNameOf e IShellFolder::SetNameOf para especificar o tipo de nomes de arquivo ou pasta usados por esses métodos.

Nota Antes do Windows 7, esses valores eram empacotados como a enumeração SHGNO.
 

Syntax

typedef enum _SHGDNF {
  SHGDN_NORMAL = 0,
  SHGDN_INFOLDER = 0x1,
  SHGDN_FOREDITING = 0x1000,
  SHGDN_FORADDRESSBAR = 0x4000,
  SHGDN_FORPARSING = 0x8000
} ;

Constantes

 
SHGDN_NORMAL
Valor: 0
Quando não for combinado com outro sinalizador, retorne o nome relativo pai que identifica o item, adequado para exibição ao usuário. Esse nome geralmente não inclui informações extras, como a extensão de nome de arquivo e não precisa ser exclusivo. Esse nome pode incluir informações que identificam a pasta que contém o item. Por exemplo, esse sinalizador pode fazer com que IShellFolder::GetDisplayNameOf retorne a cadeia de caracteres "username (on Machine)" para uma pasta de usuário específica.
SHGDN_INFOLDER
Valor: 0x1
O nome é relativo à pasta da qual a solicitação foi feita. Esse é o nome exibido para o usuário quando usado no contexto da pasta. Por exemplo, ele é usado no modo de exibição e no segmento de caminho da barra de endereços da pasta. Esse nome não deve incluir informações de desambiguação — por exemplo, "nome de usuário" em vez de "nome de usuário (no computador)" para uma pasta de determinado usuário.

Use esse sinalizador em combinações com SHGDN_FORPARSING e SHGDN_FOREDITING.
SHGDN_FOREDITING
Valor: 0x1000
O nome é usado para edição in-loco quando o usuário renomeia o item.
SHGDN_FORADDRESSBAR
Valor: 0x4000
O nome é exibido em uma caixa de combinação da barra de endereços.
SHGDN_FORPARSING
Valor: 0x8000
O nome é usado para análise. Ou seja, ele pode ser passado para IShellFolder::P arseDisplayName para recuperar o PIDL do objeto. O formulário que esse nome usa depende do objeto específico. Quando SHGDN_FORPARSING é usado sozinho, o nome é relativo à área de trabalho. Quando combinado com SHGDN_INFOLDER, o nome é relativo à pasta da qual a solicitação foi feita.

Comentários

O tipo SHGDNF é definido em Shobjidl.h, conforme mostrado aqui.

typedef DWORD SHGDNF;

Essa enumeração consiste em dois grupos de valores. O primeiro grupo, SHGDN_NORMAL e SHGDN_INFOLDER, especifica o tipo do nome. O segundo grupo, SHGDN_FOREDITING, SHGDN_FORADDRESSBAR e SHGDN_FORPARSING, consiste em modificadores para o primeiro grupo que especificam opções de recuperação de nome.

Se SHGDN_FORPARSING estiver definido e SHGDN_INFOLDER não estiver definido, IShellFolder::GetDisplayNameOf poderá aceitar um PIDL que contém mais do que uma estrutura SHITEMID . Caso contrário, somente um PIDL de nível único pode ser passado.

Nota Embora o nome de análise retornado por objetos do sistema de arquivos seja o caminho totalmente qualificado do objeto, as pastas virtuais podem usar algo bem diferente. Por exemplo, algumas pastas virtuais usam um GUID como o nome de análise e retornam uma cadeia de caracteres do formulário "::{GUID}". Para marcar se o objeto faz parte do sistema de arquivos, chame IShellFolder::GetAttributesOf e veja se o sinalizador SFGAO_FILESYSTEM está definido. Os desenvolvedores que implementam IShellFolder::GetDisplayNameOf são incentivados a retornar nomes de análise o mais próximo possível dos nomes de exibição, pois o usuário final geralmente precisa digitar ou editar esses nomes.

O valor numérico de SHGDN_NORMAL é zero, portanto, você não pode testar a presença desse bit. Considere SHGDN_NORMAL uma configuração padrão que será usada se nenhum outro sinalizador nesse grupo estiver definido.

Exemplo

As tabelas a seguir ilustram um exemplo de possíveis valores retornados para cinco opções de sinalizador diferentes e três tipos de item diferentes.

Essas são as opções de sinalizador.

Número Flags Descrição
1 SHGDN_FORPARSING Retorna o nome de análise totalmente qualificado.
2 SHGDN_INFOLDER | SHGDN_FORPARSING Retorna o nome da análise em relação à pasta pai.
3 SHGDN_INFOLDER | SHGDN_FOREDITING Retorna o nome de edição em relação à pasta pai.
4 SHGDN_INFOLDER Retorna o nome de exibição relativo à pasta pai.
5 SHGDN_NORMAL Retorna o nome de exibição relativo à área de trabalho e não a uma pasta específica.
 

Estes são os tipos de item de exemplo.

Carta Descrição
Um A unidade C: no computador local, cujo rótulo de volume é C_DRIVE.
B Uma impressora chamada Laser em um computador chamado Mailroom.
C O arquivo C:\Directory\File.txt (quando as extensões de nome de arquivo estão ocultas).
 

A tabela a seguir descreve os nomes de exibição como eles seriam retornados.

A B C
1 C:\ \\Mailroom\Laser C:\Directory\File.txt
2 C:\ Laser File.txt
3 C_DRIVE Laser Arquivo
4 C_DRIVE (C:) Laser Arquivo
5 C_DRIVE (C:) Laser na Sala de Correio Arquivo
 

Comentários sobre exemplos

  • A3: a unidade C: apresenta seu nome de volume para edição, em vez de toda a cadeia de caracteres "C_DRIVE (C:)".
  • B1-B5: o nome de exibição da impressora remota muda dependendo se ela está sendo mostrada em relação ao seu pai. Quando mostrado em relação ao seu pai, ele precisa apenas de seu nome de impressora, mas quando mostrado fora de seu pai, ele mostra o nome da impressora e o nome do computador.
  • C3: File.txt apresenta apenas seu nome base para edição em vez de seu nome completo.
Para obter mais discussões sobre a interface IShellFolder , consulte Obtendo informações sobre o conteúdo de uma pasta.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP, Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)