User:RMN/HookEvent

From Miranda NG
Jump to navigation Jump to search

HookEvent

Устанавливает функцию обратного вызова ("ловушку") для реакции на вызов события. Ловушки вызываются в порядке добавления по цепочке друг за другом.

Сигнатура ловушки: function (wParam, lParam) return 0 end.

Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочке ловушки не будут вызваны.

В качестве wParam/lParam поддерживаются следующие типы: boolean, number, string, light userdata, userdata.

Параметры
name
Тип: string
Имя события.
hook
Тип: function
Функция-ловушка, которая будет вызвана при наступлении события.
Результат
Тип: light userdata
Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе nil
Пример
local hHook = m.HookEvent('MyEvent', function(w, l)
  print('MyEvent is raised!')
end)
Function Description Extended description Settings Example
HookEvent Устанавливает функцию обратного вызова ("ловушку") для реакции на вызов события. Ловушки вызываются в порядке добавления по цепочке друг за другом.

Сигнатура ловушки: function (wParam, lParam) return 0 end.

Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочке ловушки не будут вызваны.

В качестве wParam/lParam поддерживаются следующие типы: boolean, number, string, light userdata, userdata.

Параметры
name
Тип: string
Имя события.
hook
Тип: function
Функция-ловушка, которая будет вызвана при наступлении события.
Результат
Тип: light userdata
Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе nil
local hHook = m.HookEvent('MyEvent', function(w, l)
  print('MyEvent is raised!')
end)


Function Description Extended description Settings Example
CreateHookableEvent Creates a hookable event. name
Type: string
Event name.
Result
Type: light userdata
Returns event descriptor if event was created successfully, else nil.
local hEvent = m.CreateHookableEvent('MyEvent')
HookEvent Sets a callback function ("trap") to react to event call. Traps are called one by one in the order they were added to the sequence.

Trap signature: function (wParam, lParam) return 0 end.

Correct result for a trap is 0. When 1 is returned, the following traps in a sequence won't be called.
name
Type: string
Event name.

hook

Type: function
Trap function to be called when event occurs.
Result
Type: light userdata
Returns trap descriptor if trap was created successfully, else nil.
local hHook = m.HookEvent('MyEvent', function(w, l)
  print('MyEvent is raised!')
end)
UnhookEvent Removes "trap" from event call sequence. hEvent
Type: light userdata
Event descriptor received on CreateHookableEvent call.
Result
Type: boolean
Returns true if trap function was removed successfully, else false.
m.UnhookEvent(hHook)
NotifyEventHooks Calls all "traps" of event call sequence one by one. hEvent
Type: light userdata
Event descriptor received on CreateHookableEvent call.

wParam
lParam

Result
Type: boolean
Returns true if all trap functions were called, else false.
m.NotifyEventHooks(hEvent)