On Thu, 15 Mar 2001, Dmitry Timoshkov wrote:
On the related note: Lawson Whitney reported that juno 2.0.11 checks version info of oleaut32.dll and with my recent patch (which has disabled searching of version resources if dll was loaded but version resources were not found) refuses to load.
Well, I added version info into built-in oleaut32.dll, but here another problem arised: LoadLibraryExA explicitly checks for LOAD_LIBRARY_AS_DATAFILE, and then uses SearchPathA to locate a dll. Since SearchPathA can't find built-in dlls LoadLibraryExA returns 0.
With the attached patch my test program is now able to retrieve version info for built-in oleaut32.dll, but I didn't manage to avoid resolving imports for built-in dlls, because they are register themself from the code generated by winebuild.
I tried to propagate 'flags' starting from BUILTIN_LoadLibraryExA, but failed.
Now the question: How to load built-in dll without resolving its imports?
Where's the harm in resolving the imports of the builtin?
In this case, the app has already loaded and used oleaut32 before it gets around to asking about its version.
I tried this patch, and unreverted the GetFileVersionInfo(Size) patch, but juno still isn't happy. With the native dll present, the app asks for its version info and gets the builtin. The ver trace looks a little strange to me - maybe it will make sense to you?
About.exe returns the builtin oleaut32 version, but _only_ if the native oleaut32 is present (if I move it away, About.exe gets size 0), and only if it is given the native dll's filename. Give it the builtin filename and it gets size 0. I think the latter is probably not a problem, but it seems strange to me.
It always astounds me how worked up msdose windose programs get about versions...
Hmmm, msdose has a fairly systematic facility to lie to programs - IIRC, even to a different lie for each program - about version information. Maybe we need something along those lines (gaaa!). I am afraid juno actually wants to see verbatim the whole version block from oleaut32 - the install program for it does install one, right over whatever was there, for all it cares, so it may well consider any deviation fatal. I haven't looked at it in depth yet, but I may have to.
Lawson
This message is brought to you by Wine-20010305, junopine-2.0.2, Juno 2.0.11, and pine-4.10 ---cut here