Author: hbelusca Date: Sat Sep 5 13:03:04 2015 New Revision: 69024
URL: http://svn.reactos.org/svn/reactos?rev=69024&view=rev Log: [MSCONFIG_NEW] - Associate a temporary VS project (will be removed later on); change the name of the target for now... - Allow only one instance of MSConfig running on the system (we use a semaphore, compatible with MS' msconfig, so that if you try to run ROS msconfig on windows, you cannot run also windows' msconfig, and vice versa). - Introduce some utility functions (for strings and other stuff), will be used later on. CORE-9333
Added: trunk/reactos/base/applications/msconfig_new/stringutils.c (with props) trunk/reactos/base/applications/msconfig_new/stringutils.h (with props) trunk/reactos/base/applications/msconfig_new/utils.c (with props) trunk/reactos/base/applications/msconfig_new/utils.h (with props) Modified: trunk/reactos/base/applications/msconfig_new/CMakeLists.txt trunk/reactos/base/applications/msconfig_new/lang/bg-BG.rc trunk/reactos/base/applications/msconfig_new/lang/ca-ES.rc trunk/reactos/base/applications/msconfig_new/lang/cs-CZ.rc trunk/reactos/base/applications/msconfig_new/lang/de-DE.rc trunk/reactos/base/applications/msconfig_new/lang/el-GR.rc trunk/reactos/base/applications/msconfig_new/lang/en-US.rc trunk/reactos/base/applications/msconfig_new/lang/es-ES.rc trunk/reactos/base/applications/msconfig_new/lang/fr-FR.rc trunk/reactos/base/applications/msconfig_new/lang/he-IL.rc trunk/reactos/base/applications/msconfig_new/lang/hu-HU.rc trunk/reactos/base/applications/msconfig_new/lang/id-ID.rc trunk/reactos/base/applications/msconfig_new/lang/it-IT.rc trunk/reactos/base/applications/msconfig_new/lang/ko-KR.rc trunk/reactos/base/applications/msconfig_new/lang/nl-NL.rc trunk/reactos/base/applications/msconfig_new/lang/no-NO.rc trunk/reactos/base/applications/msconfig_new/lang/pl-PL.rc trunk/reactos/base/applications/msconfig_new/lang/pt-BR.rc trunk/reactos/base/applications/msconfig_new/lang/ro-RO.rc trunk/reactos/base/applications/msconfig_new/lang/ru-RU.rc trunk/reactos/base/applications/msconfig_new/lang/sk-SK.rc trunk/reactos/base/applications/msconfig_new/lang/sq-AL.rc trunk/reactos/base/applications/msconfig_new/lang/sv-SE.rc trunk/reactos/base/applications/msconfig_new/lang/th-TH.rc trunk/reactos/base/applications/msconfig_new/lang/tr-TR.rc trunk/reactos/base/applications/msconfig_new/lang/uk-UA.rc trunk/reactos/base/applications/msconfig_new/lang/zh-CN.rc trunk/reactos/base/applications/msconfig_new/lang/zh-TW.rc trunk/reactos/base/applications/msconfig_new/msconfig.c trunk/reactos/base/applications/msconfig_new/precomp.h trunk/reactos/base/applications/msconfig_new/resource.h
Modified: trunk/reactos/base/applications/msconfig_new/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/CMakeLists.txt [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -1,3 +1,5 @@ + +PROJECT(msconfig_new)
list(APPEND SOURCE toolspage.c @@ -7,11 +9,13 @@ freeldrpage.c generalpage.c msconfig.c + stringutils.c + utils.c precomp.h)
add_rc_deps(msconfig.rc ${CMAKE_CURRENT_SOURCE_DIR}/res/msconfig.ico) -add_executable(msconfig ${SOURCE} msconfig.rc) -set_module_type(msconfig win32gui UNICODE) -add_importlibs(msconfig user32 advapi32 version comctl32 shell32 shlwapi msvcrt kernel32) -add_pch(msconfig precomp.h SOURCE) -add_cd_file(TARGET msconfig DESTINATION reactos/system32 FOR all) +add_executable(msconfig_new ${SOURCE} msconfig.rc) +set_module_type(msconfig_new win32gui UNICODE) +add_importlibs(msconfig_new user32 advapi32 version comctl32 shell32 shlwapi msvcrt kernel32) +add_pch(msconfig_new precomp.h SOURCE) +add_cd_file(TARGET msconfig_new DESTINATION reactos/system32 FOR all)
Modified: trunk/reactos/base/applications/msconfig_new/lang/bg-BG.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/bg-BG.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "ÐÑиложение за наÑÑÑойка на ÑиÑÑемаÑа" + IDS_MSCONFIG "ÐÑиложение за наÑÑÑойка на ÑиÑÑемаÑа" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "ÐбÑи" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/ca-ES.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/ca-ES.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/ca-ES.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Programa de configuracio de sistema" + IDS_MSCONFIG "Programa de configuracio de sistema" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "General" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/cs-CZ.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/cs-CZ.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -129,7 +129,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Nástroj pro konfiguraci systému" + IDS_MSCONFIG "Nástroj pro konfiguraci systému" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Obecné" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/de-DE.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/de-DE.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Systemkonfiguration" + IDS_MSCONFIG "Systemkonfiguration" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Allgemein" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/el-GR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/el-GR.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Î ÏÏγÏαμμα ÏαÏαμεÏÏοÏοίηÏÎ·Ï ÏÏ ÏÏήμαÏοÏ" + IDS_MSCONFIG "Î ÏÏγÏαμμα ÏαÏαμεÏÏοÏοίηÏÎ·Ï ÏÏ ÏÏήμαÏοÏ" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Îενικά" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/en-US.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/en-US.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "System configuration program" + IDS_MSCONFIG "System configuration program" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "General" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/es-ES.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/es-ES.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -126,7 +126,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Utilidad de configuración del sistema" + IDS_MSCONFIG "Utilidad de configuración del sistema" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "General" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/fr-FR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/fr-FR.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Utilitaire de configuration système" + IDS_MSCONFIG "Utilitaire de configuration système" + IDS_MSCONFIG_2 "Configuration du système" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Général" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/he-IL.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/he-IL.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/he-IL.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "××× ×©×ר×ת ××§××עת תצ×רת ××ער×ת" + IDS_MSCONFIG "××× ×©×ר×ת ××§××עת תצ×רת ××ער×ת" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "××××" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/hu-HU.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/hu-HU.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/hu-HU.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Rendszerkonfiguráciüs segédprogram" + IDS_MSCONFIG "Rendszerkonfiguráciüs segédprogram" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Ãltalános" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/id-ID.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/id-ID.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/id-ID.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Program konfigurasi sistem" + IDS_MSCONFIG "Program konfigurasi sistem" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Umum" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/it-IT.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/it-IT.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Utilità di configurazione del sistema" + IDS_MSCONFIG "Utilità di configurazione del sistema" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Generale" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/ko-KR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/ko-KR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/ko-KR.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "System ì¤ì íë¡ê·¸ë¨" + IDS_MSCONFIG "System ì¤ì íë¡ê·¸ë¨" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "ì¼ë°" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/nl-NL.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/nl-NL.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/nl-NL.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Hulpprogramma voor systeemconfiguratie" + IDS_MSCONFIG "Hulpprogramma voor systeemconfiguratie" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Algemeen" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/no-NO.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/no-NO.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -123,7 +123,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Systemkonfigurasjon" + IDS_MSCONFIG "Systemkonfigurasjon" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Generelt" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/pl-PL.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/pl-PL.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -131,7 +131,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Program konfiguracji systemu" + IDS_MSCONFIG "Program konfiguracji systemu" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Ogólne" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/pt-BR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/pt-BR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/pt-BR.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Programa de configuração do sistema" + IDS_MSCONFIG "Programa de configuração do sistema" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Geral" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/ro-RO.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/ro-RO.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/ro-RO.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Configuratorul de sistem" + IDS_MSCONFIG "Configuratorul de sistem" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Generale" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/ru-RU.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/ru-RU.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "ÐаÑÑÑойка ÑиÑÑемÑ" + IDS_MSCONFIG "ÐаÑÑÑойка ÑиÑÑемÑ" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "ÐбÑие" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/sk-SK.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/sk-SK.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -127,7 +127,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Program na konfiguráciu systému" + IDS_MSCONFIG "Program na konfiguráciu systému" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Všeobecné" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/sq-AL.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/sq-AL.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/sq-AL.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -127,7 +127,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Programi i konfigurimit te sistemit" + IDS_MSCONFIG "Programi i konfigurimit te sistemit" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "General" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/sv-SE.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/sv-SE.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -130,7 +130,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Systemkonfiguration" + IDS_MSCONFIG "Systemkonfiguration" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Generellt" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/th-TH.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/th-TH.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/th-TH.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "à¹à¸à¸£à¹à¸à¸£à¸¡à¹à¸à¸£à¸à¹à¸à¸à¸£à¸°à¸à¸" + IDS_MSCONFIG "à¹à¸à¸£à¹à¸à¸£à¸¡à¹à¸à¸£à¸à¹à¸à¸à¸£à¸°à¸à¸" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "à¸à¸±à¹à¸§à¹à¸" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/tr-TR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/tr-TR.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "Dizge Yapılandırma İzlencesi" + IDS_MSCONFIG "Dizge Yapılandırma İzlencesi" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "Umûmî" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/uk-UA.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/uk-UA.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -131,7 +131,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "ÐÑогÑама налаÑÑÑÐ²Ð°Ð½Ð½Ñ ÑиÑÑеми" + IDS_MSCONFIG "ÐÑогÑама налаÑÑÑÐ²Ð°Ð½Ð½Ñ ÑиÑÑеми" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "ÐагалÑнÑ" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/zh-CN.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/zh-CN.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "ç³»ç»é ç½®å®ç¨ç¨åº" + IDS_MSCONFIG "ç³»ç»é ç½®å®ç¨ç¨åº" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "ä¸è¬" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/lang/zh-TW.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/lang/zh-TW.rc [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -125,7 +125,12 @@
STRINGTABLE BEGIN - IDS_MSCONFIG "系統è¨å®" + IDS_MSCONFIG "系統è¨å®" + IDS_MSCONFIG_2 "System Configuration" +END + +STRINGTABLE +BEGIN IDS_TAB_GENERAL "ä¸è¬" IDS_TAB_SYSTEM "SYSTEM.INI" IDS_TAB_FREELDR "FREELDR.INI"
Modified: trunk/reactos/base/applications/msconfig_new/msconfig.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/msconfig.c [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/msconfig.c [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -8,6 +8,7 @@ */
#include "precomp.h" +#include "utils.h"
#include "toolspage.h" #include "srvpage.h" @@ -16,9 +17,24 @@ #include "systempage.h" #include "generalpage.h"
-HINSTANCE hInst = 0; - +/* Allow only for a single instance of MSConfig */ +#ifdef _MSC_VER + #pragma data_seg("MSConfigInstance") + HWND hSingleWnd = NULL; + #pragma data_seg() + #pragma comment(linker, "/SECTION:MSConfigInstance,RWS") +#else + HWND hSingleWnd __attribute__((section ("MSConfigInstance"), shared)) = NULL; +#endif + +/* Defaults for ReactOS */ +BOOL bIsWindows = FALSE; +BOOL bIsOSVersionLessThanVista = TRUE; + +HINSTANCE hInst = NULL; +LPWSTR szAppName = NULL; HWND hMainWnd; /* Main Window */ + HWND hTabWnd; /* Tab Control Window */ UINT uXIcon = 0, uYIcon = 0; /* Icon sizes */ HICON hDialogIcon = NULL; @@ -32,7 +48,7 @@ //
// -// Copied from uxtheme.h +// Copied from uxtheme.h // If you have this new header, then delete these and // #include <uxtheme.h> instead! // @@ -45,7 +61,7 @@ typedef HRESULT (WINAPI * ETDTProc) (HWND, DWORD);
// -// Try to call EnableThemeDialogTexture, if uxtheme.dll is present +// Try to call EnableThemeDialogTexture, if uxtheme.dll is present // BOOL EnableDialogTheme(HWND hwnd) { @@ -300,26 +316,95 @@ return 0; }
+ +BOOL Initialize(HINSTANCE hInstance) +{ + BOOL Success = TRUE; + LPWSTR lpszVistaAppName = NULL; + HANDLE hSemaphore; + INITCOMMONCONTROLSEX InitControls; + + /* Initialize our global version flags */ + bIsWindows = TRUE; /* IsWindowsOS(); */ // TODO: Commented for testing purposes... + bIsOSVersionLessThanVista = TRUE; /* IsOSVersionLessThanVista(); */ // TODO: Commented for testing purposes... + + /* Initialize global strings */ + szAppName = LoadResourceString(hInstance, IDS_MSCONFIG); + if (!bIsOSVersionLessThanVista) + lpszVistaAppName = LoadResourceString(hInstance, IDS_MSCONFIG_2); + + /* We use a semaphore in order to have a single-instance application */ + hSemaphore = CreateSemaphoreW(NULL, 0, 1, L"MSConfigRunning"); + if (!hSemaphore || GetLastError() == ERROR_ALREADY_EXISTS) + { + CloseHandle(hSemaphore); + + /* + * A semaphore with the same name already exist. It should have been + * created by another instance of MSConfig. Try to find its window + * and bring it to front. + */ + if ( (hSingleWnd && IsWindow(hSingleWnd)) || + ( (hSingleWnd = FindWindowW(L"#32770", szAppName)) != NULL ) || + (!bIsOSVersionLessThanVista ? ( (hSingleWnd = FindWindowW(L"#32770", lpszVistaAppName)) != NULL ) : FALSE) ) + { + /* Found it. Show the window. */ + ShowWindow(hSingleWnd, SW_SHOWNORMAL); + SetForegroundWindow(hSingleWnd); + } + + /* Quit this instance of MSConfig */ + Success = FALSE; + } + if (!bIsOSVersionLessThanVista) MemFree(lpszVistaAppName); + + /* Quit now if we failed */ + if (!Success) + { + MemFree(szAppName); + return FALSE; + } + + /* Initialize the common controls */ + InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX); + InitControls.dwICC = ICC_LISTVIEW_CLASSES | ICC_TREEVIEW_CLASSES | ICC_UPDOWN_CLASS /* | ICC_PROGRESS_CLASS | ICC_HOTKEY_CLASS*/; + InitCommonControlsEx(&InitControls); + + hInst = hInstance; + + return Success; +} + +VOID Cleanup(VOID) +{ + MemFree(szAppName); + + // // Close the sentry semaphore. + // CloseHandle(hSemaphore); +} + int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { - - INITCOMMONCONTROLSEX InitControls; - UNREFERENCED_PARAMETER(hPrevInstance); UNREFERENCED_PARAMETER(lpCmdLine); UNREFERENCED_PARAMETER(nCmdShow);
- InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX); - InitControls.dwICC = ICC_TAB_CLASSES | ICC_LISTVIEW_CLASSES; - InitCommonControlsEx(&InitControls); - - hInst = hInstance; - - DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc); - + /* + * Initialize this instance of MSConfig. Quit if we have + * another instance already running. + */ + if (!Initialize(hInstance)) + return -1; + + // hInst = hInstance; + + DialogBox(hInst, (LPCTSTR)IDD_MSCONFIG_DIALOG, NULL, MsConfigWndProc); + + /* Finish cleanup and return */ + Cleanup(); return 0; }
Modified: trunk/reactos/base/applications/msconfig_new/precomp.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/precomp.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/precomp.h [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -1,7 +1,16 @@ #ifndef _MSCONFIG_PCH_ #define _MSCONFIG_PCH_
+// NOTE: It is completely idiotic to need those defines defined +// for having the *_s string functions. In the MS CRT they are +// directly available without further tricks. +#define MINGW_HAS_SECURE_API 1 + #include <stdarg.h> + +#include <stdio.h> +#include <string.h> // FIXME: Should be normally useless in a proper CRT... +#include <tchar.h>
#define WIN32_NO_STATUS #define _INC_WINDOWS @@ -10,9 +19,11 @@
#include <windef.h> #include <winbase.h> +#include <winnls.h> #include <winreg.h> -#include <tchar.h> -#include <stdio.h> +#include <winuser.h> +#include <winver.h> + #include <shlobj.h> #include <strsafe.h>
Modified: trunk/reactos/base/applications/msconfig_new/resource.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/resource.h [iso-8859-1] (original) +++ trunk/reactos/base/applications/msconfig_new/resource.h [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -111,6 +111,7 @@ #define IDS_SERVICES_YES 2202 #define IDS_SERVICES_UNKNOWN 2203
-#define IDS_MSCONFIG 3000 +#define IDS_MSCONFIG 3000 +#define IDS_MSCONFIG_2 3001
-#define IDI_APPICON 3001 +#define IDI_APPICON 3010
Added: trunk/reactos/base/applications/msconfig_new/stringutils.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/stringutils.c (added) +++ trunk/reactos/base/applications/msconfig_new/stringutils.c [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -0,0 +1,238 @@ +/* + * PROJECT: ReactOS Applications + * LICENSE: LGPL - See COPYING in the top level directory + * FILE: base/applications/msconfig/stringutils.c + * PURPOSE: ANSI & UNICODE String Utility Functions + * COPYRIGHT: Copyright 2011-2012 Hermes BELUSCA - MAITO hermes.belusca@sfr.fr + */ + +#include "precomp.h" +#include "utils.h" +#include "stringutils.h" + +// +// String formatting +// +LPTSTR FormatStringV(LPCTSTR str, va_list args) +{ + LPTSTR lpszString = NULL; + + if (str) + { + size_t strLenPlusNull = _vsctprintf(str, args) + 1; + lpszString = (LPTSTR)MemAlloc(0, strLenPlusNull * sizeof(TCHAR)); + if (lpszString) + StringCchVPrintf(lpszString, strLenPlusNull, str, args); + } + + return lpszString; +} + +LPTSTR FormatString(LPCTSTR str, ...) +{ + LPTSTR lpszString; + va_list args; + + va_start(args, str); + lpszString = FormatStringV(str, args); + va_end(args); + + return lpszString; +} + +// +// String handling (ANSI <-> Unicode UTF16) +// +LPSTR UnicodeToAnsi(LPCWSTR strW) +{ + LPSTR strA = NULL; + + if (strW) + { + int iNeededChars = WideCharToMultiByte(CP_ACP, + WC_COMPOSITECHECK /* | WC_NO_BEST_FIT_CHARS */, + strW, -1, NULL, 0, NULL, NULL); + + strA = (LPSTR)MemAlloc(0, iNeededChars * sizeof(CHAR)); + if (strA) + { + WideCharToMultiByte(CP_ACP, + WC_COMPOSITECHECK /* | WC_NO_BEST_FIT_CHARS */, + strW, -1, strA, iNeededChars, NULL, NULL); + } + } + + return strA; +} + +LPWSTR AnsiToUnicode(LPCSTR strA) +{ + LPWSTR strW = NULL; + + if (strA) + { + int iNeededChars = MultiByteToWideChar(CP_ACP, + MB_PRECOMPOSED, + strA, -1, NULL, 0); + + strW = (LPWSTR)MemAlloc(0, iNeededChars * sizeof(WCHAR)); + if (strW) + { + MultiByteToWideChar(CP_ACP, + MB_PRECOMPOSED, + strA, -1, strW, iNeededChars); + } + } + + return strW; +} + +LPSTR DuplicateStringA(LPCSTR str) +{ + LPSTR dupStr = NULL; + + if (str) + { + size_t strSizePlusNull = strlen(str) + 1; + + dupStr = (LPSTR)MemAlloc(0, strSizePlusNull * sizeof(CHAR)); + if (dupStr) + StringCchCopyA(dupStr, strSizePlusNull, str); + } + + return dupStr; +} + +LPWSTR DuplicateStringW(LPCWSTR str) +{ + LPWSTR dupStr = NULL; + + if (str) + { + size_t strSizePlusNull = wcslen(str) + 1; + + dupStr = (LPWSTR)MemAlloc(0, strSizePlusNull * sizeof(WCHAR)); + if (dupStr) + StringCchCopyW(dupStr, strSizePlusNull, str); + } + + return dupStr; +} + +LPSTR DuplicateStringAEx(LPCSTR str, size_t numOfChars) +{ + LPSTR dupStr = NULL; + + if (str) + { + size_t strSize = min(strlen(str), numOfChars); + + dupStr = (LPSTR)MemAlloc(0, (strSize + 1) * sizeof(CHAR)); + if (dupStr) + { + StringCchCopyNA(dupStr, strSize + 1, str, strSize); + dupStr[strSize] = '\0'; + } + } + + return dupStr; +} + +LPWSTR DuplicateStringWEx(LPCWSTR str, size_t numOfChars) +{ + LPWSTR dupStr = NULL; + + if (str) + { + size_t strSize = min(wcslen(str), numOfChars); + + dupStr = (LPWSTR)MemAlloc(0, (strSize + 1) * sizeof(WCHAR)); + if (dupStr) + { + StringCchCopyNW(dupStr, strSize + 1, str, strSize); + dupStr[strSize] = L'\0'; + } + } + + return dupStr; +} + +// +// String search functions +// +/*** +*wchar_t *wcsstr(string1, string2) - search for string2 in string1 +* (wide strings) +* +*Purpose: +* finds the first occurrence of string2 in string1 (wide strings) +* +*Entry: +* wchar_t *string1 - string to search in +* wchar_t *string2 - string to search for +* +*Exit: +* returns a pointer to the first occurrence of string2 in +* string1, or NULL if string2 does not occur in string1 +* +*Uses: +* +*Exceptions: +* +*******************************************************************************/ +LPTSTR FindSubStrI(LPCTSTR str, LPCTSTR strSearch) +{ + LPTSTR cp = (LPTSTR)str; + LPTSTR s1, s2; + + if (!*strSearch) + return (LPTSTR)str; + + while (*cp) + { + s1 = cp; + s2 = (LPTSTR)strSearch; + + while (*s1 && *s2 && (_totupper(*s1) == _totupper(*s2))) + ++s1, ++s2; + + if (!*s2) + return cp; + + ++cp; + } + + return NULL; +} + +/************************************************************************* + * AppendPathSeparator + * + * Append a backslash ('') to a path if one doesn't exist. + * + * PARAMS + * lpszPath [I/O] The path to append a backslash to. + * + * RETURNS + * Success: The position of the last backslash in the path. + * Failure: NULL, if lpszPath is NULL or the path is too large. + */ +LPTSTR AppendPathSeparator(LPTSTR lpszPath) +{ + size_t iLen = 0; + + if (!lpszPath || (iLen = _tcslen(lpszPath)) >= MAX_PATH) + return NULL; + + if (iLen >= 1) + { + lpszPath += iLen - 1; + if (*lpszPath++ != _T('\')) + { + *lpszPath++ = _T('\'); + *lpszPath = _T('\0'); + } + } + + return lpszPath; +}
Propchange: trunk/reactos/base/applications/msconfig_new/stringutils.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/base/applications/msconfig_new/stringutils.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/stringutils.h (added) +++ trunk/reactos/base/applications/msconfig_new/stringutils.h [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -0,0 +1,63 @@ +/* + * PROJECT: ReactOS Applications + * LICENSE: LGPL - See COPYING in the top level directory + * FILE: base/applications/msconfig/stringutils.h + * PURPOSE: ANSI & UNICODE String Utility Functions + * COPYRIGHT: Copyright 2011-2012 Hermes BELUSCA - MAITO hermes.belusca@sfr.fr + */ + +#ifndef __STRINGUTILS_H__ +#define __STRINGUTILS_H__ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +// +// String formatting +// +LPTSTR FormatStringV(LPCTSTR str, va_list args); +LPTSTR FormatString(LPCTSTR str, ...); + +// +// String handling (ANSI <-> Unicode UTF16) +// +LPSTR UnicodeToAnsi(LPCWSTR strW); +LPWSTR AnsiToUnicode(LPCSTR strA); +LPSTR DuplicateStringA(LPCSTR str); +LPWSTR DuplicateStringW(LPCWSTR str); +LPSTR DuplicateStringAEx(LPCSTR str, size_t numOfChars); +LPWSTR DuplicateStringWEx(LPCWSTR str, size_t numOfChars); + +// +// Conversion macros ANSI <-> Unicode +// +#ifdef UNICODE + #define NewAnsiString(x) UnicodeToAnsi(x) + #define NewPortableString(x) AnsiToUnicode(x) + #define DuplicateString(x) DuplicateStringW(x) + #define DuplicateStringEx(x, y) DuplicateStringWEx((x), (y)) +#else + #define NewAnsiString(x) DuplicateStringA(x) + #define NewPortableString(x) DuplicateString(x) + #define DuplicateString(x) DuplicateStringA(x) + #define DuplicateStringEx(x, y) DuplicateStringAEx((x), (y)) +#endif + +// +// String search functions +// +#define FindSubStr(str, strSearch) _tcsstr((str), (strSearch)) +LPTSTR FindSubStrI(LPCTSTR str, LPCTSTR strSearch); + +LPTSTR AppendPathSeparator(LPTSTR lpszPath); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // __STRINGUTILS_H__ + +/* EOF */
Propchange: trunk/reactos/base/applications/msconfig_new/stringutils.h ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/base/applications/msconfig_new/utils.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/utils.c (added) +++ trunk/reactos/base/applications/msconfig_new/utils.c [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -0,0 +1,177 @@ +#include "precomp.h" +#include "utils.h" +#include "stringutils.h" + +// HANDLE g_hHeap = GetProcessHeap(); +#define g_hHeap GetProcessHeap() + +#if 0 +VOID +MemInit(IN HANDLE Heap) +{ + /* Save the heap handle */ + g_hHeap = Heap; +} +#endif + +BOOL +MemFree(IN PVOID lpMem) +{ + /* Free memory back into the heap */ + return HeapFree(g_hHeap, 0, lpMem); +} + +PVOID +MemAlloc(IN DWORD dwFlags, + IN DWORD dwBytes) +{ + /* Allocate memory from the heap */ + return HeapAlloc(g_hHeap, dwFlags, dwBytes); +} + +LPWSTR +FormatDateTime(IN LPSYSTEMTIME pDateTime) +{ + LPWSTR lpszDateTime = NULL; + + if (pDateTime) + { + int iDateBufSize = 0, iTimeBufSize = 0; + + iDateBufSize = GetDateFormatW(LOCALE_USER_DEFAULT, + /* Only for Windows 7 : DATE_AUTOLAYOUT | */ DATE_SHORTDATE, + pDateTime, + NULL, + NULL, + 0); + iTimeBufSize = GetTimeFormatW(LOCALE_USER_DEFAULT, + 0, + pDateTime, + NULL, + NULL, + 0); + + if ( (iDateBufSize > 0) && (iTimeBufSize > 0) ) + { + lpszDateTime = (LPWSTR)MemAlloc(0, (iDateBufSize + iTimeBufSize) * sizeof(TCHAR)); + + GetDateFormatW(LOCALE_USER_DEFAULT, + /* Only for Windows 7 : DATE_AUTOLAYOUT | */ DATE_SHORTDATE, + pDateTime, + NULL, + lpszDateTime, + iDateBufSize); + if (iDateBufSize > 0) lpszDateTime[iDateBufSize-1] = L' '; + GetTimeFormatW(LOCALE_USER_DEFAULT, + 0, + pDateTime, + NULL, + lpszDateTime + iDateBufSize, + iTimeBufSize); + } + } + + return lpszDateTime; +} + +VOID +FreeDateTime(IN LPWSTR lpszDateTime) +{ + if (lpszDateTime) + MemFree(lpszDateTime); +} + +LPWSTR +LoadResourceStringEx(IN HINSTANCE hInstance, + IN UINT uID, + OUT size_t* pSize OPTIONAL) +{ + LPWSTR lpszDestBuf = NULL, lpszResourceString = NULL; + size_t iStrSize = 0; + + // When passing a zero-length buffer size, LoadString(...) returns a + // read-only pointer buffer to the program's resource string. + iStrSize = LoadString(hInstance, uID, (LPTSTR)&lpszResourceString, 0); + + if ( lpszResourceString && ( (lpszDestBuf = (LPWSTR)MemAlloc(0, (iStrSize + 1) * sizeof(WCHAR))) != NULL ) ) + { + _tcsncpy(lpszDestBuf, lpszResourceString, iStrSize); + lpszDestBuf[iStrSize] = L'\0'; // NULL-terminate the string + + if (pSize) + *pSize = iStrSize + 1; + } + else + { + if (pSize) + *pSize = 0; + } + + return lpszDestBuf; +} + +LPWSTR +LoadConditionalResourceStringEx(IN HINSTANCE hInstance, + IN BOOL bCondition, + IN UINT uIDifTrue, + IN UINT uIDifFalse, + IN size_t* pSize OPTIONAL) +{ + return LoadResourceStringEx(hInstance, + (bCondition ? uIDifTrue : uIDifFalse), + pSize); +} + +LPWSTR +GetExecutableVendor(IN LPCWSTR lpszFilename) +{ + LPWSTR lpszVendor = NULL; + DWORD dwHandle = 0; + DWORD dwLen; + + LPVOID lpData; + + LPVOID pvData = NULL; + UINT BufLen = 0; + WORD wCodePage = 0, wLangID = 0; + LPTSTR lpszStrFileInfo = NULL; + + LPWSTR lpszData = NULL; + + if (lpszFilename == NULL) return NULL; + + dwLen = GetFileVersionInfoSizeW(lpszFilename, &dwHandle); + if (dwLen == 0) return NULL; + + lpData = MemAlloc(0, dwLen); + if (!lpData) return NULL; + + GetFileVersionInfoW(lpszFilename, dwHandle, dwLen, lpData); + + if (VerQueryValueW(lpData, L"\VarFileInfo\Translation", &pvData, &BufLen)) + { + wCodePage = LOWORD(*(DWORD*)pvData); + wLangID = HIWORD(*(DWORD*)pvData); + + lpszStrFileInfo = FormatString(L"StringFileInfo\%04X%04X\CompanyName", + wCodePage, + wLangID); + } + + VerQueryValueW(lpData, lpszStrFileInfo, (LPVOID*)&lpszData, &BufLen); + if (lpszData) + { + lpszVendor = (LPWSTR)MemAlloc(0, BufLen * sizeof(WCHAR)); + if (lpszVendor) + wcscpy(lpszVendor, lpszData); + } + else + { + lpszVendor = NULL; + } + + MemFree(lpszStrFileInfo); + MemFree(lpData); + + return lpszVendor; +}
Propchange: trunk/reactos/base/applications/msconfig_new/utils.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/base/applications/msconfig_new/utils.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/msconfig_... ============================================================================== --- trunk/reactos/base/applications/msconfig_new/utils.h (added) +++ trunk/reactos/base/applications/msconfig_new/utils.h [iso-8859-1] Sat Sep 5 13:03:04 2015 @@ -0,0 +1,55 @@ +#ifndef __UTILS_H__ +#define __UTILS_H__ + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#if 0 +VOID +MemInit(IN HANDLE Heap); +#endif + +BOOL +MemFree(IN PVOID lpMem); + +PVOID +MemAlloc(IN DWORD dwFlags, + IN DWORD dwBytes); + +LPWSTR +FormatDateTime(IN LPSYSTEMTIME pDateTime); + +VOID +FreeDateTime(IN LPWSTR lpszDateTime); + +LPWSTR +LoadResourceStringEx(IN HINSTANCE hInstance, + IN UINT uID, + OUT size_t* pSize OPTIONAL); + +LPWSTR +LoadConditionalResourceStringEx(IN HINSTANCE hInstance, + IN BOOL bCondition, + IN UINT uIDifTrue, + IN UINT uIDifFalse, + IN size_t* pSize OPTIONAL); + +#define LoadResourceString(hInst, uID) \ + LoadResourceStringEx((hInst), (uID), NULL) + +#define LoadConditionalResourceString(hInst, bCond, uIDifT, uIDifF) \ + LoadConditionalResourceStringEx((hInst), (bCond), (uIDifT), (uIDifF), NULL) + +LPWSTR +GetExecutableVendor(IN LPCWSTR lpszFilename); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // __UTILS_H__ + +/* EOF */
Propchange: trunk/reactos/base/applications/msconfig_new/utils.h ------------------------------------------------------------------------------ svn:eol-style = native