#include <windows.h>
#include "api/plInterface.h"
extern "C" __declspec(dllexport) WTW_PTR __stdcall pluginAbout(WTW_PARAM, WTW_PARAM, void*);
extern "C" __declspec(dllexport) WTWPLUGINFO* __stdcall queryPlugInfo(DWORD, DWORD);
extern "C" __declspec(dllexport) int __stdcall pluginLoad(DWORD, WTWFUNCTIONS*);
extern "C" __declspec(dllexport) int __stdcall pluginUnload(DWORD);
extern "C" __declspec(dllexport) WTW_PTR __stdcall evHookTest(WTW_PARAM, WTW_PARAM, void*);
void* evTest();
WTWFUNCTIONS *pF = NULL;
WTWPLUGINFO pluginInfo = {
sizeof(WTWPLUGINFO),
L"Testowa nazwa",
L"Jakiś opis",
L"Prawa bezprawne",
L"Ja, czyli autor",
L"mail dla spamu",
L"adres blogaska lub link do n-k",
L"",
PLUGIN_API_VERSION,
MAKE_QWORD_VERSION(0, 1, 0, 0),
WTW_CLASS_UNKNOWN,
pluginAbout,
NULL,
0,
0,
0,
0
};
WTW_PTR pluginAbout(WTW_PARAM a, WTW_PARAM b, void *c) {
wtwAboutDlg aboutDialog = {
sizeof(wtwAboutDlg),
L"Tytuł",
L"Nagłówek1",
L"Nagłówek2",
L"Nagłówek3",
L"Tekst",
NULL,
NULL
};
pF->fnCall(WTW_ABOUT_SHOW, (WTW_PARAM)&aboutDialog, NULL);
return 0;
}
WTWPLUGINFO* queryPlugInfo(DWORD apiVersion, DWORD masterVersion) {
return &pluginInfo;
}
void* evTest() {
MessageBox(NULL, L"TEST", L"Caption", WTW_MESSAGE_FLAG_WARNING);
return 0;
}
WTW_PTR evHookTest(WTW_PARAM a, WTW_PARAM b, void* c) {
MessageBox(NULL, L"TEST", L"Pokazano okienko!", WTW_MESSAGE_FLAG_WARNING);
return 0;
}
int pluginLoad(DWORD callReason, WTWFUNCTIONS *fC) {
pF = fC;
//WTW_EVENT_ON_CHATWND_CREATE
__LOG(pF, L"Test", L"Plugin załadowano!");
pF->evHook(WTW_EVENT_ON_CHATWND_CREATE, evHookTest, evTest);
return 0;
}
int pluginUnload(DWORD callReason) {
return 0;
}
Pozostaje tylko opracować ładny sposób ładowania tego z poziomu VS, tak żeby można było podpiąć debugger. Kaw?