unicodify CreateMetaFile

Dmitry Timoshkov dmitry at baikal.ru
Sun Mar 28 04:57:08 CST 2004


"Mike McCormack" <mike at codeweavers.com> wrote:

> -HDC WINAPI CreateMetaFileW(LPCWSTR filename)
> +HDC WINAPI CreateMetaFileA(LPCSTR filename)
>  {
> -    LPSTR filenameA;
> +    LPWSTR filenameW;
>      DWORD len;
>      HDC hReturnDC;
>  
> -    if (!filename) return CreateMetaFileA(NULL);
> +    if (!filename) return CreateMetaFileW(NULL);
>  
> -    len = WideCharToMultiByte( CP_ACP, 0, filename, -1, NULL, 0, NULL, NULL );
> -    filenameA = HeapAlloc( GetProcessHeap(), 0, len );
> -    WideCharToMultiByte( CP_ACP, 0, filename, -1, filenameA, len, NULL, NULL );
> +    len = MultiByteToWideChar( CP_ACP, 0, filename, -1, NULL, 0 );
> +    filenameW = HeapAlloc( GetProcessHeap(), 0, len );
> +    MultiByteToWideChar( CP_ACP, 0, filename, -1, filenameW, len );

MultiByteToWideChar returns number of characters, not bytes. You have
to allocate len * sizeof(WCHAR) bytes.

-- 
Dmitry.




More information about the wine-devel mailing list