Método IShellFolder::GetDisplayNameOf (shobjidl_core.h)
Recupera el nombre para mostrar del objeto de archivo o subcarpeta especificados.
Sintaxis
HRESULT GetDisplayNameOf(
[in] PCUITEMID_CHILD pidl,
[in] SHGDNF uFlags,
[out] STRRET *pName
);
Parámetros
[in] pidl
Tipo: PCUITEMID_CHILD
PIDL que identifica de forma única el objeto de archivo o la subcarpeta en relación con la carpeta primaria.
[in] uFlags
Tipo: SHGDNF
Marcas usadas para solicitar el tipo de nombre para mostrar que se va a devolver. Para obtener una lista de valores posibles, consulte el tipo enumerado SHGDNF .
[out] pName
Tipo: STRRET*
Cuando este método devuelve , contiene un puntero a una estructura STRRET en la que se va a devolver el nombre para mostrar. El tipo de nombre devuelto en esta estructura puede ser el tipo solicitado, pero la carpeta Shell podría devolver un tipo diferente.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
Es responsabilidad del autor de la llamada liberar recursos asignados por esta función.
Normalmente, pidl solo puede hacer referencia a los elementos contenidos en la carpeta primaria. El PIDL debe ser de un solo nivel y contener exactamente una estructura SHITEMID seguida de un cero de terminación. Si desea recuperar el nombre para mostrar de un elemento que está más profundo que un nivel fuera de la carpeta primaria, use SHBindToParent para enlazar con la carpeta primaria inmediata del elemento y, a continuación, pase el PIDL de nivel único del elemento a IShellFolder::GetDisplayNameOf.
Además, si la marca de SHGDN_FORPARSING está establecida en uFlags y la marca de SHGDN_INFOLDER no está establecida, pidl puede hacer referencia a un objeto en cualquier nivel debajo de la carpeta primaria de la jerarquía de espacios de nombres. A la vez, pidl podría ser un PIDL de varios niveles, en relación con la carpeta primaria, y podría contener varias estructuras SHITEMID . Sin embargo, ya no se admite y pidl ahora debe hacer referencia solo a un solo elemento secundario.
La manera más sencilla de recuperar el nombre para mostrar de la estructura a la que apunta pName es pasarlo a StrRetToBuf o StrRetToStr. Estas funciones toman una estructura STRRET y devuelven el nombre. También puede examinar el miembro uType de la estructura y recuperar el nombre del miembro adecuado.
Las marcas especificadas en uFlags son sugerencias sobre el uso previsto del nombre. No garantizan que IShellFolder devuelva el formato solicitado del nombre. Si ese formulario no está disponible, es posible que se devuelva otro. En concreto, no hay ninguna garantía de que el nombre devuelto por la marca SHGDN_FORPARSING se analizará correctamente mediante IShellFolder::P arseDisplayName. También hay algunas combinaciones de marcas que podrían hacer que el recorrido de ida y vuelta GetDisplayNameOf/ParseDisplayName no devuelva la lista de identificadores original. Esta repetición es excepcional, pero debe comprobar para asegurarse.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (incluya Shobjidl.h) |
Archivo DLL | Shell32.dll (versión 4.0 o posterior) |