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
If a session is shutdown when its command_state is already COMPLETE,
session_handle_source_shutdown calls session_set_stopped, which calls
session_command_complete which will submit the op at the head of commands again,
despite it having already been submitted.
Given that only the op at the head of commands can be in the submitted state,
tracking it as a command state makes more sense to me. And if the command state
is SUBMITTED we know not to submit the op again.
* * *
Superceded !8270
--
v3: mf: Add a SUBMITTED command state to avoid multiple submission of the same op.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8722
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