interface ICoreWebView2CompositionController3
interface ICoreWebView2CompositionController3
: public ICoreWebView2CompositionController2
This interface is the continuation of the ICoreWebView2CompositionController2 interface to manage drag and drop.
Summary
Members | Descriptions |
---|---|
DragEnter | This function corresponds to IDropTarget::DragEnter. |
DragLeave | This function corresponds to IDropTarget::DragLeave. |
DragOver | This function corresponds to IDropTarget::DragOver. |
Drop | This function corresponds to IDropTarget::Drop. |
Applies to
Product | Introduced |
---|---|
WebView2 Win32 | 1.0.1370.28 |
WebView2 Win32 Prerelease | 1.0.1369 |
Members
DragEnter
This function corresponds to IDropTarget::DragEnter.
public HRESULT DragEnter(IDataObject * dataObject, DWORD keyState, POINT point, DWORD * effect)
This function has a dependency on AllowExternalDrop property of CoreWebView2Controller and return E_FAIL to callers to indicate this operation is not allowed if AllowExternalDrop property is set to false.
The hosting application must register as an IDropTarget and implement and forward DragEnter calls to this function.
point parameter must be modified to include the WebView's offset and be in the WebView's client coordinates (Similar to how SendMouseInput works).
HRESULT DropTarget::DragEnter(
IDataObject* dataObject, DWORD keyState, POINTL cursorPosition, DWORD* effect)
{
POINT point = {cursorPosition.x, cursorPosition.y};
// Convert the screen point to client coordinates add the WebView's offset.
m_viewComponent->OffsetPointToWebView(&point);
return m_webViewCompositionController3->DragEnter(dataObject, keyState, point, effect);
}
DragLeave
This function corresponds to IDropTarget::DragLeave.
public HRESULT DragLeave()
This function has a dependency on AllowExternalDrop property of CoreWebView2Controller and return E_FAIL to callers to indicate this operation is not allowed if AllowExternalDrop property is set to false.
The hosting application must register as an IDropTarget and implement and forward DragLeave calls to this function.
HRESULT DropTarget::DragLeave()
{
return m_webViewCompositionController3->DragLeave();
}
DragOver
This function corresponds to IDropTarget::DragOver.
public HRESULT DragOver(DWORD keyState, POINT point, DWORD * effect)
This function has a dependency on AllowExternalDrop property of CoreWebView2Controller and return E_FAIL to callers to indicate this operation is not allowed if AllowExternalDrop property is set to false.
The hosting application must register as an IDropTarget and implement and forward DragOver calls to this function.
point parameter must be modified to include the WebView's offset and be in the WebView's client coordinates (Similar to how SendMouseInput works).
HRESULT DropTarget::DragOver(DWORD keyState, POINTL cursorPosition, DWORD* effect)
{
POINT point = {cursorPosition.x, cursorPosition.y};
// Convert the screen point to client coordinates add the WebView's offset.
// This returns whether the resultant point is over the WebView visual.
m_viewComponent->OffsetPointToWebView(&point);
return m_webViewCompositionController3->DragOver(keyState, point, effect);
}
Drop
This function corresponds to IDropTarget::Drop.
public HRESULT Drop(IDataObject * dataObject, DWORD keyState, POINT point, DWORD * effect)
This function has a dependency on AllowExternalDrop property of CoreWebView2Controller and return E_FAIL to callers to indicate this operation is not allowed if AllowExternalDrop property is set to false.
The hosting application must register as an IDropTarget and implement and forward Drop calls to this function.
point parameter must be modified to include the WebView's offset and be in the WebView's client coordinates (Similar to how SendMouseInput works).
HRESULT DropTarget::Drop(
IDataObject* dataObject, DWORD keyState, POINTL cursorPosition, DWORD* effect)
{
POINT point = {cursorPosition.x, cursorPosition.y};
// Convert the screen point to client coordinates add the WebView's offset.
// This returns whether the resultant point is over the WebView visual.
m_viewComponent->OffsetPointToWebView(&point);
return m_webViewCompositionController3->Drop(dataObject, keyState, point, effect);
}
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기