[vbox-dev] mouse capture inside vm for dnd (drag and drop)?

Huihong Luo huisinro at yahoo.com
Wed May 13 08:31:00 PDT 2009


Andreas,
 
Will look into that, thanks.
 
We are also investigating the global mouse hook, etc., also trying to re-implement those OLE drag/drop APIs from very low level, and see if can get some clues. 
 
We have our own implementation of the core DoDragDrop() win32 API. 
 
It seems the problems goes down to SetCapture() for the mouse. What we need is a way to capture the mouse to a hidden window automatically. So far, not successfull yet.
 
Huihong

--- On Wed, 5/13/09, Andreas <pentagonik at sun.com> wrote:


From: Andreas <pentagonik at sun.com>
Subject: Re: [vbox-dev] mouse capture inside vm for dnd (drop and drop)?
To: "Huihong Luo" <huisinro at yahoo.com>
Cc: vbox-dev at virtualbox.org
Date: Wednesday, May 13, 2009, 3:36 AM


Huihong,

maybe you could install a separate mouse hook for doing this? In order to hide the guest mouse pointer when its outside the guest window we're using a mouse filter driver (VBoxMouse.sys) to achieve this. There you could also implement newer functionalities like dragging/dropping actions (mouse button handling). Then the driver could notify VboxTray (ring 3, Kernel to User Notification) that something happend like that.

-Andreas.



Huihong Luo wrote:
> We are trying to implement drag and drop from host to guest, and get stuck on it.
>  We figured how to accept drops and send the data to VBoxTray.exe running in guest vm. The problem is how to continue the drag and drop operations inside vm? We need to tell VBoxTray to initiate the drag operations, and we have difficult doing this.
>  When mouse moves to vm window while pressed down, how do you informs VBoxTray.exe to handle the mouse events? Seems no applications are getting the mouse events? We need to let a window proc to be called, and then start drag and drop from there.
>  In order to initiate a drag/drop operations, usually requires the mouse is clicked and moved over a visible window. We try to use a hidden window inside vm to initiate a call to the ole ::DoDragDrop() method, so far no luck. The hidden windows does not get the mouse events.
>  perhaps, we are in wrong direction, any suggestions?
>  Thanks,
>  Huihong
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> vbox-dev mailing list
> vbox-dev at virtualbox.org
> http://vbox.innotek.de/mailman/listinfo/vbox-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.virtualbox.org/pipermail/vbox-dev/attachments/20090513/d4197eba/attachment-0001.html 


More information about the vbox-dev mailing list