Don't load user32 too early on for 16-bit apps, so that app-specific
config can be available while loading it.
This commit is contained in:
parent
dc830b5415
commit
627c9073c7
|
@ -1183,11 +1183,22 @@ HANDLE WINAPI GetFastQueue16( void )
|
|||
TEB *teb = NtCurrentTeb();
|
||||
if (!teb) return 0;
|
||||
|
||||
if (!teb->queue && Callout.InitThreadInput16)
|
||||
if (!teb->queue)
|
||||
{
|
||||
if (!Callout.InitThreadInput16)
|
||||
{
|
||||
THUNK_InitCallout();
|
||||
if (!Callout.InitThreadInput16)
|
||||
{
|
||||
FIXME("InitThreadInput16 callout not found, trouble ahead\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Callout.InitThreadInput16( 0, THREAD_IsWin16(teb)? 4 : 5 );
|
||||
|
||||
if (!teb->queue)
|
||||
FIXME("(): should initialize thread-local queue, expect failure!\n" );
|
||||
if (!teb->queue)
|
||||
FIXME("(): should initialize thread-local queue, expect failure!\n" );
|
||||
}
|
||||
|
||||
return (HANDLE)teb->queue;
|
||||
}
|
||||
|
|
|
@ -34,16 +34,6 @@ int WINAPI wine_initial_task( HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, INT
|
|||
HINSTANCE16 instance;
|
||||
HMODULE user32;
|
||||
|
||||
if (!(user32 = LoadLibraryA( "user32.dll" )))
|
||||
{
|
||||
MESSAGE( "Cannot load user32.dll\n" );
|
||||
ExitProcess( GetLastError() );
|
||||
}
|
||||
pGetMessageA = (void *)GetProcAddress( user32, "GetMessageA" );
|
||||
pTranslateMessage = (void *)GetProcAddress( user32, "TranslateMessage" );
|
||||
pDispatchMessageA = (void *)GetProcAddress( user32, "DispatchMessageA" );
|
||||
THUNK_InitCallout();
|
||||
|
||||
if ((instance = NE_StartMain( main_exe_name, main_exe_file )) < 32)
|
||||
{
|
||||
if (instance == 11) /* try DOS format */
|
||||
|
@ -67,6 +57,15 @@ int WINAPI wine_initial_task( HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, INT
|
|||
|
||||
/* Start message loop for desktop window */
|
||||
|
||||
if (!(user32 = LoadLibraryA( "user32.dll" )))
|
||||
{
|
||||
MESSAGE( "Cannot load user32.dll\n" );
|
||||
ExitProcess( GetLastError() );
|
||||
}
|
||||
pGetMessageA = (void *)GetProcAddress( user32, "GetMessageA" );
|
||||
pTranslateMessage = (void *)GetProcAddress( user32, "TranslateMessage" );
|
||||
pDispatchMessageA = (void *)GetProcAddress( user32, "DispatchMessageA" );
|
||||
|
||||
while ( GetNumTasks16() > 1 && pGetMessageA( &msg, 0, 0, 0 ) )
|
||||
{
|
||||
pTranslateMessage( &msg );
|
||||
|
|
Loading…
Reference in New Issue