Função SHDoDragDrop (shlobj_core.h)

Executa uma operação de arrastar e soltar. Dá suporte à criação de origem de arrastar sob demanda, bem como arrastar imagens.

Sintaxe

SHSTDAPI SHDoDragDrop(
  [in]  HWND        hwnd,
  [in]  IDataObject *pdata,
  [in]  IDropSource *pdsrc,
  [in]  DWORD       dwEffect,
  [out] DWORD       *pdwEffect
);

Parâmetros

[in] hwnd

Digite: HWND

O identificador da janela usada para obter a imagem de arrastar. Esse valor pode ser NULL. Consulte Comentários para obter mais detalhes.

[in] pdata

Tipo: IDataObject*

Um ponteiro para a interface IDataObject em um objeto de dados que contém os dados que estão sendo arrastados.

[in] pdsrc

Tipo: IDropSource*

Um ponteiro para uma implementação da interface IDropSource , que é usada para se comunicar com a origem durante a operação de arrastar.

A partir do Windows Vista, se esse valor for NULL, o Shell criará um objeto de origem de soltar para você.

[in] dwEffect

Tipo: DWORD

Os efeitos que a origem permite na operação de arrastar e soltar. O efeito mais significativo é se a operação de arrastar e soltar permite uma movimentação. Para obter uma lista de valores possíveis, consulte DROPEFFECT.

[out] pdwEffect

Tipo: DWORD*

Um ponteiro para um valor que indica como a operação de arrastar e soltar afetou os dados de origem. O parâmetro pdwEffect será definido somente se a operação não for cancelada. Para obter uma lista de valores possíveis, consulte DROPEFFECT.

Retornar valor

Tipo: HRESULT

Essa função dá suporte ao valor de retorno padrão E_OUTOFMEMORY, bem como aos seguintes valores:

Código de retorno Descrição
DRAGDROP_S_DROP
A operação de arrastar e soltar foi bem-sucedida.
DRAGDROP_S_CANCEL
A operação de arrastar e soltar foi cancelada.
E_UNSPEC
Ocorreu um erro inesperado.

Comentários

A partir do Windows Vista, se uma imagem de arrastar ainda não estiver armazenada no objeto de dados pdtobj e uma imagem de arrastar não puder ser obtida da janela especificada pelo hwnd, o Shell fornecerá uma imagem de arrastar genérica. Uma imagem de arrastar pode falhar ao ser obtida da janela especificada porque hwnd é NULL ou a janela especificada não dá suporte à mensagem DI_GETDRAGIMAGE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shlobj_core.h (inclua Shlobj.h)
Biblioteca Shell32.lib
DLL Shell32.dll (versão 6.0 ou posterior)
Conjunto de APIs ext-ms-win-shell32-l1-2-1 (introduzido no Windows 10, versão 10.0.10240)