Skip to content

Fix access to content of 64-bit syslistview32 controls#11745

Merged
michaelDCurran merged 5 commits into
nvaccess:masterfrom
LeonarddeR:listview
Oct 12, 2020
Merged

Fix access to content of 64-bit syslistview32 controls#11745
michaelDCurran merged 5 commits into
nvaccess:masterfrom
LeonarddeR:listview

Conversation

@LeonarddeR

@LeonarddeR LeonarddeR commented Oct 10, 2020

Copy link
Copy Markdown
Collaborator

Link to issue number:

Supersedes #8190
Fixes #8175

Summary of the issue:

For some list view controls in 64-bit programs, most notably TortoiseSVN, NVDA is unable to output the list items.

Description of how this pull request fixes the issue:

Adds an in process implementation to fetch column contents.

Testing performed:

Tested that output works in 64-bit TortoiseSVN list views when commuting changes.

Known issues with pull request:

See in line code comment.

Change log entry:

Comment thread nvdaHelper/remote/sysListView32.cpp Outdated
lvItem.iItem = item;
lvItem.iSubItem = subItem;
lvItem.cchTextMax = 512;
wchar_t textBuf[512];

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder whether this will be cleaned up correctly after use. Is there a better approach?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That buffer is just an array on the stack. That memory will go away once the function returns.

@AppVeyorBot

This comment has been minimized.

@AppVeyorBot

This comment has been minimized.

michaelDCurran
michaelDCurran previously approved these changes Oct 12, 2020
@codeofdusk

Copy link
Copy Markdown
Contributor

@michaelDCurran @feerrenrut Did you intend to merge this?

@michaelDCurran michaelDCurran merged commit 8e17d44 into nvaccess:master Oct 12, 2020
@nvaccessAuto nvaccessAuto added this to the 2020.4 milestone Oct 12, 2020
feerrenrut pushed a commit that referenced this pull request Feb 16, 2022
…ired (PR #13271)

Fixes #8175
Follow up of #11745
Fixes regression from #11469, #9873

Summary:
Getting list item content on 64 bit systems sometimes failed.

Description of change:
Based on #11745, fetching text content in-process fixed some but not all issues.
The change adds:
- Location fetching
- Column header text fetching
- Column order array fetching

In short, everything that required allocating memory within a process using VirtualAlloc
@LeonarddeR LeonarddeR deleted the listview branch August 23, 2025 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

No item names for some listviews (64-bit)

5 participants