IStorage::MoveElementTo 方法 (objidl.h)
MoveElementTo 方法将子存储或流从此存储对象复制或移动到另一个存储对象。
语法
HRESULT MoveElementTo(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgDest,
[in] const OLECHAR *pwcsNewName,
[in] DWORD grfFlags
);
参数
[in] pwcsName
指向以 null 结尾的宽字符 Unicode 字符串的指针,该字符串包含要移动或复制的此存储对象中元素的名称。
[in] pstgDest
指向目标存储对象的 IStorage 指针。
[in] pwcsNewName
指向以 null 结尾的宽字符 unicode 字符串的指针,该字符串包含其新存储对象中元素的新名称。
[in] grfFlags
指定操作是移动 (STGMOVE_MOVE) 还是复制 (STGMOVE_COPY) 。 请参阅 STGMOVE 枚举。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
S_OK | 已成功复制或移动存储对象。 |
E_PENDING | 仅限异步存储:元素的部分或全部数据当前不可用。 |
STG_E_ACCESSDENIED | 目标存储对象是源存储对象的子级。 或者,目标对象和元素名称与源对象和元素名称相同。 换句话说,不能将元素移动到自身。 |
STG_E_FILENOTFOUND | 具有指定名称的元素不存在。 |
STG_E_FILEALREADYEXISTS | 指定的文件已存在。 |
STG_E_INSUFFICIENTMEMORY | 由于内存不足,复制或移动未完成。 |
STG_E_INVALIDFLAG | grfFlags 参数的值无效。 |
STG_E_INVALIDNAME | pwcsName 的值无效。 |
STG_E_INVALIDPOINTER | 为存储对象指定的指针无效。 |
STG_E_INVALIDPARAMETER | 其中一个参数无效。 |
STG_E_REVERTED | 事务树中存储对象上方的还原操作已失效。 |
STG_E_TOOMANYOPENFILES | 复制或移动未完成,因为打开的文件太多。 |
注解
IStorage::MoveElementTo 方法通常与在指示的元素上调用 IStorage::CopyTo 方法,然后删除源元素相同。 在这种情况下, MoveElementTo 方法仅使用目标存储对象的公开可用函数来执行移动。
如果源和目标存储对象对彼此的实现有特殊了解, (它们可以是同一实现) 的不同实例,则可以更有效地实现此方法。
在调用此方法之前,必须关闭要移动的元素,并且必须打开目标存储。 此外,目标对象和元素不能与移动源相同的存储对象/元素名称。 也就是说,不能将元素移动到自身。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | objidl.h |
Library | Uuid.lib |
DLL | Ole32.dll |