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 ->还原。 调用方在使用接口后必须释放此接口。 基础对象扩展 IStream 和 IPortableDeviceDataStream。
[in, out] pdwOptimalWriteBufferSize
可选 DWORD 指针,指定将数据写入 ppData时要使用的应用程序的最佳缓冲区大小。 应用程序可以指定要忽略此 TRUE。
[in, out] ppszCookie
一个可选的唯一的以 null 结尾的字符串 ID,用于在应用程序的 IPortableDeviceEventCallback(如果实现)中标识此创建请求。 设备完成创建对象后,会将此标识符发送到回调函数。 此标识符允许应用程序监视与 CreateObjectWithPropertiesOnly不同的线程中创建对象。 SDK 分配此内存,调用方必须使用 CoTaskMemFree释放它。
返回值
该方法返回 HRESULT。 可能的值包括但不限于下表中的值。
返回代码 | 描述 |
---|---|
|
方法成功。 |
|
至少有一个必需的参数是 NULL 指针。 |
言论
某些对象只是属性的集合(如文件夹),它只是指向其他对象的指针集合,而其他对象既是属性和数据,又包括音频文件,其中包含所有属性和实际音乐位。 此方法用于创建需要属性和数据的对象。 若要创建仅限属性的对象,请调用 CreateObjectWithPropertiesOnly。
由于在应用程序调用检索的 IStreamppData上 Commit 之前不会创建该对象,因此在调用提交 之前,该对象将不会具有 ID。 提交 是同步的,因此当该方法成功返回时,对象将存在于设备上。
调用 提交 以创建对象后,对 ppData 调用 QueryInterface 以获取 IPortableDeviceDataStream,然后调用 IPortableDeviceDataStream::GetObjectID 以获取新创建对象的 ID。
例子
有关如何使用此方法的示例,请参阅 将图像或音乐文件传输到设备。
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | portabledeviceapi.h |
库 | PortableDeviceGUIDs.lib |