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


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

Замечания

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

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

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

Требования

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