Salut ipascual,
si tu ne connais pas la base de registre de windows, il va falloir que tu cherches des infos sur le sujet parce que c'est un endroit à ne pas négliger sous windows à mon avis (ça vaut ce que ça vaut

).
Pour t'en servir, tu trouveras pleins de sources sur le site qui te montreront comment s'en servir.
Pour ce qui est de la source, dans chaque dossier ouvert (par le code pas l'explorer windows), tu as en premier dans la liste le dossier nommé . (dossier courant) et en deuxième le dossier .. (dossier parent).
Cette condition sert donc à les négliger (comme ce qui est fait dans l'explorer de windows, ils ne sont pas affiché).
Maintenant la fonction qui s'appelle elle-même, on appelle ça la récursivité. Cette technique (quand elle peut s'appliquer), donne des fonctions souvent très courtes.
Je vais essayer de t'expliquer comment cela fonctionne.
Imagine tout d'abord la même fonction sans qu'elle ne s'appelle elle-même.
Et bien sans celà, la fonction énumère un à un (sans les afficher), tous les dossiers se trouvant dans le dossier que tu as donné en argument à la fonction.
Et sur le même principe, je rajoute l'appel à la même fonction pour qu'à dossier trouvé dans le dossier parent, on aille regardé tous les dossiers qui s'y trouvent et ainsi de suite.
C'est pas forcément évident à la première lecture, je le comprend très bien.
Si tu veux essayer sur un exemple simple, appelle la fonction avec un dossier contenant lui même quelques dossiers qui eux mêmes ont des dossiers. Et là où il y a le commentaire, mets ceci :
MessageBox(NULL, DossRech, "Dossier qui va être scruté", 0);
sleep(1000);
J'espère avoir été assez clair. Tiens-moi au courant.
YOYO, @+.
"L'intelligence c'est comme un parachute, quand on en n'a pas...on s'écrase !"