Habe damit noch nicht gearbeitet daher nur eine Frage ist die implementierung so OK?
Delphi-Quellcode:
var
FTrackMouseEvent: function(var EventTrack: TTrackMouseEvent):BOOL; stdcall;
Bei
constructor THookedCombo.Create;
...
Delphi-Quellcode:
// Library Laden
TrackUser32 := FuncExported('TrackMouseEvent', 'User32.dll');
Delphi-Quellcode:
function THookedCombo.FuncExported(stFunc, stModul: PWideChar): Boolean;
var
GetModule: Cardinal;
begin
Result := False;
GetModule := GetModuleHandleW(stModul);
try
if GetModule = 0 then
GetModule := LoadLibraryW(stModul);
if GetModule <> 0 then
if GetProcAddress(GetModule, stFunc) <> nil then
Result := True;
finally
FreeLibrary(GetModule);
end;
end;
auswerten!
Delphi-Quellcode:
WM_MOUSEMOVE:
begin
CtrlState(WinHandle, Down);
TrackMouse(WinHandle);
end;
Delphi-Quellcode:
procedure THookedCombo.TrackMouse(WinHandle: HWND);
var
Tme : TTRACKMOUSEEVENT;
begin
Tme.cbSize := SizeOf(TTrackMouseEvent);
Tme.dwFlags := TME_LEAVE;
Tme.hwndTrack := WinHandle;
FTrackMouseEvent := @TrackMouseEvent;
if TrackUser32 then
FTrackMouseEvent(Tme);
end;
gruss