Функция 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
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) |