Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
CD-ROM [11]
DLL и PlugIns [75]
Help файлы [20]
INI файлы [16]
RS232 [2]
Активные директории [1]
Директории [0]
Диски [0]
Корзина [5]
Порты [26]
Ресурсы [0]
Файлы [0]
Форматы файлов [15]
Ярлыки [0]

Наш опрос
Есть ли у Вас свой сайт?
Всего ответов: 48

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Файловая система » 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 и PlugIns | Добавил: Skinner (07.07.2008)
Просмотров: 381 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2025 Хостинг от uCoz