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