Salut,

j'ai un problème sur un dialogue de choix de repertoire. J'utilise ce code pour faire apparaitre une fenetre de choix de répertoire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
	LPMALLOC pMalloc;
	// Gets the Shell's default allocator
	if (::SHGetMalloc(&pMalloc) == NOERROR)
	{
		BROWSEINFO bi;
		char pszBuffer[MAX_PATH];
		LPITEMIDLIST pidl;
		// Get help on BROWSEINFO struct - it's got all the bit settings.
		bi.hwndOwner = GetSafeHwnd();
		bi.pidlRoot = ConvertPathToLpItemIdList("C:\\");
		bi.pszDisplayName = pszBuffer;
		bi.lpszTitle = _T("Select a Starting Directory");
		bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS | BIF_SHAREABLE;
		bi.lpfn = NULL;
		bi.lParam = 0;
		// This next call issues the dialog box.
		if ((pidl = ::SHBrowseForFolder(&bi)) != NULL)
		{
			if (::SHGetPathFromIDList(pidl, pszBuffer))
		{
				// At this point pszBuffer contains the selected path */.
				// TODO DoingSomethingUseful(pszBuffer);
			}
			// Free the PIDL allocated by SHBrowseForFolder.
			pMalloc->Free(pidl);
		}
		// Release the shell's allocator.
		pMalloc->Release();
	}
le problème est que le choix des répertoire commence au niveau de C:\ (bi.pidlRoot = ConvertPathToLpItemIdList("C:\\") sans possibilité de revenir sur un autre disque dur. Si le pidlRoot a un sous répertoire c'est le meme probleme on n'arrive pas à remonter dans l'arborescence.

Est ce que quelqu'un aurait une solution pour résoudre mon prob (sachant que je dois pouvoir sélectionner un certain répertoire par défaut à l'affichage du dialogue)

Merci

PS: Mon topic peut paraitre semblable à un autre topic que j'ai ouvert mais le problème n'est pas le meme