Get rid of W->A calls : help me help ?
James Hawkins
truiken at gmail.com
Wed Aug 25 12:30:33 CDT 2004
Hey Joris, I would be glad to write a howto for your and possibly
others. I will get started on that soon.
On 25 Aug 2004 11:43:57 -0400, Vincent Béron
<vberon at mecano.gme.usherb.ca> wrote:
> Le mer 25/08/2004 à 11:27, Joris Huizer a écrit :
> [snip]
> > Hi James,
> >
> > Yeah I would like that, thanks for suggesting :)
> > I'll try and do a search on unicode functions and stuff but -- well, you
> > have seen more of wine specific details ...
> >
> > Also, I think it'd be smart to put something like that online (like..
> > linking from the janitorial page to that one?)
> > By the way... Is there some kind of overview of what parts is already
> > being worked on; we don't want to do double work right ;)
>
> Already done work is grayed-out or simply removed from the janitorial
> page.
>
> Also take note (François? Any perl hacker?) that the method used to find
> the cross-calls (winapi_check) is not 100% proof. There are some valid C
> statements which contain a cross-call which are not found. Look at
> dlls/lzexpand/lzexpand_main.c GetExpandedNameW:
>
> INT WINAPI GetExpandedNameW( LPWSTR in, LPWSTR out )
> {
> INT ret;
> DWORD len = WideCharToMultiByte( CP_ACP, 0, in, -1, NULL, 0, NULL,
> NULL );
> char *xin = HeapAlloc( GetProcessHeap(), 0, len );
> char *xout = HeapAlloc( GetProcessHeap(), 0, len+3 );
> WideCharToMultiByte( CP_ACP, 0, in, -1, xin, len, NULL, NULL );
> if ((ret = GetExpandedNameA( xin, xout )) > 0)
> MultiByteToWideChar( CP_ACP, 0, xout, -1, out, strlenW(in)+4 );
> HeapFree( GetProcessHeap(), 0, xin );
> HeapFree( GetProcessHeap(), 0, xout );
> return ret;
> }
>
> The A call is between parenthesis and winapi_check can't find it.
> winapi_check would need to be modified to find those, as I'm sure that's
> not the only one in the whole tree.
>
> Vincent
>
>
--
James Hawkins
More information about the wine-devel
mailing list