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。 调用方在完成此接口时必须释放此接口。 基础对象同时扩展 IStreamIPortableDeviceDataStream

[in, out] pdwOptimalWriteBufferSize

一个可选的 DWORD 指针,用于指定应用程序在将数据写入 ppData 时使用的最佳缓冲区大小。 应用程序可以指定 TRUE 来忽略此值。

[in, out] ppszCookie

一个以 null 结尾的可选唯一字符串 ID,用于在应用程序的 IPortableDeviceEventCallback 实现中标识此创建请求 ((如果) 实现)。 设备完成对象创建后,会将此标识符发送到回调函数。 此标识符允许应用程序监视与名为 CreateObjectWithPropertiesOnly 的线程不同的线程中的对象创建。 SDK 分配此内存,调用方必须使用 CoTaskMemFree 释放它。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
E_POINTER
至少一个必需的参数是 NULL 指针。

注解

某些对象只是属性的集合(例如文件夹,它只是指向其他对象的指针的集合),而其他对象既是属性又是数据,例如包含所有属性和实际音乐位的音频文件。 此方法用于创建同时需要属性和数据的对象。 若要创建仅属性对象,请调用 CreateObjectWithPropertiesOnly

由于在应用程序对检索到的 IStreamppData 调用 Commit 之前不会创建对象,因此对象在调用 Commit 之前不会具有 ID。 提交 是同步的,因此当该方法成功返回时,对象将存在于设备上。

调用 Commit 创建对象后,在 ppData 上调用 QueryInterface for IPortableDeviceDataStream,然后调用 IPortableDeviceDataStream::GetObjectID 以获取新创建对象的 ID。

示例

有关如何使用此方法的示例,请参阅 将图像或音乐文件传输到设备

要求

要求
目标平台 Windows
标头 portabledeviceapi.h
Library PortableDeviceGUIDs.lib

另请参阅

IPortableDeviceContent 接口

IPortableDeviceDataStream 接口

将图像或音乐文件传输到设备