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

Weitere Informationen

IStorage – Implementierung von Zusammengesetzten Dateien

IStorage::CopyTo

STGMOVE