Получить PIDL элементов в диалоге GetOpenFileName - PullRequest
0 голосов
/ 20 марта 2011

У меня есть реализация из CommonDialog, которая позволяет пользователю многократно выбирать папки и . Пока параметр Explorer «Скрыть расширения для известных типов файлов» не установлен (по умолчанию установлен), класс работает нормально. Если он установлен (известные расширения больше не являются частью имени файла), он не будет работать, так как я получаю имена выбранных файлов и папок напрямую (LVM_GETITEMTEXT) из элементов списка.

Я нашел статью журнала MSDN , в которой описывается решение на C ++. Идея состоит в том, чтобы получить объект PIDL поддержки из выбранных элементов, которые содержат полное имя файла, включая расширение, независимое от настроек проводника.

Есть идеи, как перенести это на C #?

1 Ответ

0 голосов
/ 04 января 2017

код для получения pidl ..

lvitem lvi;
lvi.mask = lvif_param; //0x0004;
lvi.iItem = 1;// the index of item u want to get
sendmessage(listviewhandle,LVM_GETITEM,0,ref lvi);

//Now u can get pidl from lvi.lParam member.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...