[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: Howto: 16 bit callbacks
From:       Marcus Meissner <marcus () jet ! franken ! de>
Date:       1999-04-29 6:26:15
[Download RAW message or body]

> In winuser16.h the definition of MSGBOXPARAMS16 seems wrong, since
> it holds 32 bit callbacks, and this is a 16 bit interface.
> It is used only as an interface to MessageBoxIndirect16().
> 
> I was looking in winuser16.h and could not find how the 16 bit API 
> should define callbacks. I have a gut feeling that it should be
> a SEGPTR, which will have to be converted to a 32 bit pointer inside
> MessageBoxIndirect16().

Well, no.

First, HELPINFO (argument passed as pointer to MSGBOXCALLBACK) is different
between win32 and win16 too. So you'll need to define HELPINFO16 and
MSGBOXCALLBACK16. Converting ... Well, don't. We should do that if we decide
to call it ;)

If we want to call it... We can't just make a linear pointer out of
the win16 callback. MessageBoxIndirect16 needs to create a thunk, convert the
arguments on calling the callback and call it. Some examples are in
if1632/thunk.c, a bit difficult to explain.
 
Ciao, Marcus


=========================================================================

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic