Таблица 31.1. Функции интерфейса isheiiFoider
Метод |
Описание |
function ParseDisplayName(hwndOwner: |
Эта функция позволяет получить |
|
указатель на элемент ppidl, зная |
IpszDisplayName: POLESTR; out |
только его полное имя (с путем) |
pchEaten: ULONG; out ppidl: |
1рэг01зр1ауЫате |
PitemiDList; var dwAttributes: |
|
|
|
|
Воз вращает указатель на специаль- |
grfFlags: DWORD; out EnumlDList: |
ный интерфейс 1Ешт1ВВ1з^ пред- |
|
назначенный для организации цикла |
по всем элементам списка в текущей |
|
папке |
|
function BindToObject(pidl: |
|
|
которая должна находиться в теку- |
const riid: TIID; out ppvOut: |
щей папке (на которую ссылается |
|
интерфейс, выз вавпмй этот метод) |
|
Сравнивает два первых элемента |
|
в спискахpid.ll иpidl2 |
Таблица 31.1 (окончание)
Метод |
Описание |
function CreateViewObject(hwndOwner: |
Создает визуальный объект для |
HWND; const riid: TIID; out ppvOut: |
текущей папки и возвращает указа- |
|
тель на него в параметре ррлЮи и |
|
Возвращает атрибуты элемента |
|
под номером с1сТ1 в списке ар1с11. |
|
Результат-набор флагов, устанав- |
ливаемых в параметре гд£ 1пО^ |
|
function GetUIObjectOf(hvmdOwner: |
Создает объект пользовательского |
HWND; cidl: UINT; var apidl: |
интерфейса, связанный с элементом |
|
списка арНсП. под номером с1с!1 |
prgflnOut: Pointer; out ppvOut: |
|
|
|
function GetDisplayNameOf(pidl: |
Возвращает имя элемента р1с!1. |
|
Полнота возвращаемой информации |
|
определяется параметром иР1адБ |
|
Задает новое имя 1рзгЫате для |
pidl: PItemlDList; IpszName: |
списка р1сТ1. При этом возвращается |
|
новый указатель на список - |
|
рр1сТ10ис |
Два метода - ParseDisplayName И GetDisplayNameOf - взаимно ДОПОЛНЯЮТ друг друга. Первый из них нужен, если вы имеете указатель на iShellFolder и хотите связать его с конкретной папкой. На практике это сводится к задаче в три действия:
1. Получить указатель на интерфейс какой-либо папки, скажем, рабочего СТОЛа, При ПЗМ01ПИ ShGetDesktopFolder.
2. Получить указатель (pidl) нужного вам элемента. Это осуществимо многими способами. Первый из них - как раз через вызов метода IShellFolder. ParseDisplayName. Если ВЫ хотите получить доступ К ОДЦСЙ из виртуальных (специальных) папок, то незаменимой будет следующая функция:
function SHGetSpecialFolderLocation(hwndOwner: HWND;
nFolder: Integer;
varppidl: PItemlDList): HResult;
В параметре nFolder вы задаете константу, соответствующую выбранной специальной папке. На выходе будет указатель на элемент ppidl, соответствующий этой папке.
( Примечание ^)