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 パラメーターの 1 つが無効でした。
STG_E_REVERTED ストレージ オブジェクトは、トランザクション ツリーの上にある元に戻す操作によって無効になっています。
STG_E_TOOMANYOPENFILES 開いているファイルが多すぎるため、コピーまたは移動が完了していません。

注釈

通常、IStorage::MoveElementTo メソッドは、指定された要素で IStorage::CopyTo メソッドを呼び出し、ソース要素を削除するのと同じです。 この場合、 MoveElementTo メソッドは、移動先ストレージ オブジェクトの公開されている関数のみを使用して移動を実行します。

ソースストレージオブジェクトとコピー先ストレージオブジェクトが互いの実装に関する特別な知識を持っている場合 (たとえば、同じ実装の異なるインスタンスである可能性があります)、このメソッドをより効率的に実装できます。

このメソッドを呼び出す前に、移動する要素を閉じ、宛先ストレージを開く必要があります。 また、移動先のオブジェクトと要素を、移動元と同じストレージ オブジェクトまたは要素名にすることはできません。 つまり、要素をそれ自体に移動することはできません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h
Library Uuid.lib
[DLL] Ole32.dll

こちらもご覧ください

IStorage - 複合ファイルの実装

IStorage::CopyTo

STGMOVE