Menu

[r3166]: / trunk / Src / UNulDropTarget.pas  Maximize  Restore  History

Download this file

141 lines (121 with data), 5.3 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
{
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at http://mozilla.org/MPL/2.0/
*
* Copyright (C) 2006-2013, Peter Johnson (www.delphidabbler.com).
*
* $Rev$
* $Date$
*
* Contains class that implements the IDropTarget interface that is designed to
* inhibit all drag and drop operations.
}
unit UNulDropTarget;
interface
uses
// Delphi
ActiveX, Windows;
type
{
TNulDropTarget:
Implementation of IDropTarget designed to inhibit all drag and drop
operations.
}
TNulDropTarget = class(TInterfacedObject,
IDropTarget
)
public
{ IDropTarget methods }
function DragEnter(const dataObj: IDataObject; grfKeyState: Longint;
pt: TPoint; var dwEffect: Longint): HResult; stdcall;
{Determines whether a drop can be accepted and its effect if it is
accepted. We indicate drops not accepted and do nothing else.
@param dataObj Data object being transferred in the drag-and-drop
operation.
@param grfKeyState Current state of keyboard modifier keys.
@param pt Cursor co-ordinates in drop target window.
@param dwEffect Specifies current effect flag per DROPEFFECT_* flags.
@return S_OK if method completes successfully or error values otherwise.
}
function DragOver(grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
{Provides target feedback to the user as mouse moves over drop window. We
indicate that drop is not accepted.
@param grfKeyState Current state of keyboard modifier keys.
@param pt Cursor co-ordinates in drop target window.
@param dwEffect Specifies current effect flag per DROPEFFECT_* flags.
@return S_OK if method completes successfully or error values otherwise.
}
function DragLeave: HResult; stdcall;
{Removes target feedback and releases the data object. We do nothing.
@return S_OK if method completes successfully or error values otherwise.
}
function Drop(const dataObj: IDataObject; grfKeyState: Longint; pt: TPoint;
var dwEffect: Longint): HResult; stdcall;
{Called when user drops data object on drop window. Incorporates source
data into target window, removes target feedback and releases data object.
In this case we no nothing.
@param dataObj Data object being transferred in the drag-and-drop
operation.
@param grfKeyState Current state of keyboard modifier keys.
@param pt Cursor co-ordinates in drop target window.
@param dwEffect Specifies current effect flag per DROPEFFECT_* flags.
@return S_OK if method completes successfully or error values otherwise.
}
end;
implementation
{ TNulDropTarget }
function TNulDropTarget.DragEnter(const dataObj: IDataObject;
grfKeyState: Integer; pt: TPoint; var dwEffect: Integer): HResult;
{Determines whether a drop can be accepted and its effect if it is accepted.
We indicate drops not accepted and do nothing else.
@param dataObj Data object being transferred in the drag-and-drop operation.
@param grfKeyState Current state of keyboard modifier keys.
@param pt Cursor co-ordinates in drop target window.
@param dwEffect Specifies current effect flag per DROPEFFECT_* flags.
@return S_OK if method completes successfully or error values otherwise.
}
begin
// Indicate we don't accept drag-drop
dwEffect := DROPEFFECT_NONE; // "no entry" drop cursor
Result := S_OK;
end;
function TNulDropTarget.DragLeave: HResult;
{Removes target feedback and releases the data object. We do nothing.
@return S_OK if method completes successfully or error values otherwise.
}
begin
Result := S_OK;
end;
function TNulDropTarget.DragOver(grfKeyState: Integer; pt: TPoint;
var dwEffect: Integer): HResult;
{Provides target feedback to the user as mouse moves over drop window. We
indicate that drop is not accepted.
@param grfKeyState Current state of keyboard modifier keys.
@param pt Cursor co-oridinates in drop target window.
@param dwEffect Specifies current effect flag per DROPEFFECT_* flags.
@return S_OK if method completes successfully or error values otherwise.
}
begin
// Indicate we don't accept drag-drop
dwEffect := DROPEFFECT_NONE; // "no entry" drop cursor
Result := S_OK;
end;
function TNulDropTarget.Drop(const dataObj: IDataObject; grfKeyState: Integer;
pt: TPoint; var dwEffect: Integer): HResult;
{Called when user drops data object on drop window. Incorporates source data
into target window, removes target feedback and releases data object. In this
case we no nothing.
@param dataObj Data object being transferred in the drag-and-drop operation.
@param grfKeyState Current state of keyboard modifier keys.
@param pt Cursor co-oridinates in drop target window.
@param dwEffect Specifies current effect flag per DROPEFFECT_* flags.
@return S_OK if method completes successfully or error values otherwise.
}
begin
// Indicate we don't accept drag-drop
dwEffect := DROPEFFECT_NONE; // "no entry" drop cursor
Result := S_OK;
end;
end.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.