summaryrefslogtreecommitdiff
path: root/yapp/services.cpp
diff options
context:
space:
mode:
authorsje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-20 17:26:51 +0000
committersje <sje@4f64403b-2f21-0410-a795-97e2b3489a10>2007-07-20 17:26:51 +0000
commit3c50a9aa27d2138b757dd7822841c106f4c99b18 (patch)
tree917724117c74653fddd7b827d58b52a8ae61fdde /yapp/services.cpp
parentc1f612cb53815b465cbad009c8dc45223291834d (diff)
convert to new popup api (see m_yapp.h in yapp/docs)
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@297 4f64403b-2f21-0410-a795-97e2b3489a10
Diffstat (limited to 'yapp/services.cpp')
-rw-r--r--yapp/services.cpp294
1 files changed, 177 insertions, 117 deletions
diff --git a/yapp/services.cpp b/yapp/services.cpp
index 573ae58..ad920cd 100644
--- a/yapp/services.cpp
+++ b/yapp/services.cpp
@@ -7,12 +7,12 @@
#include <time.h>
#include "str_utils.h"
-#define NUM_SERVICES 16
+#define NUM_SERVICES 20
HANDLE hService[NUM_SERVICES];
HANDLE hMenuShowHistory, hMenuToggleOnOff;
void StripBBCodesInPlace(wchar_t *text) {
- if(!DBGetContactSettingByte(0, MODULE, "StripBBCodes", 1))
+ if(text == 0 || DBGetContactSettingByte(0, MODULE, "StripBBCodes", 1) == 0)
return;
int read = 0, write = 0;
@@ -41,36 +41,37 @@ void StripBBCodesInPlace(wchar_t *text) {
}
}
-int CreatePopupA(WPARAM wParam, LPARAM lParam) {
- if(!DBGetContactSettingByte(0, MODULE, "Enabled", 1)) return 0;
-
+int OldCreatePopupA(WPARAM wParam, LPARAM lParam) {
POPUPDATA *pd_in = (POPUPDATA *)wParam;
- POPUPDATAW *pd_out = (POPUPDATAW *)malloc(sizeof(POPUPDATAW));
-
- MultiByteToWideChar(code_page, 0, pd_in->lpzContactName, -1, pd_out->lpwzContactName, MAX_CONTACTNAME);
- MultiByteToWideChar(code_page, 0, pd_in->lpzText, -1, pd_out->lpwzText, MAX_SECONDLINE);
- pd_out->lpwzContactName[MAX_CONTACTNAME - 1] = 0;
- pd_out->lpwzText[MAX_SECONDLINE - 1] = 0;
- StripBBCodesInPlace(pd_out->lpwzContactName);
- StripBBCodesInPlace(pd_out->lpwzText);
-
- pd_out->lchContact = pd_in->lchContact;
- pd_out->lchIcon = pd_in->lchIcon;
+ PopupData *pd_out = (PopupData *)malloc(sizeof(PopupData));
+ ZeroMemory(pd_out, sizeof(PopupData));
+
+ pd_out->cbSize = sizeof(PopupData);
+ pd_out->flags = PDF_UNICODE;
+ pd_out->pwzTitle = a2w(pd_in->lpzContactName);
+ pd_out->pwzText = a2w(pd_in->lpzText);
+ StripBBCodesInPlace(pd_out->pwzTitle);
+ StripBBCodesInPlace(pd_out->pwzText);
+
+ pd_out->hContact = pd_in->lchContact;
+ pd_out->hIcon = pd_in->lchIcon;
if(pd_in->colorBack == 0xffffffff) // that's the old #define for 'skinned bg'
pd_out->colorBack = pd_out->colorText = 0;
else {
pd_out->colorBack = pd_in->colorBack & 0xFFFFFF;
pd_out->colorText = pd_in->colorText & 0xFFFFFF;
}
- pd_out->PluginWindowProc = pd_in->PluginWindowProc;
- pd_out->PluginData = pd_in->PluginData;
- pd_out->iSeconds = 0;
+ pd_out->windowProc = pd_in->PluginWindowProc;
+ pd_out->opaque = pd_in->PluginData;
+ pd_out->timeout = 0;
- lstPopupHistory.Add(pd_out->lpwzContactName, pd_out->lpwzText, time(0));
+ lstPopupHistory.Add(pd_out->pwzTitle, pd_out->pwzText, time(0));
if(!DBGetContactSettingByte(0, MODULE, "Enabled", 1)) {
+ free(pd_out->pwzTitle);
+ free(pd_out->pwzText);
free(pd_out);
- return 0;
+ return -1;
}
//MessageBox(0, pd_out->lpwzContactName, _T("CreatePopupA"), MB_OK);
@@ -78,34 +79,36 @@ int CreatePopupA(WPARAM wParam, LPARAM lParam) {
return 0;
}
-int CreatePopupExA(WPARAM wParam, LPARAM lParam) {
+int OldCreatePopupExA(WPARAM wParam, LPARAM lParam) {
POPUPDATAEX *pd_in = (POPUPDATAEX *)wParam;
- POPUPDATAW *pd_out = (POPUPDATAW *)malloc(sizeof(POPUPDATAW));
-
- MultiByteToWideChar(code_page, 0, pd_in->lpzContactName, -1, pd_out->lpwzContactName, MAX_CONTACTNAME);
- MultiByteToWideChar(code_page, 0, pd_in->lpzText, -1, pd_out->lpwzText, MAX_SECONDLINE);
- pd_out->lpwzContactName[MAX_CONTACTNAME - 1] = 0;
- pd_out->lpwzText[MAX_SECONDLINE - 1] = 0;
- StripBBCodesInPlace(pd_out->lpwzContactName);
- StripBBCodesInPlace(pd_out->lpwzText);
-
- pd_out->lchContact = pd_in->lchContact;
- pd_out->lchIcon = pd_in->lchIcon;
+ PopupData *pd_out = (PopupData *)malloc(sizeof(PopupData));
+ ZeroMemory(pd_out, sizeof(PopupData));
+ pd_out->cbSize = sizeof(PopupData);
+ pd_out->flags = PDF_UNICODE;
+ pd_out->pwzTitle = a2w(pd_in->lpzContactName);
+ pd_out->pwzText = a2w(pd_in->lpzText);
+ StripBBCodesInPlace(pd_out->pwzTitle);
+ StripBBCodesInPlace(pd_out->pwzText);
+
+ pd_out->hContact = pd_in->lchContact;
+ pd_out->hIcon = pd_in->lchIcon;
if(pd_in->colorBack == 0xffffffff) // that's the old #define for 'skinned bg'
pd_out->colorBack = pd_out->colorText = 0;
else {
pd_out->colorBack = pd_in->colorBack & 0xFFFFFF;
pd_out->colorText = pd_in->colorText & 0xFFFFFF;
}
- pd_out->PluginWindowProc = pd_in->PluginWindowProc;
- pd_out->PluginData = pd_in->PluginData;
- pd_out->iSeconds = pd_in->iSeconds;
+ pd_out->windowProc = pd_in->PluginWindowProc;
+ pd_out->opaque= pd_in->PluginData;
+ pd_out->timeout = pd_in->iSeconds;
- lstPopupHistory.Add(pd_out->lpwzContactName, pd_out->lpwzText, time(0));
+ lstPopupHistory.Add(pd_out->pwzTitle, pd_out->pwzText, time(0));
if(!DBGetContactSettingByte(0, MODULE, "Enabled", 1)) {
+ free(pd_out->pwzTitle);
+ free(pd_out->pwzText);
free(pd_out);
- return 0;
+ return -1;
}
//MessageBox(0, pd_out->lpwzContactName, _T("CreatePopupExA"), MB_OK);
@@ -113,16 +116,20 @@ int CreatePopupExA(WPARAM wParam, LPARAM lParam) {
return 0;
}
-int CreatePopupW(WPARAM wParam, LPARAM lParam) {
+int OldCreatePopupW(WPARAM wParam, LPARAM lParam) {
POPUPDATAW *pd_in = (POPUPDATAW *)wParam;
- POPUPDATAW *pd_out = (POPUPDATAW *)malloc(sizeof(POPUPDATAW));
- memcpy(pd_out, pd_in, sizeof(POPUPDATAW));
- pd_out->lpwzContactName[MAX_CONTACTNAME - 1] = 0;
- pd_out->lpwzText[MAX_SECONDLINE - 1] = 0;
- StripBBCodesInPlace(pd_out->lpwzContactName);
- StripBBCodesInPlace(pd_out->lpwzText);
-
+ PopupData *pd_out = (PopupData *)malloc(sizeof(PopupData));
+ ZeroMemory(pd_out, sizeof(PopupData));
+ pd_out->cbSize = sizeof(PopupData);
+ pd_out->flags = PDF_UNICODE;
+ pd_out->pwzTitle = wcsdup(pd_in->lpwzContactName);
+ pd_out->pwzText = wcsdup(pd_in->lpwzText);
+ StripBBCodesInPlace(pd_out->pwzTitle);
+ StripBBCodesInPlace(pd_out->pwzText);
+
+ pd_out->hContact = pd_in->lchContact;
+ pd_out->hIcon = pd_in->lchIcon;
if(pd_in->colorBack == 0xffffffff) // that's the old #define for 'skinned bg'
pd_out->colorBack = pd_out->colorText = 0;
else {
@@ -130,10 +137,12 @@ int CreatePopupW(WPARAM wParam, LPARAM lParam) {
pd_out->colorText &= 0xFFFFFF;
}
- lstPopupHistory.Add(pd_out->lpwzContactName, pd_out->lpwzText, time(0));
+ lstPopupHistory.Add(pd_out->pwzTitle, pd_out->pwzText, time(0));
if(!DBGetContactSettingByte(0, MODULE, "Enabled", 1)) {
+ free(pd_out->pwzTitle);
+ free(pd_out->pwzText);
free(pd_out);
- return 0;
+ return -1;
}
//MessageBox(0, pd_out->lpwzContactName, _T("CreatePopupW"), MB_OK);
@@ -155,8 +164,7 @@ int ChangeTextA(WPARAM wParam, LPARAM lParam) {
HWND hwndPop = (HWND)wParam;
char *newText = (char *)lParam;
wchar_t buff[MAX_SECONDLINE];
- MultiByteToWideChar(code_page, 0, newText, -1, buff, MAX_SECONDLINE);
- buff[MAX_SECONDLINE - 1] = 0;
+ a2w(newText, buff, MAX_SECONDLINE);
StripBBCodesInPlace(buff);
if(IsWindow(hwndPop))
@@ -164,6 +172,34 @@ int ChangeTextA(WPARAM wParam, LPARAM lParam) {
return 0;
}
+int ShowPopup(WPARAM wParam, LPARAM lParam) {
+ PopupData *pd_in = (PopupData *)wParam;
+ PopupData *pd_out = (PopupData *)malloc(sizeof(PopupData));
+ *pd_out = *pd_in;
+ if(pd_in->flags & PDF_UNICODE) {
+ if(pd_in->pwzTitle) pd_out->pwzTitle = wcsdup(pd_in->pwzTitle);
+ if(pd_in->pwzText) pd_out->pwzText = wcsdup(pd_in->pwzText);
+ } else {
+ pd_out->flags |= PDF_UNICODE;
+ if(pd_in->pszTitle) pd_out->pwzTitle = a2w(pd_in->pszTitle);
+ if(pd_in->pszText) pd_out->pwzText = a2w(pd_in->pszText);
+ }
+ StripBBCodesInPlace(pd_out->pwzTitle);
+ StripBBCodesInPlace(pd_out->pwzText);
+
+ lstPopupHistory.Add(pd_out->pwzTitle, pd_out->pwzText, time(0));
+ if(!DBGetContactSettingByte(0, MODULE, "Enabled", 1)) {
+ if(pd_out->pwzTitle) free(pd_out->pwzTitle);
+ if(pd_out->pwzText) free(pd_out->pwzText);
+ free(pd_out);
+ return -1;
+ }
+
+ //MessageBox(0, pd_out->lpwzContactName, _T("CreatePopupW"), MB_OK);
+ PostMPMessage(MUM_CREATEPOPUP, 0, (LPARAM)pd_out);
+ return 0;
+}
+
int GetContact(WPARAM wParam, LPARAM lParam) {
HWND hwndPop = (HWND)wParam;
HANDLE hContact;
@@ -172,7 +208,6 @@ int GetContact(WPARAM wParam, LPARAM lParam) {
} else {
HANDLE hEvent = CreateEvent(0, 0, 0, 0);
PostMessage(hwndPop, PUM_GETCONTACT, (WPARAM)&hContact, (LPARAM)hEvent);
- //WaitForSingleObject(hEvent, INFINITE);
MsgWaitForMultipleObjectsEx(1, &hEvent, INFINITE, 0, 0);
CloseHandle(hEvent);
}
@@ -180,24 +215,18 @@ int GetContact(WPARAM wParam, LPARAM lParam) {
return (int)hContact;
}
-int GetPluginData(WPARAM wParam, LPARAM lParam) {
+int GetOpaque(WPARAM wParam, LPARAM lParam) {
HWND hwndPop = (HWND)wParam;
void *data = 0;
if(GetCurrentThreadId() == message_pump_thread_id) {
- SendMessage(hwndPop, PUM_GETPLUGINDATA, (WPARAM)&data, 0);
+ SendMessage(hwndPop, PUM_GETOPAQUE, (WPARAM)&data, 0);
} else {
HANDLE hEvent = CreateEvent(0, 0, 0, 0);
- PostMessage(hwndPop, PUM_GETPLUGINDATA, (WPARAM)&data, (LPARAM)hEvent);
- //WaitForSingleObject(hEvent, INFINITE);
+ PostMessage(hwndPop, PUM_GETOPAQUE, (WPARAM)&data, (LPARAM)hEvent);
MsgWaitForMultipleObjectsEx(1, &hEvent, INFINITE, 0, 0);
CloseHandle(hEvent);
}
- if(lParam && !ignore_gpd_passed_addy) {
- void **pData = (void **)lParam;
- *pData = data;
- }
-
return (int)data;
}
@@ -249,18 +278,22 @@ int TogglePopups(WPARAM wParam, LPARAM lParam) {
return 0;
}
-int PopupChange(WPARAM wParam, LPARAM lParam) {
+int PopupChangeA(WPARAM wParam, LPARAM lParam) {
HWND hwndPop = (HWND)wParam;
POPUPDATAEX *pd_in = (POPUPDATAEX *)lParam;
if(IsWindow(hwndPop)) {
- POPUPDATAW *pd_out = (POPUPDATAW *)malloc(sizeof(POPUPDATAW));
+ PopupData *pd_out = (PopupData *)malloc(sizeof(PopupData));
+ pd_out->cbSize = sizeof(PopupData);
+ pd_out->flags = PDF_UNICODE;
- MultiByteToWideChar(code_page, 0, pd_in->lpzContactName, -1, pd_out->lpwzContactName, MAX_CONTACTNAME);
- MultiByteToWideChar(code_page, 0, pd_in->lpzText, -1, pd_out->lpwzText, MAX_SECONDLINE);
+ pd_out->pwzTitle = a2w(pd_in->lpzContactName);
+ pd_out->pwzText = a2w(pd_in->lpzText);
+ StripBBCodesInPlace(pd_out->pwzTitle);
+ StripBBCodesInPlace(pd_out->pwzText);
- pd_out->lchContact = pd_in->lchContact;
- pd_out->lchIcon = pd_in->lchIcon;
+ pd_out->hContact = pd_in->lchContact;
+ pd_out->hIcon = pd_in->lchIcon;
if(pd_in->colorBack == 0xffffffff) // that's the old #define for 'skinned bg'
pd_out->colorBack = pd_out->colorText = 0;
else {
@@ -269,11 +302,46 @@ int PopupChange(WPARAM wParam, LPARAM lParam) {
}
pd_out->colorBack = pd_in->colorBack;
pd_out->colorText = pd_in->colorText;
- pd_out->PluginWindowProc = pd_in->PluginWindowProc;
- pd_out->PluginData = pd_in->PluginData;
- pd_out->iSeconds = pd_in->iSeconds;
+ pd_out->windowProc = pd_in->PluginWindowProc;
+ pd_out->opaque = pd_in->PluginData;
+ pd_out->timeout = pd_in->iSeconds;
- lstPopupHistory.Add(pd_out->lpwzContactName, pd_out->lpwzText, time(0));
+ lstPopupHistory.Add(pd_out->pwzTitle, pd_out->pwzText, time(0));
+
+ PostMessage(hwndPop, PUM_CHANGE, 0, (LPARAM)pd_out);
+ }
+ return 0;
+}
+
+int PopupChangeW(WPARAM wParam, LPARAM lParam) {
+ HWND hwndPop = (HWND)wParam;
+ POPUPDATAW *pd_in = (POPUPDATAW *)lParam;
+
+ if(IsWindow(hwndPop)) {
+ PopupData *pd_out = (PopupData *)malloc(sizeof(PopupData));
+ pd_out->cbSize = sizeof(PopupData);
+ pd_out->flags = PDF_UNICODE;
+
+ pd_out->pwzTitle = wcsdup(pd_in->lpwzContactName);
+ pd_out->pwzText = wcsdup(pd_in->lpwzText);
+ StripBBCodesInPlace(pd_out->pwzTitle);
+ StripBBCodesInPlace(pd_out->pwzText);
+
+ pd_out->hContact = pd_in->lchContact;
+ pd_out->hIcon = pd_in->lchIcon;
+ if(pd_in->colorBack == 0xffffffff) // that's the old #define for 'skinned bg'
+ pd_out->colorBack = pd_out->colorText = 0;
+ else {
+ pd_out->colorBack = pd_in->colorBack & 0xFFFFFF;
+ pd_out->colorText = pd_in->colorText & 0xFFFFFF;
+ }
+ pd_out->colorBack = pd_in->colorBack;
+ pd_out->colorText = pd_in->colorText;
+ pd_out->windowProc = pd_in->PluginWindowProc;
+ pd_out->opaque = pd_in->PluginData;
+ pd_out->timeout = pd_in->iSeconds;
+
+ lstPopupHistory.Add(pd_out->pwzTitle, pd_out->pwzText, time(0));
PostMessage(hwndPop, PUM_CHANGE, 0, (LPARAM)pd_out);
}
@@ -320,10 +388,10 @@ int PopUp_ShowHistory(WPARAM wParam, LPARAM lParam)
}
int num_classes = 0;
-POPUPCLASS *classes = 0;
+PopupClass *classes = 0;
int RegisterPopupClass(WPARAM wParam, LPARAM lParam) {
- POPUPCLASS *pc = (POPUPCLASS *)lParam;
+ PopupClass *pc = (PopupClass *)lParam;
pc->pszName = strdup(pc->pszName);
if(pc->flags & PCF_UNICODE)
pc->pwszDescription = wcsdup(pc->pwszDescription);
@@ -332,25 +400,25 @@ int RegisterPopupClass(WPARAM wParam, LPARAM lParam) {
char setting[256];
mir_snprintf(setting, 256, "%s/Timeout", pc->pszName);
- pc->iSeconds = DBGetContactSettingWord(0, MODULE, setting, pc->iSeconds);
- if(pc->iSeconds == (WORD)-1) pc->iSeconds = -1;
+ pc->timeout = DBGetContactSettingWord(0, MODULE, setting, pc->timeout);
+ if(pc->timeout == (WORD)-1) pc->timeout = -1;
mir_snprintf(setting, 256, "%s/TextCol", pc->pszName);
pc->colorText = (COLORREF)DBGetContactSettingDword(0, MODULE, setting, (DWORD)pc->colorText);
mir_snprintf(setting, 256, "%s/BgCol", pc->pszName);
pc->colorBack = (COLORREF)DBGetContactSettingDword(0, MODULE, setting, (DWORD)pc->colorBack);
- classes = (POPUPCLASS *)realloc(classes, sizeof(POPUPCLASS) * (num_classes + 1));
- memcpy(classes + num_classes, pc, sizeof(POPUPCLASS));
+ classes = (PopupClass *)realloc(classes, sizeof(PopupClass) * (num_classes + 1));
+ memcpy(classes + num_classes, pc, sizeof(PopupClass));
num_classes++;
return 0;
}
int CreateClassPopup(WPARAM wParam, LPARAM lParam) {
- POPUPDATACLASS *pdc = (POPUPDATACLASS *)lParam;
- if(pdc->cbSize != sizeof(POPUPDATACLASS)) return 1;
+ PopupClassInstance *pdc = (PopupClassInstance *)lParam;
+ if(pdc->cbSize != sizeof(PopupClassInstance)) return 1;
- POPUPCLASS *pc = 0;
- if(wParam) pc = (POPUPCLASS *)wParam;
+ PopupClass *pc = 0;
+ if(wParam) pc = (PopupClass *)wParam;
else {
for(int i = 0; i < num_classes; i++) {
if(strcmp(classes[i].pszName, pdc->pszClassName) == 0) {
@@ -360,35 +428,20 @@ int CreateClassPopup(WPARAM wParam, LPARAM lParam) {
}
}
if(pc) {
- if(pc->flags & PCF_UNICODE) {
- POPUPDATAW pdw = {0};
- pdw.colorBack = pc->colorBack;
- pdw.colorText = pc->colorText;
- pdw.lchIcon = pc->hIcon;
- pdw.iSeconds = pc->iSeconds;
- pdw.PluginWindowProc = pc->PluginWindowProc;
-
- pdw.lchContact = pdc->hContact;
- pdw.PluginData = pdc->PluginData;
- wcsncpy(pdw.lpwzContactName, pdc->pwszTitle, MAX_CONTACTNAME);
- wcsncpy(pdw.lpwzText, pdc->pwszText, MAX_SECONDLINE);
-
- CallService(MS_POPUP_ADDPOPUPW, (WPARAM)&pdw, 0);
- } else {
- POPUPDATAEX pd = {0};
- pd.colorBack = pc->colorBack;
- pd.colorText = pc->colorText;
- pd.lchIcon = pc->hIcon;
- pd.iSeconds = pc->iSeconds;
- pd.PluginWindowProc = pc->PluginWindowProc;
+ PopupData pd = {sizeof(PopupData)};
+ if(pc->flags & PCF_UNICODE) pd.flags |= PDF_UNICODE;
+ pd.colorBack = pc->colorBack;
+ pd.colorText = pc->colorText;
+ pd.hIcon = pc->hIcon;
+ pd.timeout = pc->timeout;
+ pd.windowProc = pc->windowProc;
- pd.lchContact = pdc->hContact;
- pd.PluginData = pdc->PluginData;
- strncpy(pd.lpzContactName, pdc->pszTitle, MAX_CONTACTNAME);
- strncpy(pd.lpzText, pdc->pszText, MAX_SECONDLINE);
-
- CallService(MS_POPUP_ADDPOPUP, (WPARAM)&pd, 0);
- }
+ pd.hContact = pdc->hContact;
+ pd.opaque = pdc->opaque;
+ pd.pszTitle = (char *)pdc->pszTitle;
+ pd.pszText = (char *)pdc->pszText;
+
+ CallService(MS_YAPP_SHOWPOPUP, (WPARAM)&pd, 0);
}
return 0;
}
@@ -401,14 +454,22 @@ HANDLE hEventBuildMenu;
void InitServices() {
int i = 0;
- hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUP, CreatePopupA);
- hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUPEX, CreatePopupExA);
- hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUPW, CreatePopupW);
+ hService[i++] = CreateServiceFunction(MS_YAPP_SHOWPOPUP, ShowPopup);
+ hService[i++] = CreateServiceFunction(MS_YAPP_REGISTERCLASS, RegisterPopupClass);
+ hService[i++] = CreateServiceFunction(MS_YAPP_CLASSINSTANCE, CreateClassPopup);
+ hService[i++] = CreateServiceFunction(MS_YAPP_GETCONTACT, GetContact);
+ hService[i++] = CreateServiceFunction(MS_YAPP_GETOPAQUE, GetOpaque);
+
+ // legacy support
+ hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUP, OldCreatePopupA);
+ hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUPEX, OldCreatePopupExA);
+ hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUPW, OldCreatePopupW);
hService[i++] = CreateServiceFunction(MS_POPUP_CHANGETEXTW, ChangeTextW);
hService[i++] = CreateServiceFunction(MS_POPUP_CHANGETEXT, ChangeTextA);
- hService[i++] = CreateServiceFunction(MS_POPUP_CHANGE, PopupChange);
+ hService[i++] = CreateServiceFunction(MS_POPUP_CHANGE, PopupChangeA);
+ hService[i++] = CreateServiceFunction(MS_POPUP_CHANGEW, PopupChangeW);
hService[i++] = CreateServiceFunction(MS_POPUP_GETCONTACT, GetContact);
- hService[i++] = CreateServiceFunction(MS_POPUP_GETPLUGINDATA, GetPluginData);
+ hService[i++] = CreateServiceFunction(MS_POPUP_GETPLUGINDATA, GetOpaque);
hService[i++] = CreateServiceFunction(MS_POPUP_ISSECONDLINESHOWN, IsSecondLineShown);
hService[i++] = CreateServiceFunction(MS_POPUP_QUERY, PopupQuery);
@@ -418,8 +479,6 @@ void InitServices() {
hService[i++] = CreateServiceFunction(MS_POPUP_SHOWHISTORY, PopUp_ShowHistory);
hService[i++] = CreateServiceFunction("PopUp/ToggleEnabled", TogglePopups);
- hService[i++] = CreateServiceFunction(MS_POPUP_REGISTERCLASS, RegisterPopupClass);
- hService[i++] = CreateServiceFunction(MS_POPUP_ADDPOPUPCLASS, CreateClassPopup);
CLISTMENUITEM menu = {0};
@@ -448,7 +507,8 @@ void InitServices() {
}
void DeinitServices() {
- for(int i = 0; i < num_classes; i++) {
+ int i;
+ for(i = 0; i < num_classes; i++) {
free(classes[i].pszName);
free(classes[i].pszDescription);
}
@@ -456,6 +516,6 @@ void DeinitServices() {
UnhookEvent(hEventBuildMenu);
- for(int i = 0; i < NUM_SERVICES; i++)
+ for(i = 0; i < NUM_SERVICES; i++)
if(hService[i]) DestroyServiceFunction(hService[i]);
}