http://bugs.winehq.org/show_bug.cgi?id=14980
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com Status|CLOSED |REOPENED Component|richedit |ntdll Resolution|WONTFIX |
--- Comment #15 from Dan Kegel dank@kegel.com 2009-02-27 13:37:24 --- Alexandre suggests in http://www.winehq.org/pipermail/wine-devel/2009-February/073288.html that it would be ok for the loader to check the version of the native dll with the version of the builtin one, and use the native one if higher.
A few links related to version checking: http://msdn.microsoft.com/en-us/library/yw3yyscd(VS.80).aspx http://www.codeproject.com/KB/cpp/UpdateVersion.aspx
(Here are some messy notes about retrieving resources from inside ntdll. actctx already does this kind of thing, so looking there for ideas is probably good. hModule = LoadLibraryExW(filename, 0, LOAD_LIBRARY_AS_DATAFILE); // -> use LdrGetDllHandle instead in ntdll? hRsrc = FindResourceW(hModule, MAKEINTRESOURCEW(VS_VERSION_INFO), MAKEINTRESOURCEW(VS_FILE_INFO)); // -> use LdrFindResource_U instead in ntdll? len = SizeofResource(hModule, hRsrc); hMem = LoadResource(hModule, hRsrc); // LdrAccessResource in ntdll? buf = LockResource(hMem); vffi = (VS_FIXEDFILEINFO *)VersionInfo32_Value( (VS_VERSION_INFO_STRUCT32 *)buf ); verify that ( vffi->dwSignature == VS_FFI_SIGNATURE ) access vffi->dwFileVersionMS and vffi->dwFileVersionMS FreeResource(hMem); )