WM_GETTEXTLENGTH returns double size

Andriy Palamarchuk apa3a at yahoo.com
Thu Jun 13 07:44:20 CDT 2002

Andriy Palamarchuk wrote:
>This happens in code which unmaps message, mapped
>ASCII to Unicode.
>See windows/winproc.c, function
>    case LB_GETTEXTLEN:
>        /* there may be one DBCS char for each
>char */
>        return result * 2;
>What is the correct way to handle double-byte
>characters in this situation?

The best approach I could think of is to send an
internal message from this location which returns
lengths of Unicode and ASCII strings. This message
will be processed only by our controls.
If lengths of the Unicode strings are the same this
means that both are generated by our code for the same
text and I return the A length. If the lengths are
different this means length was generated not in our
code and I keep existing behavior (return double
original Unicode length).

This method looks pretty safe and gives correct
behavior in almost all cases.

Comments, suggestions?

Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup

More information about the wine-devel mailing list