Menu

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

Download this file

161 lines (141 with data), 5.9 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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
{
* UNulDropTarget.pas
*
* Contains class that implements the IDropTarget interface that is designed to
* inhibit all drag and drop operations.
*
* $Rev$
* $Date$
*
* ***** BEGIN LICENSE BLOCK *****
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* The Original Code is UNulDropTarget.pas, formerly UWBNulDropTarget.pas
*
* The Initial Developer of the Original Code is Peter Johnson
* (http://www.delphidabbler.com/).
*
* Portions created by the Initial Developer are Copyright (C) 2006-2010 Peter
* Johnson. All Rights Reserved.
*
* Contributor(s)
* NONE
*
* ***** END LICENSE BLOCK *****
}
unit UNulDropTarget;
interface
uses
// Delphi
ActiveX, Windows;
type
{
TNulDropTarget:
Implementation of IDropTarget designed to inhibit all drag and drop
operations.
}
TNulDropTarget = class(TInterfacedObject,
IDropTarget
)
protected
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.