Improve logging and typing for sysListView32 (#13657)
Fix up of #13560, #13271
Summary of the issue:
When out-of-process failed, an empty array was returned instead of None.
This could have led to incorrect reporting of list items.
For example, trying to get the contents of the second column of the list/table/report, the array is initialized with all values of zero, if used without being filled with valid data all columns will report the same thing.
#13271 notes:
>How likely are cases where injection doesn't work and the outproc variants succeed? I guess this is pretty unlikely, unless we're running under Windows Store.
- If injection doesn't work there will be no `helperLocalBindingHandle`, out of process approach will be tried.
- If an application like StartIsBack/StartAllBack doesn't handle the Windows Message properly then it doesn't matter if the message is sent in-process or out-of-process.
Description of how this pull request fixes the issue:
- When possible, use in process approach to get the column order array. It should be possible if there is a `helperLocalBindingHandle`
- Don't return an array filled with zeros, return None when out-of-process fails.