IStorage::MoveElementTo-Methode (objidl.h)
Die MoveElementTo-Methode kopiert oder verschiebt einen Unterspeicher oder Stream aus diesem Speicherobjekt in ein anderes Speicherobjekt.
Syntax
HRESULT MoveElementTo(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgDest,
[in] const OLECHAR *pwcsNewName,
[in] DWORD grfFlags
);
Parameter
[in] pwcsName
Zeiger auf eine Unicode-Zeichenfolge mit Breitzeichen mit NULL-Termin, die den Namen des Elements in diesem Speicherobjekt enthält, das verschoben oder kopiert werden soll.
[in] pstgDest
IStorage-Zeiger auf das Zielspeicherobjekt.
[in] pwcsNewName
Zeiger auf eine Unicode-Zeichenfolge mit Breitzeichen mit NULL-Termin, die den neuen Namen für das Element im neuen Speicherobjekt enthält.
[in] grfFlags
Gibt an, ob es sich bei dem Vorgang um eine Verschiebung (STGMOVE_MOVE) oder eine Kopie (STGMOVE_COPY) handelt. Weitere Informationen finden Sie in der STGMOVE-Enumeration .
Rückgabewert
Diese Methode kann einen dieser Werte zurückgeben.
Rückgabecode | Beschreibung |
---|---|
S_OK | Das Speicherobjekt wurde erfolgreich kopiert oder verschoben. |
E_PENDING | Nur asynchroner Speicher: Ein Teil oder alle Daten des Elements sind derzeit nicht verfügbar. |
STG_E_ACCESSDENIED | Das Zielspeicherobjekt ist ein untergeordnetes Element des Quellspeicherobjekts. Oder das Zielobjekt und der Elementname sind identisch mit dem Quellobjekt und dem Elementnamen. Anders ausgedrückt: Sie können ein Element nicht in sich selbst verschieben. |
STG_E_FILENOTFOUND | Das Element mit dem angegebenen Namen ist nicht vorhanden. |
STG_E_FILEALREADYEXISTS | Die angegebene Datei ist bereits vorhanden. |
STG_E_INSUFFICIENTMEMORY | Das Kopieren oder Verschieben wurde aufgrund von Fehlendem Arbeitsspeicher nicht abgeschlossen. |
STG_E_INVALIDFLAG | Der Wert für den grfFlags-Parameter ist ungültig. |
STG_E_INVALIDNAME | Kein gültiger Wert für pwcsName. |
STG_E_INVALIDPOINTER | Der für das Speicherobjekt angegebene Zeiger war ungültig. |
STG_E_INVALIDPARAMETER | Einer der Parameter war ungültig. |
STG_E_REVERTED | Das Speicherobjekt wurde durch einen rückgängig machen Vorgang darüber in der Transaktionsstruktur ungültig gemacht. |
STG_E_TOOMANYOPENFILES | Das Kopieren oder Verschieben wurde nicht abgeschlossen, weil zu viele dateien geöffnet sind. |
Hinweise
Die IStorage::MoveElementTo-Methode entspricht in der Regel dem Aufrufen der IStorage::CopyTo-Methode für das angegebene Element und dem anschließenden Entfernen des Quellelements. In diesem Fall verwendet die MoveElementTo-Methode nur die öffentlich verfügbaren Funktionen des Zielspeicherobjekts, um die Verschiebung durchzuführen.
Wenn die Quell- und Zielspeicherobjekte über spezielle Kenntnisse über die Implementierung des jeweils anderen verfügen (sie können z. B. unterschiedliche Instanzen derselben Implementierung sein), kann diese Methode effizienter implementiert werden.
Vor dem Aufrufen dieser Methode muss das zu verschiebende Element geschlossen werden, und der Zielspeicher muss geöffnet sein. Außerdem können das Zielobjekt und das Element nicht derselbe Speicherobjekt-/Elementname wie die Quelle der Verschiebung sein. Das heißt, Sie können ein Element nicht zu sich selbst verschieben.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | objidl.h |
Bibliothek | Uuid.lib |
DLL | Ole32.dll |