Windows Shell Controls
Содержание:

Главная
Компоненты Shell
        • Shell Tree Control
        • Shell List Control
Новости
О проекте
Контакты

Shell Tree Control


Интерфейсы и методы

interface IShellTreeCtrl:

[id(1), helpstring("method InitShellTreeRoot")] HRESULT InitShellTreeRoot(); - инициализация дерева и заполнение его папками. Корневым элементом устанавливается Desktop.

[id(2), helpstring("method ModifyTreeStyle")] HRESULT ModifyTreeStyle([in] LONG lRemove,[in] LONG lAdd); - действует аналогично ATL методу CWindow::ModifyStyle(). В параметре lRemove стили окна подлежащие удалению, lAdd - стили, которые следует добавить.

[id(3), helpstring("method GetSelectedItem")] HRESULT GetSelectedItem([out,retval] LONG *pidlSelected); - в параметре pidlSelected возвращается PIDL (см. MSDN) текущего селектированного элемента. Для использования его нужно преобразовать к типу LPITEMIDLIST (например:

     LPITEMIDLIST pidl = (LPITEMIDLIST)pidlSelected;

[id(4), helpstring("method GetPathFromPIDL")] HRESULT GetPathFromPIDL([in] LONG pidl, [out, retval] BSTR *lpPath); - в параметре lpPath возвращается физический путь (если он существует) к объекту идентифицируемому параметром pidl. Эта функция рекомендуется для использования только клиентами автоматизации (JavaScript/VBScript и т.д.). Другие приложения должны использовать системную функцию SHGetPathFromIDList().

[id(5), helpstring("method DisplayCopyright")] HRESULT DisplayCopyright(); - отображает MessageBox с копирайтом автора.

Данный ActiveX компонент поддерживает точки подключения (connection points). Как воспользоваться этой возможностью можно посмотреть в тестовых приложениях, которые можно скачать с этого сайта.

dispinterface _IShellTreeCtrlEvents:

[id(1), helpstring("method OnSelChanged")] HRESULT OnSelChanged(LONG pidlSelected); - вызывается, когда в дереве изменяется селектированый элемент. pidlSelected - PIDL нового элемента.

[id(2), helpstring("method OnTreeContextMenu")] HRESULT OnTreeContextMenu(LONG points); - вызыватся при клике правой кнопкой мыши на элементе. points - x,y координаты точки клика. Чтобы выделить координаты в программе на Visual C++ можно воспользоваться макросами GET_X_LPARAM/GET_Y_LPARAM или LOWORD/HIWORD.

Тестовый пример
Тестовый пример на VC++ представляет собой MFC-диалоговое приложение, использующее компонент. ВНИМАНИЕ! Компонент должен быть зарегистрирован в системе (например с помощью утилиты regsvr32.exe). Приложение демонстрирует базовые возможности по применению компонента, включая использование connection points. Скачать пример.
Copyright © 2003-2004 Andy V. Sofronov. All rights reserved.
Hosted by uCoz