Método IStorage::MoveElementTo (objidl.h)
O método MoveElementTo copia ou move um substorage ou fluxo desse objeto de armazenamento para outro objeto de armazenamento.
Sintaxe
HRESULT MoveElementTo(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgDest,
[in] const OLECHAR *pwcsNewName,
[in] DWORD grfFlags
);
Parâmetros
[in] pwcsName
Ponteiro para uma cadeia de caracteres Unicode terminada em nulo largo que contém o nome do elemento neste objeto de armazenamento a ser movido ou copiado.
[in] pstgDest
Ponteiro IStorage para o objeto de armazenamento de destino.
[in] pwcsNewName
Ponteiro para uma cadeia de caracteres unicode terminada em nulo largo que contém o novo nome do elemento em seu novo objeto de armazenamento.
[in] grfFlags
Especifica se a operação deve ser uma movimentação (STGMOVE_MOVE) ou uma cópia (STGMOVE_COPY). Consulte a enumeração STGMOVE .
Retornar valor
Esse método pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
S_OK | O objeto de armazenamento foi copiado ou movido com êxito. |
E_PENDING | Somente armazenamento assíncrono: parte ou todos os dados do elemento estão indisponíveis no momento. |
STG_E_ACCESSDENIED | O objeto de armazenamento de destino é um filho do objeto de armazenamento de origem. Ou, o objeto de destino e o nome do elemento são os mesmos que o objeto de origem e o nome do elemento. Em outras palavras, você não pode mover um elemento para si mesmo. |
STG_E_FILENOTFOUND | O elemento com o nome especificado não existe. |
STG_E_FILEALREADYEXISTS | O arquivo especificado já existe. |
STG_E_INSUFFICIENTMEMORY | A cópia ou movimentação não foi concluída devido à falta de memória. |
STG_E_INVALIDFLAG | O valor do parâmetro grfFlags não é válido. |
STG_E_INVALIDNAME | Não é um valor válido para pwcsName. |
STG_E_INVALIDPOINTER | O ponteiro especificado para o objeto de armazenamento não era válido. |
STG_E_INVALIDPARAMETER | Um dos parâmetros não era válido. |
STG_E_REVERTED | O objeto de armazenamento foi invalidado por uma operação de reverter acima dele na árvore de transações. |
STG_E_TOOMANYOPENFILES | A cópia ou movimentação não foi concluída porque há muitos arquivos abertos. |
Comentários
O método IStorage::MoveElementTo normalmente é o mesmo que invocar o método IStorage::CopyTo no elemento indicado e, em seguida, remover o elemento de origem. Nesse caso, o método MoveElementTo usa apenas as funções disponíveis publicamente do objeto de armazenamento de destino para realizar a movimentação.
Se os objetos de armazenamento de origem e de destino tiverem conhecimento especial sobre a implementação uns dos outros (eles podem, por exemplo, ser instâncias diferentes da mesma implementação), esse método pode ser implementado com mais eficiência.
Antes de chamar esse método, o elemento a ser movido deve ser fechado e o armazenamento de destino deve estar aberto. Além disso, o objeto de destino e o elemento não podem ser o mesmo nome de objeto/elemento de armazenamento que a origem da movimentação. Ou seja, você não pode mover um elemento para si mesmo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | objidl.h |
Biblioteca | Uuid.lib |
DLL | Ole32.dll |