IVsHierarchyDropDataTarget.DragEnter Method
Called as soon as the mouse drags an item over a new hierarchy or hierarchy window.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop (in Microsoft.VisualStudio.Shell.Interop.dll)
Syntax
'Declaration
Function DragEnter ( _
pDataObject As IDataObject, _
grfKeyState As UInteger, _
itemid As UInteger, _
<OutAttribute> ByRef pdwEffect As UInteger _
) As Integer
int DragEnter(
IDataObject pDataObject,
uint grfKeyState,
uint itemid,
out uint pdwEffect
)
int DragEnter(
[InAttribute] IDataObject^ pDataObject,
[InAttribute] unsigned int grfKeyState,
[InAttribute] unsigned int itemid,
[InAttribute] [OutAttribute] unsigned int% pdwEffect
)
abstract DragEnter :
pDataObject:IDataObject *
grfKeyState:uint32 *
itemid:uint32 *
pdwEffect:uint32 byref -> int
function DragEnter(
pDataObject : IDataObject,
grfKeyState : uint,
itemid : uint,
pdwEffect : uint
) : int
Parameters
pDataObject
Type: Microsoft.VisualStudio.OLE.Interop.IDataObject[in] Pointer to the IDataObject interface on the item being dragged. This data object contains the data being transferred in the drag-and-drop operation. If the drop occurs, then this data object (item) is incorporated into the hierarchy window.
grfKeyState
Type: UInt32[in] Current state of the keyboard and the mouse modifier keys. Valid values are shown in the following table. These values can be combined using a bitwise OR operator.
[1|1] Hex
[1|2] Value
[1|3] Description
[2|1] 0x0001
[2|2] MK_LBUTTON
[2|3] Left mouse button is clicked.
[3|1] 0x0002
[3|2] MK_RBUTTON
[3|3] Right mouse button is clicked.
[4|1] 0x0004
[4|2] MK_SHIFT
[4|3] SHIFT key is pressed.
[5|1] 0x0008
[5|2] MK_CONTROL
[5|3] CONTROL key is pressed.
[6|1] 0x0010
[6|2] MK_MBUTTON
[6|3] Middle mouse button is clicked.
[7|1] 0x0020
[7|2] MK_ALT
[7|3] ALT key is pressed.
itemid
Type: UInt32[in] Item identifier of the item currently being dragged. For a list of itemid values, see VSITEMID.
pdwEffect
Type: UInt32%[in, out] On entry, pointer to the value of the pdwEffect parameter of the IVsHierarchy object, identifying all effects that the hierarchy supports. On return, must contain one of the effect flags that indicate the result of the drop operation. For more information, see IVsHierarchyDropDataSource2.
Return Value
Type: Int32
If the method succeeds, it returns S_OK. If it fails, it returns an error code.
Remarks
COM Signature
From vsshell.idl:
HRESULT IVsHierarchyDropDataTarget::DragEnter(
[in]IDataObject * pDataObject,
[in]DWORD grfKeyState,
[in]VSITEMID itemid,
[in, out]DWORD * pdwEffect
);
The DragEnter method is called when an item first enters the hierarchy window or when the item is dragged over a new hierarchy. After calling the DragEnter method, the hierarchy calls the DragOver method until the item leaves the new hierarchy or hierarchy window, at which point it calls the DragLeave or Drop method.
The DragEnter method also passes in the state of the keyboard keys and mouse buttons (whether one or more is being pressed).
Drop effects are included in the pdwEffect parameter and describe the action associated with a drop operation. The following table shows possible pdwEffect values and their descriptions:
Note
These effects are exclusive and cannot be combined using the bitwise OR operator.
EFFECT name |
Value 1 |
Description |
---|---|---|
DROPEFFECT_NONE |
0 |
Drop target (hierarchy window) cannot accept the data. No drop would be allowed. |
DROPEFFECT_COPY |
1 |
Dropped item remains in the source and a copy of it is added to the target. |
DROPEFFECT_MOVE |
2 |
Dropped item was added to the target. The item is removed from the source and its storage is deleted. |
DROPEFFECT_LINK |
4 |
A link to the source item is added to the target. The source item should then be removed from the source but the storage should remain so that the link is not broken. A link is a special case of move. |
The values of the pwdEffects parameter are taken from the DragDropEffects enumeration.
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.