Méthode IStorage ::MoveElementTo (objidl.h)

La méthode MoveElementTo copie ou déplace un sous-stockage ou un flux de cet objet de stockage vers un autre objet de stockage.

Syntaxe

HRESULT MoveElementTo(
  [in] const OLECHAR *pwcsName,
  [in] IStorage      *pstgDest,
  [in] const OLECHAR *pwcsNewName,
  [in] DWORD         grfFlags
);

Paramètres

[in] pwcsName

Pointeur vers une chaîne Unicode à caractère null large qui contient le nom de l’élément de cet objet de stockage à déplacer ou à copier.

[in] pstgDest

Pointeur IStorage vers l’objet de stockage de destination.

[in] pwcsNewName

Pointeur vers une chaîne Unicode terminée par un caractère null large qui contient le nouveau nom de l’élément dans son nouvel objet de stockage.

[in] grfFlags

Spécifie si l’opération doit être un déplacement (STGMOVE_MOVE) ou une copie (STGMOVE_COPY). Consultez l’énumération STGMOVE .

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Code de retour Description
S_OK L’objet de stockage a été correctement copié ou déplacé.
E_PENDING Stockage asynchrone uniquement : une partie ou la totalité des données de l’élément n’est actuellement pas disponible.
STG_E_ACCESSDENIED L’objet de stockage de destination est un enfant de l’objet de stockage source. Ou bien, l’objet de destination et le nom de l’élément sont identiques à l’objet source et au nom de l’élément. En d’autres termes, vous ne pouvez pas déplacer un élément vers lui-même.
STG_E_FILENOTFOUND L’élément portant le nom spécifié n’existe pas.
STG_E_FILEALREADYEXISTS Le fichier spécifié existe déjà.
STG_E_INSUFFICIENTMEMORY La copie ou le déplacement n’a pas été effectué en raison d’un manque de mémoire.
STG_E_INVALIDFLAG La valeur du paramètre grfFlags n’est pas valide.
STG_E_INVALIDNAME Valeur non valide pour pwcsName.
STG_E_INVALIDPOINTER Le pointeur spécifié pour l’objet de stockage n’était pas valide.
STG_E_INVALIDPARAMETER L’un des paramètres n’était pas valide.
STG_E_REVERTED L’objet de stockage a été invalidé par une opération de restauration au-dessus de lui dans l’arborescence des transactions.
STG_E_TOOMANYOPENFILES La copie ou le déplacement n’a pas été terminé, car il y a trop de fichiers ouverts.

Remarques

La méthode IStorage ::MoveElementTo est généralement identique à appeler la méthode IStorage ::CopyTo sur l’élément indiqué, puis à supprimer l’élément source. Dans ce cas, la méthode MoveElementTo utilise uniquement les fonctions accessibles au public de l’objet de stockage de destination pour effectuer le déplacement.

Si les objets de stockage source et de destination ont des connaissances particulières sur l’implémentation de l’autre (ils peuvent, par exemple, être des instances différentes de la même implémentation), cette méthode peut être implémentée plus efficacement.

Avant d’appeler cette méthode, l’élément à déplacer doit être fermé et le stockage de destination doit être ouvert. En outre, l’objet de destination et l’élément ne peuvent pas être le même nom d’objet/élément de stockage que la source du déplacement. Autrement dit, vous ne pouvez pas déplacer un élément vers lui-même.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objidl.h
Bibliothèque Uuid.lib
DLL Ole32.dll

Voir aussi

IStorage - Implémentation de fichiers composés

IStorage ::CopyTo

STGMOVE