IFileDialog ::SetFileTypes, méthode (shobjidl_core.h)

Définit les types de fichiers que la boîte de dialogue peut ouvrir ou enregistrer.

Syntaxe

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

Paramètres

[in] cFileTypes

Type : UINT

Nombre d’éléments dans le tableau spécifié par rgFilterSpec.

[in] rgFilterSpec

Type : const COMDLG_FILTERSPEC*

Pointeur vers un tableau de structures COMDLG_FILTERSPEC , chacune représentant un type de fichier.

Valeur retournée

Type : HRESULT

Si la méthode réussit, retourne S_OK. Sinon, il retourne un code d’erreur HRESULT, notamment :

Code de retour Description
E_UNEXPECTED

SetFileTypes a déjà été appelé.

E_UNEXPECTED
L’indicateur FOS_PICKFOLDERS a été défini dans la méthode IFileDialog ::SetOptions.
E_INVALIDARG
Le paramètre rgFilterSpec a la valeur NULL.

Remarques

Lorsque vous utilisez la boîte de dialogue Ouvrir , les types de fichiers déclarés sont utilisés pour filtrer l’affichage. Lorsque vous utilisez la boîte de dialogue Enregistrer , ces valeurs déterminent l’extension de nom de fichier qui est ajoutée au nom du fichier.

Cette méthode doit être appelée avant l’affichage du dialogue et ne peut être appelée qu’une seule fois pour chaque instance de dialogue. Les types de fichiers ne peuvent pas être modifiés une fois la boîte de dialogue Élément commun affichée.

Exemples

L’exemple de code suivant illustre l’utilisation du tableau de structures COMDLG_FILTERSPEC dans le contexte de cette méthode. L’exemple de tableau se compose de trois structures COMDLG_FILTERSPEC . Le premier déclare deux modèles pour le filtre de boîte de dialogue, le second déclare un seul modèle et le dernier affiche les fichiers de tous types. Les variables szJPG, szBMP et szAll sont supposées être des chaînes déclarées précédemment qui fournissent un nom convivial pour chaque filtre.

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

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête shobjidl_core.h (inclure Shobjidl.h)