Recent User32 <=> windowClass assembly findings

Nikolay Sivov bunglehead at gmail.com
Sun Dec 20 09:16:17 CST 2009


Hopefully my first attempt to implement class redirection wasn't committed
---
http://source.winehq.org/patches/data/56761
---
cause it's definitely incomplete.

After some testing I've got new info here (to be added to patch comments 
above):
1) not statically linked sxs module is loaded not only on window 
creation but
   on GetClassInfo() (GetClassInfoEx() is to be tested but I think it's 
the same).
   This is a case only on vista+ systems, xp doesn't attempt to load 
assembly on
   GetClassInfo();
2) "versioned" attribute in windowClass element affects redirection 
behavior,
    when set to "no" user32 doesn't try to load assembly at all.

Second problem requires a FindActCtxSectionString() to actually fill key 
data
with undocumented format, I did some dumping basing on length value 
reported:
similar way it's done for dll redirection test (with a dword pointer) 
and useful
fields are actually obvious - such as classname and module name.

First problem stops me cause I don't know what way to prefer here.
Any advices are welcome.

P.S. Maybe it helps - native returned class data in case of vista+ and 
comctl32 v6
contains pointers to winproc as "FFFFxxxx" format, high word is 
constant. Personally
I don't know what is supposed to mean, builtin classes without 
redirection don't show
such patterns.



More information about the wine-devel mailing list