Re: How determine the Source application of an OLE Drag & Drop?
- From: "James Brown [MVP]" <not@home>
- Date: Fri, 7 Apr 2006 08:06:20 +0100
"Al Koch" <AlKoch@xxxxxxxxxxxxx> wrote in message
news:ocdb32t2q00c90nselmsbut8fvn0uoe6i9@xxxxxxxxxx
Hello,
My application serves as a Drop Target so that other applications can drop
data onto it. I need to determine what application was
the Drop Source. It is my understanding that OLE D&D uses the clipboard
for its operations. If that is correct it seems that
(unless there is a straightforward way to determine this) that it ought to
be possible to determine the source by way of the
clipboard. (I can determine the app that places something on the
Clipboard with ::GetClipboardOwner() followed by a bunch of
additional work.) But I don't see how to do this for D&D. Since the Drag
Source can be one of many other apps I have no control
over what is put in the data that is drug. How can this be done?
Thank you,
Al Koch
AlKoch@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
In general this it is not possible. Drag+Drop is implemented on top of
COM/RPC and these protocols provide no method to obtain the source of an
operation. If you are trying to detect if it is one of *your* applications
at the source, then simply get it to supply a special clipboard-format (such
as a DWORD which holds the process-id) in the IDataObject so that the target
can check for the existance of this format and then query the
source-application this way.
James
--
Microsoft MVP - Windows SDK
www.catch22.net
Free Win32 Source and Tutorials
.
- Follow-Ups:
- References:
- Prev by Date: Norti function's information
- Next by Date: Re: HookWindows Events
- Previous by thread: How determine the Source application of an OLE Drag & Drop?
- Next by thread: Re: How determine the Source application of an OLE Drag & Drop?
- Index(es):
Relevant Pages
|