julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009
-
17 mars 2006 à 18:56
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
21 mars 2006 à 11:00
Bonjour, je cherche a afficher une boite de type SHGetPathFromIDList maisdont le repertoire n'est pas le root. D'apres ce que j'ai compris il faut rentre une vairable de type LPCITEMIDLIST dans pr.pidlRoot
le probleme c'est que je ne sais pas comment la definir. SI quelqu'un a une reponse
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 20 mars 2006 à 22:04
Excuse si tu l'as mal pris (à ma relecture ok que ça pouvait être mal pris).
Now je vois exact ce que tu veux, tu obtiendras ton item par ILCreateFromPathW(), suffit de lui passer une chaine UNICODE contenant un dossier valide, ne pas oublier de libérer la mémoire ensuite.
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 17 mars 2006 à 22:22
Et d'apres ce que j'ai pu voir dans la code que tu m'a fournit, le fichier n'est pas initialiser, c;est a dire car bi.pidlroot n'existe pas. Je penses donc qu'il est initiliaser a null ce qui revient a ce que je fait.
Voila
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 20 mars 2006 à 15:29
Bon je penses qu'encore une fois j'ai du mal m'exprimer, ou bien alors je n'est vraiment rien comrpis au fonctionnement de cette fonction. Voila J'ai bien compris que tu envyer la variable
szdir a la boite de dialogue et c'est ce que tu appel une fonction pour lui donner sa valeur. Moi ce que je cherche a faire ce n'est pas ca. En fait je veux que lorsque j'appel la boite de dialogu avec SHBrowseForFolder() le fichier selectionner ne soit pas le root. Par exemple, losrque tu appel cette API en inialisant le bi.pidlroot a NULL. tu te retrouve avec la boite de dialogu ci dessus. Mais comment faire pour que, lorsque tu appel cette API, la boite de dialogu est deja ouvert le dossier mes document par exemple. Comme ca tu n'as plus qu'a choisir un dossier dans mes documents!!
D'apres ce que j'ai lu il faut initialiser le bi.pidlroot qui est un type LPCITEMIDLIST, le probleme c'est que je ne sais pas comment faire. En esperant avoir etet clair
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 20 mars 2006 à 18:16
He mon gars pour commencer je te demanderai de ne pas me parler comme a un demeurer mental, c'est parce que t'es fort un programmation qu'il faut prendre les autres gars pour des merde OK. Je te signal que ce forum est un forum d'aide donc il est beaucoup mieu d'expliquer les choses aux gens plutot que de leur demander de faire un copier coller. Si y en a que ca ne derange pas de faire cela moi j'aimeairs bien comprendre. De plus je te siganl que tout bon programmeur ce doit de mettre des commentaires dans ces codes afin d'etre comrpris par tous ok hors si je regarde bien dans ton code il y a tres peu de commentaires.
Enfin je te demanderai de bien lire mes remarque. J'ai bien compris que la procedure BrowseCallbackProc() cree une fenetre dans laquelle il affiche l'arbre de selection des fichiers ainsi que la fenetre ou s'affiche le chemin. Et lorsque l'on clic sur un dossier, il renvoie le chemin. Mais voici ce que je veux faire:
LPCITEMIDLIST pidlRoot : Adresse d'une structure ITEMIDLIST spécifiant la localisation du
répertoire de départ. Seul le répertoire de départ et ses sous-répertoires seront listés. Peut être
NULL, dans ce cas, le répertoire Root est pris par défaut.
Ceci vient de la documentation suivante :
Petites aides pour Visual C++ de
M. BERTHOMIER Eric
Version du 4 Octobre 2000
page 13
Voila comme je suis quelqu'un de poli, je te remercie de ton aide
julienbornet
Messages postés99Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention 2 février 2009 21 mars 2006 à 01:10
Merci Brunews pour ton aide et egalement le programme que tu m'as fournit. Ceci repond exactement a mes attente. Je n'ai pas encore eu le temps d'etudier le code de ta derneire source mais l'executable effectu exactement mon attente. De mon cote je teins egalement a m'excuser d'avoir mal interpreter ton intention. Il ne fait aucun que tu es la pour aider les gens.
De plus j'ai pris le temps de mieux etudier la premiere source que tu m'a fournit et peut etre serais je un jour confronter a ce probleme et le fait de l'avoir deja vu me sera tres utile.
Encore une fois merci pour ta source et merci de ton aide