Re: SysTray changes in Windows 7 Beta compared to Vista
"Karl-Henrik Henriksson [qwilk]" <[email protected]> Sat, 7 Feb 2009 01:17:36 +0100
| Newsgroups | gmane.comp.windows.shell-shocked.devel |
|---|---|
| Message-ID | <[email protected]> |
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