Einzelnen Beitrag anzeigen

Mossi

Registriert seit: 6. Feb 2004
Ort: Wenzenbach
35 Beiträge
 
Delphi 7 Enterprise
 
#1

Hook WH_GESTURENOTIFY

  Alt 28. Jul 2015, 16:19
Hallo zusammen,

ich entwickle an einer Multiscreen-Anwendung und dabei ist eine Aufgabe, dass Eingaben auf dem Hauptbildschirm (Lehrerschirm) auch auf dem zweiten Bildschirm (Projektor, Schülerschirm) ausgegeben werden. Zwichnungen mit der Maus werden dabei mit einem MouseHook (WH_MOUSE) abgefangen und auf dem Schülerschirm ausgegeben.
Jetzt muss ich das Ganze erweitern, um auch Touch-Eingaben auf dem Schülerschirm ausgeben zu können. Dazu hab ich mittlerweile einen zusätzlichen Hook auf WH_GESTURENOTIFY implementiert, der auch angesprochen wird.
Ich hab jetzt schon gelesen, dass man Gestures nicht einfach simulieren kann. Daher hab ich mir gedacht, dass ich die Gestures abfange und in entsprechende MouseEvents umwandle und diese auf dem Schülerschirm ausgeben lasse.
Das Problem an WH_GESTURENOTIFY ist allerdings, dass da noch gar keine Informationen enthalten sind. Dazu denke ich mal, dass ich mit GetGestureInfo die weiteren Informationen abrufen müsste. Aber daran scheitere ich bereits.
Aktuell sieht mein Code im Hook folgendermaßen aus:
Delphi-Quellcode:
lib := LoadLibrary(PChar('user32.dll'))
if lib <> 0 then
begin
  @GetGestureInfo := GetProcAddress(lib, 'GetGestureInfo');
  if @GetGestureInfo <> nil then
  begin
    gestureInfo.cbSize := sizeof(TGestureInfo);
    GetGestureInfo(LongInt(data.lParam), @gestureInfo);
...
Die letzte Zeile liefert mir dann aber false zurück und GetLastError sagt mir "ungültiger Parameter".
Hat jemand Erfahrung damit oder kann mir sagen, was ich da jetzt falsch gemacht habe?

Vielleicht bin ich auch vollkommen auf dem Holzweg und kann mit den Gestures gar nicht arbeiten, sondern müsste stattdessen die WM_TOUCH Events verwenden. Aber jetzt wollte ich es erst einmal nur so probieren, weil WM_TOUCH noch einiges anderes als Vorarbeit verlangen würde.
  Mit Zitat antworten Zitat