SHBrowseForFolder ???

CyberP Messages postés 283 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 4 juillet 2007 - 21 avril 2003 à 21:47
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006 - 22 avril 2003 à 16:52
SHBrowseForFolder() permet de récupérer le nom d'un dossier qu'aura choisit l'utilisateur... Le seul problème : comment le récupérer ?! Il renvoie bien une valeur, mais celle-ci ne sert à rien... (je pense) Dans l'objet BROWSEINFO associé, on peut définir un buffer (pszDisplayName) pour stocker le nom du répertoire, mais c'est seulement le nom du répertoire sans l'arbre de tous les répertoires supérieurs...

Note : J'ai regardé dans le MSDN ( :) )

CyberP,
Celui qui dit que toute question a une réponse
A voir également:

2 réponses

cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
21 avril 2003 à 23:22
Voila comment faire:

// ...

ITEMIDLIST *il=SHBrowseForFolder(&bInfo);

if (!il)
return FALSE;

// On récupére le chemin
char strTmp[MAX_PATH];
SHGetPathFromIDList(il,strTmp);

// On récupére un pointeur vers l'interface IMalloc
IMalloc *iMalloc;
SHGetMalloc(&iMalloc);

// On libère le ITEMIDLIST
iMalloc->Free(il);

// Et le pointeur vers l'interface IMalloc
iMalloc->Release();

Kaid - kaid.fr.st
0
Trinita16 Messages postés 199 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 14 juin 2006
22 avril 2003 à 16:52
essaye ce code c tout pret :
prototype de la fonction :
int SelectDir( char [] );

int SelectDir( char szPath[MAX_PATH+1] )
{

BROWSEINFO bi;
ITEMIDLIST *il;
char Buffer[MAX_PATH];

bi.hwndOwner=hDlgTool;
bi.pidlRoot=NULL;
bi.pszDisplayName=&Buffer[0];
bi.lpszTitle="Choisissez un répertoire :";
bi.ulFlags=0;
bi.lpfn=NULL;
if( (il=SHBrowseForFolder(&bi)) ==NULL ) return 0;
return SHGetPathFromIDList(il, &szPath[0]);
}

voila avec ça tu pourras récupérer le nom du répertoire sélectionné sans problème :)

Trinita :big)
0
Rejoignez-nous