RegisterDragDrop 함수(ole2.h)

지정된 창을 OLE 끌어서 놓기 작업의 대상이 될 수 있는 창으로 등록하고 놓기 작업에 사용할 IDropTarget instance 지정합니다.

구문

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

매개 변수

[in] hwnd

OLE 끌어서 놓기 작업의 대상이 될 수 있는 창에 대한 핸들입니다.

[in] pDropTarget

지정된 창에서 끌어서 놓기 작업의 대상이 될 개체의 IDropTarget 인터페이스에 대한 포인터입니다. 이 인터페이스는 해당 창에 대한 OLE 끌어서 놓기 정보를 전달하는 데 사용됩니다.

반환 값

이 함수는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.

반환 코드 설명
DRAGDROP_E_INVALIDHWND
hwnd 매개 변수에 반환된 핸들이 잘못되었습니다.
DRAGDROP_E_ALREADYREGISTERED
지정된 창이 이미 삭제 대상으로 등록되었습니다.
E_OUTOFMEMORY
작업에 대한 메모리가 부족합니다.
 
참고OleInitialize 대신 CoInitialize 또는 CoInitializeEx를 사용하여 COM을 초기화하는 경우 RegisterDragDrop은 항상 E_OUTOFMEMORY 오류를 반환합니다.
 

설명

애플리케이션이 OLE 끌어서 놓기 작업 중에 삭제된 개체를 허용할 수 있는 경우 RegisterDragDrop 함수를 호출해야 합니다. 애플리케이션 창 중 하나를 잠재적인 삭제 대상으로 사용할 수 있을 때마다 이 작업을 수행합니다. 즉, 창이 화면에 표시되지 않는 것처럼 보일 때입니다.

RegisterDragDrop 함수를 호출하는 애플리케이션 스레드는 메시지를 처리해야 하는 스레드에 창을 만들기 때문에 아마도 NULLhWnd 매개 변수를 사용하여 GetMessage 함수를 호출하여 메시지를 펌핑해야 합니다. 이 요구 사항이 충족되지 않으면 대상 애플리케이션이 닫히기 전까지 삭제 대상으로 등록된 창 위로 개체를 끌어 놓는 모든 애플리케이션이 중단됩니다.

RegisterDragDrop 함수는 한 번에 하나의 창만 등록하므로 삭제된 개체를 허용할 수 있는 각 애플리케이션 창에 대해 이를 호출해야 합니다.

마우스가 OLE 끌어서 놓기 작업 중에 대상 창의 가려지지 않은 부분을 지나갈 때 DoDragDrop 함수는 현재 창에 대해 지정된 IDropTarget::D ragOver 메서드를 호출합니다. 지정된 창에서 놓기 작업이 실제로 발생하면 DoDragDrop 함수는 IDropTarget::D rop을 호출합니다.

RegisterDragDrop 함수는 IDropTarget 포인터에서 IUnknown::AddRef 메서드도 호출합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ole2.h
라이브러리 Ole32.lib
DLL Ole32.dll

추가 정보

RevokeDragDrop