Structure BROWSEINFOA (shlobj_core.h)

Contient les paramètres de la fonction SHBrowseForFolder et reçoit des informations sur le dossier sélectionné par l’utilisateur.

Syntaxe

typedef struct _browseinfoA {
  HWND              hwndOwner;
  PCIDLIST_ABSOLUTE pidlRoot;
  LPSTR             pszDisplayName;
  LPCSTR            lpszTitle;
  UINT              ulFlags;
  BFFCALLBACK       lpfn;
  LPARAM            lParam;
  int               iImage;
} BROWSEINFOA, *PBROWSEINFOA, *LPBROWSEINFOA;

Membres

hwndOwner

Type : HWND

Handle de la fenêtre propriétaire de la boîte de dialogue.

pidlRoot

Type : PCIDLIST_ABSOLUTE

PIDL qui spécifie l’emplacement du dossier racine à partir duquel commencer la navigation. Seuls le dossier spécifié et ses sous-dossiers dans la hiérarchie d’espaces de noms apparaissent dans la boîte de dialogue. Ce membre peut avoir la valeur NULL ; dans ce cas, un emplacement par défaut est utilisé.

pszDisplayName

Type : LPTSTR

Pointeur vers une mémoire tampon pour recevoir le nom d’affichage du dossier sélectionné par l’utilisateur. La taille de cette mémoire tampon est supposée être MAX_PATH caractères.

lpszTitle

Type : LPCTSTR

Pointeur vers une chaîne null qui s’affiche au-dessus du contrôle d’arborescence dans la boîte de dialogue. Cette chaîne peut être utilisée pour spécifier des instructions à l’utilisateur.

ulFlags

Type : UINT

Indicateurs qui spécifient les options de la boîte de dialogue. Ce membre peut être 0 ou une combinaison des valeurs suivantes. Les numéros de version font référence à la version minimale de Shell32.dll requise pour que SHBrowseForFolder reconnaisse les indicateurs ajoutés dans les versions ultérieures. Pour plus d’informations , consultez Versions de l’interpréteur de commandes et des contrôles communs .

BIF_RETURNONLYFSDIRS (0x00000001)

0x00000001. Retourne uniquement les répertoires de système de fichiers. Si l’utilisateur sélectionne des dossiers qui ne font pas partie du système de fichiers, le bouton OK est grisé.

Note Le bouton OK reste activé pour les éléments « \\server », ainsi que pour les éléments « \\server\share » et les éléments de répertoire. Toutefois, si l’utilisateur sélectionne un élément « \\server », la transmission du PIDL retourné par SHBrowseForFolder à SHGetPathFromIDList échoue.
 

BIF_DONTGOBELOWDOMAIN (0x00000002)

0x00000002. N’incluez pas les dossiers réseau sous le niveau du domaine dans le contrôle d’arborescence de la boîte de dialogue.

BIF_STATUSTEXT (0x00000004)

0x00000004. Incluez une zone status dans la boîte de dialogue. La fonction de rappel peut définir le texte status en envoyant des messages à la boîte de dialogue. Cet indicateur n’est pas pris en charge lorsque BIF_NEWDIALOGSTYLE est spécifié.

BIF_RETURNFSANCESTORS (0x00000008)

0x00000008. Retourne uniquement les ancêtres du système de fichiers. Un ancêtre est un sous-dossier qui se trouve sous le dossier racine dans la hiérarchie de l’espace de noms. Si l’utilisateur sélectionne un ancêtre du dossier racine qui ne fait pas partie du système de fichiers, le bouton OK est grisé.

BIF_EDITBOX (0x00000010)

0x00000010. Version 4.71. Incluez un contrôle d’édition dans la boîte de dialogue parcourir qui permet à l’utilisateur de taper le nom d’un élément.

BIF_VALIDATE (0x00000020)

0x00000020. Version 4.71. Si l’utilisateur tape un nom non valide dans la zone d’édition, la boîte de dialogue parcourir appelle le BrowseCallbackProc de l’application avec le message BFFM_VALIDATEFAILED . Cet indicateur est ignoré si BIF_EDITBOX n’est pas spécifié.

BIF_NEWDIALOGSTYLE (0x00000040)

0x00000040. Version 5.0. Utilisez la nouvelle interface utilisateur. La définition de cet indicateur fournit à l’utilisateur une boîte de dialogue plus grande qui peut être redimensionnée. La boîte de dialogue dispose de plusieurs nouvelles fonctionnalités, notamment la fonctionnalité glisser-déplacer dans la boîte de dialogue, la réorganisation, les menus contextuels, les nouveaux dossiers, la suppression et d’autres commandes de menu contextuel.

Note Si COM est initialisé via CoInitializeEx avec l’indicateur COINIT_MULTITHREADED défini, SHBrowseForFolder échoue si BIF_NEWDIALOGSTYLE est passé.
 

BIF_BROWSEINCLUDEURLS (0x00000080)

0x00000080. Version 5.0. La boîte de dialogue Parcourir peut afficher des URL. Les indicateurs BIF_USENEWUI et BIF_BROWSEINCLUDEFILES doivent également être définis. Si l’un de ces trois indicateurs n’est pas défini, la boîte de dialogue du navigateur rejette les URL. Même lorsque ces indicateurs sont définis, la boîte de dialogue parcourir affiche les URL uniquement si le dossier qui contient l’élément sélectionné prend en charge les URL. Lorsque la méthode IShellFolder ::GetAttributesOf du dossier est appelée pour demander les attributs de l’élément sélectionné, le dossier doit définir l’indicateur d’attribut SFGAO_FOLDER . Sinon, la boîte de dialogue parcourir n’affiche pas l’URL.

BIF_USENEWUI

Version 5.0. Utilisez la nouvelle interface utilisateur, y compris une zone d’édition. Cet indicateur équivaut à BIF_EDITBOX | BIF_NEWDIALOGSTYLE.

Note Si COM est initialisé via CoInitializeEx avec l’indicateur COINIT_MULTITHREADED défini, SHBrowseForFolder échoue si BIF_USENEWUI est passé.
 

BIF_UAHINT (0x00000100)

0x00000100. Version 6.0. Lorsqu’il est combiné avec BIF_NEWDIALOGSTYLE, ajoute un indicateur d’utilisation à la boîte de dialogue, à la place de la zone d’édition. BIF_EDITBOX remplace cet indicateur.

BIF_NONEWFOLDERBUTTON (0x00000200)

0x00000200. Version 6.0. N’incluez pas le bouton Nouveau dossier dans la boîte de dialogue Parcourir.

BIF_NOTRANSLATETARGETS (0x00000400)

0x00000400. Version 6.0. Lorsque l’élément sélectionné est un raccourci, retournez le PIDL du raccourci lui-même plutôt que sa cible.

BIF_BROWSEFORCOMPUTER (0x00001000)

0x00001000. Retourne uniquement les ordinateurs. Si l'utilisateur sélectionne autre chose qu'un ordinateur, le bouton OK est grisé.

BIF_BROWSEFORPRINTER (0x00002000)

0x00002000. Autorisez uniquement la sélection d’imprimantes. Si l'utilisateur sélectionne autre chose qu'une imprimante, le bouton OK est grisé.

Dans les systèmes Windows XP et ultérieurs, la meilleure pratique consiste à utiliser une boîte de dialogue de style Windows XP, en définissant la racine de la boîte de dialogue sur le dossier Imprimantes et télécopies (CSIDL_PRINTERS).

BIF_BROWSEINCLUDEFILES (0x00004000)

0x00004000. Version 4.71. La boîte de dialogue Parcourir affiche les fichiers ainsi que les dossiers.

BIF_SHAREABLE (0x00008000)

0x00008000. Version 5.0. La boîte de dialogue Parcourir peut afficher des ressources partageables sur des systèmes distants. Cela est destiné aux applications qui souhaitent exposer des partages distants sur un système local. L’indicateur BIF_NEWDIALOGSTYLE doit également être défini.

BIF_BROWSEFILEJUNCTIONS (0x00010000)

0x00010000. Windows 7 et versions ultérieures. Autoriser la navigation dans les jonctions de dossiers telles qu’une bibliothèque ou un fichier compressé avec une extension de nom de fichier .zip.

lpfn

Type : BFFCALLBACK

Pointeur vers une fonction définie par l’application que la boîte de dialogue appelle lorsqu’un événement se produit. Pour plus d’informations, consultez la fonction BrowseCallbackProc . Ce membre peut avoir la valeur NULL.

lParam

Type : LPARAM

Valeur définie par l’application que la boîte de dialogue transmet à la fonction de rappel, si une valeur est spécifiée dans lpfn.

iImage

Type : int

Valeur entière qui reçoit l’index de l’image associée au dossier sélectionné, stockée dans la liste d’images système.

Remarques

Notes

L’en-tête shlobj_core.h définit BROWSEINFO comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP, Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête shlobj_core.h (inclure Shlobj.h, Shlobj_core.h)