How to determine the amount of entries in a "CListViewHost"

97 views Asked by At

I have extended the "heap_stat" script, based on the PYKD.PYD library, in order to view the elements of collections, as you can see in the following examples:

if type_name.endswith("CSortableDoubleArray"):
    collection_Size = typedVar('CSortableDoubleArray', ptr).m_nSize
...
elif type_name.endswith("CPtrList"):                          
    collection_Size = typedVar('CPtrList',             ptr).m_nCount
...

As you see, I need the name of the property (m_nSize, m_nCount, ...) in order to determine the amount of entries.

Now I'm dealing with a dump, containing some shell32!CListViewHost entries, as you can see here in heap_stat result:

0x75b032a4  shell32!CListViewHost
0x75b032c0  shell32!CListViewHost
0x75b032dc  shell32!CListViewHost

I've been looking on the internet, but I don't find any documentation on that class.

Does anybody know the name of the property I can use for determining the amount of entries in such a list?

For your information: I can't see this in Visual Studio: I'm currently investigating a dump from a C# application. Even when debugging that dump natively, the entries (CListViewHost)0x75b032a4 and (shell32!CListViewHost)0x75b032a4 give nothing in the watch window.

Thanks in advance

Edit: (result of x /2 *!*vftable'command) While running thex /2 !vftable' command, the CListViewHost class also appears, so I'm expecting it to be something generally known, but I don't understand why I don't find any information on it on the internet. Hereby a part of the result of the x /2 *!*vftable'command: (there are moreCListViewHost` related entries, I'm just showing a bunch of them)

6e893d10          WinTypes!`winrt::impl::make_marshaler'::`2'::marshaler::`vftable'
6e87366c          WinTypes!Microsoft::WRL::FtmBase::`vftable'
6e8950b4          WinTypes!Windows::Foundation::Value<Windows::Foundation::ValueArray<int> >::`vftable'
6e8950a4          WinTypes!Windows::Foundation::Value<Windows::Foundation::ValueArray<int> >::`vftable'
...
7579e6b8          shell32!CFolderItemVerbs::`vftable'
75798784          shell32!CListViewHost::`vftable'
75782d9c          shell32!DirectUI::ClassInfo<CInfoPane,CFrameModule,DirectUI::StandardCreator<CInfoPane> >::`vftable'
...
7578ea74          shell32!Microsoft::WRL::RuntimeClass<Microsoft::WRL::RuntimeClassFlags<2>,Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,IDesktopGadget> >::`vftable'
757988c8          shell32!CListViewHost::`vftable'
75788dc4          shell32!CBitBucketDropTarget::`vftable'
...
7579e75c          shell32!CEnumFolderItemVerbs::`vftable'
757989c8          shell32!CListViewHost::`vftable'
75783774          shell32!CWordWheel::`vftable'
...
757883dc          shell32!CWrapOldCallback::`vftable'
75798a5c          shell32!CListViewHost::CJustInTimeItemSink::`vftable'
75796798          shell32!CImmersiveContextMenuOwnerDrawHelper::`vftable'
...
7579cbdc          shell32!Microsoft::WRL::RuntimeClass<Microsoft::WRL::RuntimeClassFlags<2>,CWRLObjectWithSite,Microsoft::WRL::ChainInterfaces<IContextMenu3,IContextMenu2,IContextMenu,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil,Microsoft::WRL::Details::Nil>,IShellExtInit,IFileOperationProgressSink>::`vftable'
75798910          shell32!CListViewHost::`vftable'
757831b0          shell32!CXElementModuleInner::`vftable'
...
0

There are 0 answers