AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [NonVCL] Problem WndProc; Pointer mit Daten füllen
Thema durchsuchen
Ansicht
Themen-Optionen

[NonVCL] Problem WndProc; Pointer mit Daten füllen

Ein Thema von NickelM · begonnen am 14. Mär 2012 · letzter Beitrag vom 16. Apr 2012
 
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#1

[NonVCL] Problem WndProc; Pointer mit Daten füllen

  Alt 14. Mär 2012, 14:56
Hallo zusammen,

Ich bin gerade dabei ein Plugin für TS3 in Delphi zuschreiben. Die Funktionen und so funken nach langen entlich. Nun wollte ich folgendes machen:
- Eigene Window-Message wo ich dem lparam einen PAnsiChar übergebe.
- Die SendMessageA (wegen AnsiChar, da ich einen AniString in UTF-8-Encoding verschicke) von der Plugin-DLL aufrufen und ausgeben.

So also was ich festgestellt habe ist, dass ich irgendwas falsch mache beim füllen der Daten in meiner WndProc. Gibt es irgendeine spezielle Funktion zum Speichern in einen Pointer bei der WndProc oder steh ich einfach aufm Schlauch?

Hier der Code:
Delphi-Quellcode:
//WndProc der Anwendung
function WndMainProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: LParam):
  lresult; stdcall;
var Text : AnsiString;
begin
  Result := 0;
  case uMsg of
  //.....
    WM_MUSIKBOT_PLAY:
    begin
      Text:= UTF8Encode(StreamList.Names[wParam]); //Der Wert existiert
      StrPLCopy(PAnsiChar(lParam),Text,50);
      //Move(Text[1],Pointer(lParam)^,50); //dies hab ich auch versucht geht auch nicht
    end;
  end;
end;
//Aufruf aus der Plugin-DLL.
var
StreamName : array [0..50] of AnsiChar;
begin
   //SendMessageA(WindowH,WM_GETTEXT,50,Integer(@StreamName)); //Lustig hier ist, das dies geht
  SendMessageA(WindowH,WM_MUSIKBOT_PLAY,0,Integer(@StreamName)); //der wParam wird hier für etwas anderes genutz und das Resultat wird nur für Errors verwendet
  //Ausgeben
end;
Wenn ich mir vorm beenden der Funktion in der WndProc, lParam zu einem PAnsiChar caste,bekomme ich den richtigen Text. Was mach ich falsch? Verstehs net.
Wenn ich eine "fertige" Windows-Message nehme geht es. Also muss es irgendwie an der WndProc liegen.

Gruß
NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  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 18:33 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