[shell-coding] Re: SysTray changes in Windows 7 Beta compared to Vista

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: