Método IDropTarget::D ragEnter (oleidl.h)

Indica se uma queda pode ser aceita e, nesse caso, o efeito da queda.

Sintaxe

HRESULT DragEnter(
  [in]      IDataObject *pDataObj,
  [in]      DWORD       grfKeyState,
  [in]      POINTL      pt,
  [in, out] DWORD       *pdwEffect
);

Parâmetros

[in] pDataObj

Um ponteiro para a interface IDataObject no objeto de dados. Esse objeto de dados contém os dados que estão sendo transferidos na operação de arrastar e soltar. Se a queda ocorrer, esse objeto de dados será incorporado ao destino.

[in] grfKeyState

O estado atual das teclas modificadoras de teclado no teclado. Os valores possíveis podem ser uma combinação de qualquer um dos sinalizadores MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON e MK_RBUTTON.

[in] pt

Uma estrutura POINTL que contém as coordenadas atuais do cursor nas coordenadas da tela.

[in, out] pdwEffect

Na entrada, ponteiro para o valor do parâmetro pdwEffect da função DoDragDrop . No retorno, deve conter um dos sinalizadores DROPEFFECT , que indica qual seria o resultado da operação de remoção.

Retornar valor

Esse método retorna S_OK com êxito. Outros valores possíveis incluem o seguinte.

Código de retorno Descrição
E_UNEXPECTED
Ocorreu um erro inesperado.
E_INVALIDARG
O parâmetro pdwEffect é NULL na entrada.
E_OUTOFMEMORY
Não havia memória suficiente disponível para esta operação.

Comentários

Você não chama DragEnter diretamente; Em vez disso, a função DoDragDrop a chama para determinar o efeito de uma queda na primeira vez que o usuário arrasta o mouse para a janela registrada de um destino de soltar.

Para implementar o DragEnter, você deve determinar se o destino pode usar os dados no objeto de dados de origem verificando três coisas:

  • O formato e o meio especificados pelo objeto de dados
  • O valor de entrada de pdwEffect
  • O estado das chaves modificadoras
Para marcar o formato e o meio, use o ponteiro IDataObject passado no parâmetro pDataObject para chamar IDataObject::EnumFormatEtc para que você possa enumerar as estruturas FORMATETC compatíveis com o objeto de dados de origem. Em seguida, chame IDataObject::QueryGetData para determinar se o objeto de dados pode renderizar os dados no destino examinando os formatos e o meio especificados para o objeto de dados.

Na entrada de IDropTarget::D ragEnter, o parâmetro pdwEffect é definido como os efeitos dados ao parâmetro pdwOkEffect da função DoDragDrop . O método IDropTarget::D ragEnter deve escolher um desses efeitos ou desabilitar a queda.

As seguintes chaves modificadoras afetam o resultado da queda.

Combinação de teclas Comentários User-Visible Efeito Drop
CTRL + SHIFT = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
Sem chaves ou SHIFT Nenhum DROPEFFECT_MOVE
 

No retorno, o método deve gravar o efeito , um dos sinalizadores DROPEFFECT, no parâmetro pdwEffect . DoDragDrop então usa esse parâmetro e o grava em seu parâmetro pdwEffect . Você comunica o efeito do drop-back para a origem por meio de DoDragDrop no parâmetro pdwEffect . A função DoDragDrop chama IDropSource::GiveFeedback para que o aplicativo de origem possa exibir os comentários visuais apropriados para o usuário por meio da janela de destino.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho oleidl.h

Confira também

DragEnter

IDropSource

IDropSourceNotify

Idroptarget

RegisterDragDrop

RevokeDragDrop