Сообщения SDK

Материал из Wiki.qip.ru

Перейти к: навигация, поиск

Описание всех сообщений (констант с префиксом PM_PLUGIN_) расположены в модуле u_plugin_info.pas. Все сообщения можно разделить на несколько смысловых категорий, а некоторые категории на подкатегории.

Содержание

Сообщения по версиям SDK

[SDK v 1.6]  -   ..67    ..PM_PLUGIN_ENUM_INFO

[SDK v 1.7]  - 68..79    PM_PLUGIN_SPEC_DRAG_START..PM_PLUGIN_SET_OVERLAY_ICN

[SDK v 1.8]  - 80..93    PM_PLUGIN_GET_META_CONT  ..PM_PLUGIN_DETAILS_CHANGED

[SDK v 1.9]  - 94..106   PM_PLUGIN_GET_PROTO_ST   ..PM_PLUGIN_MENU_ITEM_CLICK

[SDK v 1.10]  - 107..113   PM_PLUGIN_MEDIA_CONTROL   ..PM_PLUGIN_URL_CLICK

[SDK v 1.12]  - 114..124   PM_PLUGIN_READY_FOR_WIDGET   ..PM_PLUGIN_PROTO_STATUS_SET

Карта SDK

ссылки сообщения структуры константы
Первостепенные

PM_PLUGIN_LOAD_SUCCESS  ● PM_PLUGIN_RUN  ● PM_PLUGIN_QUIT  ● PM_PLUGIN_ENABLE  ● PM_PLUGIN_DISABLE  ● PM_PLUGIN_OPTIONS

Второстепенные

PM_PLUGIN_WRONG_SDK_VER  ● PM_PLUGIN_ANTIBOSS  ● PM_PLUGIN_INFIUM_CLOSE

Обработка Spell-событий

PM_PLUGIN_SPELL_CHECK  ● PM_PLUGIN_SPELL_POPUP  ● PM_PLUGIN_SPELL_REPLACE  ● PM_PLUGIN_SPELL_RECHECK

Глобальный статус

PM_PLUGIN_STATUS_GET  ● PM_PLUGIN_STATUS_SET  ● PM_PLUGIN_STATUS_CHANGED  ● PM_PLUGIN_GET_PROTO_ST  ● PM_PLUGIN_PROTO_ST_CHANGED

QIP_STATUS_  ● QIP_STATUS_PRIV_

X-статус

PM_PLUGIN_XSTATUS_UPD  ● PM_PLUGIN_XSTATUS_GET  ● PM_PLUGIN_XSTATUS_CHANGED  ● PM_PLUGIN_GET_CONT_XST  ● PM_PLUGIN_CONT_XST_CHANGE

Звуки

PM_PLUGIN_SOUND_GET  ● PM_PLUGIN_SOUND_SET  ● PM_PLUGIN_SOUND_CHANGED  ● PM_PLUGIN_PLAY_WAV_SND

QIP_SND_ID_

Кнопки окна сообщения

PM_PLUGIN_CAN_ADD_BTNS  ● PM_PLUGIN_ADD_BTN  ● PM_PLUGIN_MSG_BTN_CLICK

TAddBtnInfo  ● TBtnClick

Кнопки чат-окна

PM_PLUGIN_CHAT_CAN_BTNS  ● PM_PLUGIN_CHAT_ADD_BTN  ● PM_PLUGIN_CHAT_BTN_CLICK

TAddBtnInfo  ● TBtnClick

Кнопки в тексте сообщений

PM_PLUGIN_NOTIF_ADD_ICON  ● PM_PLUGIN_NOTIF_SEND_CHAT  ● PM_PLUGIN_NOTIF_BTN_CLICK  ● PM_PLUGIN_NOTIF_BTN_DISBL

TPngObject  ● TNotifInfo

nid_

Всплывающие окна

PM_PLUGIN_FADE_MSG  ● PM_PLUGIN_FADE_CLICK  ● PM_PLUGIN_FADE_CLOSE  ● PM_PLUGIN_CORE_SVC_FADE

TFadeWndInfo

События спец.-контактов (плагины в КЛ)

PM_PLUGIN_SPEC_ADD_CNT  ● PM_PLUGIN_SPEC_DEL_CNT  ● PM_PLUGIN_SPEC_REDRAW  ● PM_PLUGIN_SPEC_DRAW_CNT  ● PM_PLUGIN_SPEC_DBL_CLICK  ● PM_PLUGIN_SPEC_RIGHT_CLK  ● PM_PLUGIN_HINT_GET_WH  ● PM_PLUGIN_HINT_DRAW  ● PM_PLUGIN_SPEC_DRAG_START  ● PM_PLUGIN_SPEC_DRAG_END  ● PM_PLUGIN_HINT_GET_BB

TRect  ● TPoint  ● TPluginBBHint

Иконки-индикаторы для контактов

PM_PLUGIN_ADD_OVERLAY_ICN  ● PM_PLUGIN_UPD_OVERLAY_ICN  ● PM_PLUGIN_DEL_OVERLAY_ICN  ● PM_PLUGIN_SET_OVERLAY_ICN

TOverlayIcon

Список контактов

PM_PLUGIN_CONTACT_STATUS  ● PM_PLUGIN_DETAILS_GET  ● PM_PLUGIN_SET_DETAILS  ● PM_PLUGIN_DETAILS_CHANGED  ● PM_PLUGIN_GET_CONTACT_ST  ● PM_PLUGIN_IS_ACC_IN_NIL  ● PM_PLUGIN_GET_CL_SNAPSHOT  ● PM_PLUGIN_IS_META_MODE  ● PM_PLUGIN_GET_META_CONT  ● PM_PLUGIN_CL_CHANGED  ● PM_PLUGIN_CL_FILTERED

TContactDetails  ● ICLSnapshot  ● IMetaContact

Получение \ отправка специальных сообщений

PM_PLUGIN_SPEC_SEND  ● PM_PLUGIN_SPEC_RCVD

Окно сообщений, вкладки

PM_PLUGIN_CHAT_TAB  ● PM_PLUGIN_OPEN_FOCUS_TAB  ● PM_PLUGIN_ACTIVE_MSG_TAB  ● PM_PLUGIN_ACTIVE_CHAT_TAB  ● PM_PLUGIN_CTAB_ACTIVATED  ● PM_PLUGIN_TAB_CREATED

Получение \ отправка IM-сообщений

PM_PLUGIN_RCVD_IM  ● PM_PLUGIN_SEND_IM

MSG_TYPE_

Обработка IM-сообщений

PM_PLUGIN_MSG_RCVD  ● PM_PLUGIN_MSG_SEND  ● PM_PLUGIN_MSG_RCVD_NEW  ● PM_PLUGIN_MSG_RCVD_READ  ● PM_PLUGIN_CLEAR_EVENT  ● PM_PLUGIN_URL_CLICK

TQipMsgPlugin

Обработка чат-сообщений

PM_PLUGIN_CHAT_MSG_RCVDNEW  ● PM_PLUGIN_CHAT_MSG_RCVD  ● PM_PLUGIN_CHAT_SENDING  ● PM_PLUGIN_CHAT_MSG_SEND

TChatTextInfo

CHAT_TEXT_

Дополнительные пункты меню

PM_PLUGIN_ADD_MENU_ITEMS  ● PM_PLUGIN_MENU_ITEM_CLICK  ● PM_PLUGIN_ADD_CL_MENU_ITEMS  ● PM_PLUGIN_CL_MENU_ITEM_CLICK

PMenuItems ● TPluginMenuItem

Контроль передачи файлов

PM_PLUGIN_WANT_SEND_FILES  ● PM_PLUGIN_FILE_SEND  ● PM_PLUGIN_FILE_ACCEPT

TDropFilesInfo

SFT_

История сообщений

PM_PLUGIN_GET_QIPHIST  ● PM_PLUGIN_GET_PLUGHIST

IQIPHistory  ● IPluginHistory

Общие настройки QIP

PM_PLUGIN_GET_NAMES  ● PM_PLUGIN_GET_PROFILE_DIR  ● PM_PLUGIN_GET_COLORS_FONT  ● PM_PLUGIN_GET_NET_SET  ● PM_PLUGIN_GET_SKIN_HANDLE  ● PM_PLUGIN_GET_RIGHTS_MASK

TQipColors  ● TNetParams

PRM_

Локализация (языки)

PM_PLUGIN_CURRENT_LANG  ● PM_PLUGIN_GET_LANG_STR

LI_

Протоколы (учётные записи)

PM_PLUGIN_PROTOS_SNAPSHOT  ● PM_PLUGIN_PROTO_STATUS_SET

ICLSnapshot

Взаимодействие с другими плагинами

PM_PLUGIN_BROADCAST  ● PM_PLUGIN_FIND  ● PM_PLUGIN_MESSAGE  ● PM_PLUGIN_ENUM_PLUGINS  ● PM_PLUGIN_ENUM_INFO

TPluginInfo

Работа с медиа-элементами

PM_PLUGIN_MEDIA_CONTROL  ● PM_PLUGIN_ENUM_MEDIA  ● PM_PLUGIN_MEDIA_CALLBACK

PVC_

Управление виджетами

PM_PLUGIN_READY_FOR_WIDGET  ● PM_PLUGIN_WIDGET_ADD  ● PM_PLUGIN_WIDGET_DEL  ● PM_PLUGIN_WIDGET_INVALIDATE  ● PM_PLUGIN_WIDGET_SHOW_HINT  ● PM_PLUGIN_WIDGET_INV_HINT  ● PM_PLUGIN_WIDGET_GETBOUNDS

IWidget  ● TWidgetID  ● TWidgetClass  ● TWidgetState  ● TWidgetStateSet  ● TWidgetHintPos

Вспомогательные интерфейсы

PM_PLUGIN_GETGUI  ● PM_PLUGIN_GET_UTILS

IQIPCoreGUI ● IQIPUtils ● ISkinDraw


Основные

Первостепенные

Важно: Обратите внимание, что если работа плагина вызовет необработанное исключение, то ядро может исключить такой плагин из рассылки всех сообщений

В этом случае Вам следует позаботится об освобождении ресурсов в деструкторе вашей реализации интерфейса IQIPPluginService, учитывая что сообщение PM_PLUGIN_RUN пришло, а PM_PLUGIN_QUIT может не придти


Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_LOAD_SUCCESS
1
Cообщение об успешной инициализации QIP Infium.
«ядро → плагин»
  • WParam — старший номер версии SDK, которая поддерживается ядром.
  • LParam — младший номер версии SDK, которая поддерживается ядром.
PM_PLUGIN_RUN
2
Cообщение об успешном запуске. После этого сообщения плагин может начать работу (до этого не рекомендуется).
«ядро → плагин»
Параметры не используются.
PM_PLUGIN_QUIT
3
Cообщение о выключении QIP Infium.
«ядро → плагин»
Параметры не используются.
PM_PLUGIN_ENABLE
4
Сообщение о включении плагина пользователем в настройках QIP Infium.
«ядро → плагин»
Параметры не используются.
PM_PLUGIN_DISABLE
5
Сообщение об отключении плагина пользователем в настройках QIP Infium.
«ядро → плагин»
Параметры не используются.
PM_PLUGIN_OPTIONS
6
Событие нажатия кнопки «Настройки» вашего плагина в секции «Модули» интерфейса QIP Infium.
«ядро → плагин»
Параметры не используются.


Второстепенные

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_WRONG_SDK_VER
21
Сообщение о несоответствии поддерживаемой версии SDK ядра версии SDK, реализованной в плагине (версия SDK плагина выше версии SDK ядра).
«ядро → плагин»
  • WParam — старший номер версии SDK, которая поддерживается ядром.
  • LParam — младший номер версии SDK, которая поддерживается ядром.
PM_PLUGIN_ANTIBOSS
27
Сообщение о включении/выключении режима «анти-босс», когда все окна должны быть соответственно скрыты или восстановлены.
«ядро → плагин»
  • WParam
True: «анти-босс» включен;
False: «анти-босс» выключен.
PM_PLUGIN_INFIUM_CLOSE
61
Выключает/перезапускает QIP Infium, выгружаясь полностью из памяти.
«плагин → ядро»
  • WParam
0: выключение;
1: перезапуск.


Обработка Spell-событий

Внимание! С версиями QIP Infium 9021 и выше не работает.
Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_SPELL_CHECK
7
Проверка слова.
«ядро → плагин»
  • WParam — строка проверяемого слова.
  • LParam — цвет подчеркивания (TColor).
  • Result — устанавливается True, если слово необходимо подчеркнуть.
PM_PLUGIN_SPELL_POPUP
8
Нажатие правой кнопкой мыши по подчеркнутому слову.

Используется для показа всплывающего контекстного меню.

«ядро → плагин»
  • WParam — строка подчеркнутого слова.
  • LParam — указатель на системную структуру TPoint c координатами для всплывающего меню.
PM_PLUGIN_SPELL_REPLACE
9
Замена подчеркнутого слова.
«плагин → ядро»
  • WParam — строка слова, которое заменит указанное в сообщении PM_PLUGIN_SPELL_POPUP.
  • Result — результат замены.
PM_PLUGIN_SPELL_RECHECK
18
Сообщение о необходимости повторной проверки слов.
«плагин → ядро»
Параметры не используются.

Статусы

Глобальный статус

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_STATUS_GET
32
Получение глобальных статусов в QIP Infium.
«плагин → ядро»
  • Result
True: ядро успешно выполнило сообщение;
False: ядро не выполнило сообщение.
PM_PLUGIN_STATUS_SET
33
Установка глобальных статусов в QIP Infium.
«плагин → ядро»
  • WParam — онлайн статус.
  • LParam — приватный статус.

(Значение -1 одного из статусов означает, что его менять не требуется.)

PM_PLUGIN_STATUS_CHANGED
34
Сообщение об изменениях глобальных статусов в QIP Infium.
«ядро → плагин»
  • WParam — онлайн статус.
  • LParam — приватный статус.

(Значение -1 одного из статусов означает, что в нём не произошло изменений.)

PM_PLUGIN_GET_PROTO_ST
94
Запрос статуса указанного протокола
«плагин → ядро»
  • WParam — дескриптор протокола
  • Result — онлайн статус протокола QIP_STATUS_
    • -1 — протокол не найден
PM_PLUGIN_PROTO_ST_CHANGED
95
Уведомление об изменении онлайн статуса протокола
«ядро → плагин»
  • WParam — дескриптор протокола
  • Result — новый онлайн статус QIP_STATUS_

X-статус

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_XSTATUS_UPD
10
Установка X-статуса в QIP Infium.
«плагин → ядро»
  • WParam — номер картинки.
  • LParam — заголовок X-статуса (максимальная длина — 20 символов).
  • NParam — описание X-статуса (максимальная длина — 512 символов).

(Значение 0 в номере картинки удаляет X-статус.)

PM_PLUGIN_XSTATUS_GET
11
Получение X-статуса в QIP Infium.
«плагин → ядро»
  • WParam — номер картинки.
  • LParam — заголовок X-статуса.
  • NParam — описание X-статуса.

(Значение 0 в номере картинки означает отсутствие X-статуса.)

PM_PLUGIN_XSTATUS_CHANGED
12
Сообщение об изменениях X-статуса в QIP Infium.
«ядро → плагин»
  • WParam — номер картинки.
  • LParam — заголовок X-статуса.
  • NParam — описание X-статуса.

(Значение 0 в номере картинки означает удаление X-статуса. При этом параметры LParam и NParam должны быть пусты.)

PM_PLUGIN_GET_CONT_XST
96
Запрос Х-статуса контакта
«плагин → ядро»
  • WParam — учётная запись контакта
  • LParam — дескриптор протокола
  • [in] NParam — размер буфера для получения текста х-статуса
  • [in] Result — буфер для получения текста х-статуса (память под буфер выделяется плагином)
  • [out] NParam — номер статус-картинки
PM_PLUGIN_CONT_XST_CHANGE
97
Уведомление об изменении х-статуса контакта
«ядро → плагин»
  • WParam — учётная запись контакта
  • LParam — дескриптор протокола
  • NParam — номер статус картинки
    • -1 — в случае когда изменён заголовок, а не текст х-статуса
  • Result — указатель на новый текст х-статуса / заголовка х-статуса

Звуки

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_SOUND_GET
13
Получение информации о состоянии звука в QIP Infium.
«плагин → ядро»
  • Result
True: звук включен;
False: звук выключен.
PM_PLUGIN_SOUND_SET
14
Включение/выключение звука в QIP Infium.
«плагин → ядро»
  • WParam
True: включение звука;
False: выключение звука.
PM_PLUGIN_SOUND_CHANGED
15
Сообщение об изменениях о состоянии звука в QIP Infium.
«ядро → плагин»
  • WParam
True: звук включен;
False: звук выключен.
PM_PLUGIN_PLAY_WAV_SND
46
Воспроизведение wav-файла средствами ядра QIP.
«плагин → ядро»
  • WParam — идентификатор стандартного файла, заданный настройками (заполняется значениями констант QIP_SND_ID_).
  • LParam — путь к своему файлу (в формате PWideChar).
  • NParam
True: принудительное воспроизведение (независимо от состояния звука в QIP).

(Указанный собственный файл воспроизводится, если в качестве идентификатора стандартного файла указано 0.)

События кнопок

Структура TBtnClick используется, начиная с версии SDK 1.6.

Кнопки окна сообщения

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_CAN_ADD_BTNS
22
Сообщение об открытии нового окна сообщений или переключения вкладки в нём, при этом плагин может добавить собственную кнопку под аватар собеседника.
«ядро → плагин»
  • WParam — имя учётной записи собеседника.
  • LParam — имя протокола.
  • NParam — дескриптор данного протокола.
PM_PLUGIN_ADD_BTN
23
Добавляет новую кнопку плагина в текущую вкладку.
«плагин → ядро»
  • WParam — указатель на информацию о добавляемой кнопке (см. TAddBtnInfo).
  • LParam — указатель на информацию о добавляемой кнопке (см. TAddBtnInfo2). Если указан, имеет приоритет выше WParam. [SDK v 1.12]
  • Result — возвращаемый ядром уникальный идентификатор кнопки.

(Если возвращён Result, равный 0 — создание кнопки прошло неуспешно.)

PM_PLUGIN_MSG_BTN_CLICK
24
Сообщение о нажатии пользователем на кнопку плагина.
«ядро → плагин»
  • WParam — уникальный идентификатор кнопки.
  • LParam — имя учётной записи собеседника.
  • NParam — имя протокола.
  • Result — дескриптор протокола
  • DllHandle — указатель на TBtnClick с информацией о событии нажатия кнопки.


Кнопки чат-окна

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_CHAT_CAN_BTNS
40
Сообщение об открытии создании/переключении вкладки чат-окна, при этом плагин может добавить собственную кнопку на разделительную панель.
«ядро → плагин»
  • WParam — название канала/конференции.
  • LParam — имя протокола.
  • NParam — дескриптор данного протокола.
  • Result — заголовок открытой вкладки.
PM_PLUGIN_CHAT_ADD_BTN
41
Добавляет новую кнопку плагина в текущую вкладку чата.
«плагин → ядро»
  • WParam — указатель на информацию о добавляемой кнопке (см. TAddBtnInfo).
  • LParam — указатель на информацию о добавляемой кнопке (см. TAddBtnInfo2). Если указан, имеет приоритет выше WParam. [SDK v 1.12]
  • Result — возвращаемый ядром уникальный идентификатор кнопки.

(Если возвращён Result, равный 0 — создание кнопки прошло неуспешно.)

PM_PLUGIN_CHAT_BTN_CLICK
42
Сообщение о нажатии пользователем на кнопку плагина в чат-окне.
«ядро → плагин»
  • WParam — уникальный идентификатор кнопки.
  • LParam — название текущего канала/конференции.
  • NParam — имя протокола.
  • Result — дескриптор протокола
  • DllHandle — указатель на TBtnClick с информацией о событии нажатия кнопки.

Кнопки в тексте сообщений

(информационные сообщения плагинов, например: запрос "начать игру ? Да/Нет")

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_NOTIF_ADD_ICON
83
Перед показом инфо-сообщения добавляем иконки в imagelist окна (для оптимизации реусрсов GDI)
«плагин → ядро»
  • WParamHICON дескриптор иконки
  • LParam — объект TPngObject
  • NParam — путь к графике поддерживаемого типа (см ImageURI. [SDK v 1.12]

возвращаемые значения:

  • Result — индекс иконки в imagelist
PM_PLUGIN_NOTIF_SEND_CHAT
84
Показывает инфо-сообщение в окне сообщений с управляемыми кнопками
«плагин → ядро»
  • WParam — дескриптор протокола
  • LParam — имя аккаунта контакта
  • NParam — указатель на структуру TNotifInfo
TNotifInfo.IconID: должен содержать индекс иконки в imagelist, см. PM_PLUGIN_NOTIF_ADD_ICON

возвращаемые значения:

  • Result — уникальный идентификатор инфо-сообщения NotifID
PM_PLUGIN_NOTIF_BTN_CLICK
85
Уведомление плагина о нажатой кнопке в инфо-сообщении
«ядро → плагин»
  • WParam — уникальный идентификатор инфо-сообщения NotifID
  • LParam — идентификатор кнопки, см. nid_
  • NParam — значение BtnData из TNotifInfo

возвращаемые значения:

  • <code>Result
True: если хотите отключить (Disable) все кнопки этого инфо-сообщения
False: если не хотите отключать кнопки
PM_PLUGIN_NOTIF_BTN_DISBL
86
Отключает указанную или все кнопки в инфо-сообщении
«плагин → ядро»
  • WParam — дескриптор протокола
  • LParam — имя аккаунта контакта
  • NParam — уникальный идентификатор инфо-сообщения NotifID
  • Result
-1: отключить все кнопки
ButtonID: отключить указанную кнопку


Всплывающие окна

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_FADE_MSG
30
Показывает всплывающее окно.
«плагин → ядро»
  • WParam — указатель на информацию о всплывающем окне (см. TFadeWndInfo).
  • Result — возвращённый ядром уникальный идентификатор всплываюещго окна.
PM_PLUGIN_FADE_CLICK
54
Сообщение о нажатии пользователем по всплывающему окну.
«ядро → плагин»
  • WParam — уникальный идентификатор всплывающего окна.
PM_PLUGIN_FADE_CLOSE
55
Закрывает всплывающее окно.
«плагин → ядро»
  • WParam — уникальный идентификатор всплывающего окна, которое будет закрыто.
  • Result
True: всплывающее окно было найдено и закрыто;
False: ядро не выполнило сообщение.
PM_PLUGIN_CORE_SVC_FADE
92
Приходит в момент показа всплывающего уведомления на сервисное сообщение (кроме сообщений со стилем "обычный (message) == 0").

Вы можете запретить показ всплывающего окна.

«ядро → плагин»
  • WParam — указатель на информацию о всплывающем окне (см. TFadeWndInfo).
  • Result — возвращаемое плагином значение (не меняйте значение, если не уверены):
    • True — разрешить показ всплывающего окна
    • False — запретить показ всплывающего окна

События спец.-контактов (плагины в КЛ)

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_SPEC_ADD_CNT
48
Создаёт спец.-контакт плагина в контакт листе.
«плагин → ядро»
  • WParam — высота контакта в пикселях от 8 до 100 (по умолчанию 19).
  • LParam — данные для контакта — используется по усмотрению разработчика.
  • Result — возвращаемый ядром уникальный идентификатор контакта.
PM_PLUGIN_SPEC_DEL_CNT
49
Удаление спец.-контакта плагина.
«плагин → ядро»
  • WParam — уникальный идентификатор контакта.
  • Result — результат удаления.
PM_PLUGIN_SPEC_REDRAW
50
Сообщение о необходимости перерисовки существующего спец.-контакта.
«плагин → ядро»
  • WParam — уникальный идентификатор контакта.
PM_PLUGIN_SPEC_DRAW_CNT
51
Перерисовка спец.-контакта плагина.
«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • LParam — добавленные данные для контакта в сообщении PM_PLUGIN_SPEC_ADD_CNT.
  • NParam — дескриптор прямоугольной облости «холста» контакта (hDC).
  • Result — указатель на системную структуру TRect.
PM_PLUGIN_SPEC_DBL_CLICK
52
Сообщение о двойном клике по спец.-контакту.
«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • LParam — добавленные данные для контакта в сообщении PM_PLUGIN_SPEC_ADD_CNT.
PM_PLUGIN_SPEC_RIGHT_CLK
53
Сообщение о клике правой кнопкой мыши по спец.-контакту.

Обычно используется для показа всплывающего контекстного меню.

«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • LParam — добавленные данные для контакта в сообщении PM_PLUGIN_SPEC_ADD_CNT.
  • NParam — указатель на системную структуру TPoint c координатами для всплывающего меню.
PM_PLUGIN_HINT_GET_WH
58
Сообщение о задержке указателя мыши над спец.-контактом.

Используется для создания всплывающей подсказки, информации («хинта»).

«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • Result — добавленные данные для контакта в сообщении PM_PLUGIN_SPEC_ADD_CNT.
  • LParam — ширина будующего «хинта» в пиксилях, устанавливаемая плагином.
  • NParam — высота будующего «хинта» в пиксилях, устанавливаемая плагином.
PM_PLUGIN_HINT_DRAW
59
Перерисовка созданного «хинта».
«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • Result — добавленные данные для контакта в сообщении PM_PLUGIN_SPEC_ADD_CNT.
  • LParam — дескриптор прямоугольной облости «холста» «хинта» (hDC).
  • NParam — указатель на системную структуру TRect.
PM_PLUGIN_SPEC_DRAG_START
68
Начало перетаскивания спец.-контакта пользователем на рабочий стол.
«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • Result
True: разрешает перетаскивание контакта;
False: запрещает перетаскивание контакта.
PM_PLUGIN_SPEC_DRAG_END
69
Завершение перетаскивания спец.-контакта пользователем на рабочий стол.
«ядро → плагин»
  • WParam — уникальный идентификатор контакта.
  • LParam
True: контакт перемещен на рабочий стол;
False: контакт перемещен обратно в контакт лист.
  • NParam — указатель на системную структуру TPoint c координатами мыши.
PM_PLUGIN_HINT_GET_BB
121
Запрос на получение хинта спец-контакта в формате bb-code
«ядро → плагин»
  • WParam — указатель на структуру TPluginBBHint

плагин должен вернуть в Result значение, отличающееся от 0, если он обрабатывает это сообщение


Иконки-индикаторы для контактов

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_ADD_OVERLAY_ICN
76
Добавление индикаторной иконки в список иконок.
«плагин → ядро»
  • WParam — указатель на TOverlayIcon.
  • Result — уникальный номер добавленной иконки, возвращаемый ядром.
PM_PLUGIN_UPD_OVERLAY_ICN
77
Изменение индикаторной иконки в список иконок.
«плагин → ядро»
  • WParam — указатель на TOverlayIcon.
  • LParam — уникальный номер иконки.
  • NParam — устанавливается ненулевое значение, если требуется перерисовать контакт-лист.
  • Result
True: иконка изменена;
False: иконка не изменена.
PM_PLUGIN_DEL_OVERLAY_ICN
78
Удаление индикаторной иконки из списка иконок.
«плагин → ядро»
  • WParam — уникальный номер иконки.
  • Result
True: иконка удалена;
False: иконка не удалена.
PM_PLUGIN_SET_OVERLAY_ICN
79
Установка индикаторной иконки контакту из контакт-листа.
«плагин → ядро»
  • WParam — имя аккаунта контакта.
  • LParam — дескриптор протокола.
  • NParam — уникальный номер иконки.
  • Result
True: иконка установлена;
False: иконка не установлена.

Список контактов

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_CONTACT_STATUS
37
Сообщение о смене контактом статуса.
«ядро → плагин»
  • WParam — имя протокола.
  • LParam — имя аккаунта контакта.
  • NParam — статус контакта.
  • Result — x-статус контакта.
  • DllHandle — дескриптор протокола.
PM_PLUGIN_DETAILS_GET
38
Получение локальной информации о пользователе.
«плагин → ядро»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта контакта.
  • NParam — указатель на TContactDetails с информацией о контакте.
  • Result
True: информация получена плагином;
False: информация не получена.
PM_PLUGIN_SET_DETAILS
82
Изменение локальной информации о пользователе. Изменены могут быть имя контакта, номера телефонов и заметка о контакте.
«плагин → ядро»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта контакта.
  • NParam — указатель на TContactDetails с информацией о контакте.
  • Result
True: информация изменена;
False: информация не изменена.
PM_PLUGIN_DETAILS_CHANGED
93
Уведомление что другой плагин изменил данные контакта.
«ядро → плагин»
  • WParam — имя аккаунта контакта.
  • LParam — дескриптор протокола.
PM_PLUGIN_GET_CONTACT_ST
60
Получение плагином статуса контакта, находящегося в контакт листе, в т.ч. если он находится «не в списке».
«плагин → ядро»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта контакта.
  • NParam — статус указанного контакта.
  • Result
True: контакт найден и получен его статус;
False: контакт не находится в контакт листе.
PM_PLUGIN_IS_ACC_IN_NIL
70
Проверка контакта на принадлежность группе «не в списке».
«плагин → ядро»
  • WParam — имя аккаунта контакта.
  • LParam — дескриптор протокола.
  • NParam — имя протокола.
  • Result
True: контакт в группе «не в списке»;
False: контакт не в группе «не в списке».

(Если дескриптор протокола не указан, то поиск протокола осуществляется по его имени.)

PM_PLUGIN_GET_CL_SNAPSHOT
71
Перечисление контактов пользователя.
«плагин → ядро»
  • WParam — интерфейс ICLSnapshot для перечисления контактов.
  • LParam — дескриптор протокола.
  • NParam — имя протокола.

(Если дескриптор протокола не указан, то перечисление будет осуществляться по всем протоколам сразу.)

PM_PLUGIN_IS_META_MODE
89
Проверка состояния режима метаконтактов.
«плагин → ядро»
  • Result
True: режим включен;
False: режим выключен.
PM_PLUGIN_GET_META_CONT
80
Получение метаконтакта по данным субконтакта.
«плагин → ядро»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта контакта.
  • Result — интерфейс IMetaContact, возвращаемый ядром программы.
PM_PLUGIN_CL_CHANGED
72
Сообщение об изменениях в контакт-листе (был добавлен или удалён какой-нибудь контакт).
«ядро → плагин»
Параметры не используются.
PM_PLUGIN_CL_FILTERED
98
Уведомление об изменении фильтра контакт-листа (для применения фильтра к фейк-контактам)
«ядро → плагин»
  • WParam — указатель на текст фильтра

Текстовые сообщения

Получение \ отправка специальных сообщений

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_SPEC_SEND
25
Отправка данных (далее «спец.-сообщения») между QIP Infium.

Спец.-сообщения передаются в ANSI-кодировке, т.о. предполагается что там содержится не текст, а именно данные плагина.

длина сообщения должна быть не больше 7000 байт.

«плагин → ядро»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта получателя.
  • NParam — отправляемые данные.
  • Result — результат отправки.
PM_PLUGIN_SPEC_RCVD
26
Получение специальных сообщений.

Специальные сообщения получают сразу все плагины.

«ядро → плагин»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта отправителя.
  • NParam — получаемые данные.
  • Result — имя протокола.

Окно сообщений, вкладки

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_CHAT_TAB
39
Информация об открытии или закрытии вкладки в чат-окне.
«ядро → плагин»
  • WParam — имя чата.
  • LParam — ник пользователя в чате.
  • NParam
True: вкладка открывается;
False: вкладка закрывается.
  • Result — заголовок вкладки.
  • DllHandle — дескриптор протокола.
PM_PLUGIN_OPEN_FOCUS_TAB
73
Открытие вкладки окна сообщений или чат-окна.
«плагин → ядро»
  • WParam — имя аккаунта отправителя (собеседника).
  • LParam — дескриптор протокола.
  • NParam — имя протокола.
  • Result — результат открытия вкладки.

(Если дескриптор протокола не указан, то поиск протокола осуществляется по его имени.)

PM_PLUGIN_ACTIVE_MSG_TAB
87
Запрашивает активную/последнюю открытую закладку окна сообщений (или активное окно сообщений)
«плагин → ядро»

параметры:

  • WParam
True: поиск активного окна/закладки (среди окон сообщений, для окна чата см. PM_PLUGIN_ACTIVE_CHAT_TAB). Если фокус клавиатуры находится не на окне сообщений (или на другом приложении), то ядро вернёт WParam и LParam равное '0'
False: поиск последней открытой вкладки

возвращаемые значения:

  • WParam — имя аккаунта найденной вкладки
  • LParam — дескриптор протокола
  • NParam — количество субконтактов метаконтакта, в который входит данный контакт, если он есть (следует использовать для оптимизации запросов интерфейса IMetaContact)
PM_PLUGIN_ACTIVE_CHAT_TAB
88
Запрашивает активную вкладку чата, окно чата может не иметь фокуса клавиатуры (см. также как проверить находится ли фокус клавиатуры в окне чата)
«плагин → ядро»

возвращаемые значения:

  • WParam — имя чата найденной вкладки
  • LParam — ник пользователя в чате
  • NParam — заголовок вкладки
  • Result — дескриптор протокола
PM_PLUGIN_CTAB_ACTIVATED
100
Уведомление об активации закладки чата
«ядро → плагин»
  • WParam — имя чата
  • LParam — дескриптор протокола
PM_PLUGIN_TAB_CREATED
110
Уведомление о создании вкладки в окне сообщений
«ядро → плагин»
  • WParam — имя аккаунта отправителя (собеседника).
  • LParam — дескриптор протокола.
  • NParam — True, если созданная вкладка также активируется

Получение \ отправка IM-сообщений

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_RCVD_IM
35
Информация об успешно полученном пользователем IM-сообщении.
«ядро → плагин»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта отправителя.
  • NParam — текст полученного сообщения.
  • Result — тип сообщения.
См. константы с префиксом MSG_TYPE_.
PM_PLUGIN_SEND_IM
36
Отправка сообщения (ответа) контакту.

Ответ отправляется сразу и только после PM_PLUGIN_RCVD_IM сообщения.

«плагин → ядро»
  • WParam — дескриптор протокола.
  • LParam — имя аккаунта получателя.
  • NParam — текст отправляемого сообщения.
  • Result — результат отправки.

Обработка IM-сообщений

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_MSG_RCVD
16
Оповещение о входящем сообщении с возможностью его преобразования.
«ядро → плагин»
  • WParam — указатель на TQipMsgPlugin с информацией о сообщении.
  • LParam — указатель на новую строку текста, который заменит исходный.
  • Result
True: сообщение будет получено;
False: сообщение будет игнорировано.
PM_PLUGIN_MSG_SEND
17
Оповещение об исходящем сообщении с возможностью его преобразования.
«ядро → плагин»
  • WParam — указатель на TQipMsgPlugin с информацией о сообщении.
  • LParam — указатель на новую строку текста, который заменит исходный.
  • Result
True: сообщение будет отправлено;
False: сообщение не будет отправлено.
PM_PLUGIN_MSG_RCVD_NEW
19
Оповещение о не прочитанном входящем сообщении.

Уведомление приходит периодически (~ 400 мс) до тех пор, пока не будет прочитано сообщение (пользователь не откроет окно сообщений и/или вкладку собеседника).

«ядро → плагин»
  • WParam — имя аккаунта отправителя (собеседника).
  • LParam — ник отправителя (собеседника).
  • NParam — дескриптор протокола.
PM_PLUGIN_MSG_RCVD_READ
20
Уведомление о прочтении сообщения (открытии пользователем окна сообщений и/или вкладки собеседника).
«ядро → плагин»
  • WParam — имя аккаунта отправителя (собеседника).
  • LParam — ник отправителя (собеседника).
  • NParam — дескриптор протокола.
PM_PLUGIN_CLEAR_EVENT
74
Очистка мигания входящего события.
«плагин → ядро»
  • WParam — имя аккаунта отправителя (собеседника).
  • LParam — дескриптор протокола.
  • NParam — имя протокола.

(Если дескриптор протокола не указан, то поиск протокола осуществляется по его имени.)

PM_PLUGIN_URL_CLICK
113
Уведомление о нажатии гиперссылки плагина ([url="plugin:MyHandle"]anytext[/url])
«ядро → плагин»
  • WParam — имя аккаунта отправителя (собеседника) вкладки, на которой произведен клик.
  • LParam — дескриптор протокола.
  • NParam — текст ссылки.

Обработка чат-сообщений

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_CHAT_MSG_RCVDNEW
99
Оповещение о получении сообщения (заменяет сообщение PM_PLUGIN_CHAT_MSG_RCVD на более информативное)
«ядро → плагин»
  • WParam — имя чата.
  • LParam — тип чат-сообщения.
См. константы с префиксом CHAT_TEXT_.
  • NParam — указатель на структуру TChatTextInfo
PM_PLUGIN_CHAT_MSG_RCVD
43
Оповещение о получении сообщения (в т.ч. собственных сообщений).
«ядро → плагин»
  • WParam — имя чата.
  • LParam — тип чат-сообщения.
См. константы с префиксом CHAT_TEXT_.
  • NParam — ник отправителя сообщения.
  • Result — текст сообщения.
  • DllHandle — дескриптор протокола.
PM_PLUGIN_CHAT_SENDING
44
Информация об отправке сообщения с возможностью его изменения.
«ядро → плагин»
  • WParam — имя чата.
  • LParam — ник пользователя в чате.
  • NParam — текст сообщения.
  • DllHandle — дескриптор протокола.
  • Result — устанавливается значение True плагином, если текст сообщения меняется и устанавливается новый указатель строки в параметр NParam.
PM_PLUGIN_CHAT_MSG_SEND
45
Отправка сообщения в чат.
«плагин → ядро»
  • WParam — имя чата.
  • LParam — дескриптор протокола.
  • NParam — текст сообщения.
  • Result — результат отправки.

Дополнительные пункты меню

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_ADD_MENU_ITEMS
105
Уведомление перед показом контекстного меню, для добавления своих строк в это меню
«ядро → плагин»
  • WParam — выделенный текст
  • LParam — назначенный url (для изображений или [url="uri"]text[/url]). [SDK v 1.10]
  • NParam — True, если меню показывается на изображении/видео [SDK v 1.10]

возвращаемые значения:

  • LParam — количество добавляемых строк меню
  • NParam — массив описаний строк меню PMenuItems
  • Result — для добавления строк установить <> 0 иначе строки добавлены не будут
PM_PLUGIN_MENU_ITEM_CLICK
106
Оповещение о клике на пункте меню.
«ядро → плагин»
  • WParamItemID соответствующей строки меню
  • LParamItemData соответствующей строки меню
  • NParam — выделенный текст

[SDK v 1.10]

  • Result — ItemID, если меню показывается на медиа-элементе (изображение или видео) (см. PM_PLUGIN_MEDIA_CONTROL)
PM_PLUGIN_ADD_CL_MENU_ITEMS
111
Уведомление перед показом контекстного меню контакта (в кл или ос), для добавления своих строк в это меню
«ядро → плагин»
  • WParam — указатель на IMetaContact выделенного контакта
  • LParam — True, если меню показывается на вкладке в ос

возвращаемые значения:

  • LParam — количество добавляемых строк меню
  • NParam — массив описаний строк меню PMenuItems
  • Result — для добавления строк установить <> 0 иначе строки добавлены не будут
PM_PLUGIN_CL_MENU_ITEM_CLICK
112
Оповещение о клике на пункте меню контакта.
«ядро → плагин»
  • WParamItemID соответствующей строки меню
  • LParamItemData соответствующей строки меню
  • NParam — указатель на IMetaContact выделенного контакта

Контроль передачи файлов

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_WANT_SEND_FILES
101
Уведомление о попытке отправки файлов (нажатие кнопки отправки или drag&drop в окно)
«ядро → плагин»
  • WParam — Указатель на TDropFilesInfo
  • LParam — ненулевое значение означает что отправка файла происходит через drag&drop на кнопку плагина
    • True - файл брошен на кнопку плагина
    • False - в остальных случаях

возвращаемое значение:

  • Result — если нужно отменить отправку файла ядром установите значение True, во всех остальных случаях значение менять НЕ СЛЕДУЕТ
PM_PLUGIN_FILE_SEND
102
Позволяет отправить файлы через функции ядра
«плагин → ядро»
  • WParam — Указатель на TDropFilesInfo
  • LParam — способ передачи файлов, см. SFT_

возвращаемое значение:

  • Result = True - отправка файла успешно начата, НЕ означает что контакт принял/согласился принять файл, только: успешная инициализация отправки
PM_PLUGIN_FILE_ACCEPT
103
Уведомление о входящих файлах от указанного контакта
«ядро → плагин»
  • WParam — учётная запись контакта
  • LParam — дескриптор протокола контакта
  • NParam — Указатель на TDropFilesInfo

возвращаемое значение:

  • Result — установите значение True для автоматического приёма файлов, во всех остальных случаях значение менять НЕ СЛЕДУЕТ

История сообщений

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_GET_QIPHIST
90
Служит для запроса интерфейса IQIPHistory.

Для правильной работы плагин должен ответить на PM_PLUGIN_GET_PLUGHIST.

«плагин → ядро»
  • Result — интерфейс IQIPHistory ядра, нулевое значение или интерфейс IQIPHistory2, совместимый с IQIPHistory (начиная с [SDK v 1.12]

)

PM_PLUGIN_GET_PLUGHIST
91
Запрос ядром интерфейса IPluginHistory у плагина.
«ядро → плагин»
  • Result — плагин должен вернуть в этом поле интерфейс IPluginHistory, IPluginHistory2 или 0, если плагин НЕ поддерживает работу с историей.


Настройки QIP Infium

Общие настройки QIP

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_GET_NAMES
31
Получение имени заголовка контакт листа и имени профиля.
«плагин → ядро»
  • WParam — Отображаемое имя (обычно имя учётной записи @qip.ru)
  • LParam — Имя профиля (имя папки с профилем)
  • Result
True: имена были получены;
False: имена не получены.
PM_PLUGIN_GET_PROFILE_DIR
56
Получение (полного) пути к папке для сохранения файлов плагинов в профиле пользователя (...\QIP Infium\USER\Plugins\).
«плагин → ядро»
  • WParam — путь к папке.
  • Result
True: путь был получен;
False: путь не получен.
PM_PLUGIN_GET_COLORS_FONT
57
Получение настроек цветов и шрифтов.
«плагин → ядро»
  • WParam — имя шрифта в контакт листе.
  • LParam — размер шрифта в контакт листе.
  • NParam — указатель на TQipColors.
PM_PLUGIN_GET_NET_SET
62
Получение информации о настройках подключения.
«плагин → ядро»
  • WParam — указатель на TNetParams.
  • Result
True: настройки получены;
False: настройки не получены.
PM_PLUGIN_GET_SKIN_HANDLE
75
Получение дескриптора загруженной библиотеки скина QIP Infium.
«плагин → ядро»
  • Result — полученный дескриптор.
PM_PLUGIN_GET_RIGHTS_MASK
104
Получение информации о разрешённых действиях для плагина
«плагин → ядро»
  • Result — набор значений, представленных константами PRM_ (набор флагов указывающих на разрешённые действия)

Локализация (языки)

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_CURRENT_LANG
28
Информация об используемом в QIP языке.
«ядро → плагин»
  • WParam — имя используемого языка.
PM_PLUGIN_GET_LANG_STR
29
Получение стандартных строк, используемых в QIP.
«плагин → ядро»
  • WParam — номер ресурса строки

(заполняется значениями констант LI_).

  • Result — полученная строка на текущем

используемом языке.

Другое

Протоколы (учётные записи)

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_PROTOS_SNAPSHOT
81
Перечисление протоколов.
«плагин → ядро»
  • WParam — интерфейс ICLSnapshot для перечисления протоколов.
PM_PLUGIN_PROTO_STATUS_SET
124
Установка статуса и приватного статуса для протокола
«плагин → ядро»
  • WParam — ProtoHandle протокола (может быть получен перечислением через сообщение PM_PLUGIN_PROTOS_SNAPSHOT)
  • LParam — желаемый статус (одно из значений QIP_STATUS_ )
  • NParam — желаемый приватный статус (одно из значений QIP_STATUS_PRIV_), если 0, то остается текущий приватный статус

Взаимодействие с другими плагинами

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_BROADCAST
63
Рассылка сообщений всем плагинам, кроме нашего и отключенных.
«плагин → ядро → плагины»
  • DllHandle — дескриптор плагина рассылающего сообщения.
Не допускается смена значения этого параметра.
  • Msg — устанавливается значение 0, если рассылку необходимо остановить.
Остальные параметры используются по усмотрению разработчиков.
PM_PLUGIN_FIND
64
Проверка наличия конкретного плагина.
«плагин → ядро»
  • WParam — имя искомого плагина.
Если результат поиска положительный после обработки ядром сообщения, в этот параметр помещается указатель на TPluginInfo с информацией о плагине.
  • Result — результат поиска плагина.
  • LParam — число найденных плагинов.
  • NParam
True: плагин включен;
False: плагин выключен.
PM_PLUGIN_MESSAGE
65
Отправка сообщений конкретному плагину.
«плагин → ядро → плагин»
  • WParam — дескриптор плагина-получателя.
  • Result — дескриптор плагина-отправителя.
Остальные параметры используются по усмотрению разработчиков.
PM_PLUGIN_ENUM_PLUGINS
66
Запрос на перечисление доступных в QIP плагинов.

После этого сообщения ядро начнёт отправлять плагину сообщения PM_PLUGIN_ENUM_INFO. Для каждого плагина будет отправлено отдельное сообщение.

«плагин → ядро»
Параметры не используются.
PM_PLUGIN_ENUM_INFO
67
Перечисляемая информация о плагинах.
«ядро → плагин»
  • WParam — указатель на TPluginInfo с информацией о плагине.
  • LParam
True: плагин включен;
False: плагин выключен.
  • NParam
True: последний перечисляемый плагин.

Работа с медиа-элементами

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_MEDIA_CONTROL
107
Осуществляет контроль над указанным изображением/видео
«плагин → ядро»
  • WParam — имя аккаунта в контролируемой вкладке.
  • LParam — дескриптор протокола.
  • NParam — ItemID элемента
  • Result — управляющая команда (см. PVC_)
вовзращаемое значение зависит от управляющей команды
PM_PLUGIN_ENUM_MEDIA
108
Запрос на перечисление доступных медиа-элементов в указанной вкладке
«плагин → ядро»
  • WParam — имя аккаунта в контролируемой вкладке.
  • LParam — дескриптор протокола.
  • Result — True, если перечисление возможно
Если True, то перечисление производится отсылкой ядром сообщения PM_PLUGIN_MEDIA_CALLBACK
PM_PLUGIN_MEDIA_CALLBACK
109
Перечисляемая информация о доступных медиа-элементах в указанной вкладке
«ядро → плагин»
  • WParam — ItemID элемента
  • LParam — True, если элемент - изображение, иначе элемент - видео

возращаемое значение:

  • Result — установите в True, если хотите остановить перечисление


Управление виджетами

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_READY_FOR_WIDGET
114
Уведомление о том, что окно сообщений было создано и готово для добавления своих виджетов
«ядро → плагин»

сообщение не имеет параметров

PM_PLUGIN_WIDGET_ADD
115
Запрос на добавление виджета

Заметка: виджеты ОС не отображаются в режиме вкладок сверху

«плагин → ядро»
  • WParam — интерфейс IWidget
  • Result — True, если полоска добавлена успешно
PM_PLUGIN_WIDGET_DEL
116
Запрос на удаление виджета из окна сообщений
«плагин → ядро»
  • WParam — интерфейс IWidget
  • Result — True, если виджет удален успешно
PM_PLUGIN_WIDGET_INVALIDATE
117
Запрос на перерисовку содержимого виджета
«плагин → ядро»
  • WParam — интерфейс IWidget
PM_PLUGIN_WIDGET_SHOW_HINT
118
Запрос на показ хинта слева или под виджетом

Хинт будет показан только при условии, что курсор находится в пределах области виджета.
Чтобы скрыть хинт вручную, нужно вызвать это сообщение с нулевыми шириной или высотой
Хинт будет скрыт сразу же по выходу мыши из области виджета

«плагин → ядро»
  • WParam — интерфейс IWidget
  • LParam — Ширина хинта
  • NParam — Высота хинта
  • Result — True, если хинт показан успешно
PM_PLUGIN_WIDGET_INV_HINT
119
Запрос на перерисовку хинта виджета
«плагин → ядро»
  • WParam — интерфейс IWidget
PM_PLUGIN_WIDGET_GETBOUNDS
120
Запрос на получение текущих размеров виджета
«плагин → ядро»
  • WParam — интерфейс IWidget
  • LParam — указатель PRect, куда будет записан размер виджета
  • NParam — указатель PRect, куда будет записан размер всей группы "виджеты"
  • Result — True, если запрос прошел успешно

Вспомогательные интерфейсы

Сообщение Значение Описание
Группа Параметры
PM_PLUGIN_GETGUI
122
Получение указателя на интерфейс IQIPCoreGUI
«плагин → ядро»
  • WParam — указатель на интерфейс IQIPCoreGUI

результат записывается по адресу, указанному в WParam

PM_PLUGIN_GET_UTILS
123
Получение указателя на интерфейс IQIPUtils
«плагин → ядро»
  • WParam — указатель на интерфейс IQIPUtils

результат записывается по адресу, указанному в WParam

Используемые типы и структуры

Структуры SDK

Класс-враппер над сообщениями SDK

Вместе с заголовочными файлами SDK, примером плагина поставляется ещё один пример с «классом-обёрткой» в модуле u_baseplugin.pas, описание которого можно просмотреть в отдельной статье.

См. также

Личные инструменты