IVsObjectList2.DoDragDrop(UInt32, IDataObject, UInt32, UInt32) 方法

定义

请求给定的列表项处理拖放操作。

public:
 int DoDragDrop(System::UInt32 index, Microsoft::VisualStudio::OLE::Interop::IDataObject ^ pDataObject, System::UInt32 grfKeyState, [Runtime::InteropServices::Out] System::UInt32 % pdwEffect);
int DoDragDrop(unsigned int index, Microsoft::VisualStudio::OLE::Interop::IDataObject const & pDataObject, unsigned int grfKeyState, [Runtime::InteropServices::Out] unsigned int & pdwEffect);
public int DoDragDrop (uint index, Microsoft.VisualStudio.OLE.Interop.IDataObject pDataObject, uint grfKeyState, out uint pdwEffect);
abstract member DoDragDrop : uint32 * Microsoft.VisualStudio.OLE.Interop.IDataObject * uint32 * uint32 -> int
Public Function DoDragDrop (index As UInteger, pDataObject As IDataObject, grfKeyState As UInteger, ByRef pdwEffect As UInteger) As Integer

参数

index
UInt32

中指定感兴趣的列表项的索引。

pDataObject
IDataObject

中指向要删除的的指针 IDataObject

grfKeyState
UInt32

中键盘和鼠标修改键的当前状态。

pdwEffect
UInt32

[in,out]输入时,所请求的效果。 输出时,您的对象列表所允许的效果。

返回

Int32

如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。

注解

COM 签名

从 vsshell80:

[C++]

HRESULT IVsObjectList2::DoDragDrop(  
   [in] ULONG Index,   
   [in] IDataObject * pDataObject,   
   [in] DWORD grfKeyState,   
   [in, out]DWORD * pdwEffect  
);  

环境调用 QueryDragDrop 来查看你的对象列表是否支持拖放操作。 如果你返回指示你确实支持所请求操作的调用,并且用户 pDataObject 通过释放鼠标按钮进行删除,则环境将调用 DoDragDrop 。 然后,必须处理请求的操作并返回中的效果 pdwEffect

此方法与标准 COM 方法非常相似 Drop 。 的值 grfKeyState 可以是下列任意数量的按位 "or" 组合: MK_CONTROL、MK_SHIFT、MK_ALT、MK_LBUTTON、MK_MBUTTON 和 MK_RBUTTON。 的值 pdwEffect 取自 DROPEFFECT 枚举。

适用于