Таблица 31.1. Функции интерфейса isheiiFoider

Метод

Описание

function ParseDisplayName(hwndOwner:

Эта функция позволяет получить

HWND;
pbcReserved: Pointer;

указатель на элемент ppidl, зная

IpszDisplayName: POLESTR; out

только его полное имя (с путем)

pchEaten: ULONG; out ppidl:

1рэг01зр1ауЫате

PitemiDList; var dwAttributes:

ULONG) : HResult;
function EnumObjects(hvmdOwner: HWND;

Воз вращает указатель на специаль-

grfFlags: DWORD; out EnumlDList:

ный интерфейс 1Ешт1ВВ1з^ пред-

IEnumlDList): HResult;

назначенный для организации цикла

по всем элементам списка в текущей

папке

function BindToObject(pidl:

Возвращает интерфейс папки pidl>
PitemiDList;
pbcReserved: Pointer;

которая должна находиться в теку-

const riid: TIID; out ppvOut:

щей папке (на которую ссылается

Pointer): HResult;

интерфейс, выз вавпмй этот метод)

function ComparelDs(lParam: LPARAM;

Сравнивает два первых элемента

pidll, pid!2: PitemiDList): HResult;

в спискахpid.ll иpidl2

Таблица 31.1 (окончание)

Метод

Описание

function CreateViewObject(hwndOwner:

Создает визуальный объект для

HWND; const riid: TIID; out ppvOut:

текущей папки и возвращает указа-

Pointer) : HResult;

тель на него в параметре ррлЮи и

function GetAttributesOf(cidl: UINT;

Возвращает атрибуты элемента

var apidl: PItemlDList;

под номером с1сТ1 в списке ар1с11.

var rgflnOut: UINT): HResult;

Результат-набор флагов, устанав-

ливаемых в параметре гд£ 1пО^

function GetUIObjectOf(hvmdOwner:

Создает объект пользовательского

HWND; cidl: UINT; var apidl:

интерфейса, связанный с элементом

PItemlDList;
const riid: TIID;

списка арНсП. под номером с1с!1

prgflnOut: Pointer; out ppvOut:

Pointer) : HResult;

function GetDisplayNameOf(pidl:

Возвращает имя элемента р1с!1.

PItemlDList;
uFlags: DWORD;

Полнота возвращаемой информации

var lpName: TStrRet): HResult;

определяется параметром иР1адБ

function SetNameOf(hwndOwner: HWND;

Задает новое имя 1рзгЫате для

pidl: PItemlDList; IpszName:

списка р1сТ1. При этом возвращается

POLEStr;
uFlags: DWORD;

новый указатель на список -

var ppidlOut: PItemlDList): HResult;

рр1сТ10ис

Два метода - ParseDisplayName И GetDisplayNameOf - взаимно ДОПОЛНЯЮТ друг друга. Первый из них нужен, если вы имеете указатель на iShellFolder и хотите связать его с конкретной папкой. На практике это сводится к задаче в три действия:

1. Получить указатель на интерфейс какой-либо папки, скажем, рабочего СТОЛа, При ПЗМ01ПИ ShGetDesktopFolder.

2. Получить указатель (pidl) нужного вам элемента. Это осуществимо многими способами. Первый из них - как раз через вызов метода IShellFolder. ParseDisplayName. Если ВЫ хотите получить доступ К ОДЦСЙ из виртуальных (специальных) папок, то незаменимой будет следующая функция:

function SHGetSpecialFolderLocation(hwndOwner: HWND;
nFolder: Integer;
varppidl: PItemlDList): HResult;

В параметре nFolder вы задаете константу, соответствующую выбранной специальной папке. На выходе будет указатель на элемент ppidl, соответствующий этой папке.

( Примечание ^)


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Ноябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс