AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Pointer auf Record in eigener Windows Message übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer auf Record in eigener Windows Message übergeben

Offene Frage von "sieppl"
Ein Thema von sieppl · begonnen am 6. Dez 2004 · letzter Beitrag vom 27. Apr 2005
 
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#8

Re: Pointer auf Record in eigener Windows Message übergeben

  Alt 7. Dez 2004, 11:47
Hi nochmal,

gibt es irgendwelche bekannten Einschränkungen, wenn ich WM_COPYDATA direkt
an die Applikation schicke und diese Messages dann in OnMessage behandelt werden?
Ich habe mich ziemlich genau an die verfügbaren Beispiele gehalten, die WM_COPYDATA
kommt einfach nicht an.

Delphi-Quellcode:
//Hier der Sender:
SendMessage(TargetAppHandle, WM_COPYDATA, AWnd, Integer(@CopyDataStruct));

//Der Empfänger:

Application.OnMessage := DevCheckHandler.AppMessage; (vorher natürlich initialisiert)

procedure TDevCheckHandler.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  Handled := False;
  case Msg.message of
    WM_COPYDATA:
    begin
      FDeviceInfo.Event := PDeviceInfo(PCopyDataStruct(Msg.lParam).lpData).Event;
      if Msg.wParam = CVolume then
        FDeviceInfo.Vol := PDeviceInfo(PCopyDataStruct(Msg.lParam).lpData).Vol;
      if Msg.wParam = CCamera then
        FDeviceInfo.Guid := PDeviceInfo(PCopyDataStruct(Msg.lParam).lpData).GUID;
      if Assigned(FOnDevChange) then
        FOnDevChange;
      Handled := True;
    end;
    WM_PASSHANDLE: //der kommt immer an!
    begin
      FDevCheckHandle := Msg.wParam;
      Handled := True;
    end;
  end;
end;

//mit
PostMessage(TargetAppHandle, WM_PASSHANDLE, AWnd, 0);
//und
procedure TDevCheckHandler.PassAppHandle;
begin
  PostMessage(FDevCheckHandle, WM_PASSHANDLE, FAppHandle, 0);
end;
//kann ich zwischen beiden die Handles hin und her übergeben
// -> Die Kommunikation steht in Grunde
nochmal: WM_COPYData wird definitiv losgeschickt (bin mit dem Debugger) durch, beim Empfänger tut sich GARNICHTS. Ich bin mit meinem Latein am Ende.

Grüße

Sebastian
Sebastian
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz