![]() |
PWideChar zu DWord und zurück
Ich habe folgendes vor.
Winproc Rückgabe = LRESULT(NativeInt) Ich möchte einen PWideChar zurückgeben. Ohne Export Mein Ansatz..
Delphi-Quellcode:
function GetPluginName(handle: HVIS): PAnsiChar; stdcall;
begin Result := ''; if handle <> 0 then begin Result := VisInfo^.VisPointer^.PluginName; end; end;
Delphi-Quellcode:
Aber wie kann ich eine SendMessage schicken um dann die Rückgabe DWord wieder in PWideChar zu konvertieren?
6:
begin Result := Dword(GetPluginName(VisHandle)); exit; end; Eventuell gibt es ja noch eine andere Möglichkeit? Also mein Anliegen ist aus der Funktion GetPluginName den PWideChar an meine 64Bit Anwendung zurückzugeben ohne Export (geht wohl schlecht bei EXE Oder? ) EDIT: Ok Ich mache das auch über WM_COPYDATA ist wohl der einfachste weg. Geht so nicht wie ich dachte. |
AW: PWideChar zu DWord und zurück
Habe es jetzt so umgesetzt.
64Bit.
Delphi-Quellcode:
SOP_GetPluginName;
Delphi-Quellcode:
32Bit
function GetPluginName(WinHandle: HWND): string;
begin SetLength(Result, SendMessage(WinHandle, WM_GETTEXTLENGTH, 0, 0)); if Result <> '' then SendMessage(WinHandle, 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 := GetPluginName(gP.MainHandle); end;
Delphi-Quellcode:
Zeitanzeige hinzugefügt und ein paar andere Spielereien
var
pCDS: PCopyDataStruct; aTemp: array[0..259] of Char; begin case Msg of WM_COPYDATA: begin pCDS := Pointer(lP); case pCDS.dwData of 6: begin PluginName := GetPluginName(VisHandle); StrPCopy(aTemp, string(PluginName)); SendMessage(wp, WM_SETTEXT, SizeOf(aTemp), LPARAM(@aTemp)); end; end; Result := 1; Exit; end; end; Result := DefWindowProc(WinHandle, Msg, wP, lP); end; Noch nen Button zum Ausschalten des Cover addiert Tut was es soll |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 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