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


Метод 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-Commit>. Чтобы отменить передачу данных, можно вызвать ppData ->Revert. Вызывающий объект должен освободить этот интерфейс после завершения работы с ним. Базовый объект расширяет IStream и IPortableDeviceDataStream.

[in, out] pdwOptimalWriteBufferSize

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

[in, out] ppszCookie

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

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

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

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

Комментарии

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

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

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

Примеры

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

Требования

Требование Значение
Целевая платформа Windows
Header portabledeviceapi.h
Библиотека PortableDeviceGUIDs.lib

См. также раздел

Интерфейс IPortableDeviceContent

Интерфейс IPortableDeviceDataStream

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