Hi! And thanks for the answer

It returns sth like "Control Panel", or "My computer" but not the path. Anyway, I found out how to open virtual folders.

::ShellExecuteEx().

How to "convert" the PIDL returned by ::SHBrowseForFolder() to a CSIDL_XXX value is another question

Anyway, I guess I can call ::SHGetSpecialFolderLocation() in a loop, comparing the PIDL returned to my PIDL (returned by ::SHBrowseForFolder()).

Maybe there're some other ways...

Robin