The inability to move application windows is by
design, desktops
wouldn't count as a "secure object" otherwise. You can move threads
across desktops, but only as long as they don't have windows and other
similar things.
Sure. But I would like to be able to implement this feature, so I choose
not to use the CreateDesktop() API.
About sharing the tray, you could do this by creating
a memory mapped
file or some other kind of shared memory which holds the internal NID
list. At least if you want to use separate instances of Explorer. If you
just want a single instance it's easier to share data, but it's more
difficult to implement the rest. =) You need to create one thread per
desktop and duplicate all UI elements in all those threads. I have never
tried to implement this particular scenario, but it appears to be
possible. Personally I'd go the one-process-per-desktop route with
shared memory.
Well - this may be possbible. But it sounds a bit complicated.
The approach to hide windows using SW_HIDE or move them somewhere
abroad into non-visibility is simple and effective.
Note that if you're just after VWM-style
functionality, you don't really
need to use those APIs. What Litestep does is simply moving the windows
off-screen, for example 10000 pixels to the right. Except for some
glitches with the recent XP Styles, this has worked fine since '97 or
'98. I can point you to some GPL'ed implementations if you want; if you
want to test the binaries go to
www.litestep.net, register (requirement
by the host, we don't complain for $0 hosting), and download the
installer.
Well, my implementation also works already (if you don't count a few
bugs that are included), so I will leave it this way.
Regards,
Martin
--
Martin Fuchs
martin-fuchs(a)gmx.net
GMX ProMail (250 MB Mailbox, 50 FreeSMS, Virenschutz, 2,99 EUR/Monat...)
jetzt 3 Monate GRATIS + 3x DER SPIEGEL +++
http://www.gmx.net/derspiegel +++