Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
Обратный вызов (callback) для NotifyRegister должен находиться в DLL. Вам не нужен MakeProcInstance, просто добавьте "export" к объявлению функции. Нижеследующий код является простым примером DLL для Delphi. Вы должны запустить все тесты вне Delphi или же ваша программа не получит никаких уведомлений (notifications). Все это выглядит похожим на Delphi, зарегистрировавшей перехват с Toolhelp...
libraryLib1; uses
WinTypes, Messages, WinProcs, Toolhelp; const
WM_NOTIFY = WM_USER + $100; var
targetHWnd: HWnd; function
HookProc(wID: Word; dwData: LongInt): Bool; export; begin
PostMessage(targetHWnd, WM_NOTIFY, wID, dwData); Result := False
end
; procedure
InstallHook(notifyWindow: HWnd); export; begin
if
targetHWnd = 0 then
begin
if
not
NotifyRegister(0, HookProc, NF_NORMAL) then
begin
MessageBox(notifyWindow, 'Неудача NotifyRegister!', 'Ошибка!', MB_OK + MB_ICONSTOP); end
else
begin
targetHWnd := notifyWindow; end
; end
; end
; procedure
UnInstallHook; export; begin
if
targetHWnd <> 0 then
begin
NotifyUnregister(0); targetHWnd := 0; end
; end
; exports
InstallHook, UnInstallHook; begin
targetHWnd := 0; end
.