IPortableDeviceContent::D elete 方法 (portabledeviceapi.h)

Delete 方法从设备中删除一个或多个对象。

语法

HRESULT Delete(
  [in]      const DWORD                          dwOptions,
  [in]      IPortableDevicePropVariantCollection *pObjectIDs,
  [in, out] IPortableDevicePropVariantCollection **ppResults
);

参数

[in] dwOptions

DELETE_OBJECT_OPTIONS枚举器之一。

[in] pObjectIDs

指向 IPortableDevicePropVariantCollection 接口的指针,该接口保存一个或多个以 null 结尾的字符串, (类型VT_LPWSTR) 指定要删除的对象的对象 ID。

[in, out] ppResults

可选。 返回时,此参数包含指示操作成功或失败的VT_ERROR值的集合。 ppResults 中返回的第一个元素对应于 pObjectIDs 集合中的第一个对象,ppResults 中返回的第二个元素对应于 pObjectIDs 集合中的第二个对象,依此而论。 如果应用程序与结果无关,此参数可以为 NULL

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。 如果返回任何错误值,则表示设备上未删除任何对象。

返回代码 说明
S_OK
方法成功。
S_FALSE
无法删除至少一个对象。 ppResults 参数(如果指定)包含每个对象的错误代码。
E_XXXXXXXX
驱动程序未删除任何对象。
E_INVALIDARG
dwOptions 指定了无效值。
E_ACCESSDENIED
应用程序没有删除对象的权限。
HRESULT_FROM_WIN32 (ERROR_DIR_NOT_EMPTY)
无法删除指定的文件夹或目录,因为它不为空。
HRESULT_FROM_WIN32 (ERROR_INVALID_OPERATION)
指定的应用程序PORTABLE_DEVICE_DELETE_NO_RECURSION,并且 对象具有子级。
HRESULT_FROM_WIN32 (ERROR_NOT_FOUND)
无法删除该对象,因为它在设备上不存在。

注解

若要查看是否支持递归删除,请调用 IPortableDeviceCapabilities::GetCommandOptions。 如果检索到的 IPortableDeviceValues 接口包含名为 WPD_OPTION_OBJECT_MANAGEMENT_RECURSIVE_DELETE_SUPPORTED 且 boolVal 值为 True 的属性值,则设备支持递归删除。

下表列出了可能显示在 ppResults 指向的集合中的可能返回代码。

示例

有关如何使用此方法的示例,请参阅 从设备中删除内容

要求

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

另请参阅

从设备中删除内容

IPortableDeviceContent 接口