Метод IStorage::MoveElementTo (objidl.h)
Метод MoveElementTo копирует или перемещает вложенный журнал или поток из этого объекта хранилища в другой объект хранилища.
Синтаксис
HRESULT MoveElementTo(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgDest,
[in] const OLECHAR *pwcsNewName,
[in] DWORD grfFlags
);
Параметры
[in] pwcsName
Указатель на строку Юникода с широким символом, завершающуюся нулевым символом, которая содержит имя элемента в этом объекте хранилища для перемещения или копирования.
[in] pstgDest
Указатель IStorage на целевой объект хранилища.
[in] pwcsNewName
Указатель на строку Юникода с широким символом, завершающуюся null, которая содержит новое имя элемента в новом объекте хранилища.
[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 |
Header | objidl.h |
Библиотека | Uuid.lib |
DLL | Ole32.dll |