[Bug 5294] Morpheus crashes

Wine Bugs wine-bugs at winehq.org
Tue May 15 12:28:11 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=5294





------- Additional Comments From focht at gmx.net  2007-15-05 12:28 -------
Hello,

i hope the problem became clear now?
In my essay:

--- quote ---
When the regsvr32 process calls DllRegisterServer, it tries to register its
interfaces by gathering data from .rsrc section (REGISTRY resource types).
This is done by explicit LoadLibraryEx with LOAD_LIBRARY_AS_DATAFILE flag set
and appropriate Find/LoadResource API.
--- quote ---

The phrase "it tries" was meant to be read "the inproc server tries".
Perhaps this lead to misunderstanding :)

Let LOAD_LIBRARY_AS_DATAFILE case just honour already loaded modules.
A possible fix would be:

--- snip dlls/kernel32/module.c ---
static HMODULE load_library( const UNICODE_STRING *libname, DWORD flags )
{
 ..

    if (flags & LOAD_LIBRARY_AS_DATAFILE)
    {
        if( GetModuleHandleW(libname) == 0)
        { 
           /* The method in load_library_as_datafile allows searching for the
            * 'native' libraries only
            */
            if (load_library_as_datafile( libname->Buffer, &hModule )) return
hModule; 
        }
        flags |= DONT_RESOLVE_DLL_REFERENCES; /* Just in case */
        /* Fallback to normal behaviour */ 
     }

   /* do standard loader stuff */
    ...
}
--- snip dlls/kernel32/module.c --- 
 
Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list