summaryrefslogtreecommitdiff
path: root/plugins/StatusPlugins/StartupStatus
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/StatusPlugins/StartupStatus')
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus.dep291
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus.dsp244
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus.mak342
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus.rc72
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus.vcproj576
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj466
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj.filters68
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus_8.vcproj790
-rw-r--r--plugins/StatusPlugins/StartupStatus/StartupStatus_9.vcproj1049
-rw-r--r--plugins/StatusPlugins/StartupStatus/main.cpp141
-rw-r--r--plugins/StatusPlugins/StartupStatus/options.cpp1034
-rw-r--r--plugins/StatusPlugins/StartupStatus/pack.cmd42
-rw-r--r--plugins/StatusPlugins/StartupStatus/profiles.cpp423
-rw-r--r--plugins/StatusPlugins/StartupStatus/res/ttbDown.bmpbin0 -> 1398 bytes
-rw-r--r--plugins/StatusPlugins/StartupStatus/res/ttbDown.icobin0 -> 894 bytes
-rw-r--r--plugins/StatusPlugins/StartupStatus/res/ttbUp.bmpbin0 -> 1398 bytes
-rw-r--r--plugins/StatusPlugins/StartupStatus/res/ttbUp.icobin0 -> 894 bytes
-rw-r--r--plugins/StatusPlugins/StartupStatus/startupstatus.cpp491
-rw-r--r--plugins/StatusPlugins/StartupStatus/startupstatus.h165
-rw-r--r--plugins/StatusPlugins/StartupStatus/toolbars.cpp191
-rw-r--r--plugins/StatusPlugins/StartupStatus/vc6.rc3
-rw-r--r--plugins/StatusPlugins/StartupStatus/version.h56
22 files changed, 6444 insertions, 0 deletions
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus.dep b/plugins/StatusPlugins/StartupStatus/StartupStatus.dep
new file mode 100644
index 0000000000..1c80942be0
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus.dep
@@ -0,0 +1,291 @@
+# Microsoft Developer Studio Generated Dependency File, included by StartupStatus.mak
+
+..\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_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.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"\
+
+
+..\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_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protosvc.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"\
+
+
+..\..\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"\
+ "..\includes\m_variables.h"\
+
+
+.\main.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_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protomod.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_userinfo.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\commonheaders.h"\
+ "..\..\helpers\db_helpers.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_toolbar.h"\
+ "..\includes\m_toptoolbar.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\startupstatus.h"\
+ ".\version.h"\
+
+
+.\options.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_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protomod.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_userinfo.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\commonheaders.h"\
+ "..\..\helpers\db_helpers.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_toolbar.h"\
+ "..\includes\m_toptoolbar.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\startupstatus.h"\
+ ".\version.h"\
+
+
+.\profiles.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_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protomod.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_userinfo.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\commonheaders.h"\
+ "..\..\helpers\db_helpers.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_toolbar.h"\
+ "..\includes\m_toptoolbar.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\startupstatus.h"\
+ ".\version.h"\
+
+
+.\startupstatus.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_popup.h"\
+ "..\..\..\include\m_protocols.h"\
+ "..\..\..\include\m_protomod.h"\
+ "..\..\..\include\m_protosvc.h"\
+ "..\..\..\include\m_skin.h"\
+ "..\..\..\include\m_system.h"\
+ "..\..\..\include\m_system_cpp.h"\
+ "..\..\..\include\m_userinfo.h"\
+ "..\..\..\include\m_utils.h"\
+ "..\..\..\include\newpluginapi.h"\
+ "..\..\..\include\statusmodes.h"\
+ "..\..\..\include\win2k.h"\
+ "..\..\helpers\commonheaders.h"\
+ "..\..\helpers\db_helpers.h"\
+ "..\..\helpers\gen_helpers.h"\
+ "..\commonstatus.h"\
+ "..\includes\m_NewAwaySys.h"\
+ "..\includes\m_toolbar.h"\
+ "..\includes\m_toptoolbar.h"\
+ "..\includes\m_updater.h"\
+ "..\includes\m_variables.h"\
+ "..\includes\m_vsramm.h"\
+ "..\m_statusplugins.h"\
+ ".\startupstatus.h"\
+ ".\version.h"\
+
+
+.\vc6.rc : \
+ "..\resource.rc"\
+ "..\version.rc"\
+ ".\version.h"\
+
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus.dsp b/plugins/StatusPlugins/StartupStatus/StartupStatus.dsp
new file mode 100644
index 0000000000..0e8df5cca3
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus.dsp
@@ -0,0 +1,244 @@
+# Microsoft Developer Studio Project File - Name="StartupStatus" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=StartupStatus - 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 "StartupStatus.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 "StartupStatus.mak" CFG="StartupStatus - Win32 Debug Unicode"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "StartupStatus - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "StartupStatus - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "StartupStatus - Win32 Debug Unicode" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "StartupStatus - 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)" == "StartupStatus - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STARTUPSTATUS_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 "STARTUPSTATUS_EXPORTS" /YX /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 msvcrt.lib wininet.lib Delayimp.lib /nologo /base:"0x11bd0000" /dll /debug /machine:I386 /nodefaultlib /out:"../../../bin/release/plugins/StartupStatus.dll" /DELAYLOAD:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "STARTUPSTATUS_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 "STARTUPSTATUS_EXPORTS" /YX /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 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/StartupStatus.dll" /pdbtype:sept /DELAYLOAD:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Debug Unicode"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "StartupStatus___Win32_Debug_Unicode"
+# PROP BASE Intermediate_Dir "StartupStatus___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 0
+# 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 "STARTUPSTATUS_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 "UNICODE" /D "_UNICODE" /D "_USRDLL" /YX /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 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/StartupStatus.dll" /pdbtype:sept /DELAYLOAD:wininet.dll
+# SUBTRACT BASE LINK32 /pdb:none
+# ADD LINK32 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/StartupStatus.dll" /pdbtype:sept /DELAYLOAD:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Release Unicode"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "StartupStatus___Win32_Release_Unicode"
+# PROP BASE Intermediate_Dir "StartupStatus___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 0
+# 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 "STARTUPSTATUS_EXPORTS" /YX /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" /YX /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 msvcrt.lib wininet.lib Delayimp.lib /nologo /base:"0x11bd0000" /dll /debug /machine:I386 /nodefaultlib /out:"../../../bin/release/plugins/StartupStatus.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 msvcrt.lib wininet.lib Delayimp.lib /nologo /base:"0x11bd0000" /dll /debug /machine:I386 /nodefaultlib /out:"../../../bin/Release Unicode/plugins/StartupStatus.dll" /DELAYLOAD:wininet.dll
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "StartupStatus - Win32 Release"
+# Name "StartupStatus - Win32 Debug"
+# Name "StartupStatus - Win32 Debug Unicode"
+# Name "StartupStatus - Win32 Release Unicode"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\commonstatus.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\confirmdialog.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\helpers\gen_helpers.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\main.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\options.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\profiles.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\startupstatus.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\toolbars.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=..\m_statusplugins.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\resource.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\startupstatus.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\StartupStatus.txt
+
+!IF "$(CFG)" == "StartupStatus - Win32 Release"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Debug"
+
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Debug Unicode"
+
+# PROP BASE Exclude_From_Build 1
+# PROP Exclude_From_Build 1
+
+!ELSEIF "$(CFG)" == "StartupStatus - 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/StartupStatus/StartupStatus.mak b/plugins/StatusPlugins/StartupStatus/StartupStatus.mak
new file mode 100644
index 0000000000..3a338643e5
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus.mak
@@ -0,0 +1,342 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on StartupStatus.dsp
+!IF "$(CFG)" == ""
+CFG=StartupStatus - Win32 Debug Unicode
+!MESSAGE No configuration specified. Defaulting to StartupStatus - Win32 Debug Unicode.
+!ENDIF
+
+!IF "$(CFG)" != "StartupStatus - Win32 Release" && "$(CFG)" != "StartupStatus - Win32 Debug" && "$(CFG)" != "StartupStatus - Win32 Debug Unicode" && "$(CFG)" != "StartupStatus - 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 "StartupStatus.mak" CFG="StartupStatus - Win32 Debug Unicode"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "StartupStatus - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "StartupStatus - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "StartupStatus - Win32 Debug Unicode" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "StartupStatus - 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)" == "StartupStatus - Win32 Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\bin\release\plugins\StartupStatus.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\profiles.obj"
+ -@erase "$(INTDIR)\startupstatus.obj"
+ -@erase "$(INTDIR)\toolbars.obj"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\StartupStatus.exp"
+ -@erase "$(OUTDIR)\StartupStatus.lib"
+ -@erase "$(OUTDIR)\StartupStatus.pdb"
+ -@erase "..\..\..\bin\release\plugins\StartupStatus.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 "STARTUPSTATUS_EXPORTS" /Fp"$(INTDIR)\StartupStatus.pch" /YX /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)\StartupStatus.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 msvcrt.lib wininet.lib Delayimp.lib /nologo /base:"0x11bd0000" /dll /incremental:no /pdb:"$(OUTDIR)\StartupStatus.pdb" /debug /machine:I386 /nodefaultlib /out:"../../../bin/release/plugins/StartupStatus.dll" /implib:"$(OUTDIR)\StartupStatus.lib" /DELAYLOAD:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\profiles.obj" \
+ "$(INTDIR)\startupstatus.obj" \
+ "$(INTDIR)\vc6.res" \
+ "$(INTDIR)\toolbars.obj"
+
+"..\..\..\bin\release\plugins\StartupStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+
+ALL : "..\..\..\bin\debug\plugins\StartupStatus.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\profiles.obj"
+ -@erase "$(INTDIR)\startupstatus.obj"
+ -@erase "$(INTDIR)\toolbars.obj"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\StartupStatus.exp"
+ -@erase "$(OUTDIR)\StartupStatus.lib"
+ -@erase "$(OUTDIR)\StartupStatus.pdb"
+ -@erase "..\..\..\bin\debug\plugins\StartupStatus.dll"
+ -@erase "..\..\..\bin\debug\plugins\StartupStatus.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 "STARTUPSTATUS_EXPORTS" /Fp"$(INTDIR)\StartupStatus.pch" /YX /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)\StartupStatus.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=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)\StartupStatus.pdb" /debug /machine:I386 /out:"../../../bin/debug/plugins/StartupStatus.dll" /implib:"$(OUTDIR)\StartupStatus.lib" /pdbtype:sept /DELAYLOAD:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\profiles.obj" \
+ "$(INTDIR)\startupstatus.obj" \
+ "$(INTDIR)\vc6.res" \
+ "$(INTDIR)\toolbars.obj"
+
+"..\..\..\bin\debug\plugins\StartupStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Debug Unicode"
+
+OUTDIR=.\Debug_Unicode
+INTDIR=.\Debug_Unicode
+
+ALL : "..\..\..\bin\Debug Unicode\plugins\StartupStatus.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\profiles.obj"
+ -@erase "$(INTDIR)\startupstatus.obj"
+ -@erase "$(INTDIR)\toolbars.obj"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\StartupStatus.exp"
+ -@erase "$(OUTDIR)\StartupStatus.lib"
+ -@erase "$(OUTDIR)\StartupStatus.pdb"
+ -@erase "..\..\..\bin\Debug Unicode\plugins\StartupStatus.dll"
+ -@erase "..\..\..\bin\Debug Unicode\plugins\StartupStatus.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" /Fp"$(INTDIR)\StartupStatus.pch" /YX /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)\StartupStatus.bsc"
+BSC32_SBRS= \
+
+LINK32=link.exe
+LINK32_FLAGS=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)\StartupStatus.pdb" /debug /machine:I386 /out:"../../../bin/Debug Unicode/plugins/StartupStatus.dll" /implib:"$(OUTDIR)\StartupStatus.lib" /pdbtype:sept /DELAYLOAD:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\profiles.obj" \
+ "$(INTDIR)\startupstatus.obj" \
+ "$(INTDIR)\vc6.res" \
+ "$(INTDIR)\toolbars.obj"
+
+"..\..\..\bin\Debug Unicode\plugins\StartupStatus.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+ $(LINK32) @<<
+ $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+
+!ELSEIF "$(CFG)" == "StartupStatus - Win32 Release Unicode"
+
+OUTDIR=.\Release_Unicode
+INTDIR=.\Release_Unicode
+
+ALL : "..\..\..\bin\Release Unicode\plugins\StartupStatus.dll"
+
+
+CLEAN :
+ -@erase "$(INTDIR)\commonstatus.obj"
+ -@erase "$(INTDIR)\confirmdialog.obj"
+ -@erase "$(INTDIR)\gen_helpers.obj"
+ -@erase "$(INTDIR)\main.obj"
+ -@erase "$(INTDIR)\options.obj"
+ -@erase "$(INTDIR)\profiles.obj"
+ -@erase "$(INTDIR)\startupstatus.obj"
+ -@erase "$(INTDIR)\toolbars.obj"
+ -@erase "$(INTDIR)\vc6.res"
+ -@erase "$(INTDIR)\vc60.idb"
+ -@erase "$(INTDIR)\vc60.pdb"
+ -@erase "$(OUTDIR)\StartupStatus.exp"
+ -@erase "$(OUTDIR)\StartupStatus.lib"
+ -@erase "$(OUTDIR)\StartupStatus.pdb"
+ -@erase "..\..\..\bin\Release Unicode\plugins\StartupStatus.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)\StartupStatus.pch" /YX /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)\StartupStatus.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 msvcrt.lib wininet.lib Delayimp.lib /nologo /base:"0x11bd0000" /dll /incremental:no /pdb:"$(OUTDIR)\StartupStatus.pdb" /debug /machine:I386 /nodefaultlib /out:"../../../bin/Release Unicode/plugins/StartupStatus.dll" /implib:"$(OUTDIR)\StartupStatus.lib" /DELAYLOAD:wininet.dll
+LINK32_OBJS= \
+ "$(INTDIR)\commonstatus.obj" \
+ "$(INTDIR)\confirmdialog.obj" \
+ "$(INTDIR)\gen_helpers.obj" \
+ "$(INTDIR)\main.obj" \
+ "$(INTDIR)\options.obj" \
+ "$(INTDIR)\profiles.obj" \
+ "$(INTDIR)\startupstatus.obj" \
+ "$(INTDIR)\vc6.res" \
+ "$(INTDIR)\toolbars.obj"
+
+"..\..\..\bin\Release Unicode\plugins\StartupStatus.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("StartupStatus.dep")
+!INCLUDE "StartupStatus.dep"
+!ELSE
+!MESSAGE Warning: cannot find "StartupStatus.dep"
+!ENDIF
+!ENDIF
+
+
+!IF "$(CFG)" == "StartupStatus - Win32 Release" || "$(CFG)" == "StartupStatus - Win32 Debug" || "$(CFG)" == "StartupStatus - Win32 Debug Unicode" || "$(CFG)" == "StartupStatus - Win32 Release Unicode"
+SOURCE=..\commonstatus.cpp
+
+"$(INTDIR)\commonstatus.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\confirmdialog.cpp
+
+"$(INTDIR)\confirmdialog.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=..\..\helpers\gen_helpers.cpp
+
+"$(INTDIR)\gen_helpers.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+SOURCE=.\main.cpp
+
+"$(INTDIR)\main.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\options.cpp
+
+"$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\profiles.cpp
+
+"$(INTDIR)\profiles.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\startupstatus.cpp
+
+"$(INTDIR)\startupstatus.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\toolbars.cpp
+
+"$(INTDIR)\toolbars.obj" : $(SOURCE) "$(INTDIR)"
+
+
+SOURCE=.\vc6.rc
+
+"$(INTDIR)\vc6.res" : $(SOURCE) "$(INTDIR)"
+ $(RSC) $(RSC_PROJ) $(SOURCE)
+
+
+
+!ENDIF
+
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus.rc b/plugins/StatusPlugins/StartupStatus/StartupStatus.rc
new file mode 100644
index 0000000000..fd2f96e9f3
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus.rc
@@ -0,0 +1,72 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "..\resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "..\\resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Bitmap
+//
+
+IDI_TTBDOWN ICON "res\\ttbDown.ico"
+IDI_TTBUP ICON "res\\ttbUp.ico"
+IDB_TTBDOWN BITMAP "res\\ttbDown.bmp"
+IDB_TTBUP BITMAP "res\\ttbUp.bmp"
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus.vcproj b/plugins/StatusPlugins/StartupStatus/StartupStatus.vcproj
new file mode 100644
index 0000000000..c5b631bc45
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus.vcproj
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="StartupStatus"
+ ProjectGUID="{1BD5E5B9-A750-4CF8-A370-0FBD40A92CB2}"
+ 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"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="vc7to6.lib wininet.lib Delayimp.lib"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="../../../lib"
+ IgnoreAllDefaultLibraries="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x11bd0000"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/StartupStatus.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;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wininet.lib Delayimp.lib odbc32.lib odbccp32.lib ws2_32.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="TRUE"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/StartupStatus.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;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wininet.lib Delayimp.lib odbc32.lib odbccp32.lib ws2_32.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="TRUE"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Debug/StartupStatus.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="TRUE">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ GlobalOptimizations="TRUE"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="vc7to6.lib wininet.lib Delayimp.lib"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="../../../lib"
+ IgnoreAllDefaultLibraries="TRUE"
+ DelayLoadDLLs="wininet.dll"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x11bd0000"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\Release/StartupStatus.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="..\commonstatus.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\confirmdialog.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PrecompiledHeaderThrough="commonstatus.h"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\helpers\gen_helpers.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ UsePrecompiledHeader="0"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\main.cpp">
+ </File>
+ <File
+ RelativePath="options.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="profiles.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="startupstatus.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath="..\commonstatus.h">
+ </File>
+ <File
+ RelativePath="..\m_statusplugins.h">
+ </File>
+ <File
+ RelativePath="..\resource.h">
+ </File>
+ <File
+ RelativePath="startupstatus.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="\Miranda\miranda\plugins\StatusPlugins"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Miranda\miranda\plugins\StatusPlugins"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32">
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Miranda\miranda\plugins\StatusPlugins"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32">
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Miranda\miranda\plugins\StatusPlugins"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <File
+ RelativePath="Release\StartupStatus.txt">
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="TRUE">
+ <Tool
+ Name="VCCustomBuildTool"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="TRUE">
+ <Tool
+ Name="VCCustomBuildTool"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ ExcludedFromBuild="TRUE">
+ <Tool
+ Name="VCCustomBuildTool"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ ExcludedFromBuild="TRUE">
+ <Tool
+ Name="VCCustomBuildTool"/>
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj b/plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj
new file mode 100644
index 0000000000..755883644b
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj
@@ -0,0 +1,466 @@
+<?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>StartupStatus</ProjectName>
+ <ProjectGuid>{1BD5E5B9-A750-4CF8-A370-0FBD40A92CB2}</ProjectGuid>
+ <RootNamespace>StartupStatus</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>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </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>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <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>
+ <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)'=='Debug Unicode|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Configuration)64/Plugins\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">$(SolutionDir)$(Configuration)64/Obj/$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Configuration)64/Obj/$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">$(SolutionDir)$(Configuration)64/Obj/$(ProjectName)\</IntDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|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/StartupStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>../../../include;../includes</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>../commonstatus.h</PrecompiledHeaderFile>
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <ExceptionHandling>false</ExceptionHandling>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <BaseAddress>0x11bd0000</BaseAddress>
+ <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/StartupStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../include;../includes</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_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>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <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/StartupStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../../include;../includes</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_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>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <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/StartupStatus.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <AdditionalIncludeDirectories>../../../include;../includes</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS;%(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>
+ <CompileAs>Default</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <BaseAddress>0x11bd0000</BaseAddress>
+ <ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Unicode|x64'">
+ <ClCompile>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <PreprocessorDefinitions>
+ </PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>false</ExceptionHandling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>../commonstatus.h</PrecompiledHeaderFile>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link />
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|x64'">
+ <ClCompile>
+ <PrecompiledHeaderFile>../commonstatus.h</PrecompiledHeaderFile>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeaderFile>../commonstatus.h</PrecompiledHeaderFile>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeaderFile>../commonstatus.h</PrecompiledHeaderFile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <ExceptionHandling>false</ExceptionHandling>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <BufferSecurityCheck>false</BufferSecurityCheck>
+ <FloatingPointModel>Fast</FloatingPointModel>
+ <RuntimeTypeInfo>false</RuntimeTypeInfo>
+ <AdditionalIncludeDirectories>../../../include;../includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link />
+ <Link>
+ <AdditionalDependencies>wininet.lib;Delayimp.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <DelayLoadDLLs>wininet.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\commonstatus.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release Unicode|Win32'">commonstatus.h</PrecompiledHeaderFile>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+ <PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">commonstatus.h</PrecompiledHeaderFile>
+ <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|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="..\confirmdialog.cpp">
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug Unicode|Win32'">Use</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="..\..\helpers\gen_helpers.cpp">
+ <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 Unicode|x64'">NotUsing</PrecompiledHeader>
+ <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
+ </ClCompile>
+ <ClCompile Include="main.cpp" />
+ <ClCompile Include="options.cpp" />
+ <ClCompile Include="profiles.cpp" />
+ <ClCompile Include="startupstatus.cpp" />
+ <ClCompile Include="toolbars.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\commonstatus.h" />
+ <ClInclude Include="..\m_statusplugins.h" />
+ <ClInclude Include="..\resource.h" />
+ <ClInclude Include="startupstatus.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\resource.rc" />
+ <ResourceCompile Include="..\version.rc" />
+ <ResourceCompile Include="StartupStatus.rc" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj.filters b/plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj.filters
new file mode 100644
index 0000000000..6ce8394dea
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus_10.vcxproj.filters
@@ -0,0 +1,68 @@
+<?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>{05912809-2743-4a01-8ca7-689106a3141a}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{2f9d749c-d579-43b5-af4c-485fec64ddfa}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{3731744d-2cbc-4ec4-bc69-7e184a77f957}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <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="main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="options.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="profiles.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="startupstatus.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="toolbars.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\commonstatus.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>
+ <ClInclude Include="startupstatus.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>
+ <ResourceCompile Include="StartupStatus.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus_8.vcproj b/plugins/StatusPlugins/StartupStatus/StartupStatus_8.vcproj
new file mode 100644
index 0000000000..ddc2fc56e5
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus_8.vcproj
@@ -0,0 +1,790 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8,00"
+ Name="StartupStatus"
+ ProjectGUID="{1BD5E5B9-A750-4CF8-A370-0FBD40A92CB2}"
+ >
+ <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"
+ >
+ <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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib msvcrt.lib wininet.lib Delayimp.lib"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ IgnoreAllDefaultLibraries="true"
+ DelayLoadDLLs="wininet.dll"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x11bd0000"
+ 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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wininet.lib Delayimp.lib odbc32.lib odbccp32.lib ws2_32.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ 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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="wininet.lib Delayimp.lib odbc32.lib odbccp32.lib ws2_32.lib"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ 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"
+ >
+ <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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib msvcrt.lib wininet.lib Delayimp.lib"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ IgnoreAllDefaultLibraries="true"
+ DelayLoadDLLs="wininet.dll"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x11bd0000"
+ 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="..\commonstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\confirmdialog.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\helpers\gen_helpers.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ UsePrecompiledHeader="0"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\main.cpp"
+ >
+ </File>
+ <File
+ RelativePath="options.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="profiles.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="startupstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ BasicRuntimeChecks="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="1"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_MBCS;_USRDLL;STARTUPSTATUS_EXPORTS;$(NoInherit)"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\toolbars.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\commonstatus.h"
+ >
+ </File>
+ <File
+ RelativePath="..\m_statusplugins.h"
+ >
+ </File>
+ <File
+ RelativePath="..\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="startupstatus.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="\Miranda\miranda\plugins\StatusPlugins"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Miranda\miranda\plugins\StatusPlugins"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Miranda\miranda\plugins\StatusPlugins"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\Miranda\miranda\plugins\StatusPlugins"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <File
+ RelativePath="Release\StartupStatus.txt"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug Unicode|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/StatusPlugins/StartupStatus/StartupStatus_9.vcproj b/plugins/StatusPlugins/StartupStatus/StartupStatus_9.vcproj
new file mode 100644
index 0000000000..ada02cbb54
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/StartupStatus_9.vcproj
@@ -0,0 +1,1049 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="StartupStatus"
+ ProjectGUID="{1BD5E5B9-A750-4CF8-A370-0FBD40A92CB2}"
+ RootNamespace="StartupStatus"
+ TargetFrameworkVersion="0"
+ >
+ <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"
+ >
+ <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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="0"
+ LinkTimeCodeGeneration="1"
+ BaseAddress="0x11bd0000"
+ 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"
+ >
+ <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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="0"
+ LinkTimeCodeGeneration="1"
+ BaseAddress="0x11bd0000"
+ 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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ 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="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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ 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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ 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="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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ SuppressStartupBanner="true"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ 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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ FloatingPointModel="2"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x11bd0000"
+ 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/StartupStatus.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="1"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ AdditionalIncludeDirectories="../../../include,../includes"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;STARTUPSTATUS_EXPORTS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="2"
+ BufferSecurityCheck="false"
+ EnableFunctionLevelLinking="true"
+ FloatingPointModel="2"
+ RuntimeTypeInfo="false"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderThrough="../commonstatus.h"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="0"
+ DisableSpecificWarnings="4996"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ IgnoreImportLibrary="true"
+ AdditionalDependencies="wininet.lib Delayimp.lib"
+ DelayLoadDLLs="wininet.dll"
+ GenerateDebugInformation="true"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ BaseAddress="0x11bd0000"
+ 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="..\commonstatus.cpp"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|x64"
+ >
+ <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|x64"
+ >
+ <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="Debug Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release Unicode|x64"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ PrecompiledHeaderThrough="commonstatus.h"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\confirmdialog.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="..\..\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=".\main.cpp"
+ >
+ </File>
+ <File
+ RelativePath="options.cpp"
+ >
+ </File>
+ <File
+ RelativePath="profiles.cpp"
+ >
+ </File>
+ <File
+ RelativePath="startupstatus.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\toolbars.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\commonstatus.h"
+ >
+ </File>
+ <File
+ RelativePath="..\m_statusplugins.h"
+ >
+ </File>
+ <File
+ RelativePath="..\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="startupstatus.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=".\StartupStatus.rc"
+ >
+ </File>
+ <File
+ RelativePath="..\ttbDown.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\ttbUp.bmp"
+ >
+ </File>
+ <File
+ RelativePath="..\version.rc"
+ >
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/plugins/StatusPlugins/StartupStatus/main.cpp b/plugins/StatusPlugins/StartupStatus/main.cpp
new file mode 100644
index 0000000000..b024013ce8
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/main.cpp
@@ -0,0 +1,141 @@
+/*
+ StartupStatus 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 "startupstatus.h"
+
+// {4B733944-5A70-4b52-AB2D-68B1EF38FFE8}
+#define MIID_STARTUPSTATUS { 0x4b733944, 0x5a70, 0x4b52, { 0xab, 0x2d, 0x68, 0xb1, 0xef, 0x38, 0xff, 0xe8 } }
+
+static HANDLE
+ hCSModuleLoadedHook,
+ hGetProfileService,
+ hGetProfileCountService,
+ hGetProfileNameService;
+
+HINSTANCE hInst;
+PLUGINLINK *pluginLink;
+
+MM_INTERFACE mmi;
+LIST_INTERFACE li;
+int hLangpack = 0;
+
+int CSModuleLoaded( WPARAM, LPARAM );
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// dll entry point
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
+{
+ hInst = hinstDLL;
+ return TRUE;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// returns plugin's extended information
+
+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_STARTUPSTATUS
+};
+
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ if ( mirandaVersion < PLUGIN_MAKE_VERSION( 0, 8, 0, 0 )) {
+ MessageBox(NULL, TranslateT("Startup requires Miranda IM of version 0.8, get it at www.miranda-im.org"), TranslateT("KeepStatus"), MB_OK);
+ return 0;
+ }
+
+ return &pluginInfoEx;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// returns plugin's interfaces information
+
+static const MUUID interfaces[] = { MIID_STARTUPSTATUS, MIID_LAST };
+
+extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
+{
+ return interfaces;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// plugin's entry point
+
+static INT_PTR SrvGetProfile( WPARAM wParam, LPARAM lParam )
+{ return GetProfile(( int )wParam, *(TSettingsList*)lParam );
+}
+
+extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
+{
+ pluginLink = link;
+ mir_getMMI(&mmi);
+ mir_getLI(&li);
+ mir_getLP( &pluginInfoEx );
+
+ if ( DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETPROFILE, 1) ||
+ DBGetContactSettingByte(NULL, MODULENAME, SETTING_OFFLINECLOSE, 0))
+ DBWriteContactSettingWord(NULL, "CList", "Status", (WORD)ID_STATUS_OFFLINE);
+
+ // docking
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETDOCKED, 0)) {
+ int docked = DBGetContactSettingByte(NULL, MODULENAME, SETTING_DOCKED, DOCKED_NONE);
+ if ( docked == DOCKED_LEFT || docked == DOCKED_RIGHT )
+ docked = -docked;
+
+ DBWriteContactSettingByte(NULL, MODULE_CLIST, SETTING_DOCKED, (BYTE)docked);
+ }
+
+ // Create service functions; the get functions are created here; they don't rely on commonstatus
+ hGetProfileService = CreateServiceFunction(MS_SS_GETPROFILE, SrvGetProfile);
+ hGetProfileCountService = CreateServiceFunction(MS_SS_GETPROFILECOUNT, GetProfileCount);
+ hGetProfileNameService = CreateServiceFunction(MS_SS_GETPROFILENAME, GetProfileName);
+
+ LoadProfileModule();
+
+ // protocols must be loaded first
+ InitCommonStatus();
+ hCSModuleLoadedHook = HookEvent(ME_SYSTEM_MODULESLOADED, CSModuleLoaded);
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// plugin's exit point
+
+extern "C" int __declspec(dllexport) Unload(void)
+{
+ UnhookEvent(hCSModuleLoadedHook);
+
+ DestroyServiceFunction(hGetProfileService);
+ DestroyServiceFunction(hGetProfileCountService);
+ DestroyServiceFunction(hGetProfileNameService);
+ return 0;
+}
diff --git a/plugins/StatusPlugins/StartupStatus/options.cpp b/plugins/StatusPlugins/StartupStatus/options.cpp
new file mode 100644
index 0000000000..6422091cc6
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/options.cpp
@@ -0,0 +1,1034 @@
+/*
+ StartupStatus 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 "startupstatus.h"
+#include "../resource.h"
+
+// for db cleanup
+static int settingIndex;
+
+// prototypes
+INT_PTR CALLBACK CmdlOptionsDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
+INT_PTR CALLBACK OptDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
+INT_PTR CALLBACK addProfileDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam);
+
+BOOL MyGetSpecialFolderPath(HWND hwndOwner, LPTSTR lpszPath, int nFolder, BOOL fCreate);
+static int CountSettings(const char *szSetting,LPARAM lParam);
+static int DeleteSetting(const char *szSetting,LPARAM lParam);
+static int ClearDatabase(char* filter);
+
+int LoadMainOptions();
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+static TSettingsList* GetCurrentProtoSettings()
+{
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ TSettingsList* result = new TSettingsList( count, CompareSettings );
+ if ( result == NULL )
+ return NULL;
+
+ for ( int i=0; i < count; i++ )
+ if ( IsSuitableProto( protos[i] ))
+ result->insert( new TSSSetting( protos[i] ));
+
+ return result;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// Command line processing
+
+static char* GetStatusDesc(int status)
+{
+ switch (status) {
+ case ID_STATUS_AWAY: return "away";
+ case ID_STATUS_NA: return "na";
+ case ID_STATUS_DND: return "dnd";
+ case ID_STATUS_OCCUPIED: return "occupied";
+ case ID_STATUS_FREECHAT: return "freechat";
+ case ID_STATUS_ONLINE: return "online";
+ case ID_STATUS_OFFLINE: return "offline";
+ case ID_STATUS_INVISIBLE: return "invisible";
+ case ID_STATUS_ONTHEPHONE: return "onthephone";
+ case ID_STATUS_OUTTOLUNCH: return "outtolunch";
+ case ID_STATUS_LAST: return "last";
+ }
+ return "offline";
+}
+
+static char* GetCMDLArguments(TSettingsList& protoSettings)
+{
+ if ( protoSettings.getCount() == NULL )
+ return NULL;
+
+ char *cmdl, *pnt;
+ pnt = cmdl = ( char* )malloc(strlen(protoSettings[0].szName) + strlen(GetStatusDesc(protoSettings[0].status)) + 4);
+
+ for (int i=0; i < protoSettings.getCount(); i++ ) {
+ *pnt++ = '/';
+ strcpy(pnt, protoSettings[i].szName);
+ pnt += strlen(protoSettings[i].szName);
+ *pnt++ = '=';
+ strcpy(pnt, GetStatusDesc(protoSettings[i].status));
+ pnt += strlen(GetStatusDesc(protoSettings[i].status));
+ if (i != protoSettings.getCount()-1) {
+ *pnt++ = ' ';
+ *pnt++ = '\0';
+ cmdl = ( char* )realloc(cmdl, strlen(cmdl) + strlen(protoSettings[i+1].szName) + strlen(GetStatusDesc(protoSettings[i+1].status)) + 4);
+ pnt = cmdl + strlen(cmdl);
+ } }
+
+ if ( DBGetContactSettingByte( NULL, MODULENAME, SETTING_SHOWDIALOG, FALSE ) == TRUE ) {
+ *pnt++ = ' ';
+ *pnt++ = '\0';
+ cmdl = ( char* )realloc(cmdl, strlen(cmdl) + 12);
+ pnt = cmdl + strlen(cmdl);
+ strcpy(pnt, "/showdialog");
+ pnt += 11;
+ *pnt = '\0';
+ }
+
+ return cmdl;
+}
+
+static char* GetCMDL(TSettingsList& protoSettings)
+{
+ char path[MAX_PATH];
+ GetModuleFileNameA(NULL, path, MAX_PATH);
+
+ char* cmdl = ( char* )malloc(strlen(path) + 4);
+ _snprintf(cmdl, strlen(path) + 4, "\"%s\" ", path);
+
+ char* args = GetCMDLArguments(protoSettings);
+ if ( args ) {
+ cmdl = ( char* )realloc(cmdl, strlen(cmdl) + strlen(args) + 1);
+ strcat(cmdl, args);
+ free(args);
+ }
+ return cmdl;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// Link processing
+
+static char* GetLinkDescription(TSettingsList& protoSettings)
+{
+ if ( protoSettings.getCount() == 0 )
+ return NULL;
+
+ char *pnt, *desc;
+ pnt = desc = ( char* )malloc(strlen(SHORTCUT_DESC) + 1);
+ strcpy(desc, SHORTCUT_DESC);
+ pnt = desc + strlen(desc);
+ for ( int i=0; i < protoSettings.getCount(); i++ ) {
+ char szName[128];
+ CallProtoService(protoSettings[i].szName, PS_GETNAME, sizeof(szName), (LPARAM)szName );
+
+ char* status;
+ if ( protoSettings[i].status == ID_STATUS_LAST )
+ status = Translate("<last>");
+ else if ( protoSettings[i].status == ID_STATUS_CURRENT )
+ status = Translate("<current>");
+ else if ( protoSettings[i].status >= MIN_STATUS && protoSettings[i].status <= MAX_STATUS )
+ status = (char *)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, (WPARAM)protoSettings[i].status, (LPARAM)0);
+ if (status == NULL)
+ status = "<unknown>";
+
+ desc = ( char* )realloc(desc, strlen(desc) + strlen(szName) + strlen(status) + 4);
+ pnt = desc + strlen(desc);
+ *pnt++ = '\r';
+ strcpy(pnt, szName);
+ pnt += strlen(szName);
+ *pnt++ = ':';
+ *pnt++ = ' ';
+ strcpy(pnt, status);
+ }
+
+ return desc;
+}
+
+HRESULT CreateLink(TSettingsList& protoSettings)
+{
+ HRESULT hres;
+ IShellLink* psl;
+ TCHAR savePath[MAX_PATH];
+ char *args = GetCMDLArguments(protoSettings);
+ char *desc = GetLinkDescription(protoSettings);
+
+ if (MyGetSpecialFolderPath(NULL, savePath, 0x10, FALSE))
+ _tcscat(savePath, _T(SHORTCUT_FILENAME));
+ else
+ _stprintf(savePath, _T(".\\%s"), _T(SHORTCUT_FILENAME));
+
+ // Get a pointer to the IShellLink interface.
+ hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, ( void** )&psl);
+ if (SUCCEEDED(hres)) {
+ // Set the path to the shortcut target, and add the
+ // description.
+ TCHAR path[MAX_PATH];
+ GetModuleFileName(NULL, path, SIZEOF(path));
+ psl->SetPath(path);
+ #if defined( _UNICODE )
+ TCHAR* p = mir_a2t( desc );
+ psl->SetDescription( p );
+ mir_free( p );
+ p = mir_a2t( args );
+ psl->SetArguments( p );
+ mir_free( p );
+ #else
+ psl->SetDescription(desc);
+ psl->SetArguments(args);
+ #endif
+
+ // Query IShellLink for the IPersistFile interface for saving the
+ // shortcut in persistent storage.
+ IPersistFile* ppf;
+ hres = psl->QueryInterface(IID_IPersistFile, ( void** )&ppf);
+
+ if (SUCCEEDED(hres)) {
+ #if defined( _UNICODE )
+ WCHAR* wsz = savePath;
+ #else
+ WCHAR wsz[MAX_PATH];
+
+ // Ensure that the string is ANSI.
+ MultiByteToWideChar(CP_ACP, 0, savePath, -1, wsz, MAX_PATH);
+ #endif
+
+ // Save the link by calling IPersistFile::Save.
+ hres = ppf->Save(wsz, TRUE);
+ ppf->Release();
+ }
+ psl->Release();
+ }
+
+ free(args);
+ free(desc);
+ return hres;
+}
+
+INT_PTR CALLBACK CmdlOptionsDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ static TSettingsList* optionsProtoSettings;
+
+ switch(msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ {
+ optionsProtoSettings = (TSettingsList*)lParam;
+ char* cmdl = GetCMDL(*optionsProtoSettings);
+ SetDlgItemTextA(hwndDlg, IDC_CMDL, cmdl);
+ free(cmdl);
+ }
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD(wParam)) {
+ case IDC_COPY:
+ if ( OpenClipboard( hwndDlg )) {
+ EmptyClipboard();
+
+ char cmdl[2048];
+ GetDlgItemTextA(hwndDlg,IDC_CMDL, cmdl, sizeof(cmdl));
+ HGLOBAL cmdlGlob = GlobalAlloc(GMEM_MOVEABLE, sizeof(cmdl));
+ if (cmdlGlob == NULL) {
+ CloseClipboard();
+ break;
+ }
+ LPTSTR cmdlStr = ( LPTSTR )GlobalLock(cmdlGlob);
+ memcpy(cmdlStr, &cmdl, sizeof(cmdl));
+ GlobalUnlock(cmdlGlob);
+ SetClipboardData(CF_TEXT, cmdlGlob);
+ CloseClipboard();
+ }
+ break;
+
+ case IDC_SHORTCUT:
+ CreateLink(*optionsProtoSettings);
+ break;
+
+ case IDC_OK:
+ DestroyWindow(hwndDlg);
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ DestroyWindow(hwndDlg);
+ break;
+
+ case WM_DESTROY:
+ delete optionsProtoSettings; optionsProtoSettings = 0;
+ break;
+ }
+
+ return 0;
+}
+
+static INT_PTR CALLBACK StartupStatusOptDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ static BOOL bInitDone = FALSE;
+
+ switch(msg) {
+ case WM_INITDIALOG:
+ bInitDone = FALSE;
+
+ TranslateDialogDefault(hwndDlg);
+ CheckDlgButton(hwndDlg, IDC_SETPROFILE, DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETPROFILE, 1)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_OVERRIDE, DBGetContactSettingByte(NULL, MODULENAME, SETTING_OVERRIDE, 1)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_SHOWDIALOG, DBGetContactSettingByte(NULL, MODULENAME, SETTING_SHOWDIALOG, 0)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_SETWINSTATE, DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSTATE, 0)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_SETWINLOCATION, DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINLOCATION, 0)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_SETDOCKED, DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETDOCKED, 0)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_SETWINSIZE, DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSIZE, 0)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_OFFLINECLOSE, DBGetContactSettingByte(NULL, MODULENAME, SETTING_OFFLINECLOSE, 1)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_AUTODIAL, DBGetContactSettingByte(NULL, MODULENAME, SETTING_AUTODIAL, 0)?TRUE:FALSE);
+ CheckDlgButton(hwndDlg, IDC_AUTOHANGUP, DBGetContactSettingByte(NULL, MODULENAME, SETTING_AUTOHANGUP, 0)?TRUE:FALSE);
+ SetDlgItemInt(hwndDlg, IDC_SETPROFILEDELAY, DBGetContactSettingDword(NULL, MODULENAME, SETTING_SETPROFILEDELAY, 500), FALSE);
+ SetDlgItemInt(hwndDlg, IDC_DLGTIMEOUT, DBGetContactSettingDword(NULL, MODULENAME, SETTING_DLGTIMEOUT, 5), FALSE);
+ SetDlgItemInt(hwndDlg, IDC_XPOS, DBGetContactSettingDword(NULL, MODULENAME, SETTING_XPOS, 0), TRUE);
+ SetDlgItemInt(hwndDlg, IDC_YPOS, DBGetContactSettingDword(NULL, MODULENAME, SETTING_YPOS, 0), TRUE);
+ SetDlgItemInt(hwndDlg, IDC_WIDTH, DBGetContactSettingDword(NULL, MODULENAME, SETTING_WIDTH, 0), FALSE);
+ SetDlgItemInt(hwndDlg, IDC_HEIGHT, DBGetContactSettingDword(NULL, MODULENAME, SETTING_HEIGHT, 0), FALSE);
+ {
+ int val = DBGetContactSettingByte(NULL, MODULENAME, SETTING_DOCKED, DOCKED_NONE);
+ int item = SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_ADDSTRING, 0, (LPARAM)TranslateT("Left"));
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_SETITEMDATA, (WPARAM)item, (LPARAM)DOCKED_LEFT);
+ if (val == DOCKED_LEFT)
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_SETCURSEL, (WPARAM)item, 0);
+
+ item = SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_ADDSTRING, 0, (LPARAM)TranslateT("Right"));
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_SETITEMDATA, (WPARAM)item, (LPARAM)DOCKED_RIGHT);
+ if (val == DOCKED_RIGHT)
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_SETCURSEL, (WPARAM)item, 0);
+
+ item = SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_ADDSTRING, 0, (LPARAM)TranslateT("None"));
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_SETITEMDATA, (WPARAM)item, (LPARAM)DOCKED_NONE);
+ if (val == DOCKED_NONE)
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_SETCURSEL, (WPARAM)item, 0);
+ }
+
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PROFILE), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE)||IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_SETPROFILEDELAY), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_OVERRIDE), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DLGTIMEOUT), IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WINSTATE), IsDlgButtonChecked(hwndDlg, IDC_SETWINSTATE));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XPOS), IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_YPOS), IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION));
+ SendMessage(hwndDlg, UM_REINITPROFILES, 0, 0);
+ SendMessage(hwndDlg, UM_REINITDOCKED, 0, 0);
+ SendMessage(hwndDlg, UM_REINITWINSTATE, 0, 0);
+ SendMessage(hwndDlg, UM_REINITWINSIZE, 0, 0);
+ SetTimer(hwndDlg, 0, 100, NULL);
+ bInitDone = TRUE;
+ break;
+
+ case WM_TIMER:
+ if ( !IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION) && !IsDlgButtonChecked(hwndDlg, IDC_SETWINSIZE)) {
+ SetDlgItemTextA(hwndDlg, IDC_CURWINSIZE, "");
+ SetDlgItemTextA(hwndDlg, IDC_CURWINLOC, "");
+ break;
+ }
+ else {
+ TCHAR text[128];
+ mir_sntprintf(text, SIZEOF(text), TranslateT("size: %d x %d"),
+ DBGetContactSettingDword(NULL, MODULE_CLIST, SETTING_WIDTH, 0),
+ DBGetContactSettingDword(NULL, MODULE_CLIST, SETTING_HEIGHT, 0));
+ SetDlgItemText(hwndDlg, IDC_CURWINSIZE, text);
+
+ mir_sntprintf(text, SIZEOF(text), TranslateT("loc: %d x %d"),
+ DBGetContactSettingDword(NULL, MODULE_CLIST, SETTING_XPOS, 0),
+ DBGetContactSettingDword(NULL, MODULE_CLIST, SETTING_YPOS, 0));
+ SetDlgItemText(hwndDlg, IDC_CURWINLOC, text);
+ }
+ break;
+
+ case UM_REINITPROFILES:
+ // creates profile combo box according to 'dat'
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_RESETCONTENT, 0, 0);
+ {
+ int defProfile;
+ int profileCount = GetProfileCount((WPARAM)&defProfile, 0);
+ for ( int i=0; i < profileCount; i++ ) {
+ char profileName[128];
+ if (GetProfileName((WPARAM)i, (LPARAM)profileName))
+ continue;
+
+ int item = SendDlgItemMessageA(hwndDlg, IDC_PROFILE, CB_ADDSTRING, 0, (LPARAM)profileName);
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_SETITEMDATA, (WPARAM)item, (LPARAM)i);
+ }
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_SETCURSEL, (WPARAM)defProfile, 0);
+ }
+ break;
+
+ case UM_REINITDOCKED:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_SETDOCKED), DBGetContactSettingByte(NULL, MODULE_CLIST, SETTING_TOOLWINDOW, 1));
+ if (!IsWindowEnabled(GetDlgItem(hwndDlg,IDC_SETDOCKED)))
+ CheckDlgButton(hwndDlg, IDC_SETDOCKED, BST_UNCHECKED);
+
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DOCKED), IsDlgButtonChecked(hwndDlg, IDC_SETDOCKED));
+ break;
+
+ case UM_REINITWINSTATE:
+ {
+ int val = DBGetContactSettingByte(NULL, MODULENAME, SETTING_WINSTATE, SETTING_STATE_NORMAL);
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_RESETCONTENT, 0, 0);
+
+ int item = SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Hidden"));
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_SETITEMDATA, (WPARAM)item, (LPARAM)SETTING_STATE_HIDDEN);
+ if (val == SETTING_STATE_HIDDEN)
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_SETCURSEL, (WPARAM)item, 0);
+
+ if (!DBGetContactSettingByte(NULL, MODULE_CLIST, SETTING_TOOLWINDOW, 0)) {
+ item = SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Minimized"));
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_SETITEMDATA, (WPARAM)item, (LPARAM)SETTING_STATE_MINIMIZED);
+ if (val == SETTING_STATE_MINIMIZED)
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_SETCURSEL, (WPARAM)item, 0);
+ }
+ item = SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_ADDSTRING, 0, (LPARAM)TranslateT("Normal"));
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_SETITEMDATA, (WPARAM)item, (LPARAM)SETTING_STATE_NORMAL);
+ if ( val == SETTING_STATE_NORMAL || (val == SETTING_STATE_MINIMIZED) && DBGetContactSettingByte(NULL, MODULE_CLIST, SETTING_TOOLWINDOW, 0))
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_SETCURSEL, (WPARAM)item, 0);
+ }
+ break;
+
+ case UM_REINITWINSIZE:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WIDTH), IsDlgButtonChecked(hwndDlg, IDC_SETWINSIZE));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_HEIGHT), !DBGetContactSettingByte(NULL, MODULE_CLUI, SETTING_AUTOSIZE, 0)&&IsDlgButtonChecked(hwndDlg, IDC_SETWINSIZE));
+
+ case WM_COMMAND:
+ if ( HIWORD(wParam) == BN_CLICKED || HIWORD(wParam) == LBN_SELCHANGE || HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) == EN_CHANGE )
+ if ( bInitDone )
+ SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+
+ switch (LOWORD(wParam)) {
+ case IDC_SETPROFILE:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PROFILE), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE)||IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_SETPROFILEDELAY), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_OVERRIDE), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE));
+ break;
+ case IDC_SHOWDIALOG:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_PROFILE), IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE)||IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DLGTIMEOUT), IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG));
+ break;
+ case IDC_SETWINSTATE:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_WINSTATE), IsDlgButtonChecked(hwndDlg, IDC_SETWINSTATE));
+ break;
+ case IDC_SETDOCKED:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_DOCKED), IsDlgButtonChecked(hwndDlg, IDC_SETDOCKED));
+ break;
+ case IDC_SETWINLOCATION:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XPOS), IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_YPOS), IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION));
+ break;
+ case IDC_SETWINSIZE:
+ SendMessage(hwndDlg, UM_REINITWINSIZE, 0, 0);
+ break;
+ case IDC_SHOWCMDL:
+ {
+ int defProfile = (int)SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETCURSEL, 0, 0), 0);
+
+ TSettingsList* ps = GetCurrentProtoSettings();
+ if ( ps ) {
+ GetProfile( defProfile, *ps );
+ for ( int i=0; i < ps->getCount(); i++ )
+ if ( (*ps)[i].szMsg != NULL )
+ (*ps)[i].szMsg = _strdup( (*ps)[i].szMsg );
+
+ CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_CMDLOPTIONS), hwndDlg, CmdlOptionsDlgProc, (LPARAM)ps);
+ }
+ break;
+ }
+ }
+ break;
+
+ case WM_SHOWWINDOW:
+ if (wParam == FALSE)
+ break;
+
+ bInitDone = FALSE;
+ SendMessage(hwndDlg, UM_REINITPROFILES, 0, 0);
+ SendMessage(hwndDlg, UM_REINITDOCKED, 0, 0);
+ SendMessage(hwndDlg, UM_REINITWINSTATE, 0, 0);
+ SendMessage(hwndDlg, UM_REINITWINSIZE, 0, 0);
+ bInitDone = TRUE;
+ break;
+
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == PSN_APPLY) {
+ int val;
+
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SETPROFILE, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE));
+ if (IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE))
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_SETPROFILEDELAY, GetDlgItemInt(hwndDlg, IDC_SETPROFILEDELAY, NULL, FALSE));
+
+ if (IsDlgButtonChecked(hwndDlg, IDC_SETPROFILE) || IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG)) {
+ val = (int)SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETCURSEL, 0, 0), 0);
+ DBWriteContactSettingWord(NULL, MODULENAME, SETTING_DEFAULTPROFILE, (WORD)val);
+ }
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_OVERRIDE, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_OVERRIDE));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SHOWDIALOG, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG));
+ if (IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG))
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_DLGTIMEOUT, GetDlgItemInt(hwndDlg, IDC_DLGTIMEOUT, NULL, FALSE));
+
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SETWINSTATE, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SETWINSTATE));
+ if (IsDlgButtonChecked(hwndDlg, IDC_SETWINSTATE)) {
+ val = (int)SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_WINSTATE, CB_GETCURSEL, 0, 0), 0);
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_WINSTATE, (BYTE)val);
+ }
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SETDOCKED, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SETDOCKED));
+ if (IsDlgButtonChecked(hwndDlg, IDC_SETDOCKED)) {
+ val = (int)SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_DOCKED, CB_GETCURSEL, 0, 0), 0);
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_DOCKED, (BYTE)val);
+ }
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SETWINLOCATION, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION));
+ if (IsDlgButtonChecked(hwndDlg, IDC_SETWINLOCATION)) {
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_XPOS, GetDlgItemInt(hwndDlg, IDC_XPOS, NULL, TRUE));
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_YPOS, GetDlgItemInt(hwndDlg, IDC_YPOS, NULL, TRUE));
+ }
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_SETWINSIZE, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_SETWINSIZE));
+ if (IsDlgButtonChecked(hwndDlg, IDC_SETWINSIZE)) {
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_WIDTH, GetDlgItemInt(hwndDlg, IDC_WIDTH, NULL, FALSE));
+ DBWriteContactSettingDword(NULL, MODULENAME, SETTING_HEIGHT, GetDlgItemInt(hwndDlg, IDC_HEIGHT, NULL, FALSE));
+ }
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_OFFLINECLOSE, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_OFFLINECLOSE));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_AUTODIAL, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_AUTODIAL));
+ DBWriteContactSettingByte(NULL, MODULENAME, SETTING_AUTOHANGUP, (BYTE)IsDlgButtonChecked(hwndDlg, IDC_AUTOHANGUP));
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+static INT_PTR CALLBACK StatusProfilesOptDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ static PROFILEOPTIONS *dat = NULL;
+ static int profileCount = 0;
+ static BOOL bNeedRebuildMenu = FALSE;
+ static BOOL bInitDone = FALSE;
+
+ dat = (PROFILEOPTIONS *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ switch(msg) {
+ case WM_INITDIALOG: {
+ int i, j, defProfile;
+
+ bInitDone = false;
+
+ TranslateDialogDefault(hwndDlg);
+ if (ServiceExists(MS_CLIST_ADDSTATUSMENUITEM))
+ SetDlgItemText(hwndDlg, IDC_CREATEMMI, TranslateT("Create a status menu item"));
+
+ profileCount = GetProfileCount((WPARAM)&defProfile, 0);
+ if (profileCount == 0) {
+ profileCount = 1;
+ defProfile = 0;
+ }
+ dat = ( PROFILEOPTIONS* )malloc(profileCount*sizeof(PROFILEOPTIONS));
+ ZeroMemory(dat, profileCount*sizeof(PROFILEOPTIONS));
+ for (i=0;i<profileCount;i++) {
+ dat[i].ps = GetCurrentProtoSettings();
+ TSettingsList& ar = *dat[i].ps;
+
+ if ( GetProfile( i, ar ) == -1) {
+ /* create an empty profile */
+ if (i == defProfile)
+ dat[i].szName = _strdup(Translate("default"));
+ else
+ dat[i].szName = _strdup(Translate("unknown"));
+ }
+ else {
+ for ( j=0; j < ar.getCount(); j++ )
+ if ( ar[j].szMsg != NULL)
+ ar[j].szMsg = _strdup( ar[j].szMsg );
+
+ dat[i].szName = dbi_getAs(i, SETTING_PROFILENAME, NULL);
+ if (dat[i].szName == NULL) {
+ if (i == defProfile)
+ dat[i].szName = _strdup(Translate("default"));
+ else
+ dat[i].szName = _strdup(Translate("unknown"));
+ }
+ dat[i].createTtb = dbi_getb(i, SETTING_CREATETTBBUTTON, 0);
+ dat[i].showDialog = dbi_getb(i, SETTING_SHOWCONFIRMDIALOG, 0);
+ dat[i].createMmi = dbi_getb(i, SETTING_CREATEMMITEM, 0);
+ dat[i].inSubMenu = dbi_getb(i, SETTING_INSUBMENU, 1);
+ dat[i].regHotkey = dbi_getb(i, SETTING_REGHOTKEY, 0);
+ dat[i].hotKey = dbi_getw(i, SETTING_HOTKEY, MAKEWORD((char)('0'+i), HOTKEYF_CONTROL|HOTKEYF_SHIFT));
+ }
+ }
+ if ( !ServiceExists( MS_TTB_ADDBUTTON ) && !ServiceExists( MS_TB_ADDBUTTON ))
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CREATETTB), FALSE);
+
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)dat);
+ SendMessage(hwndDlg, UM_REINITPROFILES, 0, 0);
+ ShowWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), ServiceExists(MS_VARS_SHOWHELPEX)?SW_SHOW:SW_HIDE);
+ bInitDone = true;
+ break;
+ }
+
+ case UM_REINITPROFILES:
+ bInitDone = false;
+ {
+ // creates profile combo box according to 'dat'
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_RESETCONTENT, 0, 0);
+ for (int i=0; i < profileCount; i++ ) {
+ int item = SendDlgItemMessageA(hwndDlg, IDC_PROFILE, CB_ADDSTRING, 0, (LPARAM)dat[i].szName);
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_SETITEMDATA, (WPARAM)item, (LPARAM)i);
+ }
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_SETCURSEL, 0, 0);
+ SendMessage(hwndDlg, UM_SETPROFILE, 0, 0);
+ }
+ bInitDone = true;
+ break;
+
+ case UM_SETPROFILE:
+ {
+ int sel = (int)SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETCURSEL, 0, 0), 0);
+ CheckDlgButton(hwndDlg, IDC_CREATETTB, dat[sel].createTtb?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_SHOWDIALOG, dat[sel].showDialog?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CREATEMMI, dat[sel].createMmi?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_INSUBMENU, dat[sel].inSubMenu?BST_CHECKED:BST_UNCHECKED);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_INSUBMENU), IsDlgButtonChecked(hwndDlg, IDC_CREATEMMI));
+ CheckDlgButton(hwndDlg, IDC_REGHOTKEY, dat[sel].regHotkey?BST_CHECKED:BST_UNCHECKED);
+ SendDlgItemMessage(hwndDlg, IDC_HOTKEY, HKM_SETHOTKEY, dat[sel].hotKey, 0);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_HOTKEY), IsDlgButtonChecked(hwndDlg, IDC_REGHOTKEY));
+ SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_RESETCONTENT, 0, 0);
+
+ // fill proto list
+ TSettingsList& ar = *dat[sel].ps;
+ for ( int i=0; i < ar.getCount(); i++ ) {
+ int item = SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_ADDSTRING, 0, (LPARAM)ar[i].tszAccName );
+ SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_SETITEMDATA, (WPARAM)item, (LPARAM)&ar[i]);
+ }
+ SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_SETCURSEL, 0, 0);
+ SendMessage(hwndDlg, UM_SETPROTOCOL, 0, 0);
+ }
+ break;
+
+ case UM_SETPROTOCOL:
+ {
+ int idx = SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETCURSEL, 0, 0);
+ if ( idx != -1 ) {
+ // fill status box
+ TSSSetting* ps = ( TSSSetting* )SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETITEMDATA, idx, 0);
+
+ int flags = (CallProtoService(ps->szName, PS_GETCAPS, PFLAGNUM_2, 0))&~(CallProtoService(ps->szName, PS_GETCAPS, PFLAGNUM_5, 0));
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_RESETCONTENT, 0, 0);
+ for ( int i=0; i < SIZEOF(statusModeList); i++ ) {
+ if ( (flags&statusModePf2List[i]) || (statusModeList[i] == ID_STATUS_OFFLINE)) {
+ TCHAR* szStatus = ( TCHAR* )CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, statusModeList[i], GSMDF_TCHAR);
+ if ( szStatus != NULL ) {
+ int item = SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_ADDSTRING, 0, (LPARAM)szStatus);
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_SETITEMDATA, (WPARAM)item, (LPARAM)statusModeList[i]);
+ if (ps->status == statusModeList[i])
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_SETCURSEL, (WPARAM)item, 0);
+ } } }
+
+ int item = SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_ADDSTRING, 0, (LPARAM)TranslateT("<current>"));
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_SETITEMDATA, (WPARAM)item, (LPARAM)ID_STATUS_CURRENT);
+ if (ps->status == ID_STATUS_CURRENT)
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_SETCURSEL, (WPARAM)item, 0);
+
+ item = SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_ADDSTRING, 0, (LPARAM)TranslateT("<last>"));
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_SETITEMDATA, (WPARAM)item, (LPARAM)ID_STATUS_LAST);
+ if (ps->status == ID_STATUS_LAST)
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_SETCURSEL, (WPARAM)item, 0);
+ }
+
+ SendMessage(hwndDlg, UM_SETSTATUSMSG, 0, 0);
+ }
+ break;
+
+ case UM_SETSTATUSMSG:
+ {
+ // set status message
+ BOOL bStatusMsg = FALSE;
+ int idx = SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETCURSEL, 0, 0);
+ if ( idx != -1 ) {
+ TSSSetting* ps = ( TSSSetting* )SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETITEMDATA, idx, 0);
+
+ CheckRadioButton(hwndDlg, IDC_MIRANDAMSG, IDC_CUSTOMMSG, ps->szMsg!=NULL?IDC_CUSTOMMSG:IDC_MIRANDAMSG);
+ if (ps->szMsg != NULL)
+ SetDlgItemTextA(hwndDlg, IDC_STATUSMSG, ps->szMsg);
+
+ bStatusMsg = ( (((CallProtoService(ps->szName, PS_GETCAPS, (WPARAM)PFLAGNUM_1, 0)&PF1_MODEMSGSEND&~PF1_INDIVMODEMSG)) &&
+ (CallProtoService(ps->szName, PS_GETCAPS, (WPARAM)PFLAGNUM_3, 0)&Proto_Status2Flag(ps->status))) || (ps->status == ID_STATUS_CURRENT) || (ps->status == ID_STATUS_LAST) );
+ }
+ EnableWindow(GetDlgItem(hwndDlg, IDC_MIRANDAMSG), bStatusMsg);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CUSTOMMSG), bStatusMsg);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_STATUSMSG), bStatusMsg&&IsDlgButtonChecked(hwndDlg, IDC_CUSTOMMSG));
+ EnableWindow(GetDlgItem(hwndDlg, IDC_VARIABLESHELP), bStatusMsg&&IsDlgButtonChecked(hwndDlg, IDC_CUSTOMMSG));
+ }
+ break;
+
+ case UM_ADDPROFILE:
+ {
+ char *szName = (char *)lParam;
+ if (szName == NULL)
+ break;
+
+ dat = ( PROFILEOPTIONS* )realloc(dat, (profileCount+1)*sizeof(PROFILEOPTIONS));
+ ZeroMemory(&dat[profileCount], sizeof(PROFILEOPTIONS));
+ dat[profileCount].szName = _strdup(szName);
+ dat[profileCount].ps = GetCurrentProtoSettings();
+ profileCount += 1;
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)dat);
+ SendMessage(hwndDlg, UM_REINITPROFILES, 0, 0);
+ }
+ break;
+
+ case UM_DELPROFILE: {
+ // wparam == profile no
+ int i, defProfile;
+
+ i = (int)wParam;
+ if (profileCount == 1) {
+ MessageBox(NULL, TranslateT("At least one profile must exist"), TranslateT("StartupStatus"), MB_OK);
+ break;
+ }
+
+ if (dat[i].ps != NULL)
+ dat[i].ps->destroy();
+
+ if (dat[i].szName != NULL)
+ free(dat[i].szName);
+
+ MoveMemory(&dat[i], &dat[i+1], (profileCount-i-1)*sizeof(PROFILEOPTIONS));
+ dat = ( PROFILEOPTIONS* )realloc(dat, (profileCount-1)*sizeof(PROFILEOPTIONS));
+ profileCount -= 1;
+ GetProfileCount((WPARAM)&defProfile, 0);
+ if (i == defProfile) {
+ MessageBox(NULL, TranslateT("Your default profile will be changed"), TranslateT("StartupStatus"), MB_OK);
+ DBWriteContactSettingWord(NULL, MODULENAME, SETTING_DEFAULTPROFILE, 0);
+ defProfile = 0;
+ }
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)dat);
+ SendMessage(hwndDlg, UM_REINITPROFILES, 0, 0);
+ break;
+ }
+
+ case WM_COMMAND:
+ if ( ((HIWORD(wParam) == EN_CHANGE) || (HIWORD(wParam) == BN_CLICKED) || (HIWORD(wParam) == LBN_SELCHANGE)) && ((HWND)lParam == GetFocus()) )
+ if ( bInitDone )
+ SendMessage(GetParent(hwndDlg),PSM_CHANGED,0,0);
+
+ switch (LOWORD(wParam)) {
+ case IDC_STATUS:
+ if (HIWORD(wParam) == LBN_SELCHANGE) {
+ int idx = SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETCURSEL, 0, 0);
+ if ( idx != -1 ) {
+ TSSSetting* ps = ( TSSSetting* )SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETITEMDATA, idx, 0);
+ ps->status = (int)SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_STATUS, LB_GETCURSEL, 0, 0), 0);
+ }
+ SendMessage(hwndDlg, UM_SETSTATUSMSG, 0, 0);
+ }
+ break;
+
+ case IDC_PROFILE:
+ if (HIWORD(wParam) != CBN_SELCHANGE)
+ break;
+
+ SendMessage(hwndDlg, UM_SETPROFILE, 0, 0);
+ break;
+
+ case IDC_PROTOCOL:
+ if (HIWORD(wParam) != LBN_SELCHANGE)
+ break;
+
+ SendMessage(hwndDlg, UM_SETPROTOCOL, 0, 0);
+ break;
+
+ case IDC_MIRANDAMSG:
+ case IDC_CUSTOMMSG:
+ {
+ int len;
+ TSSSetting* ps = ( TSSSetting* )SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETCURSEL, 0, 0), 0);
+ if (ps->szMsg != NULL)
+ free(ps->szMsg);
+
+ ps->szMsg = NULL;
+ if (IsDlgButtonChecked(hwndDlg, IDC_CUSTOMMSG)) {
+ len = SendDlgItemMessage(hwndDlg, IDC_STATUSMSG, WM_GETTEXTLENGTH, 0, 0);
+ ps->szMsg = (char *)malloc(len+1);
+ memset(ps->szMsg, '\0', len+1);
+ SendDlgItemMessage(hwndDlg, IDC_STATUSMSG, WM_GETTEXT, (WPARAM)len+1, (LPARAM)ps->szMsg);
+ }
+ SendMessage(hwndDlg, UM_SETSTATUSMSG, 0, 0);
+ }
+ break;
+
+ case IDC_STATUSMSG:
+ if (HIWORD(wParam) == EN_CHANGE) {
+ // update the status message in memory, this is done on each character tick, not nice
+ // but it works
+ TSSSetting* ps = ( TSSSetting* )SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROTOCOL, LB_GETCURSEL, 0, 0), 0);
+ if (ps->szMsg != NULL) {
+ if ( *ps->szMsg )
+ free(ps->szMsg);
+ ps->szMsg = NULL;
+ }
+ int len = SendDlgItemMessageA(hwndDlg, IDC_STATUSMSG, WM_GETTEXTLENGTH, 0, 0);
+ ps->szMsg = (char *)malloc(len+1);
+ memset(ps->szMsg, '\0', len+1);
+ SendDlgItemMessageA(hwndDlg, IDC_STATUSMSG, WM_GETTEXT, (WPARAM)len+1, (LPARAM)ps->szMsg);
+ }
+ break;
+
+ case IDC_CREATEMMI:
+ EnableWindow(GetDlgItem(hwndDlg, IDC_INSUBMENU), IsDlgButtonChecked(hwndDlg, IDC_CREATEMMI));
+ case IDC_INSUBMENU:
+ bNeedRebuildMenu = TRUE;
+ case IDC_REGHOTKEY:
+ case IDC_CREATETTB:
+ case IDC_SHOWDIALOG:
+ {
+ int sel = (int)SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETCURSEL, 0, 0), 0);
+ dat[sel].createMmi = IsDlgButtonChecked(hwndDlg, IDC_CREATEMMI);
+ dat[sel].inSubMenu = IsDlgButtonChecked(hwndDlg, IDC_INSUBMENU);
+ dat[sel].createTtb = IsDlgButtonChecked(hwndDlg, IDC_CREATETTB);
+ dat[sel].regHotkey = IsDlgButtonChecked(hwndDlg, IDC_REGHOTKEY);
+ dat[sel].showDialog = IsDlgButtonChecked(hwndDlg, IDC_SHOWDIALOG);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_HOTKEY), IsDlgButtonChecked(hwndDlg, IDC_REGHOTKEY));
+ }
+ break;
+
+ case IDC_HOTKEY:
+ if (HIWORD(wParam) == EN_CHANGE) {
+ int sel = (int)SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETCURSEL, 0, 0), 0);
+ dat[sel].hotKey = (WORD)SendDlgItemMessage(hwndDlg, IDC_HOTKEY, HKM_GETHOTKEY, 0, 0);
+ }
+ break;
+
+ case IDC_ADDPROFILE:
+ // add a profile
+ CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_ADDPROFILE), hwndDlg, addProfileDlgProc, (LPARAM)hwndDlg);
+ EnableWindow(hwndDlg, FALSE);
+ break;
+
+ case IDC_DELPROFILE:
+ {
+ int sel = (int)SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETITEMDATA,
+ SendDlgItemMessage(hwndDlg, IDC_PROFILE, CB_GETCURSEL, 0, 0), 0);
+ SendMessage(hwndDlg, UM_DELPROFILE, (WPARAM)sel, 0);
+ }
+ break;
+
+ case IDC_VARIABLESHELP:
+ variables_showhelp(hwndDlg, IDC_STATUSMSG, VHF_INPUT|VHF_EXTRATEXT|VHF_HELP|VHF_FULLFILLSTRUCT|VHF_HIDESUBJECTTOKEN, NULL, "Protocol ID");
+ break;
+ }
+ break;
+
+ case WM_NOTIFY:
+ if (((LPNMHDR)lParam)->code == PSN_APPLY) {
+ int oldCount, i, j;
+ char setting[128];
+
+ oldCount = DBGetContactSettingWord(NULL, MODULENAME, SETTING_PROFILECOUNT, 0);
+ for (i=0;i<oldCount;i++) {
+ mir_snprintf(setting, sizeof(setting), "%d_", i);
+ ClearDatabase(setting);
+ }
+ for (i=0;i<profileCount;i++) {
+ dbi_setb(i, SETTING_SHOWCONFIRMDIALOG, dat[i].showDialog);
+ dbi_setb(i, SETTING_CREATETTBBUTTON, dat[i].createTtb);
+ dbi_setb(i, SETTING_CREATEMMITEM, dat[i].createMmi);
+ dbi_setb(i, SETTING_INSUBMENU, dat[i].inSubMenu);
+ dbi_setb(i, SETTING_REGHOTKEY, dat[i].regHotkey);
+ dbi_setw(i, SETTING_HOTKEY, dat[i].hotKey);
+ dbi_setAs(i, SETTING_PROFILENAME, dat[i].szName);
+
+ TSettingsList& ar = *dat[i].ps;
+ for ( j=0; j < ar.getCount(); j++ ) {
+ if ( ar[j].szMsg != NULL ) {
+ mir_snprintf(setting, sizeof(setting), "%s_%s", ar[j].szName, SETTING_PROFILE_STSMSG);
+ dbi_setAs(i, setting, ar[j].szMsg);
+ }
+ dbi_setw(i, ar[j].szName, ar[j].status);
+ }
+ }
+ DBWriteContactSettingWord(NULL, MODULENAME, SETTING_PROFILECOUNT, (WORD)profileCount);
+
+ if (bNeedRebuildMenu) {
+ // Rebuild status menu
+ CLIST_INTERFACE* pcli = ( CLIST_INTERFACE* )CallService( MS_CLIST_RETRIEVE_INTERFACE, 0, 0 );
+ if ( pcli && pcli->version > 4 )
+ pcli->pfnReloadProtoMenus();
+ }
+ LoadMainOptions();
+ }
+ break;
+
+ case WM_DESTROY:
+ {
+ for ( int i=0; i < profileCount; i++ ) {
+ delete dat[i].ps;
+
+ if (dat[i].szName != NULL)
+ free(dat[i].szName);
+ }
+ free( dat ); dat = NULL;
+ break;
+ } }
+
+ return 0;
+}
+
+INT_PTR CALLBACK addProfileDlgProc(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM lParam)
+{
+ static HWND hwndParent;
+
+ switch(msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ hwndParent = (HWND)lParam;
+ EnableWindow(GetDlgItem(hwndDlg, IDC_OK), FALSE);
+ break;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDC_OK) {
+ char profileName[128];
+ GetDlgItemTextA(hwndDlg, IDC_PROFILENAME, profileName, sizeof(profileName));
+ SendMessage(hwndParent, UM_ADDPROFILE, 0, (LPARAM)profileName);
+ // done and exit
+ DestroyWindow(hwndDlg);
+ }
+ else if (LOWORD(wParam) == IDC_CANCEL) {
+ DestroyWindow(hwndDlg);
+ }
+ else if (LOWORD(wParam) == IDC_PROFILENAME) {
+ (SendDlgItemMessage(hwndDlg,IDC_PROFILENAME,EM_LINELENGTH,0,0) > 0)?EnableWindow(GetDlgItem(hwndDlg, IDC_OK), TRUE):EnableWindow(GetDlgItem(hwndDlg, IDC_OK), FALSE);
+ }
+ break;
+
+ case WM_DESTROY:
+ EnableWindow(hwndParent, TRUE);
+ break;
+ }
+
+ return 0;
+}
+
+int OptionsInit(WPARAM wparam,LPARAM lparam)
+{
+ OPTIONSDIALOGPAGE odp = { 0 };
+ odp.cbSize = sizeof(odp);
+ odp.hInstance = hInst;
+ odp.pszGroup = LPGEN("Status");
+ odp.pszTitle = LPGEN("StartupStatus");
+ odp.flags = ODPF_BOLDGROUPS;
+
+ odp.pszTab = LPGEN("General");
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_STARTUPSTATUS);
+ odp.pfnDlgProc = StartupStatusOptDlgProc;
+ CallService(MS_OPT_ADDPAGE,wparam,(LPARAM)&odp);
+
+ odp.pszTab = LPGEN("Status Profiles");
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_STATUSPROFILES);
+ odp.pfnDlgProc = StatusProfilesOptDlgProc;
+ CallService(MS_OPT_ADDPAGE,wparam,(LPARAM)&odp);
+
+ return 0;
+}
+
+// from: http://www.codeproject.com/winhelp/msdnintegrator/
+#ifdef _UNICODE
+ static const CHAR _szSpecialFolderPath[] = "SHGetSpecialFolderPathW";
+#else
+ static const CHAR _szSpecialFolderPath[] = "SHGetSpecialFolderPathA";
+#endif
+
+BOOL MyGetSpecialFolderPath(HWND hwndOwner, LPTSTR lpszPath, int nFolder, BOOL fCreate)
+{
+ typedef int (WINAPI* _SHGET)(HWND, LPTSTR, int, BOOL);
+
+ // Get a function pointer to SHGetSpecialFolderPath(...) from
+ // Shell32.dll, if this returns NULL then check ShFolder.dll...
+ _SHGET pfn = (_SHGET)GetProcAddress( LoadLibraryA( "Shell32.dll" ), _szSpecialFolderPath);
+ if (pfn == NULL) {
+ // Try to get the function pointer from ShFolder.dll, if pfn is still
+ // NULL then we have bigger problems...
+ pfn = (_SHGET)GetProcAddress( LoadLibraryA("ShFolder.dll"), _szSpecialFolderPath);
+ if (pfn == NULL)
+ return FALSE;
+ }
+
+ return pfn(hwndOwner, lpszPath, nFolder, fCreate);
+}
+
+// end: from: http://www.codeproject.com/winhelp/msdnintegrator/
+static int ClearDatabase(char* filter)
+{
+ DBCONTACTENUMSETTINGS dbces;
+ char** settings;
+ int i, settingCount;
+
+ settingCount = 0;
+ settingIndex = 0;
+ dbces.szModule = MODULENAME;
+ dbces.lParam = (LPARAM)&settingCount;
+ dbces.pfnEnumProc = CountSettings;
+ CallService(MS_DB_CONTACT_ENUMSETTINGS,(WPARAM)NULL,(LPARAM)&dbces);
+
+ settings = ( char** )malloc(settingCount*sizeof(char*));
+ dbces.lParam = (LPARAM)&settings;
+ dbces.pfnEnumProc = DeleteSetting;
+ CallService(MS_DB_CONTACT_ENUMSETTINGS,(WPARAM)NULL,(LPARAM)&dbces);
+ for (i=0;i<settingCount;i++) {
+ if ((filter == NULL) || (!strncmp(filter, settings[i], strlen(filter))))
+ DBDeleteContactSetting(NULL, MODULENAME, settings[i]);
+ free(settings[i]);
+ }
+ free(settings);
+ // < v0.0.0.9
+ if (filter == NULL) DBDeleteContactSetting(NULL, "AutoAway", "Confirm");
+
+ return 0;
+}
+
+static int CountSettings(const char *szSetting,LPARAM lParam)
+{
+ *(int *)lParam += 1;
+
+ return 0;
+}
+
+static int DeleteSetting(const char *szSetting,LPARAM lParam)
+{
+ char** settings = (char**)*(char ***)lParam;
+ settings[settingIndex] = ( char* )malloc(strlen(szSetting)+1);
+ strcpy(settings[settingIndex], szSetting);
+ settingIndex += 1;
+
+ return 0;
+}
diff --git a/plugins/StatusPlugins/StartupStatus/pack.cmd b/plugins/StatusPlugins/StartupStatus/pack.cmd
new file mode 100644
index 0000000000..ad14c865d0
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/pack.cmd
@@ -0,0 +1,42 @@
+@echo off
+set PluginName=StartupStatus
+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" StartupStatus_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/KeepStatus/* -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/StartupStatus/profiles.cpp b/plugins/StatusPlugins/StartupStatus/profiles.cpp
new file mode 100644
index 0000000000..c6f4298f19
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/profiles.cpp
@@ -0,0 +1,423 @@
+/*
+ StartupStatus 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 "startupstatus.h"
+#include "../resource.h"
+#include <commctrl.h>
+
+#include <m_icolib.h>
+
+#define MAX_MMITEMS 6
+
+extern HINSTANCE hInst;
+extern int protoCount;
+
+static int menuprofiles[MAX_MMITEMS];
+static HANDLE hProfileServices[MAX_MMITEMS];
+static int mcount = 0;
+
+static PROFILECE *pce = NULL;
+static int pceCount = 0;
+
+static UINT_PTR releaseTtbTimerId = 0;
+
+static HANDLE hPrebuildProfilesMenu = NULL;
+static HANDLE hTBModuleLoadedHook;
+static HANDLE hTTBModuleLoadedHook;
+static HANDLE hLoadAndSetProfileService;
+static HANDLE hMessageHook = NULL;
+
+static HWND hMessageWindow = NULL;
+static HKINFO *hkInfo = NULL;
+static int hkiCount = 0;
+
+static HANDLE* ttbButtons = NULL;
+static int ttbButtonCount = 0;
+
+// these are some lame functions, if you have a better solution, mail me. :s
+static INT_PTR profileService0(WPARAM wParam, LPARAM lParam)
+{
+ LoadAndSetProfile((WPARAM)menuprofiles[0], 0);
+ return 0;
+}
+
+static INT_PTR profileService1(WPARAM wParam, LPARAM lParam)
+{
+ LoadAndSetProfile((WPARAM)menuprofiles[1], 0);
+ return 0;
+}
+
+static INT_PTR profileService2(WPARAM wParam, LPARAM lParam)
+{
+ LoadAndSetProfile((WPARAM)menuprofiles[2], 0);
+ return 0;
+}
+
+static INT_PTR profileService3(WPARAM wParam, LPARAM lParam)
+{
+ LoadAndSetProfile((WPARAM)menuprofiles[3], 0);
+ return 0;
+}
+
+static INT_PTR profileService4(WPARAM wParam, LPARAM lParam)
+{
+ LoadAndSetProfile((WPARAM)menuprofiles[4], 0);
+ return 0;
+}
+
+static INT_PTR profileService5(WPARAM wParam, LPARAM lParam)
+{
+ LoadAndSetProfile((WPARAM)menuprofiles[5], 0);
+ return 0;
+}
+
+static int CreateMainMenuItems(WPARAM wParam, LPARAM lParam)
+{
+ CLISTMENUITEM mi;
+ char profilename[128], servicename[128];
+ int i, count;
+
+ ZeroMemory(&mi, sizeof(mi));
+ mi.cbSize = sizeof(mi);
+ mi.popupPosition = 2000100000;
+ mcount = 0;
+ count = GetProfileCount(0, 0);
+ for (i=0;i<count;i++) {
+ if ( !dbi_getb(i, SETTING_CREATEMMITEM, 0) || GetProfileName((WPARAM)i, (LPARAM)profilename))
+ continue;
+
+ if (dbi_getb(i, SETTING_INSUBMENU, 1))
+ mi.pszPopupName = Translate("StatusProfiles");
+
+ mi.pszName = profilename;
+ mi.position = 2000100000 + mcount;
+ mir_snprintf(servicename, sizeof(servicename), "%s%d", MS_SS_MENUSETPROFILEPREFIX, mcount);
+ switch(mcount) {
+ case 0:
+ hProfileServices[mcount] = CreateServiceFunction(servicename, profileService0);
+ break;
+ case 1:
+ hProfileServices[mcount] = CreateServiceFunction(servicename, profileService1);
+ break;
+ case 2:
+ hProfileServices[mcount] = CreateServiceFunction(servicename, profileService2);
+ break;
+ case 3:
+ hProfileServices[mcount] = CreateServiceFunction(servicename, profileService3);
+ break;
+ case 4:
+ hProfileServices[mcount] = CreateServiceFunction(servicename, profileService4);
+ break;
+ case 5:
+ hProfileServices[mcount] = CreateServiceFunction(servicename, profileService5);
+ break;
+ default:
+ MessageBox(NULL, TranslateT("There is a maximum of 6 menu items"), TranslateT("StartupStatus"), MB_OK);
+ return 0;
+ }
+ mi.pszService = servicename;
+ if (ServiceExists(MS_CLIST_ADDSTATUSMENUITEM)) {
+ if (CallService(MS_CLIST_ADDSTATUSMENUITEM, 0, (LPARAM)&mi)) {
+ menuprofiles[mcount] = i;
+ mcount += 1;
+ }
+ }
+ else {
+ if (CallService(MS_CLIST_ADDMAINMENUITEM, 0, (LPARAM)&mi)) {
+ menuprofiles[mcount] = i;
+ mcount += 1;
+ } } }
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+INT_PTR GetProfileName(WPARAM wParam, LPARAM lParam)
+{
+ int profile = (int)wParam;
+ char* buf = (char *)lParam;
+ if (wParam < 0) // get default profile
+ profile = DBGetContactSettingWord(NULL, MODULENAME, SETTING_DEFAULTPROFILE, 0);
+
+ int count = DBGetContactSettingWord(NULL, MODULENAME, SETTING_PROFILECOUNT, 0);
+ if ( profile >= count && count > 0 )
+ return -1;
+
+ if (count == 0) {
+ strncpy(buf, Translate("default"), 128-1);
+ return 0;
+ }
+
+ DBVARIANT dbv;
+ char setting[80];
+ _snprintf(setting, sizeof(setting), "%d_%s", profile, SETTING_PROFILENAME);
+ if (DBGetContactSetting(NULL, MODULENAME, setting, &dbv))
+ return -1;
+
+ memset(buf, '\0', 128);
+ strncpy(buf, dbv.pszVal, 128-1); // assume size >= 128
+ DBFreeVariant(&dbv);
+ return 0;
+}
+
+INT_PTR GetProfileCount(WPARAM wParam, LPARAM lParam)
+{
+ int* def = (int *)wParam;
+ int count = DBGetContactSettingWord(NULL, MODULENAME, SETTING_PROFILECOUNT, 1);
+ if ( def != 0) {
+ *def = DBGetContactSettingWord(NULL, MODULENAME, SETTING_DEFAULTPROFILE, 0);
+ if (*def >= count)
+ *def = 0;
+ }
+
+ return count;
+}
+
+char *GetStatusMessage(int profile, char *szProto)
+{
+ char dbSetting[80];
+ DBVARIANT dbv;
+
+ for ( int i=0; i < pceCount; i++ ) {
+ if ( (pce[i].profile == profile) && (!strcmp(pce[i].szProto, szProto)) ) {
+ _snprintf(dbSetting, sizeof(dbSetting), "%d_%s_%s", profile, szProto, SETTING_PROFILE_STSMSG);
+ if (!DBGetContactSetting(NULL, MODULENAME, dbSetting, &dbv)) { // reload from db
+ pce[i].msg = ( char* )realloc(pce[i].msg, strlen(dbv.pszVal)+1);
+ if (pce[i].msg != NULL) {
+ strcpy(pce[i].msg, dbv.pszVal);
+ }
+ DBFreeVariant(&dbv);
+ }
+ else {
+ if (pce[i].msg != NULL) {
+ free(pce[i].msg);
+ pce[i].msg = NULL;
+ }
+ }
+ return pce[i].msg;
+ }
+ }
+ pce = ( PROFILECE* )realloc(pce, (pceCount+1)*sizeof(PROFILECE));
+ if (pce == NULL)
+ return NULL;
+
+ pce[pceCount].profile = profile;
+ pce[pceCount].szProto = _strdup(szProto);
+ pce[pceCount].msg = NULL;
+ _snprintf(dbSetting, sizeof(dbSetting), "%d_%s_%s", profile, szProto, SETTING_PROFILE_STSMSG);
+ if (!DBGetContactSetting(NULL, MODULENAME, dbSetting, &dbv)) {
+ pce[pceCount].msg = _strdup(dbv.pszVal);
+ DBFreeVariant(&dbv);
+ }
+ pceCount += 1;
+
+ return pce[pceCount-1].msg;
+}
+
+int GetProfile( int profile, TSettingsList& arSettings )
+{
+ if ( profile < 0 ) // get default profile
+ profile = DBGetContactSettingWord(NULL, MODULENAME, SETTING_DEFAULTPROFILE, 0);
+
+ int count = DBGetContactSettingWord(NULL, MODULENAME, SETTING_PROFILECOUNT, 0);
+ if ( profile >= count && count > 0 )
+ return -1;
+
+ arSettings.destroy();
+
+ // if count == 0, continue so the default profile will be returned
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ for ( int i=0; i < count; i++ )
+ if ( IsSuitableProto( protos[i] ))
+ arSettings.insert( new TSSSetting( profile, protos[i] ));
+
+ return ( arSettings.getCount() == 0 ) ? -1 : 0;
+}
+
+static VOID CALLBACK releaseTtbTimerFunction(HWND hwnd,UINT message, UINT_PTR idEvent,DWORD dwTime) {
+
+ int i;
+
+ KillTimer(NULL, releaseTtbTimerId);
+ for(i=0;i<ttbButtonCount;i++) {
+ CallService(MS_TTB_SETBUTTONSTATE, (WPARAM)ttbButtons[i], TTBST_RELEASED);
+ }
+}
+
+INT_PTR LoadAndSetProfile(WPARAM wParam, LPARAM lParam)
+{
+ // wParam == profile no.
+ int profileCount = GetProfileCount(0, 0);
+ int profile = (int)wParam;
+
+ TSettingsList profileSettings( 10, CompareSettings );
+ if ( !GetProfile( profile, profileSettings)) {
+ profile = (profile >= 0)?profile:DBGetContactSettingWord(NULL, MODULENAME, SETTING_DEFAULTPROFILE, 0);
+
+ char setting[64];
+ _snprintf(setting, sizeof(setting), "%d_%s", profile, SETTING_SHOWCONFIRMDIALOG);
+ if (!DBGetContactSettingByte(NULL, MODULENAME, setting, 0))
+ CallService(MS_CS_SETSTATUSEX,(WPARAM)&profileSettings, 0);
+ else
+ CallService(MS_CS_SHOWCONFIRMDLGEX, (WPARAM)&profileSettings, (LPARAM)DBGetContactSettingDword(NULL, MODULENAME, SETTING_DLGTIMEOUT, 5));
+ }
+
+ if ( ServiceExists( MS_TTB_ADDBUTTON ) || ServiceExists( MS_TB_ADDBUTTON ))
+ // add timer here
+ releaseTtbTimerId = SetTimer(NULL, 0, 100, releaseTtbTimerFunction);
+
+ return 0;
+}
+
+static UINT GetFsModifiers(WORD wHotKey)
+{
+ UINT fsm = 0;
+ if (HIBYTE(wHotKey)&HOTKEYF_ALT)
+ fsm |= MOD_ALT;
+ if (HIBYTE(wHotKey)&HOTKEYF_CONTROL)
+ fsm |= MOD_CONTROL;
+ if (HIBYTE(wHotKey)&HOTKEYF_SHIFT)
+ fsm |= MOD_SHIFT;
+ if (HIBYTE(wHotKey)&HOTKEYF_EXT)
+ fsm |= MOD_WIN;
+
+ return fsm;
+}
+
+static DWORD CALLBACK MessageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ if ( msg == WM_HOTKEY ) {
+ for (int i=0; i < hkiCount; i++ )
+ if ((int)hkInfo[i].id == wParam)
+ LoadAndSetProfile((WPARAM)hkInfo[i].profile, 0);
+ }
+
+ return TRUE;
+}
+
+// assumes UnregisterHotKeys was called before
+static int RegisterHotKeys()
+{
+ hMessageWindow = CreateWindowEx(0, _T("STATIC"), NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
+ SetWindowLongPtr(hMessageWindow, GWLP_WNDPROC, (LONG_PTR)MessageWndProc);
+
+ int count = GetProfileCount(0, 0);
+ for ( int i=0; i < count; i++ ) {
+ if (!dbi_getb(i, SETTING_REGHOTKEY, 0))
+ continue;
+
+ WORD wHotKey = dbi_getw(i, SETTING_HOTKEY, 0);
+ hkInfo = ( HKINFO* )realloc(hkInfo, (hkiCount+1)*sizeof(HKINFO));
+ if (hkInfo == NULL)
+ return -1;
+
+ char atomname[255];
+ mir_snprintf(atomname, sizeof(atomname), "StatusProfile_%d", i);
+ hkInfo[hkiCount].id = GlobalAddAtomA(atomname);
+ if (hkInfo[hkiCount].id == 0)
+ continue;
+
+ hkInfo[hkiCount].profile = i;
+ hkiCount += 1;
+ RegisterHotKey(hMessageWindow, (int)hkInfo[hkiCount-1].id, GetFsModifiers(wHotKey), LOBYTE(wHotKey));
+ }
+
+ if (hkiCount == 0)
+ DestroyWindow(hMessageWindow);
+
+ return 0;
+}
+
+static int UnregisterHotKeys()
+{
+ if (IsWindow(hMessageWindow)) {
+ for ( int i=0; i < hkiCount; i++ ) {
+ UnregisterHotKey(hMessageWindow, (int)hkInfo[i].id);
+ GlobalDeleteAtom(hkInfo[i].id);
+ }
+ DestroyWindow(hMessageWindow);
+ }
+ if (hkInfo != NULL)
+ free(hkInfo);
+
+ hkiCount = 0;
+ hkInfo = NULL;
+ hMessageWindow = NULL;
+
+ return 0;
+}
+
+int ReinitProfileModule()
+{
+ if (ServiceExists(MS_TTB_ADDBUTTON)) {
+ RemoveTopToolbarButtons();
+ CreateTopToolbarButtons(0,0);
+ }
+ if (ServiceExists(MS_TTB_ADDBUTTON)) {
+ RemoveTopToolbarButtons();
+ CreateTopToolbarButtons(0,0);
+ }
+ UnregisterHotKeys();
+ RegisterHotKeys();
+
+ return 0;
+}
+
+int LoadProfileModule()
+{
+ hLoadAndSetProfileService = CreateServiceFunction(MS_SS_LOADANDSETPROFILE, LoadAndSetProfile);
+ hTBModuleLoadedHook = HookEvent(ME_TB_MODULELOADED, CreateToolbarButtons);
+
+ RegisterButtons();
+ return 0;
+}
+
+int InitProfileModule()
+{
+ hTTBModuleLoadedHook = HookEvent(ME_TTB_MODULELOADED, CreateTopToolbarButtons);
+ ReinitProfileModule();
+ hPrebuildProfilesMenu = HookEvent( ME_CLIST_PREBUILDSTATUSMENU, CreateMainMenuItems);
+ CreateMainMenuItems(0,0);
+
+ return 0;
+}
+
+int DeinitProfilesModule()
+{
+ for ( int i=0; i < mcount; i++ )
+ DestroyServiceFunction(hProfileServices[i]);
+
+ if ( pce ) {
+ for ( int i=0; i < pceCount; i++ )
+ free( pce[i].szProto );
+ free( pce );
+ }
+
+ UnhookEvent(hPrebuildProfilesMenu);
+ UnregisterHotKeys();
+ RemoveTopToolbarButtons();
+ UnhookEvent(hTTBModuleLoadedHook);
+ UnhookEvent(hTBModuleLoadedHook);
+ DestroyServiceFunction(hLoadAndSetProfileService);
+
+ return 0;
+}
diff --git a/plugins/StatusPlugins/StartupStatus/res/ttbDown.bmp b/plugins/StatusPlugins/StartupStatus/res/ttbDown.bmp
new file mode 100644
index 0000000000..91f95e240b
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/res/ttbDown.bmp
Binary files differ
diff --git a/plugins/StatusPlugins/StartupStatus/res/ttbDown.ico b/plugins/StatusPlugins/StartupStatus/res/ttbDown.ico
new file mode 100644
index 0000000000..bc4c6abd1c
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/res/ttbDown.ico
Binary files differ
diff --git a/plugins/StatusPlugins/StartupStatus/res/ttbUp.bmp b/plugins/StatusPlugins/StartupStatus/res/ttbUp.bmp
new file mode 100644
index 0000000000..5b684407a5
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/res/ttbUp.bmp
Binary files differ
diff --git a/plugins/StatusPlugins/StartupStatus/res/ttbUp.ico b/plugins/StatusPlugins/StartupStatus/res/ttbUp.ico
new file mode 100644
index 0000000000..99461d3e6d
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/res/ttbUp.ico
Binary files differ
diff --git a/plugins/StatusPlugins/StartupStatus/startupstatus.cpp b/plugins/StatusPlugins/StartupStatus/startupstatus.cpp
new file mode 100644
index 0000000000..13b58e2e52
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/startupstatus.cpp
@@ -0,0 +1,491 @@
+/*
+ StartupStatus 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 "startupstatus.h"
+
+// {4B733944-5A70-4b52-AB2D-68B1EF38FFE8}
+#define MIID_STARTUPSTATUS { 0x4b733944, 0x5a70, 0x4b52, { 0xab, 0x2d, 0x68, 0xb1, 0xef, 0x38, 0xff, 0xe8 } }
+
+static UINT_PTR setStatusTimerId = 0;
+
+int CompareSettings( const TSSSetting* p1, const TSSSetting* p2 )
+{ return lstrcmpA( p1->szName, p2->szName );
+}
+
+static TSettingsList startupSettings( 10, CompareSettings );
+
+TSSSetting::TSSSetting( PROTOACCOUNT* pa )
+{
+ cbSize = sizeof(PROTOCOLSETTINGEX);
+ szName = pa->szModuleName;
+ tszAccName = pa->tszAccountName;
+ status = lastStatus = CallProtoService( pa->szModuleName, PS_GETSTATUS, 0, 0 );
+ szMsg = NULL;
+}
+
+TSSSetting::TSSSetting( int profile, PROTOACCOUNT* pa )
+{
+ cbSize = sizeof(PROTOCOLSETTINGEX);
+
+ // copy name
+ szName = pa->szModuleName;
+ tszAccName = pa->tszAccountName;
+
+ // load status
+ char setting[80];
+ _snprintf(setting, sizeof(setting), "%d_%s", profile, pa->szModuleName);
+ int iStatus = DBGetContactSettingWord(NULL, MODULENAME, setting, 0);
+ if ( iStatus < MIN_STATUS || iStatus > MAX_STATUS )
+ iStatus = DEFAULT_STATUS;
+ status = iStatus;
+
+ // load last status
+ _snprintf(setting, sizeof(setting), "%s%s", PREFIX_LAST, szName);
+ iStatus = DBGetContactSettingWord(NULL, MODULENAME, setting, 0);
+ if ( iStatus < MIN_STATUS || iStatus > MAX_STATUS )
+ iStatus = DEFAULT_STATUS;
+ lastStatus = iStatus;
+
+ szMsg = GetStatusMessage(profile, szName);
+ if ( szMsg )
+ szMsg = _strdup( szMsg );
+}
+
+TSSSetting::~TSSSetting()
+{
+ if ( szMsg != NULL )
+ free( szMsg );
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+static HANDLE
+ hOptionsHook,
+ hShutdownHook,
+ hAccChangeHook,
+ hProtoAckHook,
+ hCSStatusChangeHook,
+ hStatusChangeHook;
+
+static HWND hMessageWindow;
+
+static BYTE showDialogOnStartup = 0;
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// command line options
+
+static PROTOCOLSETTINGEX* IsValidProtocol(TSettingsList& protoSettings, char* protoName)
+{
+ for ( int i=0; i < protoSettings.getCount(); i++ )
+ if ( !strncmp( protoSettings[i].szName, protoName, strlen(protoSettings[i].szName )))
+ return &protoSettings[i];
+
+ return NULL;
+}
+
+static int IsValidStatusDesc(char* statusDesc)
+{
+ if (!strncmp("away", statusDesc, 4))
+ return ID_STATUS_AWAY;
+ if (!strncmp("na", statusDesc, 2))
+ return ID_STATUS_NA;
+ if (!strncmp("dnd", statusDesc, 3))
+ return ID_STATUS_DND;
+ if (!strncmp("occupied", statusDesc, 8))
+ return ID_STATUS_OCCUPIED;
+ if (!strncmp("freechat", statusDesc, 8))
+ return ID_STATUS_FREECHAT;
+ if (!strncmp("online", statusDesc, 6))
+ return ID_STATUS_ONLINE;
+ if (!strncmp("offline", statusDesc, 7))
+ return ID_STATUS_OFFLINE;
+ if (!strncmp("invisible", statusDesc, 9))
+ return ID_STATUS_INVISIBLE;
+ if (!strncmp("onthephone", statusDesc, 10))
+ return ID_STATUS_ONTHEPHONE;
+ if (!strncmp("outtolunch", statusDesc, 10))
+ return ID_STATUS_OUTTOLUNCH;
+ if (!strncmp("last", statusDesc, 4))
+ return ID_STATUS_LAST;
+
+ return 0;
+}
+
+static void ProcessCommandLineOptions(TSettingsList& protoSettings)
+{
+ if ( protoSettings.getCount() == 0 )
+ return;
+
+ char *cmdl = GetCommandLineA();
+ while (*cmdl != '\0') {
+ while (*cmdl != '/') {
+ if (*cmdl == '\0')
+ return;
+
+ cmdl++;
+ }
+ if (*cmdl == '\0')
+ return;
+
+ cmdl++;
+ if (!strncmp(cmdl, "showdialog", 10)) {
+ showDialogOnStartup = TRUE;
+ continue;
+ }
+ char *protoName = cmdl; // first protocol ?
+ PROTOCOLSETTINGEX* protoSetting = IsValidProtocol(protoSettings, protoName);
+ if (protoSetting != NULL) {
+ while (*cmdl != '=') {
+ if (*cmdl == '\0')
+ return;
+
+ cmdl++; // skip to status
+ }
+
+ if (*cmdl == '\0')
+ return;
+
+ cmdl++;
+ char *statusDesc = cmdl;
+ int status = IsValidStatusDesc(statusDesc);
+ if (status != 0)
+ protoSetting->status = status;
+} } }
+
+static void SetLastStatusMessages(TSettingsList& ps)
+{
+ for (int i=0; i < ps.getCount(); i++ ) {
+ if (ps[i].status != ID_STATUS_LAST)
+ continue;
+
+ char dbSetting[128];
+ _snprintf(dbSetting, sizeof(dbSetting), "%s%s", PREFIX_LASTMSG, ps[i].szName);
+
+ DBVARIANT dbv;
+ if ( ps[i].szMsg == NULL && !DBGetContactSetting(NULL, MODULENAME, dbSetting, &dbv)) {
+ ps[i].szMsg = _strdup(dbv.pszVal); // remember this won't be freed
+ DBFreeVariant(&dbv);
+} } }
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// Account control event
+
+int OnAccChanged(WPARAM wParam,LPARAM lParam)
+{
+ PROTOACCOUNT* pa = ( PROTOACCOUNT* )lParam;
+ switch( wParam ) {
+ case PRAC_ADDED:
+ startupSettings.insert( new TSSSetting( -1, pa ));
+ break;
+
+ case PRAC_REMOVED:
+ {
+ for ( int i=0; i < startupSettings.getCount(); i++ ) {
+ if ( !lstrcmpA( startupSettings[i].szName, pa->szModuleName )) {
+ startupSettings.remove( i );
+ break;
+ } } }
+ break;
+ }
+
+ return 0;
+}
+
+// 'allow override'
+static int ProcessProtoAck(WPARAM wParam,LPARAM lParam)
+{
+ // 'something' made a status change
+ ACKDATA *ack=(ACKDATA*)lParam;
+ if ( ack->type != ACKTYPE_STATUS && ack->result != ACKRESULT_FAILED )
+ return 0;
+
+ if ( !DBGetContactSettingByte(NULL, MODULENAME, SETTING_OVERRIDE, 1) || startupSettings.getCount() == 0 )
+ return 0;
+
+ for (int i=0; i < startupSettings.getCount(); i++) {
+ if ( !strcmp( ack->szModule, startupSettings[i].szName )) {
+ startupSettings[i].szName = "";
+ log_debugA("StartupStatus: %s overridden by ME_PROTO_ACK, status will not be set", ack->szModule);
+ } }
+
+ return 0;
+}
+
+static int StatusChange(WPARAM wParam, LPARAM lParam)
+{
+ // change by menu
+ if ( !DBGetContactSettingByte(NULL, MODULENAME, SETTING_OVERRIDE, 1) || startupSettings.getCount() == 0 )
+ return 0;
+
+ char* szProto = (char *)lParam;
+ if (szProto == NULL) { // global status change
+ for ( int i=0; i < startupSettings.getCount(); i++ ) {
+ startupSettings[i].szName = "";
+ log_debugA("StartupStatus: all protos overridden by ME_CLIST_STATUSMODECHANGE, status will not be set");
+ }
+ }
+ else {
+ for ( int i=0; i < startupSettings.getCount(); i++) {
+ if ( !strcmp( startupSettings[i].szName, szProto )) {
+ startupSettings[i].szName = "";
+ log_debugA("StartupStatus: %s overridden by ME_CLIST_STATUSMODECHANGE, status will not be set", szProto);
+ } } }
+
+ return 0;
+}
+
+static int CSStatusChangeEx(WPARAM wParam, LPARAM lParam)
+{
+ // another status plugin made the change
+ if ( !DBGetContactSettingByte(NULL, MODULENAME, SETTING_OVERRIDE, 1) || startupSettings.getCount() == 0 )
+ return 0;
+
+ if (wParam != 0) {
+ PROTOCOLSETTINGEX** ps = *(PROTOCOLSETTINGEX***)wParam;
+ if (ps == NULL)
+ return -1;
+
+ for (int i=0; i < startupSettings.getCount(); i++ ) {
+ for ( int j=0; j < startupSettings.getCount(); j++ ) {
+ if ( ps[i]->szName == NULL || startupSettings[j].szName == NULL )
+ continue;
+
+ if ( !strcmp( ps[i]->szName, startupSettings[j].szName )) {
+ log_debugA("StartupStatus: %s overridden by MS_CS_SETSTATUSEX, status will not be set", ps[i]->szName);
+ // use a hack to disable this proto
+ startupSettings[j].szName = "";
+ } } } }
+
+ return 0;
+}
+
+static VOID CALLBACK SetStatusTimed(HWND hwnd,UINT message, UINT_PTR idEvent,DWORD dwTime)
+{
+ KillTimer(NULL, setStatusTimerId);
+ UnhookEvent(hProtoAckHook);
+ UnhookEvent(hCSStatusChangeHook);
+ UnhookEvent(hStatusChangeHook);
+ CallService(MS_CS_SETSTATUSEX, (WPARAM)&startupSettings, 0);
+}
+
+int LoadMainOptions()
+{
+ ReinitProfileModule();
+ return 0;
+}
+
+static int Exit(WPARAM wParam, LPARAM lParam)
+{
+ DeinitProfilesModule();
+ UnhookEvent(hOptionsHook);
+ UnhookEvent(hShutdownHook);
+ UnhookEvent(hAccChangeHook);
+
+ // save last protocolstatus
+ int count;
+ PROTOACCOUNT** protos;
+ ProtoEnumAccounts( &count, &protos );
+
+ for ( int i=0; i < count; i++ ) {
+ if ( !IsSuitableProto( protos[i] ))
+ continue;
+
+ char lastName[128], lastMsg[128];
+ mir_snprintf(lastName, sizeof(lastName), "%s%s", PREFIX_LAST, protos[i]->szModuleName);
+ if (CallService(MS_PROTO_ISPROTOCOLLOADED, 0, (LPARAM)protos[i]->szModuleName)) {
+ DBWriteContactSettingWord(NULL, MODULENAME, lastName, (WORD)CallProtoService(protos[i]->szModuleName, PS_GETSTATUS, 0, 0));
+ mir_snprintf(lastMsg, sizeof(lastMsg), "%s%s", PREFIX_LASTMSG, protos[i]->szModuleName);
+ DBDeleteContactSetting(NULL, MODULENAME, lastMsg);
+
+ int status = CallProtoService(protos[i]->szModuleName, PS_GETSTATUS, 0, 0);
+ if ( !CallService(MS_PROTO_ISPROTOCOLLOADED, 0, (LPARAM)protos[i]->szModuleName))
+ continue;
+
+ if ( !(CallProtoService(protos[i]->szModuleName, PS_GETCAPS, (WPARAM)PFLAGNUM_1, 0) & PF1_MODEMSGSEND & ~PF1_INDIVMODEMSG ))
+ continue;
+
+ if ( !(CallProtoService(protos[i]->szModuleName, PS_GETCAPS, (WPARAM)PFLAGNUM_3, 0)&Proto_Status2Flag(status)))
+ continue;
+
+ if (ServiceExists(MS_NAS_GETSTATE)) {
+ // NewAwaySys
+ NAS_PROTOINFO npi = { 0 };
+ npi.cbSize = sizeof(NAS_PROTOINFO);
+ npi.szProto = protos[i]->szModuleName;
+ npi.status = 0;
+ CallService(MS_NAS_GETSTATEA, (WPARAM)&npi, (LPARAM)1);
+ if (npi.szMsg == NULL) {
+ npi.status = 0;
+ npi.szProto = NULL;
+ CallService(MS_NAS_GETSTATEA, (WPARAM)&npi, (LPARAM)1);
+ }
+ if (npi.szMsg != NULL) {
+ DBWriteContactSettingString(NULL, MODULENAME, lastMsg, npi.szMsg);
+ mir_free(npi.szMsg);
+ } } } }
+
+ if ( (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETPROFILE, 1)) || (DBGetContactSettingByte(NULL, MODULENAME, SETTING_OFFLINECLOSE, 0)) ) {
+ if (ServiceExists(MS_CLIST_SETSTATUSMODE))
+ CallService(MS_CLIST_SETSTATUSMODE, (WPARAM)ID_STATUS_OFFLINE, 0);
+ else
+ log_debugA("StartupStatus: MS_CLIST_SETSTATUSMODE not available!");
+ }
+
+ // set windowstate and docked for next startup
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSTATE, 0)) {
+ int state = DBGetContactSettingByte(NULL, MODULENAME, SETTING_WINSTATE, SETTING_STATE_NORMAL);
+ HWND hClist = (HWND)CallService(MS_CLUI_GETHWND, 0, 0);
+ BOOL isHidden = !IsWindowVisible(hClist);
+ switch (state) {
+ case SETTING_STATE_HIDDEN:
+ // try to use services where possible
+ if (!isHidden)
+ CallService(MS_CLIST_SHOWHIDE, 0, 0);
+ break;
+
+ case SETTING_STATE_MINIMIZED:
+ if (!DBGetContactSettingByte(NULL, MODULE_CLIST, SETTING_TOOLWINDOW, 0))
+ ShowWindow(hClist, SW_SHOWMINIMIZED);
+ break;
+
+ case SETTING_STATE_NORMAL:
+ // try to use services where possible (that's what they're for)
+ if (isHidden)
+ CallService(MS_CLIST_SHOWHIDE, 0, 0);
+ break;
+ } }
+
+ // hangup
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_AUTOHANGUP, 0))
+ InternetAutodialHangup(0);
+
+ int state = DBGetContactSettingByte(NULL, MODULENAME, SETTING_WINSTATE, SETTING_STATE_NORMAL);
+ // set windowstate and docked for next startup
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSTATE, 0))
+ DBWriteContactSettingByte(NULL, MODULE_CLIST, SETTING_WINSTATE, (BYTE)state);
+
+ if ( hMessageWindow )
+ DestroyWindow(hMessageWindow);
+
+ startupSettings.destroy();
+ return 0;
+}
+
+/* Window proc for poweroff event */
+static DWORD CALLBACK MessageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch(msg) {
+ case WM_ENDSESSION:
+ log_debugA("WM_ENDSESSION");
+ if (wParam) {
+ log_debugA("WM_ENDSESSION: calling exit");
+ Exit(0, 0);
+ log_debugA("WM_ENDSESSION: exit called");
+ }
+ break;
+ }
+
+ return TRUE;
+}
+
+int CSModuleLoaded(WPARAM wParam, LPARAM lParam)
+{
+ protoList = ( OBJLIST<PROTOCOLSETTINGEX>* )&startupSettings;
+
+ InitProfileModule();
+
+ hAccChangeHook = HookEvent(ME_PROTO_ACCLISTCHANGED, OnAccChanged);
+ hOptionsHook = HookEvent(ME_OPT_INITIALISE, OptionsInit);
+
+ /* shutdown hook for normal shutdown */
+ hShutdownHook = HookEvent(ME_SYSTEM_OKTOEXIT, Exit);
+ /* message window for poweroff */
+ hMessageWindow = CreateWindowEx(0, _T("STATIC"), NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
+ SetWindowLongPtr(hMessageWindow, GWLP_WNDPROC, (LONG_PTR)MessageWndProc);
+
+ GetProfile( -1, startupSettings );
+
+ // override with cmdl
+ ProcessCommandLineOptions( startupSettings );
+ if (startupSettings.getCount() == 0)
+ return 0;// no protocols are loaded
+
+ SetLastStatusMessages(startupSettings);
+ showDialogOnStartup = (showDialogOnStartup || DBGetContactSettingByte(NULL, MODULENAME, SETTING_SHOWDIALOG, 0));
+
+ // dial
+ if ( showDialogOnStartup || DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETPROFILE, 1))
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_AUTODIAL, 0))
+ InternetAutodial(0, NULL);
+
+ // set the status!
+ if ( showDialogOnStartup || DBGetContactSettingByte(NULL, MODULENAME, SETTING_SHOWDIALOG, 0)) {
+ CallService(MS_CS_SHOWCONFIRMDLGEX, (WPARAM)&startupSettings, DBGetContactSettingDword(NULL, MODULENAME, SETTING_DLGTIMEOUT, 5));
+ }
+ else if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETPROFILE, 1)) {
+ // set hooks for override
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_OVERRIDE, 1)) {
+ hProtoAckHook = HookEvent(ME_PROTO_ACK, ProcessProtoAck);
+ hCSStatusChangeHook = HookEvent(ME_CS_STATUSCHANGEEX, CSStatusChangeEx);
+ hStatusChangeHook = HookEvent(ME_CLIST_STATUSMODECHANGE, StatusChange);
+ }
+ setStatusTimerId = SetTimer(NULL, 0, DBGetContactSettingDword(NULL,MODULENAME,SETTING_SETPROFILEDELAY,500), SetStatusTimed);
+ }
+
+ // win size and location
+ if ( DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINLOCATION, 0) ||
+ DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSIZE, 0))
+ {
+ WINDOWPLACEMENT wndpl = { 0 };
+ wndpl.length = sizeof(wndpl);
+
+ HWND hClist = (HWND)CallService(MS_CLUI_GETHWND, 0, 0);
+
+ // store in db
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINLOCATION, 0)) {
+ DBWriteContactSettingDword(NULL, MODULE_CLIST, SETTING_XPOS, DBGetContactSettingDword(NULL, MODULENAME, SETTING_XPOS, 0));
+ DBWriteContactSettingDword(NULL, MODULE_CLIST, SETTING_YPOS, DBGetContactSettingDword(NULL, MODULENAME, SETTING_YPOS, 0));
+ }
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSIZE, 0)) {
+ DBWriteContactSettingDword(NULL, MODULE_CLIST, SETTING_WIDTH, DBGetContactSettingDword(NULL, MODULENAME, SETTING_WIDTH, 0));
+ if (!DBGetContactSettingByte(NULL, MODULE_CLUI, SETTING_AUTOSIZE, 0))
+ DBWriteContactSettingDword(NULL, MODULE_CLIST, SETTING_HEIGHT, DBGetContactSettingDword(NULL, MODULENAME, SETTING_HEIGHT, 0));
+ }
+ if ( GetWindowPlacement( hClist, &wndpl )) {
+ if ( wndpl.showCmd == SW_SHOWNORMAL && !CallService(MS_CLIST_DOCKINGISDOCKED, 0, 0)) {
+ RECT rc;
+ if (GetWindowRect(hClist, &rc)) {
+ int x = rc.left;
+ int y = rc.top;
+ int width = rc.right - rc.left;
+ int height = rc.bottom - rc.top;
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINLOCATION, 0)) {
+ x = DBGetContactSettingDword(NULL, MODULENAME, SETTING_XPOS, x);
+ y = DBGetContactSettingDword(NULL, MODULENAME, SETTING_YPOS, y);
+ }
+ if (DBGetContactSettingByte(NULL, MODULENAME, SETTING_SETWINSIZE, 0)) {
+ width = DBGetContactSettingDword(NULL, MODULENAME, SETTING_WIDTH, width);
+ if (!DBGetContactSettingByte(NULL, MODULE_CLUI, SETTING_AUTOSIZE, 0))
+ height = DBGetContactSettingDword(NULL, MODULENAME, SETTING_HEIGHT, height);
+ }
+ MoveWindow(hClist, x, y, width, height, TRUE);
+ } } } }
+
+ return 0;
+}
diff --git a/plugins/StatusPlugins/StartupStatus/startupstatus.h b/plugins/StatusPlugins/StartupStatus/startupstatus.h
new file mode 100644
index 0000000000..19ff57e76f
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/startupstatus.h
@@ -0,0 +1,165 @@
+/*
+ StartupStatus 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 __STARTUPSTATUSHEADER
+#define __STARTUPSTATUSHEADER
+
+#include <windows.h>
+#include <wininet.h>
+#include <shlobj.h>
+#include <m_options.h>
+#include <m_clui.h>
+#include <m_toptoolbar.h>
+#include <m_toolbar.h>
+#include "version.h"
+#define MODULENAME "StartupStatus"
+#include "../../helpers/db_helpers.h"
+
+struct TSSSetting : public PROTOCOLSETTINGEX
+{
+ TSSSetting( PROTOACCOUNT* pa );
+ TSSSetting( int profile, PROTOACCOUNT* pa );
+ ~TSSSetting();
+
+ __inline void* operator new( size_t size ) { return calloc( 1, size ); }
+ __inline void operator delete( void* p ) { free( p ); }
+};
+
+typedef OBJLIST<TSSSetting> TSettingsList;
+
+typedef struct {
+ int profile;
+ char *szProto;
+ char *msg;
+} PROFILECE;
+
+typedef struct {
+ char *szName;
+ TSettingsList* ps;
+ BOOL showDialog;
+ BOOL createTtb;
+ BOOL createMmi;
+ BOOL inSubMenu;
+ BOOL regHotkey;
+ WORD hotKey;
+} PROFILEOPTIONS;
+
+typedef struct {
+ ATOM id;
+ int profile;
+} HKINFO;
+
+#define UM_REINITPROFILES WM_USER + 1
+#define UM_SETPROFILE WM_USER + 2
+#define UM_SETPROTOCOL WM_USER + 3
+#define UM_SETSTATUSMSG WM_USER + 4
+#define UM_ADDPROFILE WM_USER + 5
+#define UM_DELPROFILE WM_USER + 6
+#define UM_REINITDOCKED WM_USER + 7
+#define UM_REINITWINSTATE WM_USER + 8
+#define UM_REINITWINSIZE WM_USER + 9
+
+#define CLUIINTM_REDRAW (WM_USER+100)
+
+#define MODULE_CLIST "CList"
+#define MODULE_CLUI "CLUI"
+#define SETTING_STATUS "Status"
+
+#define SETTING_SETWINSTATE "SetState"
+#define SETTING_WINSTATE "State"
+
+#define SETTING_SETDOCKED "SetDocked"
+#define SETTING_DOCKED "Docked"
+
+#define SETTING_SHOWDIALOG "ShowDialog"
+#define SETTING_OFFLINECLOSE "OfflineOnClose"
+#define SETTING_SETPROFILE "SetStatusOnStartup"
+#define SETTING_AUTODIAL "AutoDial"
+#define SETTING_AUTOHANGUP "AutoHangup"
+
+#define SETTING_TOOLWINDOW "ToolWindow"
+
+#define SETTING_OVERRIDE "AllowOverride"
+
+#define SETTING_SETWINLOCATION "SetWinLoc"
+#define SETTING_XPOS "x"
+#define SETTING_YPOS "y"
+
+#define SETTING_SETWINSIZE "SetWinSize"
+#define SETTING_WIDTH "Width"
+#define SETTING_HEIGHT "Height"
+#define SETTING_AUTOSIZE "AutoSize"
+
+#define SETTING_PROFILECOUNT "ProfileCount"
+#define SETTING_DEFAULTPROFILE "DefaultProfile"
+#define SETTING_PROFILENAME "ProfileName"
+#define SETTING_CREATETTBBUTTON "CreateTTBButton"
+#define SETTING_PROFILE_STSMSG "StatusMsg"
+#define SETTING_SHOWCONFIRMDIALOG "profile_ShowDialog"
+#define SETTING_CREATEMMITEM "CreateMMItem"
+#define SETTING_INSUBMENU "InSubMenu"
+#define SETTING_REGHOTKEY "RegHotKey"
+#define SETTING_HOTKEY "HotKey"
+#define SETTING_PROFILENO "ProfileNo"
+
+#define SETTING_SETPROFILEDELAY "SetStatusDelay"
+#define SETTING_DLGTIMEOUT "DialogTimeout"
+
+#define SHORTCUT_DESC "Miranda IM"
+#define SHORTCUT_FILENAME "\\Miranda IM.lnk"
+
+#define DOCKED_NONE 0
+#define DOCKED_LEFT 1
+#define DOCKED_RIGHT 2
+
+#ifndef MS_CLIST_ADDSTATUSMENUITEM
+#define MS_CLIST_ADDSTATUSMENUITEM "CList/AddStatusMenuItem"
+#endif
+#define MS_SS_MENUSETPROFILEPREFIX "StartupStatus/SetProfile_"
+
+// options
+int OptionsInit(WPARAM wparam,LPARAM lparam);
+
+// startupstatus
+int LoadMainOptions();
+
+int CompareSettings( const TSSSetting* p1, const TSSSetting* p2 );
+
+TSettingsList* GetCurrentProtoSettings();
+
+// profile
+int GetProfile(int profileID, TSettingsList& arSettings );
+char *GetStatusMessage(int profile, char *szProto);
+
+INT_PTR LoadAndSetProfile(WPARAM wParam, LPARAM lParam);
+INT_PTR GetProfileCount(WPARAM wParam, LPARAM lParam);
+INT_PTR GetProfileName(WPARAM wParam, LPARAM lParam);
+
+int RemoveTopToolbarButtons();
+int CreateTopToolbarButtons(WPARAM wParam, LPARAM lParam);
+
+int RemoveToolbarButtons();
+int CreateToolbarButtons(WPARAM wParam, LPARAM lParam);
+void RegisterButtons();
+
+int LoadProfileModule();
+int InitProfileModule();
+int ReinitProfileModule();
+int DeinitProfilesModule();
+
+#endif //__STARTUPSTATUSHEADER
diff --git a/plugins/StatusPlugins/StartupStatus/toolbars.cpp b/plugins/StatusPlugins/StartupStatus/toolbars.cpp
new file mode 100644
index 0000000000..7a12697c52
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/toolbars.cpp
@@ -0,0 +1,191 @@
+/*
+ StartupStatus 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 "startupstatus.h"
+#include "../resource.h"
+#include <commctrl.h>
+
+#include <m_icolib.h>
+
+#define MAX_MMITEMS 6
+
+static HANDLE hTtbDown = 0, hTtbUp = 0;
+
+static HANDLE* ttbButtons = NULL;
+static int ttbButtonCount = 0;
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+int RemoveTopToolbarButtons()
+{
+ int profileCount, i, orgButtonCount;
+
+ profileCount = CallService(MS_SS_GETPROFILECOUNT, 0, 0);
+ orgButtonCount = ttbButtonCount;
+ for (i=0;i<orgButtonCount;i++)
+ if (CallService(MS_TTB_REMOVEBUTTON, (WPARAM)ttbButtons[i], 0) != 1)
+ ttbButtonCount -= 1;
+
+ if (ttbButtonCount == 0) {
+ free(ttbButtons);
+ ttbButtons = NULL;
+ }
+ else ttbButtons = ( HANDLE* )realloc(ttbButtons, profileCount*sizeof(HANDLE));
+
+ return 0;
+}
+
+int CreateTopToolbarButtons(WPARAM wParam, LPARAM lParam)
+{
+ TTBButton ttb;
+ int i, profileCount;
+ DBVARIANT dbv;
+ char setting[80];
+
+ profileCount = CallService(MS_SS_GETPROFILECOUNT, 0, 0);
+ ttbButtons = ( HANDLE* )realloc(ttbButtons, profileCount*sizeof(HANDLE));
+ ZeroMemory(&ttb,sizeof(ttb));
+ ZeroMemory(&dbv,sizeof(dbv));
+ ttb.cbSize = sizeof(ttb);
+ ttb.dwFlags = TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP;
+ ttb.hbBitmapDown = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_TTBDOWN));
+ ttb.hbBitmapUp = LoadBitmap(hInst,MAKEINTRESOURCE(IDB_TTBUP));
+ ttb.pszServiceDown = ttb.pszServiceUp = MS_SS_LOADANDSETPROFILE;
+ for (i=0;i<profileCount;i++) {
+ char profileName[128];
+ INT_PTR ttbAddResult = -1;
+
+ _snprintf(setting, sizeof(setting), "%d_%s", i, SETTING_CREATETTBBUTTON);
+ if (!DBGetContactSettingByte(NULL, MODULENAME, setting, FALSE)) continue;
+ _snprintf(setting, sizeof(setting), "%d_%s", i, SETTING_PROFILENAME);
+ if (DBGetContactSetting(NULL, MODULENAME, setting, &dbv)) continue;
+ strncpy(profileName, dbv.pszVal, sizeof(profileName)-1);
+ ttb.name = profileName;
+ ttb.wParamDown = ttb.wParamUp = i;
+ ttbAddResult = CallService(MS_TTB_ADDBUTTON, (WPARAM)&ttb, 0);
+ if (ttbAddResult != -1) {
+ ttbButtons[ttbButtonCount] = (HANDLE)ttbAddResult;
+ // this tooltip makes miranda crash if changed > 3 times or so
+ CallService(MS_TTB_SETBUTTONOPTIONS,MAKEWPARAM(TTBO_TIPNAME,ttbButtons[ttbButtonCount]), (LPARAM)profileName);
+ DBFreeVariant(&dbv);
+ ttbButtonCount += 1;
+ }
+ }
+ if (ttbButtonCount > 0)
+ ttbButtons = ( HANDLE* )realloc(ttbButtons, ttbButtonCount*sizeof(HANDLE));
+ else {
+ free(ttbButtons);
+ ttbButtons = NULL;
+ }
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+int RemoveToolbarButtons()
+{
+ int profileCount, i, orgButtonCount;
+
+ profileCount = CallService(MS_SS_GETPROFILECOUNT, 0, 0);
+ orgButtonCount = ttbButtonCount;
+ for ( i=0; i < orgButtonCount; i++ )
+ if ( !CallService( MS_TB_REMOVEBUTTON, (WPARAM)ttbButtons[i], 0 ))
+ ttbButtonCount --;
+
+ if ( ttbButtonCount == 0 ) {
+ free( ttbButtons );
+ ttbButtons = NULL;
+ }
+ else ttbButtons = ( HANDLE* )realloc(ttbButtons, profileCount*sizeof(HANDLE));
+
+ return 0;
+}
+
+int CreateToolbarButtons(WPARAM wParam, LPARAM lParam)
+{
+ char setting[80];
+
+ int profileCount = CallService(MS_SS_GETPROFILECOUNT, 0, 0);
+ ttbButtons = ( HANDLE* )realloc(ttbButtons, profileCount*sizeof(HANDLE));
+
+ TBButton ttb = { 0 };
+ ttb.cbSize = sizeof(ttb);
+ ttb.tbbFlags = TBBF_VISIBLE | TBBF_SHOWTOOLTIP;
+ ttb.pszServiceName = MS_SS_LOADANDSETPROFILE;
+ for (int i=0; i < profileCount; i++ ) {
+ char profileName[128];
+ INT_PTR ttbAddResult = -1;
+
+ _snprintf(setting, sizeof(setting), "%d_%s", i, SETTING_CREATETTBBUTTON);
+ if (!DBGetContactSettingByte(NULL, MODULENAME, setting, FALSE))
+ continue;
+
+ DBVARIANT dbv;
+ _snprintf(setting, sizeof(setting), "%d_%s", i, SETTING_PROFILENAME);
+ if (DBGetContactSetting(NULL, MODULENAME, setting, &dbv))
+ continue;
+
+ strncpy(profileName, dbv.pszVal, sizeof(profileName)-1);
+ ttb.pszButtonID = "LaunchProfile";
+ ttb.pszButtonName = profileName;
+ ttb.pszTooltipUp = ttb.pszTooltipDn = profileName;
+ ttb.hPrimaryIconHandle = hTtbUp;
+ ttb.hSecondaryIconHandle = hTtbDown;
+ ttb.defPos = 200;
+ ttb.lParam = i;
+ ttbAddResult = CallService( MS_TB_ADDBUTTON, 0, (LPARAM)&ttb );
+ if (ttbAddResult != -1) {
+ ttbButtons[ttbButtonCount] = (HANDLE)ttbAddResult;
+ ttbButtonCount += 1;
+ }
+ DBFreeVariant( &dbv );
+ }
+ if (ttbButtonCount > 0)
+ ttbButtons = ( HANDLE* )realloc(ttbButtons, ttbButtonCount*sizeof(HANDLE));
+ else {
+ free(ttbButtons);
+ ttbButtons = NULL;
+ }
+
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+void RegisterButtons()
+{
+ TCHAR szFile[MAX_PATH];
+ GetModuleFileName(hInst, szFile, SIZEOF(szFile));
+
+ SKINICONDESC sid = {0};
+ sid.cbSize = sizeof(SKINICONDESC);
+ sid.ptszDefaultFile = szFile;
+ sid.pszSection = "StartupStatus";
+ sid.pszName = "StartupStatus/TtbDown";
+ sid.pszDescription = "Pressed toolbar icon";
+ sid.iDefaultIndex = -IDI_TTBDOWN;
+ sid.flags = SIDF_PATH_TCHAR;
+ hTtbDown = (HANDLE)CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid);
+
+ sid.pszName = "StartupStatus/TtbUp";
+ sid.pszDescription = "Released toolbar icon";
+ sid.iDefaultIndex = -IDI_TTBUP;
+ hTtbUp = (HANDLE)CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid);
+}
diff --git a/plugins/StatusPlugins/StartupStatus/vc6.rc b/plugins/StatusPlugins/StartupStatus/vc6.rc
new file mode 100644
index 0000000000..90772d80f6
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/vc6.rc
@@ -0,0 +1,3 @@
+#include "..\resource.rc"
+#include "..\version.rc"
+#include "StartupStatus.rc" \ No newline at end of file
diff --git a/plugins/StatusPlugins/StartupStatus/version.h b/plugins/StatusPlugins/StartupStatus/version.h
new file mode 100644
index 0000000000..45bbd1052c
--- /dev/null
+++ b/plugins/StatusPlugins/StartupStatus/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 43
+
+// 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 "StartupStatus"
+#define __FILENAME "StartupStatus.dll"
+#define __DESC "StartupStatus, allows you to define the status Miranda should set on startup, configurable per protocol."
+#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-11 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