Systemweiter Hook für LVM_-Nachrichten



  • Hallo, ich habe das folgende Problem:

    Ich habe einen systemweiten Hook gesetzt, der in einer *.dll alle Nachrichten mit WH_GETMESSAGE abfängt.

    Nun möchte ich eine Aktion ausführen, wenn beispielsweise ein Fenster die Nachricht LVM_SETITEM oder LVM_INSERTITEMW sendet.

    Leider bekomme ich keine Nachricht, obwohl die Fenster diese Nachrichten senden (hab ich mit Microsoft Spy++ überprüft).

    Das Kuriose ist, dass ich mit dem selben Code beispielsweise andere Windows-Nachrichten wie WM_MOUSEMOVE, WM_LBUTTONDOWN etc. problemlos abfangen kann.

    Wie kann ich nun auf solche LVM_-Nachrichten anderer Listenansichten reagieren? 😕



  • die dinger komme über die WM_NOTIFY rein



  • Hey danke für die Info mit WM_NOTIFY, leider empfängt mein Hook anscheindend diese Nachrichten nicht.

    Hier mal etwas Code:

    if (ncode < 0) return CallNextHookEx(hook, ncode, wParam, lParam);
    
    MSG *msg = (MSG *)lParam;
    
    switch(msg->message)
    {
      case WM_NOTIFY:
    // case WM_LBUTTONDOWN: // Funktioniert: msg->message enthält Wert 0x201
      switch (((LPNMHDR) lParam)->code)
      {
         case LVM_SETITEM:
         case LVM_INSERTITEMW:
    // ...
         {
    	LPNMLISTVIEW lpnm;
    	lpnm = (LPNMLISTVIEW) lParam;
    // ...
    
         }       
      }
    }
    

    // naechsten Hook in der Kette aufrufen.
    return CallNextHookEx(hook, ncode, wParam, lParam);


Anmelden zum Antworten