Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Пример обратного вызова DLL

Delphi , Файловая система , DLL и PlugIns

Пример обратного вызова DLL

Обратный вызов (callback) для NotifyRegister должен находиться в DLL. Вам не нужен MakeProcInstance, просто добавьте "export" к объявлению функции. Нижеследующий код является простым примером DLL для Delphi. Вы должны запустить все тесты вне Delphi или же ваша программа не получит никаких уведомлений (notifications). Все это выглядит похожим на Delphi, зарегистрировавшей перехват с Toolhelp...


library Lib1;

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.

Пример статьи описывает создание DLL для Delphi, которая регистрирует обратный вызов (callback) для уведомлений (notifications) с помощью функции NotifyRegister и обмена сообщениями (PostMessage).


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DLL и PlugIns ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 12:11:16/0.0055441856384277/1