Das entscheidene wäre, zu wissen, wie und wo du diesen Code aufrufst. Wenn du eine Funktion in einem Fremdprozess hooken willst, musst du erst mal einen Thread in diesen Prozess injizieren, da deine beiden Prozesse ja verschiedene Adressräume haben.
Siehe den im ersten Post verlinkten Vorgängerthread.
Die HookIsClipboardFormatAvailable wird im Hook-Callback in der
DLL aufgerufen:
Delphi-Quellcode:
function HookProc(code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
if FHook <> 0 then
begin
if code < HC_ACTION then
Result := CallNextHookEx(FHook,code,wParam,lParam)
else
begin
if (not FHooked) and (code >= HC_ACTION) then
begin
HookIsClipboardFormatAvailable;
FHooked := true;
end;
Result := CallNextHookEx(FHook,code,wParam,lParam);
end;
end
else
Result := 0;
end;
Müsste nach meinem Verständnis also funktionieren...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."