Compartilhar via


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 descarte.

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.

Valor de retorno

Essa função retorna S_OK com ê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 descarte.
E_OUTOFMEMORY
Memória insuficiente para a operação.
 
Observação Se você usar CoInitialize ou CoInitializeEx em vez de OleInitialize para inicializar COM, RegisterDragDrop sempre retornará um erro de E_OUTOFMEMORY.
 

Observações

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 do aplicativo que chama a função RegisterDragDrop deve estar bombeando mensagens, presumivelmente chamando a função GetMessage com um parâmetro NULLhWnd, pois o OLE cria janelas no thread que precisam de mensagens processadas. Se esse requisito não for atendido, qualquer aplicativo que arraste um objeto pela janela registrada como um destino suspenso será travado até que o aplicativo de destino seja fechado.

A função RegisterDragDrop registra apenas uma janela de cada 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 controladas 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
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho ole2.h
biblioteca Ole32.lib
de DLL Ole32.dll

Consulte também

RevokeDragDrop