WTW - Podstawowa wtyczka

Z WTW :: Wiki

Kod dzięki uprzejmości Dziaddu. ;)

#include <windows.h>
#include "..\_wtw2\.api\plInterface.h"

WTWFUNCTIONS *pF = NULL;
WTWPLUGINFO plugInfo = {
   sizeof(WTWPLUGINFO),
   L"Hello world!",
   L"Najprostszy możliwy plugin",
   L"© 2009",
   L"Autor",
   L"mail@autora",
   L"www.",
   L"", //link do pliku xml na potrzeby autoupdate'u
   PLUGIN_API_VERSION,
   MAKE_QWORD_VERSION(0, 1, 0, 0),
   WTW_CLASS_UNKNOWN,
   NULL,
   0,
   0,
   0,
   0
}

WTWPLUGINFO * __stdcall queryPlugInfo(DWORD apiVersion, DWORD masterVersion)
{
   return &plugInfo;
}

int __stdcall pluginLoad(DWORD callReason, WTWFUNCTIONS *fC)
{
    pF = fC;

    /* tu będzie wszystko, co wtyczka będzie robiła podczas ładowania,
     * np. dodawanie "sztucznych" kontaktów, zakładanie hooków itp.
     * pF = fC jest po to, żeby w każdym innym miejcu kodu można było
     * wywoływać funkcje wtw przez pF->Call()
     */

    // żeby udowodnić, że to się wywołało (tylko na potrzeby przykładu):
    ::MessageBox(NULL, L"Wtyczka załadowana", L"Hello world!", MB_OK);

    return 0;
}

int __stdcall pluginUnload(DWORD callReason)
{
    /* tu wtyczka po sobie posprząta
     * zdejmie hooki, zniszczy okienka, usunie dodane kontakty...
     */

    // żeby udowodnić, że to się wywołało (tylko na potrzeby przykładu):
    ::MessageBox(NULL, L"Wtyczka wyładowana", L"Hello world!", MB_OK);

    return 0;
}