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 |
程式庫 | Uuid.lib |
Dll | Ole32.dll |