diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-05-15 10:38:20 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-05-15 10:38:20 +0000 |
commit | 48540940b6c28bb4378abfeb500ec45a625b37b6 (patch) | |
tree | 2ef294c0763e802f91d868bdef4229b6868527de /plugins/StatusPlugins/KeepStatus | |
parent | 5c350913f011e119127baeb32a6aedeb4f0d33bc (diff) |
initial commit
git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/StatusPlugins/KeepStatus')
18 files changed, 7121 insertions, 0 deletions
diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus.dep b/plugins/StatusPlugins/KeepStatus/KeepStatus.dep new file mode 100644 index 0000000000..c908836870 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus.dep @@ -0,0 +1,236 @@ +# Microsoft Developer Studio Generated Dependency File, included by KeepStatus.mak
+
+.\action_keepstatus.cpp : \
+ "..\..\..\include\m_addcontact.h"\
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clc.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_clistint.h"\
+ "..\..\..\include\m_clui.h"\
+ "..\..\..\include\m_contacts.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_email.h"\
+ "..\..\..\include\m_file.h"\
+ "..\..\..\include\m_findadd.h"\
+ "..\..\..\include\m_genmenu.h"\
+ "..\..\..\include\m_history.h"\
+ "..\..\..\include\m_idle.h"\
+ "..\..\..\include\m_ignore.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_message.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_options.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protomod.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_userinfo.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\helpers\commonheaders.h"\
+ "..\..\helpers\db_helpers.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\..\newtriggerplugin\m_trigger.h"\
+ ".\keepstatus.h"\
+ ".\version.h"\
+ {$(INCLUDE)}"ipexport.h"\
+
+
+..\commonstatus.cpp : \
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\helpers\gen_helpers.h"\
+
+
+..\confirmdialog.cpp : \
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\helpers\gen_helpers.h"\
+
+
+..\..\helpers\gen_helpers.cpp : \
+ "..\..\..\include\m_addcontact.h"\
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clc.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_clistint.h"\
+ "..\..\..\include\m_clui.h"\
+ "..\..\..\include\m_contacts.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_email.h"\
+ "..\..\..\include\m_file.h"\
+ "..\..\..\include\m_findadd.h"\
+ "..\..\..\include\m_genmenu.h"\
+ "..\..\..\include\m_history.h"\
+ "..\..\..\include\m_idle.h"\
+ "..\..\..\include\m_ignore.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_message.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_options.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protomod.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_userinfo.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\helpers\commonheaders.h"\
+ "..\..\helpers\gen_helpers.h"\
+
+
+.\keepstatus.cpp : \
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_options.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\keepstatus.h"\
+ ".\version.h"\
+ {$(INCLUDE)}"ipexport.h"\
+
+
+.\main.cpp : \
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_options.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\keepstatus.h"\
+ ".\version.h"\
+ {$(INCLUDE)}"ipexport.h"\
+
+
+.\options.cpp : \
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_options.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\keepstatus.h"\
+ ".\version.h"\
+ {$(INCLUDE)}"ipexport.h"\
+
+
+.\trigger_keepstatus.cpp : \
+ "..\..\..\include\m_awaymsg.h"\
+ "..\..\..\include\m_button.h"\
+ "..\..\..\include\m_clist.h"\
+ "..\..\..\include\m_database.h"\
+ "..\..\..\include\m_langpack.h"\
+ "..\..\..\include\m_netlib.h"\
+ "..\..\..\include\m_options.h"\
+ "..\..\..\include\m_plugins.h"\
+ "..\..\..\include\m_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_trigger.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\keepstatus.h"\
+ ".\version.h"\
+ {$(INCLUDE)}"ipexport.h"\
+
+
+.\vc6.rc : \
+ "..\resource.rc"\
+
diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus.dsp b/plugins/StatusPlugins/KeepStatus/KeepStatus.dsp new file mode 100644 index 0000000000..b28b7b2c48 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus.dsp @@ -0,0 +1,249 @@ +# Microsoft Developer Studio Project File - Name="KeepStatus" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=KeepStatus - Win32 Debug Unicode
+!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 "KeepStatus.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 "KeepStatus.mak" CFG="KeepStatus - Win32 Debug Unicode"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "KeepStatus - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "KeepStatus - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "KeepStatus - Win32 Debug Unicode" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "KeepStatus - Win32 Release Unicode" (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)" == "KeepStatus - 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 1
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Yu"../commonstatus.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /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 comctl32.lib msvcrt.lib wininet.lib Delayimp.lib ws2_32.lib /nologo /base:"0x11cd0000" /dll /debug /machine:I386 /nodefaultlib /out:"../../../bin/release/plugins/KeepStatus.dll" /delayload:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "KeepStatus - 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 1
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR /Yu"../commonstatus.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /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 comctl32.lib wininet.lib Delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/debug/plugins/KeepStatus.dll" /pdbtype:sept /DelayLoad:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "KeepStatus___Win32_Debug_Unicode"
+# PROP BASE Intermediate_Dir "KeepStatus___Win32_Debug_Unicode"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug_Unicode"
+# PROP Intermediate_Dir "Debug_Unicode"
+# PROP Ignore_Export_Lib 1
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR /Yu"../commonstatus.h" /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR /Yu"../commonstatus.h" /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 comctl32.lib wininet.lib Delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/debug/plugins/KeepStatus.dll" /pdbtype:sept /DelayLoad:wininet.dll
+# SUBTRACT BASE LINK32 /pdb:none
+# ADD LINK32 comctl32.lib wininet.lib Delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /debug /machine:I386 /out:"../../../bin/Debug Unicode/plugins/KeepStatus.dll" /pdbtype:sept /DelayLoad:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "KeepStatus___Win32_Release_Unicode"
+# PROP BASE Intermediate_Dir "KeepStatus___Win32_Release_Unicode"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release_Unicode"
+# PROP Intermediate_Dir "Release_Unicode"
+# PROP Ignore_Export_Lib 1
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Yu"../commonstatus.h" /FD /c
+# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Yu"../commonstatus.h" /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /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 comctl32.lib msvcrt.lib wininet.lib Delayimp.lib ws2_32.lib /nologo /base:"0x11cd0000" /dll /debug /machine:I386 /nodefaultlib /out:"../../../bin/release/plugins/KeepStatus.dll" /delayload:wininet.dll
+# SUBTRACT BASE LINK32 /pdb:none
+# 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 comctl32.lib msvcrt.lib wininet.lib Delayimp.lib ws2_32.lib /nologo /base:"0x11cd0000" /dll /debug /machine:I386 /nodefaultlib /out:"../../../bin/Release Unicode/plugins/KeepStatus.dll" /delayload:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "KeepStatus - Win32 Release"
+# Name "KeepStatus - Win32 Debug"
+# Name "KeepStatus - Win32 Debug Unicode"
+# Name "KeepStatus - Win32 Release Unicode"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\action_keepstatus.cpp
+# ADD CPP /Yu"../commonstatus.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\commonstatus.cpp
+# ADD CPP /Yu"commonstatus.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\confirmdialog.cpp
+# ADD CPP /Yu"commonstatus.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\helpers\gen_helpers.cpp
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=.\keepstatus.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\main.cpp
+# ADD CPP /Yc"../commonstatus.h"
+# End Source File
+# Begin Source File
+
+SOURCE=.\options.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\trigger_keepstatus.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\commonstatus.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\keepstatus.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\m_statusplugins.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\resource.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=.\vc6.rc
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\Release\KeepStatus.txt
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+# PROP BASE Exclude_From_Build 1
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+# PROP BASE Exclude_From_Build 1
+# PROP Exclude_From_Build 1
+
+!ENDIF
+
+# End Source File
+# End Target
+# End Project
diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus.mak b/plugins/StatusPlugins/KeepStatus/KeepStatus.mak new file mode 100644 index 0000000000..b5690093c8 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus.mak @@ -0,0 +1,653 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on KeepStatus.dsp
+!IF "$(CFG)" == ""
+CFG=KeepStatus - Win32 Debug Unicode
+!MESSAGE No configuration specified. Defaulting to KeepStatus - Win32 Debug Unicode.
+!ENDIF
+
+!IF "$(CFG)" != "KeepStatus - Win32 Release" && "$(CFG)" != "KeepStatus - Win32 Debug" && "$(CFG)" != "KeepStatus - Win32 Debug Unicode" && "$(CFG)" != "KeepStatus - Win32 Release Unicode"
+!MESSAGE Invalid configuration "$(CFG)" specified.
+!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 "KeepStatus.mak" CFG="KeepStatus - Win32 Debug Unicode"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "KeepStatus - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "KeepStatus - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "KeepStatus - Win32 Debug Unicode" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "KeepStatus - Win32 Release Unicode" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+!ERROR An invalid configuration is specified.
+!ENDIF
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE
+NULL=nul
+!ENDIF
+
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\bin\release\plugins\KeepStatus.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\action_keepstatus.obj"
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\keepstatus.obj"
+ -@erase "$(INTDIR)\KeepStatus.pch"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\trigger_keepstatus.obj"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\KeepStatus.exp"
+ -@erase "$(OUTDIR)\KeepStatus.pdb"
+ -@erase "..\..\..\bin\release\plugins\KeepStatus.dll"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\vc6.res" /d "NDEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\KeepStatus.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib wininet.lib Delayimp.lib ws2_32.lib /nologo /base:"0x11cd0000" /dll /incremental:no /pdb:"$(OUTDIR)\KeepStatus.pdb" /debug /machine:I386 /nodefaultlib /out:"../../../bin/release/plugins/KeepStatus.dll" /implib:"$(OUTDIR)\KeepStatus.lib" /delayload:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\action_keepstatus.obj" \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\keepstatus.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\trigger_keepstatus.obj" \
+ "$(INTDIR)\vc6.res"
+
+"..\..\..\bin\release\plugins\KeepStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\bin\debug\plugins\KeepStatus.dll" "$(OUTDIR)\KeepStatus.bsc"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\action_keepstatus.obj"
+ -@erase "$(INTDIR)\action_keepstatus.sbr"
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\commonstatus.sbr"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\confirmdialog.sbr"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\gen_helpers.sbr"
+ -@erase "$(INTDIR)\keepstatus.obj"
+ -@erase "$(INTDIR)\KeepStatus.pch"
+ -@erase "$(INTDIR)\keepstatus.sbr"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\main.sbr"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\options.sbr"
+ -@erase "$(INTDIR)\trigger_keepstatus.obj"
+ -@erase "$(INTDIR)\trigger_keepstatus.sbr"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\KeepStatus.bsc"
+ -@erase "$(OUTDIR)\KeepStatus.exp"
+ -@erase "$(OUTDIR)\KeepStatus.pdb"
+ -@erase "..\..\..\bin\debug\plugins\KeepStatus.dll"
+ -@erase "..\..\..\bin\debug\plugins\KeepStatus.ilk"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\vc6.res" /d "_DEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\KeepStatus.bsc"
+BSC32_SBRS= \
+ "$(INTDIR)\action_keepstatus.sbr" \
+ "$(INTDIR)\commonstatus.sbr" \
+ "$(INTDIR)\confirmdialog.sbr" \
+ "$(INTDIR)\gen_helpers.sbr" \
+ "$(INTDIR)\keepstatus.sbr" \
+ "$(INTDIR)\main.sbr" \
+ "$(INTDIR)\options.sbr" \
+ "$(INTDIR)\trigger_keepstatus.sbr"
+
+"$(OUTDIR)\KeepStatus.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+ $(BSC32) @<<
+ $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=comctl32.lib wininet.lib Delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\KeepStatus.pdb" /debug /machine:I386 /out:"../../../bin/debug/plugins/KeepStatus.dll" /implib:"$(OUTDIR)\KeepStatus.lib" /pdbtype:sept /DelayLoad:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\action_keepstatus.obj" \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\keepstatus.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\trigger_keepstatus.obj" \
+ "$(INTDIR)\vc6.res"
+
+"..\..\..\bin\debug\plugins\KeepStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+OUTDIR=.\Debug_Unicode
+INTDIR=.\Debug_Unicode
+# Begin Custom Macros
+OutDir=.\Debug_Unicode
+# End Custom Macros
+
+ALL : "..\..\..\bin\Debug Unicode\plugins\KeepStatus.dll" "$(OUTDIR)\KeepStatus.bsc"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\action_keepstatus.obj"
+ -@erase "$(INTDIR)\action_keepstatus.sbr"
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\commonstatus.sbr"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\confirmdialog.sbr"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\gen_helpers.sbr"
+ -@erase "$(INTDIR)\keepstatus.obj"
+ -@erase "$(INTDIR)\KeepStatus.pch"
+ -@erase "$(INTDIR)\keepstatus.sbr"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\main.sbr"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\options.sbr"
+ -@erase "$(INTDIR)\trigger_keepstatus.obj"
+ -@erase "$(INTDIR)\trigger_keepstatus.sbr"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\KeepStatus.bsc"
+ -@erase "$(OUTDIR)\KeepStatus.exp"
+ -@erase "$(OUTDIR)\KeepStatus.pdb"
+ -@erase "..\..\..\bin\Debug Unicode\plugins\KeepStatus.dll"
+ -@erase "..\..\..\bin\Debug Unicode\plugins\KeepStatus.ilk"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\vc6.res" /d "_DEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\KeepStatus.bsc"
+BSC32_SBRS= \
+ "$(INTDIR)\action_keepstatus.sbr" \
+ "$(INTDIR)\commonstatus.sbr" \
+ "$(INTDIR)\confirmdialog.sbr" \
+ "$(INTDIR)\gen_helpers.sbr" \
+ "$(INTDIR)\keepstatus.sbr" \
+ "$(INTDIR)\main.sbr" \
+ "$(INTDIR)\options.sbr" \
+ "$(INTDIR)\trigger_keepstatus.sbr"
+
+"$(OUTDIR)\KeepStatus.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+ $(BSC32) @<<
+ $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=comctl32.lib wininet.lib Delayimp.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\KeepStatus.pdb" /debug /machine:I386 /out:"../../../bin/Debug Unicode/plugins/KeepStatus.dll" /implib:"$(OUTDIR)\KeepStatus.lib" /pdbtype:sept /DelayLoad:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\action_keepstatus.obj" \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\keepstatus.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\trigger_keepstatus.obj" \
+ "$(INTDIR)\vc6.res"
+
+"..\..\..\bin\Debug Unicode\plugins\KeepStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+OUTDIR=.\Release_Unicode
+INTDIR=.\Release_Unicode
+
+ALL : "..\..\..\bin\Release Unicode\plugins\KeepStatus.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\action_keepstatus.obj"
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\keepstatus.obj"
+ -@erase "$(INTDIR)\KeepStatus.pch"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\trigger_keepstatus.obj"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\KeepStatus.exp"
+ -@erase "$(OUTDIR)\KeepStatus.pdb"
+ -@erase "..\..\..\bin\Release Unicode\plugins\KeepStatus.dll"
+
+"$(OUTDIR)" :
+ if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
+RSC_PROJ=/l 0x409 /fo"$(INTDIR)\vc6.res" /d "NDEBUG"
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\KeepStatus.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib wininet.lib Delayimp.lib ws2_32.lib /nologo /base:"0x11cd0000" /dll /incremental:no /pdb:"$(OUTDIR)\KeepStatus.pdb" /debug /machine:I386 /nodefaultlib /out:"../../../bin/Release Unicode/plugins/KeepStatus.dll" /implib:"$(OUTDIR)\KeepStatus.lib" /delayload:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\action_keepstatus.obj" \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\keepstatus.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\trigger_keepstatus.obj" \
+ "$(INTDIR)\vc6.res"
+
+"..\..\..\bin\Release Unicode\plugins\KeepStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ENDIF
+
+.c{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.obj::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.c{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cpp{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+.cxx{$(INTDIR)}.sbr::
+ $(CPP) @<<
+ $(CPP_PROJ) $<
+<<
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("KeepStatus.dep")
+!INCLUDE "KeepStatus.dep"
+!ELSE
+!MESSAGE Warning: cannot find "KeepStatus.dep"
+!ENDIF
+!ENDIF
+
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release" || "$(CFG)" == "KeepStatus - Win32 Debug" || "$(CFG)" == "KeepStatus - Win32 Debug Unicode" || "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+SOURCE=.\action_keepstatus.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\action_keepstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\action_keepstatus.obj" "$(INTDIR)\action_keepstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\action_keepstatus.obj" "$(INTDIR)\action_keepstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\action_keepstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF
+
+SOURCE=..\commonstatus.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\commonstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\commonstatus.obj" "$(INTDIR)\commonstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\commonstatus.obj" "$(INTDIR)\commonstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\commonstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF
+
+SOURCE=..\confirmdialog.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\confirmdialog.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\confirmdialog.obj" "$(INTDIR)\confirmdialog.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\confirmdialog.obj" "$(INTDIR)\confirmdialog.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Fp"$(INTDIR)\KeepStatus.pch" /Yu"commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\confirmdialog.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF
+
+SOURCE=..\..\helpers\gen_helpers.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\gen_helpers.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\gen_helpers.obj" "$(INTDIR)\gen_helpers.sbr" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\gen_helpers.obj" "$(INTDIR)\gen_helpers.sbr" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\gen_helpers.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF
+
+SOURCE=.\keepstatus.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+
+"$(INTDIR)\keepstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+
+"$(INTDIR)\keepstatus.obj" "$(INTDIR)\keepstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+
+"$(INTDIR)\keepstatus.obj" "$(INTDIR)\keepstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+
+"$(INTDIR)\keepstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ENDIF
+
+SOURCE=.\main.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /Fp"$(INTDIR)\KeepStatus.pch" /Yc"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\main.obj" "$(INTDIR)\KeepStatus.pch" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "KEEPSTATUS_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yc"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\main.obj" "$(INTDIR)\main.sbr" "$(INTDIR)\KeepStatus.pch" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../include" /I "../includes" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\KeepStatus.pch" /Yc"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
+
+"$(INTDIR)\main.obj" "$(INTDIR)\main.sbr" "$(INTDIR)\KeepStatus.pch" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+CPP_SWITCHES=/nologo /MD /W3 /GX /Zi /O1 /I "../../../include" /I "../includes" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /D "_USRDLL" /Fp"$(INTDIR)\KeepStatus.pch" /Yc"../commonstatus.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
+
+"$(INTDIR)\main.obj" "$(INTDIR)\KeepStatus.pch" : $(SOURCE) "$(INTDIR)"
+ $(CPP) @<<
+ $(CPP_SWITCHES) $(SOURCE)
+<<
+
+
+!ENDIF
+
+SOURCE=.\options.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+
+"$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+
+"$(INTDIR)\options.obj" "$(INTDIR)\options.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+
+"$(INTDIR)\options.obj" "$(INTDIR)\options.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+
+"$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ENDIF
+
+SOURCE=.\trigger_keepstatus.cpp
+
+!IF "$(CFG)" == "KeepStatus - Win32 Release"
+
+
+"$(INTDIR)\trigger_keepstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug"
+
+
+"$(INTDIR)\trigger_keepstatus.obj" "$(INTDIR)\trigger_keepstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Debug Unicode"
+
+
+"$(INTDIR)\trigger_keepstatus.obj" "$(INTDIR)\trigger_keepstatus.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ELSEIF "$(CFG)" == "KeepStatus - Win32 Release Unicode"
+
+
+"$(INTDIR)\trigger_keepstatus.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\KeepStatus.pch"
+
+
+!ENDIF
+
+SOURCE=.\vc6.rc
+
+"$(INTDIR)\vc6.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+
+!ENDIF
+
diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus.txt b/plugins/StatusPlugins/KeepStatus/KeepStatus.txt new file mode 100644 index 0000000000..55b3992487 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus.txt @@ -0,0 +1,145 @@ +KeepStatus plugin for Miranda IM v0.0.2.x
+unregistered@users.sourceforge.net
+
+--- About ---
+
+KeepStatus, a connection checker, for use with (or without)
+StartupStatus and/or AdvancedAutoAway.
+
+--- Usage ---
+
+There are two tabs in the options screen, one with basic options, and
+one with advanced options.
+
+The Basic Tab:
+
+[] Show popups, this will make use of the popup plugin to notify you
+in case of a connection loss or reconnect attempt.
+
+[] Check connection, with this option you can enable or disable the
+plugin.
+
+[count] Max. retries, in case connection is lost, this number of
+reconnect attempts will be made to restore the connection.
+
+[secs] Delay between retries, the number of seconds to wait before a
+new attempt is made.
+
+[] Don't reconnect if no internet connection seems available, if
+enabled, KS will not reconnect if Windows reports that no internet
+connection is available.
+
+[] Continuesly check for internet connection, if enables, KS will keep
+looking for a connection, either by asking Windows, or by pinging a
+host. You can specify multiple hosts by seperating them with
+spaces. If one host replies, a connection is assumed to be available.
+
+Note: All dial-up options are experimental. I cannot test these
+myself. Please let me know if you encounter problems with it (and you
+are willing to run some tests ;) )
+
+The Advanced Tab:
+
+[] Increase delay exponential, if enabled, the delay is multiplied by
+2 after each check. So checks are made at t=10, t=20, t=40, t=40,
+t=40, etc. if "Max. delay" = 40, "Initial delay" = 10, and connection
+was lost at t=0.
+
+[secs] Max. delay, the maximum delay allowed in case "increase delay
+exponential" is enabled.
+
+[secs] Max. protocol connecting time, -experimental-, this is the
+maximum number of seconds a protocol is allowed to be in the
+"connecting state" during a reconnect attempt. After this time, KS
+will force the protocol offline and make a new connection attempt.
+
+[] Ignore locked status of protocols, if enabled, KS will reconnect
+protocols in case of a global status change, even if they are locked
+by the clist (nicer/modern). You can enable this if protocols don't
+reconnect properly after a global status change using a clist that
+doesn't support locking.
+
+[] Set protocol offline before a connection attempt, this will force a
+protocol offline, before KS tries to restore its connection.
+
+[] Cancel all if a protocol connects from another location, this will
+not reconnect any of the protocols if one of them is connected from
+another location. The reason for this option is because not all
+protocols can detect a second login.
+
+[] Reconnect on APM resume, will reconnect you when you come back from
+standby or hibernation. If it for some reason fails, please try
+another clist.
+
+[] React on login errors, influences the way KS deals with login
+errors (default is to keep retrying). A login error can be "wrong
+password" or "server busy" for example.
+
+() Stop trying to reconnect, cancels reconnecting for the protocol.
+
+() Set delay to [secs], this will (possibly) increase the delay before
+a new attempt is made to restore the connection.
+
+Consider connection lost after [count] failed pings, tells KS how many
+ping attempts must fail before the connection should be considered
+"lost" and need to be restored.
+
+[secs] Continuously check interval, the delay between two pings.
+
+--- Notes ---
+
+All options regarding dial-up connections are experimental.
+
+--- Changelog ---
+
+0.0.2.92: - fixes for Miranda 0.8 (added MUID)
+ - some minor fixes.
+
+0.0.2.85: - Different handling of timers
+ - Partitial locked status support (full support requires changes in core)
+ - Fix 'random' crash
+
+0.0.2.74: - A few more fixes
+
+0.0.2.73: - Fix when setting no status message
+
+0.0.2.72: - Fix options dialog glitch
+
+0.0.2.71: - Several bug fixes
+ - Added options for continuously checking
+ - Support for "protocol locking" by clist
+ - Better NAS support (requires NAS v0.3.7.2 (build 2338; April 30, 2006))
+ - Added more convenient service for developers MS_KS_ANNOUNCESTATUSCHANGE
+ - Popups stay until next retry if delay is set to 0
+ - Added option "Max. connecting time", see documentation
+ - Added option to set protocol offline before reconnecting
+ - Set global status when possible
+ - Ping using ICMP instead of using InternetCheckConnection.
+
+0.0.2.4: - popups now show the icon of the first protocol that is about to be reconnected
+ - added popup option to show additional info in popup
+
+0.0.2.3: - you can now change the delay when a login error occurs
+
+0.0.2.2: - many bugfixes (with great help of weinstock and ghazan)
+ - added option to check internet connection by pinging
+ - added more options for popups
+ - added option to reconnect on APM resume (standby, hibernate)
+
+0.0.1.0: - doesn't reconnect when logged in from another location
+ - Added: option reconnect on login failures
+
+0.0.0.4: - fixed: now also works with popups disabled. (thanks to Stefan Waldmann)
+
+0.0.0.3: - Added support for PluginUninstaller
+ - bug fixes
+
+0.0.0.2: - Several bug fixes
+ - Better menu handling
+ - Fixed: Jabber/Tlen support (not in combination with (current) awaysys!)
+
+0.0.0.1: - First release without StartupStatus
+
+--- Disclaimer ---
+
+If something terrible happens, don't blame me.
\ No newline at end of file diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus.vcproj b/plugins/StatusPlugins/KeepStatus/KeepStatus.vcproj new file mode 100644 index 0000000000..77b3d00a76 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus.vcproj @@ -0,0 +1,514 @@ +<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="KeepStatus"
+ ProjectGUID="{D548A54E-310B-4A86-A545-64BDD5748745}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2"
+ WholeProgramOptimization="TRUE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ GlobalOptimizations="TRUE"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ OmitFramePointers="FALSE"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="TRUE"
+ ExceptionHandling="FALSE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="TRUE"
+ AdditionalDependencies="vc7to6.lib comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="../../../lib"
+ IgnoreAllDefaultLibraries="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="TRUE"
+ GenerateMapFile="TRUE"
+ MapFileName="$(OutDir)/$(ProjectName).map"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ BaseAddress="0x11cd0000"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="commonstatus.h"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="TRUE"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="TRUE"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="1">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="commonstatus.h"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="TRUE"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="TRUE"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="1"
+ WholeProgramOptimization="FALSE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ GlobalOptimizations="TRUE"
+ FavorSizeOrSpeed="2"
+ OmitFramePointers="FALSE"
+ OptimizeForProcessor="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="TRUE"
+ ExceptionHandling="FALSE"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="TRUE"
+ AdditionalDependencies="vc7to6.lib comctl32.lib wsock32.lib wininet.lib"
+ AdditionalLibraryDirectories="../../../lib"
+ IgnoreAllDefaultLibraries="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="TRUE"
+ GenerateMapFile="TRUE"
+ MapFileName="$(OutDir)/$(ProjectName).map"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ BaseAddress="0x11cd0000"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath=".\action_keepstatus.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\commonstatus.cpp">
+ </File>
+ <File
+ RelativePath="..\confirmdialog.cpp">
+ </File>
+ <File
+ RelativePath="..\..\helpers\gen_helpers.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="keepstatus.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\main.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="options.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\trigger_keepstatus.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath=".\buildnumber.h">
+ </File>
+ <File
+ RelativePath="..\commonstatus.h">
+ </File>
+ <File
+ RelativePath="keepstatus.h">
+ </File>
+ <File
+ RelativePath="..\m_statusplugins.h">
+ </File>
+ <File
+ RelativePath="..\resource.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ <File
+ RelativePath="..\resource.rc">
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus_10.vcxproj b/plugins/StatusPlugins/KeepStatus/KeepStatus_10.vcxproj new file mode 100644 index 0000000000..c94342c8a3 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus_10.vcxproj @@ -0,0 +1,467 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug Unicode|Win32">
+ <Configuration>Debug Unicode</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug Unicode|x64">
+ <Configuration>Debug Unicode</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Unicode|Win32">
+ <Configuration>Release Unicode</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release Unicode|x64">
+ <Configuration>Release Unicode</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectName>KeepStatus</ProjectName>
+ <ProjectGuid>{D548A54E-310B-4A86-A545-64BDD5748745}</ProjectGuid>
+ <RootNamespace>KeepStatus</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</IgnoreImportLibrary>
+ <GenerateManifest Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</GenerateManifest>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</IgnoreImportLibrary>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">true</IgnoreImportLibrary>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">$(SolutionDir)$(Configuration)/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">$(SolutionDir)$(Configuration)/Obj/$(ProjectName)\</IntDir>
+ <IgnoreImportLibrary Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">true</IgnoreImportLibrary>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">$(SolutionDir)$(Configuration)64/Obj/$(ProjectName)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Release/KeepStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapFileName>$(OutDir)$(ProjectName).map</MapFileName>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <BaseAddress>0x11cd0000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Debug/KeepStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Debug/KeepStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\Release/KeepStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;4100;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <BaseAddress>0x11cd0000</BaseAddress>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <ExceptionHandling>false</ExceptionHandling>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <StringPooling>true</StringPooling>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <ExceptionHandling>false</ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <StringPooling>true</StringPooling>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>comctl32.lib;wsock32.lib;wininet.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="action_keepstatus.cpp">
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="..\commonstatus.cpp" />
+ <ClCompile Include="..\confirmdialog.cpp" />
+ <ClCompile Include="..\..\helpers\gen_helpers.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="keepstatus.cpp">
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="main.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="options.cpp">
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ <ClCompile Include="trigger_keepstatus.cpp">
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../commonstatus.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\commonstatus.h" />
+ <ClInclude Include="keepstatus.h" />
+ <ClInclude Include="..\m_statusplugins.h" />
+ <ClInclude Include="..\resource.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\resource.rc" />
+ <ResourceCompile Include="..\version.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus_10.vcxproj.filters b/plugins/StatusPlugins/KeepStatus/KeepStatus_10.vcxproj.filters new file mode 100644 index 0000000000..5c1e406d7f --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus_10.vcxproj.filters @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{6fb49235-e0f0-4889-b5d7-c5f7a5b3a95f}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{be845fa0-70f3-4168-9620-2f231e2702af}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{3795d706-cfb9-43c3-a967-b0759da5b8af}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="action_keepstatus.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\commonstatus.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\confirmdialog.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\helpers\gen_helpers.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="keepstatus.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="options.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="trigger_keepstatus.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\commonstatus.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="keepstatus.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\m_statusplugins.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\resource.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ <ResourceCompile Include="..\version.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project>
\ No newline at end of file diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus_8.vcproj b/plugins/StatusPlugins/KeepStatus/KeepStatus_8.vcproj new file mode 100644 index 0000000000..ccfbe086b7 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus_8.vcproj @@ -0,0 +1,810 @@ +<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="KeepStatus"
+ ProjectGUID="{D548A54E-310B-4A86-A545-64BDD5748745}"
+ RootNamespace="KeepStatus"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ OmitFramePointers="true"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ LinkIncremental="0"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/$(ProjectName).map"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ BaseAddress="0x11cd0000"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ LinkIncremental="0"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/$(ProjectName).map"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ BaseAddress="0x11cd0000"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath=".\action_keepstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\commonstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="1"
+ BrowseInformation="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\confirmdialog.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\helpers\gen_helpers.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="keepstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;KEEPSTATUS_EXPORTS;$(NoInherit)"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\main.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="options.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\trigger_keepstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\commonstatus.h"
+ >
+ </File>
+ <File
+ RelativePath="keepstatus.h"
+ >
+ </File>
+ <File
+ RelativePath="..\m_statusplugins.h"
+ >
+ </File>
+ <File
+ RelativePath="..\resource.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="..\resource.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Test\Miranda\miranda\plugins\KeepStatus"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Test\Miranda\miranda\plugins\KeepStatus"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Test\Miranda\miranda\plugins\KeepStatus"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Test\Miranda\miranda\plugins\KeepStatus"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/StatusPlugins/KeepStatus/KeepStatus_9.vcproj b/plugins/StatusPlugins/KeepStatus/KeepStatus_9.vcproj new file mode 100644 index 0000000000..262f466d06 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/KeepStatus_9.vcproj @@ -0,0 +1,1293 @@ +<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="KeepStatus"
+ ProjectGUID="{D548A54E-310B-4A86-A545-64BDD5748745}"
+ RootNamespace="KeepStatus"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ FloatingPointModel="2"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/$(ProjectName).map"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ LinkTimeCodeGeneration="1"
+ BaseAddress="0x11cd0000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|x64"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)64/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)64/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ FloatingPointModel="2"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ GenerateMapFile="true"
+ MapFileName="$(OutDir)/$(ProjectName).map"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ LinkTimeCodeGeneration="1"
+ BaseAddress="0x11cd0000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|x64"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)64/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)64/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug Unicode|x64"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)64/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)64/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Debug/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Unicode|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ FloatingPointModel="2"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996;4100"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ GenerateManifest="false"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ LinkTimeCodeGeneration="1"
+ BaseAddress="0x11cd0000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release Unicode|x64"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)64/Plugins"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)64/Obj/$(ProjectName)"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="true"
+ SuppressStartupBanner="true"
+ TargetEnvironment="3"
+ TypeLibraryName=".\Release/KeepStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include;../includes;"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;KEEPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ FloatingPointModel="2"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4996;4100"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="comctl32.lib wsock32.lib wininet.lib"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ LinkTimeCodeGeneration="1"
+ BaseAddress="0x11cd0000"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ ImportLibrary="$(IntDir)/$(TargetName).lib"
+ TargetMachine="17"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath=".\action_keepstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\commonstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\confirmdialog.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\..\helpers\gen_helpers.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="keepstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\main.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="options.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ BrowseInformation="1"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\trigger_keepstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\commonstatus.h"
+ >
+ </File>
+ <File
+ RelativePath="keepstatus.h"
+ >
+ </File>
+ <File
+ RelativePath="..\m_statusplugins.h"
+ >
+ </File>
+ <File
+ RelativePath="..\resource.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="..\resource.rc"
+ >
+ </File>
+ <File
+ RelativePath="..\version.rc"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/StatusPlugins/KeepStatus/action_keepstatus.cpp b/plugins/StatusPlugins/KeepStatus/action_keepstatus.cpp new file mode 100644 index 0000000000..ac5368dff9 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/action_keepstatus.cpp @@ -0,0 +1,185 @@ +#include "../commonstatus.h"
+#include "keepstatus.h"
+#include "../resource.h"
+#include "../../NewTriggerPlugin/m_trigger.h"
+#include "../../helpers/db_helpers.h"
+
+extern HINSTANCE hInst;
+
+#define STR_PROTOFROMTRIGGER "PROTO_FT"
+#define SETTING_PROTO_ENABLED "proto_Enabled"
+
+static BOOL ProtocolEnabled(DWORD id, char *szPrefix, REPORTINFO *ri, char *szProto)
+{
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s%u_%s_%s", szPrefix, id, szProto, SETTING_PROTO_ENABLED);
+ if (db_getb(dbSetting, 0))
+ return TRUE;
+
+ if ( ri != NULL && ri->td != NULL && (ri->td->dFlags & DF_PROTO) && !strcmp(szProto, ri->td->szProto)) {
+ _snprintf(dbSetting, sizeof(dbSetting), "%s%u_%s_%s", szPrefix, id, STR_PROTOFROMTRIGGER, SETTING_PROTO_ENABLED);
+ return db_getb(dbSetting, 0);
+ }
+
+ return FALSE;
+}
+
+static void BuildProtoList(HWND hList, BOOL bFromTrigger, char* szPrefix, DWORD id)
+{
+ ListView_SetExtendedListViewStyleEx(hList, LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES, LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES);
+
+ LVCOLUMN lvCol = { 0 };
+ lvCol.mask = LVCF_TEXT;
+ lvCol.pszText = TranslateT("Protocol");
+ ListView_InsertColumn(hList, 0, &lvCol);
+
+ LVITEM lvItem = { 0 };
+ lvItem.mask = LVIF_TEXT|LVIF_PARAM;
+ lvItem.iItem = 0;
+ lvItem.iSubItem = 0;
+
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ char dbSetting[128];
+
+ for( int i=0; i < count; i++ ) {
+ if ( !IsSuitableProto( protos[i] ))
+ continue;
+
+ lvItem.pszText = Hlp_GetProtocolName( protos[i]->szModuleName );
+ lvItem.lParam = (LPARAM)protos[i]->szModuleName;
+ ListView_InsertItem(hList, &lvItem);
+
+ _snprintf(dbSetting, sizeof(dbSetting), "%s%u_%s_%s", szPrefix, id, protos[i]->szModuleName, SETTING_PROTO_ENABLED);
+ ListView_SetCheckState(hList, lvItem.iItem, db_getb(dbSetting, 0));
+ ListView_SetItem(hList, &lvItem);
+ lvItem.iItem++;
+ if (lvItem.pszText != NULL)
+ free(lvItem.pszText);
+ }
+ if (bFromTrigger) {
+ lvItem.pszText = TranslateT("<from trigger>");
+ ListView_InsertItem(hList, &lvItem);
+ lvItem.lParam = (LPARAM)STR_PROTOFROMTRIGGER;
+ _snprintf(dbSetting, sizeof(dbSetting), "%s%u_%s_%s", szPrefix, id, STR_PROTOFROMTRIGGER, SETTING_PROTO_ENABLED);
+ ListView_SetCheckState(hList, lvItem.iItem, db_getb(dbSetting, 0));
+ ListView_SetItem(hList, &lvItem);
+ lvItem.iItem++;
+ }
+ ListView_SetColumnWidth(hList, 0, LVSCW_AUTOSIZE);
+}
+
+static void SaveProtoList(HWND hList, char *szPrefix, DWORD id)
+{
+ LVITEM lvItem = { 0 };
+ lvItem.mask = LVIF_PARAM;
+ lvItem.iSubItem=0;
+ for ( int i=0; i < ListView_GetItemCount(hList); i++ ) {
+ lvItem.iItem=i;
+ if (ListView_GetItem(hList, &lvItem) == FALSE)
+ continue;
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s%u_%s_%s", szPrefix, id, (const char*)lvItem.lParam, SETTING_PROTO_ENABLED);
+ if (ListView_GetCheckState(hList, lvItem.iItem))
+ db_setb(dbSetting, TRUE);
+ else {
+ log_debugA("deleting: %s", dbSetting);
+ db_del(dbSetting);
+ }
+ }
+}
+
+static INT_PTR CALLBACK DlgProcOptsActionKeepStatus(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
+
+ switch (msg) {
+ case WM_INITDIALOG: {
+ DWORD actionID;
+ TRIGGERINFO ti;
+
+ TranslateDialogDefault(hwndDlg);
+ actionID = (DWORD)lParam;
+ ZeroMemory(&ti, sizeof(TRIGGERINFO));
+ ti.cbSize = sizeof(TRIGGERINFO);
+ SendMessage(GetParent(hwndDlg), TM_GETTRIGGERINFO, 0, (LPARAM)&ti);
+ BuildProtoList(GetDlgItem(hwndDlg, IDC_PROTOLIST), ti.dFlags&DF_PROTO?TRUE:FALSE, PREFIX_ACTIONID, actionID);
+ CheckRadioButton(hwndDlg, IDC_ENABLECHECKING, IDC_DISABLECHECKING, DBGetActionSettingByte(actionID, NULL, MODULENAME, SETTING_ENABLECHECKING, FALSE)?IDC_ENABLECHECKING:IDC_DISABLECHECKING);
+ break;
+ }
+
+ case TM_ADDACTION: { // save the settings
+ DWORD actionID;
+
+ actionID = (DWORD)wParam;
+ DBWriteActionSettingByte(actionID, NULL, MODULENAME, SETTING_ENABLECHECKING, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_ENABLECHECKING));
+ SaveProtoList(GetDlgItem(hwndDlg, IDC_PROTOLIST), PREFIX_ACTIONID, actionID);
+ break;
+ }
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam)) {
+ case IDC_ENABLECHECKING:
+ case IDC_DISABLECHECKING:
+ CheckRadioButton(hwndDlg, IDC_ENABLECHECKING, IDC_DISABLECHECKING, LOWORD(wParam));
+ break;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+static int TriggerChecking(DWORD actionID, REPORTINFO *ri)
+{
+ if (ri->flags & ACT_PERFORM) {
+ BOOL checking = DBGetActionSettingByte(actionID, NULL, MODULENAME, SETTING_ENABLECHECKING, FALSE);
+
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ for( int i=0; i <count; i++ ) {
+ if ( !IsSuitableProto( protos[i] ))
+ continue;
+
+ if (!ProtocolEnabled(actionID, PREFIX_ACTIONID, ri, protos[i]->szModuleName))
+ continue;
+
+ CallService(MS_KS_ENABLEPROTOCOL, (WPARAM)checking, (LPARAM)protos[i]->szModuleName);
+ }
+ }
+ if (ri->flags & ACT_CLEANUP) {
+ REMOVETRIGGERSETTINGS ras;
+ ras.cbSize = sizeof(REMOVETRIGGERSETTINGS);
+ ras.prefix = PREFIX_ACTIONID;
+ ras.id = actionID;
+ ras.hContact = NULL;
+ ras.szModule = MODULENAME;
+ CallService(MS_TRIGGER_REMOVESETTINGS, 0, (LPARAM)&ras);
+ }
+
+ return 0;
+}
+
+int RegisterAction()
+{
+ if (!ServiceExists(MS_TRIGGER_REGISTERACTION))
+ return -1;
+
+ ACTIONREGISTER ai;
+ ai.cbSize = sizeof(ai);
+ ai.pszName = "KeepStatus: Enable/disable checking";
+ ai.hInstance = hInst;
+ ai.pfnDlgProc = DlgProcOptsActionKeepStatus;
+ ai.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_KS_ACTION);
+ ai.flags = ARF_FUNCTION;
+ ai.actionFunction = TriggerChecking;
+ return CallService(MS_TRIGGER_REGISTERACTION, 0, (LPARAM)&ai);
+}
+
+int DeInitAction() {
+
+ return 0;
+}
diff --git a/plugins/StatusPlugins/KeepStatus/keepstatus.cpp b/plugins/StatusPlugins/KeepStatus/keepstatus.cpp new file mode 100644 index 0000000000..9aaaf39195 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/keepstatus.cpp @@ -0,0 +1,1335 @@ +/*
+ KeepStatus Plugin for Miranda-IM (www.miranda-im.org)
+ Copyright 2003-2006 P. Boon
+
+ 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 "../commonstatus.h"
+#include "keepstatus.h"
+#include "../resource.h"
+
+struct TimerInfo {
+ int timer;
+ int timeout;
+ BOOL restart;
+ int result;
+ HANDLE hEvent;
+};
+
+static CRITICAL_SECTION GenTimerCS, GenStatusCS, CheckContinueslyCS;
+
+static HANDLE hOptionsHook = NULL;
+static HANDLE hShutdownHook = NULL;
+static HANDLE hAccChangeHook = NULL;
+static HANDLE hProtoAckHook = NULL;
+static HANDLE hStatusChangeHook = NULL;
+static HANDLE hCSStatusChangeHook = NULL;
+static HANDLE hCSStatusChangeExHook = NULL;
+
+extern HANDLE hConnectionEvent;
+extern PLUGININFOEX pluginInfoEx;
+
+static HWND hMessageWindow = NULL;
+
+// variables (general)
+static int CompareConnections( const TConnectionSettings* p1, const TConnectionSettings* p2 )
+{ return lstrcmpA( p1->szName, p2->szName );
+}
+
+static OBJLIST<TConnectionSettings> connectionSettings( 10, CompareConnections );
+
+static UINT_PTR checkConnectionTimerId = 0;
+static UINT_PTR afterCheckTimerId = 0;
+static UINT_PTR processAckTimerId = 0;
+static UINT_PTR checkContinTimerId = 0;
+static UINT_PTR checkConnectingTimerId = 0;
+static int retryCount = 0;
+static BOOL bLastPingResult = TRUE;
+static HMODULE hICMP = NULL;
+// variables (options)
+static int maxRetries = 0;
+static int initDelay = 0;
+static int currentDelay = 0;
+static int maxDelay = 0;
+static int ackDelay = 500;
+static int increaseExponential = 0;
+static int showConnectionPopups = 0;
+// prototypes
+static int StartTimer(int timer, int timeout, BOOL restart);
+static int StopTimer(int timer);
+int LoadMainOptions();
+static void GetCurrentConnectionSettings();
+static int AssignStatus(TConnectionSettings* connSetting, int status, int lastStatus, char *szMsg);
+static int ProcessProtoAck(WPARAM wParam,LPARAM lParam);
+static VOID CALLBACK CheckConnectingTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime);
+static VOID CALLBACK CheckAckStatusTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime);
+static int StatusChange(WPARAM wParam, LPARAM lParam);
+static int CSStatusChange(WPARAM wParam, LPARAM lParam);
+static int CSStatusChangeEx(WPARAM wParam, LPARAM lParam);
+static VOID CALLBACK StatusChangeTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime);
+static VOID CALLBACK CheckConnectionTimer(HWND hwnd,UINT message, UINT_PTR idEvent,DWORD dwTime);
+static int StopChecking();
+static VOID CALLBACK AfterCheckTimer(HWND hwnd,UINT message, UINT_PTR idEvent,DWORD dwTime);
+static void ContinueslyCheckFunction(void *arg);
+static VOID CALLBACK CheckContinueslyTimer(HWND hwnd,UINT message, UINT_PTR idEvent,DWORD dwTime);
+INT_PTR IsProtocolEnabledService(WPARAM wParam, LPARAM lParam);
+
+static int ProcessPopup(int reason, LPARAM lParam);
+static int ShowPopup(char* msg, HICON hIcon);
+int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+static DWORD CALLBACK MessageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
+
+static int Exit(WPARAM wParam, LPARAM lParam);
+
+// options.c
+extern int OptionsInit(WPARAM wparam,LPARAM lparam);
+extern int InitCommonStatus();
+
+#define TRIGGERPLUGIN /* remove this to compile without it */
+
+#ifdef TRIGGERPLUGIN
+extern int RegisterAction();
+extern int DeInitAction();
+extern int RegisterTrigger();
+extern int DeInitTrigger();
+#endif
+
+TConnectionSettings::TConnectionSettings( PROTOACCOUNT* pa )
+{
+ cbSize = sizeof(PROTOCOLSETTINGEX);
+ szName = pa->szModuleName;
+ tszAccName = pa->tszAccountName;
+ szMsg = NULL;
+
+ int status = CallProtoService( pa->szModuleName, PS_GETSTATUS, 0, 0);
+ AssignStatus( this, status, status, NULL);
+}
+
+TConnectionSettings::~TConnectionSettings()
+{
+ if ( szMsg != NULL)
+ free( szMsg );
+}
+
+int LoadMainOptions()
+{
+ UnhookEvent(hProtoAckHook);
+ UnhookEvent(hStatusChangeHook);
+ UnhookEvent(hCSStatusChangeHook);
+ UnhookEvent(hCSStatusChangeExHook);
+ hProtoAckHook = hStatusChangeHook = hCSStatusChangeHook = hCSStatusChangeExHook = 0;
+
+ if (IsWindow(hMessageWindow))
+ DestroyWindow(hMessageWindow);
+ if (StartTimer(IDT_CHECKCONTIN, -1, FALSE)) {
+ FreeLibrary(hICMP);
+ WSACleanup();
+ }
+ StopTimer(IDT_CHECKCONN|IDT_PROCESSACK|IDT_AFTERCHECK|IDT_CHECKCONTIN|IDT_CHECKCONNECTING);
+
+ GetCurrentConnectionSettings();
+
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_CHECKCONNECTION, FALSE)) {
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_CONTCHECK, FALSE)) {
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_BYPING, FALSE)) {
+ WSADATA wsaData;
+
+ WSAStartup(MAKEWORD(2, 2), &wsaData);
+ hICMP = LoadLibraryA("ICMP.DLL");
+ if (hICMP == NULL) {
+ log_infoA("KeepStatus: icmp.dll not found, ping disabled");
+ }
+ }
+ StartTimer(IDT_CHECKCONTIN, 0, FALSE);
+ }
+ increaseExponential = DBGetContactSettingByte(NULL, MODULENAME, SETTING_INCREASEEXPONENTIAL, FALSE);
+ currentDelay = initDelay = 1000*DBGetContactSettingDword(NULL, MODULENAME, SETTING_INITDELAY, DEFAULT_INITDELAY);
+ maxDelay = 1000*DBGetContactSettingDword(NULL, MODULENAME, SETTING_MAXDELAY, DEFAULT_MAXDELAY);
+ maxRetries = DBGetContactSettingByte(NULL, MODULENAME, SETTING_MAXRETRIES,0);
+ if (maxRetries == 0)
+ maxRetries = -1;
+ hProtoAckHook = HookEvent(ME_PROTO_ACK, ProcessProtoAck);
+ hStatusChangeHook = HookEvent(ME_CLIST_STATUSMODECHANGE, StatusChange);
+ if (ServiceExists(ME_CS_STATUSCHANGE))
+ hCSStatusChangeHook = HookEvent(ME_CS_STATUSCHANGE, CSStatusChange);
+ hCSStatusChangeExHook = HookEvent(ME_CS_STATUSCHANGEEX, CSStatusChangeEx);
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_CHECKAPMRESUME, 0)&&(CallService(MS_SYSTEM_GETVERSION,0,0) >= 0x00040000)) {
+ if (!IsWindow(hMessageWindow)) {
+ hMessageWindow = CreateWindowEx(0, _T("STATIC"), NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
+ SetWindowLongPtr(hMessageWindow, GWLP_WNDPROC, (LONG_PTR)MessageWndProc);
+ }
+ }
+ retryCount = 0;
+ }
+
+ return 0;
+}
+
+static void GetCurrentConnectionSettings()
+{
+ connectionSettings.destroy();
+
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ for ( int i=0; i < count; i++ )
+ if ( IsSuitableProto( protos[i] ))
+ connectionSettings.insert( new TConnectionSettings( protos[i] ));
+}
+
+static PROTOCOLSETTINGEX** GetCurrentProtoSettingsCopy()
+{
+ PROTOCOLSETTINGEX** ps;
+ int i;
+
+ EnterCriticalSection(&GenStatusCS);
+ ps = ( PROTOCOLSETTINGEX** )malloc(connectionSettings.getCount()*sizeof(PROTOCOLSETTINGEX *));
+ if (ps == NULL) {
+ LeaveCriticalSection(&GenStatusCS);
+ return NULL;
+ }
+ for(i=0;i<connectionSettings.getCount();i++) {
+ ps[i] = ( PROTOCOLSETTINGEX* )calloc(1, sizeof(PROTOCOLSETTINGEX));
+ if (ps[i] == NULL) {
+ LeaveCriticalSection(&GenStatusCS);
+ return NULL;
+ }
+
+ TConnectionSettings& cs = connectionSettings[i];
+ ps[i]->cbSize = sizeof(PROTOCOLSETTINGEX);
+ ps[i]->lastStatus = cs.lastStatus;
+ ps[i]->status = cs.status;
+ ps[i]->szMsg = NULL;
+ ps[i]->szName = cs.szName;
+ ps[i]->tszAccName = cs.tszAccName;
+ if ( (ServiceExists(MS_NAS_GETSTATE)) && (CallProtoService(ps[i]->szName, PS_GETSTATUS, 0, 0) == ID_STATUS_OFFLINE) && (ps[i]->status != ID_STATUS_OFFLINE) ) {
+ NAS_PROTOINFO npi;
+
+ ZeroMemory(&npi, sizeof(NAS_PROTOINFO));
+ npi.cbSize = sizeof(NAS_PROTOINFO);
+ npi.status = 0;
+ npi.szProto = ps[i]->szName;
+ if (!CallService(MS_NAS_GETSTATEA, (WPARAM)&npi, (LPARAM)1)) {
+ if (npi.szMsg != NULL) {
+ ps[i]->szMsg = _strdup(npi.szMsg);
+ log_infoA("KeepStatus: Status message for %s retrieved from NAS", ps[i]->szName);
+ }
+ else {
+ npi.status = 0;
+ npi.szProto = NULL;
+ if (!CallService(MS_NAS_GETSTATEA, (WPARAM)&npi, (LPARAM)1)) {
+ if (npi.szMsg != NULL) {
+ ps[i]->szMsg = _strdup(npi.szMsg);
+ log_infoA("KeepStatus: Status message for %s retrieved from NAS (global)", ps[i]->szName);
+ }
+ }
+ }
+ }
+ }
+ }
+ LeaveCriticalSection(&GenStatusCS);
+
+ return ps;
+}
+
+static void FreeProtoSettings(PROTOCOLSETTINGEX** ps)
+{
+ for(int i=0;i<connectionSettings.getCount();i++) {
+ if (ps[i]->szMsg != NULL)
+ free(ps[i]->szMsg);
+ free(ps[i]);
+ }
+ free(ps);
+}
+
+static int AssignStatus(TConnectionSettings* cs, int status, int lastStatus, char *szMsg)
+{
+ if ( status < MIN_STATUS || status > MAX_STATUS )
+ return -1;
+
+ EnterCriticalSection(&GenStatusCS);
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s_enabled", cs->szName);
+ cs->lastStatus = lastStatus == 0 ? cs->status : lastStatus;
+ if (!DBGetContactSettingByte(NULL, MODULENAME, dbSetting, 1))
+ cs->status = ID_STATUS_DISABLED;
+ else if (status == ID_STATUS_LAST)
+ cs->status = cs->lastStatus;
+ else
+ cs->status = status;
+
+ log_infoA("KeepStatus: assigning status %d to %s", cs->status, cs->szName);
+
+ if ( szMsg != NULL && szMsg != cs->szMsg ) {
+ if ( cs->szMsg != NULL )
+ free(cs->szMsg);
+
+ cs->szMsg = _strdup(szMsg);
+ }
+ else if (szMsg != cs->szMsg) {
+ if (cs->szMsg != NULL)
+ free(cs->szMsg);
+
+ cs->szMsg = NULL;
+ }
+ LeaveCriticalSection(&GenStatusCS);
+ return 0;
+}
+
+static int GetStatus(const TConnectionSettings& cs)
+{
+ if (cs.status == ID_STATUS_CURRENT)
+ return CallProtoService(cs.szName, PS_GETSTATUS, 0, 0);
+
+ return cs.status;
+}
+
+static int SetCurrentStatus()
+{
+ int ret, i, realStatus;
+ PROTOCOLSETTINGEX **ps;
+
+ ps = GetCurrentProtoSettingsCopy();
+ for (i=0;i<connectionSettings.getCount();i++) {
+ realStatus = CallProtoService(ps[i]->szName, PS_GETSTATUS, 0, 0);
+ if ( (ps[i]->status == ID_STATUS_DISABLED) || (ps[i]->status == realStatus) || (DBGetContactSettingByte(NULL, ps[i]->szName, SETTING_PROTORETRY, 0)) ) { // ignore this proto by removing it's name (not so nice)
+ ps[i]->szName = "";
+ }
+ else if ( (ps[i]->status != ID_STATUS_DISABLED) && (ps[i]->status != realStatus) && (realStatus != ID_STATUS_OFFLINE) && (DBGetContactSettingByte(NULL, MODULENAME, SETTING_FIRSTOFFLINE, FALSE)) ) {
+ // force offline before reconnecting
+ log_infoA("KeepStatus: Setting %s offline before making a new connection attempt", ps[i]->szName);
+ CallProtoService(ps[i]->szName, PS_SETSTATUS, (WPARAM)ID_STATUS_OFFLINE, 0);
+ }
+ }
+ ProcessPopup(KS_CONN_STATE_RETRY, (LPARAM)ps);
+ ret = CallService(MS_CS_SETSTATUSEX, (WPARAM)&ps, 0);
+ FreeProtoSettings(ps);
+
+ return ret;
+}
+
+static int StatusChange(WPARAM wParam, LPARAM lParam)
+{
+ char* szProto = (char *)lParam;
+ if (szProto == NULL) { // global status change
+ for (int i=0;i<connectionSettings.getCount();i++) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if (GetStatus(cs) != ID_STATUS_DISABLED)
+ if ( DBGetContactSettingByte(NULL, MODULENAME, SETTING_NOLOCKED, 0) ||
+ !DBGetContactSettingByte(NULL, cs.szName, "LockMainStatus", 0 ))
+ AssignStatus(&cs, wParam, 0, cs.szMsg);
+ }
+ }
+ else {
+ for (int i=0;i<connectionSettings.getCount();i++) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if ( GetStatus(cs) != ID_STATUS_DISABLED && !strcmp(cs.szName, szProto))
+ AssignStatus(&cs, wParam, 0, cs.szMsg);
+ } }
+
+ return 0;
+}
+
+static int CSStatusChange(WPARAM wParam, LPARAM lParam)
+{
+ // the status was changed by commonstatus (old)
+ if (wParam != 0) {
+ int i, j;
+ PROTOCOLSETTING** protoSettings = *(PROTOCOLSETTING***)wParam;
+
+ if (protoSettings == NULL)
+ return -1;
+
+ for (i=0;i<connectionSettings.getCount();i++) {
+ for (j=0;j<connectionSettings.getCount();j++) {
+ if ( (protoSettings[i]->szName == NULL) || (connectionSettings[j].szName == NULL) )
+ continue;
+
+ if (!strcmp(protoSettings[i]->szName, connectionSettings[j].szName))
+ if (GetStatus(connectionSettings[j]) != ID_STATUS_DISABLED)
+ AssignStatus(&connectionSettings[j], protoSettings[i]->status, protoSettings[i]->lastStatus, connectionSettings[j].szMsg);
+ } } }
+
+ return 0;
+}
+
+static int CSStatusChangeEx(WPARAM wParam, LPARAM lParam)
+{
+ // the status was changed by commonstatus (new)
+ if (wParam != 0) {
+ int i, j;
+ PROTOCOLSETTINGEX** protoSettings = *(PROTOCOLSETTINGEX***)wParam;
+
+ if (protoSettings == NULL)
+ return -1;
+
+ for (i=0;i<connectionSettings.getCount();i++) {
+ for (j=0;j<connectionSettings.getCount();j++) {
+ if ( (protoSettings[i]->szName == NULL) || (connectionSettings[j].szName == NULL) )
+ continue;
+ if (!strcmp(protoSettings[i]->szName, connectionSettings[j].szName)) {
+ if (GetStatus(connectionSettings[j]) != ID_STATUS_DISABLED)
+ AssignStatus(&connectionSettings[j], protoSettings[i]->status, protoSettings[i]->lastStatus, protoSettings[i]->szMsg);
+ }
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int StartTimerFunction(int timer, int timeout, BOOL restart)
+{
+ int res = 0;
+
+ EnterCriticalSection(&GenTimerCS);
+ log_debugA("StartTimer: %d, %d, %d", timer, timeout, restart);
+ log_debugA("ack: %u, chk: %u, aft: %u, cnt: %u, con: %u", processAckTimerId, checkConnectionTimerId, afterCheckTimerId, checkContinTimerId, checkConnectingTimerId);
+ if ( timer & IDT_PROCESSACK ) {
+ res = (processAckTimerId == 0)?0:1;
+ if ( ((processAckTimerId == 0) && (checkConnectionTimerId == 0)) || (restart) ) {
+ if (timeout != -1) {
+ if (restart)
+ KillTimer(NULL, processAckTimerId);
+ if (timeout == 0)
+ processAckTimerId = SetTimer(NULL, 0, ackDelay, CheckAckStatusTimer);
+ else
+ processAckTimerId = SetTimer(NULL, 0, timeout, CheckAckStatusTimer);
+ } } }
+
+ if ( timer & IDT_CHECKCONN ) {
+ res = (checkConnectionTimerId == 0?0:1)||res;
+ if ( (checkConnectionTimerId == 0) || (restart) ) {
+ if (timeout != -1) {
+ if (restart)
+ KillTimer(NULL, checkConnectionTimerId);
+ if (timeout == 0)
+ checkConnectionTimerId = SetTimer(NULL, 0, initDelay, CheckConnectionTimer);
+ else
+ checkConnectionTimerId = SetTimer(NULL, 0, timeout, CheckConnectionTimer);
+ } } }
+
+ if ( timer & IDT_AFTERCHECK ) {
+ res = (afterCheckTimerId==0?0:1)||res;
+ if ( (afterCheckTimerId == 0) || (restart) ) {
+ if (timeout != -1) {
+ if (restart)
+ KillTimer(NULL, afterCheckTimerId);
+ if (timeout == 0)
+ afterCheckTimerId = SetTimer(NULL, 0, initDelay/2, AfterCheckTimer);
+ else
+ afterCheckTimerId = SetTimer(NULL, 0, timeout, AfterCheckTimer);
+ } } }
+
+ if ( timer & IDT_CHECKCONTIN ) {
+ res = (checkContinTimerId==0?0:1)||res;
+ if ( (checkContinTimerId == 0) || (restart) ) {
+ if (timeout != -1) {
+ if (restart)
+ KillTimer(NULL, checkContinTimerId);
+ if (timeout == 0) {
+ checkContinTimerId = SetTimer(NULL, 0, 1000*DBGetContactSettingDword(NULL, MODULENAME, SETTING_CNTDELAY, CHECKCONTIN_DELAY), CheckContinueslyTimer);
+ }
+ else
+ checkContinTimerId = SetTimer(NULL, 0, timeout, CheckContinueslyTimer);
+ } } }
+
+ if ( timer & IDT_CHECKCONNECTING ) {
+ res = (checkConnectingTimerId==0?0:1)||res;
+ if ( (checkConnectingTimerId == 0) || (restart) ) {
+ if (timeout != -1) {
+ if (restart)
+ KillTimer(NULL, checkConnectingTimerId);
+ if (timeout == 0) {
+ timeout = initDelay/2;
+ }
+ checkConnectingTimerId = SetTimer(NULL, 0, timeout, CheckConnectingTimer);
+ } } }
+
+ log_debugA("ack: %u, chk: %u, aft: %u, cnt: %u, con: %u", processAckTimerId, checkConnectionTimerId, afterCheckTimerId, checkContinTimerId, checkConnectingTimerId);
+ log_debugA("StartTimer done %d", res);
+ LeaveCriticalSection(&GenTimerCS);
+
+ return res;
+}
+
+static VOID CALLBACK StartTimerApcProc(ULONG_PTR param)
+{
+ struct TimerInfo *ti = (struct TimerInfo *)param;
+ log_debugA("StartTimerApcProc %d %d %d", ti->timer, ti->timeout, ti->restart);
+ ti->result = StartTimerFunction(ti->timer, ti->timeout, ti->restart);
+ SetEvent(ti->hEvent);
+}
+
+static int StartTimer(int timer, int timeout, BOOL restart)
+{
+ if (GetCurrentThreadId() == mainThreadId)
+ return StartTimerFunction(timer, timeout, restart);
+
+ TimerInfo *ti = ( TimerInfo* )calloc(1, sizeof(struct TimerInfo));
+ ti->timer = timer;
+ ti->timeout = timeout;
+ ti->restart = restart;
+ ti->hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ QueueUserAPC(StartTimerApcProc, hMainThread, (ULONG_PTR)ti);
+ WaitForSingleObject(ti->hEvent, INFINITE);
+ CloseHandle(ti->hEvent);
+ int res = ti->result;
+ free(ti);
+ return res;
+}
+
+static int StopTimer(int timer)
+{
+ int res = 0;
+
+ EnterCriticalSection(&GenTimerCS);
+ log_debugA("StopTimer %d", timer);
+ log_debugA("ack: %u, chk: %u, aft: %u, cnt: %u, con: %u", processAckTimerId, checkConnectionTimerId, afterCheckTimerId, checkContinTimerId, checkConnectingTimerId);
+
+ if ( timer & IDT_PROCESSACK ) {
+ if (processAckTimerId == 0)
+ res = 0;
+ else {
+ KillTimer(NULL, processAckTimerId);
+ processAckTimerId = 0;
+ res = 1;
+ } }
+
+ if ( timer & IDT_CHECKCONN ) {
+ if (checkConnectionTimerId == 0)
+ res = 0||res;
+ else {
+ KillTimer(NULL, checkConnectionTimerId);
+ checkConnectionTimerId = 0;
+ res = 1;
+ } }
+
+ if ( timer & IDT_AFTERCHECK ) {
+ if (afterCheckTimerId == 0)
+ res = 0||res;
+ else {
+ KillTimer(NULL, afterCheckTimerId);
+ afterCheckTimerId = 0;
+ res = 1;
+ } }
+
+ if ( timer & IDT_CHECKCONTIN ) {
+ if (checkContinTimerId == 0)
+ res = 0||res;
+ else {
+ KillTimer(NULL, checkContinTimerId);
+ checkContinTimerId = 0;
+ res = 1;
+ } }
+
+ if ( timer & IDT_CHECKCONNECTING ) {
+ if (checkConnectingTimerId == 0)
+ res = 0||res;
+ else {
+ KillTimer(NULL, checkConnectingTimerId);
+ checkConnectingTimerId = 0;
+ res = 1;
+ } }
+
+ log_debugA("ack: %u, chk: %u, aft: %u, cnt: %u, con: %u", processAckTimerId, checkConnectionTimerId, afterCheckTimerId, checkContinTimerId, checkConnectingTimerId);
+ log_debugA("StopTimer done %d", res);
+ LeaveCriticalSection(&GenTimerCS);
+
+ return res;
+}
+
+static int ProcessProtoAck(WPARAM wParam,LPARAM lParam)
+{
+ ACKDATA *ack=(ACKDATA*)lParam;
+ char dbSetting[128];
+ int i;
+
+ if ( (ack->type != ACKTYPE_STATUS) && (ack->type != ACKTYPE_LOGIN) )
+ return 0;
+
+ mir_snprintf(dbSetting, sizeof(dbSetting), "%s_enabled", ack->szModule);
+ if (!DBGetContactSettingByte(NULL, MODULENAME, dbSetting, 1))
+ return 0;
+
+ if (DBGetContactSettingByte(NULL, ack->szModule, SETTING_PROTORETRY, 0)) {
+ log_infoA("KeepStatus: %s has built-in reconnection enabled", ack->szModule);
+ return 0;
+ }
+
+ if ( ack->type == ACKTYPE_STATUS && ack->result == ACKRESULT_SUCCESS ) {
+ for ( i=0; i < connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if ( !strcmp( cs.szName, ack->szModule ))
+ cs.lastStatusAckTime = GetTickCount();
+ }
+ StartTimer(IDT_PROCESSACK, 0, FALSE);
+ return 0;
+ }
+
+ if (ack->type == ACKTYPE_LOGIN) {
+ if (ack->lParam == LOGINERR_OTHERLOCATION) {
+ int i, j;
+
+ for (i=0;i<connectionSettings.getCount();i++) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if (!strcmp(ack->szModule, cs.szName)) {
+ AssignStatus(&cs, ID_STATUS_OFFLINE, 0, NULL);
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_CNCOTHERLOC, 0)) {
+ StopTimer(IDT_PROCESSACK);
+ for (j=0;j<connectionSettings.getCount();j++) {
+ AssignStatus(&connectionSettings[j], ID_STATUS_OFFLINE, 0, NULL);
+ } }
+
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_OTHERLOCATION, (LPARAM)cs.szName);
+ ProcessPopup(KS_CONN_STATE_OTHERLOCATION, (LPARAM)ack->szModule);
+ } }
+ }
+ else if (ack->result == ACKRESULT_FAILED) {
+ // login failed
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_LOGINERROR, (LPARAM)ack->szModule);
+ switch (DBGetContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_NOTHING)) {
+ case LOGINERR_CANCEL:
+ {
+ log_infoA("KeepStatus: cancel on login error (%s)", ack->szModule);
+ for ( int i=0; i <connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if (!strcmp(ack->szModule, cs.szName))
+ AssignStatus(&cs, ID_STATUS_OFFLINE, 0, NULL);
+ }
+ ProcessPopup(KS_CONN_STATE_LOGINERROR, (LPARAM)ack->szModule);
+ StopChecking();
+ }
+ break;
+
+ case LOGINERR_SETDELAY:
+ {
+ int newDelay = newDelay = 1000*DBGetContactSettingDword(NULL, MODULENAME, SETTING_LOGINERR_DELAY, DEFAULT_MAXDELAY);
+ log_infoA("KeepStatus: set delay to %d on login error (%s)", newDelay/1000, ack->szModule);
+ StartTimer(IDT_CHECKCONN, newDelay, TRUE);
+ }
+ ProcessPopup(KS_CONN_STATE_LOGINERROR, (LPARAM)ack->szModule);
+ break;
+
+ default:
+ case LOGINERR_NOTHING:
+ StartTimer(IDT_PROCESSACK, 0, FALSE);
+ break;
+ } } }
+
+ return 0;
+}
+
+static VOID CALLBACK CheckConnectingTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime)
+{
+ int i, maxConnectingTime;
+
+ StopTimer(IDT_CHECKCONNECTING);
+ //log_debugA("KeepStatus: CheckConnectingTimer");
+ for (i=0;i<connectionSettings.getCount();i++) {
+ TConnectionSettings& cs = connectionSettings[i];
+
+ int curStatus = GetStatus(cs);
+ int newStatus = CallProtoService(cs.szName,PS_GETSTATUS, 0, 0);
+ if (curStatus < MAX_CONNECT_RETRIES) { // connecting
+ maxConnectingTime = DBGetContactSettingDword(NULL, MODULENAME, SETTING_MAXCONNECTINGTIME, 0);
+ if (maxConnectingTime > 0) {
+ if ( (unsigned int)maxConnectingTime <= ((GetTickCount() - cs.lastStatusAckTime)/1000) ) {
+ // set offline
+ log_infoA("KeepStatus: %s is too long connecting; setting offline", cs.szName);
+ CallProtoService(cs.szName, PS_SETSTATUS, (WPARAM)ID_STATUS_OFFLINE, 0);
+} } } } }
+
+static VOID CALLBACK CheckAckStatusTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime)
+{
+ int i, maxConnectingTime;
+ BOOL needChecking;
+
+ StopTimer(IDT_PROCESSACK);
+ needChecking = FALSE;
+ for (i=0;i<connectionSettings.getCount();i++) {
+ TConnectionSettings& cs = connectionSettings[i];
+
+ int curStatus = GetStatus(cs);
+ int newStatus = CallProtoService(cs.szName,PS_GETSTATUS, 0, 0);
+ // ok, np
+ if ( curStatus == ID_STATUS_CURRENT || curStatus == ID_STATUS_DISABLED || curStatus == newStatus || newStatus > MAX_STATUS )
+ continue;
+
+ if (newStatus < MAX_CONNECT_RETRIES) { // connecting
+ maxConnectingTime = DBGetContactSettingDword(NULL, MODULENAME, SETTING_MAXCONNECTINGTIME, 0);
+ if (maxConnectingTime > 0)
+ StartTimer(IDT_CHECKCONNECTING, (maxConnectingTime*1000 - (GetTickCount() - cs.lastStatusAckTime)), FALSE);
+ }
+ // keepstatus' administration was wrong!
+ else if (newStatus != ID_STATUS_OFFLINE)
+ AssignStatus(&cs, newStatus, 0, NULL);
+
+ // connection lost
+ else if (newStatus == ID_STATUS_OFFLINE) {// start checking connection
+ if (!StartTimer(IDT_CHECKCONN, -1, FALSE)) { /* check if not already checking */
+ needChecking = TRUE;
+ log_infoA("KeepStatus: connection lost! (%s)", cs.szName);
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_LOST, (LPARAM)cs.szName);
+ ProcessPopup(KS_CONN_STATE_LOST, (LPARAM)cs.szName);
+ } } }
+
+ if (needChecking == TRUE)
+ StartTimer(IDT_CHECKCONN, initDelay, FALSE);
+}
+
+static VOID CALLBACK CheckConnectionTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime)
+{
+ int i, shouldBeStatus, realStatus, setStatus;
+ HICON hIcon;
+
+ log_debugA("CheckConnectionTimer");
+ setStatus = FALSE;
+ if (showConnectionPopups)
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+
+ for ( i=0; i < connectionSettings.getCount() && !setStatus; i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ realStatus = CallProtoService(cs.szName, PS_GETSTATUS, 0, 0);
+ shouldBeStatus = GetStatus(cs);
+ if (shouldBeStatus == ID_STATUS_LAST)
+ shouldBeStatus = cs.lastStatus;
+ if (shouldBeStatus == ID_STATUS_DISABLED)
+ continue;
+ if ( (shouldBeStatus != realStatus) && (realStatus == ID_STATUS_OFFLINE) || (realStatus < MIN_STATUS) ) {
+ setStatus = TRUE;
+ if (showConnectionPopups)
+ hIcon = (HICON)CallService(MS_SKIN_LOADPROTOICON, (WPARAM)cs.szName, (LPARAM)SKINICON_STATUS_OFFLINE);
+ } }
+
+ // one of the status was wrong
+ if ( setStatus == TRUE && ( maxRetries == -1 || retryCount < maxRetries )) {
+ if (increaseExponential)
+ currentDelay = min(2*currentDelay,maxDelay);
+
+ if ( ((DBGetContactSettingByte(NULL, MODULENAME, SETTING_CHKINET, 0)) && (!InternetGetConnectedState(NULL, 0))) || ((DBGetContactSettingByte(NULL, MODULENAME, SETTING_BYPING, FALSE)) && (!bLastPingResult)) ) {
+ // no network
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_RETRYNOCONN, (LPARAM)retryCount+1);
+ ProcessPopup(KS_CONN_STATE_RETRYNOCONN, 0);
+ }
+ else {
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_RETRY, (LPARAM)retryCount+1);
+ /* set the status */
+ SetCurrentStatus();
+ }
+ retryCount += 1;
+ StartTimer(IDT_AFTERCHECK, min(currentDelay, AFTERCHECK_DELAY)/2, FALSE);
+ StartTimer(IDT_CHECKCONN, currentDelay, TRUE); // restart this timer
+ }
+ else // all status set ok already, or stop checking
+ StopChecking();
+
+ log_debugA("CheckConnectionTimer done");
+}
+
+static int StopChecking()
+{
+ StopTimer(IDT_CHECKCONN|IDT_PROCESSACK|IDT_AFTERCHECK|IDT_CHECKCONNECTING);
+
+ BOOL isOk = TRUE;
+ for ( int i=0; i < connectionSettings.getCount() && isOk; i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ int curStatus = GetStatus(cs);
+ int newStatus = CallProtoService(cs.szName, PS_GETSTATUS, 0, 0);
+ if ( newStatus != curStatus && curStatus != ID_STATUS_DISABLED ) {
+ AssignStatus(&cs, newStatus, 0, NULL);
+ isOk = FALSE;
+ } }
+
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_STOPPEDCHECKING, (LPARAM)isOk);
+ ProcessPopup(KS_CONN_STATE_STOPPEDCHECKING, (LPARAM)isOk);
+ log_infoA("KeepStatus: stop checking (%s)", isOk?"success":"failure");
+ retryCount = 0;
+ currentDelay = initDelay;
+
+ return 0;
+}
+
+static VOID CALLBACK AfterCheckTimer(HWND hwnd,UINT message,UINT_PTR idEvent,DWORD dwTime)
+{
+ // after each connection check, this function is called to see if connection was recovered
+ StopTimer(IDT_AFTERCHECK);
+
+ int setStatus = FALSE;
+
+ for( int i=0; i <connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ int realStatus = CallProtoService(cs.szName, PS_GETSTATUS, 0, 0);
+ int shouldBeStatus = GetStatus(cs);
+ if (shouldBeStatus == ID_STATUS_LAST) // this should never happen
+ shouldBeStatus = cs.lastStatus;
+ if (shouldBeStatus == ID_STATUS_DISABLED) // (on ignoring proto)
+ continue;
+ if ( (shouldBeStatus != realStatus) && (realStatus == ID_STATUS_OFFLINE) || (realStatus < MIN_STATUS) )
+ setStatus = TRUE;
+ }
+
+ if ( setStatus == FALSE || retryCount == maxRetries )
+ StopChecking();
+
+ return;
+}
+
+typedef HANDLE ( WINAPI *pfnIcmpCreateFile )( void );
+typedef BOOL ( WINAPI *pfnIcmpCloseHandle )( HANDLE );
+typedef DWORD ( WINAPI *pfnIcmpSendEcho )( HANDLE, DWORD, int, int, void*, char*, int, int );
+
+static void CheckContinueslyFunction(void *arg)
+{
+ static int pingFailures = 0;
+
+ // one at the time is enough, do it the 'easy' way
+ EnterCriticalSection(&CheckContinueslyCS);
+
+ // do a ping, even if reconnecting
+ BOOL doPing = FALSE;
+ for( int i=0; i < connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ int shouldBeStatus = GetStatus(cs);
+ if (shouldBeStatus == ID_STATUS_LAST)
+ shouldBeStatus = cs.lastStatus;
+
+ if (shouldBeStatus == ID_STATUS_DISABLED)
+ continue;
+
+ if (shouldBeStatus != ID_STATUS_OFFLINE) {
+ log_debugA("CheckContinueslyFunction: %s should be %d", cs.szName, shouldBeStatus);
+ doPing = TRUE;
+ } }
+
+ if (!doPing) {
+ log_debugA("CheckContinueslyFunction: All protocols should be offline, no need to check connection");
+ LeaveCriticalSection(&CheckContinueslyCS);
+ return;
+ }
+
+ BOOL ping = DBGetContactSettingByte(NULL, MODULENAME, SETTING_BYPING, FALSE);
+ if (ping) {
+ DBVARIANT dbv;
+ if (DBGetContactSetting(NULL, MODULENAME, SETTING_PINGHOST, &dbv))
+ ping = FALSE;
+ else {
+ char *start, *end;
+ char host[MAX_PATH];
+ pfnIcmpCreateFile lpfnIcmpCreateFile;
+ pfnIcmpCloseHandle lpfnIcmpCloseHandle;
+ pfnIcmpSendEcho lpfnIcmpSendEcho;
+ HANDLE hICMPFile;
+ DWORD *addr;
+ struct hostent *hostent;
+ char reply[sizeof(ICMP_ECHO_REPLY)+8];
+
+ bLastPingResult = FALSE;
+ lpfnIcmpCreateFile = (pfnIcmpCreateFile)GetProcAddress(hICMP,"IcmpCreateFile");
+ lpfnIcmpCloseHandle = (pfnIcmpCloseHandle)GetProcAddress(hICMP,"IcmpCloseHandle");
+ lpfnIcmpSendEcho = (pfnIcmpSendEcho)GetProcAddress(hICMP,"IcmpSendEcho");
+ if ((hICMP == NULL) || (lpfnIcmpCreateFile == NULL) || (lpfnIcmpCloseHandle == NULL) || (lpfnIcmpSendEcho == NULL)) {
+ bLastPingResult = TRUE;
+ log_infoA("KeepStatus: icmp.dll error (1)");
+ }
+ hICMPFile = (HANDLE) lpfnIcmpCreateFile();
+ if (hICMPFile == INVALID_HANDLE_VALUE) {
+ bLastPingResult = TRUE;
+ log_infoA("KeepStatus: icmp.dll error (2)");
+ }
+ if (bLastPingResult == FALSE) {
+ start = dbv.pszVal;
+ while ( (*start != '\0') && (!bLastPingResult) ) {
+ end = start;
+ while ( (*end != ' ') && (*end != '\0') )
+ end++;
+ memset(host, '\0', sizeof(host));
+ strncpy(host, start, end-start);
+ hostent = gethostbyname(host);
+ if (hostent != NULL) {
+ addr = (DWORD *)( *hostent->h_addr_list );
+ bLastPingResult = (lpfnIcmpSendEcho(hICMPFile, *addr, 0,0,NULL, reply,sizeof(ICMP_ECHO_REPLY)+8,5000) != 0);
+
+ if (bLastPingResult)
+ pingFailures = 0;
+ else
+ pingFailures++;
+
+ log_debugA("CheckContinueslyFunction: pinging %s (result: %d/%d)", host, bLastPingResult, pingFailures);
+ }
+ else log_debugA("CheckContinueslyFunction: unable to resolve %s", host);
+
+ start = end;
+ while (*start == ' ')
+ start++;
+ }
+ }
+ lpfnIcmpCloseHandle(hICMPFile);
+ }
+ DBFreeVariant(&dbv);
+ }
+
+ if (StartTimer(IDT_CHECKCONN, -1, FALSE)) {
+ LeaveCriticalSection(&CheckContinueslyCS);
+ return; // already connecting, leave
+ }
+
+ if ( ((!ping) && (!InternetGetConnectedState(NULL, 0))) || ( (ping) && (!bLastPingResult) && (pingFailures >= DBGetContactSettingWord(NULL, MODULENAME, SETTING_PINGCOUNT, DEFAULT_PINGCOUNT))) ) {
+ pingFailures = 0;
+
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ for(int i=0; i < count; i++ ) {
+ if ( !IsSuitableProto( protos[i] ))
+ continue;
+
+ if (CallProtoService(protos[i]->szModuleName, PS_GETSTATUS, 0, 0) < MAX_CONNECT_RETRIES) {
+ log_debugA("CheckContinueslyFunction: %s is connecting", protos[i]->szModuleName);
+ continue; // connecting, leave alone
+ }
+ if (IsProtocolEnabledService(0, (LPARAM)protos[i]->szModuleName)) {
+ log_debugA("CheckContinueslyFunction: forcing %s offline", protos[i]->szModuleName);
+ CallProtoService(protos[i]->szModuleName, PS_SETSTATUS, (WPARAM)ID_STATUS_OFFLINE, 0);
+ }
+ }
+ if (StartTimer(IDT_CHECKCONN|IDT_PROCESSACK, -1, FALSE)) {// are our 'set offlines' noticed?
+ log_debugA("CheckContinueslyFunction: currently checking");
+ LeaveCriticalSection(&CheckContinueslyCS);
+ return;
+ }
+ log_infoA("KeepStatus: connection lost! (continuesly check)");
+ NotifyEventHooks(hConnectionEvent, (WPARAM)KS_CONN_STATE_LOST, (LPARAM)NULL);
+ ProcessPopup(KS_CONN_STATE_LOST, (LPARAM)NULL);
+ maxRetries = DBGetContactSettingByte(NULL, MODULENAME, SETTING_MAXRETRIES, 0);
+ if (maxRetries == 0)
+ maxRetries = -1;
+ StartTimer(IDT_CHECKCONN, initDelay, FALSE);
+ }
+ LeaveCriticalSection(&CheckContinueslyCS);
+}
+
+static VOID CALLBACK CheckContinueslyTimer(HWND hwnd, UINT message, UINT_PTR idEvent, DWORD dwTime)
+{
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_BYPING, FALSE))
+ mir_forkthread(CheckContinueslyFunction, NULL);
+ else
+ CheckContinueslyFunction(NULL);
+}
+
+// =============== popup ======================
+static int ProcessPopup(int reason, LPARAM lParam)
+{
+ HICON hIcon;
+ char text[MAX_SECONDLINE], protoName[128], *szProto;
+
+ if ( !DBGetContactSettingByte(NULL, MODULENAME, SETTING_SHOWCONNECTIONPOPUPS,FALSE) || !ServiceExists(MS_POPUP_ADDPOPUP))
+ return -1;
+
+ memset(protoName, '\0', sizeof(protoName));
+ strcpy(text, Translate("KeepStatus"));
+ hIcon = NULL;
+ szProto = NULL;
+
+ switch(reason) {
+ case KS_CONN_STATE_OTHERLOCATION: // lParam = 1 proto
+ if (!DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUOTHER, TRUE))
+ return -1;
+
+ szProto = (char *)lParam;
+ hIcon = (HICON)CallService(MS_SKIN_LOADPROTOICON, (WPARAM)szProto, (LPARAM)SKINICON_STATUS_OFFLINE);
+ CallProtoService(szProto, PS_GETNAME, sizeof(protoName), (LPARAM)protoName);
+ mir_snprintf(text, sizeof(text), Translate("%s Connected from another location"), protoName);
+ break;
+
+ case KS_CONN_STATE_LOGINERROR: // lParam = 1 proto
+ /*******************
+ rethink this
+ ********************/
+ if (!DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUOTHER, TRUE))
+ return -1;
+
+ szProto = (char *)lParam;
+ hIcon = (HICON)CallService(MS_SKIN_LOADPROTOICON, (WPARAM)szProto, (LPARAM)SKINICON_STATUS_OFFLINE);
+ CallProtoService(szProto, PS_GETNAME, sizeof(protoName), (LPARAM)protoName);
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_NOTHING) == LOGINERR_CANCEL)
+ _snprintf(text, sizeof(text), Translate("%s Login error, cancel reconnecting"), protoName);
+
+ else if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_NOTHING) == LOGINERR_SETDELAY)
+ _snprintf(text, sizeof(text), Translate("%s Login error (next retry (%d) in %ds)"), protoName, retryCount+1, DBGetContactSettingDword(NULL, MODULENAME, SETTING_LOGINERR_DELAY, DEFAULT_MAXDELAY));
+
+ else
+ return -1;
+
+ break;
+
+ case KS_CONN_STATE_LOST: // lParam = 1 proto, or NULL
+ if (!DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUCONNLOST, TRUE))
+ return -1;
+
+ szProto = (char *)lParam;
+ if (szProto != NULL) {
+ hIcon = (HICON)CallService(MS_SKIN_LOADPROTOICON, (WPARAM)szProto, (LPARAM)SKINICON_STATUS_OFFLINE);
+ CallProtoService(szProto, PS_GETNAME, sizeof(protoName), (LPARAM)protoName);
+ _snprintf(text, sizeof(text), Translate("%s Status error (next retry (%d) in %ds)"), protoName, retryCount+1, currentDelay/1000);
+ }
+ else {
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+ _snprintf(text, sizeof(text), Translate("Status error (next retry (%d) in %ds)"), retryCount+1, currentDelay/1000);
+ }
+ break;
+
+ case KS_CONN_STATE_RETRY: // lParam = PROTOCOLSETTINGEX**
+ {
+ int i;
+ PROTOCOLSETTINGEX **ps;
+ char protoInfoLine[512], protoInfo[MAX_SECONDLINE];
+
+ if (!DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUCONNRETRY, TRUE))
+ return -1;
+
+ memset(protoInfoLine, '\0', sizeof(protoInfoLine));
+ memset(protoInfo, '\0', sizeof(protoInfo));
+ strcpy(protoInfo, "\r\n");
+ ps = (PROTOCOLSETTINGEX **)lParam;
+ szProto = NULL;
+ for (i=0;i<connectionSettings.getCount();i++) {
+ if (strlen(ps[i]->szName) > 0) {
+ if (szProto == NULL) {
+ szProto = ps[i]->szName;
+ }
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUSHOWEXTRA, TRUE)) {
+ CallProtoService(ps[i]->szName, PS_GETNAME, sizeof(protoName), (LPARAM)protoName);
+ //_snprintf(protoInfoLine, sizeof(protoInfoLine), Translate("%s\t(will be set to %s)\r\n"), protoName, (char *)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, (WPARAM)ps[i]->status, (LPARAM)0));
+ _snprintf(protoInfoLine, sizeof(protoInfoLine), "%s\t(%s %s)\r\n", protoName, Translate("will be set to"), (char *)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, (WPARAM)ps[i]->status, (LPARAM)0));
+ strncat(protoInfo, protoInfoLine, sizeof(protoInfo)-strlen(protoInfo)-1);
+ }
+ }
+ }
+ if (strlen(protoInfo) > 0) {
+ // cut the last end of line (this may also be the first one ;) )
+ *(protoInfo + strlen(protoInfo) - 2) = '\0';
+ }
+ if (szProto != NULL)
+ hIcon = (HICON)CallService(MS_SKIN_LOADPROTOICON, (WPARAM)szProto, (LPARAM)SKINICON_STATUS_OFFLINE);
+ else
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+
+ if (retryCount == maxRetries-1)
+ _snprintf(text, sizeof(text), Translate("Resetting status... (last try (%d))%s"), retryCount+1, protoInfo);
+ else
+ _snprintf(text, sizeof(text), Translate("Resetting status... (next retry (%d) in %ds)%s"), retryCount+2, currentDelay/1000, protoInfo);
+ }
+ break;
+
+ case KS_CONN_STATE_RETRYNOCONN: // lParam = NULL
+ if (!DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUOTHER, TRUE))
+ return -1;
+
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+ if (retryCount == maxRetries-1)
+ _snprintf(text, sizeof(text), Translate("No internet connection seems available... (last try (%d))"), retryCount+1);
+ else
+ _snprintf(text, sizeof(text), Translate("No internet connection seems available... (next retry (%d) in %ds)"), retryCount+2, currentDelay/1000);
+ break;
+
+ case KS_CONN_STATE_STOPPEDCHECKING: // lParam == BOOL succes
+ if (!DBGetContactSettingByte(NULL, MODULENAME, SETTING_PURESULT, TRUE))
+ return -1;
+
+ if (lParam) {
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_ONLINE, 0);
+ _snprintf(text, sizeof(text), Translate("Status was set ok"));
+ }
+ else {
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+ _snprintf(text, sizeof(text), Translate("Giving up"));
+ }
+ break;
+ }
+ if (hIcon == NULL)
+ hIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+
+ log_infoA("KeepStatus: %s", text);
+ return ShowPopup(text, hIcon);
+}
+
+static int ShowPopup(char* msg, HICON hIcon)
+{
+ POPUPDATAEX ppd = { NULL };
+ ppd.lchContact = NULL;
+ ppd.lchIcon = hIcon;
+ memset(ppd.lpzContactName, '\0', sizeof(ppd.lpzContactName));
+ memset(ppd.lpzText, '\0', sizeof(ppd.lpzText));
+ strncpy(ppd.lpzContactName, Translate("KeepStatus"), sizeof(ppd.lpzContactName)-1);
+ strncpy(ppd.lpzText, msg, sizeof(ppd.lpzText)-1);
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEWINCOLORS, 0))
+ ppd.colorBack = GetSysColor(COLOR_BTNFACE);
+ else if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEDEFCOLORS, 0))
+ ppd.colorBack = (COLORREF)NULL;
+ else
+ ppd.colorBack = DBGetContactSettingDword(NULL, MODULENAME, SETTING_POPUP_BACKCOLOR, 0xAAAAAA);
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEWINCOLORS, 0))
+ ppd.colorText = GetSysColor(COLOR_WINDOWTEXT);
+ else if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEDEFCOLORS, 0))
+ ppd.colorText = (COLORREF)NULL;
+ else
+ ppd.colorText = DBGetContactSettingDword(NULL, MODULENAME, SETTING_POPUP_TEXTCOLOR, 0x0000CC);
+ ppd.PluginWindowProc = ( WNDPROC )PopupDlgProc;
+ ppd.PluginData = NULL;
+ if (!ServiceExists(MS_POPUP_ADDPOPUPEX))
+ return CallService(MS_POPUP_ADDPOPUP, (WPARAM)&ppd, 0);
+ else {
+ switch (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_DELAYTYPE, POPUP_DELAYFROMPU)) {
+ case POPUP_DELAYCUSTOM:
+ ppd.iSeconds = (int)DBGetContactSettingDword(NULL, MODULENAME, SETTING_POPUP_TIMEOUT, 0);
+ if (ppd.iSeconds == 0) {
+ ppd.iSeconds = currentDelay/1000-1;
+ }
+ break;
+ case POPUP_DELAYPERMANENT:
+ ppd.iSeconds = -1;
+ break;
+ case POPUP_DELAYFROMPU:
+ default:
+ ppd.iSeconds = 0;
+ break;
+ }
+ return CallService(MS_POPUP_ADDPOPUPEX, (WPARAM)&ppd, 0);
+ }
+}
+
+int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch(message) {
+ case WM_CONTEXTMENU: // right
+ case WM_COMMAND: // left
+ switch( DBGetContactSettingByte( NULL, MODULENAME,
+ (message == WM_COMMAND) ? SETTING_POPUP_LEFTCLICK : SETTING_POPUP_RIGHTCLICK,
+ POPUP_ACT_CLOSEPOPUP )) {
+ case POPUP_ACT_CANCEL:
+ // cancel timer
+ StopChecking();
+ PUDeletePopUp(hWnd);
+ break;
+
+ case POPUP_ACT_CLOSEPOPUP:
+ // close the popup
+ PUDeletePopUp(hWnd);
+ break;
+ }
+ break;
+
+ case UM_FREEPLUGINDATA:
+ break;
+ }
+
+ return DefWindowProc(hWnd, message, wParam, lParam);
+}
+
+// =============== services ===================
+INT_PTR StopReconnectingService(WPARAM wParam, LPARAM lParam)
+{
+ int ret = StartTimer(IDT_CHECKCONN|IDT_AFTERCHECK, -1, FALSE);
+ StopChecking();
+ return ret;
+}
+
+INT_PTR EnableProtocolService(WPARAM wParam, LPARAM lParam)
+{
+ char *szProto = (char *)lParam;
+ if (szProto == NULL)
+ return -1;
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s_enabled", szProto);
+ if (!DBGetContactSettingByte(NULL, MODULENAME, dbSetting, 1)) // 'hard' disabled
+ return -1;
+
+ int ret = -2;
+ for ( int i=0; i < connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if (!strcmp(szProto, cs.szName)) {
+ if (wParam) {
+ if (GetStatus(cs) == ID_STATUS_DISABLED)
+ AssignStatus(&cs, CallProtoService(cs.szName, PS_GETSTATUS, 0, 0), 0, NULL);
+ }
+ else AssignStatus(&cs, ID_STATUS_DISABLED, 0, NULL);
+
+ ret = 0;
+ break;
+ }
+ }
+ return ret;
+}
+
+INT_PTR IsProtocolEnabledService(WPARAM wParam, LPARAM lParam)
+{
+ int ret = -2;
+ char *szProto = (char *)lParam;
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s_enabled", szProto);
+ if ( !DBGetContactSettingByte(NULL, MODULENAME, dbSetting, 1 ))
+ return FALSE;
+
+ for ( int i=0; i < connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if ( !strcmp(szProto, cs.szName ))
+ return GetStatus(cs) != ID_STATUS_DISABLED;
+ }
+
+ return FALSE;
+}
+
+INT_PTR AnnounceStatusChangeService(WPARAM wParam, LPARAM lParam)
+{
+ PROTOCOLSETTINGEX *newSituation = (PROTOCOLSETTINGEX *)lParam;
+ log_infoA("Another plugin announced a status change to %d for %s", newSituation->status, newSituation->szName==NULL?"all":newSituation->szName);
+
+ for ( int i=0; i < connectionSettings.getCount(); i++ ) {
+ TConnectionSettings& cs = connectionSettings[i];
+ if ( !lstrcmpA( cs.szName, newSituation->szName ))
+ AssignStatus(&cs, newSituation->status, newSituation->lastStatus, newSituation->szMsg);
+ }
+
+ return 0;
+}
+
+// =============== window for suspend ===============
+
+static DWORD CALLBACK MessageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ static PROTOCOLSETTINGEX** ps = NULL;
+
+ switch(msg) {
+ case WM_POWERBROADCAST:
+ switch (wParam) {
+ case PBT_APMSUSPEND:
+ log_infoA("KeepStatus: suspend state detected: %08X %08X", wParam, lParam);
+ if (ps == NULL) {
+ ps = GetCurrentProtoSettingsCopy();
+ for ( int i=0; i < connectionSettings.getCount(); i++)
+ EnableProtocolService( 0, (LPARAM)ps[i]->szName );
+
+ // set proto's offline, the clist will not try to reconnect in that case
+ CallService(MS_CLIST_SETSTATUSMODE, (WPARAM)ID_STATUS_OFFLINE, 0);
+ }
+ break;
+
+ //case PBT_APMRESUMEAUTOMATIC: ?
+ case PBT_APMRESUMESUSPEND:
+ case PBT_APMRESUMECRITICAL:
+ log_infoA("KeepStatus: resume from suspend state");
+ if (ps != NULL) {
+ for (int i=0;i<connectionSettings.getCount();i++)
+ AssignStatus(&connectionSettings[i], ps[i]->status, ps[i]->lastStatus, ps[i]->szMsg);
+ FreeProtoSettings(ps);
+ ps = NULL;
+ }
+ StartTimer(IDT_PROCESSACK, 0, FALSE);
+ break;
+ }
+ break;
+
+ case WM_DESTROY:
+ if ( ps != NULL ) {
+ FreeProtoSettings(ps);
+ ps = NULL;
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// Account control event
+
+int OnAccChanged(WPARAM wParam,LPARAM lParam)
+{
+ PROTOACCOUNT* pa = ( PROTOACCOUNT* )lParam;
+ switch( wParam ) {
+ case PRAC_ADDED:
+ connectionSettings.insert( new TConnectionSettings( pa ));
+ break;
+
+ case PRAC_REMOVED:
+ {
+ for ( int i=0; i < connectionSettings.getCount(); i++ ) {
+ if ( !lstrcmpA( connectionSettings[i].szName, pa->szModuleName )) {
+ connectionSettings.remove( i );
+ break;
+ } } }
+ break;
+ }
+
+ return 0;
+}
+
+// =============== init stuff =================
+
+int CSModuleLoaded(WPARAM wParam,LPARAM lParam)
+{
+ InitializeCriticalSection(&GenTimerCS);
+ InitializeCriticalSection(&GenStatusCS);
+ InitializeCriticalSection(&CheckContinueslyCS);
+
+ protoList = ( OBJLIST<PROTOCOLSETTINGEX>* )&connectionSettings;
+
+ hMessageWindow = NULL;
+ LoadMainOptions();
+ hOptionsHook = HookEvent(ME_OPT_INITIALISE, OptionsInit);
+ hShutdownHook = HookEvent(ME_SYSTEM_OKTOEXIT, Exit);
+ hAccChangeHook = HookEvent(ME_PROTO_ACCLISTCHANGED, OnAccChanged);
+#ifdef TRIGGERPLUGIN
+ RegisterAction();
+ RegisterTrigger();
+#endif
+ if (ServiceExists(MS_UPDATE_REGISTERFL))
+ CallService(MS_UPDATE_REGISTERFL, 2206, (LPARAM)&pluginInfoEx);
+
+ return 0;
+}
+
+static int Exit(WPARAM wParam, LPARAM lParam)
+{
+#ifdef TRIGGERPLUGIN
+ DeInitTrigger();
+ DeInitAction();
+#endif
+
+ UnhookEvent(hOptionsHook);
+ UnhookEvent(hShutdownHook);
+ UnhookEvent(hAccChangeHook);
+ UnhookEvent(hStatusChangeHook);
+ UnhookEvent(hProtoAckHook);
+ UnhookEvent(hCSStatusChangeHook);
+ UnhookEvent(hCSStatusChangeExHook);
+
+ StopTimer(IDT_CHECKCONN|IDT_PROCESSACK|IDT_AFTERCHECK|IDT_CHECKCONTIN);
+ if (IsWindow(hMessageWindow))
+ DestroyWindow(hMessageWindow);
+
+ connectionSettings.destroy();
+
+ DeleteCriticalSection(&GenTimerCS);
+ DeleteCriticalSection(&GenStatusCS);
+ DeleteCriticalSection(&CheckContinueslyCS);
+ return 0;
+}
diff --git a/plugins/StatusPlugins/KeepStatus/keepstatus.h b/plugins/StatusPlugins/KeepStatus/keepstatus.h new file mode 100644 index 0000000000..29a92bb80a --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/keepstatus.h @@ -0,0 +1,138 @@ +/*
+ KeepStatus Plugin for Miranda-IM (www.miranda-im.org)
+ Copyright 2003-2006 P. Boon
+
+ 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
+*/
+
+#ifndef __KEEPSTATUS_HEADER
+#define __KEEPSTATUS_HEADER
+
+#include <process.h>
+#include <winsock.h>
+#include <wininet.h>
+#include <ipexport.h>
+#include <m_options.h>
+#include <m_skin.h>
+#include <m_utils.h>
+#include "version.h"
+
+#define __FILENAME "KeepStatus.dll"
+#define MODULENAME "KeepStatus"
+#define SETTING_CHECKCONNECTION "CheckConnection"
+#define SETTING_MAXRETRIES "MaxRetries"
+#define SETTING_INCREASEEXPONENTIAL "IncreaseExponential"
+#define SETTING_INITDELAY "InitDelay"
+#define SETTING_MAXDELAY "MaxDelay"
+#define SETTING_SHOWCONNECTIONPOPUPS "ShowConnectionPopups"
+#define SETTING_CHKINET "CheckInet"
+#define SETTING_CNCOTHERLOC "CancelIfOtherLocation"
+#define SETTING_LOGINERR "OnLoginErr"
+#define SETTING_LOGINERR_DELAY "OnLoginErrDelay"
+#define SETTING_CONTCHECK "ContinueslyCheck"
+#define SETTING_BYPING "ByPingingHost"
+#define SETTING_PINGHOST "HostToPing"
+#define SETTING_CHECKAPMRESUME "CheckAPMResume"
+#define SETTING_FIRSTOFFLINE "FirstOffline"
+#define SETTING_NOLOCKED "NoLocked"
+#define SETTING_MAXCONNECTINGTIME "MaxConnectingTime"
+#define SETTING_PINGCOUNT "PingCount"
+#define DEFAULT_PINGCOUNT 1
+#define SETTING_CNTDELAY "CntDelay"
+#define SETTING_PROTORETRY "Retry" // IRC setting
+#define STATUSCHANGEDELAY 500 // ms
+#define DEFAULT_MAXRETRIES 0
+#define DEFAULT_INITDELAY 10 // s
+#define DEFAULT_MAXDELAY 900 // s
+#define AFTERCHECK_DELAY 10000 //ms (divided by 2)
+#define CHECKCONTIN_DELAY 10 // s
+#define SETTING_POPUP_DELAYTYPE "PopupDelayType"
+#define SETTING_POPUP_USEWINCOLORS "PopupUseWinColors"
+#define SETTING_POPUP_USEDEFCOLORS "PopupUseDefColors"
+#define SETTING_POPUP_BACKCOLOR "PopupBackColor"
+#define SETTING_POPUP_TEXTCOLOR "PopupTextColor"
+#define SETTING_POPUP_TIMEOUT "PopupTimeout"
+#define SETTING_POPUP_LEFTCLICK "PopupLeftClickAction"
+#define SETTING_POPUP_RIGHTCLICK "PopupRightClickAction"
+#define SETTING_PUOTHER "PopupShowOther"
+#define SETTING_PUCONNLOST "PopupShowConnLost"
+#define SETTING_PUCONNRETRY "PopupShowConnRetry"
+#define SETTING_PURESULT "PopupShowResult"
+#define SETTING_PUSHOWEXTRA "PopupShowExtra"
+#define POPUP_ACT_NOTHING 0
+#define POPUP_ACT_CANCEL 1
+#define POPUP_ACT_CLOSEPOPUP 2
+#define POPUP_DELAYFROMPU 0
+#define POPUP_DELAYCUSTOM 1
+#define POPUP_DELAYPERMANENT 2
+#define LOGINERR_NOTHING 0
+#define LOGINERR_CANCEL 1
+#define LOGINERR_SETDELAY 2
+
+#define IDT_PROCESSACK 0x01
+#define IDT_CHECKCONN 0x02
+#define IDT_AFTERCHECK 0x04
+#define IDT_CHECKCONTIN 0x08
+#define IDT_CHECKCONNECTING 0x10
+
+#define KS_ISENABLED WM_APP + 10
+#define KS_ENABLEITEMS WM_APP + 11
+
+// action
+#define SETTING_ENABLECHECKING "EnableChecking"
+// trigger
+#define TRIGGERNAME "KeepStatus: Connection state change"
+#define TRIGGER_CONNLOST 0x01
+#define TRIGGER_LOGINERROR 0x02
+#define TRIGGER_OTHERLOC 0x04
+#define TRIGGER_CONNRETRY 0x08
+#define TRIGGER_CONNSUCCESS 0x10
+#define TRIGGER_CONNGIVEUP 0x20
+#define SETTING_TRIGGERON "TriggerOn"
+
+struct TConnectionSettings : public PROTOCOLSETTINGEX
+{
+ TConnectionSettings( PROTOACCOUNT* pa );
+ ~TConnectionSettings();
+
+ int lastStatusAckTime; // the time the last status ack was received
+};
+
+/* old; replaced by PROTOCOLSETTINGEX see m_statusplugins.h */
+typedef struct {
+ char *szName; // pointer to protocol modulename
+ WORD status; // the status
+ WORD lastStatus;// last status
+} PROTOCOLSETTING;
+
+/* old; replaced by ME_CS_STATUSCHANGE see m_statusplugins.h */
+// wParam = PROTOCOLSETTING**
+// lParam = 0
+#define ME_CS_STATUSCHANGE "CommonStatus/StatusChange"
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// main.cpp
+
+extern HINSTANCE hInst;
+extern HANDLE hMainThread;
+extern unsigned long mainThreadId;
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// keepstatus.cpp
+
+int LoadMainOptions();
+int CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+
+#endif //__KEEPSTATUS_HEADER
diff --git a/plugins/StatusPlugins/KeepStatus/main.cpp b/plugins/StatusPlugins/KeepStatus/main.cpp new file mode 100644 index 0000000000..09578aef1a --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/main.cpp @@ -0,0 +1,138 @@ +/*
+ KeepStatus Plugin for Miranda-IM (www.miranda-im.org)
+ Copyright 2003-2006 P. Boon
+
+ 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 "../commonstatus.h"
+#include "keepstatus.h"
+#include "../resource.h"
+
+HANDLE hMainThread = 0;
+unsigned long mainThreadId = 0;
+int hLangpack = 0;
+
+HANDLE hCSModuleLoadedHook = NULL;
+
+HANDLE hConnectionEvent = NULL;
+HANDLE hStopRecon = NULL, hEnableProto = NULL, hIsProtoEnabled = NULL, hAnnounceStat = NULL;
+
+MM_INTERFACE mmi;
+LIST_INTERFACE li;
+
+HINSTANCE hInst;
+PLUGINLINK *pluginLink;
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// dll entry point
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
+{
+ hInst=hinstDLL;
+ return TRUE;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// returns plugin's extended information
+
+// {A5BB1B7A-B7CD-4cbb-A7DB-CEB4EB71DA49}
+#define MIID_KEEPSTATUS { 0xa5bb1b7a, 0xb7cd, 0x4cbb, { 0xa7, 0xdb, 0xce, 0xb4, 0xeb, 0x71, 0xda, 0x49 } }
+
+PLUGININFOEX pluginInfoEx={
+ sizeof(PLUGININFOEX),
+ #if defined( _UNICODE )
+ __PLUGIN_NAME __PLATFORM_NAME " (Unicode)",
+ #else
+ __PLUGIN_NAME,
+ #endif
+ PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
+ __DESC,
+ __AUTHOR,
+ __AUTHOREMAIL,
+ __COPYRIGHT,
+ __AUTHORWEB,
+ UNICODE_AWARE,
+ 0,
+ MIID_KEEPSTATUS
+};
+
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ return &pluginInfoEx;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// returns plugin's interfaces information
+
+static const MUUID interfaces[] = { MIID_KEEPSTATUS, MIID_LAST };
+
+extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
+{
+ return interfaces;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// plugin's entry point
+
+int CSModuleLoaded(WPARAM wParam,LPARAM lParam);
+
+INT_PTR StopReconnectingService(WPARAM wParam, LPARAM lParam);
+INT_PTR EnableProtocolService(WPARAM wParam, LPARAM lParam);
+INT_PTR IsProtocolEnabledService(WPARAM wParam, LPARAM lParam);
+INT_PTR AnnounceStatusChangeService(WPARAM wParam, LPARAM lParam);
+
+extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
+{
+ pluginLink = link;
+ mir_getMMI( &mmi );
+ mir_getLI( &li );
+ mir_getLP( &pluginInfoEx );
+
+ InitCommonStatus();
+
+ hCSModuleLoadedHook = HookEvent(ME_SYSTEM_MODULESLOADED, CSModuleLoaded);
+
+ hConnectionEvent = CreateHookableEvent(ME_KS_CONNECTIONEVENT);
+
+ hStopRecon = CreateServiceFunction(MS_KS_STOPRECONNECTING, StopReconnectingService);
+ hEnableProto = CreateServiceFunction(MS_KS_ENABLEPROTOCOL, EnableProtocolService);
+ hIsProtoEnabled = CreateServiceFunction(MS_KS_ISPROTOCOLENABLED, IsProtocolEnabledService);
+ hAnnounceStat = CreateServiceFunction(MS_KS_ANNOUNCESTATUSCHANGE, AnnounceStatusChangeService);
+
+ DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &hMainThread, THREAD_SET_CONTEXT, FALSE, 0);
+ mainThreadId = GetCurrentThreadId();
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// plugin's exit point
+
+extern "C" int __declspec(dllexport) Unload(void)
+{
+ DestroyHookableEvent(hConnectionEvent);
+
+ UnhookEvent(hCSModuleLoadedHook);
+
+ if (hMainThread)
+ CloseHandle(hMainThread);
+ DestroyServiceFunction(hStopRecon);
+ DestroyServiceFunction(hEnableProto);
+ DestroyServiceFunction(hIsProtoEnabled);
+ DestroyServiceFunction(hAnnounceStat);
+
+ return 0;
+}
diff --git a/plugins/StatusPlugins/KeepStatus/options.cpp b/plugins/StatusPlugins/KeepStatus/options.cpp new file mode 100644 index 0000000000..b434f592ca --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/options.cpp @@ -0,0 +1,610 @@ +/*
+ KeepStatus Plugin for Miranda-IM (www.miranda-im.org)
+ Copyright 2003-2006 P. Boon
+
+ 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 "../commonstatus.h"
+#include "keepstatus.h"
+#include "../resource.h"
+
+static BOOL (WINAPI *pfnEnableThemeDialogTexture)(HANDLE, DWORD) = 0;
+
+// Thanks to TioDuke for cleaning up the ListView handling
+#ifndef ListView_GetCheckState
+#define ListView_GetCheckState(w,i) ((((UINT)(SNDMSG((w),LVM_GETITEMSTATE,(WPARAM)(i),LVIS_STATEIMAGEMASK)))>>12)-1)
+#endif
+#ifndef ListView_SetCheckState
+#define ListView_SetCheckState(w,i,f) ListView_SetItemState(w,i,INDEXTOSTATEIMAGEMASK((f)+1),LVIS_STATEIMAGEMASK)
+#endif
+
+// prototypes
+INT_PTR CALLBACK OptDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
+INT_PTR CALLBACK PopupOptDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
+
+static INT_PTR CALLBACK DlgProcKSBasicOpts(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ switch(msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ {
+ LVCOLUMN lvCol;
+ LVITEM lvItem;
+ HWND hList;
+ int i;
+ DBVARIANT dbv;
+
+ SetDlgItemInt(hwndDlg, IDC_MAXRETRIES, DBGetContactSettingByte(NULL,MODULENAME,SETTING_MAXRETRIES,DEFAULT_MAXRETRIES),FALSE);
+ SetDlgItemInt(hwndDlg, IDC_INITDELAY, DBGetContactSettingDword(NULL,MODULENAME,SETTING_INITDELAY,DEFAULT_INITDELAY),FALSE);
+ CheckDlgButton(hwndDlg, IDC_CHECKCONNECTION, DBGetContactSettingByte(NULL, MODULENAME, SETTING_CHECKCONNECTION,FALSE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_SHOWCONNECTIONPOPUPS, (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SHOWCONNECTIONPOPUPS,FALSE)&&ServiceExists(MS_POPUP_SHOWMESSAGE))?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CHKINET, DBGetContactSettingByte(NULL, MODULENAME, SETTING_CHKINET, FALSE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CONTCHECK, DBGetContactSettingByte(NULL, MODULENAME, SETTING_CONTCHECK, FALSE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_BYPING, DBGetContactSettingByte(NULL, MODULENAME, SETTING_BYPING, FALSE)?BST_CHECKED:BST_UNCHECKED);
+ if (!DBGetContactSetting(NULL, MODULENAME, SETTING_PINGHOST, &dbv))
+ SetDlgItemTextA(hwndDlg, IDC_PINGHOST, dbv.pszVal);
+ // proto list
+ hList = GetDlgItem(hwndDlg,IDC_PROTOCOLLIST);
+ ListView_SetExtendedListViewStyleEx(hList, LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES, LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES);
+ memset(&lvCol,0,sizeof(lvCol));
+ lvCol.mask = LVCF_WIDTH|LVCF_TEXT;
+ lvCol.pszText=TranslateT("Protocol");
+ lvCol.cx = 118;
+ ListView_InsertColumn(hList, 0, &lvCol);
+ // fill the list
+ memset(&lvItem,0,sizeof(lvItem));
+ lvItem.mask=LVIF_TEXT|LVIF_PARAM;
+ lvItem.iItem=0;
+ lvItem.iSubItem=0;
+
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ for(i=0;i<count;i++) {
+ if ( !IsSuitableProto( protos[i] ))
+ continue;
+
+ lvItem.pszText = protos[i]->tszAccountName;
+ lvItem.lParam = (LPARAM)protos[i]->szModuleName;
+ ListView_InsertItem(hList,&lvItem);
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s_enabled", protos[i]->szModuleName);
+ ListView_SetCheckState(hList, lvItem.iItem, DBGetContactSettingByte(NULL, MODULENAME, dbSetting, TRUE));
+ lvItem.iItem++;
+ }
+ EnableWindow(GetDlgItem(hwndDlg, IDC_MAXRETRIES), IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_SHOWCONNECTIONPOPUPS), ServiceExists(MS_POPUP_SHOWMESSAGE)&&IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_INITDELAY), IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PROTOCOLLIST), IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CHKINET), IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CONTCHECK), IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_BYPING), (IsDlgButtonChecked(hwndDlg, IDC_CONTCHECK)&&IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION))?TRUE:FALSE);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PINGHOST), (IsDlgButtonChecked(hwndDlg, IDC_CONTCHECK))&&(IsDlgButtonChecked(hwndDlg, IDC_BYPING)&&IsDlgButtonChecked(hwndDlg, IDC_CHECKCONNECTION))?TRUE:FALSE);
+ }
+ break;
+
+ case WM_COMMAND:
+ if ( ((HIWORD(wParam) == EN_CHANGE) || (HIWORD(wParam) == BN_CLICKED)) && ((HWND)lParam == GetFocus()) )
+ SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0);
+ // something changed
+ switch (LOWORD(wParam)) {
+ case IDC_CHECKCONNECTION:
+ case IDC_CONTCHECK:
+ case IDC_BYPING:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_MAXRETRIES), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_SHOWCONNECTIONPOPUPS), ServiceExists(MS_POPUP_SHOWMESSAGE)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_INITDELAY), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PROTOCOLLIST), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CHKINET), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CONTCHECK), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_BYPING), (IsDlgButtonChecked(hwndDlg, IDC_CONTCHECK)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0))?TRUE:FALSE);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PINGHOST), (IsDlgButtonChecked(hwndDlg, IDC_CONTCHECK))&&(IsDlgButtonChecked(hwndDlg, IDC_BYPING)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0))?TRUE:FALSE);
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ if (((NMHDR*)lParam)->idFrom == IDC_PROTOCOLLIST) {
+ switch(((NMHDR*)lParam)->code) {
+ case LVN_ITEMCHANGED:
+ {
+ NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam;
+ if (IsWindowVisible(GetDlgItem(hwndDlg,IDC_PROTOCOLLIST)) && ((nmlv->uNewState^nmlv->uOldState)&LVIS_STATEIMAGEMASK))
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ }
+ break;
+ } }
+
+ if (((LPNMHDR)lParam)->code == PSN_APPLY) {
+ int i;
+ LVITEM lvItem;
+ HWND hList;
+
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_MAXRETRIES, (BYTE)GetDlgItemInt(hwndDlg,IDC_MAXRETRIES, NULL, FALSE));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_CHECKCONNECTION, (BYTE)SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SHOWCONNECTIONPOPUPS, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOWCONNECTIONPOPUPS));
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_INITDELAY, (DWORD)GetDlgItemInt(hwndDlg,IDC_INITDELAY, NULL, FALSE));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_CHKINET, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_CHKINET));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_CONTCHECK, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_CONTCHECK));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_BYPING, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_BYPING));
+ if (IsDlgButtonChecked(hwndDlg, IDC_BYPING)) {
+ int len;
+ char *host;
+
+ len = SendDlgItemMessage(hwndDlg, IDC_PINGHOST, WM_GETTEXTLENGTH, 0, 0);
+ if (len > 0) {
+ host = ( char* )malloc(len+1);
+ if (host != NULL) {
+ memset(host, '\0', len+1);
+ GetDlgItemTextA(hwndDlg, IDC_PINGHOST, host, len+1);
+ DBWriteContactSettingString(NULL, MODULENAME, SETTING_PINGHOST, host);
+ }
+ }
+ }
+ hList = GetDlgItem(hwndDlg,IDC_PROTOCOLLIST);
+ memset(&lvItem,0,sizeof(lvItem));
+ lvItem.mask=LVIF_PARAM;
+ for (i=0;i<ListView_GetItemCount(hList);i++) {
+ lvItem.iItem=i;
+ lvItem.iSubItem=0;
+ ListView_GetItem(hList, &lvItem);
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s_enabled", (char *)lvItem.lParam);
+ DBWriteContactSettingByte(NULL, MODULENAME, dbSetting, (BYTE)ListView_GetCheckState(hList, lvItem.iItem));
+ }
+ }
+ break;
+ }
+
+ return 0;
+}
+
+static INT_PTR CALLBACK DlgProcKSAdvOpts(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ switch(msg) {
+ case WM_INITDIALOG: {
+ TranslateDialogDefault(hwndDlg);
+ SetDlgItemInt(hwndDlg, IDC_MAXDELAY, DBGetContactSettingDword(NULL,MODULENAME,SETTING_MAXDELAY,DEFAULT_MAXDELAY),FALSE);
+ SetDlgItemInt(hwndDlg, IDC_MAXCONNECTINGTIME, DBGetContactSettingDword(NULL,MODULENAME,SETTING_MAXCONNECTINGTIME,0),FALSE);
+ CheckDlgButton(hwndDlg, IDC_INCREASEEXPONENTIAL, DBGetContactSettingByte(NULL, MODULENAME, SETTING_INCREASEEXPONENTIAL,FALSE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CNCOTHERLOC, (DBGetContactSettingByte(NULL, MODULENAME, SETTING_CNCOTHERLOC, FALSE)&&(CallService(MS_SYSTEM_GETVERSION,0,0) >= 0x00040000))?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_LOGINERR, DBGetContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_NOTHING)==LOGINERR_NOTHING?FALSE:TRUE);
+ CheckDlgButton(hwndDlg, IDC_CHECKAPMRESUME, (DBGetContactSettingByte(NULL, MODULENAME, SETTING_CHECKAPMRESUME, FALSE)&&(CallService(MS_SYSTEM_GETVERSION,0,0) >= 0x00040000))?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_FIRSTOFFLINE, (DBGetContactSettingByte(NULL, MODULENAME, SETTING_FIRSTOFFLINE, FALSE)));
+ CheckDlgButton(hwndDlg, IDC_NOLOCKED, (DBGetContactSettingByte(NULL, MODULENAME, SETTING_NOLOCKED, FALSE)));
+ SetDlgItemInt(hwndDlg, IDC_LOGINERR_DELAY, DBGetContactSettingDword(NULL, MODULENAME, SETTING_LOGINERR_DELAY, DEFAULT_MAXDELAY), FALSE);
+ SetDlgItemInt(hwndDlg, IDC_PINGCOUNT, DBGetContactSettingWord(NULL, MODULENAME, SETTING_PINGCOUNT, DEFAULT_PINGCOUNT), FALSE);
+ SetDlgItemInt(hwndDlg, IDC_CNTDELAY, DBGetContactSettingDword(NULL, MODULENAME, SETTING_CNTDELAY, CHECKCONTIN_DELAY), FALSE);
+ switch (DBGetContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_CANCEL)) {
+ case LOGINERR_SETDELAY:
+ CheckRadioButton(hwndDlg, IDC_LOGINERR_CANCEL, IDC_LOGINERR_SETDELAY, IDC_LOGINERR_SETDELAY);
+ break;
+ default:
+ case LOGINERR_CANCEL:
+ CheckRadioButton(hwndDlg, IDC_LOGINERR_CANCEL, IDC_LOGINERR_SETDELAY, IDC_LOGINERR_CANCEL);
+ break;
+ }
+ SendMessage(hwndDlg, KS_ENABLEITEMS, 0, 0);
+ break;
+ }
+ case WM_COMMAND:
+ if ( ((HIWORD(wParam) == EN_CHANGE) || (HIWORD(wParam) == BN_CLICKED)) && ((HWND)lParam == GetFocus()) )
+ SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0);
+ // something changed
+ switch (LOWORD(wParam)) {
+ case IDC_INCREASEEXPONENTIAL:
+ case IDC_LOGINERR:
+ SendMessage(hwndDlg, KS_ENABLEITEMS, 0, 0);
+ break;
+
+ case IDC_LOGINERR_CANCEL:
+ case IDC_LOGINERR_SETDELAY:
+ CheckRadioButton(hwndDlg, IDC_LOGINERR_CANCEL, IDC_LOGINERR_SETDELAY, LOWORD(wParam));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LOGINERR_DELAY), IsDlgButtonChecked(hwndDlg, IDC_LOGINERR_SETDELAY)&&IsDlgButtonChecked(hwndDlg, IDC_LOGINERR)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == PSN_APPLY) {
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_INCREASEEXPONENTIAL, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_INCREASEEXPONENTIAL));
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_MAXDELAY, (DWORD)GetDlgItemInt(hwndDlg,IDC_MAXDELAY, NULL, FALSE));
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_MAXCONNECTINGTIME, (DWORD)GetDlgItemInt(hwndDlg,IDC_MAXCONNECTINGTIME, NULL, FALSE));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_FIRSTOFFLINE, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_FIRSTOFFLINE));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_NOLOCKED, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_NOLOCKED));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_CNCOTHERLOC, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_CNCOTHERLOC));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_LOGINERR));
+ if (IsDlgButtonChecked(hwndDlg, IDC_LOGINERR)) {
+ if (IsDlgButtonChecked(hwndDlg, IDC_LOGINERR_SETDELAY)) {
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_SETDELAY);
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_LOGINERR_DELAY, GetDlgItemInt(hwndDlg, IDC_LOGINERR_DELAY, NULL, FALSE));
+ }
+ else DBWriteContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_CANCEL);
+ }
+ else DBWriteContactSettingByte(NULL, MODULENAME, SETTING_LOGINERR, LOGINERR_NOTHING);
+
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_CHECKAPMRESUME, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_CHECKAPMRESUME));
+ DBWriteContactSettingWord(NULL, MODULENAME, SETTING_PINGCOUNT, (WORD)GetDlgItemInt(hwndDlg,IDC_PINGCOUNT, NULL, FALSE));
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_CNTDELAY, (DWORD)GetDlgItemInt(hwndDlg,IDC_CNTDELAY, NULL, FALSE)==0?CHECKCONTIN_DELAY:GetDlgItemInt(hwndDlg,IDC_CNTDELAY, NULL, FALSE));
+ }
+ break;
+
+ case KS_ENABLEITEMS:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_INCREASEEXPONENTIAL), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_MAXCONNECTINGTIME), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CNCOTHERLOC), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0)&&(CallService(MS_SYSTEM_GETVERSION,0,0) >= 0x00040000));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LOGINERR), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LOGINERR_SETDELAY), IsDlgButtonChecked(hwndDlg, IDC_LOGINERR)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LOGINERR_DELAY), IsDlgButtonChecked(hwndDlg, IDC_LOGINERR_SETDELAY)&&IsDlgButtonChecked(hwndDlg, IDC_LOGINERR)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_LOGINERR_CANCEL), IsDlgButtonChecked(hwndDlg, IDC_LOGINERR)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_MAXDELAY), (IsDlgButtonChecked(hwndDlg, IDC_INCREASEEXPONENTIAL)&&SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0))?TRUE:FALSE);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CHECKAPMRESUME), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0)&&(CallService(MS_SYSTEM_GETVERSION,0,0) >= 0x00040000));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_FIRSTOFFLINE), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_NOLOCKED), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CHECKCONNECTION, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PINGCOUNT), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_BYPING, 0));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CNTDELAY), SendMessage(GetParent(hwndDlg), KS_ISENABLED, (WPARAM)IDC_CONTCHECK, 0));
+ break;
+
+ case WM_SHOWWINDOW:
+ if (wParam)
+ SendMessage(hwndDlg, KS_ENABLEITEMS, 0, 0);
+
+ break;
+ }
+
+ return 0;
+}
+
+static INT_PTR CALLBACK DlgProcKsTabs(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ static HWND hBasicTab;
+
+ switch(msg) {
+ case WM_INITDIALOG:
+ {
+ int tabCount;
+ HWND hTab, hShow, hPage;
+ TCITEM tci;
+ RECT rcTabs, rcOptions, rcPage;
+
+ TranslateDialogDefault(hwndDlg);
+
+ // set tabs
+ tabCount = 0;
+ hTab = GetDlgItem(hwndDlg, IDC_TABS);
+ GetWindowRect(hTab, &rcTabs);
+ GetWindowRect(hwndDlg, &rcOptions);
+ ZeroMemory(&tci, sizeof(TCITEM));
+
+ // basic tab
+ tci.mask = TCIF_TEXT|TCIF_PARAM;
+ tci.pszText = TranslateT("Basic");
+ hShow = hBasicTab = hPage = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPT_KS_BASIC), hwndDlg, DlgProcKSBasicOpts, (LPARAM)GetParent(hwndDlg));
+ if (pfnEnableThemeDialogTexture)
+ pfnEnableThemeDialogTexture(hPage, ETDT_ENABLETAB);
+
+ tci.lParam = (LPARAM)hPage;
+ GetClientRect(hPage, &rcPage);
+ MoveWindow(hPage, (rcTabs.left - rcOptions.left) + ((rcTabs.right-rcTabs.left)-(rcPage.right-rcPage.left))/2, 10 + (rcTabs.top - rcOptions.top) + ((rcTabs.bottom-rcTabs.top)-(rcPage.bottom-rcPage.top))/2, rcPage.right-rcPage.left, rcPage.bottom-rcPage.top, TRUE);
+ ShowWindow(hPage, SW_HIDE);
+ TabCtrl_InsertItem(hTab, tabCount++, &tci);
+
+ // advanced tab
+ tci.mask = TCIF_TEXT|TCIF_PARAM;
+ tci.pszText = TranslateT("Advanced");
+ hPage = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_OPT_KS_ADV), hwndDlg, DlgProcKSAdvOpts, (LPARAM)GetParent(hwndDlg));
+ if (pfnEnableThemeDialogTexture) {
+ pfnEnableThemeDialogTexture(hPage, ETDT_ENABLETAB);
+ }
+ tci.lParam = (LPARAM)hPage;
+ GetClientRect(hPage, &rcPage);
+ MoveWindow(hPage, (rcTabs.left - rcOptions.left) + ((rcTabs.right-rcTabs.left)-(rcPage.right-rcPage.left))/2, 10 + (rcTabs.top - rcOptions.top) + ((rcTabs.bottom-rcTabs.top)-(rcPage.bottom-rcPage.top))/2, rcPage.right-rcPage.left, rcPage.bottom-rcPage.top, TRUE);
+ ShowWindow(hPage, SW_HIDE);
+ TabCtrl_InsertItem(hTab, tabCount++, &tci);
+ ShowWindow(hShow, SW_SHOW);
+ }
+ break;
+
+ case KS_ISENABLED:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, (LPARAM)IsDlgButtonChecked(hBasicTab, wParam));
+ return TRUE;
+
+ case PSM_CHANGED:
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case WM_NOTIFY:
+ if ( (((NMHDR*)lParam)->idFrom == IDC_TABS) ) {
+ if (((NMHDR*)lParam)->code == TCN_SELCHANGING) {
+ TCITEM tci;
+
+ tci.mask = TCIF_PARAM;
+ TabCtrl_GetItem(GetDlgItem(hwndDlg, IDC_TABS), TabCtrl_GetCurSel(GetDlgItem(hwndDlg, IDC_TABS)), &tci);
+ ShowWindow((HWND)tci.lParam, SW_HIDE);
+ }
+ else if (((NMHDR*)lParam)->code == TCN_SELCHANGE) {
+ TCITEM tci;
+
+ tci.mask = TCIF_PARAM;
+ TabCtrl_GetItem(GetDlgItem(hwndDlg, IDC_TABS), TabCtrl_GetCurSel(GetDlgItem(hwndDlg, IDC_TABS)), &tci);
+ ShowWindow((HWND)tci.lParam, SW_SHOW);
+ }
+ }
+ if (((LPNMHDR)lParam)->code == PSN_APPLY) {
+ TCITEM tci;
+ int i, count;
+
+ tci.mask = TCIF_PARAM;
+ count = TabCtrl_GetItemCount(GetDlgItem(hwndDlg, IDC_TABS));
+ for (i=0;i<count;i++) {
+ TabCtrl_GetItem(GetDlgItem(hwndDlg,IDC_TABS), i, &tci);
+ SendMessage((HWND)tci.lParam, WM_NOTIFY, 0, lParam);
+ }
+ // let main reload options
+ LoadMainOptions();
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+INT_PTR CALLBACK PopupOptDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ static bool bFreeze = false;
+
+ switch(msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+
+ bFreeze = true;
+
+ // left action
+ switch ( DBGetContactSettingByte( NULL, MODULENAME, SETTING_POPUP_LEFTCLICK, POPUP_ACT_CANCEL )) {
+ case POPUP_ACT_CLOSEPOPUP:
+ CheckDlgButton(hwndDlg, IDC_LCLOSE, BST_CHECKED);
+ break;
+
+ case POPUP_ACT_CANCEL:
+ CheckDlgButton(hwndDlg, IDC_LCANCEL, BST_CHECKED);
+ break;
+
+ case POPUP_ACT_NOTHING:
+ default:
+ CheckDlgButton(hwndDlg, IDC_LNOTHING, BST_CHECKED);
+ break;
+ }
+ // right action
+ switch ( DBGetContactSettingByte( NULL, MODULENAME, SETTING_POPUP_RIGHTCLICK, POPUP_ACT_CANCEL )) {
+ case POPUP_ACT_CLOSEPOPUP:
+ CheckDlgButton(hwndDlg, IDC_RCLOSE, BST_CHECKED);
+ break;
+
+ case POPUP_ACT_CANCEL:
+ CheckDlgButton(hwndDlg, IDC_RCANCEL, BST_CHECKED);
+ break;
+
+ case POPUP_ACT_NOTHING:
+ default:
+ CheckDlgButton(hwndDlg, IDC_RNOTHING, BST_CHECKED);
+ break;
+ }
+ // delay
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAYCUSTOM), ServiceExists(MS_POPUP_ADDPOPUPEX));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAYFROMPU), ServiceExists(MS_POPUP_ADDPOPUPEX));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAYPERMANENT), ServiceExists(MS_POPUP_ADDPOPUPEX));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAY), ServiceExists(MS_POPUP_ADDPOPUPEX));
+ switch (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_DELAYTYPE, POPUP_DELAYFROMPU)) {
+ case POPUP_DELAYCUSTOM:
+ CheckDlgButton(hwndDlg, IDC_DELAYCUSTOM, BST_CHECKED);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAY), ServiceExists(MS_POPUP_ADDPOPUPEX));
+ break;
+
+ case POPUP_DELAYPERMANENT:
+ CheckDlgButton(hwndDlg, IDC_DELAYPERMANENT, BST_CHECKED);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAY), FALSE);
+ break;
+
+ case POPUP_DELAYFROMPU:
+ default:
+ CheckDlgButton(hwndDlg, IDC_DELAYFROMPU, BST_CHECKED);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAY), FALSE);
+ break;
+ }
+ // delay
+ SetDlgItemInt(hwndDlg,IDC_DELAY, DBGetContactSettingDword(NULL, MODULENAME, SETTING_POPUP_TIMEOUT, 0), FALSE);
+ // back color
+ SendDlgItemMessage(hwndDlg,IDC_BGCOLOR,CPM_SETCOLOUR,0,DBGetContactSettingDword(NULL, MODULENAME, SETTING_POPUP_BACKCOLOR, 0xAAAAAA));
+ // text
+ SendDlgItemMessage(hwndDlg,IDC_TEXTCOLOR,CPM_SETCOLOUR,0,DBGetContactSettingDword(NULL, MODULENAME, SETTING_POPUP_TEXTCOLOR, 0x0000CC));
+ // wincolors
+ CheckDlgButton(hwndDlg, IDC_WINCOLORS, DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEWINCOLORS, 0));
+ // defaultcolors
+ CheckDlgButton(hwndDlg, IDC_DEFAULTCOLORS, ( (DBGetContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEDEFCOLORS, 0)) && (!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)) ));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_BGCOLOR), ((!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)) && (!IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS))));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTCOLOR), ((!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)) && (!IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS))));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DEFAULTCOLORS), (!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WINCOLORS), (!IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS)));
+ // popup types
+ CheckDlgButton(hwndDlg, IDC_PUCONNLOST, DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUCONNLOST, TRUE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_PUOTHER, DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUOTHER, TRUE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_PUCONNRETRY, DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUCONNRETRY, TRUE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_PURESULT, DBGetContactSettingByte(NULL, MODULENAME, SETTING_PURESULT, TRUE)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_PUSHOWEXTRA, DBGetContactSettingByte(NULL, MODULENAME, SETTING_PUSHOWEXTRA, TRUE)?BST_CHECKED:BST_UNCHECKED);
+ bFreeze = false;
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDC_WINCOLORS:
+ case IDC_DEFAULTCOLORS:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_BGCOLOR), ((!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)) && (!IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS))));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_TEXTCOLOR), ((!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)) && (!IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS))));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DEFAULTCOLORS), (!IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS)));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WINCOLORS), (!IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS)));
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_DELAYFROMPU:
+ case IDC_DELAYPERMANENT:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAY), FALSE);
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_DELAYCUSTOM:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DELAY), TRUE);
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_BGCOLOR:
+ case IDC_TEXTCOLOR:
+ case IDC_DELAY:
+ case IDC_LNOTHING:
+ case IDC_LCLOSE:
+ case IDC_LCANCEL:
+ case IDC_RNOTHING:
+ case IDC_RCLOSE:
+ case IDC_RCANCEL:
+ case IDC_PUCONNLOST:
+ case IDC_PUOTHER:
+ case IDC_PUCONNRETRY:
+ case IDC_PURESULT:
+ case IDC_PUSHOWEXTRA:
+ if ( !bFreeze )
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_PREV:
+ {
+ POPUPDATAEX ppd = { NULL };
+
+ ppd.lchContact = NULL;
+ ppd.lchIcon = (HICON)CallService(MS_SKIN_LOADICON, (WPARAM)SKINICON_STATUS_OFFLINE, 0);
+ strcpy( ppd.lpzContactName, Translate("KeepStatus") );
+ strcpy( ppd.lpzText, Translate("You broke the Internet!") );
+ if (IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS))
+ ppd.colorBack = GetSysColor(COLOR_BTNFACE);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS))
+ ppd.colorBack = (COLORREF)NULL;
+ else
+ ppd.colorBack = SendDlgItemMessage(hwndDlg,IDC_BGCOLOR,CPM_GETCOLOUR,0,0);
+ if (IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS))
+ ppd.colorText = GetSysColor(COLOR_WINDOWTEXT);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS))
+ ppd.colorText = (COLORREF)NULL;
+ else
+ ppd.colorText = SendDlgItemMessage(hwndDlg,IDC_TEXTCOLOR,CPM_GETCOLOUR,0,0);
+ ppd.PluginWindowProc = ( WNDPROC )PopupDlgProc;
+ ppd.PluginData = NULL;
+ if (!ServiceExists(MS_POPUP_ADDPOPUPEX))
+ CallService(MS_POPUP_ADDPOPUP, (WPARAM)&ppd, 0);
+ else {
+ if (IsDlgButtonChecked(hwndDlg, IDC_DELAYFROMPU))
+ ppd.iSeconds = 0;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_DELAYCUSTOM))
+ ppd.iSeconds = GetDlgItemInt(hwndDlg, IDC_DELAY, NULL, FALSE);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_DELAYPERMANENT))
+ ppd.iSeconds = -1;
+ CallService(MS_POPUP_ADDPOPUPEX, (WPARAM)&ppd, 0);
+ }
+ }
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == PSN_APPLY) {
+ // left action
+ if (IsDlgButtonChecked(hwndDlg, IDC_LNOTHING))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_LEFTCLICK, POPUP_ACT_NOTHING);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_LCLOSE))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_LEFTCLICK, POPUP_ACT_CLOSEPOPUP);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_LCANCEL))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_LEFTCLICK, POPUP_ACT_CANCEL);
+ // right action
+ if (IsDlgButtonChecked(hwndDlg, IDC_RNOTHING))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_RIGHTCLICK, POPUP_ACT_NOTHING);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_RCLOSE))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_RIGHTCLICK, POPUP_ACT_CLOSEPOPUP);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_RCANCEL))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_RIGHTCLICK, POPUP_ACT_CANCEL);
+ // delay
+ if (IsDlgButtonChecked(hwndDlg, IDC_DELAYFROMPU))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_DELAYTYPE, POPUP_DELAYFROMPU);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_DELAYCUSTOM))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_DELAYTYPE, POPUP_DELAYCUSTOM);
+ else if (IsDlgButtonChecked(hwndDlg, IDC_DELAYPERMANENT))
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_DELAYTYPE, POPUP_DELAYPERMANENT);
+ // delay
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_POPUP_TIMEOUT, GetDlgItemInt(hwndDlg,IDC_DELAY, NULL, FALSE));
+ // back color
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_POPUP_BACKCOLOR, SendDlgItemMessage(hwndDlg,IDC_BGCOLOR,CPM_GETCOLOUR,0,0));
+ // text color
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_POPUP_TEXTCOLOR, SendDlgItemMessage(hwndDlg,IDC_TEXTCOLOR,CPM_GETCOLOUR,0,0));
+ // use win
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEWINCOLORS, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_WINCOLORS));
+ // use def
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_POPUP_USEDEFCOLORS, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_DEFAULTCOLORS));
+ // store types
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_PUCONNLOST, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PUCONNLOST));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_PUOTHER, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PUOTHER));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_PUCONNRETRY, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PUCONNRETRY));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_PURESULT, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PURESULT));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_PUSHOWEXTRA, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_PUSHOWEXTRA));
+ }
+ break;
+ }
+
+ return 0;
+}
+
+int OptionsInit(WPARAM wparam,LPARAM lparam)
+{
+ if ( IsWinVerXPPlus()) {
+ HMODULE hUxTheme = GetModuleHandle(_T("uxtheme.dll"));
+ if (hUxTheme)
+ pfnEnableThemeDialogTexture = (BOOL (WINAPI *)(HANDLE, DWORD))GetProcAddress(hUxTheme, "EnableThemeDialogTexture");
+ }
+
+ OPTIONSDIALOGPAGE odp = { 0 };
+ odp.cbSize = sizeof(odp);
+ odp.hInstance = hInst;
+ odp.pszGroup = LPGEN("Status");
+ odp.pszTitle = LPGEN("KeepStatus");
+ odp.flags = ODPF_BOLDGROUPS;
+
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_TABS);
+ odp.pfnDlgProc = DlgProcKsTabs;
+ CallService(MS_OPT_ADDPAGE,wparam,(LPARAM)&odp);
+
+ if ( ServiceExists( MS_POPUP_ADDPOPUP )) {
+ ZeroMemory(&odp,sizeof(odp));
+ odp.cbSize = sizeof(odp);
+ odp.position = 150000000;
+ odp.pszGroup = LPGEN("PopUps");
+ odp.groupPosition = 910000000;
+ odp.hInstance = hInst;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_PUOPT_KEEPSTATUS);
+ odp.pszTitle = LPGEN("KeepStatus");
+ odp.pfnDlgProc = PopupOptDlgProc;
+ odp.flags = ODPF_BOLDGROUPS;
+ CallService(MS_OPT_ADDPAGE,wparam,(LPARAM)&odp);
+ }
+
+ return 0;
+}
diff --git a/plugins/StatusPlugins/KeepStatus/pack.cmd b/plugins/StatusPlugins/KeepStatus/pack.cmd new file mode 100644 index 0000000000..fac897d0fe --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/pack.cmd @@ -0,0 +1,44 @@ +@echo off
+set PluginName=KeepStatus
+nmake -f %PluginName%.mak CFG="%PluginName% - Win32 Release"
+nmake -f %PluginName%.mak CFG="%PluginName% - Win32 Release Unicode"
+if errorlevel 1 (
+ echo "Make failed"
+ goto :eof )
+
+del "%temp%\%PluginName%.zip" > nul
+del "%temp%\%PluginName%W.zip" > nul
+del "%temp%\%PluginName%Src.zip" > nul
+del *.user > nul
+
+rd /S /Q Release
+rd /S /Q Release_Unicode
+
+for /F "tokens=1-6 delims=, " %%i in (buildnumber.h) do call :Translate %%i %%j %%k %%l %%m %%n
+
+"%PROGRAMFILES%\7-zip\7z.exe" a -tzip -r- -mx=9 "%temp%\%PluginName%.zip" ../../../bin/Release/Plugins/%PluginName%.dll ../statusplugins-translation.txt ../m_statusplugins.h
+del ../../../bin/Release/Plugins/%PluginName%.dll >nul
+
+"%PROGRAMFILES%\7-zip\7z.exe" a -tzip -r- -mx=9 "%temp%\%PluginName%W.zip" "../../../bin/Release Unicode/Plugins/%PluginName%.dll" ../statusplugins-translation.txt ../m_statusplugins.h
+del "../../../bin/Release Unicode/Plugins/%PluginName%.dll" >nul
+
+if exist "%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" (
+ "%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" KeepStatus_9.vcproj /Build "Release Unicode|x64"
+ copy "Release Unicode64\Plugins\%PluginName%.dll" .
+ "%PROGRAMFILES%\7-zip\7z.exe" a -tzip -r0 -mx=9 "%temp%\%PluginName%64.zip" %PluginName%.dll ../statusplugins-translation.txt ../m_statusplugins.h
+ del %PluginName%.dll
+ rd /S /Q "Release Unicode64"
+ )
+
+cd ../..
+"%PROGRAMFILES%\7-zip\7z.exe" a -tzip -r0 -mx=9 "%temp%\%PluginName%Src.zip" -ir!helpers/*.* -ir!StatusPlugins/*.* -ir!NewTriggerPlugin/*.* -xr!StatusPlugins/AdvancedAutoAway/* -xr!StatusPlugins/StartupStatus/* -xr!.svn -x!*.cmd
+
+goto :eof
+
+:Translate
+if %2 == __FILEVERSION_STRING (
+ pushd ..
+ perl lpgen.pl status version %3 %4 %5 %6
+ popd)
+
+goto :eof
diff --git a/plugins/StatusPlugins/KeepStatus/trigger_keepstatus.cpp b/plugins/StatusPlugins/KeepStatus/trigger_keepstatus.cpp new file mode 100644 index 0000000000..adbc8716c8 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/trigger_keepstatus.cpp @@ -0,0 +1,181 @@ +/*
+ KeepStatus Plugin for Miranda-IM (www.miranda-im.org)
+ Copyright 2003-2006 P. Boon
+
+ 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 "../commonstatus.h"
+#include "keepstatus.h"
+#include "../resource.h"
+#include <m_trigger.h>
+
+extern HINSTANCE hInst;
+static HANDLE hKeepStatusHook;
+
+static INT_PTR CALLBACK DlgProcOptsTriggerKeepStatus(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
+
+ switch (msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ {
+ /* lParam = (LPARAM)(DWORD)triggerID, or 0 if this is a new trigger */
+ DWORD triggerID = (DWORD)lParam;
+ CheckDlgButton(hwndDlg, IDC_CONNLOST, (DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0)&TRIGGER_CONNLOST)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_LOGINERROR, (DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0)&TRIGGER_LOGINERROR)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_OTHERLOC, (DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0)&TRIGGER_OTHERLOC)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CONNRETRY, (DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0)&TRIGGER_CONNRETRY)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CONNSUCCESS, (DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0)&TRIGGER_CONNSUCCESS)?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CONNGIVEUP, (DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0)&TRIGGER_CONNGIVEUP)?BST_CHECKED:BST_UNCHECKED);
+ break;
+ }
+
+ case WM_COMMAND:
+ break;
+
+ case TM_ADDTRIGGER:
+ {
+ // wParam = (WPARAM)(DWORD)triggerID
+ DWORD triggerID;
+ int flags;
+
+ triggerID = (DWORD)wParam;
+ flags = 0;
+ flags |= IsDlgButtonChecked(hwndDlg, IDC_CONNLOST)?TRIGGER_CONNLOST:0;
+ flags |= IsDlgButtonChecked(hwndDlg, IDC_LOGINERROR)?TRIGGER_LOGINERROR:0;
+ flags |= IsDlgButtonChecked(hwndDlg, IDC_OTHERLOC)?TRIGGER_OTHERLOC:0;
+ flags |= IsDlgButtonChecked(hwndDlg, IDC_CONNRETRY)?TRIGGER_CONNRETRY:0;
+ flags |= IsDlgButtonChecked(hwndDlg, IDC_CONNSUCCESS)?TRIGGER_CONNSUCCESS:0;
+ flags |= IsDlgButtonChecked(hwndDlg, IDC_CONNGIVEUP)?TRIGGER_CONNGIVEUP:0;
+ DBWriteTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, (WORD)flags);
+ break;
+ }
+
+ case TM_DELTRIGGER:
+ {
+ /* wParam = (WPARAM)(DWORD)triggerID */
+ // wParam = triggerID
+ DWORD triggerID;
+ REMOVETRIGGERSETTINGS rts;
+
+ triggerID = (DWORD)wParam;
+ rts.cbSize = sizeof(REMOVETRIGGERSETTINGS);
+ rts.prefix = PREFIX_TRIGGERID;
+ rts.id = triggerID;
+ rts.hContact = NULL;
+ rts.szModule = MODULENAME;
+ CallService(MS_TRIGGER_REMOVESETTINGS, 0, (LPARAM)&rts);
+ break;
+ }
+
+ case WM_DESTROY:
+ break;
+ }
+
+ return FALSE;
+}
+
+static int KeepStatusEvent(WPARAM wParam, LPARAM lParam) {
+
+ DWORD triggerID;
+ TRIGGERDATA td;
+ int flags;
+
+ triggerID = 0;
+ do {
+ triggerID = (DWORD)CallService(MS_TRIGGER_FINDNEXTTRIGGERID, triggerID, (LPARAM)TRIGGERNAME);
+ if (triggerID == 0)
+ continue;
+
+ ZeroMemory(&td, sizeof(TRIGGERDATA));
+ td.cbSize = sizeof(TRIGGERDATA);
+ flags = DBGetTriggerSettingWord(triggerID, NULL, MODULENAME, SETTING_TRIGGERON, 0);
+ switch (wParam) {
+ case KS_CONN_STATE_LOST:
+ if (!(flags&TRIGGER_CONNLOST))
+ continue;
+
+ td.dFlags |= DF_PROTO;
+ td.szProto = (char *)lParam;
+ break;
+ case KS_CONN_STATE_LOGINERROR:
+ if (!(flags&TRIGGER_LOGINERROR))
+ continue;
+
+ td.dFlags |= DF_PROTO;
+ td.szProto = (char *)lParam;
+ break;
+ case KS_CONN_STATE_OTHERLOCATION:
+ if (!(flags&TRIGGER_OTHERLOC))
+ continue;
+
+ td.dFlags |= DF_PROTO;
+ td.szProto = (char *)lParam;
+ break;
+ case KS_CONN_STATE_RETRY:
+ if (!(flags&TRIGGER_CONNRETRY))
+ continue;
+
+ break;
+ case KS_CONN_STATE_STOPPEDCHECKING:
+ if ( (lParam) && (!(flags&TRIGGER_CONNSUCCESS)) )
+ continue;
+
+ if ( (!lParam) && (!(flags&TRIGGER_CONNGIVEUP)) )
+ continue;
+
+ break;
+
+ default:
+ continue;
+ }
+
+ REPORTINFO ri = { 0 };
+ ri.cbSize = sizeof(REPORTINFO);
+ ri.flags = TRG_PERFORM;
+ ri.triggerID = triggerID;
+ ri.td = &td;
+ CallService(MS_TRIGGER_REPORTEVENT, 0, (LPARAM)&ri);
+ }
+ while (triggerID != 0);
+
+ return 0;
+}
+
+int RegisterTrigger()
+{
+ if (!ServiceExists(MS_TRIGGER_REGISTERTRIGGER))
+ return -1;
+
+ hKeepStatusHook = HookEvent(ME_KS_CONNECTIONEVENT, KeepStatusEvent);
+
+ TRIGGERREGISTER tr = { 0 };
+ tr.cbSize = sizeof(TRIGGERREGISTER);
+ tr.pszName = TRIGGERNAME;
+ tr.hInstance = hInst;
+ tr.pfnDlgProc = DlgProcOptsTriggerKeepStatus;
+ tr.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_KS_TRIGGER);
+ tr.dFlags = DF_PROTO;
+ /* register the trigger at the TriggerPlugin */
+ CallService(MS_TRIGGER_REGISTERTRIGGER, 0, (LPARAM)&tr);
+
+ return 0;
+}
+
+int DeInitTrigger()
+{
+ UnhookEvent(hKeepStatusHook);
+ return 0;
+}
diff --git a/plugins/StatusPlugins/KeepStatus/vc6.rc b/plugins/StatusPlugins/KeepStatus/vc6.rc new file mode 100644 index 0000000000..730cf1e916 --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/vc6.rc @@ -0,0 +1,2 @@ +#include "..\resource.rc"
+#include "..\version.rc"
\ No newline at end of file diff --git a/plugins/StatusPlugins/KeepStatus/version.h b/plugins/StatusPlugins/KeepStatus/version.h new file mode 100644 index 0000000000..26a301582a --- /dev/null +++ b/plugins/StatusPlugins/KeepStatus/version.h @@ -0,0 +1,56 @@ +// Set the version number here - it will affect the version resource and the version field of the pluginInfo structure
+// (Be careful that you don't have the resource file open when you change this and rebuild, otherwise the changes may not
+// take effect within the version resource)
+// Do not forget to define symbol "_DEBUG" for resource compiler if you use debug configuration (in VisualStudio you can
+// find it under Project properties - Configuration properties - Resource - General - Preprocessor definitions)
+
+// plugin version part
+#define __MAJOR_VERSION 0
+#define __MINOR_VERSION 8
+#define __RELEASE_NUM 0
+#define __BUILD_NUM 97
+
+// minimal MirandaIM version number, with which this plugin supposed to work
+#define __PROD_MAJOR_VERSION 0
+#define __PROD_MINOR_VERSION 8
+#define __PROD_RELEASE_NUM 0
+#define __PROD_BUILD_NUM 0
+// if your plugin works only with Miranda core beginning from specific revision, you can include this information in Product Version resource
+//#define __PROD_REV_NUM 1234
+
+// stuff that will be used in PluginInfo section and in Version resource
+#define __PLUGIN_NAME "KeepStatus"
+#define __FILENAME "KeepStatus.dll"
+#define __DESC "KeepStatus, A connection checker, for use with (or without) StartupStatus and/or AdvancedAutoAway."
+#define __AUTHOR "P Boon"
+#define __AUTHOREMAIL "unregistered@users.sourceforge.net"
+#define __AUTHORWEB "http://www.miranda-im.org/"
+#define __COPYRIGHT "(c) 2003-08 P. Boon, 2008-10 George Hazan"
+
+// other stuff for Version resource
+#define __STRINGIFY_IMPL(x) #x
+#define __STRINGIFY(x) __STRINGIFY_IMPL(x)
+
+#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
+#define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM
+#ifdef _UNICODE
+#ifdef __REV_NUM
+#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS rev. __REV_NUM Unicode)
+#else
+#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS Unicode)
+#endif
+#else
+#ifdef __REV_NUM
+#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS rev. __REV_NUM)
+#else
+#define __VERSION_STRING __STRINGIFY(__FILEVERSION_STRING_DOTS)
+#endif
+#endif
+
+#define __PRODVERSION_STRING __PROD_MAJOR_VERSION,__PROD_MINOR_VERSION,__PROD_RELEASE_NUM,__PROD_BUILD_NUM
+#define __PRODVERSION_STRING_DOTS __PROD_MAJOR_VERSION.__PROD_MINOR_VERSION.__PROD_RELEASE_NUM.__PROD_BUILD_NUM
+#ifdef __PROD_REV_NUM
+#define __PROD_VERSION_STRING __STRINGIFY(__PRODVERSION_STRING_DOTS rev. __PROD_REV_NUM)
+#else
+#define __PROD_VERSION_STRING __STRINGIFY(__PRODVERSION_STRING_DOTS+)
+#endif
|