(Gast)
n/a Beiträge
|
AW: Probleme beim Empfangen mittels WM_COPYDATA
5. Feb 2022, 22:31
Hmmm..
Delphi-Quellcode:
var
gCDS: COPYDATASTRUCT;
gSOP: TSOP64; // my Record
const
dwData_GetPluginName = 6;
64 Bit Anwendung..
Delphi-Quellcode:
function GetPluginDescription(WindowHandle: HWND): string;
begin
SetLength(Result, SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0));
if Result <> '' then
SendMessage(WindowHandle, WM_GETTEXT, Length(Result) + 1, LPARAM(PWideChar(Result)));
end;
procedure SOP_GetPluginName;
begin
if (gp.hSOPlugin <> 0) then
begin
gCDS.dwData := dwData_GetPluginName;
gCDS.cbData := SizeOf(gSOP);
gCDS.lpData := @gSOP;
SendMessage(gp.hSOPlugin, WM_COPYDATA, WPARAM(gP.MainHandle), LPARAM(@gCDS));
end;
Description := GetPluginDescription(gP.MainHandle);
end;
32 Bit Anwendung..
Delphi-Quellcode:
function GetPluginName( handle: HVIS): PWideChar; stdcall;
begin
Result := ' ';
if handle <> 0 then
begin
Result := PWideChar(WideString(VisInfo^.VisPointer^.PluginName));
end;
end;
Delphi-Quellcode:
var
pCDS: PCopyDataStruct;
Delphi-Quellcode:
WM_COPYDATA:
begin
pCDS := Pointer(lP); // LP pointer auf die CopyDataStruct
case pCDS.dwData of
dwData_GetPluginName:
begin
PluginName := GetPluginName(VisHandle);
StrPCopy(aTemp, string(PluginName));
SendMessage(wp, WM_SETTEXT, SizeOf(aTemp), LPARAM(@aTemp));
end;
end;
Nur als Denkanstoß.
Geändert von venice2 ( 5. Feb 2022 um 22:46 Uhr)
|
|
Zitat
|