Função RegisterDragDrop (ole2.h)

Registra a janela especificada como uma que pode ser o destino de uma operação de arrastar e soltar OLE e especifica a instância IDropTarget a ser usada para operações de soltar.

Sintaxe

HRESULT RegisterDragDrop(
  [in] HWND         hwnd,
  [in] LPDROPTARGET pDropTarget
);

Parâmetros

[in] hwnd

Manipule para uma janela que pode ser um destino para uma operação de arrastar e soltar OLE.

[in] pDropTarget

Ponteiro para a interface IDropTarget no objeto que deve ser o destino de uma operação de arrastar e soltar em uma janela especificada. Essa interface é usada para comunicar informações de arrastar e soltar OLE para essa janela.

Retornar valor

Essa função retorna S_OK em caso de êxito. Outros valores possíveis incluem o seguinte.

Código de retorno Descrição
DRAGDROP_E_INVALIDHWND
Identificador inválido retornado no parâmetro hwnd.
DRAGDROP_E_ALREADYREGISTERED
A janela especificada já foi registrada como um destino de soltar.
E_OUTOFMEMORY
Memória insuficiente para a operação.
 
Nota Se você usar CoInitialize ou CoInitializeEx em vez de OleInitialize para inicializar COM, RegisterDragDrop sempre retornará um erro E_OUTOFMEMORY.
 

Comentários

Se o aplicativo puder aceitar objetos descartados durante operações de arrastar e soltar OLE, você deverá chamar a função RegisterDragDrop . Faça isso sempre que uma das janelas do aplicativo estiver disponível como um possível destino de descarte; ou seja, quando a janela aparece desobscurada na tela.

O thread de aplicativo que chama a função RegisterDragDrop deve estar bombeando mensagens, presumivelmente chamando a função GetMessage com um parâmetro nullhWnd , porque o OLE cria janelas no thread que precisam de mensagens processadas. Se esse requisito não for atendido, qualquer aplicativo que arraste um objeto sobre a janela registrada como um destino de soltar travará até que o aplicativo de destino seja fechado.

A função RegisterDragDrop registra apenas uma janela por vez, portanto, você deve chamá-la para cada janela do aplicativo capaz de aceitar objetos descartados.

À medida que o mouse passa por partes não observadas da janela de destino durante uma operação de arrastar e soltar OLE, a função DoDragDrop chama o método IDropTarget::D ragOver especificado para a janela atual. Quando uma operação de soltar realmente ocorre em uma determinada janela, a função DoDragDrop chama IDropTarget::D rop.

A função RegisterDragDrop também chama o método IUnknown::AddRef no ponteiro IDropTarget .

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 ole2.h
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

RevokeDragDrop