Support filter expressions consisting of basic comparison operators in DevGetObjects(Ex).
--
v9: cfgmgr32: Implement support for basic filter expressions in DevGetObjects.
cfgmgr32: Validate DEVPROP_FILTER_EXPRESSION values passed to Dev{GetObjects, CreateObjectQueryEx}.
cfgmgr32/tests: Add some tests for calling DevGetObjects with filters.
cfgmgr32: Implement DevFindProperty.
cfgmgr32: Add stub for DevFindProperty.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8723
uiLengthDrawn should represent the number of characters that have been processed.
However, the original implementation uses len (the count of displayed characters
in the current line), which is not accurate.
When text requires line breaks or special processing (such as adding an ellipsis),
the actual number of processed characters may differ from the number of displayed
characters.
When the DT_CALCRECT flag is absent, len gets decremented to 0 during the drawing loop.
Consequently, uiLengthDrawn becomes inaccurate since it relies on len's value for statistics.
--
v6: user32: Fix uiLengthDrawn calculation in DrawTextExW().
https://gitlab.winehq.org/wine/wine/-/merge_requests/8178
uiLengthDrawn should represent the number of characters that have been processed.
However, the original implementation uses len (the count of displayed characters
in the current line), which is not accurate.
When text requires line breaks or special processing (such as adding an ellipsis),
the actual number of processed characters may differ from the number of displayed
characters.
When the DT_CALCRECT flag is absent, len gets decremented to 0 during the drawing loop.
Consequently, uiLengthDrawn becomes inaccurate since it relies on len's value for statistics.
--
v5: user32: Fix uiLengthDrawn calculation in DrawTextExW().
user32/tests: Add some tests for uiLengthDrawn calculation in DrawTextExW().
https://gitlab.winehq.org/wine/wine/-/merge_requests/8178
On Sun Aug 10 10:13:54 2025 +0000, JiangYi Chen wrote:
> If the `(LPWSTR)` cast in `(LPWSTR)L"a 1\tb2c3"` is removed, the
> compilation warning shown in the image below will appear during
> compilation. I don't want to add constant string definitions like
> `tabstring[]` inside the test_DrawTextCalcRect() function, so I directly
> used the `(LPWSTR)` cast.
> 
Okay. Let's keep it then.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8178#note_112570
On Fri Aug 8 09:27:01 2025 +0000, Zhiyi Zhang wrote:
> You can remove `(LPWSTR)` cast.
If the `(LPWSTR)` cast in `(LPWSTR)L"a 1\tb2c3"` is removed, the compilation warning shown in the image below will appear during compilation. I don't want to add constant string definitions like `tabstring[]` inside the test_DrawTextCalcRect() function, so I directly used the `(LPWSTR)` cast.

--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8178#note_112569
uiLengthDrawn should represent the number of characters that have been processed.
However, the original implementation uses len (the count of displayed characters
in the current line), which is not accurate.
When text requires line breaks or special processing (such as adding an ellipsis),
the actual number of processed characters may differ from the number of displayed
characters.
When the DT_CALCRECT flag is absent, len gets decremented to 0 during the drawing loop.
Consequently, uiLengthDrawn becomes inaccurate since it relies on len's value for statistics.
@zhiyi @julliard
Signed-off-by: chenjiangyi <chenjiangyi(a)uniontech.com>
--
v3: user32: Fix the number of characters processed by DrawTextExW.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8178