Compartir a través de


enumeración _SHGDNF (shobjidl_core.h)

Define los valores usados con los métodos IShellFolder::GetDisplayNameOf e IShellFolder::SetNameOf para especificar el tipo de nombres de archivo o carpeta usados por esos métodos.

Nota Antes de Windows 7, estos valores se empaquetaban como la enumeración 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
Cuando no se combina con otra marca, devuelve el nombre relativo primario que identifica el elemento, adecuado para mostrar al usuario. Este nombre a menudo no incluye información adicional, como la extensión de nombre de archivo y no necesita ser única. Este nombre puede incluir información que identifique la carpeta que contiene el elemento. Por ejemplo, esta marca podría hacer que IShellFolder::GetDisplayNameOf devuelva la cadena "username (on Machine)" para una carpeta de usuario determinada.
SHGDN_INFOLDER
Valor: 0x1
El nombre es relativo a la carpeta desde la que se realizó la solicitud. Este es el nombre que se muestra al usuario cuando se usa en el contexto de la carpeta. Por ejemplo, se usa en la vista y en el segmento de ruta de acceso de la barra de direcciones para la carpeta. Este nombre no debe incluir información de desambiguación( por ejemplo, "nombre de usuario" en lugar de "nombre de usuario (en la máquina)" para una carpeta de usuario determinada.

Use esta marca en combinaciones con SHGDN_FORPARSING y SHGDN_FOREDITING.
SHGDN_FOREDITING
Valor: 0x1000
El nombre se usa para la edición local cuando el usuario cambia el nombre del elemento.
SHGDN_FORADDRESSBAR
Valor: 0x4000
El nombre se muestra en un cuadro combinado de barra de direcciones.
SHGDN_FORPARSING
Valor: 0x8000
El nombre se usa para analizar. Es decir, se puede pasar a IShellFolder::P arseDisplayName para recuperar el PIDL del objeto. El formato que toma este nombre depende del objeto determinado. Cuando se usa solo SHGDN_FORPARSING, el nombre es relativo al escritorio. Cuando se combina con SHGDN_INFOLDER, el nombre es relativo a la carpeta desde la que se realizó la solicitud.

Comentarios

El tipo SHGDNF se define en Shobjidl.h como se muestra aquí.

typedef DWORD SHGDNF;

Esta enumeración consta de dos grupos de valores. El primer grupo, SHGDN_NORMAL y SHGDN_INFOLDER, especifica el tipo del nombre. El segundo grupo (SHGDN_FOREDITING, SHGDN_FORADDRESSBAR y SHGDN_FORPARSING) consta de modificadores al primer grupo que especifica las opciones de recuperación de nombres.

Si se establece SHGDN_FORPARSING y no se establece SHGDN_INFOLDER, IShellFolder::GetDisplayNameOf puede aceptar un PIDL que contenga más de una estructura SHITEMID . De lo contrario, solo se puede pasar un PIDL de nivel único.

Nota Aunque el nombre de análisis devuelto por los objetos del sistema de archivos es la ruta de acceso completa del objeto, las carpetas virtuales pueden usar algo bastante diferente. Por ejemplo, algunas carpetas virtuales usan un GUID como nombre de análisis y devuelven una cadena del formato "::{GUID}". Para comprobar si el objeto forma parte del sistema de archivos, llame a IShellFolder::GetAttributesOf y compruebe si la marca de SFGAO_FILESYSTEM está establecida. Se recomienda a los desarrolladores que implementen IShellFolder::GetDisplayNameOf devolver nombres de análisis que estén lo más cerca posible de los nombres para mostrar, ya que el usuario final suele tener que escribir o editar estos nombres.

El valor numérico de SHGDN_NORMAL es cero, por lo que no se puede probar la presencia de este bit. Considere SHGDN_NORMAL una configuración predeterminada que se usa si no se establece ninguna otra marca en ese grupo.

Ejemplo

En las tablas siguientes se muestra un ejemplo de posibles valores devueltos para cinco opciones de marca diferentes y tres tipos de elementos diferentes.

Estas son las opciones de marca.

Number Marcas Descripción
1 SHGDN_FORPARSING Devuelve el nombre de análisis completo.
2 SHGDN_INFOLDER | SHGDN_FORPARSING Devuelve el nombre de análisis relativo a la carpeta primaria.
3 SHGDN_INFOLDER | SHGDN_FOREDITING Devuelve el nombre de edición relativo a la carpeta primaria.
4 SHGDN_INFOLDER Devuelve el nombre para mostrar relativo a la carpeta primaria.
5 SHGDN_NORMAL Devuelve el nombre para mostrar relativo al escritorio y no a una carpeta específica.
 

Estos son los tipos de elemento de ejemplo.

Carta Descripción
Un Unidad C: en el equipo local, cuya etiqueta de volumen está C_DRIVE.
B Una impresora denominada Laser en un equipo llamado Mailroom.
C El archivo C:\Directory\File.txt (cuando las extensiones de nombre de archivo están ocultas).
 

En la tabla siguiente se describen los nombres para mostrar tal y como se devolverían.

A B C
1 C:\ \\Mailroom\Laser C:\Directory\File.txt
2 C:\ Láser File.txt
3 C_DRIVE Láser Archivo
4 C_DRIVE (C:) Láser Archivo
5 C_DRIVE (C:) Láser en Mailroom Archivo
 

Comentarios sobre ejemplos

  • A3: La unidad C: presenta su nombre de volumen para su edición, en lugar de la cadena completa "C_DRIVE (C:)".
  • B1-B5: el nombre para mostrar de la impresora remota cambia en función de si se muestra en relación con su elemento primario. Cuando se muestra en relación con su elemento primario, solo necesita su nombre de impresora, pero cuando se muestra fuera de su elemento primario, muestra su nombre de impresora y su nombre de equipo.
  • C3: File.txt presenta solo su nombre base para su edición en lugar de su nombre completo.
Para obtener más información sobre la interfaz IShellFolder , vea Obtener información sobre el contenido de una carpeta.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP, Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado shobjidl_core.h (include Shobjidl.h)