Expertenfrage: Wie verwaltet Outlook Express seine Nachrichten im ListCtrl?



  • Hallo!

    Ich hoffe sehr, dass jemand einen Tipp hierzu abgeben kann.

    Outlook Express ( => OE ) bietet eine kleine API an über die man an alle Ordner und Nachrichten kommen kann (als Programmierer).

    Jede Nachricht hat eine eigene MessageID.

    In OE werden alle Nachrichten ja wie ihr wahrscheinlich wisst in einem ListControl dargestellt. Dieses ist Ownerdrawn.

    Ich muss nun irgendwie, sobald sich in OE die Auswahl der Nachricht ändert an die MessageID der ausgewählten Nachricht kommen.

    Irgendwo muss sie in diesem ListControl abgespeichert werden.

    Denn wenn man die Auswahl ändert stellt ja auch Outlook im Fenster darunter den Emailtext samt Absender etc. dar.

    D.h. auch Outlook holt sich höchstwahrscheinlich über das ListCtrl vom ausgewählten Item die MessageID und zeigt dann die zugehörigen Nachrichteninhalte im Fenster unten an.

    Nur welche Möglichkeiten bietet das ListControl alles, um eine ID abzuspeichern?

    Mein erster Tipp war SetItemData.... allerdings hat keines der Items per SetItemData abgespeicherte Daten..... zum Heulen....

    Habt ihr einen Tipp?

    Ich wäre euch äußerst dankbar!

    Gruß,
    Kevin


  • Mod

    Du irrst Dich. OE benutzt nicht Ownerdraw!

    OE ist eine LVS_OWENERDATA entsprechende Listbox. Das heißt es verwaltet alle Items selbst und bekommt entsprechende Nachrichten wen die Daten angezeigt werden sollen. Die Verwaltung ist also rein virtuell.



  • Genau das meinte ich 🙂

    Hab mich mit Ownerdrawn falsch ausgedrückt.

    Weiß jemand wie man am schnellsten an die Nachricht oder MessageID kommt?

    Ansonsten hab ichs jetzt so vor:

    Wenn die Auswahl geändert wird schicke ich selbst GETDISPINFO ans Control um an den Betreff und das Datum der Nachricht zu kommen.

    Dann gehe ich mit der OutlookExpress API durch alle Nachrichten im ausgewählten Ordner und schaue für welche Nachricht Betreff und Datum übereinstimmt....dann habe ich die Nachricht.

    Was Besseres fällt mir leider nicht ein.

    Gruß,
    Kevin


  • Mod

    Gar nicht. Bei diesem ListCtrl Format verwaltet das Programm nunmal seinen eigenen Array an Daten. Da kommst Du gar nicht dran.


Anmelden zum Antworten