У меня есть расширение оболочки, зарегистрированное в HKCR\Folder\shellex\DragDropHandlers, и мне нужно вызвать GetVolumePathName()+GetVolumeInformation() в целевой папке (PIDL передается вам в IShellExtInit::Initialize)
Проблема в том, что когда что-то перетаскивается на «ярлык Nethood» (My Network Places\sharename
), PIDL, передаваемый в Initialize, относится к ярлыку Nethood, а не к пути UNC! (Вызов SHGetPathFromIDList для PIDL возвращает "%USERPROFILE%\NetHood\SHARE on MACHINE"
, а не "\\MACHINE\SHARE"
, как вы ожидаете)
Я также попытался создать IShellItem PIDL и вызвать IShellItem::GetDisplayName с различными значениями SIGDN, но ни один из них не возвращает путь UNC.
Как я могу получить путь UNC из этого PIDL?