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.