2009-03-11 6 views
4

Ich schreibe eine C# -Anwendung, die Daten aus einem ListView-Steuerelement extrahieren muss, das sich in einem externen Prozess befindet.Gibt es eine Möglichkeit, die Anzahl der Unterelemente in einer Listenansicht zu erhalten?

Ich habe bereits die Codedaten zu extrahieren und die Anzahl der Elemente in einem Listview zu bekommen, aber ich brauche das Äquivalent des folgenden für Unterpunkte:

public int GetListViewRowCount() 
    { 
     if (list_view_handle != null) 
     { 
      return (int)UnManagedMethods.SendMessage(list_view_handle, 
       (int)UnManagedMethods.W32_LVM.LVM_GETITEMCOUNT, 
       IntPtr.Zero, IntPtr.Zero); 
     } 
     else return 0; 
    } 

Ich suche im Grunde für die vorgesehene Funktionalität von Eine Nachricht vom Typ LVM_GETSUBITEMCOUNT.

Antwort

1

Sie müssen jedes Mal LVM_GETITEM (an den anderen Prozess) senden, um die Größe von iSubItem zu erhöhen, bis Sie FALSE erhalten.
Vergessen Sie nicht, dass der Zeiger auf pItem in dem anderen Prozess gültig sein muss, also müssen Sie Methoden des Zuweisungsspeichers für verschiedene Prozesse verwenden. Here is the link that I used in the past.