> > Hmm. For the winecfg use case though we have to pass back a Unix path, > as by definition it might not be mapped to a Windows path. I suspect > most code that uses the browse folder API converts the PIDL straight > into a path that it can use with CreateFileEx and so on so it might > break stuff if we invented a new PIDL extension that contained a raw > Unix path. >
No, you shouldn't convert a PIDL to path. Shell extensions create temporary files on SHGetPathFromIDList. SHGetPathFromIDList is implemented by shell extensions. Maybe we can return names like \\.\unix\usr\doc\ or whatever devicepaths look like in windows. You can hide shell extensions by not registering them as part of 'my computer'. You can acess any them simply by creating a shortcut or a directory named Dirname.{CLSID}. I don't know if you can access them without creating a file.