Доступ к IExplorerCommandProvider из IShellFolder - PullRequest
2 голосов
/ 31 октября 2010

Я пишу расширение Explorer для Vista и Windows 7. Я прочитал, что если вы создаете расширение пространства имен, вы можете предоставить свои собственные команды, используя IExplorerCommandProvider .Это сделано в ответ на IShellFolder :: CreateViewObject .

. Я не пишу расширение пространства имен, но панель инструментов, которая позволяет вам выполнять операции в Проводнике.Поэтому мне нужно получить IExplorerCommandProvider из существующего IShellFolder .

Я получаю IShellView из IShellBrowser , затем япреобразовать его в IFolderView , затем я получу IShellFolder .Все идет нормально.Я получил правильный указатель на папку.

Это, однако, не работает:
pShellFolder-> CreateViewObject (NULL, IID_IExplorerCommandProvider, & p);// возвращает E_NOINTERFACE

Я пытался передать различные значения для параметра hwnd для CreateViewObject , начиная с панели файлов и вплоть до самого верхнего уровня Explorerокно, и ни один из них не работал.

Итак, мои вопросы:
1) Поддерживают ли даже обычные папки файловой системы IExplorerCommandProvider ?
2) Если они это делают, то какЯ заполучил этот интерфейс?

Спасибо
Иво

...