SHBROWSEFORFOLDER [VC++]

Signaler
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
-
Messages postés
12
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
27 octobre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9491-shbrowseforfolder-vc

Messages postés
12
Date d'inscription
lundi 17 septembre 2007
Statut
Membre
Dernière intervention
27 octobre 2007

salut
merci beaucoup.
continue et @++
Messages postés
154
Date d'inscription
dimanche 1 avril 2001
Statut
Membre
Dernière intervention
2 octobre 2009

Salut,

En fait, un ITEMIDLIST est un identifiant qui réfère à un dossier, c'est à dire, à un emplacement sur le(s) disque(s).
C'est la valeur que nous donne SHBrowseForFolder. Tu pourra noter qu'il y en a un autre dans la structure BROWSEINFO, qui doit contenir le dossier Root à partir duquel on veut chercher.
Pour ce qui est du membre bi.pszDisplayName, il ne contient que le nom du répertoire sélectionné, mais pas son chemin complet
Ex: si tu sélectionne C:\Windows\system32
bi.pszDisplayName contiendra system32

J'espère avoir été suffisament clair, et avoir répondu à tes questions

Bonne prog

Xaviou
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

ah au fait je voulais dire que je compile sous devcpp 4.9.9.2 et sa fonctionne nickel chrome... a part un "[Warning] no newline at end of file" mais lol, c'est pas trop grave.... (par conte, vu comment tu declare ta classe WNDCLASSEX, j'ai droit a une belle fenetre DOS derriere la fenetre de ton prog.... mais c'est pas non plus tres grave...)
@++ et bonne continuation
Messages postés
449
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
5 mars 2009

Sympa le code mais j'avoue ne pas tout comprendre dedans....
j'ai du mal a comprendre pourquoi ta fonction FolderBrowse() :

HWND hWndMain,hWndBtn;
char Result[MAX_PATH];

int FolderBrowse()
{
BROWSEINFO bi;
ITEMIDLIST *il;
char Buffer[MAX_PATH];

bi.hwndOwner=hWndMain;
bi.pidlRoot=NULL;
bi.pszDisplayName=&Buffer[0];
bi.lpszTitle="Select a folder...";
bi.ulFlags=0;
bi.lpfn=NULL;

if ((il=SHBrowseForFolder(&bi))==NULL) return 0;
return SHGetPathFromIDList(il,&Result[0]);
}

Quest-ce qu'un ITEMLIST ??
Le parametre bi.pszDisplayName=&Buffer[0] n'est-il pas cense contenir directement le path du dossier selectione grace a SHBrowseForFolder() ?? Pourquoi renvoyer autre chose ... ?? Merci de m'expliquer ou de commenter ton code, la j'ai vraiment du mal... ;-)
@++
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
2
merci