Дескриптор меню
Модераторы: Duncon, Hawk, Romeo, Eugie
Народ, помогите плиз, как можно получить дескриптор контекстного меню рабочего стола?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Код: Выделить всё
IShellFolderPtr spDesktop;
SHGetDesktopFolder(spDesktop);
IContextMenu spMenu;
spDesktop->CreateViewObject(NULL, IID_IContextMenu, (void **)&spMenu);
// далее можно манипулировать этим контекстным меню
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Спасибки что откликнулся на просьбу, но не мог бы ты на Дельфе код написать, я не знаю Си =(( Или просто суть указать, я далее сам напишу. Заранее Спасиб!..
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Shell везде одинаковый так же, как и API. Ну предположим в Delphi нет смартпоинтеров (в чём я сомневаюсь), тогда код будет выглядить следующим образом:
P.S. Могу и ошибаться: ни разу не писал под COM на Delphi. Да и вообще советую открыть стандартный делфийский help и найти там описание COM-интнерфейса IShellFolder.
Код: Выделить всё
var
pDesktop : ^IShellFolder;
pMenu: ^IContextMenu;
...
SHGetDesktopFolder(pDesktop);
^pDesktop.CreateViewObject(NULL, IID_IContextMenu, @pMenu);
...
{некие манипуляции}
...
pMenu->Release;
pDesktop->Release;
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Нет smart pointers, подтверждаюНу предположим в Delphi нет смартпоинтеров (в чём я сомневаюсь)
Указатели не нужны, соотв.параметры просто объявлены как varvar
pDesktop : ^IShellFolder;
pMenu: ^IContextMenu;