Plugin:MirLua/ru/m core

From Miranda NG
Jump to: navigation, search

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

<translate> Note</translate>
Параметры, выделенные жирным курсивом, являются обязательными.


Константы

NULL

Нулевой указатель

Тип: light userdata

INVALID_HANDLE_VALUE

Невалидный дескриптор

Тип: light userdata

CALLSERVICE_NOTFOUND

Результат вызова несуществующего сервиса

Тип: number

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

CreateHookableEvent

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

Параметры
name
Тип: string
Имя события
Результат
Тип: light userdata
Возвращает дескриптор события, если событие было успешно создано, иначе nil
Пример

local hEvent = m.CreateHookableEvent('MyEvent') if hEvent == m.NULL then

 print('Event handle is empty!')

end

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
Результат
Тип: boolean
Возвращает true, если ловушка успешно удалена, иначе false.
Пример

m.UnhookEvent(hHook)

NotifyEventHooks

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

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

m.NotifyEventHooks(hEvent)


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

CreateServiceFunction

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

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

local hService = m.CreateServiceFunction('MyService', function(w, l)

 print('MyServiceis called!')

end)

CallService

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

Параметры
name
Тип: string
Имя сервиса
wParam
lParam
Результат
Тип: number
Возвращает результат выполнения сервиса или CALLSERVICE_NOTFOUND
Пример

local result = m.CallService('MyService') if result == m.CALLSERVICE_NOTFOUND then

 print('Service is not found!')

end

ServiceExists

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

Параметры
name
Тип: string
Имя сервиса
Результат
Тип: boolean
Возвращает true, если сервис существует, иначе false
Пример

if m.ServiceExists('MyService') then

 m.CallService('MyService')

end


DestroyServiceFunction

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

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

m.DestroyServiceFunction(hService)


Остальное

IsPluginLoaded

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

Параметры
uuid
Тип: string
Uuid плагина в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Результат
Тип: boolean
Возвращает true, если плагин загружен, иначе false.
Пример

if m.IsPluginLoaded('{F0FDF73A-753D-499d-8DBA-336DB79CDD41}') then

 print('Advanced auto away plugin is loaded!')

end

Utf8DecodeA

Конвертирует содержимое lua строки в ANSI (кодовая страница берется из текущего языкового пакета).

text
Тип: string
Результат
Тип: string
Пример

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


Utf8DecodeW

Конвертирует содержимое lua строки в unicode (utf-16)

text
Тип: string
Результат
Тип: string
Пример

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


Translate

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

text
Тип: string
Результат
Тип: string
Пример

m.Translate('Exit')


ReplaceVariables

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

text
Результат
Тип: string
Пример

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