У меня есть расширение оболочки, зарегистрированное в 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?