User:Wishmaster
Jump to navigation
Jump to search
Changes for Plugin developers
In Miranda NG, we made some changes, that made the plugins from Miranda IM incompatible. These are just the major changes:
- PLUGININFOEX: The old PLUGININFO struct from Miranda IM was removed from all sources. Basically, it was also deprecated in Miranda IM, but Miranda IM continued to load plugins with only PLUGININFO support for legacy plugin support. Our PLUGININFOEX is almost the same as Miranda IM, but we removed the member int replacesDefaultModule; (in Miranda IM headers it says "WILL BE DEPRECATED in 0.8" in the documentation of the member). The compiler should warn you anyways if you do not remove it in your code.
typedef struct PLUGININFOEX_tag { int cbSize; char *shortName; DWORD version; char *description; char *author; char *authorEmail; char *copyright; char *homepage; BYTE flags; // right now the only flag, UNICODE_AWARE, is recognized here MUUID uuid; // plugin's unique identifier } PLUGININFOEX;
- PLUGINLINK is gone. The CallService macros using the PLUGINLINK are now replaced with the functions in m_core.h (like CallService, HookEvent etc.). The compiler should not complain about it. As a result, the Load function does not take any parameter.
- The DBGetContactSetting/DBWriteContactSetting functions are renamed with the db_get/db_set functions from the m_core.h.