This is kind of funny. I am having exactly same problem. I spent 3 hours yesterday trying all kind of things. I am using QTP 9.1. I inherited this project and I believe that it use to work in 9.0 (however, I can't prove it).
I may give it another shot today. Looks like QTP bug.
This WinListView object has several tabs in an associated tab control (identified as AfxWnd42).
The first two tabs display data that can change every second (foreign exchange rates as they rise and fall second-by-second).
The remaining tabs have things like email, news events, and such. Those are static - they only change occasionally when some new event (a new email, or some world news) is provided to the WinListView.
The first two tabs are the only ones I cannot read.
I am able to read and interact with the other, much more stable, tabs just fine. I can use QTP to read those individual emails if I wish, or keep track of world financial news by reading the news events in that WinListView control.
But the first two tabs that have constantly changing data are always blank.
My guess is that the data that is constantly changing is not being updated in the WinListView control at all. There is probably some behind the scenes object that contains the data, and the WinListView is simply pointed to that data via some event that is being fired (also behind the scenes).
That may be why it is blank, including GetROProperty("all items").
It seems to me that I faced the same problem. I have a WinListView control with constantly changing data inside and receiving "" by GetItem there. The only method that returned me some data is GetVisibleText but it is not very convenient for use because I need to parse the return and use a scrollbar to get total data which needs thorough tuning.
Did you find the exact reason of returning empty string in case of your application? Have you been able to resolve it?