Функция SHCreateShellItemArrayFromDataObject (shobjidl_core.h)

Создает объект массива элементов оболочки из объекта данных.

Синтаксис

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

Параметры

[in] pdo

Тип: IDataObject*

Указатель на интерфейс IDataObject .

[in] riid

Тип: REFIID

Ссылка на требуемый идентификатор интерфейса.

[out] ppv

Тип: void**

При возврате этим методом содержит указатель интерфейса, запрошенный в riid. Обычно это IShellItemArray.

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

Тип: HRESULT

Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Эта функция полезна для расширений оболочки, которые реализуют IShellExtInit и передают объект данных в метод IShellExtInit::Initialize ; например, обработчики контекстного меню.

Этот API позволяет преобразовать объект данных в элемент оболочки, который может использовать обработчик. Обработчики рекомендуется использовать массив элементов оболочки, а не форматы буфера обмена , такие как CF_HDROP и CFSTR_SHELLIDLIST (также известный как HIDA), так как это упрощает код и позволяет повысить производительность.

Результирующий массив элементов оболочки содержит ссылку на исходный объект данных. Таким образом, этот объект данных должен оставаться действительным в течение времени существования массива элементов оболочки. В частности, объекты данных, передаваемые в методы IDropTarget , становятся недействительными после завершения операции удаления.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h (включая Shobjidl.h)
DLL Shell32.dll
Набор API ext-ms-win-shell-shell32-l1-2-2 (представлено в Windows 10 версии 10.0.14393)