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