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 ->还原。 调用方在使用接口后必须释放此接口。 基础对象扩展 IStreamIPortableDeviceDataStream

[in, out] pdwOptimalWriteBufferSize

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

[in, out] ppszCookie

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

返回值

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

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

言论

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

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

调用 提交 以创建对象后,对 ppData 调用 QueryInterface 以获取 IPortableDeviceDataStream,然后调用 IPortableDeviceDataStream::GetObjectID 以获取新创建对象的 ID。

例子

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

要求

要求 价值
目标平台 窗户
标头 portabledeviceapi.h
PortableDeviceGUIDs.lib

另请参阅

IPortableDeviceContent 接口

IPortableDeviceDataStream 接口

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