[shell-coding] Re: SysTray changes in Windows 7 Beta compared to Vista
- From: "Karl-Henrik Henriksson [qwilk]" <qwilk@xxxxxxxxxxx>
- To: shell-coding@xxxxxxxxxxxxx
- Date: Sat, 7 Feb 2009 01:17:36 +0100
Hi ilmcuts,
yeah I noticed that too a few minutes after I sent the previous email;
it just didn't occur to me to check the cbSize the first time around.
In other words we have...
Windows 2000 -> SHELLAPPBARDATAV1 = 48 bytes, of which APPBARDATAV1 =
36 bytes
Windows XP -> SHELLAPPBARDATAV2 = 56 bytes, of which APPBARDATAV2 =
40 bytes
Windows Vista -> SHELLAPPBARDATAV2 = 56 bytes, of which APPBARDATAV2
= 40 bytes
Windows 7 -> SHELLAPPBARDATAV3 = 64 bytes, of which APPBARDATAV2 =
40 bytes
...and assuming dwMessage will continue to be placed right after the
APPBARDATA, I guess it should be possible to just offset the
SHELLAPPBARDATA pointer by cbSize to point to dwMessage, regardless of
version.
And yes, trace/debug messages are nice... :)
BR//Karl -> qwilk
----------
On 7 feb 2009, at 00.36, ilmcuts wrote:
Karl-Henrik Henriksson [qwilk] wrote:
...another change in Windows 7 Beta is that the size of the AppBar
data blob sent to the shell (commonly referred to as e.g.
"SHELLAPPBARDATA" to differentiate it from the actual APPBARDATA
struct) is now 64 bytes, whereas it used to be 56 bytes in Windows
XP and Vista, and 48 bytes in Windows 2000. Has anyone figured out
what those extra 8 bytes are for and whether or not the position of
e.g. dwMessage has changed? (...I haven't had time to trace it
myself yet...)
Hi,
I'll probably take a look at these things over the next few days/
next week. I had already noticed the odd appbar size (we have nice
TRACEs for that sort of thing), but all I can say at this point is
that the embedded APPBARDATA struct seems unchanged, as the first 4
bytes of lpData are set to 0x28.
There's also some odd stuff going on with SHLoadInProc/
SHEnableServiceObject and WM_USER+216 messages sent to
Shell_TrayWnd. SHLoadInProc is no longer implemented on Vista and
up, but SHEnableServiceObject is still around. It only appears to
accept certain CLSIDs though (whitelisted in Explorer.exe?).
I have no clue currently where the WM_USER+216 messages come from,
but I see them sent/posted to Shell_TrayWnd on a regular basis.
Again, TRACEs are nice. :)
-ilmcuts
__________________________________________________
Subscription options and archive:
http://www.freelists.org/list/shell-coding
__________________________________________________
Subscription options and archive:
http://www.freelists.org/list/shell-coding
Other related posts: