Menu

[r47]: / trunk / Src / UWBNulDropTarget.pas  Maximize  Restore  History

Download this file

176 lines (154 with data), 6.7 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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
{ ##
@FILE UWBNulDropTarget.pas
@COMMENTS Contains class that implements IDropTarget interface
that is designed to be associated with a web browser
control to inhibit drag and drop operations.
@PROJECT_NAME CodeSnip
@PROJECT_DESC Offline viewer for routines from the online
DelphiDabbler CodeSnip database.
@DEPENDENCIES None
@HISTORY(
@REVISION(
@VERSION 0.1
@DATE 16/04/2006
@COMMENTS Original version.
)
@REVISION(
@VERSION 1.0
@DATE 24/05/2006
@COMMENTS Improved and corrected comments.
)
)
}
{
* ***** 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 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 Peter
* Johnson. All Rights Reserved.
*
* Contributor(s): None
*
* ***** END LICENSE BLOCK *****
}
unit UWBNulDropTarget;
interface
uses
// Delphi
ActiveX, Windows;
type
{
TWBDropTarget:
Implementation of IDropTarget designed to be associated with a web browser
control to inhibit drag and drop operations.
}
TWBNulDropTarget = 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
{ TWBNulDropTarget }
function TWBNulDropTarget.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 TWBNulDropTarget.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 TWBNulDropTarget.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 TWBNulDropTarget.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.