[PATCH 2/3] user32: Add support for window class redirection with SxS manifest

Nikolay Sivov bunglehead at gmail.com
Thu Dec 17 16:00:54 CST 2009


This is the main one, code was tested with a primitive application (modified a bit)
that I posted some days ago to wine-devel.

All aspects I discovered with it are implemented with this patch:

- if manifest contains a builtin class redirect then builtin isn't registered
  on dll load, e.g. you can't create Button if you have it in manifest but
  you SxS module isn't loaded;
- if a SxS module isn't loaded when window is about to created a registration
  attempt will be done, but it's useless - looks like user32 LoadLibrary()/FreeLibrary() it
  to call RegisterClassNameW(). A LoadLibrary() before window creation will keep
  SxS module from unloading from user32, this is also tested and is the same with native;
- on failed GetProcAddress() or RegisterClassNameW() no builtin registration
  performed, it's just left as is;
- no exception guards used to protect RegisterClassNameW() - I crashed it successfully
  with explicit null pointer dereference in dll code.



More information about the wine-patches mailing list