<div><br></div><div><br><div class="gmail_quote"><div dir="ltr">On Tue, 29 Jan 2019 at 11:32, Dmitry Timoshkov <<a href="mailto:dmitry@baikal.ru">dmitry@baikal.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nikolay Sivov <<a href="mailto:nsivov@codeweavers.com" target="_blank">nsivov@codeweavers.com</a>> wrote:<br>
<br>
> >>> According to dumpbin output imm32 in Windows doesn't import ole32 directly,<br>
> >>> most likely it loads it manually only when really needed. So, it would<br>
> >>> probably be better to either use delay loading, or also load it manually,<br>
> >>> and make sure that ole32 is never loaded for languages that don't need IME.<br>
> >> I doesn't depend on the language, it will work as long as IME is not<br>
> >> disabled for thread/process.<br>
> > As far as I can see from the tests IME messages are optional, and that<br>
> > means that IME is completely disabled in some Windows configurations.<br>
> > For instance I don't get IME messages in 2 of 3 my Windows machines.<br>
> That's hardly relevant, if it's disabled patch will skip initialization.<br>
<br>
This means that under Windows ole32 is probably not always get loaded, and<br>
that basically means that your patch is wrong.</blockquote><div dir="auto"><br></div><div dir="auto">So why is that important?</div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> >> Why would it better to delay-load?<br>
> > Because loading ole32 is very expensive.<br>
> What's expensive about it?<br>
<br>
Mostly dependencies and initialization.</blockquote><div dir="auto"><br></div><div dir="auto">Be more specific please. Which dependency and what is slow about initialization. </div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
> >> It will be called practically always<br>
> >> for GUI applications.<br>
> > Adding a convincing test case would be also helpful.<br>
> I don't think so, it's clearly internal behavior. If you're really <br>
> interested there is a test at <br>
> <a href="https://bugs.winehq.org/show_bug.cgi?id=42695" rel="noreferrer" target="_blank">https://bugs.winehq.org/show_bug.cgi?id=42695</a>, that works regardless of <br>
> your input language, and doesn't work if application disables IME for <br>
> itself.<br>
<br>
The tests don't work this way, especially if you change how low level<br>
functionality works. Adding an ole32 dependency to the user32 subsystem<br>
needs very convincing arguments.</blockquote><div dir="auto"><br></div><div dir="auto">Thanks. I already explained why, not going to repeat myself. I’ll wait for a second opinion on that one. </div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
-- <br>
Dmitry.<br>
<br>
<br>
</blockquote></div></div>