User:Unsane/MirLua/m core: Difference between revisions

From Miranda NG
Jump to navigation Jump to search
Line 76: Line 76:
==Именованные сервисные функции==
==Именованные сервисные функции==
===CreateServiceFunction===
===CreateServiceFunction===
Создает именованную сервисную функцию
Создает сервисную функцию ("сервис")
; Параметры
: '''''name'''''
:: Тип: '''string'''
:: Имя сервиса.
; Результат
: Тип: '''light userdata'''
: Возвращает дескриптор сервиса, если сервис бы успешно создан, иначе nil
; Пример
{{Content:MirLua/Example|code=local hService = m.CreateServiceFunction('MyService', function(w, l)
{{Content:MirLua/Example|code=local hService = m.CreateServiceFunction('MyService', function(w, l)
   print('MyServiceis called!')
   print('MyServiceis called!')
end)
end)
}}
}}
===CallService===
Вызывает именованную сервисную функцию
{{Content:MirLua/Example|code=m.CallService('MyService', 0, 0)}}


===ServiceExists===
===ServiceExists===
Проверяет существование сервиса по имени
Проверяет существование сервиса по имени
; Параметры
: '''''name'''''
:: Тип: '''string'''
:: Имя сервиса
; Результат
: Тип: '''boolean'''
: Возвращает '''true''', если сервис существует, иначе '''false'''
; Пример
{{Content:MirLua/Example|code=if m.ServiceExists('MyService') then
{{Content:MirLua/Example|code=if m.ServiceExists('MyService') then
   m.CallService('MyService')
   m.CallService('MyService')
end}}
end}}


===CallService===
Вызывает сервис с параметрами
; Параметры
: '''''name'''''
:: Тип: '''string'''
:: Имя сервиса
: ''wParam''
: ''lParam''
; Результат
: Тип: '''number'''
: Возвращает результат выполнения сервиса или [[#CALLSERVICE_NOTFOUND|CALLSERVICE_NOTFOUND]]
; Пример
{{Content:MirLua/Example|code=m.CallService('MyService', 0, 0)}}


===DestroyServiceFunction===
===DestroyServiceFunction===
Удаляет сервисную функцию
Удаляет сервисную функцию
; Параметры
: '''''hService'''''
:: Тип: '''light userdata'''
:: Дескриптор сервиса, полученный при вызове [[#CreateServiceFunction|CreateServiceFunction]]
; Пример
{{Content:MirLua/Example|code=m.DestroyServiceFunction(hService)}}
{{Content:MirLua/Example|code=m.DestroyServiceFunction(hService)}}


==Остальное==
==Остальное==

Revision as of 00:00, 27 November 2015

Этот модуль изначально импортирован в глобальную таблицу и доступен через переменную m в любом модуле. Он предоставляет доступ к основным возможностям ядра Miranda NG.

Именованные события

CreateHookableEvent

Создает событие

Параметры
name
Тип: string
Имя события
Результат
Тип: light userdata
Возвращает дескриптор события, если событие было успешно создано, иначе nil
Пример
local hEvent = m.CreateHookableEvent('MyEvent')

HookEvent

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

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

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

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

UnhookEvent

Удаляет ловушку из цепочки вызовов события.

Параметры
hEvent
Тип: light userdata
Дескриптор события, который был получен при вызове CreateHookableEvent
Результат
Возвращает true, если функции-ловушки успешно удалена, иначе false.
Пример
m.UnhookEvent(hHook)

NotifyEventHooks

Поочередно вызывает все ловушки в цепочке вызова события.

Параметры
hEvent
Тип: light userdata
Дескриптор события, который был получен при вызове CreateHookableEvent.
wParam
lParam
Результат
Тип: boolean
Возвращает true, если вызваны все функции-ловушки, иначе false.
Пример
m.NotifyEventHooks(hEvent)

DestroyHookableEvent

Удаляет событие. Также удаляются все ловушки из цепочки вызовов. Если вызов события еще не завершен, то цепочка вызовов обрывается после выполнения текущей ловушки.

Параметры
hEvent
Тип: light userdata
Дескриптор события, полученный при вызове CreateHookableEvent
Результат
Тип: boolean
Возвращает true, если событие успешно удалено, иначе false
m.DestroyHookableEvent(hEvent)

Именованные сервисные функции

CreateServiceFunction

Создает сервисную функцию ("сервис")

Параметры
name
Тип: string
Имя сервиса.
Результат
Тип: light userdata
Возвращает дескриптор сервиса, если сервис бы успешно создан, иначе nil
Пример
local hService = m.CreateServiceFunction('MyService', function(w, l)
  print('MyServiceis called!')
end)

ServiceExists

Проверяет существование сервиса по имени

Параметры
name
Тип: string
Имя сервиса
Результат
Тип: boolean
Возвращает true, если сервис существует, иначе false
Пример
if m.ServiceExists('MyService') then
  m.CallService('MyService')
end

CallService

Вызывает сервис с параметрами

Параметры
name
Тип: string
Имя сервиса
wParam
lParam
Результат
Тип: number
Возвращает результат выполнения сервиса или CALLSERVICE_NOTFOUND
Пример
m.CallService('MyService', 0, 0)

DestroyServiceFunction

Удаляет сервисную функцию

Параметры
hService
Тип: light userdata
Дескриптор сервиса, полученный при вызове CreateServiceFunction
Пример
m.DestroyServiceFunction(hService)

Остальное

IsPluginLoaded

Проверяет загружен ли плагин по его muuid

if m.IsPluginLoaded('{F0FDF73A-753D-499d-8DBA-336DB79CDD41}') then
  print('Advanced auto away plugin is loaded!')
end


Utf8DecodeA

Конвертирует содержимое lua строки в ANSI

m.CallService("Quotes/Import", 0, Utf8DecodeA('c:\\quotes.xml'))


Utf8DecodeW

Конвертирует содержимое lua строки в Unicode

m.CallService("Popup/ShowMessageW", m.Utf8DecodeW('Hello, World!'), 2)


Translate

Переводит строку на язык текущего языкового пакета

m.Translate('Exit')


ReplaceVariables

Заменяет переменные ядра Miranda NG в строке

local profileName = m.ReplaceVariables('%miranda_profilename%')