diff options
author | (no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> | 2010-04-04 23:41:11 +0000 |
---|---|---|
committer | (no author) <(no author)@4f64403b-2f21-0410-a795-97e2b3489a10> | 2010-04-04 23:41:11 +0000 |
commit | 0c2db8f67782848603cdd845713ca70e285c0f49 (patch) | |
tree | 9ee0652d8c23593b567b91cd5e34c13c62d61611 | |
parent | d11bac94bbcbd92bf550ccca094a10bb50e6df4b (diff) |
Fixed incorrect time after time zone table changes
Reduced size plugin size
git-svn-id: https://server.scottellis.com.au/svn/mim_plugs@487 4f64403b-2f21-0410-a795-97e2b3489a10
-rw-r--r-- | worldtime_protocol/common.h | 40 | ||||
-rw-r--r-- | worldtime_protocol/options.cpp | 36 | ||||
-rw-r--r-- | worldtime_protocol/time_display.cpp | 31 | ||||
-rw-r--r-- | worldtime_protocol/time_display.h | 1 | ||||
-rw-r--r-- | worldtime_protocol/timezone.cpp | 12 | ||||
-rw-r--r-- | worldtime_protocol/timezone.h | 13 | ||||
-rw-r--r-- | worldtime_protocol/timezone_list.cpp | 43 | ||||
-rw-r--r-- | worldtime_protocol/timezone_list.h | 4 | ||||
-rw-r--r-- | worldtime_protocol/worldtimeproto.cpp | 71 | ||||
-rw-r--r-- | worldtime_protocol/worldtimeproto.h | 2 |
10 files changed, 143 insertions, 110 deletions
diff --git a/worldtime_protocol/common.h b/worldtime_protocol/common.h index 926cf50..7a5e23a 100644 --- a/worldtime_protocol/common.h +++ b/worldtime_protocol/common.h @@ -5,33 +5,29 @@ #define VC_EXTRALEAN
#define _WIN32_WINNT 0x0400
+#define MIRANDA_VER 0x0600
+
+#include <m_stdhdr.h>
+
#include <windows.h>
-#include <prsht.h>
-#include <winsock2.h>
-#include <winsock.h>
-#include <shellapi.h>
#include <commdlg.h>
#define PROTO "WorldTime"
-#include <stdio.h>
-
-#include "../../../include/newpluginapi.h"
-#include "../../../include/statusmodes.h"
-#include "../../../include/m_options.h"
-#include "../../../include/m_langpack.h"
-#include "../../../include/m_popup.h"
-#include "../../../include/m_system.h"
-#include "../../../include/m_skin.h"
-#include "../../../include/m_netlib.h"
-#include "../../../include/m_database.h"
-#include "../../../include/m_protocols.h"
-#include "../../../include/m_protomod.h"
-#include "../../../include/m_protosvc.h"
-#include "../../../include/m_ignore.h"
-#include "../../../include/m_clist.h"
-#include "../../../include/m_clui.h"
-#include "../../../include/m_utils.h"
+#include <newpluginapi.h>
+#include <statusmodes.h>
+#include <m_options.h>
+#include <m_langpack.h>
+#include <m_system.h>
+#include <m_system_cpp.h>
+#include <m_database.h>
+#include <m_protocols.h>
+#include <m_protomod.h>
+#include <m_protosvc.h>
+#include <m_ignore.h>
+#include <m_clist.h>
+#include <m_clui.h>
+#include <m_utils.h>
#include "m_updater.h"
extern HINSTANCE hInst;
diff --git a/worldtime_protocol/options.cpp b/worldtime_protocol/options.cpp index 7b04e34..071c88c 100644 --- a/worldtime_protocol/options.cpp +++ b/worldtime_protocol/options.cpp @@ -4,24 +4,23 @@ bool set_format = false, hide_proto = false;
TCHAR format_string[512], date_format_string[512], clist_format_string[512];
-ITEMLIST temp_listbox_items;
+ITEMLIST temp_listbox_items(10);
void fill_timezone_list_control(HWND hwndDlg) {
- int index = 0;
HWND hw = GetDlgItem(hwndDlg, IDC_LIST_TIMES);
SendMessage(hw, LB_RESETCONTENT, 0, 0);
if(IsDlgButtonChecked(hwndDlg, IDC_RAD_ALPHA)) {
- for(TimeList::iterator i = timezone_list.begin(); i != timezone_list.end(); i++, index++) {
- SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)i->tcName);
- SendMessage(hw, LB_SETITEMDATA, (WPARAM)index, (LPARAM)i->list_index);
+ for(int i = 0; i < timezone_list.getCount(); i++) {
+ SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)timezone_list[i].tcName);
+ SendMessage(hw, LB_SETITEMDATA, (WPARAM)i, (LPARAM)timezone_list[i].list_index);
}
} else {
- for(TimeList::iterator i = geo_timezone_list.begin(); i != geo_timezone_list.end(); i++, index++) {
- SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)i->tcName);
- SendMessage(hw, LB_SETITEMDATA, (WPARAM)index, (LPARAM)i->list_index);
+ for(int i =0; i < geo_timezone_list.getCount(); ++i) {
+ SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)timezone_list[i].tcName);
+ SendMessage(hw, LB_SETITEMDATA, (WPARAM)i, (LPARAM)timezone_list[i].list_index);
}
}
}
@@ -125,12 +124,11 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA TranslateDialogDefault( hwndDlg );
load_listbox_items();
- temp_listbox_items = listbox_items;
+ copy_listbox_items(temp_listbox_items, listbox_items);
hw = GetDlgItem(hwndDlg, IDC_LIST_TIMES2);
- index = 0;
- for(ITEMLIST::iterator ili = temp_listbox_items.begin(); ili != temp_listbox_items.end(); ili++, index++) {
- sel = SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)&ili->pszText);
+ for(index = 0; index < temp_listbox_items.getCount(); index++) {
+ sel = SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)temp_listbox_items[index].pszText);
}
bool set_format = (DBGetContactSettingByte(NULL, "WorldTime", "EnableTimeFormat", 0) == 1);
@@ -208,7 +206,7 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA add_edit_item.hContact = 0;
if(DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOG2), hwndDlg, DlgProcOptsEdit) == IDOK) {
- temp_listbox_items.push_back(add_edit_item);
+ temp_listbox_items.insert(new LISTITEM(add_edit_item));
hw = GetDlgItem(hwndDlg, IDC_LIST_TIMES2);
sel = SendMessage(hw, LB_INSERTSTRING, (WPARAM)-1, (LPARAM)add_edit_item.pszText);
@@ -229,12 +227,7 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA if(sel != LB_ERR) {
SendMessage(hw, LB_DELETESTRING, (WPARAM)sel, 0);
- {
- ITEMLIST::iterator i = temp_listbox_items.begin();
- for(int j = 0; j < sel; j++)
- i++;
- temp_listbox_items.erase(i);
- }
+ temp_listbox_items.remove(sel);
hw = GetDlgItem(hwndDlg, IDC_BTN_REM);
EnableWindow(hw, FALSE);
@@ -277,10 +270,9 @@ static INT_PTR CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA DBWriteContactSettingString(NULL, "WorldTime", "CListFormat", buf);
strncpy(clist_format_string, buf, 512);
- listbox_items = temp_listbox_items;
+ copy_listbox_items(listbox_items, temp_listbox_items);
save_listbox_items();
- temp_listbox_items = listbox_items; // copy back new hContact values
-
+ copy_listbox_items(temp_listbox_items, listbox_items); // copy back new hContact values
return TRUE;
}
break;
diff --git a/worldtime_protocol/time_display.cpp b/worldtime_protocol/time_display.cpp index 2e179ee..f49cde7 100644 --- a/worldtime_protocol/time_display.cpp +++ b/worldtime_protocol/time_display.cpp @@ -204,16 +204,39 @@ void time_windows_cleanup() { void time_windows_init() {
LoadFonts();
- char *proto;
HANDLE hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDFIRST, 0, 0 );
while ( hContact != NULL )
{
- proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0);
- if (proto && lstrcmp( PROTO, proto) == 0) {
- if(DBGetContactSettingByte(hContact, PROTO, "WindowWasOpen", 0) != 0) {
+ char* proto = (char *)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0);
+ if (proto && lstrcmp( PROTO, proto) == 0)
+ {
+ if (DBGetContactSettingByte(hContact, PROTO, "WindowWasOpen", 0) != 0)
+ {
show_time(hContact);
DBWriteContactSettingByte(hContact, PROTO, "WindowWasOpen", 0);
}
+
+ DBVARIANT dbv;
+ if (!DBGetContactSetting(hContact, PROTO, "TZName", &dbv))
+ {
+ int list_index = DBGetContactSettingDword(hContact, PROTO, "TimezoneListIndex", -1);
+ if (list_index < 0 || list_index >= timezone_list.getCount())
+ list_index = 0;
+
+ if (strcmp(timezone_list[list_index].tcName, dbv.pszVal))
+ {
+ for (int j = 0; j < timezone_list.getCount(); ++j)
+ {
+ if (!strcmp(timezone_list[j].tcName, dbv.pszVal))
+ {
+ list_index = j;
+ break;
+ }
+ }
+ DBWriteContactSettingDword(hContact, PROTO, "TimezoneListIndex", list_index);
+ }
+ DBFreeVariant(&dbv);
+ }
}
hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 );
diff --git a/worldtime_protocol/time_display.h b/worldtime_protocol/time_display.h index f671065..63c6671 100644 --- a/worldtime_protocol/time_display.h +++ b/worldtime_protocol/time_display.h @@ -1,7 +1,6 @@ #ifndef _TIME_DISPLAY_INC
#define _TIME_DISPLAY_INC
-#include <map>
#include "resource.h"
#include "timezone_list.h"
diff --git a/worldtime_protocol/timezone.cpp b/worldtime_protocol/timezone.cpp index 5b2c31b..41a84c0 100644 --- a/worldtime_protocol/timezone.cpp +++ b/worldtime_protocol/timezone.cpp @@ -1,11 +1,11 @@ #include "common.h"
#include "timezone.h"
-TimeList timezone_list, geo_timezone_list;
+TimeList timezone_list(10), geo_timezone_list(10, LS_TZREG::compare);
-bool LS_TZREG::operator<(const LS_TZREG &other) {
+int LS_TZREG::compare(const LS_TZREG *p1, const LS_TZREG *p2) {
//return Index < other.Index;
- return TZI.Bias < other.TZI.Bias;
+ return p1->TZI.Bias - p2->TZI.Bias;
}
bool build_timezone_list() {
@@ -53,7 +53,8 @@ bool build_timezone_list() { RegCloseKey(KKtz);
Temp.list_index = dwIndex;
- timezone_list.push_back(Temp);
+ timezone_list.insert(new LS_TZREG(Temp));
+ geo_timezone_list.insert(new LS_TZREG(Temp));
dwcbName = MAX_SIZE;
dwIndex++;
@@ -61,9 +62,6 @@ bool build_timezone_list() { RegCloseKey(HKlmtz);
- geo_timezone_list = timezone_list;
- std::sort(geo_timezone_list.begin(), geo_timezone_list.end());
-
return true;
}
diff --git a/worldtime_protocol/timezone.h b/worldtime_protocol/timezone.h index ddb9a52..ba0f878 100644 --- a/worldtime_protocol/timezone.h +++ b/worldtime_protocol/timezone.h @@ -6,13 +6,12 @@ //#define TZREG2 "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation"
#define MAX_SIZE 512
-#include <vector>
-#include <algorithm>
+#include "common.h"
struct REG_TZI {
- DWORD Bias;
- DWORD StandardBias;
- DWORD DaylightBias;
+ LONG Bias;
+ LONG StandardBias;
+ LONG DaylightBias;
SYSTEMTIME StandardDate;
SYSTEMTIME DaylightDate;
};
@@ -31,10 +30,10 @@ struct LS_TZREG { unsigned int list_index;
- bool operator<(const LS_TZREG &other);
+ static int compare(const LS_TZREG *p1, const LS_TZREG *p2);
};
-typedef std::vector< LS_TZREG > TimeList;
+typedef OBJLIST< LS_TZREG > TimeList;
extern TimeList timezone_list, geo_timezone_list;
bool build_timezone_list();
diff --git a/worldtime_protocol/timezone_list.cpp b/worldtime_protocol/timezone_list.cpp index d70455e..2e28bc1 100644 --- a/worldtime_protocol/timezone_list.cpp +++ b/worldtime_protocol/timezone_list.cpp @@ -1,9 +1,7 @@ #include "common.h"
#include "timezone_list.h"
-#include <sstream>
-
-ITEMLIST listbox_items;
+ITEMLIST listbox_items(5);
void load_listbox_items() {
@@ -12,15 +10,15 @@ void load_listbox_items() { DBVARIANT dbv;
char *proto;
- listbox_items.clear();
+ listbox_items.destroy();
while ( hContact != NULL ) {
proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
pa.hContact = hContact;
if(!DBGetContactSetting(pa.hContact, PROTO, "TZName", &dbv)) {
- for(TimeList::iterator j = timezone_list.begin(); j != timezone_list.end(); j++) {
- if(!strcmp(j->tcName, dbv.pszVal)) {
- pa.timezone_list_index = j->list_index;
+ for (int j = 0; j < timezone_list.getCount(); ++j) {
+ if(!strcmp(timezone_list[j].tcName, dbv.pszVal)) {
+ pa.timezone_list_index = timezone_list[j].list_index;
break;
}
}
@@ -32,7 +30,7 @@ void load_listbox_items() { DBFreeVariant(&dbv);
}
- listbox_items.push_back(pa);
+ listbox_items.insert(new LISTITEM(pa));
}
hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDNEXT,( WPARAM )hContact, 0 );
@@ -43,19 +41,19 @@ void save_listbox_items() { bool is_contact;
- for(ITEMLIST::iterator i = listbox_items.begin(); i != listbox_items.end(); i++) {
- is_contact = (int)CallService(MS_DB_CONTACT_IS, (WPARAM)i->hContact, 0) == 1;
+ for(int i = 0; i < listbox_items.getCount(); ++i) {
+ is_contact = (int)CallService(MS_DB_CONTACT_IS, (WPARAM)listbox_items[i].hContact, 0) == 1;
if(!is_contact) {
- i->hContact = (HANDLE)CallService(MS_DB_CONTACT_ADD, 0, 0);
- CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )i->hContact, ( LPARAM )PROTO );
- CallService(MS_IGNORE_IGNORE, (WPARAM)i->hContact, (WPARAM)IGNOREEVENT_USERONLINE);
+ listbox_items[i].hContact = (HANDLE)CallService(MS_DB_CONTACT_ADD, 0, 0);
+ CallService( MS_PROTO_ADDTOCONTACT, ( WPARAM )listbox_items[i].hContact, ( LPARAM )PROTO );
+ CallService(MS_IGNORE_IGNORE, (WPARAM)listbox_items[i].hContact, (WPARAM)IGNOREEVENT_USERONLINE);
}
- DBWriteContactSettingString(i->hContact, PROTO, "Nick", i->pszText);
- DBWriteContactSettingDword(i->hContact, PROTO, "TimezoneListIndex", i->timezone_list_index);
- DBWriteContactSettingWord(i->hContact, PROTO, "Status", ID_STATUS_ONLINE);
- DBWriteContactSettingString(i->hContact, PROTO, "TZName", timezone_list[i->timezone_list_index].tcName);
+ DBWriteContactSettingString(listbox_items[i].hContact, PROTO, "Nick", listbox_items[i].pszText);
+ DBWriteContactSettingDword(listbox_items[i].hContact, PROTO, "TimezoneListIndex", listbox_items[i].timezone_list_index);
+ DBWriteContactSettingWord(listbox_items[i].hContact, PROTO, "Status", ID_STATUS_ONLINE);
+ DBWriteContactSettingString(listbox_items[i].hContact, PROTO, "TZName", timezone_list[listbox_items[i].timezone_list_index].tcName);
}
DBWriteContactSettingWord(0, PROTO, "DataVersion", 1);
@@ -67,8 +65,8 @@ void save_listbox_items() { proto = ( char* )CallService( MS_PROTO_GETCONTACTBASEPROTO, ( WPARAM )hContact,0 );
if ( proto && !lstrcmp( PROTO, proto)) {
found = false;
- for(ITEMLIST::iterator i = listbox_items.begin(); i != listbox_items.end(); i++) {
- if(i->hContact == hContact) {
+ for(int i = 0; i < listbox_items.getCount(); i++) {
+ if(listbox_items[i].hContact == hContact) {
found = true;
}
}
@@ -87,6 +85,11 @@ void save_listbox_items() { }
}
-
+void copy_listbox_items(ITEMLIST &dest, ITEMLIST &src)
+{
+ dest.destroy();
+ for (int i=0; i < src.getCount(); ++i)
+ dest.insert(new LISTITEM(src[i]));
+}
diff --git a/worldtime_protocol/timezone_list.h b/worldtime_protocol/timezone_list.h index 27168d3..e497e2b 100644 --- a/worldtime_protocol/timezone_list.h +++ b/worldtime_protocol/timezone_list.h @@ -13,12 +13,12 @@ typedef struct tagLISTITEM { int timezone_list_index;
} LISTITEM;
-#include <vector>
-typedef std::vector<LISTITEM> ITEMLIST;
+typedef OBJLIST<LISTITEM> ITEMLIST;
extern ITEMLIST listbox_items;
void load_listbox_items();
void save_listbox_items();
+void copy_listbox_items(ITEMLIST &dest, ITEMLIST &src);
#endif
diff --git a/worldtime_protocol/worldtimeproto.cpp b/worldtime_protocol/worldtimeproto.cpp index 88bca3a..2c06f53 100644 --- a/worldtime_protocol/worldtimeproto.cpp +++ b/worldtime_protocol/worldtimeproto.cpp @@ -7,6 +7,9 @@ PLUGINLINK *pluginLink; HANDLE hContactDblClick = 0;
HANDLE hMenuEdit;
+MM_INTERFACE mmi;
+LIST_INTERFACE li;
+
int previousMode,
mcStatus = ID_STATUS_OFFLINE;
@@ -29,6 +32,9 @@ INT_PTR GetCaps(WPARAM wParam,LPARAM lParam) break;
case PFLAGNUM_4:
break;
+ case PFLAGNUM_5:
+ ret = PF2_ONLINE | PF2_LONGAWAY;
+ break;
case PFLAG_UNIQUEIDTEXT:
ret = (INT_PTR) Translate(PROTO);
break;
@@ -112,7 +118,7 @@ INT_PTR GetStatus(WPARAM wParam,LPARAM lParam) PLUGININFOEX pluginInfo={
sizeof(PLUGININFOEX),
"World Time Protocol",
- PLUGIN_MAKE_VERSION(0, 1, 1, 0),
+ PLUGIN_MAKE_VERSION(0, 1, 2, 0),
"Adds 'contacts' showing the time at specified locations around the world.",
"Scott Ellis",
"mail@scottellis.com.au",
@@ -237,20 +243,32 @@ void DestroyServiceFunctions() { DestroyServiceFunction(hServices[i]);
}
+
+void replaceStr(TCHAR* str, size_t nchar, TCHAR* rstr)
+{
+ size_t lenr = _tcslen(rstr) * sizeof(TCHAR);
+ size_t lenNew = (_tcslen(str) - nchar + 1) * sizeof(TCHAR) + lenr;
+
+ nchar *= sizeof(TCHAR);
+
+ memmove(str + lenr, str + nchar, lenNew - lenr);
+ memcpy(str, rstr, lenr);
+}
+
+
+
VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) {
SYSTEMTIME st, other_st;
TCHAR date_buf[512], time_buf[512];
- std::string buf;
MyGetSystemTime(&st);
- TIME_ZONE_INFORMATION here_tzi, tzi;
+ TIME_ZONE_INFORMATION here_tzi = {0}, tzi = {0};
LISTITEM pa;
DBVARIANT dbv;
WORD status;
char *proto;
-
BOOL daylight_here = (GetTimeZoneInformation(&here_tzi) == TIME_ZONE_ID_DAYLIGHT);
HANDLE hContact = ( HANDLE )CallService( MS_DB_CONTACT_FINDFIRST, 0, 0 );
@@ -281,20 +299,23 @@ VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) { GetDateFormat(LOCALE_USER_DEFAULT, 0, &other_st, 0, date_buf, 512);
}
- std::string::size_type pos;
- buf = clist_format_string;
- pos = buf.find ("%n");
- if(pos != std::string::npos)
- buf.replace(pos, 2, pa.pszText);
- pos = buf.find ("%t");
- if(pos != std::string::npos)
- buf.replace(pos, 2, time_buf);
- pos = buf.find ("%d");
- if(pos != std::string::npos)
- buf.replace(pos, 2, date_buf);
-
- pos = buf.find ("%o");
- if(pos != std::string::npos) {
+
+ TCHAR buf[1024];
+ TCHAR* pos;
+ _tcscpy(buf, clist_format_string);
+ pos = strstr(buf, "%n");
+ if (pos != NULL)
+ replaceStr(pos, 2, pa.pszText);
+ pos = strstr(buf, "%t");
+ if (pos != NULL)
+ replaceStr(pos, 2, time_buf);
+ pos = strstr(buf, "%d");
+ if (pos != NULL)
+ replaceStr(pos, 2, date_buf);
+
+ pos = strstr(buf, "%o");
+ if(pos != NULL)
+ {
int other_offset, offset;
if(tzi.StandardDate.wMonth) {
@@ -329,16 +350,16 @@ VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) { //if(offset < -12 * 60) offset += 24 * 60;
mir_snprintf(temp_buf, sizeof(temp_buf), "%+g", offset/60.0);
- buf.replace(pos, 2, temp_buf);
+ replaceStr(pos, 2, temp_buf);
}
if(!DBGetContactSetting(pa.hContact, "CList", "MyHandle", &dbv)) {
// only write if times are different
- if(strcmp(dbv.pszVal, buf.c_str()))
- DBWriteContactSettingString(pa.hContact, "CList", "MyHandle", buf.c_str());
+ if(strcmp(dbv.pszVal, buf))
+ DBWriteContactSettingString(pa.hContact, "CList", "MyHandle", buf);
DBFreeVariant(&dbv);
} else
- DBWriteContactSettingString(pa.hContact, "CList", "MyHandle", buf.c_str());
+ DBWriteContactSettingString(pa.hContact, "CList", "MyHandle", buf);
if(!DBGetContactSetting(pa.hContact, PROTO, "FirstName", &dbv)) {
// only write if times are different
@@ -435,7 +456,7 @@ int OnModulesLoaded(WPARAM wParam, LPARAM lParam) { menu.cbSize=sizeof(menu);
menu.flags = CMIM_ALL;
- menu.hIcon=LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON_PROTO));
+ menu.hIcon = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_ICON_PROTO), IMAGE_ICON, 0, 0, 0);
menu.position = -200000;
menu.pszName = (char *)Translate("Edit...");
@@ -443,6 +464,7 @@ int OnModulesLoaded(WPARAM wParam, LPARAM lParam) { menu.pszContactOwner = PROTO;
hMenuEdit = (HANDLE)CallService(MS_CLIST_ADDCONTACTMENUITEM,0,(LPARAM)&menu);
+ DestroyIcon(menu.hIcon);
}
build_timezone_list();
@@ -458,6 +480,9 @@ extern "C" WORLDTIMEPROTO_API int Load(PLUGINLINK *link) {
pluginLink=link;
+ mir_getMMI(&mmi);
+ mir_getLI(&li);
+
previousMode = mcStatus = ID_STATUS_OFFLINE;
PROTOCOLDESCRIPTOR pd = {0};
diff --git a/worldtime_protocol/worldtimeproto.h b/worldtime_protocol/worldtimeproto.h index 61a4036..bab1154 100644 --- a/worldtime_protocol/worldtimeproto.h +++ b/worldtime_protocol/worldtimeproto.h @@ -29,8 +29,6 @@ http://miranda-icq.sourceforge.net/ #include "timezone_list.h"
#include "time_display.h"
-#include <string>
-
// globals
extern PLUGINLINK *pluginLink;
extern PLUGININFOEX pluginInfo;
|