[PATCH v5] comctl32: Implement handling of EM_SETCUEBANNER/EM_GETCUEBANNER messages.

Sergio Gómez Del Real sdelreal at codeweavers.com
Sat Oct 27 15:10:35 CDT 2018


On 27/10/18 4:55 a. m., Nikolay Sivov wrote:
> On 10/24/2018 10:46 PM, Sergio Gómez Del Real wrote:
>
>> +static BOOL EDIT_EM_GetCueBanner(EDITSTATE *es, WCHAR *buf, DWORD size)
>> +{
>> +    if (!es->cue_banner_text)
>> +    {
>> +        if (!(es->style & ES_MULTILINE) && buf && size)
>> +            *buf = 0;
>> +        return FALSE;
>> +    }
>
> I think it's better to move multiline test outside, before testing 
> anything else.
>
Ok.
>> +    else
>> +    {
>> +        if (buf && size)
>> +            lstrcpynW(buf, es->cue_banner_text, size);
>> +        return TRUE;
>> +    }
>> +}
> You can remove zero size check.
>
Ok. Sorry about this; I should've just read these functions to see what 
they do exactly instead of just assuming things.
>> +    case EM_SETCUEBANNER:
>> +        result = EDIT_EM_SetCueBanner(es, (const WCHAR *)lParam);
>> +        break;
> How did you test wParam flag? It seems to work for me as docs describe.
>
I tested writing a sample program on Windows 7, 32-bits. On that same 
OS, I got the same results using ControlSpy (for WPARAM it said it was 
unused). Then I googled a bit and read at a couple of places that indeed 
'Windows' ignores that flag; it always behaves as if WPARAM is 0. That 
is not enough to conclude that all versions of Windows behave the same, 
of course. What version did you try, and what should we do with this OS 
dependence?



More information about the wine-devel mailing list