ITransferSource::MoveItem 方法 (shobjidl_core.h)

移动卷/命名空间中的项,并在其新位置返回 IShellItem

语法

HRESULT MoveItem(
  [in]  IShellItem            *psi,
  [in]  IShellItem            *psiParentDst,
  [in]  LPCWSTR               pszNameDst,
        TRANSFER_SOURCE_FLAGS flags,
  [out] IShellItem            **ppsiNew
);

参数

[in] psi

类型: IShellItem*

指向要移动的 IShellItem 的 指针。

[in] psiParentDst

类型: IShellItem*

指向 IShellItem 的指针,该 IShellItem 表示目标处的新父项。

[in] pszNameDst

类型: LPCWSTR

指向包含目标路径的以 null 结尾的缓冲区的指针。

flags

类型: TRANSFER_SOURCE_FLAGS

控制文件操作的标志。 一个或多个 TRANSFER_SOURCE_FLAGS 常量。

[out] ppsiNew

类型: IShellItem**

当此方法成功返回时,包含指向其新位置中 IShellItem 的指针的地址。

返回值

类型: HRESULT

如果移动成功,则返回 S_OK 。 在这种情况下, ppsiNew 指向新项的地址。 其他可能的返回值(成功和失败代码)包括:

返回代码 说明
COPYENGINE_S_USER_IGNORED
目标项已存在,尚未覆盖。 在这种情况下, ppsiNewNULL ,调用方应删除源项。
COPYENGINE_S_MERGE
目标项已存在,并且用户已选择合并源文件夹和目标文件夹。 在这种情况下, ppsiNew 指向 NULL 值,调用方应删除源项。
E_NOINTERFACE
当要移动的项是文件夹时,调用方应将移动操作转换为复制和删除操作。
ERROR_NOT_SAME_DEVICE
调用方应将移动操作转换为复制和删除操作。 此错误被视为 HRESULT_FROM_WIN32(ERROR_NOT_SAME_DEVICE)
ERROR_FILE_EXISTS
移动文件夹时,调用方应将移动操作转换为复制和删除操作。 目标项必须支持 ITransferDestination。 此错误被视为 HRESULT_FROM_WIN32(ERROR_FILE_EXISTS)
ERROR_ALREADY_EXISTS
移动文件夹时,调用方应将移动操作转换为复制和删除操作。 目标项必须支持 ITransferDestination。 此错误被视为 HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)