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 |