Einzelnen Beitrag anzeigen

Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#1

Rückgabewert der Sendmessage funktion

  Alt 5. Jan 2007, 17:32
Moin!

Ich habe hier eine DLL in mein Programm eingebunden und diese soll mit meinem Hautpprogramm per IPC kommunizieren, es funktioniert auch soweit, dass das Programm die Messages empfängt und auswerten kann nur kann ich aus dem Hauptprogramm heraus keine Result setzen, bzw. es dann in der DLL nicht auswerten. Ich habe keine Ahnung wieso und da die Materie für mich noch relativ neu ist, dachte ich mir, ich frage euch einfach mal um Rat.

Achja, die Forensuche habe ich schon bemüht, doch die Lösungen aus den ~20 Threads scheinen bei mir nicht zu funktionieren.

Ein bischen Code:

Die deklarationen:
Delphi-Quellcode:
const
  // Define the Message itself
  WM_AZURA_IPC = WM_USER + 4242;

  // Define the possible Values
  IPC_AZURA_QUIT = 0;
  IPC_AZURA_GETVERSION = 1;
Mainprog. Code:
Delphi-Quellcode:
procedure IPCMessageHandler(AMsg: TMessage);
begin
  if AMsg.msg = WM_AZURA_IPC then
  begin
    case AMsg.WParam of
      IPC_AZURA_QUIT: FrmMainAzura.Close;
      IPC_AZURA_GETVERSION: AMsg.Result := DWORD(PChar('Foo'));
    end;
  end;
end;
Dll-Code
Delphi-Quellcode:
function Create(AHandle: HWND): Bool; export;
begin
  ShowMessage(PChar(SendMessage(AHandle, WM_USER + 4242, 1, 0))); // FEHLER: Showmessage ist leer.
  SendMessage(AHandle, WM_USER + 4242, 0, 0); // Funktioniert! Main-Prog wird geschlossen
end;
Ich hoffe ihr könnt mir helfen
Gruß,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat