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


Метод IPortableDeviceContent::CreateObjectWithPropertiesAndData (portabledeviceapi.h)

Метод CreateObjectWithPropertiesAndData создает объект с свойствами и данными на устройстве.

Синтаксис

HRESULT CreateObjectWithPropertiesAndData(
            IPortableDeviceValues *pValues,
  [out]     IStream               **ppData,
  [in, out] DWORD                 *pdwOptimalWriteBufferSize,
  [in, out] LPWSTR                *ppszCookie
);

Параметры

pValues

IPortableDeviceValues коллекцию свойств для назначения объекту. Список обязательных и необязательных свойств для объекта см. в разделе Требования для объектов.

[out] ppData

Адрес переменной, получающей указатель на интерфейс IStream, который приложение использует для отправки данных объекта на устройство. Объект не будет создан на устройстве, пока приложение не отправляет данные путем вызова ppData—>фиксации. Чтобы отказаться от передачи данных, можно вызвать ppData ->Revert. Вызывающий объект должен освободить этот интерфейс, когда он будет выполнен. Базовый объект расширяет IStream и IPortableDeviceDataStream.

[in, out] pdwOptimalWriteBufferSize

Необязательный указатель DWORD, указывающий оптимальный размер буфера для приложения, используемого при записи данных в ppData. Приложение может указать, TRUE игнорировать это.

[in, out] ppszCookie

Необязательный уникальный идентификатор строки, завершаемый значением NULL, используемый для идентификации этого запроса на создание в реализации приложения IPortableDeviceEventCallback (при реализации). После завершения создания объекта устройство отправит этот идентификатор в функцию обратного вызова. Этот идентификатор позволяет приложению отслеживать создание объектов в другом потоке, который называется CreateObjectWithPropertiesOnly. Пакет SDK выделяет эту память, и вызывающий объект должен освободить его с помощью CoTaskMemFree.

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

Метод возвращает HRESULT. Возможные значения включают, но не ограничиваются ими в следующей таблице.

Возвращаемый код Описание
S_OK
Метод выполнен успешно.
E_POINTER
По крайней мере один из обязательных аргументов был указателем NULL.

Замечания

Некоторые объекты представляют собой только коллекцию свойств, например папку, которая является только коллекцией указателей на другие объекты, а другие объекты являются свойствами и данными, такими как звуковой файл, содержащий все свойства и фактические биты музыки. Этот метод используется для создания объекта, требующего как свойств, так и данных. Чтобы создать объект только свойств, вызовите CreateObjectWithPropertiesOnly.

Так как объект не создается, пока приложение не вызывает Commit на полученном IStreamppData, объект не будет иметь идентификатор, пока Фиксация вызывается на нем. Фиксация синхронна, поэтому при успешном возвращении этого метода объект будет существовать на устройстве.

После вызова Commit для создания объекта вызовите QueryInterface на ppData для IPortableDeviceDataStream, а затем вызовите IPortableDeviceDataStream::GetObjectID, чтобы получить идентификатор созданного объекта.

Примеры

Пример использования этого метода см. в передаче образа или музыкального файла на устройство.

Требования

Требование Ценность
целевая платформа Виндоус
заголовка portabledeviceapi.h
библиотеки PortableDeviceGUIDs.lib

См. также

интерфейс IPortableDeviceContent

интерфейс IPortableDeviceDataStream

передача изображения или музыкального файла на устройство