1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
|
/* __try/__finally taken from abiword patch found on the web */
#if 0
#include <crtdbg.h>
#else
#define __try
#define __except(x) if (0) /* don't execute handler */
#define __finally
#define _try __try
#define _except __except
#define _finally __finally
#endif
#include <windows.h>
#include <process.h>
#include <string.h>
#include <ctype.h>
#include <io.h>
#include <time.h>
#include <locale.h>
#include <wchar.h>
#include <tchar.h>
#include <Richedit.h>
#include <Commctrl.h>
#include <dirent.h>
#include "../include/newpluginapi.h"
#include "../include/m_system.h"
//#include "../include/m_netlib.h"
#include "../include/m_clist.h"
#include "../include/m_clui.h"
#include "../include/m_database.h"
#include "../include/m_protomod.h"
#include "../include/m_protocols.h"
#include "../include/m_protosvc.h"
#include "../include/m_button.h"
#include "../include/m_utils.h"
#include "../include/m_skin.h"
#include "../include/m_genmenu.h"
#include "../include/m_icolib.h"
#define MIRANDA_CUSTOM_LP
#include "../include/m_netlib.h"
#include "../include/m_langpack.h"
#include "../include/m_findadd.h"
// leave here as reference
/*
#define UNICODE_VERISON
#define UNICODE
#define _UNICODE
*/
#include "resource.h"
//extern unsigned lpcp;
#define CFM_BACKCOLOR 0x04000000
#define MENU_OFF "DisableMenu"
#define REFRESH_KEY "Refresh interval"
#define ON_TOP_KEY "Always on top"
#define OFFLINE_STATUS "OfflineOnBoot"
#define URL_KEY "URL"
#define START_STRING_KEY "Start_string"
#define END_STRING_KEY "End_String"
#define DBLE_WIN_KEY "Doub_click_win"
#define HIDE_STATUS_ICON_KEY "Hide_Status_Icon"
#define HAS_CRASHED_KEY "Has_Crashed"
#define U_ALLSITE_KEY "UseAllTheWebsite"
#define MENU_IS_DISABLED_KEY "MainMenuReallyDisabled"
#define UPDATE_ONALERT_KEY "WND_UPDATE_OALERY_ONLY"
#define DISABLE_AUTOUPDATE_KEY "Disable_Auto_Update"
#define RWSPACE_KEY "level_of_wspace_removal"
#define PRESERVE_NAME_KEY "PreserveName"
#define CLEAR_DISPLAY_KEY "Remove_tags_whitespace"
#define ALRT_S_STRING_KEY "ALRT_S_STRING"
#define ALRT_E_STRING_KEY "ALRT_E_STRING"
#define ALRT_INDEX_KEY "AlertIndex"
#define EVNT_INDEX_KEY "EventIndex"
#define START_DELAY_KEY "StartUpDelay"
#define ALWAYS_LOG_KEY "AlwaysLogToFile"
#define SAVE_INDIVID_POS_KEY "SaveIndividWinPos"
#define NO_PROTECT_KEY "NoDownloadProtection"
#define SAVE_AS_RAW_KEY "SaveAsRaw"
#define FONT_SCRIPT_KEY "FontScript"
#define STOP_KEY "StopProcessing"
#define DATA_POPUP_KEY "DisplayDataPopup"
#define COUNTDOWN_KEY "Countdown"
#define MINUTE 60000
#define SECOND 1000
#define MONITOR_DEFAULTTONEAREST 2
#define MS_UPDATE_ALL "Webview/UpdateAll"
#define MS_ADD_SITE "Webview/AddSite"
#define MS_AUTO_UPDATE "Webview/AutoUpdate"
#define CACHE_FILE_KEY "Filename"
/*
* some globals for window settings
*/
DWORD Xposition;
DWORD Yposition;
DWORD BackgoundClr;
DWORD TextClr;
DWORD WindowHeight;
DWORD WindowWidth;
UINT_PTR timerId;
UINT_PTR Countdown;
LOGFONT lf;
HFONT h_font;
HWND ContactHwnd;
HINSTANCE hInst;
HMENU hMenu;
char *DLLNAME;
int bpStatus;
CLISTMENUITEM mi;
HANDLE hMenuItem1;
HANDLE hMenuItemCountdown;
char optionsname[80];
struct FORK_ARG
{
HANDLE hEvent;
void (__cdecl * threadcode) (void *);
unsigned (__stdcall * threadcodeex) (void *);
void *arg;
};
//lets get rid of some warnings
void timerfunc(void);
void Countdownfunc(void);
void SavewinSettings(void);
void ValidatePosition(HWND hwndDlg);
void CheckDbKeys(void);
void __cdecl forkthread_r(void *param);
unsigned long forkthread(void (__cdecl * threadcode) (void *), unsigned long stacksize, void *arg);
int WebsiteMenuCommand(WPARAM wParam, LPARAM lParam);
int UpdateMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact);
int OnTopMenuCommand(WPARAM wParam, LPARAM lParam, HANDLE singlecontact);
int AddContactMenuCommand(WPARAM wParam, LPARAM lParam);
int ContactOptionsMenuCommand(WPARAM wParam, LPARAM lParam);
int CntOptionsMenuCommand(WPARAM wParam, LPARAM lParam);
int CntAlertMenuCommand(WPARAM wParam, LPARAM lParam);
int ModulesLoaded(WPARAM wParam, LPARAM lParam);
void ChangeMenuItem3();
int ContactMenuItemUpdateData (WPARAM wParam, LPARAM lParam);
int MarkAllReadMenuCommand(WPARAM wParam, LPARAM lParam);
//
int ShowHideContactCommand(WPARAM wParam, LPARAM lParam);
//
int Doubleclick(WPARAM wParam, LPARAM lParam);
int DataWndMenuCommand(WPARAM wParam, LPARAM lParam);
//int SendToRichEdit(HWND hWindow, char *truncated, COLORREF rgbText, COLORREF rgbBack);
int SendToRichEdit(HWND hWindow, TCHAR *truncated, COLORREF rgbText, COLORREF rgbBack);
int UpdateAllMenuCommand(WPARAM wParam, LPARAM lParam);
int CountdownMenuCommand(WPARAM wParam, LPARAM lParam);
//Services
int GetCaps(WPARAM wParam, LPARAM lParam);
int GetName(WPARAM wParam, LPARAM lParam);
int BPLoadIcon(WPARAM wParam, LPARAM lParam); // BPLoadIcon
// because LoadIcon
// wont work..
int SetStatus(WPARAM wParam, LPARAM lParam);
int GetStatus(WPARAM wParam, LPARAM lParam);
//
void ChangeContactStatus(int con_stat);
void InitialiseGlobals(void);
void FontSettings(void);
///
void Removewhitespace(char *truncated);
void RemoveInvis(char *truncated, int AmountWspcRem);
void RemoveTabs(char *truncated);
void FastTagFilter(char *truncated);
void EraseBlock(char *truncated);
void EraseSymbols(char *truncated);
int ProcessAlerts(HANDLE AContact, char *truncated, char *tstr, char *contactname, int notpresent);
BOOL CALLBACK DlgPopUpOpts(HWND hdlg, UINT msg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK DlgProcFind(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
int DataDialogResize(HWND hwndDlg, LPARAM lParam, UTILRESIZECONTROL * urc);
void Filter(char *truncated);
void TxtclrLoop();
void BGclrLoop();
void ContactLoop(void *dummy);
void NumSymbols(char *truncated);
int AutoUpdateMCmd(WPARAM wParam, LPARAM lParam);
BOOL CALLBACK DlgProcContactOpt(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
void AckFunc(void *dummy);
int SiteDeleted(WPARAM wParam, LPARAM lParam);
int WErrorPopup(char *namecontact, char *textdisplay);
void DestroyServices(void);
//////////////////////
// wrappers
HANDLE hHookDisplayDataAlert;
#define ME_DISPLAYDATA_ALERT "Miranda/ALERT/DISPLAYDATA"
HANDLE hHookAlertPopup;
#define ME_POPUP_ALERT "Miranda/ALERT/POPUP"
HANDLE hHookAlertWPopup;
#define ME_WPOPUP_ALERT "Miranda/ALERT/WPOPUP"
HANDLE hHookErrorPopup;
#define ME_POPUP_ERROR "Miranda/ERROR/POPUP"
HANDLE hHookAlertOSD;
#define ME_OSD_ALERT "Miranda/ALERT/OSD"
////////////
//test
//int utf8_encode(const char *from, char **to);
|