다음을 통해 공유


IDropTarget::D ragOver 메서드(oleidl.h)

사용자에게 대상 피드백을 제공하고 드롭 효과를 DoDragDrop 함수에 전달하여 드롭백의 효과를 원본으로 전달할 수 있습니다.

구문

HRESULT DragOver(
  [in]      DWORD  grfKeyState,
  [in]      POINTL pt,
  [in, out] DWORD  *pdwEffect
);

매개 변수

[in] grfKeyState

키보드의 키보드 한정자 키의 현재 상태입니다. 유효한 값은 플래그 MK_CONTROL, MK_SHIFT, MK_ALT, MK_BUTTON, MK_LBUTTON, MK_MBUTTON 및 MK_RBUTTON 조합할 수 있습니다.

[in] pt

화면 좌표의 현재 커서 좌표를 포함하는 POINTL 구조체입니다.

[in, out] pdwEffect

입력에서 DoDragDrop 함수의 pdwEffect 매개 변수 값에 대한 포인터입니다. 반환할 때 드롭 작업의 결과를 나타내는 DROPEFFECT 플래그 중 하나를 포함해야 합니다.

반환 값

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

반환 코드 설명
E_UNEXPECTED
예기치 않은 오류가 발생했습니다.
E_INVALIDARG
pdwEffect 값이 잘못되었습니다.
E_OUTOFMEMORY
이 작업에 사용할 수 있는 메모리가 부족했습니다.

설명

DragOver를 직접 호출하지 않습니다. DoDragDrop 함수는 사용자가 지정된 대상 창에서 마우스를 이동할 때마다 이 메서드를 호출합니다. DoDragDrop 은 끌어서 놓기 작업이 취소되거나, 사용자가 대상 창에서 마우스를 끌거나, 놓기를 완료한 경우 루프를 종료합니다.

IDropTarget::D ragOver를 구현할 때 IDropTarget::D ragEnter와 유사한 기능을 제공해야 합니다. 한정자 키의 상태와 함께 데이터 개체의 형식 및 매체를 정의하는 FORMATETC 를 검사하여 대상에 데이터를 삭제하는 효과를 결정해야 합니다. 마우스 위치는 낙하 효과를 결정하는 역할을 할 수도 있습니다. 다음 한정자 키는 삭제 결과에 영향을 미칩니다.

키 조합 User-Visible 피드백 놓기 효과
CTRL + SHIFT = DROPEFFECT_LINK
CTRL + DROPEFFECT_COPY
키 없음 또는 SHIFT 없음 DROPEFFECT_MOVE
 

pdwEffectDoDragDrop을 통해 드롭백의 효과를 원본으로 전달합니다. 그런 다음 DoDragDrop 함수는 IDropSource::GiveFeedback을 호출하여 원본 애플리케이션이 사용자에게 적절한 시각적 피드백을 표시할 수 있도록 합니다.

IDropTarget::D ragOver에 입력할 때 pdwEffect 매개 변수는 DoDragDrop 함수의 pdwOkEffect 매개 변수에 전달된 허용된 효과로 설정되어야 합니다. IDropTarget::D ragOver 메서드는 이러한 효과 중 하나를 선택하거나 삭제를 사용하지 않도록 설정할 수 있어야 합니다.

반환 시 pdwEffect 는 DROPEFFECT 플래그 중 하나로 설정됩니다. 그런 다음 이 값은 DoDragDroppdwEffect 매개 변수에 전달됩니다. 끌어간 데이터를 대상에 복사하거나, 원본 데이터에 대한 링크를 만드는 DROPEFFECT_LINK, 끌어서 놓은 데이터를 원본 애플리케이션에서 대상으로 영구적으로 이동할 수 있도록 DROPEFFECT_MOVE 적절한 값이 DROPEFFECT_COPY.

대상 창에서 적절한 시각적 피드백을 제공할 수도 있습니다. IDropTarget::D ragOver 또는 초기 IDropTarget::DragEnter에 대한 이전 호출에서 이미 표시된 대상 피드백이 있을 수 있습니다. 이 피드백이 더 이상 적절하지 않으면 제거해야 합니다.

효율성상의 이유로 데이터 개체는 IDropTarget::D ragOver에 전달되지 않습니다. IDropTarget::D ragEnter에 대한 최신 호출에서 전달된 데이터 개체를 사용할 수 있으며 사용할 수 있습니다.

IDropTarget::D ragOver가 작업을 완료하면 DoDragDrop 함수는 IDropSource::GiveFeedback을 호출하여 원본 애플리케이션이 사용자에게 적절한 시각적 피드백을 표시할 수 있도록 합니다.

구현자에 대한 참고 사항

이 함수는 DoDragDrop 루프 중에 자주 호출되므로 DragOver 메서드의 구현을 최대한 최적화하는 것이 좋습니다.

요구 사항

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

추가 정보

Dodragdrop

IDropSource

IDropSourceNotify

Idroptarget

RegisterDragDrop

RevokeDragDrop