Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создает объект данных в родительской папке.
Синтаксис
SHSTDAPI SHCreateDataObject(
[in, optional] PCIDLIST_ABSOLUTE pidlFolder,
[in] UINT cidl,
[in, optional] PCUITEMID_CHILD_ARRAY apidl,
[in, optional] IDataObject *pdtInner,
[in] REFIID riid,
[out] void **ppv
);
Параметры
[in, optional] pidlFolder
Тип: PCIDLIST_ABSOLUTE
Указатель на элемент ITEMIDLIST (PIDL) родительской папки, содержащей объект данных.
[in] cidl
Тип: UINT
Количество объектов файлов или вложенных папок, указанных в параметре APIDL .
[in, optional] apidl
Тип: PCUITEMID_CHILD_ARRAY
Массив указателей на константные структуры ITEMIDLIST , каждый из которых однозначно идентифицирует объект файла или вложенную папку относительно родительской папки. Каждый список идентификаторов элементов должен содержать ровно одну структуру SHITEMID , за которой следует нулевая.
[in, optional] pdtInner
Тип: IDataObject*
Указатель на интерфейс IDataObject. Этот параметр может иметь значение NULL. Укажите pdtInner , только если созданный объект данных должен поддерживать дополнительные форматы буфера обмена FORMATETC за пределами форматов по умолчанию, назначенных при создании. Кроме того, предоставьте поддержку заполнения созданного объекта данных с использованием форматов буфера обмена, отличных от по умолчанию, путем вызова метода IDataObject::SetData и указания формата в структуре FORMATETC , переданной в параметр pFormatetc.
[in] riid
Тип: REFIID
Ссылка на IID интерфейса, извлекаемого через ppv. Это должно быть IID_IDataObject.
[out] ppv
Тип: void**
Когда этот метод возвращается успешно, содержит указатель интерфейса IDataObject , запрошенный в riid.
Возвращаемое значение
Тип: HRESULT
Если эта функция выполнена успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Замечания
Эта функция обычно вызывается при реализации метода IShellFolder::GetUIObjectOf. При запросе указателя интерфейса идентификатора интерфейса IID_IDataObject (с помощью параметра riid) реализация может вернуть указатель интерфейса на объект, созданный с помощью SHCreateDataObject в ответ.
Эта функция поддерживает формат буфера обмена CFSTR_SHELLIDLIST (также известный как HIDA), а также имеет универсальную поддержку произвольных форматов буфера обмена через IDataObject::SetData. Дополнительные сведения о форматах буфера обмена см. в разделе "Форматы буфера обмена оболочки".
Новый объект данных предназначен для использования в таких операциях, как перетаскивание, в которых данные хранятся в буфере обмена с заданным форматом.
Рекомендуется использовать макрос IID_PPV_ARGS , определенный в Objbase.h, для упаковки параметров riid и ppv . Этот макрос предоставляет правильный идентификатор IID на основе интерфейса, на который указывает значение в PPV, что устраняет возможность ошибки кодирования в riid , которая может привести к непредвиденным результатам.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows Vista [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
| целевая платформа | Виндоус |
| Header | shlobj_core.h (include Shlobj.h) |
| Library | OneCore.Lib |
| DLL | Shell32.dll |
| Набор API | ext-ms-win-shell-shell32-l1-2-2 (представлено в Windows 10 версии 10.0.14393) |