Alexandre Julliard julliard at
Fri Sep 27 12:06:23 CDT 2002

"Dimitrie O. Paun" <dpaun at> writes:

> This DLL stuff is a bit confusing. In dlls/user/user32.spec we have
> 409 pascal16 InitThreadInput(word word) InitThreadInput16
> so the exported name is InitThreadInput, right?

No, that line is not in user32.spec, it's in user.exe.spec which is
the 16-bit one. 16-bit functions cannot be imported from other dlls
since this would require calling down to 16-bit which we want to
avoid. So that InitThreadInput export is only available for 16-bit
binaries, not for Winelib dlls.

> Then how come in ./dlls/x11drv/desktop.c we call it like so:
>     win->hmemTaskQ = InitThreadInput16( 0, 0 );
> Shouldn't this yield an error?

It should, but to work around it we have added an InitThreadInput16
export in user32.spec; this time it's a normal 32-bit export so it can
be used from other dlls. This is really a hack because Windows doesn't
do it like this of course.

Alexandre Julliard
julliard at

More information about the wine-devel mailing list