[PATCH] imm32: Automatically initialize COM on window activation.
Dmitry Timoshkov
dmitry at baikal.ru
Tue Jan 29 02:32:19 CST 2019
Nikolay Sivov <nsivov at codeweavers.com> wrote:
> >>> According to dumpbin output imm32 in Windows doesn't import ole32 directly,
> >>> most likely it loads it manually only when really needed. So, it would
> >>> probably be better to either use delay loading, or also load it manually,
> >>> and make sure that ole32 is never loaded for languages that don't need IME.
> >> I doesn't depend on the language, it will work as long as IME is not
> >> disabled for thread/process.
> > As far as I can see from the tests IME messages are optional, and that
> > means that IME is completely disabled in some Windows configurations.
> > For instance I don't get IME messages in 2 of 3 my Windows machines.
> That's hardly relevant, if it's disabled patch will skip initialization.
This means that under Windows ole32 is probably not always get loaded, and
that basically means that your patch is wrong.
> >> Why would it better to delay-load?
> > Because loading ole32 is very expensive.
> What's expensive about it?
Mostly dependencies and initialization.
> >> It will be called practically always
> >> for GUI applications.
> > Adding a convincing test case would be also helpful.
> I don't think so, it's clearly internal behavior. If you're really
> interested there is a test at
> https://bugs.winehq.org/show_bug.cgi?id=42695, that works regardless of
> your input language, and doesn't work if application disables IME for
> itself.
The tests don't work this way, especially if you change how low level
functionality works. Adding an ole32 dependency to the user32 subsystem
needs very convincing arguments.
--
Dmitry.
More information about the wine-devel
mailing list