다음을 통해 공유


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

낙하를 수락할 수 있는지 여부를 나타내고, 이 경우 드롭의 효과를 나타냅니다.

구문

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

매개 변수

[in] pDataObj

데이터 개체의 IDataObject 인터페이스에 대한 포인터입니다. 이 데이터 개체에는 끌어서 놓기 작업에서 전송되는 데이터가 포함됩니다. 삭제가 발생하면 이 데이터 개체가 대상에 통합됩니다.

[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 매개 변수는 입력에서 NULL입니다.
E_OUTOFMEMORY
이 작업에 사용할 수 있는 메모리가 부족했습니다.

설명

DragEnter를 직접 호출하지 않습니다. 대신 DoDragDrop 함수는 이 함수를 호출하여 사용자가 마우스를 드롭 대상의 등록된 창으로 처음 끌 때 놓기의 효과를 확인합니다.

DragEnter를 구현하려면 다음 세 가지를 확인하여 대상에서 원본 데이터 개체의 데이터를 사용할 수 있는지 여부를 결정해야 합니다.

  • 데이터 개체에서 지정한 형식 및 매체
  • pdwEffect의 입력 값
  • 한정자 키의 상태입니다.
형식과 매체를 검사 위해 pDataObject 매개 변수에 전달된 IDataObject 포인터를 사용하여 IDataObject::EnumFormatEtc를 호출하여 원본 데이터 개체에서 지원하는 FORMATETC 구조를 열거할 수 있습니다. 그런 다음 , IDataObject::QueryGetData 를 호출하여 데이터 개체에 대해 지정된 형식 및 매체를 검사하여 데이터 개체가 대상에서 데이터를 렌더링할 수 있는지 여부를 확인합니다.

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

다음 한정자 키는 삭제 결과에 영향을 미칩니다.

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

반환 시 메서드는 DROPEFFECT 플래그 중 하나인 효과를 pdwEffect 매개 변수에 써야 합니다. 그런 다음 DoDragDrop 은 이 매개 변수를 가져와 서 pdwEffect 매개 변수에 씁니다. pdwEffect 매개 변수의 DoDragDrop을 통해 드롭백의 효과를 원본으로 전달합니다. 그런 다음 DoDragDrop 함수는 IDropSource::GiveFeedback을 호출하여 원본 애플리케이션이 대상 창을 통해 사용자에게 적절한 시각적 피드백을 표시할 수 있도록 합니다.

요구 사항

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

추가 정보

DragEnter

IDropSource

IDropSourceNotify

Idroptarget

RegisterDragDrop

RevokeDragDrop