User:Unsane/MirLua/m core: Difference between revisions
(typos) |
m (→NULL) |
||
(14 intermediate revisions by the same user not shown) | |||
Line 12: | Line 12: | ||
;Результат | ;Результат | ||
: Тип: '''light userdata''' | : Тип: '''light userdata''' | ||
: Возвращает дескриптор события, если событие было успешно создано, иначе nil | : Возвращает дескриптор события, если событие было успешно создано, иначе '''nil''' | ||
;Пример | ;Пример | ||
{{Content:MirLua/Example|code=local hEvent = m.CreateHookableEvent('MyEvent')}} | {{Content:MirLua/Example|code=local hEvent = m.CreateHookableEvent('MyEvent')}} | ||
Line 22: | Line 22: | ||
Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочке ловушки не будут вызваны. | Корректным результатом работы ловушки является 0. При возврате 1 следующие в цепочке ловушки не будут вызваны. | ||
;Параметры | ;Параметры | ||
: '''''name''''' | : '''''name''''' | ||
Line 33: | Line 31: | ||
;Результат | ;Результат | ||
: Тип: '''light userdata''' | : Тип: '''light userdata''' | ||
: Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе nil | : Возвращает дескриптор ловушки, если ловушка была успешно создана, иначе '''nil''' | ||
;Пример | ;Пример | ||
{{Content:MirLua/Example|code=local hHook = m.HookEvent('MyEvent', function(w, l) | {{Content:MirLua/Example|code=local hHook = m.HookEvent('MyEvent', function(w, l) | ||
Line 43: | Line 41: | ||
Удаляет ловушку из цепочки вызовов события. | Удаляет ловушку из цепочки вызовов события. | ||
; Параметры | ; Параметры | ||
: hEvent | : '''''hEvent''''' | ||
:: Тип: '''light userdata''' | :: Тип: '''light userdata''' | ||
:: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]] | :: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]] | ||
; Результат | ; Результат | ||
: Тип: '''boolean'' | |||
: Возвращает '''true''', если функции-ловушки успешно удалена, иначе '''false'''. | : Возвращает '''true''', если функции-ловушки успешно удалена, иначе '''false'''. | ||
; Пример | ; Пример | ||
Line 54: | Line 53: | ||
Поочередно вызывает все ловушки в цепочке вызова события. | Поочередно вызывает все ловушки в цепочке вызова события. | ||
; Параметры | ; Параметры | ||
: ''hEvent'' | : '''''hEvent''''' | ||
:: Тип: '''light userdata''' | :: Тип: '''light userdata''' | ||
:: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]]. | :: Дескриптор события, который был получен при вызове [[#CreateHookableEvent|CreateHookableEvent]]. | ||
: wParam | : ''wParam'' | ||
: lParam | : ''lParam'' | ||
; Результат | ; Результат | ||
: Тип: '''boolean''' | : Тип: '''boolean''' | ||
Line 65: | Line 64: | ||
{{Content:MirLua/Example|code=m.NotifyEventHooks(hEvent)}} | {{Content:MirLua/Example|code=m.NotifyEventHooks(hEvent)}} | ||
<!-- | |||
===DestroyHookableEvent=== | ===DestroyHookableEvent=== | ||
Удаляет событие. Также удаляются все ловушки из цепочки вызовов. Если вызов события еще не завершен, то цепочка вызовов обрывается после выполнения текущей ловушки. | Удаляет событие. Также удаляются все ловушки из цепочки вызовов. Если вызов события еще не завершен, то цепочка вызовов обрывается после выполнения текущей ловушки. | ||
Line 75: | Line 75: | ||
: Возвращает '''true''', если событие успешно удалено, иначе '''false''' | : Возвращает '''true''', если событие успешно удалено, иначе '''false''' | ||
{{Content:MirLua/Example|code=m.DestroyHookableEvent(hEvent)}} | {{Content:MirLua/Example|code=m.DestroyHookableEvent(hEvent)}} | ||
--> | |||
==Именованные сервисные функции== | ==Именованные сервисные функции== | ||
===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=== | ===CallService=== | ||
Вызывает | Вызывает сервис с параметрами | ||
; Параметры | |||
: '''''name''''' | |||
:: Тип: '''string''' | |||
:: Имя сервиса | |||
: ''wParam'' | |||
: ''lParam'' | |||
; Результат | |||
: Тип: '''number''' | |||
: Возвращает результат выполнения сервиса или [[#CALLSERVICE_NOTFOUND|CALLSERVICE_NOTFOUND]] | |||
; Пример | |||
{{Content:MirLua/Example|code=m.CallService('MyService', 0, 0)}} | {{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') | ||
Line 99: | Line 124: | ||
===DestroyServiceFunction=== | ===DestroyServiceFunction=== | ||
Удаляет сервисную функцию | Удаляет сервисную функцию | ||
; Параметры | |||
: '''''hService''''' | |||
:: Тип: '''light userdata''' | |||
:: Дескриптор сервиса, полученный при вызове [[#CreateServiceFunction|CreateServiceFunction]] | |||
; Пример | |||
{{Content:MirLua/Example|code=m.DestroyServiceFunction(hService)}} | {{Content:MirLua/Example|code=m.DestroyServiceFunction(hService)}} | ||
==Остальное== | ==Остальное== | ||
===IsPluginLoaded=== | ===IsPluginLoaded=== | ||
Проверяет загружен ли плагин по его | Проверяет загружен ли плагин по его uuid | ||
; Параметры | |||
: '''''uuid''''' | |||
:: Тип: '''string''' | |||
:: Uuid плагина в формате ''xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'' | |||
; Результат | |||
: Тип: '''boolean''' | |||
: Возвращает '''true''', если плагин загружен, иначе '''false'''. | |||
; Пример | |||
{{Content:MirLua/Example|code=if m.IsPluginLoaded('{F0FDF73A-753D-499d-8DBA-336DB79CDD41}') then | {{Content:MirLua/Example|code=if m.IsPluginLoaded('{F0FDF73A-753D-499d-8DBA-336DB79CDD41}') then | ||
print('Advanced auto away plugin is loaded!') | print('Advanced auto away plugin is loaded!') | ||
end | end | ||
}} | }} | ||
===Utf8DecodeA=== | ===Utf8DecodeA=== | ||
Конвертирует содержимое lua строки в ANSI | Конвертирует содержимое lua строки в ANSI (кодовая страница берется из текущего языкового пакета). | ||
: '''''text''''' | |||
:: Тип: '''string''' | |||
; Результат | |||
: Тип: '''string''' | |||
; Пример | |||
{{Content:MirLua/Example|code=m.CallService("Quotes/Import", 0, Utf8DecodeA('c:\\quotes.xml'))}} | {{Content:MirLua/Example|code=m.CallService("Quotes/Import", 0, Utf8DecodeA('c:\\quotes.xml'))}} | ||
===Utf8DecodeW=== | ===Utf8DecodeW=== | ||
Конвертирует содержимое lua строки в | Конвертирует содержимое lua строки в unicode (utf-16) | ||
: '''''text''''' | |||
:: Тип: '''string''' | |||
; Результат | |||
: Тип: '''string''' | |||
; Пример | |||
{{Content:MirLua/Example|code=m.CallService("Popup/ShowMessageW", m.Utf8DecodeW('Hello, World!'), 2)}} | {{Content:MirLua/Example|code=m.CallService("Popup/ShowMessageW", m.Utf8DecodeW('Hello, World!'), 2)}} | ||
Line 123: | Line 169: | ||
===Translate=== | ===Translate=== | ||
Переводит строку на язык текущего языкового пакета | Переводит строку на язык текущего языкового пакета | ||
: '''''text''''' | |||
:: Тип: '''string''' | |||
; Результат | |||
: Тип: '''string''' | |||
; Пример | |||
{{Content:MirLua/Example|code=m.Translate('Exit')}} | {{Content:MirLua/Example|code=m.Translate('Exit')}} | ||
Line 128: | Line 179: | ||
===ReplaceVariables=== | ===ReplaceVariables=== | ||
Заменяет переменные ядра Miranda NG в строке | Заменяет переменные ядра Miranda NG в строке | ||
: '''''text''''' | |||
; Результат | |||
: Тип: '''string''' | |||
; Пример | |||
{{Content:MirLua/Example|code=local profileName = m.ReplaceVariables('%miranda_profilename%')}} | {{Content:MirLua/Example|code=local profileName = m.ReplaceVariables('%miranda_profilename%')}} | ||
==Константы== | |||
===NULL=== | |||
Нулевой указатель | |||
: Тип: '''light userdata''' | |||
;Пример | |||
{{Content:MirLua/Example|code= | |||
if hEvent == m.NULL then | |||
print('Event handle is empty!') | |||
end | |||
}} | |||
===INVALID_HANDLE_VALUE=== | |||
Невалидный дескриптор | |||
:Тип: '''light userdata''' | |||
;Пример | |||
{{Content:MirLua/Example|code= | |||
if hEvent == m.NULL then | |||
print('Event handle is invalid!') | |||
end | |||
}} | |||
===CALLSERVICE_NOTFOUND=== | |||
Результат вызова несуществующего сервиса | |||
:Тип: '''number''' | |||
;Пример | |||
{{Content:MirLua/Example|code= | |||
local result = m.CallService('MyService') | |||
if result == m.CALLSERVICE_NOTFOUND then | |||
print('Service is not found!') | |||
end | |||
}} |
Latest revision as of 22:50, 3 December 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
- Результат
- Тип: '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
- Пример
m.CallService('MyService', 0, 0)
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%')
Константы
NULL
Нулевой указатель
- Тип: light userdata
- Пример
if hEvent == m.NULL then
print('Event handle is empty!')
end
INVALID_HANDLE_VALUE
Невалидный дескриптор
- Тип: light userdata
- Пример
if hEvent == m.NULL then
print('Event handle is invalid!')
end
CALLSERVICE_NOTFOUND
Результат вызова несуществующего сервиса
- Тип: number
- Пример
local result = m.CallService('MyService')
if result == m.CALLSERVICE_NOTFOUND then
print('Service is not found!')
end