summaryrefslogtreecommitdiff
path: root/isee_tweaker
diff options
context:
space:
mode:
Diffstat (limited to 'isee_tweaker')
-rw-r--r--isee_tweaker/docs/InstallScript.xml32
-rw-r--r--isee_tweaker/docs/isee_advanced.txt110
-rw-r--r--isee_tweaker/docs/isee_tweaker.pngbin0 -> 22602 bytes
-rw-r--r--isee_tweaker/docs/readme_iseetweaker.txt40
-rw-r--r--isee_tweaker/docs/rebase_iseetweaker.txt4
-rw-r--r--isee_tweaker/docs/todo_iseetweaker.txt9
-rw-r--r--isee_tweaker/isee_tweaker.dsp119
-rw-r--r--isee_tweaker/isee_tweaker.dsw29
-rw-r--r--isee_tweaker/isee_tweaker.h94
-rw-r--r--isee_tweaker/isee_tweaker.rc111
-rw-r--r--isee_tweaker/main.c84
-rw-r--r--isee_tweaker/options.c187
-rw-r--r--isee_tweaker/resource.h30
13 files changed, 849 insertions, 0 deletions
diff --git a/isee_tweaker/docs/InstallScript.xml b/isee_tweaker/docs/InstallScript.xml
new file mode 100644
index 0000000..03627b5
--- /dev/null
+++ b/isee_tweaker/docs/InstallScript.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<installscript>
+ <info> <!-- installation information -->
+ <name>ISee Tweaker</name>
+ <author>Sergey V. Gershovich</author>
+ <version>0.0.0.1</version>
+ <type>Plugin</type>
+ </info>
+
+ <packageinfo>
+ <title>Main Files</title>
+ <file>isee_tweaker.dll</file>
+ </packageinfo>
+
+ <packageinfo>
+ <title>Documentation and Translation</title>
+ <file>readme_iseetweaker.txt</file>
+ <file>todo_iseetweaker.txt</file>
+ <optional/>
+ </packageinfo>
+
+ <packageinfo>
+ <title>Developers Info</title>
+ <file>rebase_iseetweaker.txt</file>
+ <optional/>
+ </packageinfo>
+
+ <autorun>
+ <file>readme_iseetweaker.txt</file>
+ <document/>
+ </autorun>
+</installscript>
diff --git a/isee_tweaker/docs/isee_advanced.txt b/isee_tweaker/docs/isee_advanced.txt
new file mode 100644
index 0000000..676c7fd
--- /dev/null
+++ b/isee_tweaker/docs/isee_advanced.txt
@@ -0,0 +1,110 @@
+Add with Database Editor to CurrentUser\ICQ (or ICQ2 & etc) :
+
+(*) - relogin needed for applying
+
+(BYTE) PrivacyMenu = 0 - to Disable privacy menu (restart needed)
+
+(BYTE) Chan2Enabled = 0 - to Disable Channel 2 Msgs (to cheat antispam bot)
+ (can be set per user also)
+
+(BYTE) MtnEnabled = 0 - to Disable MTN (*)
+ 1 - to Enable MTN (*)
+ 2 - to Enable MTN receiving only (*)
+ (default is 1)
+
+(BYTE) PopUpsMode = sum of these values:
+
+ +2 - to DISABLE PopUps
+
+ (default is 0)
+
+(BYTE) ShowIdle = 0 - to Disable idle time sending (*)
+
+(BYTE) ExtendedSearch = 0 - to Disable extended search (*)
+
+(BYTE) UnicodeDecodeMode = sum of these values:
+
+ +0x01 - to ENABLE autodecoding for type 1 msgs (utf-8)
+ +0x02 - ... for type 2 & 4 msgs (utf-8)
+ +0x04 - ... for auth. req. msgs (utf-8)
+ +0x08 - ... for recived sms (utf-8)
+ +0x10 (+16) - ... for offline msgs (ucs-2)
+ +0x20 (+32) - ... for auth replies
+
+ (default is 0x37 = 1+2+4+0x10+0x20)
+
+
+(BYTE) UnicodeRcv = 0 - off (*) (can be set per user also)
+ 1 - On demand
+ 2 - always
+ 3 - convert ANSI to UCS-2
+ (default is 1)
+
+
+(BYTE) UnicodeSend = sum of these values: (*) (can be set per user also)
+ +0x01 - just on (any next value assumes this too)
+ +0x02 - convert ANSI to unicode
+ +0x04 - ignore contact's unicode capability (for testing!)
+ +0x08 - do not convert to unicode long msgs
+ +0x10 (+16) - send unicode to offline in plain utf-8 (capability is ignored)
+ +0x20 (+32) - send unicode in plain utf-8 in other cases (capability is ignored)
+ +0x40 (+64) - convert to custom codepage if can not be send in unicode
+ (default is 0x0A = 2 + 8)
+
+
+(WORD) CodePage - code page for plain text encoding/decoding to/from unicode (can be set per user also)
+
+(BYTE) InfoUpdate = Threshold in DAYS for updating user info (restart is needed)
+
+ (default is 14 days)
+
+(BYTE) InfoAutoUpdate = 0 - to Disable user info rescan (using threshold) on login (restart is needed)
+
+(BYTE) ExtendedStatus = 1 - to Disable extended status support
+
+(BYTE) VisibleMode - default is 4
+ 1 - Allow all users to see you
+ 2 - Block all users from seeing you
+ 3 - Allow only users in the permit list to see you
+ 4 - Block only users in the invisible list from seeing you
+ 5 - Allow only users in the buddy list to see you
+
+
+(DWORD) Offset - allow offline msgs to be behind last event by this offset in seconds
+ (default is 0)
+
+
+Proto params:
+
+(WORD) Version - protocol version (default is 8)
+(DWORD) FP1 - proto specific value (default is 0xffffffff for Miranda)
+(DWORD) FP2 - proto specific value (default is 0x00040000 for 0.4.0.0)
+(DWORD) FP3 - proto specific value (default is 0)
+
+
+Icons:
+
+(STRING) IconsPack - icons pack path+name for other OS
+ (default - .\icons\<Proto>_IseeIcons.dll , then .\icons\isee_icons.dll )
+
+Icons IDs:
+
+#define IDI_ICQ 1
+#define IDI_AUTH 2
+#define IDI_CHECK 3
+#define IDI_DOT 4
+#define IDI_PRIVACY 5
+#define IDI_REMOVE 6
+#define IDI_GRANT 7
+#define IDI_START 8
+#define IDI_STOP 9
+#define IDI_PAUSE 10
+#define IDI_HIDDEN 11
+#define IDI_SCAN 12
+#define IDI_LIST 13
+
+
+// custom login errors (m_protosvc.h)
+#define LOGINERR_TOOQUICKLY 1000
+#define LOGINERR_TOOMANYCONNECTIONS 1001
+#define LOGINERR_UNKNOWN 1002
diff --git a/isee_tweaker/docs/isee_tweaker.png b/isee_tweaker/docs/isee_tweaker.png
new file mode 100644
index 0000000..cf6cccd
--- /dev/null
+++ b/isee_tweaker/docs/isee_tweaker.png
Binary files differ
diff --git a/isee_tweaker/docs/readme_iseetweaker.txt b/isee_tweaker/docs/readme_iseetweaker.txt
new file mode 100644
index 0000000..41f7d90
--- /dev/null
+++ b/isee_tweaker/docs/readme_iseetweaker.txt
@@ -0,0 +1,40 @@
+ISee Tweaker Plugin
+Version 0.1.0.0
+License: Open Source
+Written by and copyright (c) Sergey V. Gershovich a.k.a. Jazzy$, 2005
+ e-mail: sir-jazzy@yandex.ru
+
+This plugin can tweak some hidden ISee settings...
+
+
+***** DISCLAIMER OF WARRANTY *****
+
+This software and the accompanying files are presented "AS IS" and without
+warranties whether expressed or implied. Use it at your own risk.
+
+!!! Backup you database first !!!
+
+**********************************
+
+
+Installation
+-------------
+1. Close Miranda IM.
+2. Find Miranda IM main directory (search for miranda32.exe).
+3. Put isee_tweaker.dll into plugins directory.
+4. Start Miranda IM.
+5. Go to Options/Plugins/ISee Tweaker to configure some stuff.
+
+
+Uninstall
+-----------
+1. Close Miranda IM.
+2. Find Miranda IM main directory (search for miranda32.exe).
+3. Delete isee_tweaker.dll from Plugins directory.
+
+
+Version history
+------------------
+0.1.0.0: - Redisign options dialog
+ - Added more clients
+0.0.0.1: - Initial release \ No newline at end of file
diff --git a/isee_tweaker/docs/rebase_iseetweaker.txt b/isee_tweaker/docs/rebase_iseetweaker.txt
new file mode 100644
index 0000000..95b8625
--- /dev/null
+++ b/isee_tweaker/docs/rebase_iseetweaker.txt
@@ -0,0 +1,4 @@
+== TO PLUGIN DEVELOPERS ==
+
+This plugin has its Base Address set to:
+0x30130000 \ No newline at end of file
diff --git a/isee_tweaker/docs/todo_iseetweaker.txt b/isee_tweaker/docs/todo_iseetweaker.txt
new file mode 100644
index 0000000..513c9bf
--- /dev/null
+++ b/isee_tweaker/docs/todo_iseetweaker.txt
@@ -0,0 +1,9 @@
+ISee Tweaker Roadmap:
+
+[ ] Updater support
+[ ] Add Unicode Tweaks
+[ ] Maybe something else.
+
+===========================
+[ ] - not implemented yet
+[+] - implemented and working \ No newline at end of file
diff --git a/isee_tweaker/isee_tweaker.dsp b/isee_tweaker/isee_tweaker.dsp
new file mode 100644
index 0000000..8ea390a
--- /dev/null
+++ b/isee_tweaker/isee_tweaker.dsp
@@ -0,0 +1,119 @@
+# Microsoft Developer Studio Project File - Name="isee_tweaker" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=isee_tweaker - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "isee_tweaker.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "isee_tweaker.mak" CFG="isee_tweaker - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "isee_tweaker - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "isee_tweaker - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "isee_tweaker - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "isee_tweaker_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "isee_tweaker_EXPORTS" /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x30130000" /dll /machine:I386 /nodefaultlib /out:"../../bin/release/plugins/isee_tweaker.dll"
+
+!ELSEIF "$(CFG)" == "isee_tweaker - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "isee_tweaker_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "isee_tweaker_EXPORTS" /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /base:"0x30030000" /dll /debug /machine:I386 /out:"../../bin/debug/plugins/isee_tweaker.dll" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "isee_tweaker - Win32 Release"
+# Name "isee_tweaker - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\main.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\options.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\isee_tweaker.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\isee_tweaker.rc
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/isee_tweaker/isee_tweaker.dsw b/isee_tweaker/isee_tweaker.dsw
new file mode 100644
index 0000000..c3b779f
--- /dev/null
+++ b/isee_tweaker/isee_tweaker.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "isee_tweaker"=.\isee_tweaker.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/isee_tweaker/isee_tweaker.h b/isee_tweaker/isee_tweaker.h
new file mode 100644
index 0000000..7cc1f98
--- /dev/null
+++ b/isee_tweaker/isee_tweaker.h
@@ -0,0 +1,94 @@
+/*
+Miranda IM ISee Tweaker plugin
+Copyright (C) 2005 Sergey V. Gershovich
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+// isee_tweaker.rc
+#include "resource.h"
+
+// Plugin name
+#define ModuleName "ISee Tweaker"
+
+// options.c
+BOOL CALLBACK DlgProcOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
+int OptInitialise(WPARAM wParam,LPARAM lParam);
+
+// Client ID
+struct CID_t {
+ char *name;
+ DWORD FP1;
+ DWORD FP2;
+ DWORD FP3;
+ WORD ver;
+};
+
+static struct CID_t client_id[] = {
+ {"Unknown/Custom", 0x00000000, 0x00000000, 0x00000000, 0},
+ {"Miranda IM (default)", 0xffffffff, 0x00040000, 0x00000000, 8},
+ {"ICQ Unknown", 0x3AA773EE, 0x00000000, 0x00000000, 4},
+ {"ICQ 99", 0x3AA773EE, 0x00000000, 0x00000000, 6},
+ {"ICQ 2000", 0x3AA773EE, 0x42662F9A, 0x425A1D5F, 7},
+ {"ICQ 2001b/2002a/2003a", 0x3F755BAD, 0x00000000, 0x00000000, 8},
+ {"ICQ 2003b", 0x3AA773EE, 0x00000000, 0x00000000, 10},
+ {"ICQ Lite", 0x3AA773EE, 0x00000000, 0x00000000, 9},
+ {"IM2", 0x3FF19BEB, 0x00000000, 0x3FF19BEB, 8},
+ {"MICQ", 0x7d0001ea, 0x00000000, 0x00000000, 8},
+ {"MICQ2", 0xffffff42, 0x00000000, 0x00000000, 8},
+ {"Trillian", 0x3B75AC09, 0x00000000, 0x00000000, 0},
+ {"libicq2000 (Jabber)", 0x3AA773EE, 0x3AA66380, 0x3A877A42, 0},
+ {"&RQ", 0x00000000, 0x00000000, 0x00000000, 7},
+ {"&RQ 0.9.4.16", 0xFFFFFF7F, 0x00090410, 0x00000000, 8},
+ {"YSM", 0xFFFFFFAB, 0x00000000, 0x00000000, 8},
+ {"StrICQ 0.4", 0xFFFFFF8F, 0x00000000, 0x00000000, 0},
+ {"LICQ", 0x7d000000, 0x00000000, 0x00000000, 0},
+ {"vICQ 0.43.0.0", 0x04031980, 0x00000000, 0x00000000, 0},
+ {"mobicq / JIMM 0.4", 0xFFFFFFFE, 0x00000000, 0xFFFFFFFE, 0},
+ {"Sticq", 0x3BA8DBAF, 0x3BEB5373, 0x3BEB5262, 2},
+ {"GAIM", 0xffffffff, 0xffffffff, 0xffffffff, 8},
+ {"Agile Messenger", 0x00000000, 0x00000000, 0x00000000, 0},
+ {"WebICQ", 0x00000000, 0x00000000, 0x00000000, 7},
+ {"alICQ", 0xFFFFFFBE, 0x00000000, 0x00000000, 0},
+ {"Spam Bot", 0x4201F414, 0x4201F414, 0x4201F414, 0},
+ {NULL,0,0}
+};
+
+// MTN TYPE
+struct MTN_t {
+ char *name;
+};
+static struct MTN_t mtn_type[] = {
+ {"Disable MTN"},
+ {"Enable MTN"},
+ {"Enable MTN receiving only"},
+ {NULL}
+};
+
+
+//VISIBLE MODE
+struct VISMODE_t {
+ char *name;
+ BYTE value;
+};
+
+static struct VISMODE_t visible_mode[] = {
+ {"Allow all users to see you",1},
+ {"Block all users from seeing you",2},
+ {"Allow only users in the permit list to see you",3},
+ {"Block only users in the invisible list from seeing you",4},
+ {"Allow only users in the buddy list to see you",5},
+ {NULL,0}
+};
diff --git a/isee_tweaker/isee_tweaker.rc b/isee_tweaker/isee_tweaker.rc
new file mode 100644
index 0000000..6fe836d
--- /dev/null
+++ b/isee_tweaker/isee_tweaker.rc
@@ -0,0 +1,111 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Russian resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
+#ifdef _WIN32
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+#pragma code_page(1251)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_OPT_ISEETWEAKER DIALOGEX 0, 0, 313, 240
+STYLE DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg"
+BEGIN
+ GROUPBOX "ISee Tweaker",0,0,0,313,240
+ COMBOBOX IDC_PREDEFINDEDCID,9,122,97,76,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Identify you Miranda IM as:",IDC_STATIC,9,112,93,8
+ CONTROL "Enable Privacy Menu",IDC_ENABLEPRIVACYMENU,"Button",
+ BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,20,226,10
+ CONTROL "Enable idle time sending",IDC_ENABLEIDLE,"Button",
+ BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,31,226,10
+ CONTROL "Enable extended search",IDC_ENABLEEXTSEARCH,"Button",
+ BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,41,229,10
+ LTEXT "Threshold in DAYS for updating user info:",IDC_STATIC,8,
+ 94,132,8
+ EDITTEXT IDC_UPDDAYS,142,92,42,12,ES_AUTOHSCROLL | ES_NUMBER
+ CONTROL "Disable user info rescan (using threshold) on login",
+ IDC_DISABLEUIRESCAN,"Button",BS_AUTOCHECKBOX | BS_FLAT |
+ WS_TABSTOP,9,73,226,10
+ CONTROL "Disable extended status support",IDC_DISABLEEXTSTATUS,
+ "Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,63,226,
+ 10
+ LTEXT "Note: Miranda IM will have to be restarted for changes to take effect.",
+ IDC_STATIC,4,216,303,8
+ CTEXT "P.S. Thanks to Bio for his great work! ..:: Peace to all :..",
+ IDC_STATIC,3,227,307,10,0,WS_EX_STATICEDGE
+ CONTROL "Disable PopUps",IDC_DISABLEPOPUPS,"Button",
+ BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,10,226,10
+ PUSHBUTTON "Reset to defaults",IDC_RESET,208,197,102,14
+ CONTROL "Enable channel 2 messages",IDC_ENABLECHAN2,"Button",
+ BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,52,226,10
+ COMBOBOX IDC_MTNTYPE,112,122,114,76,CBS_DROPDOWNLIST | WS_VSCROLL |
+ WS_TABSTOP
+ LTEXT "Message typing notyfication (MTN):",IDC_STATIC,112,112,
+ 125,8
+ COMBOBOX IDC_VISIBLEMODE,9,147,199,76,CBS_DROPDOWNLIST |
+ WS_VSCROLL | WS_TABSTOP
+ LTEXT "Visible mode:",IDC_STATIC,9,138,125,8
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Russian resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/isee_tweaker/main.c b/isee_tweaker/main.c
new file mode 100644
index 0000000..2894c25
--- /dev/null
+++ b/isee_tweaker/main.c
@@ -0,0 +1,84 @@
+/*
+Miranda IM ISee Tweaker plugin
+Copyright (C) 2005 Sergey V. Gershovich
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <windows.h>
+#include "isee_tweaker.h"
+
+#include "../../include/newpluginapi.h"
+#include "../../include/m_system.h"
+#include "../../include/m_langpack.h"
+#include "../../include/m_options.h"
+#include "../../include/m_database.h"
+//#include "../../include/m_clist.h"
+#pragma hdrstop
+
+
+// Switch off all unnecessary in Release Build.
+// to decrease dll size
+#ifdef NDEBUG
+ #pragma comment(linker,"/MERGE:.rdata=.text")
+ #pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
+ #pragma comment(linker,"/ENTRY:DllMain")
+ #pragma comment(linker,"/NODEFAULTLIB")
+#endif
+
+HINSTANCE hInst;
+PLUGINLINK *pluginLink;
+
+MIRANDAHOOK hHookOptionInit = NULL;
+//MIRANDAHOOK hEventOkToExit = NULL;
+
+
+PLUGININFO pluginInfo={ // about plugin
+ sizeof(PLUGININFO),
+ ModuleName,
+ PLUGIN_MAKE_VERSION(0,1,0,0),
+ "This plugin can tweak some hidden ISee settings",
+ "Sergey V. Gershovich a.k.a. Jazzy$",
+ "sir-jazzy@yandex.ru",
+ "© 2005 Jazzy$",
+ "http://jazzy.ws/miranda/",
+ 0, 0
+};
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
+{// plugin entry point
+ hInst=hinstDLL;
+ DisableThreadLibraryCalls(hInst);
+ return TRUE;
+}
+//==========================================================================
+__declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion)
+{// Tell Miranda IM about plugin
+ return &pluginInfo;
+}
+
+int __declspec(dllexport) Load(PLUGINLINK *link)
+{// on load: create services, hook events... if need :)
+ pluginLink = link;
+ hHookOptionInit = HookEvent(ME_OPT_INITIALISE,OptInitialise);
+ return 0;
+}
+
+int __declspec(dllexport) Unload(void)
+{ //on unload: unhook hooked events... if need :)
+ if (hHookOptionInit)
+ UnhookEvent(hHookOptionInit);
+ return 0;
+} \ No newline at end of file
diff --git a/isee_tweaker/options.c b/isee_tweaker/options.c
new file mode 100644
index 0000000..08049b8
--- /dev/null
+++ b/isee_tweaker/options.c
@@ -0,0 +1,187 @@
+/*
+Miranda IM ISee Tweaker plugin
+Copyright (C) 2005 Sergey V. Gershovich
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include <windows.h>
+#include "isee_tweaker.h"
+
+#include "../../include/newpluginapi.h"
+#include "../../include/m_langpack.h"
+#include "../../include/m_options.h"
+#include "../../include/m_database.h"
+#include "../../include/m_clc.h"
+#include "../../include/m_clist.h"
+#pragma hdrstop
+
+extern HINSTANCE hInst;
+
+void LoadSettings(HWND hwndDlg)
+{
+ int i;
+ DWORD dwFP1 = DBGetContactSettingDword(0,"ICQ","FP1",0xffffffff);
+ DWORD dwFP2 = DBGetContactSettingDword(0,"ICQ","FP2",0x00040000);
+ DWORD dwFP3 = DBGetContactSettingDword(0,"ICQ","FP3",0);
+ WORD ver = DBGetContactSettingWord(0,"ICQ","Version",8);
+
+ SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_ADDSTRING,0,(LPARAM)Translate(client_id[0].name));
+ SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_SETCURSEL,0,0);
+ for (i = 1; ; i++)
+ {
+ if (client_id[i].name == NULL) break;
+
+ SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_ADDSTRING,0,(LPARAM)Translate(client_id[i].name));
+
+ if (client_id[i].FP1 == dwFP1 && client_id[i].FP2 == dwFP2 && client_id[i].FP3 == dwFP3 && client_id[i].ver == ver)
+ SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_SETCURSEL,i,0);
+ }
+
+ // load MTN type
+ for (i = 0; ; i++)
+ {
+ if (mtn_type[i].name == NULL) break;
+ SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_ADDSTRING,0,(LPARAM)Translate(mtn_type[i].name));
+ }
+ SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_SETCURSEL,DBGetContactSettingByte(0,"ICQ","MtnEnabled",1),0);
+
+ // Load Visible Mode
+ for (i = 0; ; i++)
+ {
+ if (visible_mode[i].name == NULL) break;
+ SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_ADDSTRING,0,(LPARAM)Translate(visible_mode[i].name));
+ }
+ SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_SETCURSEL,DBGetContactSettingByte(0,"ICQ","VisibleMode",4)-1,0);
+
+ CheckDlgButton(hwndDlg,IDC_DISABLEPOPUPS,DBGetContactSettingByte(0,"ICQ","PopUpsMode",0));
+ CheckDlgButton(hwndDlg,IDC_ENABLECHAN2,DBGetContactSettingByte(0,"ICQ","Chan2Enabled",1));
+ CheckDlgButton(hwndDlg,IDC_ENABLEPRIVACYMENU,DBGetContactSettingByte(0,"ICQ","PrivacyMenu",1));
+ CheckDlgButton(hwndDlg,IDC_ENABLEIDLE,DBGetContactSettingByte(0,"ICQ","ShowIdle",1));
+ CheckDlgButton(hwndDlg,IDC_ENABLEEXTSEARCH,DBGetContactSettingByte(0,"ICQ","ExtendedSearch",1));
+ CheckDlgButton(hwndDlg,IDC_DISABLEEXTSTATUS,DBGetContactSettingByte(0,"ICQ","ExtendedStatus",0));
+ CheckDlgButton(hwndDlg,IDC_DISABLEUIRESCAN,DBGetContactSettingByte(0,"ICQ","InfoAutoUpdate",0));
+
+ SetDlgItemInt(hwndDlg,IDC_UPDDAYS,DBGetContactSettingByte(0,"ICQ","InfoUpdate",14),FALSE);
+}
+
+void DefaultSettings(HWND hwndDlg)
+{
+ SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_SETCURSEL,1,0);
+ SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_SETCURSEL,1,0);
+ SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_SETCURSEL,4-1,0);
+ CheckDlgButton(hwndDlg,IDC_DISABLEPOPUPS,0);
+ CheckDlgButton(hwndDlg,IDC_ENABLECHAN2,1);
+ CheckDlgButton(hwndDlg,IDC_ENABLEPRIVACYMENU,1);
+ CheckDlgButton(hwndDlg,IDC_ENABLEIDLE,1);
+ CheckDlgButton(hwndDlg,IDC_ENABLEEXTSEARCH,1);
+ CheckDlgButton(hwndDlg,IDC_DISABLEEXTSTATUS,0);
+ CheckDlgButton(hwndDlg,IDC_DISABLEUIRESCAN,0);
+ SetDlgItemInt(hwndDlg,IDC_UPDDAYS,14,FALSE);
+}
+
+void SaveSettings(HWND hwndDlg)
+{
+ int i = {0};
+ char str[16]={0};
+
+ i = SendDlgItemMessage(hwndDlg,IDC_PREDEFINDEDCID,CB_GETCURSEL,0,0);
+
+ if (i) {
+ if (i==1){
+ DBDeleteContactSetting(NULL,"ICQ","FP1");
+ DBDeleteContactSetting(NULL,"ICQ","FP2");
+ DBDeleteContactSetting(NULL,"ICQ","FP3");
+ DBDeleteContactSetting(NULL,"ICQ","Version");
+ } else {
+ DBWriteContactSettingDword(NULL,"ICQ","FP1",client_id[i].FP1);
+ DBWriteContactSettingDword(NULL,"ICQ","FP2",client_id[i].FP2);
+ DBWriteContactSettingDword(NULL,"ICQ","FP3",client_id[i].FP3);
+ DBWriteContactSettingWord(NULL,"ICQ","Version",client_id[i].ver);
+ }
+ }
+
+ DBWriteContactSettingByte(NULL,"ICQ","PopUpsMode",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_DISABLEPOPUPS)?2:0));
+ DBWriteContactSettingByte(NULL,"ICQ","Chan2Enabled",(BYTE)(IsDlgButtonChecked(hwndDlg,IDC_ENABLECHAN2)));
+ DBWriteContactSettingByte(NULL,"ICQ","PrivacyMenu",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ENABLEPRIVACYMENU));
+ DBWriteContactSettingByte(NULL,"ICQ","ShowIdle",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ENABLEIDLE));
+ DBWriteContactSettingByte(NULL,"ICQ","ExtendedSearch",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_ENABLEEXTSEARCH));
+ DBWriteContactSettingByte(NULL,"ICQ","ExtendedStatus",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_DISABLEEXTSTATUS));
+ DBWriteContactSettingByte(NULL,"ICQ","InfoAutoUpdate",(BYTE)IsDlgButtonChecked(hwndDlg,IDC_DISABLEUIRESCAN));
+
+ DBWriteContactSettingByte(NULL,"ICQ","MtnEnabled",(BYTE)SendDlgItemMessage(hwndDlg,IDC_MTNTYPE,CB_GETCURSEL,0,0));
+
+ DBWriteContactSettingByte(NULL,"ICQ","VisibleMode",(BYTE)(SendDlgItemMessage(hwndDlg,IDC_VISIBLEMODE,CB_GETCURSEL,0,0)+1));
+
+ i = GetDlgItemInt(hwndDlg,IDC_UPDDAYS,FALSE,FALSE);
+ DBWriteContactSettingByte(NULL,"ICQ","InfoUpdate",(BYTE)i);
+
+}
+
+BOOL CALLBACK DlgProcHSOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ LoadSettings(hwndDlg);
+
+ return TRUE;
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam))
+ {
+ case IDC_RESET:
+ {
+ DefaultSettings(hwndDlg);
+ break;
+ }
+
+ }
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); // Send message to activate "Apply" button
+ return TRUE;
+ case WM_NOTIFY:
+ switch(((LPNMHDR)lParam)->idFrom) {
+ case 0:
+ switch (((LPNMHDR)lParam)->code)
+ {
+ case PSN_APPLY: // if "Apply" pressed then...
+ SaveSettings(hwndDlg);
+ return TRUE;
+ }
+ break;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+
+
+
+int OptInitialise(WPARAM wParam,LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp;
+ odp.cbSize=sizeof(odp);
+ odp.position=100100000;
+ odp.hInstance=hInst;
+ odp.pszTemplate=MAKEINTRESOURCE(IDD_OPT_ISEETWEAKER);
+ odp.pszTitle=Translate(ModuleName);
+ odp.pszGroup=Translate("Plugins");
+ odp.pfnDlgProc=DlgProcHSOpts;
+ odp.flags=ODPF_BOLDGROUPS;
+ CallService(MS_OPT_ADDPAGE,wParam,(LPARAM)&odp);
+ return 0;
+} \ No newline at end of file
diff --git a/isee_tweaker/resource.h b/isee_tweaker/resource.h
new file mode 100644
index 0000000..149cc94
--- /dev/null
+++ b/isee_tweaker/resource.h
@@ -0,0 +1,30 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by isee_tweaker.rc
+//
+#define IDD_OPT_ISEETWEAKER 103
+#define IDC_DISABLEPOPUPS 1001
+#define IDC_DISABLECHAN2 1002
+#define IDC_ENABLECHAN2 1002
+#define IDC_MTN 1010
+#define IDC_ENABLEPRIVACYMENU 1011
+#define IDC_ENABLEIDLE 1012
+#define IDC_UPDDAYS 1013
+#define IDC_ENABLEEXTSEARCH 1015
+#define IDC_PREDEFINDEDCID 1016
+#define IDC_DISABLEUIRESCAN 1017
+#define IDC_DISABLEEXTSTATUS 1018
+#define IDC_RESET 1026
+#define IDC_MTNTYPE 1027
+#define IDC_VISIBLEMODE 1029
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1027
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif