Estructura OPENFILENAMEW (commdlg.h)

[A partir de Windows Vista, los cuadros de diálogo Abrir y Guardar como comunes se han reemplazado por el cuadro de diálogo elemento común. Se recomienda usar common item dialog API en lugar de estos cuadros de diálogo de la biblioteca de cuadros de diálogo comunes.

Contiene información que las funciones GetOpenFileName y GetSaveFileName usan para inicializar un cuadro de diálogo Abrir o Guardar como . Una vez que el usuario cierra el cuadro de diálogo, el sistema devuelve información sobre la selección del usuario en esta estructura.

Sintaxis

typedef struct tagOFNW {
  DWORD         lStructSize;
  HWND          hwndOwner;
  HINSTANCE     hInstance;
  LPCWSTR       lpstrFilter;
  LPWSTR        lpstrCustomFilter;
  DWORD         nMaxCustFilter;
  DWORD         nFilterIndex;
  LPWSTR        lpstrFile;
  DWORD         nMaxFile;
  LPWSTR        lpstrFileTitle;
  DWORD         nMaxFileTitle;
  LPCWSTR       lpstrInitialDir;
  LPCWSTR       lpstrTitle;
  DWORD         Flags;
  WORD          nFileOffset;
  WORD          nFileExtension;
  LPCWSTR       lpstrDefExt;
  LPARAM        lCustData;
  LPOFNHOOKPROC lpfnHook;
  LPCWSTR       lpTemplateName;
  LPEDITMENU    lpEditInfo;
  LPCSTR        lpstrPrompt;
  void          *pvReserved;
  DWORD         dwReserved;
  DWORD         FlagsEx;
} OPENFILENAMEW, *LPOPENFILENAMEW;

Miembros

lStructSize

Tipo: DWORD

Longitud, en bytes, de la estructura. Use sizeof (OPENFILENAME) para este parámetro.

hwndOwner

Tipo: HWND

Identificador de la ventana que posee el cuadro de diálogo. Este miembro puede ser cualquier identificador de ventana válido o puede ser NULL si el cuadro de diálogo no tiene propietario.

hInstance

Tipo: HINSTANCE

Si la marca OFN_ENABLETEMPLATEHANDLE se establece en el miembro Flags , hInstance es un identificador de un objeto de memoria que contiene una plantilla de cuadro de diálogo. Si se establece la marca OFN_ENABLETEMPLATE , hInstance es un identificador de un módulo que contiene una plantilla de cuadro de diálogo denominada por el miembro lpTemplateName . Si no se establece ninguna marca, se omite este miembro. Si se establece la marca OFN_EXPLORER , el sistema usa la plantilla especificada para crear un cuadro de diálogo que sea un elemento secundario del cuadro de diálogo de estilo explorador predeterminado. Si no se establece la marca OFN_EXPLORER , el sistema usa la plantilla para crear un cuadro de diálogo de estilo antiguo que reemplace el cuadro de diálogo predeterminado.

lpstrFilter

Tipo: LPCTSTR

Un búfer que contiene pares de cadenas de filtro terminadas en null. La última cadena del búfer debe terminar con dos caracteres NULL .

La primera cadena de cada par es una cadena para mostrar que describe el filtro (por ejemplo, "Archivos de texto") y la segunda cadena especifica el patrón de filtro (por ejemplo, ".TXT"). Para especificar varios patrones de filtro para una sola cadena de presentación, use un punto y coma para separar los patrones (por ejemplo, ".TXT; .DOC;. BAK"). Una cadena de patrón puede ser una combinación de caracteres de nombre de archivo válidos y el carácter comodín asterisco (*) . No incluya espacios en la cadena de patrón.

El sistema no cambia el orden de los filtros. Los muestra en el cuadro combinado Tipos de archivo en el orden especificado en lpstrFilter.

Si lpstrFilter es NULL, el cuadro de diálogo no muestra ningún filtro.

En el caso de un acceso directo, si no se establece ningún filtro, GetOpenFileName y GetSaveFileName recuperan el nombre del archivo .lnk, no su destino. Este comportamiento es el mismo que establecer la marca OFN_NODEREFERENCELINKS en el miembro Flags . Para recuperar el destino de un acceso directo sin filtrar, use la cadena "All Files\0*.*\0\0".

lpstrCustomFilter

Tipo: LPTSTR

Un búfer estático que contiene un par de cadenas de filtro terminadas en NULL para conservar el patrón de filtro elegido por el usuario. La primera cadena es la cadena de presentación que describe el filtro personalizado y la segunda cadena es el patrón de filtro seleccionado por el usuario. La primera vez que la aplicación crea el cuadro de diálogo, se especifica la primera cadena, que puede ser cualquier cadena no vacía. Cuando el usuario selecciona un archivo, el cuadro de diálogo copia el patrón de filtro actual en la segunda cadena. El patrón de filtro conservado puede ser uno de los patrones especificados en el búfer lpstrFilter o puede ser un patrón de filtro escrito por el usuario. El sistema usa las cadenas para inicializar el filtro de archivo definido por el usuario la próxima vez que se cree el cuadro de diálogo. Si el miembro nFilterIndex es cero, el cuadro de diálogo usa el filtro personalizado.

Si este miembro es NULL, el cuadro de diálogo no conserva los patrones de filtro definidos por el usuario.

Si este miembro no es NULL, el valor del miembro nMaxCustFilter debe especificar el tamaño, en caracteres, del búfer lpstrCustomFilter .

nMaxCustFilter

Tipo: DWORD

Tamaño, en caracteres, del búfer identificado por lpstrCustomFilter. Este búfer debe tener al menos 40 caracteres de longitud. Este miembro se omite si lpstrCustomFilter es NULL o apunta a una cadena NULL .

nFilterIndex

Tipo: DWORD

Índice del filtro seleccionado actualmente en el control Tipos de archivo . El búfer al que apunta lpstrFilter contiene pares de cadenas que definen los filtros. El primer par de cadenas tiene un valor de índice de 1, el segundo par 2, etc. Un índice de cero indica el filtro personalizado especificado por lpstrCustomFilter. Puede especificar un índice en la entrada para indicar la descripción inicial del filtro y el patrón de filtro para el cuadro de diálogo. Cuando el usuario selecciona un archivo, nFilterIndex devuelve el índice del filtro mostrado actualmente. Si nFilterIndex es cero y lpstrCustomFilter es NULL, el sistema usa el primer filtro del búfer lpstrFilter . Si los tres miembros son cero o NULL, el sistema no usa ningún filtro y no muestra ningún archivo en el control de lista de archivos del cuadro de diálogo.

lpstrFile

Tipo: LPTSTR

Nombre de archivo utilizado para inicializar el control de edición Nombre de archivo . El primer carácter de este búfer debe ser NULL si no es necesaria la inicialización. Cuando la función GetOpenFileName o GetSaveFileName se devuelve correctamente, este búfer contiene el designador de unidad, la ruta de acceso, el nombre de archivo y la extensión del archivo seleccionado.

Si se establece la marca OFN_ALLOWMULTISELECT y el usuario selecciona varios archivos, el búfer contiene el directorio actual seguido de los nombres de archivo de los archivos seleccionados. En el caso de los cuadros de diálogo de estilo explorador, las cadenas de nombre de archivo y directorio están separadas por NULL , con un carácter NULL adicional después del apellido del archivo. Para los cuadros de diálogo de estilo antiguo, las cadenas están separadas por espacios y la función usa nombres de archivo cortos para los nombres de archivo con espacios. Puede usar la función FindFirstFile para convertir entre nombres de archivo largos y cortos. Si el usuario selecciona solo un archivo, la cadena lpstrFile no tiene un separador entre la ruta de acceso y el nombre de archivo.

Si el búfer es demasiado pequeño, la función devuelve FALSE y la función CommDlgExtendedError devuelve FNERR_BUFFERTOOSMALL. En este caso, los dos primeros bytes del búfer lpstrFile contienen el tamaño necesario, en bytes o caracteres.

nMaxFile

Tipo: DWORD

Tamaño, en caracteres, del búfer al que apunta lpstrFile. El búfer debe ser lo suficientemente grande como para almacenar la ruta de acceso y la cadena o cadenas de nombre de archivo, incluido el carácter NULL de terminación. Las funciones GetOpenFileName y GetSaveFileName devuelven FALSE si el búfer es demasiado pequeño para contener la información del archivo. El búfer debe tener al menos 256 caracteres de longitud.

lpstrFileTitle

Tipo: LPTSTR

Nombre de archivo y extensión (sin información de ruta de acceso) del archivo seleccionado. Este miembro puede ser NULL.

nMaxFileTitle

Tipo: DWORD

Tamaño, en caracteres, del búfer al que apunta lpstrFileTitle. Este miembro se omite si lpstrFileTitle es NULL.

lpstrInitialDir

Tipo: LPCTSTR

Directorio inicial. El algoritmo para seleccionar el directorio inicial varía en distintas plataformas.

Windows 7:

  1. Si lpstrInitialDir tiene el mismo valor que se pasó la primera vez que la aplicación usó un cuadro de diálogo Abrir o Guardar como , la ruta de acceso seleccionada más recientemente por el usuario se usa como directorio inicial.
  2. De lo contrario, si lpstrFile contiene una ruta de acceso, esa ruta de acceso es el directorio inicial.
  3. De lo contrario, si lpstrInitialDir no es NULL, especifica el directorio inicial.
  4. Si lpstrInitialDir es NULL y el directorio actual contiene los archivos de los tipos de filtro especificados, el directorio inicial es el directorio actual.
  5. De lo contrario, el directorio inicial es el directorio de archivos personales del usuario actual.
  6. De lo contrario, el directorio inicial es la carpeta Escritorio.
Windows 2000/XP/Vista:
  1. Si lpstrFile contiene una ruta de acceso, esa ruta de acceso es el directorio inicial.
  2. De lo contrario, lpstrInitialDir especifica el directorio inicial.
  3. De lo contrario, si la aplicación ha usado un cuadro de diálogo Abrir o Guardar como en el pasado, la ruta de acceso usada más recientemente se selecciona como directorio inicial. Sin embargo, si una aplicación no se ejecuta durante mucho tiempo, se descarta su ruta de acceso seleccionada guardada.
  4. Si lpstrInitialDir es NULL y el directorio actual contiene los archivos de los tipos de filtro especificados, el directorio inicial es el directorio actual.
  5. De lo contrario, el directorio inicial es el directorio de archivos personales del usuario actual.
  6. De lo contrario, el directorio inicial es la carpeta Escritorio.

lpstrTitle

Tipo: LPCTSTR

Cadena que se va a colocar en la barra de título del cuadro de diálogo. Si este miembro es NULL, el sistema usa el título predeterminado (es decir, Guardar como o Abrir).

Flags

Tipo: DWORD

Un conjunto de marcas de bits que puede usar para inicializar el cuadro de diálogo. Cuando se devuelve el cuadro de diálogo, establece estas marcas para indicar la entrada del usuario. Este miembro puede ser una combinación de las marcas siguientes.

Valor Significado
OFN_ALLOWMULTISELECT
0x00000200
El cuadro de lista Nombre de archivo permite varias selecciones. Si también establece la marca de OFN_EXPLORER , el cuadro de diálogo usa la interfaz de usuario de estilo explorador; de lo contrario, usa la interfaz de usuario de estilo anterior.

Si el usuario selecciona más de un archivo, el búfer lpstrFile devuelve la ruta de acceso al directorio actual seguido de los nombres de archivo de los archivos seleccionados. El miembro nFileOffset es el desplazamiento, en bytes o caracteres, en el nombre de archivo y no se usa el miembro nFileExtension . En el caso de los cuadros de diálogo de estilo explorador, las cadenas de directorio y nombre de archivo están separadas por NULL , con un carácter NULL adicional después del apellido del archivo. Este formato permite que los cuadros de diálogo de estilo explorador devuelvan nombres de archivo largos que incluyan espacios. Para los cuadros de diálogo de estilo antiguo, las cadenas de nombre de archivo y directorio están separadas por espacios y la función usa nombres de archivo cortos para los nombres de archivo con espacios. Puede usar la función FindFirstFile para convertir entre nombres de archivo largos y cortos.

Si especifica una plantilla personalizada para un cuadro de diálogo de estilo antiguo, la definición del cuadro de lista Nombre de archivo debe contener el valor de LBS_EXTENDEDSEL .

OFN_CREATEPROMPT
0x00002000
Si el usuario especifica un archivo que no existe, esta marca hace que el cuadro de diálogo solicite al usuario permiso para crear el archivo. Si el usuario decide crear el archivo, el cuadro de diálogo se cierra y la función devuelve el nombre especificado; de lo contrario, el cuadro de diálogo permanece abierto. Si usa esta marca con la marca OFN_ALLOWMULTISELECT , el cuadro de diálogo permite al usuario especificar solo un archivo inexistente.
OFN_DONTADDTORECENT
0x02000000
Impide que el sistema agregue un vínculo al archivo seleccionado en el directorio del sistema de archivos que contiene los documentos usados por el usuario más recientemente. Para recuperar la ubicación de este directorio, llame a la función SHGetSpecialFolderLocation con la marca CSIDL_RECENT .
OFN_ENABLEHOOK
0x00000020
Habilita la función de enlace especificada en el miembro lpfnHook .
OFN_ENABLEINCLUDENOTIFY
0x00400000
Hace que el cuadro de diálogo envíe mensajes de notificación CDN_INCLUDEITEM al procedimiento de enlace OFNHookProc cuando el usuario abra una carpeta. El cuadro de diálogo envía una notificación para cada elemento de la carpeta recién abierta. Estos mensajes le permiten controlar qué elementos muestra el cuadro de diálogo en la lista de elementos de la carpeta.
OFN_ENABLESIZING
0x00800000
Permite cambiar el tamaño del cuadro de diálogo de estilo explorador mediante el mouse o el teclado. De forma predeterminada, los cuadros de diálogo Abrir y Guardar como de estilo explorador permiten cambiar el tamaño del cuadro de diálogo independientemente de si se establece esta marca. Esta marca solo es necesaria si proporciona un procedimiento de enlace o una plantilla personalizada. El cuadro de diálogo de estilo antiguo no permite cambiar el tamaño.
OFN_ENABLETEMPLATE
0x00000040
El miembro lpTemplateName es un puntero al nombre de un recurso de plantilla de diálogo en el módulo identificado por el miembro hInstance . Si se establece la marca OFN_EXPLORER , el sistema usa la plantilla especificada para crear un cuadro de diálogo que sea un elemento secundario del cuadro de diálogo de estilo explorador predeterminado. Si no se establece la marca OFN_EXPLORER , el sistema usa la plantilla para crear un cuadro de diálogo de estilo antiguo que reemplace el cuadro de diálogo predeterminado.
OFN_ENABLETEMPLATEHANDLE
0x00000080
El miembro hInstance identifica un bloque de datos que contiene una plantilla de cuadro de diálogo precargada. El sistema omite lpTemplateName si se especifica esta marca. Si se establece la marca OFN_EXPLORER , el sistema usa la plantilla especificada para crear un cuadro de diálogo que sea un elemento secundario del cuadro de diálogo de estilo explorador predeterminado. Si no se establece la marca OFN_EXPLORER , el sistema usa la plantilla para crear un cuadro de diálogo de estilo antiguo que reemplace el cuadro de diálogo predeterminado.
OFN_EXPLORER
0x00080000
Indica que las personalizaciones realizadas en el cuadro de diálogo Abrir o Guardar como usan los métodos de personalización de estilo explorador. Para obtener más información, vea Procedimientos de enlace de estilo explorador y plantillas personalizadas de estilo explorador.

De forma predeterminada, los cuadros de diálogo Abrir y Guardar como usan la interfaz de usuario de estilo Explorador, independientemente de si esta marca está establecida. Esta marca solo es necesaria si proporciona un procedimiento de enlace o una plantilla personalizada, o establece la marca OFN_ALLOWMULTISELECT .

Si desea la interfaz de usuario de estilo anterior, omita la marca de OFN_EXPLORER y proporcione una plantilla de estilo antiguo o un procedimiento de enlace de reemplazo. Si desea el estilo antiguo, pero no necesita una plantilla personalizada o un procedimiento de enlace, simplemente proporcione un procedimiento de enlace que siempre devuelva FALSE.

OFN_EXTENSIONDIFFERENT
0x00000400
El usuario ha escrito una extensión de nombre de archivo que difiere de la extensión especificada por lpstrDefExt. La función no usa esta marca si lpstrDefExt es NULL.
OFN_FILEMUSTEXIST
0x00001000
El usuario solo puede escribir nombres de archivos existentes en el campo de entrada Nombre de archivo . Si se especifica esta marca y el usuario escribe un nombre no válido, el procedimiento del cuadro de diálogo muestra una advertencia en un cuadro de mensaje. Si se especifica esta marca, también se usa la marca OFN_PATHMUSTEXIST . Esta marca se puede usar en un cuadro de diálogo Abrir . No se puede usar con un cuadro de diálogo Guardar como .
OFN_FORCESHOWHIDDEN
0x10000000
Fuerza la presentación de archivos ocultos y del sistema, reemplazando así la configuración del usuario para mostrar o no mostrar archivos ocultos. Sin embargo, no se muestra un archivo marcado tanto en el sistema como en oculto.
OFN_HIDEREADONLY
0x00000004
Oculta la casilla Solo lectura.
OFN_LONGNAMES
0x00200000
Para los cuadros de diálogo de estilo antiguo, esta marca hace que el cuadro de diálogo use nombres de archivo largos. Si no se especifica esta marca o si también se establece la marca de OFN_ALLOWMULTISELECT , los cuadros de diálogo de estilo antiguo usan nombres de archivo cortos (formato 8.3) para los nombres de archivo con espacios. Los cuadros de diálogo de estilo del explorador omiten esta marca y siempre muestran nombres de archivo largos.
OFN_NOCHANGEDIR
0x00000008
Restaura el directorio actual a su valor original si el usuario cambió el directorio mientras busca archivos.

Esta marca no es eficaz para GetOpenFileName.

OFN_NODEREFERENCELINKS
0x00100000
Dirige el cuadro de diálogo para devolver la ruta de acceso y el nombre de archivo del acceso directo seleccionado (. Archivo LNK). Si no se especifica este valor, el cuadro de diálogo devuelve la ruta de acceso y el nombre de archivo del archivo al que hace referencia el acceso directo.
OFN_NOLONGNAMES
0x00040000
Para los cuadros de diálogo de estilo antiguo, esta marca hace que el cuadro de diálogo use nombres de archivo cortos (formato 8.3). Los cuadros de diálogo de estilo del explorador omiten esta marca y siempre muestran nombres de archivo largos.
OFN_NONETWORKBUTTON
0x00020000
Oculta y deshabilita el botón Red .
OFN_NOREADONLYRETURN
0x00008000
El archivo devuelto no tiene activada la casilla Solo lectura y no está en un directorio protegido por escritura.
OFN_NOTESTFILECREATE
0x00010000
El archivo no se crea antes de que se cierre el cuadro de diálogo. Esta marca debe especificarse si la aplicación guarda el archivo en un recurso compartido de red create-nonmodify. Cuando una aplicación especifica esta marca, la biblioteca no comprueba la protección de escritura, un disco completo, una puerta de unidad abierta o una protección de red. Las aplicaciones que usan esta marca deben realizar operaciones de archivo cuidadosamente, ya que un archivo no se puede volver a abrir una vez cerrado.
OFN_NOVALIDATE
0x00000100
Los cuadros de diálogo comunes permiten caracteres no válidos en el nombre de archivo devuelto. Normalmente, la aplicación que realiza la llamada usa un procedimiento de enlace que comprueba el nombre de archivo mediante el mensaje FILEOKSTRING . Si el cuadro de texto del control de edición está vacío o no contiene más espacios, se actualizan las listas de archivos y directorios. Si el cuadro de texto del control de edición contiene cualquier otra cosa, nFileOffset y nFileExtension se establecen en valores generados mediante el análisis del texto. No se agrega ninguna extensión predeterminada al texto, ni se copia el texto en el búfer especificado por lpstrFileTitle. Si el valor especificado por nFileOffset es menor que cero, el nombre de archivo no es válido. De lo contrario, el nombre de archivo es válido y nFileExtension y nFileOffset se pueden usar como si no se hubiera especificado la marca de OFN_NOVALIDATE .
OFN_OVERWRITEPROMPT
0x00000002
Hace que el cuadro de diálogo Guardar como genere un cuadro de mensaje si el archivo seleccionado ya existe. El usuario debe confirmar si se debe sobrescribir el archivo.
OFN_PATHMUSTEXIST
0x00000800
El usuario solo puede escribir rutas de acceso válidas y nombres de archivo. Si se usa esta marca y el usuario escribe una ruta de acceso y un nombre de archivo no válidos en el campo de entrada Nombre de archivo, la función del cuadro de diálogo muestra una advertencia en un cuadro de mensaje.
OFN_READONLY
0x00000001
Hace que la casilla Solo lectura se active inicialmente cuando se cree el cuadro de diálogo. Esta marca indica el estado de la casilla Solo lectura cuando se cierra el cuadro de diálogo.
OFN_SHAREAWARE
0x00004000
Especifica que si se produce un error en una llamada a la función OpenFile debido a una infracción de uso compartido de red, el error se omite y el cuadro de diálogo devuelve el nombre de archivo seleccionado. Si no se establece esta marca, el cuadro de diálogo notifica al procedimiento de enlace cuando se produce una infracción de uso compartido de red para el nombre de archivo especificado por el usuario. Si establece la marca OFN_EXPLORER , el cuadro de diálogo envía el mensaje CDN_SHAREVIOLATION al procedimiento de enlace. Si no establece OFN_EXPLORER, el cuadro de diálogo envía el mensaje registrado SHAREVISTRING al procedimiento de enlace.
OFN_SHOWHELP
0x00000010
Hace que el cuadro de diálogo muestre el botón Ayuda . El miembro hwndOwner debe especificar la ventana para recibir los mensajes registrados HELPMSGSTRING que envía el cuadro de diálogo cuando el usuario hace clic en el botón Ayuda . Un cuadro de diálogo de estilo explorador envía un mensaje de notificación CDN_HELP al procedimiento de enlace cuando el usuario hace clic en el botón Ayuda .

nFileOffset

Tipo: WORD

Desplazamiento de base cero, en caracteres, desde el principio de la ruta de acceso al nombre de archivo de la cadena a la que apunta lpstrFile. Para la versión ANSI, este es el número de bytes; para la versión Unicode, este es el número de caracteres. Por ejemplo, si lpstrFile apunta a la siguiente cadena, "c:\dir1\dir2\file.ext", este miembro contiene el valor 13 para indicar el desplazamiento de la cadena "file.ext". Si el usuario selecciona más de un archivo, nFileOffset es el desplazamiento al nombre de archivo.

nFileExtension

Tipo: WORD

Desplazamiento de base cero, en caracteres, desde el principio de la ruta de acceso a la extensión de nombre de archivo en la cadena a la que apunta lpstrFile. Para la versión ANSI, este es el número de bytes; para la versión Unicode, este es el número de caracteres. Normalmente, la extensión de nombre de archivo es la subcadena que sigue la última aparición del carácter de punto ("."). Por ejemplo, txt es la extensión del nombre de archivo readme.txt, html la extensión de readme.txt.html. Por lo tanto, si lpstrFile apunta a la cadena "c:\dir1\dir2\readme.txt", este miembro contiene el valor 20. Si lpstrFile apunta a la cadena "c:\dir1\dir2\readme.txt.html", este miembro contiene el valor 24. Si lpstrFile apunta a la cadena "c:\dir1\dir2\readme.txt.html.", este miembro contiene el valor 29. Si lpstrFile apunta a una cadena que no contiene ningún carácter "." como "c:\dir1\dir2\readme", este miembro contiene cero.

lpstrDefExt

Tipo: LPCTSTR

Extensión predeterminada. GetOpenFileName y GetSaveFileName anexan esta extensión al nombre de archivo si el usuario no puede escribir una extensión. Esta cadena puede tener cualquier longitud, pero solo se anexan los tres primeros caracteres. La cadena no debe contener un punto (.). Si este miembro es NULL y el usuario no puede escribir una extensión, no se anexa ninguna extensión.

lCustData

Tipo: LPARAM

Datos definidos por la aplicación que el sistema pasa al procedimiento de enlace identificado por el miembro lpfnHook . Cuando el sistema envía el mensaje WM_INITDIALOG al procedimiento de enlace, el parámetro lParam del mensaje es un puntero a la estructura OPENFILENAME especificada cuando se creó el cuadro de diálogo. El procedimiento de enlace puede usar este puntero para obtener el valor lCustData .

lpfnHook

Tipo: LPOFNHOOKPROC

Puntero a un procedimiento de enlace. Este miembro se omite a menos que el miembro Flags incluya la marca OFN_ENABLEHOOK .

Si la marca de OFN_EXPLORER no está establecida en el miembro Flags , lpfnHook es un puntero a un procedimiento de enlace OFNHookProcOldStyle que recibe mensajes destinados al cuadro de diálogo. El procedimiento de enlace devuelve FALSE para pasar un mensaje al procedimiento de cuadro de diálogo predeterminado o TRUE para descartar el mensaje.

Si se establece OFN_EXPLORER , lpfnHook es un puntero a un procedimiento de enlace OFNHookProc . El procedimiento de enlace recibe mensajes de notificación enviados desde el cuadro de diálogo. El procedimiento de enlace también recibe mensajes de los controles adicionales que haya definido especificando una plantilla de diálogo secundaria. El procedimiento de enlace no recibe mensajes destinados a los controles estándar del cuadro de diálogo predeterminado.

lpTemplateName

Tipo: LPCTSTR

Nombre del recurso de plantilla de diálogo en el módulo identificado por el miembro hInstance . Para los recursos numerados del cuadro de diálogo, puede ser un valor devuelto por la macro MAKEINTRESOURCE . Este miembro se omite a menos que la marca de OFN_ENABLETEMPLATE esté establecida en el miembro Flags . Si se establece la marca OFN_EXPLORER , el sistema usa la plantilla especificada para crear un cuadro de diálogo que sea un elemento secundario del cuadro de diálogo de estilo explorador predeterminado. Si no se establece la marca OFN_EXPLORER , el sistema usa la plantilla para crear un cuadro de diálogo de estilo antiguo que reemplace el cuadro de diálogo predeterminado.

lpEditInfo

Este miembro se compila condicionalmente (mediante #ifdef _MAC) para que solo sea aplicable a los equipos Macintosh Motorola 68K y no a los sistemas operativos cliente windows.

lpstrPrompt

Este miembro se compila condicionalmente (mediante #ifdef _MAC) para que solo sea aplicable a los equipos Macintosh Motorola 68K y no a los sistemas operativos cliente windows.

pvReserved

Tipo: void*

Este miembro está reservado.

dwReserved

Tipo: DWORD

Este miembro está reservado.

FlagsEx

Tipo: DWORD

Un conjunto de marcas de bits que puede usar para inicializar el cuadro de diálogo. Actualmente, este miembro puede ser cero o la marca siguiente.

Valor Significado
OFN_EX_NOPLACESBAR
0x00000001
Si se establece esta marca, no se muestra la barra de lugares. Si no se establece esta marca, los cuadros de diálogo de estilo explorador incluyen una barra de lugares que contiene iconos para carpetas usadas habitualmente, como Favoritos y Escritorio.

Comentarios

Por motivos de compatibilidad, la barra de Places está oculta si Flags está establecido en OFN_ENABLEHOOK y lStructSize está OPENFILENAME_SIZE_VERSION_400.

Nota

El encabezado commdlg.h define OPENFILENAME como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado commdlg.h (incluye Windows.h)

Consulte también

Biblioteca de cuadros de diálogo comunes

Conceptual

GetOpenFileName

GetSaveFileName

Otros recursos

Referencia

SHGetSpecialFolderLocation