Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi TCopyDataStruct von Pointer (https://www.delphipraxis.net/3767-tcopydatastruct-von-pointer.html)

HPW 28. Mär 2003 20:36


TCopyDataStruct von Pointer
 
Mit folgenden Code hooke ich eine Main-window message loop.
Dabei möchte ich eine WM_COPYDATA-message auswerten:

Zitat:

function MyWndProc(hwnd: HWND; Msg: Word; wParam: WPARAM; lParam: LPARAM): Integer; stdcall;
var
DataStrct : TCopyDataStruct;
begin
if Msg = WM_COPYDATA then
begin
DataStrct := lParam; {Das geht nicht}
showmessage(Pchar(DataStrct.lpData));
if Assigned(OrgWndProc) then
Result := CallWindowProc(@OrgWndProc, hwnd, Msg, wParam, lParam)
else
Result := DefWindowProc(hwnd, Msg, wParam, lParam);
end;
Wie komme ich über den Pointer in lParam wieder den TCopyDataStruct zurück:

DataStrct := lParam;

Hat jemand einen Tip?

Christian Seehase 29. Mär 2003 11:21

Moin HPW,

probier's doch mal so:

Delphi-Quellcode:
// vor TCopyDataStruct deklariert
type
  PCopyDataStruct = ^TCopyDataStruct;

// In der function

var
  pDataStruct : PCopyDataStruct;

begin
  //...
    pDataStruct := PCopyDataStruct(lParam);
  //...
end;

HPW 29. Mär 2003 16:31

Danke für den Tip.

Zitat:

rcvStr := StrPas(PCopyDataStruct(lParam).lpData);
So hat es dann funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz