Метод 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. Возможные значения включают, но не ограничиваются ими в следующей таблице.
Возвращаемый код | Описание |
---|---|
|
Метод выполнен успешно. |
|
По крайней мере один из обязательных аргументов был указателем NULL. |
Замечания
Некоторые объекты представляют собой только коллекцию свойств, например папку, которая является только коллекцией указателей на другие объекты, а другие объекты являются свойствами и данными, такими как звуковой файл, содержащий все свойства и фактические биты музыки. Этот метод используется для создания объекта, требующего как свойств, так и данных. Чтобы создать объект только свойств, вызовите CreateObjectWithPropertiesOnly.
Так как объект не создается, пока приложение не вызывает Commit на полученном IStreamppData, объект не будет иметь идентификатор, пока Фиксация вызывается на нем. Фиксация синхронна, поэтому при успешном возвращении этого метода объект будет существовать на устройстве.
После вызова Commit для создания объекта вызовите QueryInterface на ppData для IPortableDeviceDataStream, а затем вызовите IPortableDeviceDataStream::GetObjectID, чтобы получить идентификатор созданного объекта.
Примеры
Пример использования этого метода см. в передаче образа или музыкального файла на устройство.
Требования
Требование | Ценность |
---|---|
целевая платформа | Виндоус |
заголовка | portabledeviceapi.h |
библиотеки |
PortableDeviceGUIDs.lib |
См. также
интерфейс IPortableDeviceContent