Поделиться через


Функция SHGetDataFromIDListW (shlobj_core.h)

Извлекает данные расширенных свойств из относительного списка идентификаторов.

Синтаксис

SHSTDAPI SHGetDataFromIDListW(
  [in]  IShellFolder    *psf,
  [in]  PCUITEMID_CHILD pidl,
        int             nFormat,
  [out] void            *pv,
        int             cb
);

Параметры

[in] psf

Тип: IShellFolder*

Адрес родительского интерфейса IShellFolder. Это должен быть непосредственный родительский элемент структуры ITEMIDLIST, на которую ссылается параметр pidl.

[in] pidl

Тип: PCUITEMID_CHILD

Указатель на структуру itemIDLIST , которая определяет объект относительно папки, указанной в psf.

nFormat

Тип: int

Формат, в котором запрашиваются данные. Этот параметр должен иметь одно из следующих значений.

SHGDFIL_FINDDATA

Формат, используемый для объектов файловой системы. Параметр pv — это адрес структуры WIN32_FIND_DATA.

SHGDFIL_NETRESOURCE

Формат, используемый для сетевых ресурсов. Параметр pv — это адрес структуры NETRESOURCE.

SHGDFIL_DESCRIPTIONID

версии 4.71. Формат, используемый для сетевых ресурсов. Параметр pvэто адрес структуры SHDESCRIPTIONID.

[out] pv

Тип: void*

Указатель на буфер, который, когда эта функция возвращается успешно, получает запрошенные данные. Формат этого буфера определяется nFormat.

Если nFormatSHGDFIL_NETRESOURCE, существует два возможных случая. Если буфер достаточно велик, в буфер будут помещены сведения о строке ресурса net (поля для сетевого имени, локального имени, поставщика и примечаний). Если буфер недостаточно велик, в буфер будет помещена только структура чистых ресурсов, а указатели сведений строки будут null.

cb

Тип: int

Размер буфера в pvв байтах.

Возвращаемое значение

Тип: HRESULT

Возвращает S_OK в случае успешного выполнения или E_INVALIDARG в противном случае.

Замечания

Эта функция извлекает только сведения, которые присутствуют в указателе на список идентификаторов элементов (PIDL). Так как содержимое PIDL зависит от объекта папки, создавшего PIDL, нет никаких гарантий, что все запрошенные сведения будут доступны. Кроме того, возвращаемые сведения отражают состояние объекта во время создания PIDL. Текущее состояние объекта может отличаться. Например, если nFormatSHGDFIL_FINDDATA, функция может назначать значимые значения только некоторым элементам структуры WIN32_FIND_DATA. Остальные элементы будут иметь значение нулю. Чтобы получить полные текущие сведения о файле или папке файловой системы, используйте стандартные функции файловой системы, такие как GetFileTime или FindFirstFile.

E_INVALIDARG возвращается, если параметр psf, pidl, pvили параметр cb не соответствует параметру nFormat или если nFormat не является одним из указанных выше значений SHGDFIL_.

Заметка

Заголовок shlobj_core.h определяет SHGetDataFromIDList как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shlobj_core.h (include Shlobj.h, Shlobj_core.h)
библиотеки Shell32.lib
DLL Shell32.dll (версия 4.0 или более поздняя версия)
набор API ext-ms-win-shell-shell32-l1-2-1 (представлено в Windows 10 версии 10.0.10240)