mlang: Implement IMultiLanguage2::ConvertStringInIStream.

Dmitry Timoshkov dmitry at codeweavers.com
Mon Nov 10 21:48:17 CST 2008


"Hans Leidekker" <hans at codeweavers.com> wrote:

> +    while (1)
> +    {
> +        hr = IStream_Read(pstmIn, src, sizeof(src), &bytes_read);
> +        if (FAILED(hr)) goto exit;
> +
> +        srclen = bytes_read;
> +        dstlen = buffer_size;
> +        ConvertINetString(pdwMode, dwSrcEncoding, dwDstEncoding, src, &srclen, NULL, &dstlen);
> +        if (dstlen > buffer_size)
> +        {
> +            dst = HeapReAlloc(GetProcessHeap(), 0, dst, dstlen);
> +            if (!dst) return E_OUTOFMEMORY;
> +            buffer_size = dstlen;
> +        }
> +
> +        hr = ConvertINetString(pdwMode, dwSrcEncoding, dwDstEncoding, src, &srclen, dst, &dstlen);
> +        if (FAILED(hr)) goto exit;
> +
> +        hr = IStream_Write(pstmOut, dst, dstlen, NULL);
> +        if (FAILED(hr)) goto exit;
> +
> +        if (bytes_read != sizeof(src)) break;
> +    }
> +
> +exit:

'break' instead of 'goto' would be cleaner IMO.

-- 
Dmitry.



More information about the wine-devel mailing list