Método IFileDialog::SetFileTypes (shobjidl_core.h)

Establece los tipos de archivo que el cuadro de diálogo puede abrir o guardar.

Sintaxis

HRESULT SetFileTypes(
  [in] UINT                    cFileTypes,
  [in] const COMDLG_FILTERSPEC *rgFilterSpec
);

Parámetros

[in] cFileTypes

Tipo: UINT

Número de elementos de la matriz especificada por rgFilterSpec.

[in] rgFilterSpec

Tipo: const COMDLG_FILTERSPEC*

Puntero a una matriz de estructuras de COMDLG_FILTERSPEC , cada una de las cuales representa un tipo de archivo.

Valor devuelto

Tipo: HRESULT

Si el método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT, incluido lo siguiente:

Código devuelto Descripción
E_UNEXPECTED

Ya se ha llamado a SetFileTypes.

E_UNEXPECTED
La marca FOS_PICKFOLDERS se estableció en el método IFileDialog::SetOptions .
E_INVALIDARG
El parámetro rgFilterSpec es NULL.

Comentarios

Al usar el cuadro de diálogo Abrir , los tipos de archivo declarados se usan para filtrar la vista. Al usar el cuadro de diálogo Guardar , estos valores determinan qué extensión de nombre de archivo se anexa al nombre de archivo.

Se debe llamar a este método antes de que se muestre el cuadro de diálogo y solo se pueda llamar una vez para cada instancia de diálogo. Los tipos de archivo no se pueden modificar una vez que se muestra el cuadro de diálogo Elemento común.

Ejemplos

En el ejemplo de código siguiente se muestra el uso de la matriz de estructuras de COMDLG_FILTERSPEC en el contexto de este método. La matriz de ejemplo consta de tres estructuras de COMDLG_FILTERSPEC . El primero declara dos patrones para el filtro de diálogo, el segundo declara un único patrón y el último muestra los archivos de todos los tipos. Se supone que las variables szJPG, szBMP y szAll se declaran previamente en cadenas que proporcionan un nombre descriptivo para cada filtro.

COMDLG_FILTERSPEC rgSpec[] =
{ 
    { szJPG, L"*.jpg;*.jpeg" },
    { szBMP, L"*.bmp" },
    { szAll, L"*.*" },
};

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (incluya Shobjidl.h)