Создание плагинов
Материал из AmbiBox
(Различия между версиями)
Ambibox (обсуждение | вклад) (Новая страница: «{{DISPLAYTITLE:<span style="display:none">{{FULLPAGENAME}}</span>}} == Создание плагинов подсветки == Плагины подсветки …») |
Ambibox (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
[[Файл:Ru_Backlight_Plugins_1.png]]<br /> | [[Файл:Ru_Backlight_Plugins_1.png]]<br /> | ||
+ | |||
+ | |||
+ | Плагин создается как DLL и экспортирует следующие функции:<br /> | ||
<source lang="cpp"> | <source lang="cpp"> | ||
Строка 150: | Строка 153: | ||
#endif | #endif | ||
</source> | </source> | ||
+ | <br /> | ||
== Создание глобальных плагинов == | == Создание глобальных плагинов == | ||
− | Глобальные плагины предназначены для создания световых эффектов и взаимодействуют | + | Глобальные плагины предназначены для создания световых эффектов и взаимодействуют с дистанционным управлением.<br /> |
+ | |||
+ | Плагины располагаются они в каталоге:<br /> | ||
+ | '''c:\Program Files\AmbiBox\Plugins\Global\[Имя каталога плагина]'''<br /> | ||
+ | |||
+ | |||
+ | В программе плагины расположены тут:<br /> | ||
+ | |||
+ | [[Файл:Ru_Global_Plugins_1.png]]<br /> | ||
+ | |||
+ | |||
+ | Плагин создается как DLL и экспортирует следующие функции:<br /> | ||
+ | <source lang="cpp"> | ||
+ | //--------------------------------------------------------------------------- | ||
+ | // AmbiBox global plugins interface | ||
+ | // Copyright (C) AmbiBox 2004-2014 | ||
+ | // AmbiBox@mail.ru | ||
+ | // http://www.ambibox.ru | ||
+ | //--------------------------------------------------------------------------- | ||
+ | #ifndef AMBIBOX_PLUGINS_H | ||
+ | #define AMBIBOX_PLUGINS_H | ||
+ | |||
+ | #include <windows.h> | ||
+ | |||
+ | #define AMB_TYPE_BACKLIGHT 0x0001 // Фоновая подсветка | ||
+ | #define AMB_TYPE_IR 0x0002 // Дистаноционное управление | ||
+ | |||
+ | #define AMB_NO_ERROR 0x0000 | ||
+ | #define AMB_ERROR_INIT 0x0001 | ||
+ | #define AMB_ERROR_START 0x0002 | ||
+ | #define AMB_ERROR_SETTINGS 0x0003 | ||
+ | #define AMB_ERROR_NO_BACKLIGHT_TYPE 0x0004 | ||
+ | #define AMB_ERROR_NO_IR_TYPE 0x0005 | ||
+ | #define AMB_ERROR_NO_CORRECT_PID 0x0006 | ||
+ | #define AMB_ERROR_COMMAND 0x0007 | ||
+ | #define AMB_ERROR_DEVICE_NOT_LOCKED 0x0008 | ||
+ | #define AMB_ERROR_SMALL_TIME 0x0009 | ||
+ | #define AMB_ERROR_NOT_SENDED 0x000A | ||
+ | #define AMB_ERROR_ALREADY_LOCKED 0x000B | ||
+ | |||
+ | #define AMB_EVENT_CALLBACK 0x0000 | ||
+ | #define AMB_EVENT_WM_MESSAGE 0x0001 | ||
+ | |||
+ | #define AMB_LOCK_DEVICE 0x0001 | ||
+ | #define AMB_UNLOCK_DEVICE 0x0002 | ||
+ | #define AMB_DATA_TO_DEVICE 0x0003 | ||
+ | |||
+ | #pragma pack (push, 1) | ||
+ | typedef struct _BACKLIGHT_DATA | ||
+ | { | ||
+ | DWORD dwPluginID; // ID плагина, задается программой | ||
+ | DWORD *InputData; // Буффер с данными о цвете RGB светодиодов | ||
+ | DWORD dwDataSize; // Количество данных в InputData | ||
+ | DWORD dwDeviceStatus; // Действие для устройства | ||
+ | |||
+ | } BACKLIGHT_DATA, *LPBACKLIGHT_DATA; | ||
+ | |||
+ | typedef int (__stdcall *AMB_IRCALLBACK)(BYTE *IR_Data, DWORD IR_Size, wchar_t *ButtonName); | ||
+ | typedef int (__stdcall *AMB_BACKLIGHTCALLBACK)(LPBACKLIGHT_DATA backlight); | ||
+ | typedef void (__stdcall *AMB_LOGCALLBACK)(wchar_t *Message); | ||
+ | |||
+ | typedef struct _AMBIBOX_PLUGIN_SETTINGS | ||
+ | { | ||
+ | DWORD dwPluginVersion; // Версия плагина и полей структуры. | ||
+ | |||
+ | // Start structure plugin version 1 | ||
+ | DWORD dwPluginID; // ID плагина, задается программой | ||
+ | DWORD dwEventMethod; // Способ передачи данных основной программе | ||
+ | // 0 - через функцию обратного вызова. | ||
+ | // 1 - через сообщение WM_SETPLUGINDATA | ||
+ | DWORD dwMinEventTime; // Минимальный интервал вызова CallBack(SendMessage) функции в миллисекундах. | ||
+ | DWORD dwLedsCount; // Количество RGB LED светодиодов (зон) поддерживаемых устройством | ||
+ | DWORD dwBitOfColor; // Размер RGB пространства в битах, | ||
+ | // 8, 9, 10, 11, 12 - бит на цвет. | ||
+ | AMB_BACKLIGHTCALLBACK InputBacklightFunc; // Функция обратного вызова которая вызывается плагином, | ||
+ | // для передачи в программу данные о цвете. Задается программой. | ||
+ | HWND hWndEvent; // Хэндл для передачи данных плагина через WM_SETPLUGINDATA | ||
+ | DWORD dwMessageID; // идентификатор сообщения WM_SETPLUGINDATA = dwMessageID | ||
+ | // SendMessage(hWndEvent, WM_SETPLUGINDATA, ....); | ||
+ | // lParam = (LPARAM)(BACKLIGHT_DATA backlight_data); | ||
+ | AMB_IRCALLBACK OutputIrFunc; // Функция обратного вызова которая вызывается программой, | ||
+ | // для передачи в плагин ИК данных? задается плагином. | ||
+ | //AMB_LOGCALLBACK WriteToLog; // Функция обратного вызова которая вызывается плагином, | ||
+ | // // Записывает в лог сообщения от плагина | ||
+ | wchar_t Language[100]; // Имя языка "English", "Deutsch", "Russian" и т.д. | ||
+ | DWORD dwProfile; // Передаем в плагин номер профиля | ||
+ | // End structure plugin version 1 | ||
+ | |||
+ | } AMBIBOX_PLUGIN_SETTINGS, *LPAMBIBOX_PLUGIN_SETTINGS; | ||
+ | #pragma pack (pop) | ||
+ | |||
+ | typedef void (__stdcall *AMB_DLL_FUNC_SETLOGFUNC)(AMB_LOGCALLBACK); | ||
+ | typedef DWORD (__stdcall *AMB_DLL_FUNC_GETTYPE)(void); | ||
+ | typedef wchar_t *(__stdcall *AMB_DLL_FUNC_GETNAME)(void); | ||
+ | typedef wchar_t *(__stdcall *AMB_DLL_FUNC_GETVERSION)(void); | ||
+ | typedef wchar_t *(__stdcall *AMB_DLL_FUNC_GETDESCRIPTION)(void); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_INIT)(void); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_UNINIT)(void); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_START)(void); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_STOP)(void); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_SHOWSETTINGS)(HWND); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_SETPLUGINSETTINGS)(LPAMBIBOX_PLUGIN_SETTINGS settings); | ||
+ | typedef int (__stdcall *AMB_DLL_FUNC_SAVESETTINGS)(void); | ||
+ | |||
+ | |||
+ | /* Экспортируемые функции плагина */ | ||
+ | extern "C" __declspec(dllexport) void __stdcall AMB_SetLogFunc(AMB_LOGCALLBACK WriteToLog); | ||
+ | extern "C" __declspec(dllexport) DWORD __stdcall AMB_GetType(void); | ||
+ | extern "C" __declspec(dllexport) wchar_t * __stdcall AMB_GetName(void); | ||
+ | extern "C" __declspec(dllexport) wchar_t * __stdcall AMB_GetVersion(void); | ||
+ | extern "C" __declspec(dllexport) wchar_t * __stdcall AMB_GetDescription(void); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_Init(void); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_UnInit(void); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_Start(void); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_Stop(void); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_ShowSettings(HWND hWndParent); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_SetPluginSettings(LPAMBIBOX_PLUGIN_SETTINGS settings); | ||
+ | extern "C" __declspec(dllexport) int __stdcall AMB_SaveSettings(void); | ||
+ | |||
+ | /* | ||
+ | Examle: | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Get plugin type | ||
+ | DWORD __stdcall AMB_GetType(void) | ||
+ | { | ||
+ | return (TYPE_BACKLIGHT | TYPE_IR); | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Get plugin name | ||
+ | wchar_t * __stdcall AMB_GetName(void) | ||
+ | { | ||
+ | return L"Color Music"; | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Get plugin version | ||
+ | wchar_t * __stdcall AMB_GetVersion(void) | ||
+ | { | ||
+ | return L"2.0.3"; | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Get more information plugin | ||
+ | wchar_t * __stdcall AMB_GetDescription(void) | ||
+ | { | ||
+ | return L"Plugin for Backlight\n\rDeveloper Maxim\n\r Web: http://www.ambibox.ru\n\rE-mail:AmbiBox@mail.ru"; | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Initialize the plugin | ||
+ | int __stdcall AMB_Init(void) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // UnInitialize the plugin | ||
+ | int __stdcall AMB_UnInit(void) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Start transmission of data from the plugin | ||
+ | int __stdcall AMB_Start(void) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Stop transmission of data from the plugin | ||
+ | int __stdcall AMB_Stop(void) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Display settings window plug-in | ||
+ | int __stdcall AMB_ShowSettings(HWND hWndParent) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Set parameters to the plug-in | ||
+ | int __stdcall AMB_SetPluginSettings(LAMBIBOX_PLUGIN_SETTINGS settings) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | //------------------------------------------------------------------------------ | ||
+ | // Save settings of plug-in | ||
+ | int __stdcall SIR_SaveSettings(void) | ||
+ | { | ||
+ | int ErrorCode = 3; | ||
+ | return 0; // Success | ||
+ | return ErrorCode; // Error code > 0 | ||
+ | } | ||
+ | */ | ||
+ | #endif | ||
+ | </source> | ||
+ | |||
+ | == Порядок инициализации плагина программой AmbiBox == |
Версия 06:19, 10 апреля 2014
Создание плагинов подсветки
Плагины подсветки предназначены для создания световых эффектов в интеллектуальной подсветке и располагаются они в каталоге:
c:\Program Files\AmbiBox\Plugins\Backlight\[Имя каталога плагина]
В программе плагины расположены тут:
Плагин создается как DLL и экспортирует следующие функции:
//--------------------------------------------------------------------------- // AmbiBox backlight plugins interface // Copyright (C) AmbiBox 2004-2014 // AmbiBox@mail.ru // http://www.ambibox.ru //--------------------------------------------------------------------------- #ifndef BACKLIGHT_PLUGINS_H #define BACKLIGHT_PLUGINS_H #include <windows.h> typedef int (__stdcall *SIR_INPUTCALLBACK)(DWORD *InputData, DWORD dwLedsCount); #pragma pack (push, 1) typedef struct _BACKLIGHT_PLUGIN_SETTINGS { DWORD dwPluginVersion; // Версия плагина и полей структуры. // Start structure plugin version 1 DWORD dwEventMethod; // Способ передачи данных основной программе // 0 - через функцию обратного вызова. // 1 - через сообщение WM_SETPLUGINDATA DWORD dwMinEventTime; // Минимальный интервал вызова CallBack(SendMessage) функции в миллисекундах. DWORD dwLedsCount; // Количество RGB LED светодиодов (зон) поддерживаемых устройством DWORD dwBitOfColor; // Размер RGB пространства в битах, // 8, 9, 10, 11, 12 - бит на цвет. SIR_INPUTCALLBACK input_func; // Функция обратного вызова которая вызывается плагином. HWND hWndEvent; // Хэндл для передачи данных плагина через WM_SETPLUGINDATA DWORD dwMessageID; // идентификатор сообщения WM_SETPLUGINDATA = dwMessageID // SendMessage(hWndEvent, WM_SETPLUGINDATA, ....); // lParam = (WPARAM)InputData; wParam = (WPARAM)dwLedsCount; wchar_t Language[100]; // Имя языка "English", "Deutsch", "Russian" и т.д. DWORD dwProfile; // Передаем в плагин номер профиля // End structure plugin version 1 } BACKLIGHT_PLUGIN_SETTINGS, *LPBACKLIGHT_PLUGIN_SETTINGS; #pragma pack (pop) typedef wchar_t *(__stdcall *SIR_DLL_FUNC_GETNAME)(void); typedef wchar_t *(__stdcall *SIR_DLL_FUNC_GETVERSION)(void); typedef wchar_t *(__stdcall *SIR_DLL_FUNC_GETDESCRIPTION)(void); typedef int (__stdcall *SIR_DLL_FUNC_INIT)(void); typedef int (__stdcall *SIR_DLL_FUNC_UNINIT)(void); typedef int (__stdcall *SIR_DLL_FUNC_START)(void); typedef int (__stdcall *SIR_DLL_FUNC_STOP)(void); typedef int (__stdcall *SIR_DLL_FUNC_SHOWSETTINGS)(HWND); typedef int (__stdcall *SIR_DLL_FUNC_SETBACKLIGHTSETTINGS)(LPBACKLIGHT_PLUGIN_SETTINGS settings); typedef int (__stdcall *SIR_DLL_FUNC_SAVESETTINGS)(void); /* Экспортируемые функции плагина */ extern "C" __declspec(dllexport) wchar_t * __stdcall SIR_GetName(void); extern "C" __declspec(dllexport) wchar_t * __stdcall SIR_GetVersion(void); extern "C" __declspec(dllexport) wchar_t * __stdcall SIR_GetDescription(void); extern "C" __declspec(dllexport) int __stdcall SIR_Init(void); extern "C" __declspec(dllexport) int __stdcall SIR_UnInit(void); extern "C" __declspec(dllexport) int __stdcall SIR_Start(void); extern "C" __declspec(dllexport) int __stdcall SIR_Stop(void); extern "C" __declspec(dllexport) int __stdcall SIR_ShowSettings(HWND hWndParent); extern "C" __declspec(dllexport) int __stdcall SIR_SetBacklightSettings(LPBACKLIGHT_PLUGIN_SETTINGS settings); extern "C" __declspec(dllexport) int __stdcall SIR_SaveSettings(void); /* Examle: //------------------------------------------------------------------------------ // Get plugin name wchar_t * __stdcall SIR_GetName(void) { return L"ColorMusic"; } //------------------------------------------------------------------------------ // Get plugin version wchar_t * __stdcall SIR_GetVersion(void) { return L"2.0.3"; } //------------------------------------------------------------------------------ // Get more information plugin wchar_t * __stdcall SIR_GetDescription(void) { return L"Plugin for Backlight\n\rDeveloper Maxim\n\r Web: http://www.ambibox.ru\n\rE-mail:AmbiBox@mail.ru"; } //------------------------------------------------------------------------------ // Initialize the plugin int __stdcall SIR_Init(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // UnInitialize the plugin int __stdcall SIR_UnInit(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Start transmission of data from the plugin int __stdcall SIR_Start(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Stop transmission of data from the plugin int __stdcall SIR_Stop(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Display settings window plug-in int __stdcall SIR_ShowSettings(HWND hWndParent) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Set parameters to the plug-in int __stdcall SIR_SetBacklightSettings(LPBACKLIGHT_PLUGIN_SETTINGS settings) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Save settings of plug-in int __stdcall SIR_SaveSettings(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } */ #endif
Создание глобальных плагинов
Глобальные плагины предназначены для создания световых эффектов и взаимодействуют с дистанционным управлением.
Плагины располагаются они в каталоге:
c:\Program Files\AmbiBox\Plugins\Global\[Имя каталога плагина]
В программе плагины расположены тут:
Плагин создается как DLL и экспортирует следующие функции:
//--------------------------------------------------------------------------- // AmbiBox global plugins interface // Copyright (C) AmbiBox 2004-2014 // AmbiBox@mail.ru // http://www.ambibox.ru //--------------------------------------------------------------------------- #ifndef AMBIBOX_PLUGINS_H #define AMBIBOX_PLUGINS_H #include <windows.h> #define AMB_TYPE_BACKLIGHT 0x0001 // Фоновая подсветка #define AMB_TYPE_IR 0x0002 // Дистаноционное управление #define AMB_NO_ERROR 0x0000 #define AMB_ERROR_INIT 0x0001 #define AMB_ERROR_START 0x0002 #define AMB_ERROR_SETTINGS 0x0003 #define AMB_ERROR_NO_BACKLIGHT_TYPE 0x0004 #define AMB_ERROR_NO_IR_TYPE 0x0005 #define AMB_ERROR_NO_CORRECT_PID 0x0006 #define AMB_ERROR_COMMAND 0x0007 #define AMB_ERROR_DEVICE_NOT_LOCKED 0x0008 #define AMB_ERROR_SMALL_TIME 0x0009 #define AMB_ERROR_NOT_SENDED 0x000A #define AMB_ERROR_ALREADY_LOCKED 0x000B #define AMB_EVENT_CALLBACK 0x0000 #define AMB_EVENT_WM_MESSAGE 0x0001 #define AMB_LOCK_DEVICE 0x0001 #define AMB_UNLOCK_DEVICE 0x0002 #define AMB_DATA_TO_DEVICE 0x0003 #pragma pack (push, 1) typedef struct _BACKLIGHT_DATA { DWORD dwPluginID; // ID плагина, задается программой DWORD *InputData; // Буффер с данными о цвете RGB светодиодов DWORD dwDataSize; // Количество данных в InputData DWORD dwDeviceStatus; // Действие для устройства } BACKLIGHT_DATA, *LPBACKLIGHT_DATA; typedef int (__stdcall *AMB_IRCALLBACK)(BYTE *IR_Data, DWORD IR_Size, wchar_t *ButtonName); typedef int (__stdcall *AMB_BACKLIGHTCALLBACK)(LPBACKLIGHT_DATA backlight); typedef void (__stdcall *AMB_LOGCALLBACK)(wchar_t *Message); typedef struct _AMBIBOX_PLUGIN_SETTINGS { DWORD dwPluginVersion; // Версия плагина и полей структуры. // Start structure plugin version 1 DWORD dwPluginID; // ID плагина, задается программой DWORD dwEventMethod; // Способ передачи данных основной программе // 0 - через функцию обратного вызова. // 1 - через сообщение WM_SETPLUGINDATA DWORD dwMinEventTime; // Минимальный интервал вызова CallBack(SendMessage) функции в миллисекундах. DWORD dwLedsCount; // Количество RGB LED светодиодов (зон) поддерживаемых устройством DWORD dwBitOfColor; // Размер RGB пространства в битах, // 8, 9, 10, 11, 12 - бит на цвет. AMB_BACKLIGHTCALLBACK InputBacklightFunc; // Функция обратного вызова которая вызывается плагином, // для передачи в программу данные о цвете. Задается программой. HWND hWndEvent; // Хэндл для передачи данных плагина через WM_SETPLUGINDATA DWORD dwMessageID; // идентификатор сообщения WM_SETPLUGINDATA = dwMessageID // SendMessage(hWndEvent, WM_SETPLUGINDATA, ....); // lParam = (LPARAM)(BACKLIGHT_DATA backlight_data); AMB_IRCALLBACK OutputIrFunc; // Функция обратного вызова которая вызывается программой, // для передачи в плагин ИК данных? задается плагином. //AMB_LOGCALLBACK WriteToLog; // Функция обратного вызова которая вызывается плагином, // // Записывает в лог сообщения от плагина wchar_t Language[100]; // Имя языка "English", "Deutsch", "Russian" и т.д. DWORD dwProfile; // Передаем в плагин номер профиля // End structure plugin version 1 } AMBIBOX_PLUGIN_SETTINGS, *LPAMBIBOX_PLUGIN_SETTINGS; #pragma pack (pop) typedef void (__stdcall *AMB_DLL_FUNC_SETLOGFUNC)(AMB_LOGCALLBACK); typedef DWORD (__stdcall *AMB_DLL_FUNC_GETTYPE)(void); typedef wchar_t *(__stdcall *AMB_DLL_FUNC_GETNAME)(void); typedef wchar_t *(__stdcall *AMB_DLL_FUNC_GETVERSION)(void); typedef wchar_t *(__stdcall *AMB_DLL_FUNC_GETDESCRIPTION)(void); typedef int (__stdcall *AMB_DLL_FUNC_INIT)(void); typedef int (__stdcall *AMB_DLL_FUNC_UNINIT)(void); typedef int (__stdcall *AMB_DLL_FUNC_START)(void); typedef int (__stdcall *AMB_DLL_FUNC_STOP)(void); typedef int (__stdcall *AMB_DLL_FUNC_SHOWSETTINGS)(HWND); typedef int (__stdcall *AMB_DLL_FUNC_SETPLUGINSETTINGS)(LPAMBIBOX_PLUGIN_SETTINGS settings); typedef int (__stdcall *AMB_DLL_FUNC_SAVESETTINGS)(void); /* Экспортируемые функции плагина */ extern "C" __declspec(dllexport) void __stdcall AMB_SetLogFunc(AMB_LOGCALLBACK WriteToLog); extern "C" __declspec(dllexport) DWORD __stdcall AMB_GetType(void); extern "C" __declspec(dllexport) wchar_t * __stdcall AMB_GetName(void); extern "C" __declspec(dllexport) wchar_t * __stdcall AMB_GetVersion(void); extern "C" __declspec(dllexport) wchar_t * __stdcall AMB_GetDescription(void); extern "C" __declspec(dllexport) int __stdcall AMB_Init(void); extern "C" __declspec(dllexport) int __stdcall AMB_UnInit(void); extern "C" __declspec(dllexport) int __stdcall AMB_Start(void); extern "C" __declspec(dllexport) int __stdcall AMB_Stop(void); extern "C" __declspec(dllexport) int __stdcall AMB_ShowSettings(HWND hWndParent); extern "C" __declspec(dllexport) int __stdcall AMB_SetPluginSettings(LPAMBIBOX_PLUGIN_SETTINGS settings); extern "C" __declspec(dllexport) int __stdcall AMB_SaveSettings(void); /* Examle: //------------------------------------------------------------------------------ // Get plugin type DWORD __stdcall AMB_GetType(void) { return (TYPE_BACKLIGHT | TYPE_IR); } //------------------------------------------------------------------------------ // Get plugin name wchar_t * __stdcall AMB_GetName(void) { return L"Color Music"; } //------------------------------------------------------------------------------ // Get plugin version wchar_t * __stdcall AMB_GetVersion(void) { return L"2.0.3"; } //------------------------------------------------------------------------------ // Get more information plugin wchar_t * __stdcall AMB_GetDescription(void) { return L"Plugin for Backlight\n\rDeveloper Maxim\n\r Web: http://www.ambibox.ru\n\rE-mail:AmbiBox@mail.ru"; } //------------------------------------------------------------------------------ // Initialize the plugin int __stdcall AMB_Init(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // UnInitialize the plugin int __stdcall AMB_UnInit(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Start transmission of data from the plugin int __stdcall AMB_Start(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Stop transmission of data from the plugin int __stdcall AMB_Stop(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Display settings window plug-in int __stdcall AMB_ShowSettings(HWND hWndParent) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Set parameters to the plug-in int __stdcall AMB_SetPluginSettings(LAMBIBOX_PLUGIN_SETTINGS settings) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } //------------------------------------------------------------------------------ // Save settings of plug-in int __stdcall SIR_SaveSettings(void) { int ErrorCode = 3; return 0; // Success return ErrorCode; // Error code > 0 } */ #endif