On Sonntag, 22. Oktober 2017 01:20:43 CEST Nikolay Sivov wrote:
I don't think you need separate export to register classes. As a test create your own dll with such export, and see if it's called from test exe when some referenced class name is requested, as far as I remember this was only used in early versions.
Well, I don't know if it's currently still used on windows, but according to my tests it still works. You can use that function to make comctl32 register one of its classes, for example "Combobox" as "6.0.7601.17514!Combobox".
The other ways I found to make comctl32 register its classes (all of them at once) is to call GetClassInfoExW or CreateWindowExW with windows class WC_BUTTONW/WC_COMBOBOXW/etc. Don't know that internally works though, just loading the library is not enough for it to register its classes, somehow comctl32 needs to be told when to register its classes. Is it a bad idea to use this function for this purpose? AFAIK it's introduced after XP, and is used to register the redirected classes. Correct me if I'm wrong though.
Honestly, I'm not sure if they want custom dlls to export such a function, but it might be possible it's used in comctl32. I'll try to make an own side-by- side dll to test that.
Regards, Fabian Maurer