Как вызвать IShellFolder :: EnumObjects извне в расширении оболочки - PullRequest
1 голос
/ 08 апреля 2009

Я создал расширение Windows Shell, похожее на Google GDrive. Теперь я хочу добавить различные представления в ListView, который наследуется от IShellView. Новое контекстное меню было добавлено для отображения 3 видов (Детали, Маленькая иконка, Большая иконка). Когда вид изменяется с помощью контекстного меню, текущее окно необходимо обновить / создать, чтобы отобразить измененный вид. В моем IShellFolder :: EnumObjects создается новый объект ListView, и OnCreate вызывается автоматически. Мне нужно вызывать этот метод, когда я меняю представление также с помощью контекстного меню. Я предполагаю, что мог бы быть некоторый API, такой как SHChangeNotify (), который может все EnumObjects () автоматически и новое окно IShellView будет создано с измененным представлением.

1 Ответ

1 голос
/ 03 августа 2009

Как я понял из вашего вопроса, вам нужно просмотреть то же содержимое в просмотре списка, но с новым представлением.

Вам не нужно повторно создавать объект Listview после выбора нового режима просмотра. Просто установите стиль ListView на LVS_REPORT , LVS_SMALLICON или LVS_ICON .

SHChangeNotify используется для отражения изменений в панели дерева, а не в ListView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...