set most of trunk svn property eol-style:native

svn path=/trunk/; revision=24701
This commit is contained in:
Johannes Anderwald
2006-11-08 11:47:44 +00:00
parent 6ba0dad7f1
commit 9b71253be1
689 changed files with 174881 additions and 174881 deletions
+79 -79
View File
@@ -1,79 +1,79 @@
/*
* German language file by Daniel Reimer <EmuandCo> 2006-06-15
*/
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Ändert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\
CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\
[/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\
Dateiname ACLs für angegebene Datei anzeigen.\n\
/T ACLs der angegebenen Datei im aktuellen Verzeichnis\n\
und allen Unterverzeichnissen ändern.\n\
/E ACL bearbeiten anstatt sie zu ersetzen.\n\
/C Ändern der ACLs bei Zugriffsverletzung fortsetzen.\n\
/G Benutzer:Zugriff Angegebene Zugriffsarten zulassen.\n\
Zugriff kann sein: R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/R Benutzer Zugriffsrechte des Benutzers aufheben (gültig mit /E).\n\
/P Benutzer:Zugriff Zugriffsrechte des Benutzers ersetzen.\n\
Zugriff kann sein: N Kein\n\
R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/D Benutzer Zugriff für Benutzer verweigern.\n\
Platzhalterzeichen (Wildcards) werden für Dateiname unterstützt.\n\
Mehrere Benutzer können in einem Befehl angegeben werden.\n\n\
Abkürzungen:\n\
CI - Containervererbung.\n\
Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\
OI - Objektvererbung.\n\
Der ACE-Eintrag wird von Dateien geerbt.\n\
IO - Nur vererben.\n\
Der ACE-Eintrag bezieht sich nicht auf\n\
die aktuelle Datei/das aktuelle Verzeichnis.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
/*
* German language file by Daniel Reimer <EmuandCo> 2006-06-15
*/
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Ändert Datei-ACLs (Access Control List) oder zeigt sie an.\n\n\
CACLS Dateiname [/T] [/E] [/C] [/G Benutzer:Zugriff] [/R Benutzer [...]]\n\
[/P Benutzer:Zugriff [...]] [/D Benutzer [...]]\n\
Dateiname ACLs für angegebene Datei anzeigen.\n\
/T ACLs der angegebenen Datei im aktuellen Verzeichnis\n\
und allen Unterverzeichnissen ändern.\n\
/E ACL bearbeiten anstatt sie zu ersetzen.\n\
/C Ändern der ACLs bei Zugriffsverletzung fortsetzen.\n\
/G Benutzer:Zugriff Angegebene Zugriffsarten zulassen.\n\
Zugriff kann sein: R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/R Benutzer Zugriffsrechte des Benutzers aufheben (gültig mit /E).\n\
/P Benutzer:Zugriff Zugriffsrechte des Benutzers ersetzen.\n\
Zugriff kann sein: N Kein\n\
R Lesen\n\
W Schreiben\n\
C Ändern (Schreiben)\n\
F Vollzugriff\n\
/D Benutzer Zugriff für Benutzer verweigern.\n\
Platzhalterzeichen (Wildcards) werden für Dateiname unterstützt.\n\
Mehrere Benutzer können in einem Befehl angegeben werden.\n\n\
Abkürzungen:\n\
CI - Containervererbung.\n\
Der ACE-Eintrag wird von Verzeichnissen geerbt.\n\
OI - Objektvererbung.\n\
Der ACE-Eintrag wird von Dateien geerbt.\n\
IO - Nur vererben.\n\
Der ACE-Eintrag bezieht sich nicht auf\n\
die aktuelle Datei/das aktuelle Verzeichnis.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(special access:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
+75 -75
View File
@@ -1,75 +1,75 @@
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
[/P gebr:toeg [...]] [/D gebruiker [...]]\n\
bestandsnaam ACL's weergeven.\n\
/T ACL's wijzigen van opgegeven bestanden in\n\
de huidige map en alle submappen.\n\
/E ACL bewerken in plaats van vervangen.\n\
/C Doorgaan bij toegang geweigerd.\n\
/G gebr:toeg Opgegeven gebruiker toegangsrechten verlenen.\n\
Toeg kan zijn: R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/R gebruiker Toegangsrechten van opgegeven gebruiker intrekken.\n\
[alleen geldig met /E].\n\
/P gebr:toeg Toegangsrechten van opgegeven gebruiker vervangen.\n\
Toeg kan zijn: N Geen\n\
R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/D gebruiker Opgegeven gebruiker toegang weigeren.\n\
U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\
opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\
Afkortingen:\n\
CI - Container Inherit.\n\
De toegangslijst wordt door mappen overgenomen.\n\
OI - Object Inherit.\n\
De toegangslijst wordt door bestanden overgenomen.\n\
IO - Inherit Only.\n\
De toegangslijst is niet van toepassing op het huidige bestand of\n\
de huidige map.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(speciale toegang:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
{
IDS_HELP, "ACL's (Access Control Lists, toegangslijsten) van bestanden weergeven\nof bewerken\n\nCACLS bestandsnaam [/T] [/E] [/C] [/G gebr:toeg] [/R gebruiker [...]]\n\
[/P gebr:toeg [...]] [/D gebruiker [...]]\n\
bestandsnaam ACL's weergeven.\n\
/T ACL's wijzigen van opgegeven bestanden in\n\
de huidige map en alle submappen.\n\
/E ACL bewerken in plaats van vervangen.\n\
/C Doorgaan bij toegang geweigerd.\n\
/G gebr:toeg Opgegeven gebruiker toegangsrechten verlenen.\n\
Toeg kan zijn: R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/R gebruiker Toegangsrechten van opgegeven gebruiker intrekken.\n\
[alleen geldig met /E].\n\
/P gebr:toeg Toegangsrechten van opgegeven gebruiker vervangen.\n\
Toeg kan zijn: N Geen\n\
R Lezen\n\
W Schrijven\n\
C Wijzigen (schrijven)\n\
F Volledig beheer\n\
/D gebruiker Opgegeven gebruiker toegang weigeren.\n\
U kunt jokertekens gebruiken om meerdere bestanden op te geven in een\n\
opdracht. U kunt meerdere gebruikers opgeven in een opdracht.\n\n\
Afkortingen:\n\
CI - Container Inherit.\n\
De toegangslijst wordt door mappen overgenomen.\n\
OI - Object Inherit.\n\
De toegangslijst wordt door bestanden overgenomen.\n\
IO - Inherit Only.\n\
De toegangslijst is niet van toepassing op het huidige bestand of\n\
de huidige map.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(speciale toegang:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
+75 -75
View File
@@ -1,75 +1,75 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Отображает или изменяет списки доступа (ACLs) к файлам\n\n\
CACLS имя_Файла [/T] [/E] [/C] [/G имя:право [...]] [/R имя [...]]\n\
[/P имя:право[...]] [/D имя [...]]\n\
имя_файла Вывод списков ACL.\n\
/T Замена списков ACL для указанных файлов в текущем каталоге\n\
и всех подкаталогах.\n\
/E Редактирование списка ACL вместо его замены.\n\
/C Продолжать при ошибках отказа доступа.\n\
/G имя:право Предоставление указанному пользователю прав доступа.\n\
Право может быть: R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный контроль\n\
/R имя Отозвать права доступа для указанного пользователя\n\
(верно только с /E).\n\
/P имя:право Заменить права указанного пользователя.\n\
Право может быть: N Нет доступа\n\
R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный доступ\n\
/D имя Запретить доступ для указанного пользователя.\n\
В команде можно использовать шаблоны для обработки более одного файла.\n\
В команде можно указывать более одного пользователя.\n\n\
Сокращения:\n\
CI - Наследование контейнерами.\n\
ACE будет унаследован папками.\n\
OI - Наследование объектами.\n\
ACE будет унаследован файлами.\n\
IO - Только наследованное.\n\
ACE не будет применён к данному файлу/папке.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(специальный доступ:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
{
IDS_HELP, "Отображает или изменяет списки доступа (ACLs) к файлам\n\n\
CACLS имя_Файла [/T] [/E] [/C] [/G имя:право [...]] [/R имя [...]]\n\
[/P имя:право[...]] [/D имя [...]]\n\
имя_файла Вывод списков ACL.\n\
/T Замена списков ACL для указанных файлов в текущем каталоге\n\
и всех подкаталогах.\n\
/E Редактирование списка ACL вместо его замены.\n\
/C Продолжать при ошибках отказа доступа.\n\
/G имя:право Предоставление указанному пользователю прав доступа.\n\
Право может быть: R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный контроль\n\
/R имя Отозвать права доступа для указанного пользователя\n\
(верно только с /E).\n\
/P имя:право Заменить права указанного пользователя.\n\
Право может быть: N Нет доступа\n\
R Чтение\n\
W Запись\n\
C Изменение (запись)\n\
F Полный доступ\n\
/D имя Запретить доступ для указанного пользователя.\n\
В команде можно использовать шаблоны для обработки более одного файла.\n\
В команде можно указывать более одного пользователя.\n\n\
Сокращения:\n\
CI - Наследование контейнерами.\n\
ACE будет унаследован папками.\n\
OI - Наследование объектами.\n\
ACE будет унаследован файлами.\n\
IO - Только наследованное.\n\
ACE не будет применён к данному файлу/папке.\n"
IDS_ABBR_CI, "(CI)"
IDS_ABBR_OI, "(OI)"
IDS_ABBR_IO, "(IO)"
IDS_ABBR_FULL, "F"
IDS_ABBR_READ, "R"
IDS_ABBR_WRITE, "W"
IDS_ABBR_CHANGE, "C"
IDS_ABBR_NONE, "N"
IDS_ALLOW, ""
IDS_DENY, "(DENY)"
IDS_SPECIAL_ACCESS, "(специальный доступ:)"
IDS_GENERIC_READ, "GENERIC_READ"
IDS_GENERIC_WRITE, "GENERIC_WRITE"
IDS_GENERIC_EXECUTE, "GENERIC_EXECUTE"
IDS_GENERIC_ALL, "GENERIC_ALL"
IDS_FILE_GENERIC_EXECUTE, "FILE_GENERIC_EXECUTE"
IDS_FILE_GENERIC_READ, "FILE_GENERIC_READ"
IDS_FILE_GENERIC_WRITE, "FILE_GENERIC_WRITE"
IDS_FILE_READ_DATA, "FILE_READ_DATA"
IDS_FILE_WRITE_DATA, "FILE_WRITE_DATA"
IDS_FILE_APPEND_DATA, "FILE_APPEND_DATA"
IDS_FILE_READ_EA, "FILE_READ_EA"
IDS_FILE_WRITE_EA, "FILE_WRITE_EA"
IDS_FILE_EXECUTE, "FILE_EXECUTE"
IDS_FILE_DELETE_CHILD, "FILE_DELETE_CHILD"
IDS_FILE_READ_ATTRIBUTES, "FILE_READ_ATTRIBUTES"
IDS_FILE_WRITE_ATTRIBUTES, "FILE_WRITE_ATTRIBUTES"
IDS_MAXIMUM_ALLOWED, "MAXIMUM_ALLOWED"
IDS_ACCESS_SYSTEM_SECURITY, "ACCESS_SYSTEM_SECURITY"
IDS_SPECIFIC_RIGHTS_ALL, "SPECIFIC_RIGHTS_ALL"
IDS_STANDARD_RIGHTS_REQUIRED, "STANDARD_RIGHTS_REQUIRED"
IDS_SYNCHRONIZE, "SYNCHRONIZE"
IDS_WRITE_OWNER, "WRITE_OWNER"
IDS_WRITE_DAC, "WRITE_DAC"
IDS_READ_CONTROL, "READ_CONTROL"
IDS_DELETE, "DELETE"
IDS_STANDARD_RIGHTS_ALL, "STANDARD_RIGHTS_ALL"
}
+137 -137
View File
@@ -1,137 +1,137 @@
# Microsoft Developer Studio Project File - Name="control" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=control - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "control.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 "control.mak" CFG="control - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "control - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "control - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "control - 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 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG" /d "MS_COMPILER"
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 /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /machine:I386
# Begin Custom Build
TargetDir=.\Release
TargetName=control
InputPath=.\Release\control.exe
InputName=control
SOURCE="$(InputPath)"
"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
# End Custom Build
!ELSEIF "$(CFG)" == "control - 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 /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG" /d "MS_COMPILER"
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 /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# Begin Custom Build
TargetDir=.\Debug
TargetName=control
InputPath=.\Debug\control.exe
InputName=control
SOURCE="$(InputPath)"
"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
# End Custom Build
!ENDIF
# Begin Target
# Name "control - Win32 Release"
# Name "control - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\control.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# 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=.\config.ico
# End Source File
# Begin Source File
SOURCE=.\control.rc
# End Source File
# End Group
# End Target
# End Project
# Microsoft Developer Studio Project File - Name="control" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=control - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "control.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 "control.mak" CFG="control - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "control - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "control - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "control - 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 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "../../../" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG" /d "MS_COMPILER"
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 /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /machine:I386
# Begin Custom Build
TargetDir=.\Release
TargetName=control
InputPath=.\Release\control.exe
InputName=control
SOURCE="$(InputPath)"
"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
# End Custom Build
!ELSEIF "$(CFG)" == "control - 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 /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../../../" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "UNICODE" /D "_UNICODE" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG" /d "MS_COMPILER"
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 /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# Begin Custom Build
TargetDir=.\Debug
TargetName=control
InputPath=.\Debug\control.exe
InputName=control
SOURCE="$(InputPath)"
"C:\reactos\reactos\$(InputName).EXE" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
copy $(TargetDir)\$(TargetName).EXE C:\reactos\reactos
# End Custom Build
!ENDIF
# Begin Target
# Name "control - Win32 Release"
# Name "control - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\control.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# 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=.\config.ico
# End Source File
# Begin Source File
SOURCE=.\control.rc
# End Source File
# End Group
# End Target
# End Project
+29 -29
View File
@@ -1,29 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "control"=.\control.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "control"=.\control.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
+28 -28
View File
@@ -1,28 +1,28 @@
// Hungarian language resource file (talley, 2005-10-12)
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fájl"
BEGIN
MENUITEM "&Bezárás", IDM_CLOSE
END
POPUP "&Nézet"
BEGIN
MENUITEM "Nagy ikonok", IDM_LARGEICONS
MENUITEM "Kis ikonok", IDM_SMALLICONS
MENUITEM "Lista", IDM_LIST
MENUITEM "Részletek", IDM_DETAILS
END
POPUP "Súgó"
BEGIN
MENUITEM "Névjegy", IDM_ABOUT
END
END
// Hungarian language resource file (talley, 2005-10-12)
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Fájl"
BEGIN
MENUITEM "&Bezárás", IDM_CLOSE
END
POPUP "&Nézet"
BEGIN
MENUITEM "Nagy ikonok", IDM_LARGEICONS
MENUITEM "Kis ikonok", IDM_SMALLICONS
MENUITEM "Lista", IDM_LIST
MENUITEM "Részletek", IDM_DETAILS
END
POPUP "Súgó"
BEGIN
MENUITEM "Névjegy", IDM_ABOUT
END
END
+34 -34
View File
@@ -1,34 +1,34 @@
/*
* PROJECT: ReactOS System Control Panel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/control/Uk.rc
* PURPOSE: Ukraianian Language File for ReactOS System Control Panel
* PROGRAMMERS: temarez
*/
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Ôàéë"
BEGIN
MENUITEM "&Çàêðèòè", IDM_CLOSE
END
POPUP "&Âèãëÿä"
BEGIN
MENUITEM "&Âåëèê³ ²êîíêè", IDM_LARGEICONS
MENUITEM "&Ìàë³ ²êîíêè", IDM_SMALLICONS
MENUITEM "&Ñïèñîê", IDM_LIST
MENUITEM "&Ïîäðîáèö³", IDM_DETAILS
END
POPUP "&Äîâ³äêà"
BEGIN
MENUITEM "&Ïðî ïðîãðàìó", IDM_ABOUT
END
END
/*
* PROJECT: ReactOS System Control Panel
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/applications/control/Uk.rc
* PURPOSE: Ukraianian Language File for ReactOS System Control Panel
* PROGRAMMERS: temarez
*/
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&Ôàéë"
BEGIN
MENUITEM "&Çàêðèòè", IDM_CLOSE
END
POPUP "&Âèãëÿä"
BEGIN
MENUITEM "&Âåëèê³ ²êîíêè", IDM_LARGEICONS
MENUITEM "&Ìàë³ ²êîíêè", IDM_SMALLICONS
MENUITEM "&Ñïèñîê", IDM_LIST
MENUITEM "&Ïîäðîáèö³", IDM_DETAILS
END
POPUP "&Äîâ³äêà"
BEGIN
MENUITEM "&Ïðî ïðîãðàìó", IDM_ABOUT
END
END
+79 -79
View File
@@ -1,79 +1,79 @@
IDR_MAINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", IDC_EXIT
END
POPUP "Action"
BEGIN
MENUITEM "Print", IDC_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Properties", IDC_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "Help", IDC_PROGHELP, GRAYED
END
POPUP "View"
BEGIN
MENUITEM "Devices by type", IDC_DEVBYTYPE, CHECKED
MENUITEM "Devices by connection", IDC_STATIC, GRAYED
MENUITEM "Resources by type", IDC_STATIC, GRAYED
MENUITEM "Resources by connection", IDC_STATIC, GRAYED
END
POPUP "Help"
BEGIN
MENUITEM "Help", IDC_PROGHELP
MENUITEM "About", IDC_ABOUT
END
END
IDR_POPUP MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "Properties", IDC_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "Help", IDC_PROGHELP
END
END
IDD_ABOUTBOX DIALOGEX 22,16,190,182
CAPTION "About Device Manager"
FONT 8,"Tahoma",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Device Manager v0.1\nCopyright (C) 2006\nby Ged Murphy ([email protected])", IDC_STATIC, 48, 7, 130, 26
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_MAIN_ICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Properties"
IDS_TOOLTIP_REFRESH "Refresh"
IDS_TOOLTIP_HELP "Help"
IDS_TOOLTIP_EXIT "Exit"
END
/* Hints */
STRINGTABLE DISCARDABLE
BEGIN
IDS_HINT_BLANK " "
IDS_HINT_EXIT " Exits the program."
IDS_HINT_REFRESH " Refresh the service list."
IDS_HINT_PROP " Open property sheet for the current selection."
IDS_HINT_HELP " Display help window."
IDS_HINT_ABOUT " About ReactOS Device Manager."
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
IDS_HINT_SYS_SIZE " Resizes this window."
IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
IDS_HINT_SYS_CLOSE " Closes this window."
END
IDR_MAINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "E&xit", IDC_EXIT
END
POPUP "Action"
BEGIN
MENUITEM "Print", IDC_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Properties", IDC_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "Help", IDC_PROGHELP, GRAYED
END
POPUP "View"
BEGIN
MENUITEM "Devices by type", IDC_DEVBYTYPE, CHECKED
MENUITEM "Devices by connection", IDC_STATIC, GRAYED
MENUITEM "Resources by type", IDC_STATIC, GRAYED
MENUITEM "Resources by connection", IDC_STATIC, GRAYED
END
POPUP "Help"
BEGIN
MENUITEM "Help", IDC_PROGHELP
MENUITEM "About", IDC_ABOUT
END
END
IDR_POPUP MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "Properties", IDC_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "Help", IDC_PROGHELP
END
END
IDD_ABOUTBOX DIALOGEX 22,16,190,182
CAPTION "About Device Manager"
FONT 8,"Tahoma",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Device Manager v0.1\nCopyright (C) 2006\nby Ged Murphy ([email protected])", IDC_STATIC, 48, 7, 130, 26
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_MAIN_ICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Properties"
IDS_TOOLTIP_REFRESH "Refresh"
IDS_TOOLTIP_HELP "Help"
IDS_TOOLTIP_EXIT "Exit"
END
/* Hints */
STRINGTABLE DISCARDABLE
BEGIN
IDS_HINT_BLANK " "
IDS_HINT_EXIT " Exits the program."
IDS_HINT_REFRESH " Refresh the service list."
IDS_HINT_PROP " Open property sheet for the current selection."
IDS_HINT_HELP " Display help window."
IDS_HINT_ABOUT " About ReactOS Device Manager."
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
IDS_HINT_SYS_SIZE " Resizes this window."
IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
IDS_HINT_SYS_CLOSE " Closes this window."
END
+62 -62
View File
@@ -1,62 +1,62 @@
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/about.c
* PURPOSE: About dialog box message handler
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL CALLBACK
AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND hLicenseEditWnd;
HICON hIcon = NULL;
TCHAR strLicense[700];
switch (message)
{
case WM_INITDIALOG:
hIcon = (HICON)LoadImage(hInstance,
MAKEINTRESOURCE(IDI_MAIN_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hLicenseEditWnd = GetDlgItem(hDlg,
IDC_LICENSE_EDIT);
LoadString(hInstance,
IDS_LICENSE,
strLicense,
sizeof(strLicense) / sizeof(TCHAR));
SetWindowText(hLicenseEditWnd,
strLicense);
return TRUE;
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/about.c
* PURPOSE: About dialog box message handler
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL CALLBACK
AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND hLicenseEditWnd;
HICON hIcon = NULL;
TCHAR strLicense[700];
switch (message)
{
case WM_INITDIALOG:
hIcon = (HICON)LoadImage(hInstance,
MAKEINTRESOURCE(IDI_MAIN_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hLicenseEditWnd = GetDlgItem(hDlg,
IDC_LICENSE_EDIT);
LoadString(hInstance,
IDS_LICENSE,
strLicense,
sizeof(strLicense) / sizeof(TCHAR));
SetWindowText(hLicenseEditWnd,
strLicense);
return TRUE;
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
+67 -67
View File
@@ -1,67 +1,67 @@
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/devmgmt.c
* PURPOSE: Program HQ
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
HINSTANCE hInstance;
HANDLE ProcessHeap;
int WINAPI
WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
LPTSTR lpAppName;
HWND hMainWnd;
MSG Msg;
int Ret = 1;
INITCOMMONCONTROLSEX icex;
hInstance = hThisInstance;
ProcessHeap = GetProcessHeap();
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
InitCommonControlsEx(&icex);
if (!AllocAndLoadString(&lpAppName,
hInstance,
IDS_APPNAME))
{
return 1;
}
if (InitMainWindowImpl())
{
hMainWnd = CreateMainWindow(lpAppName,
nCmdShow);
if (hMainWnd != NULL)
{
/* pump the message queue */
while( GetMessage( &Msg, NULL, 0, 0 ) )
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
Ret = 0;
}
UninitMainWindowImpl();
}
LocalFree((HLOCAL)lpAppName);
return Ret;
}
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/devmgmt.c
* PURPOSE: Program HQ
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
HINSTANCE hInstance;
HANDLE ProcessHeap;
int WINAPI
WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
LPTSTR lpAppName;
HWND hMainWnd;
MSG Msg;
int Ret = 1;
INITCOMMONCONTROLSEX icex;
hInstance = hThisInstance;
ProcessHeap = GetProcessHeap();
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
InitCommonControlsEx(&icex);
if (!AllocAndLoadString(&lpAppName,
hInstance,
IDS_APPNAME))
{
return 1;
}
if (InitMainWindowImpl())
{
hMainWnd = CreateMainWindow(lpAppName,
nCmdShow);
if (hMainWnd != NULL)
{
/* pump the message queue */
while( GetMessage( &Msg, NULL, 0, 0 ) )
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
Ret = 0;
}
UninitMainWindowImpl();
}
LocalFree((HLOCAL)lpAppName);
return Ret;
}
@@ -1,29 +1,29 @@
<?xml version="1.0"?>
<rbuild xmlns:xi="http://www.w3.org/2001/XInclude">
<module name="devmgmt" type="win32gui" installbase="system32" installname="devmgmt.exe">
<include base="devmgmt">.</include>
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="__REACTOS__" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<library>ntdll</library>
<library>setupapi</library>
<library>gdi32</library>
<library>kernel32</library>
<library>user32</library>
<library>comctl32</library>
<library>advapi32</library>
<library>devmgr</library>
<compilationunit name="unit.c">
<file>about.c</file>
<file>devmgmt.c</file>
<file>enumdevices.c</file>
<file>mainwnd.c</file>
<file>misc.c</file>
</compilationunit>
<file>devmgmt.rc</file>
<pch>precomp.h</pch>
</module>
</rbuild>
<?xml version="1.0"?>
<rbuild xmlns:xi="http://www.w3.org/2001/XInclude">
<module name="devmgmt" type="win32gui" installbase="system32" installname="devmgmt.exe">
<include base="devmgmt">.</include>
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="__REACTOS__" />
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<library>ntdll</library>
<library>setupapi</library>
<library>gdi32</library>
<library>kernel32</library>
<library>user32</library>
<library>comctl32</library>
<library>advapi32</library>
<library>devmgr</library>
<compilationunit name="unit.c">
<file>about.c</file>
<file>devmgmt.c</file>
<file>enumdevices.c</file>
<file>mainwnd.c</file>
<file>misc.c</file>
</compilationunit>
<file>devmgmt.rc</file>
<pch>precomp.h</pch>
</module>
</rbuild>
+29 -29
View File
@@ -1,29 +1,29 @@
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Device Manager\0"
#define REACTOS_STR_INTERNAL_NAME "devmgmt\0"
#define REACTOS_STR_ORIGINAL_FILENAME "devmgmt.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
1 24 DISCARDABLE "manifest.xml"
STRINGTABLE DISCARDABLE
BEGIN
IDS_APPNAME "ReactOS Device Manager"
END
IDI_MAIN_ICON ICON "res/computer.ico"
IDB_ROOT_IMAGE BITMAP "res/root.bmp"
/* main toolbar icons */
IDB_PROP BITMAP DISCARDABLE "res/properties.bmp"
IDB_REFRESH BITMAP DISCARDABLE "res/refresh.bmp"
IDB_HELP BITMAP DISCARDABLE "res/help.bmp"
IDB_EXIT BITMAP DISCARDABLE "res/exit.bmp"
#include "En.rc"
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Device Manager\0"
#define REACTOS_STR_INTERNAL_NAME "devmgmt\0"
#define REACTOS_STR_ORIGINAL_FILENAME "devmgmt.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
1 24 DISCARDABLE "manifest.xml"
STRINGTABLE DISCARDABLE
BEGIN
IDS_APPNAME "ReactOS Device Manager"
END
IDI_MAIN_ICON ICON "res/computer.ico"
IDB_ROOT_IMAGE BITMAP "res/root.bmp"
/* main toolbar icons */
IDB_PROP BITMAP DISCARDABLE "res/properties.bmp"
IDB_REFRESH BITMAP DISCARDABLE "res/refresh.bmp"
IDB_HELP BITMAP DISCARDABLE "res/help.bmp"
IDB_EXIT BITMAP DISCARDABLE "res/exit.bmp"
#include "En.rc"
+464 -464
View File
@@ -1,464 +1,464 @@
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/enumdevices.c
* PURPOSE: Enumerates all devices on the local machine
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static SP_CLASSIMAGELIST_DATA ImageListData;
static HDEVINFO hDevInfo;
VOID
FreeDeviceStrings(HWND hTreeView)
{
HTREEITEM hItem;
hItem = TreeView_GetRoot(hTreeView);
if (hItem)
{
hItem = TreeView_GetChild(hTreeView,
hItem);
/* loop the parent items */
while (hItem)
{
hItem = TreeView_GetChild(hTreeView,
hItem);
if (hItem == NULL)
break;
/* loop the child items and free the DeviceID */
while (TRUE)
{
HTREEITEM hOldItem;
TV_ITEM tvItem;
//TCHAR Buf[100];
tvItem.hItem = hItem;
tvItem.mask = TVIF_PARAM;// | TVIF_TEXT;
//tvItem.pszText = Buf;
//tvItem.cchTextMax = 99;
(void)TreeView_GetItem(hTreeView, &tvItem);
//MessageBox(NULL, Buf, NULL, 0);
HeapFree(GetProcessHeap(),
0,
(LPTSTR)tvItem.lParam);
hOldItem = hItem;
hItem = TreeView_GetNextSibling(hTreeView,
hItem);
if (hItem == NULL)
{
hItem = hOldItem;
break;
}
}
hItem = TreeView_GetParent(hTreeView,
hItem);
hItem = TreeView_GetNextSibling(hTreeView,
hItem);
}
}
}
VOID
OpenPropSheet(HWND hTreeView,
HTREEITEM hItem)
{
TV_ITEM tvItem;
tvItem.hItem = hItem;
tvItem.mask = TVIF_PARAM;
if (TreeView_GetItem(hTreeView, &tvItem) &&
(LPTSTR)tvItem.lParam != NULL)
{
DevicePropertiesExW(hTreeView,
NULL,
(LPTSTR)tvItem.lParam,
0,
FALSE);
}
}
static HTREEITEM
InsertIntoTreeView(HWND hTreeView,
HTREEITEM hRoot,
LPTSTR lpLabel,
LPTSTR DeviceID,
INT DevImage,
LONG DevProb)
{
TV_ITEM tvi;
TV_INSERTSTRUCT tvins;
ZeroMemory(&tvi, sizeof(tvi));
ZeroMemory(&tvins, sizeof(tvins));
tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
tvi.pszText = lpLabel;
tvi.cchTextMax = lstrlen(lpLabel);
tvi.lParam = (LPARAM)DeviceID;
tvi.iImage = DevImage;
tvi.iSelectedImage = DevImage;
if (DevProb != 0)
{
tvi.stateMask = TVIS_OVERLAYMASK;
if (DevProb == CM_PROB_DISABLED)
{
/* FIXME: set the overlay icon */
}
}
tvins.item = tvi;
tvins.hParent = hRoot;
return TreeView_InsertItem(hTreeView, &tvins);
}
static INT
EnumDeviceClasses(INT ClassIndex,
LPTSTR DevClassName,
LPTSTR DevClassDesc,
BOOL *DevPresent,
INT *ClassImage)
{
GUID ClassGuid;
HKEY KeyClass;
TCHAR ClassName[MAX_CLASS_NAME_LEN];
DWORD RequiredSize = MAX_CLASS_NAME_LEN;
UINT Ret;
*DevPresent = FALSE;
*DevClassName = _T('\0');
Ret = CM_Enumerate_Classes(ClassIndex,
&ClassGuid,
0);
if (Ret != CR_SUCCESS)
{
/* all classes enumerated */
if(Ret == CR_NO_SUCH_VALUE)
{
hDevInfo = NULL;
return -1;
}
if (Ret == CR_INVALID_DATA)
; /*FIXME: what should we do here? */
/* handle other errors... */
}
if (SetupDiClassNameFromGuid(&ClassGuid,
ClassName,
RequiredSize,
&RequiredSize))
{
lstrcpy(DevClassName, ClassName);
}
if (!SetupDiGetClassImageIndex(&ImageListData,
&ClassGuid,
ClassImage))
{
/* FIXME: can we do this?
* Set the blank icon: IDI_SETUPAPI_BLANK = 41
* it'll be image 24 in the imagelist */
*ClassImage = 24;
}
/* Get device info for all devices of a particular class */
hDevInfo = SetupDiGetClassDevs(&ClassGuid,
NULL,
NULL,
DIGCF_PRESENT);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
hDevInfo = NULL;
return 0;
}
KeyClass = SetupDiOpenClassRegKeyEx(&ClassGuid,
MAXIMUM_ALLOWED,
DIOCR_INSTALLER,
NULL,
0);
if (KeyClass != INVALID_HANDLE_VALUE)
{
LONG dwSize = MAX_DEV_LEN;
if (RegQueryValue(KeyClass,
NULL,
DevClassDesc,
&dwSize) != ERROR_SUCCESS)
{
*DevClassDesc = _T('\0');
}
}
else
{
return -3;
}
*DevPresent = TRUE;
RegCloseKey(KeyClass);
return 0;
}
static LONG
EnumDevices(INT index,
LPTSTR DeviceClassName,
LPTSTR DeviceName,
LPTSTR *DeviceID)
{
SP_DEVINFO_DATA DeviceInfoData;
CONFIGRET cr;
ULONG Status, ProblemNumber;
DWORD DevIdSize;
*DeviceName = _T('\0');
*DeviceID = NULL;
ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiEnumDeviceInfo(hDevInfo,
index,
&DeviceInfoData))
{
/* no such device */
return -1;
}
/* get the device ID */
if (!SetupDiGetDeviceInstanceId(hDevInfo,
&DeviceInfoData,
NULL,
0,
&DevIdSize))
{
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
(*DeviceID) = (LPTSTR)HeapAlloc(GetProcessHeap(),
0,
DevIdSize * sizeof(TCHAR));
if (*DeviceID)
{
if (!SetupDiGetDeviceInstanceId(hDevInfo,
&DeviceInfoData,
*DeviceID,
DevIdSize,
NULL))
{
HeapFree(GetProcessHeap(),
0,
*DeviceID);
*DeviceID = NULL;
}
}
}
}
/* get the device's friendly name */
if (!SetupDiGetDeviceRegistryProperty(hDevInfo,
&DeviceInfoData,
SPDRP_FRIENDLYNAME,
0,
(BYTE*)DeviceName,
MAX_DEV_LEN,
NULL))
{
/* if the friendly name fails, try the description instead */
SetupDiGetDeviceRegistryProperty(hDevInfo,
&DeviceInfoData,
SPDRP_DEVICEDESC,
0,
(BYTE*)DeviceName,
MAX_DEV_LEN,
NULL);
}
cr = CM_Get_DevNode_Status_Ex(&Status,
&ProblemNumber,
DeviceInfoData.DevInst,
0,
NULL);
if (cr == CR_SUCCESS && (Status & DN_HAS_PROBLEM))
{
return ProblemNumber;
}
return 0;
}
VOID
ListDevicesByType(HWND hTreeView,
HTREEITEM hRoot)
{
HTREEITEM hDevItem;
TCHAR DevName[MAX_DEV_LEN];
TCHAR DevDesc[MAX_DEV_LEN];
LPTSTR DeviceID = NULL;
BOOL DevExist = FALSE;
INT ClassRet;
INT index = 0;
INT DevImage;
do
{
ClassRet = EnumDeviceClasses(index,
DevName,
DevDesc,
&DevExist,
&DevImage);
if ((ClassRet != -1) && (DevExist))
{
TCHAR DeviceName[MAX_DEV_LEN];
INT DevIndex = 0;
LONG Ret;
if (DevDesc[0] != _T('\0'))
{
hDevItem = InsertIntoTreeView(hTreeView,
hRoot,
DevDesc,
NULL,
DevImage,
0);
}
else
{
hDevItem = InsertIntoTreeView(hTreeView,
hRoot,
DevName,
NULL,
DevImage,
0);
}
do
{
Ret = EnumDevices(DevIndex,
DevName,
DeviceName,
&DeviceID);
if (Ret >= 0)
{
InsertIntoTreeView(hTreeView,
hDevItem,
DeviceName,
DeviceID,
DevImage,
Ret);
}
DevIndex++;
} while (Ret != -1);
/* kill InfoList initialized in EnumDeviceClasses */
if (hDevInfo)
{
SetupDiDestroyDeviceInfoList(hDevInfo);
hDevInfo = NULL;
}
/* don't insert classes with no devices */
if (!TreeView_GetChild(hTreeView,
hDevItem))
{
(void)TreeView_DeleteItem(hTreeView,
hDevItem);
}
else
{
(void)TreeView_SortChildren(hTreeView,
hDevItem,
0);
}
}
index++;
} while (ClassRet != -1);
(void)TreeView_Expand(hTreeView,
hRoot,
TVE_EXPAND);
(void)TreeView_SortChildren(hTreeView,
hRoot,
0);
}
HTREEITEM
InitTreeView(HWND hTreeView)
{
HTREEITEM hRoot;
HBITMAP hComp;
TCHAR ComputerName[MAX_PATH];
DWORD dwSize = MAX_PATH;
INT RootImage;
(void)TreeView_DeleteAllItems(hTreeView);
/* get the device image List */
ImageListData.cbSize = sizeof(ImageListData);
SetupDiGetClassImageList(&ImageListData);
hComp = LoadBitmap(hInstance,
MAKEINTRESOURCE(IDB_ROOT_IMAGE));
ImageList_Add(ImageListData.ImageList,
hComp,
NULL);
DeleteObject(hComp);
(void)TreeView_SetImageList(hTreeView,
ImageListData.ImageList,
TVSIL_NORMAL);
if (!GetComputerName(ComputerName,
&dwSize))
{
ComputerName[0] = _T('\0');
}
RootImage = ImageList_GetImageCount(ImageListData.ImageList) - 1;
/* insert the root item into the tree */
hRoot = InsertIntoTreeView(hTreeView,
NULL,
ComputerName,
NULL,
RootImage,
0);
return hRoot;
}
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/enumdevices.c
* PURPOSE: Enumerates all devices on the local machine
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static SP_CLASSIMAGELIST_DATA ImageListData;
static HDEVINFO hDevInfo;
VOID
FreeDeviceStrings(HWND hTreeView)
{
HTREEITEM hItem;
hItem = TreeView_GetRoot(hTreeView);
if (hItem)
{
hItem = TreeView_GetChild(hTreeView,
hItem);
/* loop the parent items */
while (hItem)
{
hItem = TreeView_GetChild(hTreeView,
hItem);
if (hItem == NULL)
break;
/* loop the child items and free the DeviceID */
while (TRUE)
{
HTREEITEM hOldItem;
TV_ITEM tvItem;
//TCHAR Buf[100];
tvItem.hItem = hItem;
tvItem.mask = TVIF_PARAM;// | TVIF_TEXT;
//tvItem.pszText = Buf;
//tvItem.cchTextMax = 99;
(void)TreeView_GetItem(hTreeView, &tvItem);
//MessageBox(NULL, Buf, NULL, 0);
HeapFree(GetProcessHeap(),
0,
(LPTSTR)tvItem.lParam);
hOldItem = hItem;
hItem = TreeView_GetNextSibling(hTreeView,
hItem);
if (hItem == NULL)
{
hItem = hOldItem;
break;
}
}
hItem = TreeView_GetParent(hTreeView,
hItem);
hItem = TreeView_GetNextSibling(hTreeView,
hItem);
}
}
}
VOID
OpenPropSheet(HWND hTreeView,
HTREEITEM hItem)
{
TV_ITEM tvItem;
tvItem.hItem = hItem;
tvItem.mask = TVIF_PARAM;
if (TreeView_GetItem(hTreeView, &tvItem) &&
(LPTSTR)tvItem.lParam != NULL)
{
DevicePropertiesExW(hTreeView,
NULL,
(LPTSTR)tvItem.lParam,
0,
FALSE);
}
}
static HTREEITEM
InsertIntoTreeView(HWND hTreeView,
HTREEITEM hRoot,
LPTSTR lpLabel,
LPTSTR DeviceID,
INT DevImage,
LONG DevProb)
{
TV_ITEM tvi;
TV_INSERTSTRUCT tvins;
ZeroMemory(&tvi, sizeof(tvi));
ZeroMemory(&tvins, sizeof(tvins));
tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE;
tvi.pszText = lpLabel;
tvi.cchTextMax = lstrlen(lpLabel);
tvi.lParam = (LPARAM)DeviceID;
tvi.iImage = DevImage;
tvi.iSelectedImage = DevImage;
if (DevProb != 0)
{
tvi.stateMask = TVIS_OVERLAYMASK;
if (DevProb == CM_PROB_DISABLED)
{
/* FIXME: set the overlay icon */
}
}
tvins.item = tvi;
tvins.hParent = hRoot;
return TreeView_InsertItem(hTreeView, &tvins);
}
static INT
EnumDeviceClasses(INT ClassIndex,
LPTSTR DevClassName,
LPTSTR DevClassDesc,
BOOL *DevPresent,
INT *ClassImage)
{
GUID ClassGuid;
HKEY KeyClass;
TCHAR ClassName[MAX_CLASS_NAME_LEN];
DWORD RequiredSize = MAX_CLASS_NAME_LEN;
UINT Ret;
*DevPresent = FALSE;
*DevClassName = _T('\0');
Ret = CM_Enumerate_Classes(ClassIndex,
&ClassGuid,
0);
if (Ret != CR_SUCCESS)
{
/* all classes enumerated */
if(Ret == CR_NO_SUCH_VALUE)
{
hDevInfo = NULL;
return -1;
}
if (Ret == CR_INVALID_DATA)
; /*FIXME: what should we do here? */
/* handle other errors... */
}
if (SetupDiClassNameFromGuid(&ClassGuid,
ClassName,
RequiredSize,
&RequiredSize))
{
lstrcpy(DevClassName, ClassName);
}
if (!SetupDiGetClassImageIndex(&ImageListData,
&ClassGuid,
ClassImage))
{
/* FIXME: can we do this?
* Set the blank icon: IDI_SETUPAPI_BLANK = 41
* it'll be image 24 in the imagelist */
*ClassImage = 24;
}
/* Get device info for all devices of a particular class */
hDevInfo = SetupDiGetClassDevs(&ClassGuid,
NULL,
NULL,
DIGCF_PRESENT);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
hDevInfo = NULL;
return 0;
}
KeyClass = SetupDiOpenClassRegKeyEx(&ClassGuid,
MAXIMUM_ALLOWED,
DIOCR_INSTALLER,
NULL,
0);
if (KeyClass != INVALID_HANDLE_VALUE)
{
LONG dwSize = MAX_DEV_LEN;
if (RegQueryValue(KeyClass,
NULL,
DevClassDesc,
&dwSize) != ERROR_SUCCESS)
{
*DevClassDesc = _T('\0');
}
}
else
{
return -3;
}
*DevPresent = TRUE;
RegCloseKey(KeyClass);
return 0;
}
static LONG
EnumDevices(INT index,
LPTSTR DeviceClassName,
LPTSTR DeviceName,
LPTSTR *DeviceID)
{
SP_DEVINFO_DATA DeviceInfoData;
CONFIGRET cr;
ULONG Status, ProblemNumber;
DWORD DevIdSize;
*DeviceName = _T('\0');
*DeviceID = NULL;
ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiEnumDeviceInfo(hDevInfo,
index,
&DeviceInfoData))
{
/* no such device */
return -1;
}
/* get the device ID */
if (!SetupDiGetDeviceInstanceId(hDevInfo,
&DeviceInfoData,
NULL,
0,
&DevIdSize))
{
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
(*DeviceID) = (LPTSTR)HeapAlloc(GetProcessHeap(),
0,
DevIdSize * sizeof(TCHAR));
if (*DeviceID)
{
if (!SetupDiGetDeviceInstanceId(hDevInfo,
&DeviceInfoData,
*DeviceID,
DevIdSize,
NULL))
{
HeapFree(GetProcessHeap(),
0,
*DeviceID);
*DeviceID = NULL;
}
}
}
}
/* get the device's friendly name */
if (!SetupDiGetDeviceRegistryProperty(hDevInfo,
&DeviceInfoData,
SPDRP_FRIENDLYNAME,
0,
(BYTE*)DeviceName,
MAX_DEV_LEN,
NULL))
{
/* if the friendly name fails, try the description instead */
SetupDiGetDeviceRegistryProperty(hDevInfo,
&DeviceInfoData,
SPDRP_DEVICEDESC,
0,
(BYTE*)DeviceName,
MAX_DEV_LEN,
NULL);
}
cr = CM_Get_DevNode_Status_Ex(&Status,
&ProblemNumber,
DeviceInfoData.DevInst,
0,
NULL);
if (cr == CR_SUCCESS && (Status & DN_HAS_PROBLEM))
{
return ProblemNumber;
}
return 0;
}
VOID
ListDevicesByType(HWND hTreeView,
HTREEITEM hRoot)
{
HTREEITEM hDevItem;
TCHAR DevName[MAX_DEV_LEN];
TCHAR DevDesc[MAX_DEV_LEN];
LPTSTR DeviceID = NULL;
BOOL DevExist = FALSE;
INT ClassRet;
INT index = 0;
INT DevImage;
do
{
ClassRet = EnumDeviceClasses(index,
DevName,
DevDesc,
&DevExist,
&DevImage);
if ((ClassRet != -1) && (DevExist))
{
TCHAR DeviceName[MAX_DEV_LEN];
INT DevIndex = 0;
LONG Ret;
if (DevDesc[0] != _T('\0'))
{
hDevItem = InsertIntoTreeView(hTreeView,
hRoot,
DevDesc,
NULL,
DevImage,
0);
}
else
{
hDevItem = InsertIntoTreeView(hTreeView,
hRoot,
DevName,
NULL,
DevImage,
0);
}
do
{
Ret = EnumDevices(DevIndex,
DevName,
DeviceName,
&DeviceID);
if (Ret >= 0)
{
InsertIntoTreeView(hTreeView,
hDevItem,
DeviceName,
DeviceID,
DevImage,
Ret);
}
DevIndex++;
} while (Ret != -1);
/* kill InfoList initialized in EnumDeviceClasses */
if (hDevInfo)
{
SetupDiDestroyDeviceInfoList(hDevInfo);
hDevInfo = NULL;
}
/* don't insert classes with no devices */
if (!TreeView_GetChild(hTreeView,
hDevItem))
{
(void)TreeView_DeleteItem(hTreeView,
hDevItem);
}
else
{
(void)TreeView_SortChildren(hTreeView,
hDevItem,
0);
}
}
index++;
} while (ClassRet != -1);
(void)TreeView_Expand(hTreeView,
hRoot,
TVE_EXPAND);
(void)TreeView_SortChildren(hTreeView,
hRoot,
0);
}
HTREEITEM
InitTreeView(HWND hTreeView)
{
HTREEITEM hRoot;
HBITMAP hComp;
TCHAR ComputerName[MAX_PATH];
DWORD dwSize = MAX_PATH;
INT RootImage;
(void)TreeView_DeleteAllItems(hTreeView);
/* get the device image List */
ImageListData.cbSize = sizeof(ImageListData);
SetupDiGetClassImageList(&ImageListData);
hComp = LoadBitmap(hInstance,
MAKEINTRESOURCE(IDB_ROOT_IMAGE));
ImageList_Add(ImageListData.ImageList,
hComp,
NULL);
DeleteObject(hComp);
(void)TreeView_SetImageList(hTreeView,
ImageListData.ImageList,
TVSIL_NORMAL);
if (!GetComputerName(ComputerName,
&dwSize))
{
ComputerName[0] = _T('\0');
}
RootImage = ImageList_GetImageCount(ImageListData.ImageList) - 1;
/* insert the root item into the tree */
hRoot = InsertIntoTreeView(hTreeView,
NULL,
ComputerName,
NULL,
RootImage,
0);
return hRoot;
}
File diff suppressed because it is too large Load Diff
+23 -23
View File
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="Win32 Application.default.App"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>ReactOS Device Manager</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="Win32 Application.default.App"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>ReactOS Device Manager</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
+260 -260
View File
@@ -1,260 +1,260 @@
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/misc.c
* PURPOSE: miscallanous functions
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
if (hInst == NULL)
{
return -1;
}
/* There are always blocks of 16 strings */
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
/* Find the string table block */
if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) &&
(hRes = LoadResource(hInst, hrSrc)) &&
(lpStr = (LPWSTR)LockResource(hRes)))
{
UINT x;
/* Find the string we're looking for */
uID &= 0xF; /* position in the block, same as % 16 */
for (x = 0; x < uID; x++)
{
lpStr += (*lpStr) + 1;
}
/* Found the string */
return (int)(*lpStr);
}
return -1;
}
INT
AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID)
{
INT ln;
ln = LengthOfStrResource(hInst,
uID);
if (ln++ > 0)
{
(*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED,
ln * sizeof(TCHAR));
if ((*lpTarget) != NULL)
{
INT Ret;
if (!(Ret = LoadString(hInst, uID, *lpTarget, ln)))
{
LocalFree((HLOCAL)(*lpTarget));
}
return Ret;
}
}
return 0;
}
DWORD
LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...)
{
DWORD Ret = 0;
LPTSTR lpFormat;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, lpTarget);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)lpTarget,
0,
&lArgs);
va_end(lArgs);
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...)
{
BOOL Ret = FALSE;
LPTSTR lpFormat, lpStr;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, uID);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)&lpStr,
0,
&lArgs);
va_end(lArgs);
if (lpStr != NULL)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID)
{
BOOL Ret = FALSE;
LPTSTR lpStr;
if (AllocAndLoadString(&lpStr,
hInstance,
uID) > 0)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
return Ret;
}
INT
GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res)
{
INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));
if(len > 0)
{
GetDlgItemText(hDlg,
Res,
lpString,
len + 1);
}
else
lpString = NULL;
return len;
}
HIMAGELIST
InitImageList(UINT StartResource,
UINT EndResource,
UINT Width,
UINT Height)
{
HBITMAP hBitmap;
HIMAGELIST hImageList;
UINT i;
INT Ret;
/* Create the toolbar icon image list */
hImageList = ImageList_Create(Width,
Height,
ILC_MASK | ILC_COLOR24,
EndResource - StartResource,
0);
if (hImageList == NULL)
return NULL;
/* Add all icons to the image list */
for (i = StartResource; i <= EndResource; i++)
{
hBitmap = (HBITMAP)LoadImage(hInstance,
MAKEINTRESOURCE(i),
IMAGE_BITMAP,
Width,
Height,
LR_LOADTRANSPARENT);
if (hBitmap == NULL)
return NULL;
Ret = ImageList_AddMasked(hImageList,
hBitmap,
RGB(255, 0, 128));
if (Ret == -1)
return NULL;
DeleteObject(hBitmap);
}
return hImageList;
}
VOID GetError(VOID)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
VOID DisplayString(LPTSTR Msg)
{
MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK);
}
/*
* PROJECT: ReactOS Device Managment
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/devmgmt/misc.c
* PURPOSE: miscallanous functions
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
if (hInst == NULL)
{
return -1;
}
/* There are always blocks of 16 strings */
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
/* Find the string table block */
if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) &&
(hRes = LoadResource(hInst, hrSrc)) &&
(lpStr = (LPWSTR)LockResource(hRes)))
{
UINT x;
/* Find the string we're looking for */
uID &= 0xF; /* position in the block, same as % 16 */
for (x = 0; x < uID; x++)
{
lpStr += (*lpStr) + 1;
}
/* Found the string */
return (int)(*lpStr);
}
return -1;
}
INT
AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID)
{
INT ln;
ln = LengthOfStrResource(hInst,
uID);
if (ln++ > 0)
{
(*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED,
ln * sizeof(TCHAR));
if ((*lpTarget) != NULL)
{
INT Ret;
if (!(Ret = LoadString(hInst, uID, *lpTarget, ln)))
{
LocalFree((HLOCAL)(*lpTarget));
}
return Ret;
}
}
return 0;
}
DWORD
LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...)
{
DWORD Ret = 0;
LPTSTR lpFormat;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, lpTarget);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)lpTarget,
0,
&lArgs);
va_end(lArgs);
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...)
{
BOOL Ret = FALSE;
LPTSTR lpFormat, lpStr;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, uID);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)&lpStr,
0,
&lArgs);
va_end(lArgs);
if (lpStr != NULL)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID)
{
BOOL Ret = FALSE;
LPTSTR lpStr;
if (AllocAndLoadString(&lpStr,
hInstance,
uID) > 0)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
return Ret;
}
INT
GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res)
{
INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));
if(len > 0)
{
GetDlgItemText(hDlg,
Res,
lpString,
len + 1);
}
else
lpString = NULL;
return len;
}
HIMAGELIST
InitImageList(UINT StartResource,
UINT EndResource,
UINT Width,
UINT Height)
{
HBITMAP hBitmap;
HIMAGELIST hImageList;
UINT i;
INT Ret;
/* Create the toolbar icon image list */
hImageList = ImageList_Create(Width,
Height,
ILC_MASK | ILC_COLOR24,
EndResource - StartResource,
0);
if (hImageList == NULL)
return NULL;
/* Add all icons to the image list */
for (i = StartResource; i <= EndResource; i++)
{
hBitmap = (HBITMAP)LoadImage(hInstance,
MAKEINTRESOURCE(i),
IMAGE_BITMAP,
Width,
Height,
LR_LOADTRANSPARENT);
if (hBitmap == NULL)
return NULL;
Ret = ImageList_AddMasked(hImageList,
hBitmap,
RGB(255, 0, 128));
if (Ret == -1)
return NULL;
DeleteObject(hBitmap);
}
return hImageList;
}
VOID GetError(VOID)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
VOID DisplayString(LPTSTR Msg)
{
MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK);
}
+116 -116
View File
@@ -1,116 +1,116 @@
#ifndef __DEVMGMT_PRECOMP_H
#define __DEVMGMT_PRECOMP_H
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <tchar.h>
#include <setupapi.h>
#include <cfgmgr32.h>
#include <commctrl.h>
#include "resource.h"
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
#define MAX_DEV_LEN 256
typedef struct _MAIN_WND_INFO
{
HWND hMainWnd;
HWND hTreeView;
HWND hStatus;
HWND hTool;
HWND hProgDlg;
HMENU hShortcutMenu;
int nCmdShow;
/* status flags */
UINT InMenuLoop : 1;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
/* devmgmt.c */
extern HINSTANCE hInstance;
extern HANDLE ProcessHeap;
/* mainwnd.c */
typedef struct _MENU_HINT
{
WORD CmdId;
UINT HintId;
} MENU_HINT, *PMENU_HINT;
BOOL InitMainWindowImpl(VOID);
VOID UninitMainWindowImpl(VOID);
HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow);
/* enumdevices.c */
// undocumented API's from devmgr
#ifdef _UNICODE
#define DevicePropertiesEx DevicePropertiesExW
INT_PTR
WINAPI
DevicePropertiesExW(IN HWND hWndParent OPTIONAL,
IN LPCWSTR lpMachineName OPTIONAL,
IN LPCWSTR lpDeviceID OPTIONAL,
IN DWORD dwFlags OPTIONAL,
IN BOOL bShowDevMgr);
#else
#define DevicePropertiesEx DevicePropertiesExA
INT_PTR
WINAPI
DevicePropertiesExA(IN HWND hWndParent OPTIONAL,
IN LPCSTR lpMachineName OPTIONAL,
IN LPCSTR lpDeviceID OPTIONAL,
IN DWORD dwFlags OPTIONAL,
IN BOOL bShowDevMgr);
#endif
VOID FreeDeviceStrings(HWND hTreeView);
VOID OpenPropSheet(HWND hTreeView, HTREEITEM hItem);
HTREEITEM InitTreeView(HWND hTreeView);
VOID ListDevicesByType(HWND hTreeView, HTREEITEM hRoot);
/* misc.c */
INT AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID);
DWORD LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...);
BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...);
BOOL StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID);
INT GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res);
HIMAGELIST InitImageList(UINT NumButtons,
UINT StartResource,
UINT Width,
UINT Height);
VOID GetError(VOID);
VOID DisplayString(LPTSTR);
#endif /* __DEVMGMT_PRECOMP_H */
#ifndef __DEVMGMT_PRECOMP_H
#define __DEVMGMT_PRECOMP_H
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include <stdio.h>
#include <tchar.h>
#include <setupapi.h>
#include <cfgmgr32.h>
#include <commctrl.h>
#include "resource.h"
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
#define MAX_DEV_LEN 256
typedef struct _MAIN_WND_INFO
{
HWND hMainWnd;
HWND hTreeView;
HWND hStatus;
HWND hTool;
HWND hProgDlg;
HMENU hShortcutMenu;
int nCmdShow;
/* status flags */
UINT InMenuLoop : 1;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
/* devmgmt.c */
extern HINSTANCE hInstance;
extern HANDLE ProcessHeap;
/* mainwnd.c */
typedef struct _MENU_HINT
{
WORD CmdId;
UINT HintId;
} MENU_HINT, *PMENU_HINT;
BOOL InitMainWindowImpl(VOID);
VOID UninitMainWindowImpl(VOID);
HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow);
/* enumdevices.c */
// undocumented API's from devmgr
#ifdef _UNICODE
#define DevicePropertiesEx DevicePropertiesExW
INT_PTR
WINAPI
DevicePropertiesExW(IN HWND hWndParent OPTIONAL,
IN LPCWSTR lpMachineName OPTIONAL,
IN LPCWSTR lpDeviceID OPTIONAL,
IN DWORD dwFlags OPTIONAL,
IN BOOL bShowDevMgr);
#else
#define DevicePropertiesEx DevicePropertiesExA
INT_PTR
WINAPI
DevicePropertiesExA(IN HWND hWndParent OPTIONAL,
IN LPCSTR lpMachineName OPTIONAL,
IN LPCSTR lpDeviceID OPTIONAL,
IN DWORD dwFlags OPTIONAL,
IN BOOL bShowDevMgr);
#endif
VOID FreeDeviceStrings(HWND hTreeView);
VOID OpenPropSheet(HWND hTreeView, HTREEITEM hItem);
HTREEITEM InitTreeView(HWND hTreeView);
VOID ListDevicesByType(HWND hTreeView, HTREEITEM hRoot);
/* misc.c */
INT AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID);
DWORD LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...);
BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...);
BOOL StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID);
INT GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res);
HIMAGELIST InitImageList(UINT NumButtons,
UINT StartResource,
UINT Width,
UINT Height);
VOID GetError(VOID);
VOID DisplayString(LPTSTR);
#endif /* __DEVMGMT_PRECOMP_H */
+63 -63
View File
@@ -1,63 +1,63 @@
#define IDC_STATIC -1
#define IDI_MAIN_ICON 50
#define IDB_ROOT_IMAGE 51
/* windows */
#define IDC_TREEVIEW 1000
#define IDC_TOOLBAR 1001
#define IDC_STATUSBAR 1002
/* commands */
#define IDC_PROP 2000
#define IDC_REFRESH 2001
#define IDC_PRINT 2002
#define IDC_PROGHELP 2003
#define IDC_EXIT 2004
#define IDC_ABOUT 4031
/* menus */
#define IDR_MAINMENU 102
#define IDR_POPUP 103
#define IDC_DEVBYTYPE 104
/* tooltips */
#define IDS_TOOLTIP_PROP 6000
#define IDS_TOOLTIP_REFRESH 6001
#define IDS_TOOLTIP_HELP 6002
#define IDS_TOOLTIP_EXIT 6003
/* button bitmaps */
#define IDB_PROP 10000
#define IDB_REFRESH 10001
#define IDB_HELP 10002
#define IDB_EXIT 10003
/* toolbar buttons */
#define TBICON_PROP 0
#define TBICON_REFRESH 1
#define TBICON_HELP 2
#define TBICON_EXIT 3
/* about box info */
#define IDD_ABOUTBOX 200
#define IDC_LICENSE_EDIT 201
#define IDS_APPNAME 202
#define IDS_LICENSE 203
/* menu hints */
#define IDS_HINT_BLANK 20000
#define IDS_HINT_REFRESH 20002
#define IDS_HINT_PROP 20003
#define IDS_HINT_HELP 20004
#define IDS_HINT_ABOUT 20005
#define IDS_HINT_EXIT 20006
/* system menu hints */
#define IDS_HINT_SYS_RESTORE 21001
#define IDS_HINT_SYS_MOVE 21002
#define IDS_HINT_SYS_SIZE 21003
#define IDS_HINT_SYS_MINIMIZE 21004
#define IDS_HINT_SYS_MAXIMIZE 21005
#define IDS_HINT_SYS_CLOSE 21006
#define IDC_STATIC -1
#define IDI_MAIN_ICON 50
#define IDB_ROOT_IMAGE 51
/* windows */
#define IDC_TREEVIEW 1000
#define IDC_TOOLBAR 1001
#define IDC_STATUSBAR 1002
/* commands */
#define IDC_PROP 2000
#define IDC_REFRESH 2001
#define IDC_PRINT 2002
#define IDC_PROGHELP 2003
#define IDC_EXIT 2004
#define IDC_ABOUT 4031
/* menus */
#define IDR_MAINMENU 102
#define IDR_POPUP 103
#define IDC_DEVBYTYPE 104
/* tooltips */
#define IDS_TOOLTIP_PROP 6000
#define IDS_TOOLTIP_REFRESH 6001
#define IDS_TOOLTIP_HELP 6002
#define IDS_TOOLTIP_EXIT 6003
/* button bitmaps */
#define IDB_PROP 10000
#define IDB_REFRESH 10001
#define IDB_HELP 10002
#define IDB_EXIT 10003
/* toolbar buttons */
#define TBICON_PROP 0
#define TBICON_REFRESH 1
#define TBICON_HELP 2
#define TBICON_EXIT 3
/* about box info */
#define IDD_ABOUTBOX 200
#define IDC_LICENSE_EDIT 201
#define IDS_APPNAME 202
#define IDS_LICENSE 203
/* menu hints */
#define IDS_HINT_BLANK 20000
#define IDS_HINT_REFRESH 20002
#define IDS_HINT_PROP 20003
#define IDS_HINT_HELP 20004
#define IDS_HINT_ABOUT 20005
#define IDS_HINT_EXIT 20006
/* system menu hints */
#define IDS_HINT_SYS_RESTORE 21001
#define IDS_HINT_SYS_MOVE 21002
#define IDS_HINT_SYS_SIZE 21003
#define IDS_HINT_SYS_MINIMIZE 21004
#define IDS_HINT_SYS_MAXIMIZE 21005
#define IDS_HINT_SYS_CLOSE 21006
@@ -1,22 +1,22 @@
Solitaire for ReactOS
/*****************************************
A complete working example of the CardLib
card-game library.
Freeware
Copyright J Brown 2001
Updates at http://www.catch22.net
******************************************/
The author has given permission to use these sources
under Public Domain. Do what thou will but please give
credit where credit is due.
If you wish to use cardlib to write another card game
for ReactOS please make cardlib a static lib.
-sedwards
Solitaire for ReactOS
/*****************************************
A complete working example of the CardLib
card-game library.
Freeware
Copyright J Brown 2001
Updates at http://www.catch22.net
******************************************/
The author has given permission to use these sources
under Public Domain. Do what thou will but please give
credit where credit is due.
If you wish to use cardlib to write another card game
for ReactOS please make cardlib a static lib.
-sedwards
+128 -128
View File
@@ -1,128 +1,128 @@
/*
* PROJECT: Solitaire
* LICENSE: Freeware, permission to use under Public Domain
* FILE: base/applications/games/solitaire/de.rc
* PURPOSE: German Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer ([email protected])
*/
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/* winemaker: #include "afxres.h" */
/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */
#include "winres.h"
/////
#undef APSTUDIO_READONLY_SYMBOLS
/////
// German resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
/////
// Dialog
IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg"
EXSTYLE DS_SHELLFONT
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Abbrechen",IDCANCEL,129,24,50,14
END
/////
// DESIGNINFO
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_DIALOG1, DIALOGEX
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 88
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////
// TEXTINCLUDE
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////
// Menu
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "&Spiel"
BEGIN
MENUITEM "&Karten geben\t F2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "&Deckblatt...", IDM_GAME_DECK
MENUITEM "&Optionen...", IDM_GAME_OPTIONS
MENUITEM SEPARATOR
MENUITEM "&Beenden", IDM_GAME_EXIT
END
POPUP "&?"
BEGIN
MENUITEM "&Inhalt\tF1", IDM_HELP_CONTENTS
MENUITEM "Inf&o", IDM_HELP_ABOUT
END
END
/////
// Accelerator
IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END
/////
// Icon
IDI_ICON1 ICON DISCARDABLE "solitaire.ico"
#endif // German resources
/////
#ifndef APSTUDIO_INVOKED
/////
#endif // not APSTUDIO_INVOKED
/*
* PROJECT: Solitaire
* LICENSE: Freeware, permission to use under Public Domain
* FILE: base/applications/games/solitaire/de.rc
* PURPOSE: German Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer ([email protected])
*/
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/* winemaker: #include "afxres.h" */
/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */
#include "winres.h"
/////
#undef APSTUDIO_READONLY_SYMBOLS
/////
// German resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
/////
// Dialog
IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg"
EXSTYLE DS_SHELLFONT
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Abbrechen",IDCANCEL,129,24,50,14
END
/////
// DESIGNINFO
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_DIALOG1, DIALOGEX
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 88
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////
// TEXTINCLUDE
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////
// Menu
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "&Spiel"
BEGIN
MENUITEM "&Karten geben\t F2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "&Deckblatt...", IDM_GAME_DECK
MENUITEM "&Optionen...", IDM_GAME_OPTIONS
MENUITEM SEPARATOR
MENUITEM "&Beenden", IDM_GAME_EXIT
END
POPUP "&?"
BEGIN
MENUITEM "&Inhalt\tF1", IDM_HELP_CONTENTS
MENUITEM "Inf&o", IDM_HELP_ABOUT
END
END
/////
// Accelerator
IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END
/////
// Icon
IDI_ICON1 ICON DISCARDABLE "solitaire.ico"
#endif // German resources
/////
#ifndef APSTUDIO_INVOKED
/////
#endif // not APSTUDIO_INVOKED
+128 -128
View File
@@ -1,128 +1,128 @@
/*
* PROJECT: Solitaire
* LICENSE: Freeware, permission to use under Public Domain
* FILE: base/applications/games/solitaire/en.rc
* PURPOSE: English Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer ([email protected])
*/
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/* winemaker: #include "afxres.h" */
/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */
#include "winres.h"
/////
#undef APSTUDIO_READONLY_SYMBOLS
/////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////
// Dialog
IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg"
EXSTYLE DS_SHELLFONT
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
END
/////
// DESIGNINFO
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_DIALOG1, DIALOGEX
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 88
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////
// TEXTINCLUDE
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////
// Menu
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "&Game"
BEGIN
MENUITEM "&Deal\tF2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "De&ck...", IDM_GAME_DECK
MENUITEM "&Options...", IDM_GAME_OPTIONS
MENUITEM SEPARATOR
MENUITEM "&Exit", IDM_GAME_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&Contents\tF1", IDM_HELP_CONTENTS
MENUITEM "&About", IDM_HELP_ABOUT
END
END
/////
// Accelerator
IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END
/////
// Icon
IDI_ICON1 ICON DISCARDABLE "solitaire.ico"
#endif // English (U.K.) resources
/////
#ifndef APSTUDIO_INVOKED
/////
#endif // not APSTUDIO_INVOKED
/*
* PROJECT: Solitaire
* LICENSE: Freeware, permission to use under Public Domain
* FILE: base/applications/games/solitaire/en.rc
* PURPOSE: English Language File for Solitaire
* PROGRAMMERS: Daniel "EmuandCo" Reimer ([email protected])
*/
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/* winemaker: #include "afxres.h" */
/* winemaker:warning: 'afxres.h' is an MFC specific header. Replacing it with 'winres.h' */
#include "winres.h"
/////
#undef APSTUDIO_READONLY_SYMBOLS
/////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////
// Dialog
IDD_DIALOG1 DIALOGEX DISCARDABLE 0, 0, 186, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Shell Dlg"
EXSTYLE DS_SHELLFONT
BEGIN
DEFPUSHBUTTON "OK",IDOK,129,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
END
/////
// DESIGNINFO
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_DIALOG1, DIALOGEX
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 179
TOPMARGIN, 7
BOTTOMMARGIN, 88
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////
// TEXTINCLUDE
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////
// Menu
IDR_MENU1 MENU DISCARDABLE
BEGIN
POPUP "&Game"
BEGIN
MENUITEM "&Deal\tF2", IDM_GAME_NEW
MENUITEM SEPARATOR
MENUITEM "De&ck...", IDM_GAME_DECK
MENUITEM "&Options...", IDM_GAME_OPTIONS
MENUITEM SEPARATOR
MENUITEM "&Exit", IDM_GAME_EXIT
END
POPUP "&Help"
BEGIN
MENUITEM "&Contents\tF1", IDM_HELP_CONTENTS
MENUITEM "&About", IDM_HELP_ABOUT
END
END
/////
// Accelerator
IDR_ACCELERATOR1 ACCELERATORS DISCARDABLE
BEGIN
VK_F1, IDM_HELP_CONTENTS, VIRTKEY, NOINVERT
VK_F2, IDM_GAME_NEW, VIRTKEY, NOINVERT
END
/////
// Icon
IDI_ICON1 ICON DISCARDABLE "solitaire.ico"
#endif // English (U.K.) resources
/////
#ifndef APSTUDIO_INVOKED
/////
#endif // not APSTUDIO_INVOKED
@@ -1,5 +1,5 @@
#include "resource.h"
#include "de.rc"
#include "en.rc"
#include "uk.rc"
#include "resource.h"
#include "de.rc"
#include "en.rc"
#include "uk.rc"
+83 -83
View File
@@ -1,83 +1,83 @@
#include "resource.h"
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE {
IDS_APPNAME, "WineMine"
}
MENU_WINEMINE MENU DISCARDABLE
{
POPUP "&Optie's" {
MENUITEM "&Nieuw", IDM_NEW
MENUITEM SEPARATOR
MENUITEM "Vraagteken a&ctiveren", IDM_MARKQ
MENUITEM SEPARATOR
MENUITEM "&Beginner", IDM_BEGINNER
MENUITEM "&Gevorderde", IDM_ADVANCED
MENUITEM "&Expert", IDM_EXPERT
MENUITEM "Aan&passen", IDM_CUSTOM
MENUITEM SEPARATOR
MENUITEM "&Afsluiten", IDM_EXIT
}
POPUP "&Info" {
MENUITEM "Bes&te tijd", IDM_TIMES
MENUITEM "&Over", IDM_ABOUT
}
}
DLG_TIMES DIALOG DISCARDABLE 0, 0, 160, 80
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Beste tijd"
{
GROUPBOX "Beste tijd", IDNONE, 10, 10, 140, 45
LTEXT "Beginner", IDNONE, 20, 20, 40, 8
LTEXT "Gevorderde", IDNONE, 20, 30, 40, 8
LTEXT "Expert", IDNONE, 20, 40, 40, 8
LTEXT "999", IDC_TIME1, 70, 20, 15, 8
LTEXT "999", IDC_TIME2, 70, 30, 15, 8
LTEXT "999", IDC_TIME3, 70, 40, 15, 8
LTEXT "", IDC_NAME1, 90, 20, 55, 8
LTEXT "", IDC_NAME2, 90, 30, 55, 8
LTEXT "", IDC_NAME3, 90, 40, 55, 8
DEFPUSHBUTTON "OK", IDOK, 55, 60, 50, 15
}
DLG_CONGRATS DIALOG DISCARDABLE 0, 0, 160, 60
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Gefeleciteerd!"
{
LTEXT "Gelieve uw naam in te voeren", IDIGNORE, 10, 10, 150, 10
EDITTEXT IDC_EDITNAME, 25, 20, 110, 12
DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15
}
DLG_CUSTOM DIALOG DISCARDABLE 0, 0, 100, 100
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Aangepast spel"
{
LTEXT "Rijen", IDNONE, 5, 5, 30, 10
LTEXT "Kolommen", IDNONE, 5, 35, 30, 10
LTEXT "Mijnen", IDNONE, 5, 65, 30, 10
EDITTEXT IDC_EDITROWS, 5, 15, 20, 12, ES_NUMBER
EDITTEXT IDC_EDITCOLS, 5, 45, 20, 12, ES_NUMBER
EDITTEXT IDC_EDITMINES, 5, 75, 20, 12, ES_NUMBER
DEFPUSHBUTTON "OK", IDOK, 40, 30, 50, 15
PUSHBUTTON "Annuleren", IDCANCEL, 40, 50, 50, 15
}
DLG_ABOUT DIALOG DISCARDABLE 0, 0, 145, 80
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Over"
{
LTEXT "WineMine", IDNONE, 10, 10, 35, 10
LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 100, 10
LTEXT "onder de Wine licentie", IDNONE, 35, 35, 100, 10
ICON "WINEMINE", IDNONE, 10, 25, 20, 20
DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15
}
#include "resource.h"
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
STRINGTABLE {
IDS_APPNAME, "WineMine"
}
MENU_WINEMINE MENU DISCARDABLE
{
POPUP "&Optie's" {
MENUITEM "&Nieuw", IDM_NEW
MENUITEM SEPARATOR
MENUITEM "Vraagteken a&ctiveren", IDM_MARKQ
MENUITEM SEPARATOR
MENUITEM "&Beginner", IDM_BEGINNER
MENUITEM "&Gevorderde", IDM_ADVANCED
MENUITEM "&Expert", IDM_EXPERT
MENUITEM "Aan&passen", IDM_CUSTOM
MENUITEM SEPARATOR
MENUITEM "&Afsluiten", IDM_EXIT
}
POPUP "&Info" {
MENUITEM "Bes&te tijd", IDM_TIMES
MENUITEM "&Over", IDM_ABOUT
}
}
DLG_TIMES DIALOG DISCARDABLE 0, 0, 160, 80
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Beste tijd"
{
GROUPBOX "Beste tijd", IDNONE, 10, 10, 140, 45
LTEXT "Beginner", IDNONE, 20, 20, 40, 8
LTEXT "Gevorderde", IDNONE, 20, 30, 40, 8
LTEXT "Expert", IDNONE, 20, 40, 40, 8
LTEXT "999", IDC_TIME1, 70, 20, 15, 8
LTEXT "999", IDC_TIME2, 70, 30, 15, 8
LTEXT "999", IDC_TIME3, 70, 40, 15, 8
LTEXT "", IDC_NAME1, 90, 20, 55, 8
LTEXT "", IDC_NAME2, 90, 30, 55, 8
LTEXT "", IDC_NAME3, 90, 40, 55, 8
DEFPUSHBUTTON "OK", IDOK, 55, 60, 50, 15
}
DLG_CONGRATS DIALOG DISCARDABLE 0, 0, 160, 60
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Gefeleciteerd!"
{
LTEXT "Gelieve uw naam in te voeren", IDIGNORE, 10, 10, 150, 10
EDITTEXT IDC_EDITNAME, 25, 20, 110, 12
DEFPUSHBUTTON "Ok", IDOK, 60, 40, 40, 15
}
DLG_CUSTOM DIALOG DISCARDABLE 0, 0, 100, 100
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Aangepast spel"
{
LTEXT "Rijen", IDNONE, 5, 5, 30, 10
LTEXT "Kolommen", IDNONE, 5, 35, 30, 10
LTEXT "Mijnen", IDNONE, 5, 65, 30, 10
EDITTEXT IDC_EDITROWS, 5, 15, 20, 12, ES_NUMBER
EDITTEXT IDC_EDITCOLS, 5, 45, 20, 12, ES_NUMBER
EDITTEXT IDC_EDITMINES, 5, 75, 20, 12, ES_NUMBER
DEFPUSHBUTTON "OK", IDOK, 40, 30, 50, 15
PUSHBUTTON "Annuleren", IDCANCEL, 40, 50, 50, 15
}
DLG_ABOUT DIALOG DISCARDABLE 0, 0, 145, 80
STYLE DS_MODALFRAME | DS_3DLOOK |
WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_POPUP
CAPTION "Over"
{
LTEXT "WineMine", IDNONE, 10, 10, 35, 10
LTEXT "Copyright 2000, Joshua Thielen", IDNONE, 35, 25, 100, 10
LTEXT "onder de Wine licentie", IDNONE, 35, 35, 100, 10
ICON "WINEMINE", IDNONE, 10, 25, 20, 20
DEFPUSHBUTTON "OK", IDOK, 50, 60, 55, 15
}
+45 -45
View File
@@ -1,45 +1,45 @@
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/En.rc
* PURPOSE: French resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
* Copyright 2005 G. Maton ([email protected]) - French translation
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Téléchargement de Firefox"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "Supprimer ""Obtenir Firefox"" du Menu démarrer une fois terminé", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Obtenir Firefox"
END
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/En.rc
* PURPOSE: French resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
* Copyright 2005 G. Maton ([email protected]) - French translation
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_FRENCH, SUBLANG_DEFAULT
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Téléchargement de Firefox"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "Supprimer ""Obtenir Firefox"" du Menu démarrer une fois terminé", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuler", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Obtenir Firefox"
END
+45 -45
View File
@@ -1,45 +1,45 @@
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/En.rc
* PURPOSE: English resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
* Copyright 2005 Robert Horvath ([email protected]) - Hungarian translation
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "A Firefox letöltése"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "A ""Szerezd meg a Firefoxot"" elvátolítása a Start Menübõl befejezés után", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Mégse", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Szerezd meg Firefoxot"
END
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/En.rc
* PURPOSE: English resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
* Copyright 2005 Robert Horvath ([email protected]) - Hungarian translation
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "A Firefox letöltése"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "A ""Szerezd meg a Firefoxot"" elvátolítása a Start Menübõl befejezés után", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Mégse", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Szerezd meg Firefoxot"
END
+44 -44
View File
@@ -1,44 +1,44 @@
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/Nl.rc
* PURPOSE: Dutch resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Bezig met downloaden van Firefox"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "Verwijder ""Get Firefox"" uit het start menu wanneer de download compleet is", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuleren", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Get Firefox"
END
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/Nl.rc
* PURPOSE: Dutch resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Bezig met downloaden van Firefox"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "Verwijder ""Get Firefox"" uit het start menu wanneer de download compleet is", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Annuleren", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Get Firefox"
END
+46 -46
View File
@@ -1,46 +1,46 @@
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/Sv.rc
* PURPOSE: Swedish resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
* Copyright 2006 Andreas Bjerkeholt ([email protected])
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hämtar Firefox"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "Ta bort ""Hämta Firefox"" från startmenyn när nedladdningen är klar", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Avbryt", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Hämta Firefox"
END
/*
* PROJECT: ReactOS utilities
* LICENSE: GPL - See COPYING in the top level directory
* FILE: apps/utils/getfirefox/Sv.rc
* PURPOSE: Swedish resources
* COPYRIGHT: Copyright 2004 Mike McCormack for CodeWeavers
* Copyright 2005 Ge van Geldorp ([email protected])
* Copyright 2006 Andreas Bjerkeholt ([email protected])
*/
/*
* Based on Wine dlls/shdocvw/En.rc
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
IDD_GETFIREFOX DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 220, 76
STYLE DS_MODALFRAME | DS_CENTER | WS_VISIBLE | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Hämtar Firefox"
FONT 8, "MS Shell Dlg"
{
CONTROL "Progress1",IDC_PROGRESS,"msctls_progress32",WS_BORDER|PBS_SMOOTH,10,10,200,12
LTEXT "", IDC_STATUS, 10, 30, 200, 10, SS_CENTER
CHECKBOX "Ta bort ""Hämta Firefox"" från startmenyn när nedladdningen är klar", IDC_REMOVE,
10, 44, 200, 10, BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP
PUSHBUTTON "Avbryt", IDCANCEL, 85, 58, 50, 15, WS_GROUP | WS_TABSTOP
}
STRINGTABLE
BEGIN
IDS_START_MENU_NAME "Hämta Firefox"
END
+148 -148
View File
@@ -1,148 +1,148 @@
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "&Beenden", ID_FILE_EXIT
END
POPUP "&Ansicht"
BEGIN
MENUITEM "&Toolbar", ID_VIEW_TOOL_BAR
MENUITEM "S&ide Bar", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Status Bar", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Aktualisieren\tF5", ID_REFRESH
MENUITEM "&Vollbild\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
END
POPUP "&Hilfe"
BEGIN
MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ
MENUITEM "&Über IBrowser...", ID_ABOUT_IBROWSER
MENUITEM "Über &OS...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUT_IBROWSER DIALOG DISCARDABLE 0, 0, 199, 106
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About ReactOS Web Browser"
FONT 10, "MS Sans Serif"
BEGIN
LTEXT "ReactOS Web Browser",IDC_ROS_IBROWSER,91,13,104,11
LTEXT "V 0.9",IDC_VERSION_TXT,91,27,104,8
LTEXT "(c) 2005 Martin Fuchs",IDC_STATIC,91,42,104,8
LTEXT "",IDC_WIN_VERSION,91,58,98,22
LTEXT "http://www.sky.franken.de/explorer/",IDC_WWW,17,84,129,
8
CONTROL "&OK",IDOK,"Button",BS_OWNERDRAW | BS_FLAT | WS_GROUP,
154,90,38,12
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "Reactos Internet Web Browser"
IDS_EMPTY "(Empty)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUT_IBROWSER "&Über..."
END
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s"
#else
IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "&Beenden", ID_FILE_EXIT
END
POPUP "&Ansicht"
BEGIN
MENUITEM "&Toolbar", ID_VIEW_TOOL_BAR
MENUITEM "S&ide Bar", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Status Bar", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Aktualisieren\tF5", ID_REFRESH
MENUITEM "&Vollbild\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
END
POPUP "&Hilfe"
BEGIN
MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ
MENUITEM "&Über IBrowser...", ID_ABOUT_IBROWSER
MENUITEM "Über &OS...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUT_IBROWSER DIALOG DISCARDABLE 0, 0, 199, 106
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About ReactOS Web Browser"
FONT 10, "MS Sans Serif"
BEGIN
LTEXT "ReactOS Web Browser",IDC_ROS_IBROWSER,91,13,104,11
LTEXT "V 0.9",IDC_VERSION_TXT,91,27,104,8
LTEXT "(c) 2005 Martin Fuchs",IDC_STATIC,91,42,104,8
LTEXT "",IDC_WIN_VERSION,91,58,98,22
LTEXT "http://www.sky.franken.de/explorer/",IDC_WWW,17,84,129,
8
CONTROL "&OK",IDOK,"Button",BS_OWNERDRAW | BS_FLAT | WS_GROUP,
154,90,38,12
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "Reactos Internet Web Browser"
IDS_EMPTY "(Empty)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUT_IBROWSER "&Über..."
END
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s"
#else
IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
+151 -151
View File
@@ -1,151 +1,151 @@
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// French (France) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
#ifdef _WIN32
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "&Ouvrir", ID_FILE_OPEN
MENUITEM "&Quitter", ID_FILE_EXIT
END
POPUP "&Affichage"
BEGIN
MENUITEM "Barre d'ou&tils", ID_VIEW_TOOL_BAR
MENUITEM "Pann&eau lat?al", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Barre d'?at", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Actualise&r", ID_REFRESH
MENUITEM "&Plein ?ran", ID_VIEW_FULLSCREEN
END
POPUP "&Aide"
BEGIN
MENUITEM "&Rubriques d'aide de iBrowser", ID_IBROWSER_FAQ
MENUITEM "? propos de iBrowser...", ID_ABOUT_IBROWSER
MENUITEM "? propos de ReactOS...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "Navigateur internet de Reactos"
IDS_EMPTY "(Vide)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUT_IBROWSER "? propos de iBrowser..."
END
#endif // French (France) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS%0s"
#else
IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// French (France) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
#ifdef _WIN32
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""Navigateur Internet de ReactOS Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Fichier"
BEGIN
MENUITEM "&Ouvrir", ID_FILE_OPEN
MENUITEM "&Quitter", ID_FILE_EXIT
END
POPUP "&Affichage"
BEGIN
MENUITEM "Barre d'ou&tils", ID_VIEW_TOOL_BAR
MENUITEM "Pann&eau lat?al", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Barre d'?at", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Actualise&r", ID_REFRESH
MENUITEM "&Plein ?ran", ID_VIEW_FULLSCREEN
END
POPUP "&Aide"
BEGIN
MENUITEM "&Rubriques d'aide de iBrowser", ID_IBROWSER_FAQ
MENUITEM "? propos de iBrowser...", ID_ABOUT_IBROWSER
MENUITEM "? propos de ReactOS...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "Navigateur internet de Reactos"
IDS_EMPTY "(Vide)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUT_IBROWSER "? propos de iBrowser..."
END
#endif // French (France) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS%0s"
#else
IDS_IBROWSER_VERSION_STR "Navigateur Internet de ReactOS Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
+81 -81
View File
@@ -1,81 +1,81 @@
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""A ReactOS %s webböngészõ%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""A ReactOS %s webböngészõ Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "A ReactOS %s webböngészõ%0s"
#else
IDS_IBROWSER_VERSION_STR "A ReactOS %s webböngészõ Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""A ReactOS %s webböngészõ%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""A ReactOS %s webböngészõ Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "A ReactOS %s webböngészõ%0s"
#else
IDS_IBROWSER_VERSION_STR "A ReactOS %s webböngészõ Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -1,68 +1,68 @@
#
# ROS Internet Web Browser
#
# Makefile.MinGW
#
CC = gcc
CXX = g++
LINK = g++
CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC)
RCFLAGS = -DWIN32 -D__WINDRES__
LFLAGS = -Wl,--subsystem,windows
ifdef DEBUG
CFLAGS += -D_DEBUG -g
RCFLAGS += -D_DEBUG
LFLAGS += -g
else
CFLAGS += -DNDEBUG -Os
RCFLAGS += -DNDEBUG
LFLAGS += -s
endif
ifndef UNICODE
UNICODE = 1
endif
ifeq ($(UNICODE),1)
CFLAGS += -DUNICODE
# LFLAGS+= -Wl,--entry,_wWinMain@16
RCFLAGS += -DUNICODE
endif
CXXFLAGS = $(CFLAGS)
EXEC_SUFFIX = .exe
RES_SUFFIX = .coff
VPATH = utility
PROGRAM = ibrowser
TARGET = $(PROGRAM)$(EXEC_SUFFIX)
OBJECTS = \
utility.o \
window.o \
ibrowser.o \
webchild.o \
mainframe.o \
favorites.o \
xs-native.o \
xmlstorage.o
LIBS = gdi32 comctl32 shell32 ole32 uuid oleaut32
all: $(TARGET)
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX)
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
clean:
rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) \
desktop/*.o dialogs/*.o shell/*.o taskbar/*.o utility/*.o
#
# ROS Internet Web Browser
#
# Makefile.MinGW
#
CC = gcc
CXX = g++
LINK = g++
CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC)
RCFLAGS = -DWIN32 -D__WINDRES__
LFLAGS = -Wl,--subsystem,windows
ifdef DEBUG
CFLAGS += -D_DEBUG -g
RCFLAGS += -D_DEBUG
LFLAGS += -g
else
CFLAGS += -DNDEBUG -Os
RCFLAGS += -DNDEBUG
LFLAGS += -s
endif
ifndef UNICODE
UNICODE = 1
endif
ifeq ($(UNICODE),1)
CFLAGS += -DUNICODE
# LFLAGS+= -Wl,--entry,_wWinMain@16
RCFLAGS += -DUNICODE
endif
CXXFLAGS = $(CFLAGS)
EXEC_SUFFIX = .exe
RES_SUFFIX = .coff
VPATH = utility
PROGRAM = ibrowser
TARGET = $(PROGRAM)$(EXEC_SUFFIX)
OBJECTS = \
utility.o \
window.o \
ibrowser.o \
webchild.o \
mainframe.o \
favorites.o \
xs-native.o \
xmlstorage.o
LIBS = gdi32 comctl32 shell32 ole32 uuid oleaut32
all: $(TARGET)
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX)
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
clean:
rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) \
desktop/*.o dialogs/*.o shell/*.o taskbar/*.o utility/*.o
@@ -1,73 +1,73 @@
#
# ROS Internet Web Browser
#
# Makefile-precomp
#
# MinGW Makefile with precompiled header support
#
CC = gcc
CXX = g++
LINK = g++
CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC)
RCFLAGS = -DWIN32 -D__WINDRES__
LFLAGS = -Wl,--subsystem,windows
ifdef DEBUG
CFLAGS += -D_DEBUG -g
RCFLAGS += -D_DEBUG
LFLAGS += -g
else
CFLAGS += -DNDEBUG -Os -march=pentium4
RCFLAGS += -DNDEBUG
LFLAGS += -s
endif
ifndef UNICODE
UNICODE = 1
endif
ifeq ($(UNICODE),1)
CFLAGS += -DUNICODE
# LFLAGS+= -Wl,--entry,_wWinMain@16
RCFLAGS += -DUNICODE
endif
CXXFLAGS = $(CFLAGS)
EXEC_SUFFIX = .exe
RES_SUFFIX = .coff
VPATH = utility
PROGRAM = ibrowser
TARGET = $(PROGRAM)$(EXEC_SUFFIX)
OBJECTS = \
utility.o \
window.o \
ibrowser.o \
webchild.o \
mainframe.o \
favorites.o \
xs-native.o \
xmlstorage.o
LIBS = gdi32 comctl32 shell32 ole32 oleaut32 uuid
all: precomp.h.gch $(TARGET)
precomp.h.gch: *.h utility/*.h
$(CXX) $(CFLAGS) precomp.h
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX)
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
clean:
rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) precomp.h.gch \
utility/*.o
#
# ROS Internet Web Browser
#
# Makefile-precomp
#
# MinGW Makefile with precompiled header support
#
CC = gcc
CXX = g++
LINK = g++
CFLAGS = -DWIN32 -D_WIN32_IE=0x0600 -D_WIN32_WINNT=0x0501 -DWINVER=0x0500 -fexceptions -Wall -Wno-unused-value -I. -I$(EXPAT_INC)
RCFLAGS = -DWIN32 -D__WINDRES__
LFLAGS = -Wl,--subsystem,windows
ifdef DEBUG
CFLAGS += -D_DEBUG -g
RCFLAGS += -D_DEBUG
LFLAGS += -g
else
CFLAGS += -DNDEBUG -Os -march=pentium4
RCFLAGS += -DNDEBUG
LFLAGS += -s
endif
ifndef UNICODE
UNICODE = 1
endif
ifeq ($(UNICODE),1)
CFLAGS += -DUNICODE
# LFLAGS+= -Wl,--entry,_wWinMain@16
RCFLAGS += -DUNICODE
endif
CXXFLAGS = $(CFLAGS)
EXEC_SUFFIX = .exe
RES_SUFFIX = .coff
VPATH = utility
PROGRAM = ibrowser
TARGET = $(PROGRAM)$(EXEC_SUFFIX)
OBJECTS = \
utility.o \
window.o \
ibrowser.o \
webchild.o \
mainframe.o \
favorites.o \
xs-native.o \
xmlstorage.o
LIBS = gdi32 comctl32 shell32 ole32 oleaut32 uuid
all: precomp.h.gch $(TARGET)
precomp.h.gch: *.h utility/*.h
$(CXX) $(CFLAGS) precomp.h
$(TARGET): $(OBJECTS) $(PROGRAM)$(RES_SUFFIX)
$(LINK) $(LFLAGS) -o $@ $^ $(addprefix -l,$(LIBS)) $(addprefix -l,$(DELAYIMPORTS))
ibrowser$(RES_SUFFIX): $(PROGRAM)_intres.rc res/*.bmp res/*.ico
windres $(RCFLAGS) -o $@ $(PROGRAM)_intres.rc
clean:
rm -f $(TARGET) $(OBJECTS) $(PROGRAM)$(RES_SUFFIX) precomp.h.gch \
utility/*.o
+122 -122
View File
@@ -1,122 +1,122 @@
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Neutral (Default) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD)
#ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Fisier"
BEGIN
MENUITEM "&Iesire", ID_FILE_EXIT
END
POPUP "&Prezentare"
BEGIN
MENUITEM "&Bara cu instrumente", ID_VIEW_TOOL_BAR
MENUITEM "&Side Bar", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Bara de stare", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Resetare\tF5", ID_REFRESH
MENUITEM "F&ull Screen\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
END
POPUP "&Ajutor"
BEGIN
MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ
MENUITEM "&Despre IBrowser...", ID_ABOUT_IBROWSER
MENUITEM "Despre &OS...", ID_ABOUT_WINDOWS
END
END
#endif // Neutral (Default) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s"
#else
IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Neutral (Default) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUD)
#ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Fisier"
BEGIN
MENUITEM "&Iesire", ID_FILE_EXIT
END
POPUP "&Prezentare"
BEGIN
MENUITEM "&Bara cu instrumente", ID_VIEW_TOOL_BAR
MENUITEM "&Side Bar", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Bara de stare", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Resetare\tF5", ID_REFRESH
MENUITEM "F&ull Screen\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
END
POPUP "&Ajutor"
BEGIN
MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ
MENUITEM "&Despre IBrowser...", ID_ABOUT_IBROWSER
MENUITEM "Despre &OS...", ID_ABOUT_WINDOWS
END
END
#endif // Neutral (Default) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_ROMANIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s"
#else
IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
+140 -140
View File
@@ -1,140 +1,140 @@
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Swedish resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE)
#ifdef _WIN32
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "&Öppna", ID_FILE_OPEN
MENUITEM "&Avsluta", ID_FILE_EXIT
END
POPUP "&Visa"
BEGIN
MENUITEM "&Verktygsfält", ID_VIEW_TOOL_BAR
MENUITEM "S&idfält", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Statusfält", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Uppdatera\tF5", ID_REFRESH
MENUITEM "&Fullskärm\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
END
POPUP "&Hjälp"
BEGIN
MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ
MENUITEM "Om &IBrowser...", ID_ABOUT_IBROWSER
MENUITEM "Om &operativsystemet...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "ReactOS webbläsare"
IDS_EMPTY "(Tom)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUT_IBROWSER "&Om..."
END
#endif // Swedish resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s"
#else
IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// German (Germany) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#ifndef _ROS_\r\n"
"LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT\r\n"
"STRINGTABLE DISCARDABLE \r\n"
"BEGIN\r\n"
"#ifdef UNICODE\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser%0s""\r\n"
"#else\r\n"
"IDS_IBROWSER_VERSION_STR ""ROS IBrowser Ansi%0s""\r\n"
"#endif\r\n"
"END\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#endif // German (Germany) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Swedish resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_SVE)
#ifdef _WIN32
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
IDM_SDIFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "&Öppna", ID_FILE_OPEN
MENUITEM "&Avsluta", ID_FILE_EXIT
END
POPUP "&Visa"
BEGIN
MENUITEM "&Verktygsfält", ID_VIEW_TOOL_BAR
MENUITEM "S&idfält", ID_VIEW_SIDE_BAR, GRAYED
MENUITEM "&Statusfält", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "&Uppdatera\tF5", ID_REFRESH
MENUITEM "&Fullskärm\tCtrl+Shift+S", ID_VIEW_FULLSCREEN
END
POPUP "&Hjälp"
BEGIN
MENUITEM "IBrowser &FAQ...", ID_IBROWSER_FAQ
MENUITEM "Om &IBrowser...", ID_ABOUT_IBROWSER
MENUITEM "Om &operativsystemet...", ID_ABOUT_WINDOWS
END
END
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_TITLE "ReactOS webbläsare"
IDS_EMPTY "(Tom)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUT_IBROWSER "&Om..."
END
#endif // Swedish resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#ifndef _ROS_
LANGUAGE LANG_SWEDISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
#ifdef UNICODE
IDS_IBROWSER_VERSION_STR "ROS IBrowser%0s"
#else
IDS_IBROWSER_VERSION_STR "ROS IBrowser Ansi%0s"
#endif
END
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
+346 -346
View File
@@ -1,346 +1,346 @@
# Microsoft Developer Studio Project File - Name="ibrowser" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=IBROWSER - WIN32 DEBUG
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ibrowser.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 "ibrowser.mak" CFG="IBROWSER - WIN32 DEBUG"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ibrowser - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Debug Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Unicode Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.cmd
RSC=rc.exe
!IF "$(CFG)" == "ibrowser - 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 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O1 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /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 /subsystem:console /machine:I386
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - 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 /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /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 /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - Win32 Debug Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "DRelease"
# PROP BASE Intermediate_Dir "DRelease"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "DRelease"
# PROP Intermediate_Dir "DRelease"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_ROS_" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "URelease"
# PROP BASE Intermediate_Dir "URelease"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "URelease"
# PROP Intermediate_Dir "URelease"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "UDebug"
# PROP BASE Intermediate_Dir "UDebug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "UDebug"
# PROP Intermediate_Dir "UDebug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /FR /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "ibrowser - Win32 Release"
# Name "ibrowser - Win32 Debug"
# Name "ibrowser - Win32 Debug Release"
# Name "ibrowser - Win32 Unicode Release"
# Name "ibrowser - Win32 Unicode Debug"
# Begin Group "utility"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\utility\comutil.h
# End Source File
# Begin Source File
SOURCE=.\utility\utility.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\utility.h
# End Source File
# Begin Source File
SOURCE=.\utility\window.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\window.h
# End Source File
# Begin Source File
SOURCE=.\utility\xmlstorage.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\xmlstorage.h
# End Source File
# Begin Source File
SOURCE=".\utility\xs-native.cpp"
# End Source File
# End Group
# Begin Group "resources"
# PROP Default_Filter "bmp,ico"
# Begin Source File
SOURCE=.\De.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\dot.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot_red.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot_trans.ico
# End Source File
# Begin Source File
SOURCE=.\En.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\Es.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\favorites.ico
# End Source File
# Begin Source File
SOURCE=.\Fr.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\Hu.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\ibrowser.ico
# End Source File
# Begin Source File
SOURCE=.\ibrowser.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\ibrowser_intres.h
# End Source File
# Begin Source File
SOURCE=.\ibrowser_intres.rc
# End Source File
# Begin Source File
SOURCE=.\Ja.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\network.ico
# End Source File
# Begin Source File
SOURCE=.\res\reactos.ico
# End Source File
# Begin Source File
SOURCE=.\Ro.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\Sv.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\toolbar.bmp
# End Source File
# End Group
# Begin Group "main"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\favorites.cpp
# End Source File
# Begin Source File
SOURCE=.\favorites.h
# End Source File
# Begin Source File
SOURCE=.\ibrowser.cpp
# End Source File
# Begin Source File
SOURCE=.\ibrowser.h
# End Source File
# Begin Source File
SOURCE=.\mainframe.cpp
# End Source File
# Begin Source File
SOURCE=.\mainframe.h
# End Source File
# Begin Source File
SOURCE=.\precomp.cpp
# ADD CPP /Yc"precomp.h"
# End Source File
# Begin Source File
SOURCE=.\precomp.h
# End Source File
# Begin Source File
SOURCE=.\webchild.cpp
# End Source File
# Begin Source File
SOURCE=.\webchild.h
# End Source File
# End Group
# Begin Source File
SOURCE=.\readme.txt
# End Source File
# End Target
# End Project
# Microsoft Developer Studio Project File - Name="ibrowser" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=IBROWSER - WIN32 DEBUG
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ibrowser.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 "ibrowser.mak" CFG="IBROWSER - WIN32 DEBUG"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ibrowser - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Debug Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Unicode Release" (based on "Win32 (x86) Console Application")
!MESSAGE "ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.cmd
RSC=rc.exe
!IF "$(CFG)" == "ibrowser - 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 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O1 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /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 /subsystem:console /machine:I386
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - 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 /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /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 /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - Win32 Debug Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "DRelease"
# PROP BASE Intermediate_Dir "DRelease"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "DRelease"
# PROP Intermediate_Dir "DRelease"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_ROS_" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /Zi /O2 /D "NDEBUG" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "URelease"
# PROP BASE Intermediate_Dir "URelease"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "URelease"
# PROP Intermediate_Dir "URelease"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GR /GX /O2 /D "NDEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /Yu"precomp.h" /FD /c
# ADD BASE RSC /l 0x407 /d "NDEBUG"
# ADD RSC /l 0x407 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /machine:I386 /libpath:"Release"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "ibrowser - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "UDebug"
# PROP BASE Intermediate_Dir "UDebug"
# PROP BASE Ignore_Export_Lib 0
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "UDebug"
# PROP Intermediate_Dir "UDebug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "_DEBUG" /D "WIN32" /D "UNICODE" /D "_ROS_" /FR /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GR /GX /ZI /Od /D "_DEBUG" /D "UNICODE" /D "WIN32" /D _WIN32_IE=0x0600 /D _WIN32_WINNT=0x0501 /FR /Yu"precomp.h" /FD /GZ /c
# ADD BASE RSC /l 0x407 /d "_DEBUG"
# ADD RSC /l 0x407 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 user32.lib gdi32.lib advapi32.lib shell32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 gdi32.lib comctl32.lib shell32.lib ole32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept /libpath:"Debug"
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "ibrowser - Win32 Release"
# Name "ibrowser - Win32 Debug"
# Name "ibrowser - Win32 Debug Release"
# Name "ibrowser - Win32 Unicode Release"
# Name "ibrowser - Win32 Unicode Debug"
# Begin Group "utility"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\utility\comutil.h
# End Source File
# Begin Source File
SOURCE=.\utility\utility.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\utility.h
# End Source File
# Begin Source File
SOURCE=.\utility\window.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\window.h
# End Source File
# Begin Source File
SOURCE=.\utility\xmlstorage.cpp
# End Source File
# Begin Source File
SOURCE=.\utility\xmlstorage.h
# End Source File
# Begin Source File
SOURCE=".\utility\xs-native.cpp"
# End Source File
# End Group
# Begin Group "resources"
# PROP Default_Filter "bmp,ico"
# Begin Source File
SOURCE=.\De.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\dot.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot_red.ico
# End Source File
# Begin Source File
SOURCE=.\res\dot_trans.ico
# End Source File
# Begin Source File
SOURCE=.\En.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\Es.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\favorites.ico
# End Source File
# Begin Source File
SOURCE=.\Fr.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\Hu.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\ibrowser.ico
# End Source File
# Begin Source File
SOURCE=.\ibrowser.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\ibrowser_intres.h
# End Source File
# Begin Source File
SOURCE=.\ibrowser_intres.rc
# End Source File
# Begin Source File
SOURCE=.\Ja.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\network.ico
# End Source File
# Begin Source File
SOURCE=.\res\reactos.ico
# End Source File
# Begin Source File
SOURCE=.\Ro.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\Sv.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
SOURCE=.\res\toolbar.bmp
# End Source File
# End Group
# Begin Group "main"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\favorites.cpp
# End Source File
# Begin Source File
SOURCE=.\favorites.h
# End Source File
# Begin Source File
SOURCE=.\ibrowser.cpp
# End Source File
# Begin Source File
SOURCE=.\ibrowser.h
# End Source File
# Begin Source File
SOURCE=.\mainframe.cpp
# End Source File
# Begin Source File
SOURCE=.\mainframe.h
# End Source File
# Begin Source File
SOURCE=.\precomp.cpp
# ADD CPP /Yc"precomp.h"
# End Source File
# Begin Source File
SOURCE=.\precomp.h
# End Source File
# Begin Source File
SOURCE=.\webchild.cpp
# End Source File
# Begin Source File
SOURCE=.\webchild.h
# End Source File
# End Group
# Begin Source File
SOURCE=.\readme.txt
# End Source File
# End Target
# End Project
+41 -41
View File
@@ -1,41 +1,41 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "ibrowser"=.\ibrowser.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "make_ibrowser"=.\make_ibrowser.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "ibrowser"=.\ibrowser.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "make_ibrowser"=.\make_ibrowser.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
+13 -13
View File
@@ -1,13 +1,13 @@
#include <windows.h>
#include "ibrowser_intres.rc"
#define REACTOS_STR_FILE_DESCRIPTION "ROS Internet Web Browser\0"
#define REACTOS_STR_INTERNAL_NAME "ibrowser\0"
#define REACTOS_STR_ORIGINAL_FILENAME "ibrowser.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#define IDS_VERSION_STR 5000
#define IDS_IBROWSER_VERSION_STR 5001
#include <windows.h>
#include "ibrowser_intres.rc"
#define REACTOS_STR_FILE_DESCRIPTION "ROS Internet Web Browser\0"
#define REACTOS_STR_INTERNAL_NAME "ibrowser\0"
#define REACTOS_STR_ORIGINAL_FILENAME "ibrowser.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#define IDS_VERSION_STR 5000
#define IDS_IBROWSER_VERSION_STR 5001
@@ -1,110 +1,110 @@
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Neutral resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
#ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_TOOLBAR BITMAP DISCARDABLE "res/toolbar.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDA_IBROWSER ACCELERATORS DISCARDABLE
BEGIN
120, ID_FILE_EXIT, ASCII, ALT // "X"
115, ID_VIEW_FULLSCREEN, ASCII, SHIFT, CONTROL // "S"
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""En.rc""\r\n"
"#include ""Es.rc""\r\n"
"#include ""Fr.rc""\r\n"
"#include ""Sv.rc""\r\n"
"#include ""Hu.rc""\r\n"
"#include ""Ro.rc""\r\n"
"#include ""Nl.rc""\r\n"
"#include ""No.rc""\r\n"
"#include ""Ja.rc""\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_REACTOS ICON DISCARDABLE "res/reactos.ico"
IDI_FAVORITES ICON DISCARDABLE "res/favorites.ico"
IDI_DOT ICON DISCARDABLE "res/dot.ico"
IDI_DOT_TRANS ICON DISCARDABLE "res/dot_trans.ico"
IDI_DOT_RED ICON DISCARDABLE "res/dot_red.ico"
IDI_IBROWSER ICON DISCARDABLE "res/ibrowser.ico"
#endif // Neutral resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "En.rc"
#include "Es.rc"
#include "Fr.rc"
#include "Sv.rc"
#include "Hu.rc"
#include "Ro.rc"
#include "Nl.rc"
#include "Ja.rc"
#include "No.rc"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "ibrowser_intres.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include <windows.h>
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// Neutral resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
#ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_TOOLBAR BITMAP DISCARDABLE "res/toolbar.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//
IDA_IBROWSER ACCELERATORS DISCARDABLE
BEGIN
120, ID_FILE_EXIT, ASCII, ALT // "X"
115, ID_VIEW_FULLSCREEN, ASCII, SHIFT, CONTROL // "S"
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"ibrowser_intres.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include <windows.h>\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""En.rc""\r\n"
"#include ""Es.rc""\r\n"
"#include ""Fr.rc""\r\n"
"#include ""Sv.rc""\r\n"
"#include ""Hu.rc""\r\n"
"#include ""Ro.rc""\r\n"
"#include ""Nl.rc""\r\n"
"#include ""No.rc""\r\n"
"#include ""Ja.rc""\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_REACTOS ICON DISCARDABLE "res/reactos.ico"
IDI_FAVORITES ICON DISCARDABLE "res/favorites.ico"
IDI_DOT ICON DISCARDABLE "res/dot.ico"
IDI_DOT_TRANS ICON DISCARDABLE "res/dot_trans.ico"
IDI_DOT_RED ICON DISCARDABLE "res/dot_red.ico"
IDI_IBROWSER ICON DISCARDABLE "res/ibrowser.ico"
#endif // Neutral resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "En.rc"
#include "Es.rc"
#include "Fr.rc"
#include "Sv.rc"
#include "Hu.rc"
#include "Ro.rc"
#include "Nl.rc"
#include "Ja.rc"
#include "No.rc"
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -1,147 +1,147 @@
# Microsoft Developer Studio Project File - Name="make_ibrowser" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) External Target" 0x0106
CFG=make_ibrowser - Win32 Release
!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 "make_ibrowser.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 "make_ibrowser.mak" CFG="make_ibrowser - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "make_ibrowser - Win32 Release" (based on "Win32 (x86) External Target")
!MESSAGE "make_ibrowser - Win32 Debug" (based on "Win32 (x86) External Target")
!MESSAGE "make_ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) External Target")
!MESSAGE "make_ibrowser - Win32 Unicode Release" (based on "Win32 (x86) External Target")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
!IF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak"
# PROP BASE Rebuild_Opt "/a"
# PROP BASE Target_File "make_ibrowser.exe"
# PROP BASE Bsc_Name "make_ibrowser.bsc"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak"
# PROP BASE Rebuild_Opt "/a"
# PROP BASE Target_File "make_ibrowser.exe"
# PROP BASE Bsc_Name "make_ibrowser.bsc"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0 DEBUG=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=0 DEBUG=1"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "UDebug"
# PROP BASE Intermediate_Dir "UDebug"
# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1 DEBUG=1"
# PROP BASE Rebuild_Opt "clean all"
# PROP BASE Target_File "ibrowser.exe"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "UDebug"
# PROP Intermediate_Dir "UDebug"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile.MinGW UNICODE=1 DEBUG=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "URelease"
# PROP BASE Intermediate_Dir "URelease"
# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1"
# PROP BASE Rebuild_Opt "clean all"
# PROP BASE Target_File "ibrowser.exe"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "URelease"
# PROP Intermediate_Dir "URelease"
# PROP Cmd_Line "msdevfilt -gcc mingw32-make -f Makefile-precomp UNICODE=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "make_ibrowser - Win32 Release"
# Name "make_ibrowser - Win32 Debug"
# Name "make_ibrowser - Win32 Unicode Debug"
# Name "make_ibrowser - Win32 Unicode Release"
!IF "$(CFG)" == "make_ibrowser - Win32 Release"
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Debug"
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug"
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release"
!ENDIF
# Begin Source File
SOURCE=.\ibrowser.rbuild
# End Source File
# Begin Source File
SOURCE=".\Makefile-MinGW"
# End Source File
# Begin Source File
SOURCE=".\Makefile-precomp"
# End Source File
# End Target
# End Project
# Microsoft Developer Studio Project File - Name="make_ibrowser" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) External Target" 0x0106
CFG=make_ibrowser - Win32 Release
!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 "make_ibrowser.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 "make_ibrowser.mak" CFG="make_ibrowser - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "make_ibrowser - Win32 Release" (based on "Win32 (x86) External Target")
!MESSAGE "make_ibrowser - Win32 Debug" (based on "Win32 (x86) External Target")
!MESSAGE "make_ibrowser - Win32 Unicode Debug" (based on "Win32 (x86) External Target")
!MESSAGE "make_ibrowser - Win32 Unicode Release" (based on "Win32 (x86) External Target")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
!IF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak"
# PROP BASE Rebuild_Opt "/a"
# PROP BASE Target_File "make_ibrowser.exe"
# PROP BASE Bsc_Name "make_ibrowser.bsc"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_ibrowser - 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 Cmd_Line "NMAKE /f make_ibrowser.mak"
# PROP BASE Rebuild_Opt "/a"
# PROP BASE Target_File "make_ibrowser.exe"
# PROP BASE Bsc_Name "make_ibrowser.bsc"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile-precomp UNICODE=0 DEBUG=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=0 DEBUG=1"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "UDebug"
# PROP BASE Intermediate_Dir "UDebug"
# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1 DEBUG=1"
# PROP BASE Rebuild_Opt "clean all"
# PROP BASE Target_File "ibrowser.exe"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "UDebug"
# PROP Intermediate_Dir "UDebug"
# PROP Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" mingw32-make -f Makefile.MinGW UNICODE=1 DEBUG=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "URelease"
# PROP BASE Intermediate_Dir "URelease"
# PROP BASE Cmd_Line "msdevfilt -gcc -pipe "perl d:\tools\gSTLFilt.pl" make -f Makefile.MinGW UNICODE=1"
# PROP BASE Rebuild_Opt "clean all"
# PROP BASE Target_File "ibrowser.exe"
# PROP BASE Bsc_Name ""
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "URelease"
# PROP Intermediate_Dir "URelease"
# PROP Cmd_Line "msdevfilt -gcc mingw32-make -f Makefile-precomp UNICODE=1"
# PROP Rebuild_Opt "clean all"
# PROP Target_File "ibrowser.exe"
# PROP Bsc_Name ""
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "make_ibrowser - Win32 Release"
# Name "make_ibrowser - Win32 Debug"
# Name "make_ibrowser - Win32 Unicode Debug"
# Name "make_ibrowser - Win32 Unicode Release"
!IF "$(CFG)" == "make_ibrowser - Win32 Release"
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Debug"
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Debug"
!ELSEIF "$(CFG)" == "make_ibrowser - Win32 Unicode Release"
!ENDIF
# Begin Source File
SOURCE=.\ibrowser.rbuild
# End Source File
# Begin Source File
SOURCE=".\Makefile-MinGW"
# End Source File
# Begin Source File
SOURCE=".\Makefile-precomp"
# End Source File
# End Target
# End Project
@@ -1,9 +1,9 @@
IBrowser is a Web Browser User Interface similar derived from ROS Explorer.
It encapsulates the Mozilla or MS Web Browser Control.
For more information about ReactOS Explorer please look at the FAQ web page:
http://www.sky.franken.de/explorer/
IBrowser is a Web Browser User Interface similar derived from ROS Explorer.
It encapsulates the Mozilla or MS Web Browser Control.
For more information about ReactOS Explorer please look at the FAQ web page:
http://www.sky.franken.de/explorer/
+54 -54
View File
@@ -1,54 +1,54 @@
#include <precomp.h>
INT_PTR CALLBACK
AboutDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HWND hLicenseEditWnd;
HICON hIcon = NULL;
TCHAR strLicense[700];
switch (message)
{
case WM_INITDIALOG:
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_IMAGESOFTICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hLicenseEditWnd = GetDlgItem(hDlg,
IDC_LICENSE_EDIT);
LoadString(hInstance,
IDS_LICENSE,
strLicense,
sizeof(strLicense) / sizeof(TCHAR));
SetWindowText(hLicenseEditWnd,
strLicense);
return TRUE;
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
#include <precomp.h>
INT_PTR CALLBACK
AboutDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HWND hLicenseEditWnd;
HICON hIcon = NULL;
TCHAR strLicense[700];
switch (message)
{
case WM_INITDIALOG:
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_IMAGESOFTICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hLicenseEditWnd = GetDlgItem(hDlg,
IDC_LICENSE_EDIT);
LoadString(hInstance,
IDS_LICENSE,
strLicense,
sizeof(strLicense) / sizeof(TCHAR));
SetWindowText(hLicenseEditWnd,
strLicense);
return TRUE;
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
File diff suppressed because it is too large Load Diff
+261 -261
View File
@@ -1,261 +1,261 @@
#include <precomp.h>
static HWND hImageType, hUnitType, hHeightUnit, hWidthUnit, hResUnit;
UINT ConvertValue(HWND hDlg, UINT EdBoxChanged, UINT LastUnitSel)
{
LONG Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE);
FLOAT Width = (FLOAT)GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE);
FLOAT Height = (FLOAT)GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE);
USHORT CurUnit = (USHORT)SendMessage(hUnitType, CB_GETCURSEL, 0, 0);
/* if the user typed in the resolution box */
if ((EdBoxChanged == IDC_RES_EDIT) && (CurUnit != PIXELS))
{
Width = Width / Resolution * 100;
Height = Height / Resolution * 100;
/* something wrong with these */
SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, TRUE);
SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE);
return LastUnitSel;
}
/* if the user changed the unit combobox */
if (EdBoxChanged == IDC_UNIT)
{
switch(LastUnitSel)
{
case PIXELS:
if (CurUnit == CENTIMETERS)
;
else if (CurUnit == INCHES)
;
break;
case CENTIMETERS:
if (CurUnit == PIXELS)
;
else if (CurUnit == INCHES)
{
Width /= 2.54;
Height /= 2.54;
Resolution *= 2.54;
SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE);
SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE);
SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE);
}
break;
case INCHES:
if (CurUnit == PIXELS)
;
else if (CurUnit == CENTIMETERS)
{
Width *= 2.54;
Height *= 2.54;
Resolution /= 2.54;
SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE);
SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE);
SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE);
}
break;
}
}
return CurUnit;
}
VOID SetImageSize(HWND hDlg)
{
DWORD Size;
USHORT Type = 0;
TCHAR buf[20];
TCHAR SizeUnit[25];
FLOAT Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE);
FLOAT Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE);
USHORT sel = SendMessage(hImageType, CB_GETCURSEL, 0, 0);
if (sel == 0)
Type = MONOCHROMEBITS;
else if (sel == 1)
Type = GREYSCALEBITS;
else if (sel == 2)
Type = PALLETEBITS;
else if (sel == 3)
Type = TRUECOLORBITS;
Size = ((Width * Height * Type) / 8) / 1024;
if (Size > 1000)
{
Size /= 1024;
LoadString(hInstance, IDS_UNIT_MB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR));
}
else
LoadString(hInstance, IDS_UNIT_KB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR));
_sntprintf(buf, sizeof(buf) / sizeof(TCHAR), SizeUnit, Size);
SendDlgItemMessage(hDlg, IDC_IMAGE_SIZE, WM_SETTEXT, 0, (LPARAM)buf);
}
INT_PTR CALLBACK
ImagePropDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
static PIMAGE_PROP ImageProp = NULL;
static UINT LastUnitSel;
TCHAR buf[35];
switch (message)
{
case WM_INITDIALOG:
ImageProp = (PIMAGE_PROP)lParam;
/* get handles to the windows */
hImageType = GetDlgItem(hDlg, IDC_IMAGETYPE);
hUnitType = GetDlgItem(hDlg, IDC_UNIT);
hWidthUnit = GetDlgItem(hDlg, IDC_WIDTH_STAT);
hHeightUnit = GetDlgItem(hDlg, IDC_HEIGHT_STAT);
hResUnit = GetDlgItem(hDlg, IDC_RES_STAT);
/* fill image type combo box */
LoadString(hInstance, IDS_IMAGE_MONOCHROME, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_IMAGE_GREYSCALE, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_IMAGE_PALETTE, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_IMAGE_TRUECOLOR, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
/* default 24bit */
SendMessage(hImageType, CB_SETCURSEL, 3, 0);
/* fill unit combo box */
LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);
/* default pixels */
SendMessage(hUnitType, CB_SETCURSEL, 0, 0);
/* default pixels */
LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
LastUnitSel = PIXELS;
/* temperary. Default vals should be loaded from registry */
SendDlgItemMessage(hDlg, IDC_WIDTH_EDIT, WM_SETTEXT, 0, (LPARAM)_T("400"));
SendDlgItemMessage(hDlg, IDC_HEIGHT_EDIT, WM_SETTEXT, 0, (LPARAM)_T("300"));
SendDlgItemMessage(hDlg, IDC_RES_EDIT, WM_SETTEXT, 0, (LPARAM)_T("50"));
SetImageSize(hDlg);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
{
/* FIXME: default vals should be taken from registry */
INT Ret = GetTextFromEdit(ImageProp->lpImageName, hDlg, IDC_IMAGE_NAME_EDIT);
if (Ret == 0)
ImageProp->lpImageName = NULL;
ImageProp->Type = SendMessage(hImageType, CB_GETCURSEL, 0, 0);
ImageProp->Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE);
ImageProp->Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE);
ImageProp->Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE);
ImageProp->Unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0);
EndDialog(hDlg, 1);
}
break;
case IDCANCEL:
ImageProp = NULL;
EndDialog(hDlg, 0);
break;
case IDC_UNIT:
if (HIWORD(wParam) == CBN_SELCHANGE)
{
INT unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0);
LastUnitSel = ConvertValue(hDlg, IDC_UNIT, LastUnitSel);
switch (unit)
{
case 0: /* pixels */
{
LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
}
break;
case 1:
/* cm */
LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DOTSCM, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
break;
case 2:
/* inch */
LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
break;
}
}
break;
case IDC_IMAGETYPE:
if (HIWORD(wParam) == CBN_SELCHANGE)
SetImageSize(hDlg);
break;
case IDC_WIDTH_EDIT:
case IDC_HEIGHT_EDIT:
if (HIWORD(wParam) == EN_UPDATE)
SetImageSize(hDlg);
break;
case IDC_RES_EDIT:
if (HIWORD(wParam) == EN_UPDATE)
ConvertValue(hDlg, IDC_RES_EDIT, LastUnitSel);
break;
}
break;
default:
return FALSE;
}
return TRUE;
}
#include <precomp.h>
static HWND hImageType, hUnitType, hHeightUnit, hWidthUnit, hResUnit;
UINT ConvertValue(HWND hDlg, UINT EdBoxChanged, UINT LastUnitSel)
{
LONG Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE);
FLOAT Width = (FLOAT)GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE);
FLOAT Height = (FLOAT)GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE);
USHORT CurUnit = (USHORT)SendMessage(hUnitType, CB_GETCURSEL, 0, 0);
/* if the user typed in the resolution box */
if ((EdBoxChanged == IDC_RES_EDIT) && (CurUnit != PIXELS))
{
Width = Width / Resolution * 100;
Height = Height / Resolution * 100;
/* something wrong with these */
SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, TRUE);
SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE);
return LastUnitSel;
}
/* if the user changed the unit combobox */
if (EdBoxChanged == IDC_UNIT)
{
switch(LastUnitSel)
{
case PIXELS:
if (CurUnit == CENTIMETERS)
;
else if (CurUnit == INCHES)
;
break;
case CENTIMETERS:
if (CurUnit == PIXELS)
;
else if (CurUnit == INCHES)
{
Width /= 2.54;
Height /= 2.54;
Resolution *= 2.54;
SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE);
SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE);
SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE);
}
break;
case INCHES:
if (CurUnit == PIXELS)
;
else if (CurUnit == CENTIMETERS)
{
Width *= 2.54;
Height *= 2.54;
Resolution /= 2.54;
SetDlgItemInt(hDlg, IDC_WIDTH_EDIT, Width, FALSE);
SetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, Height, FALSE);
SetDlgItemInt(hDlg, IDC_RES_EDIT, Resolution, FALSE);
}
break;
}
}
return CurUnit;
}
VOID SetImageSize(HWND hDlg)
{
DWORD Size;
USHORT Type = 0;
TCHAR buf[20];
TCHAR SizeUnit[25];
FLOAT Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE);
FLOAT Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE);
USHORT sel = SendMessage(hImageType, CB_GETCURSEL, 0, 0);
if (sel == 0)
Type = MONOCHROMEBITS;
else if (sel == 1)
Type = GREYSCALEBITS;
else if (sel == 2)
Type = PALLETEBITS;
else if (sel == 3)
Type = TRUECOLORBITS;
Size = ((Width * Height * Type) / 8) / 1024;
if (Size > 1000)
{
Size /= 1024;
LoadString(hInstance, IDS_UNIT_MB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR));
}
else
LoadString(hInstance, IDS_UNIT_KB, SizeUnit, sizeof(SizeUnit) / sizeof(TCHAR));
_sntprintf(buf, sizeof(buf) / sizeof(TCHAR), SizeUnit, Size);
SendDlgItemMessage(hDlg, IDC_IMAGE_SIZE, WM_SETTEXT, 0, (LPARAM)buf);
}
INT_PTR CALLBACK
ImagePropDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
static PIMAGE_PROP ImageProp = NULL;
static UINT LastUnitSel;
TCHAR buf[35];
switch (message)
{
case WM_INITDIALOG:
ImageProp = (PIMAGE_PROP)lParam;
/* get handles to the windows */
hImageType = GetDlgItem(hDlg, IDC_IMAGETYPE);
hUnitType = GetDlgItem(hDlg, IDC_UNIT);
hWidthUnit = GetDlgItem(hDlg, IDC_WIDTH_STAT);
hHeightUnit = GetDlgItem(hDlg, IDC_HEIGHT_STAT);
hResUnit = GetDlgItem(hDlg, IDC_RES_STAT);
/* fill image type combo box */
LoadString(hInstance, IDS_IMAGE_MONOCHROME, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_IMAGE_GREYSCALE, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_IMAGE_PALETTE, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_IMAGE_TRUECOLOR, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);
/* default 24bit */
SendMessage(hImageType, CB_SETCURSEL, 3, 0);
/* fill unit combo box */
LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);
/* default pixels */
SendMessage(hUnitType, CB_SETCURSEL, 0, 0);
/* default pixels */
LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
LastUnitSel = PIXELS;
/* temperary. Default vals should be loaded from registry */
SendDlgItemMessage(hDlg, IDC_WIDTH_EDIT, WM_SETTEXT, 0, (LPARAM)_T("400"));
SendDlgItemMessage(hDlg, IDC_HEIGHT_EDIT, WM_SETTEXT, 0, (LPARAM)_T("300"));
SendDlgItemMessage(hDlg, IDC_RES_EDIT, WM_SETTEXT, 0, (LPARAM)_T("50"));
SetImageSize(hDlg);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
{
/* FIXME: default vals should be taken from registry */
INT Ret = GetTextFromEdit(ImageProp->lpImageName, hDlg, IDC_IMAGE_NAME_EDIT);
if (Ret == 0)
ImageProp->lpImageName = NULL;
ImageProp->Type = SendMessage(hImageType, CB_GETCURSEL, 0, 0);
ImageProp->Resolution = GetDlgItemInt(hDlg, IDC_RES_EDIT, NULL, FALSE);
ImageProp->Width = GetDlgItemInt(hDlg, IDC_WIDTH_EDIT, NULL, FALSE);
ImageProp->Height = GetDlgItemInt(hDlg, IDC_HEIGHT_EDIT, NULL, FALSE);
ImageProp->Unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0);
EndDialog(hDlg, 1);
}
break;
case IDCANCEL:
ImageProp = NULL;
EndDialog(hDlg, 0);
break;
case IDC_UNIT:
if (HIWORD(wParam) == CBN_SELCHANGE)
{
INT unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0);
LastUnitSel = ConvertValue(hDlg, IDC_UNIT, LastUnitSel);
switch (unit)
{
case 0: /* pixels */
{
LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
}
break;
case 1:
/* cm */
LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DOTSCM, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
break;
case 2:
/* inch */
LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);
SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);
LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);
break;
}
}
break;
case IDC_IMAGETYPE:
if (HIWORD(wParam) == CBN_SELCHANGE)
SetImageSize(hDlg);
break;
case IDC_WIDTH_EDIT:
case IDC_HEIGHT_EDIT:
if (HIWORD(wParam) == EN_UPDATE)
SetImageSize(hDlg);
break;
case IDC_RES_EDIT:
if (HIWORD(wParam) == EN_UPDATE)
ConvertValue(hDlg, IDC_RES_EDIT, LastUnitSel);
break;
}
break;
default:
return FALSE;
}
return TRUE;
}
+103 -103
View File
@@ -1,103 +1,103 @@
#include <precomp.h>
HINSTANCE hInstance;
HANDLE ProcessHeap;
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
int WINAPI
WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
LPTSTR lpAppName, lpVersion, lpTitle;
HWND hMainWnd;
MSG Msg;
BOOL bRet;
int Ret = 1, len;
INITCOMMONCONTROLSEX icex;
hInstance = hThisInstance;
ProcessHeap = GetProcessHeap();
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
InitCommonControlsEx(&icex);
if (!AllocAndLoadString(&lpAppName, hInstance, IDS_APPNAME) ||
!AllocAndLoadString(&lpVersion, hInstance, IDS_VERSION) )
{
return Ret;
}
len = (int)_tcslen(lpAppName) + (int)_tcslen(lpVersion);
lpTitle = HeapAlloc(ProcessHeap,
0,
(len + 2) * sizeof(TCHAR));
if (lpTitle == NULL)
{
LocalFree((HLOCAL)lpAppName);
LocalFree((HLOCAL)lpVersion);
return Ret;
}
wsprintf(lpTitle,
_T("%s %s"),
lpAppName,
lpVersion);
LocalFree((HLOCAL)lpAppName);
LocalFree((HLOCAL)lpVersion);
if (TbdInitImpl())
{
if (InitMainWindowImpl())
{
if (InitImageEditWindowImpl())
{
if (InitFloatWndClass())
{
hMainWnd = CreateMainWindow(lpTitle,
nCmdShow);
if (hMainWnd != NULL)
{
/* pump the message queue */
while((bRet = GetMessage(&Msg,
NULL,
0,
0) != 0))
{
if (bRet != (BOOL)-1)
{
if (!MainWndTranslateMDISysAccel(hMainWnd,
&Msg))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
}
Ret = 0;
}
UninitImageEditWindowImpl();
}
UninitFloatWndImpl();
}
UninitMainWindowImpl();
}
TbdUninitImpl();
}
HeapFree(GetProcessHeap(),
0,
lpTitle);
return Ret;
}
#include <precomp.h>
HINSTANCE hInstance;
HANDLE ProcessHeap;
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
int WINAPI
WinMain(HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
LPTSTR lpAppName, lpVersion, lpTitle;
HWND hMainWnd;
MSG Msg;
BOOL bRet;
int Ret = 1, len;
INITCOMMONCONTROLSEX icex;
hInstance = hThisInstance;
ProcessHeap = GetProcessHeap();
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_BAR_CLASSES | ICC_COOL_CLASSES;
InitCommonControlsEx(&icex);
if (!AllocAndLoadString(&lpAppName, hInstance, IDS_APPNAME) ||
!AllocAndLoadString(&lpVersion, hInstance, IDS_VERSION) )
{
return Ret;
}
len = (int)_tcslen(lpAppName) + (int)_tcslen(lpVersion);
lpTitle = HeapAlloc(ProcessHeap,
0,
(len + 2) * sizeof(TCHAR));
if (lpTitle == NULL)
{
LocalFree((HLOCAL)lpAppName);
LocalFree((HLOCAL)lpVersion);
return Ret;
}
wsprintf(lpTitle,
_T("%s %s"),
lpAppName,
lpVersion);
LocalFree((HLOCAL)lpAppName);
LocalFree((HLOCAL)lpVersion);
if (TbdInitImpl())
{
if (InitMainWindowImpl())
{
if (InitImageEditWindowImpl())
{
if (InitFloatWndClass())
{
hMainWnd = CreateMainWindow(lpTitle,
nCmdShow);
if (hMainWnd != NULL)
{
/* pump the message queue */
while((bRet = GetMessage(&Msg,
NULL,
0,
0) != 0))
{
if (bRet != (BOOL)-1)
{
if (!MainWndTranslateMDISysAccel(hMainWnd,
&Msg))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
}
Ret = 0;
}
UninitImageEditWindowImpl();
}
UninitFloatWndImpl();
}
UninitMainWindowImpl();
}
TbdUninitImpl();
}
HeapFree(GetProcessHeap(),
0,
lpTitle);
return Ret;
}
@@ -1,76 +1,76 @@
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS image editor\0"
#define REACTOS_STR_INTERNAL_NAME "imagesoft\0"
#define REACTOS_STR_ORIGINAL_FILENAME "imagesoft.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
1 24 DISCARDABLE "manifest.xml"
IDI_IMAGESOFTICON ICON "res/imagesoft.ico"
/* main toolbar icons */
IDB_MAINCOPYICON BITMAP DISCARDABLE "res/icons/std/MainCopyIcon.bmp"
IDB_MAINCUTICON BITMAP DISCARDABLE "res/icons/std/MainCutIcon.bmp"
IDB_MAINPASTEICON BITMAP DISCARDABLE "res/icons/std/MainPasteIcon.bmp"
IDB_MAINREDOICON BITMAP DISCARDABLE "res/icons/std/MainRedoIcon.bmp"
IDB_MAINUNDOICON BITMAP DISCARDABLE "res/icons/std/MainUndoIcon.bmp"
IDB_MAINNEWICON BITMAP DISCARDABLE "res/icons/std/MainNewIcon.bmp"
IDB_MAINOPENICON BITMAP DISCARDABLE "res/icons/std/MainOpenIcon.bmp"
IDB_MAINPRINTICON BITMAP DISCARDABLE "res/icons/std/MainPrintIcon.bmp"
IDB_MAINPRINTPREICON BITMAP DISCARDABLE "res/icons/std/MainPrintPreIcon.bmp"
IDB_MAINSAVEICON BITMAP DISCARDABLE "res/icons/std/MainSaveIcon.bmp"
/* text toolbar icons */
IDB_TEXTBOLD BITMAP DISCARDABLE "res/icons/text/TextBoldIcon.bmp"
IDB_TEXTITALIC BITMAP DISCARDABLE "res/icons/text/TextItalicIcon.bmp"
IDB_TEXTULINE BITMAP DISCARDABLE "res/icons/text/TextUnderlineIcon.bmp"
IDB_TEXTLEFT BITMAP DISCARDABLE "res/icons/text/TextAlignLeftIcon.bmp"
IDB_TEXTCENTER BITMAP DISCARDABLE "res/icons/text/TextAlignCenterIcon.bmp"
IDB_TEXTRIGHT BITMAP DISCARDABLE "res/icons/text/TextAlignRightIcon.bmp"
/* tools window icons */
IDB_TOOLSCLONESTAMP BITMAP DISCARDABLE "res/icons/tools/ToolsCloneStamp.bmp"
IDB_TOOLSCOLORPICKER BITMAP DISCARDABLE "res/icons/tools/ToolsColorPicker.bmp"
IDB_TOOLSECLIPSE BITMAP DISCARDABLE "res/icons/tools/ToolsEllipse.bmp"
IDB_TOOLSECLIPSESEL BITMAP DISCARDABLE "res/icons/tools/ToolsEllipseSelect.bmp"
IDB_TOOLSERASER BITMAP DISCARDABLE "res/icons/tools/ToolsEraser.bmp"
IDB_TOOLSFREEFORM BITMAP DISCARDABLE "res/icons/tools/ToolsFreeformShape.bmp"
IDB_TOOLSLASOO BITMAP DISCARDABLE "res/icons/tools/ToolsLassoSelect.bmp"
IDB_TOOLSLINE BITMAP DISCARDABLE "res/icons/tools/ToolsLine.bmp"
IDB_TOOLSMAGICWAND BITMAP DISCARDABLE "res/icons/tools/ToolsMagicWand.bmp"
IDB_TOOLSMOVE BITMAP DISCARDABLE "res/icons/tools/ToolsMove.bmp"
IDB_TOOLSMOVESEL BITMAP DISCARDABLE "res/icons/tools/ToolsMoveSelection.bmp"
IDB_TOOLSPAINTBRUSH BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBrush.bmp"
IDB_TOOLSPAINTBUCKET BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBucket.bmp"
IDB_TOOLSPENCIL BITMAP DISCARDABLE "res/icons/tools/ToolsPencil.bmp"
IDB_TOOLSRECOLORING BITMAP DISCARDABLE "res/icons/tools/ToolsRecoloring.bmp"
IDB_TOOLSRECTANGLE BITMAP DISCARDABLE "res/icons/tools/ToolsRectangle.bmp"
IDB_TOOLSRECTSEL BITMAP DISCARDABLE "res/icons/tools/ToolsRectangleSelect.bmp"
IDB_TOOLSROUNDRECT BITMAP DISCARDABLE "res/icons/tools/ToolsRoundedRectangle.bmp"
IDB_TOOLSTEXT BITMAP DISCARDABLE "res/icons/tools/ToolsText.bmp"
IDB_TOOLSZOOM BITMAP DISCARDABLE "res/icons/tools/ToolsZoom.bmp"
/* history window icons */
IDB_HISTBACK BITMAP DISCARDABLE "res/icons/hist/HistBack.bmp"
IDB_HISTUNDO BITMAP DISCARDABLE "res/icons/hist/HistUndo.bmp"
IDB_HISTREDO BITMAP DISCARDABLE "res/icons/hist/HistRedo.bmp"
IDB_HISTFORWARD BITMAP DISCARDABLE "res/icons/hist/HistForward.bmp"
IDB_HISTDELETE BITMAP DISCARDABLE "res/icons/hist/HistDelete.bmp"
/* colors window icons */
IDB_COLORSMORE BITMAP DISCARDABLE "res/icons/color/ColorMore.bmp"
IDB_COLORSLESS BITMAP DISCARDABLE "res/icons/color/ColorLess.bmp"
/* cursors */
IDC_PAINTBRUSHCURSOR CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursor.cur"
IDC_PAINTBRUSHCURSORMOUSEDOWN CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursorMouseDown.cur"
#include "rsrc.rc"
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS image editor\0"
#define REACTOS_STR_INTERNAL_NAME "imagesoft\0"
#define REACTOS_STR_ORIGINAL_FILENAME "imagesoft.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
1 24 DISCARDABLE "manifest.xml"
IDI_IMAGESOFTICON ICON "res/imagesoft.ico"
/* main toolbar icons */
IDB_MAINCOPYICON BITMAP DISCARDABLE "res/icons/std/MainCopyIcon.bmp"
IDB_MAINCUTICON BITMAP DISCARDABLE "res/icons/std/MainCutIcon.bmp"
IDB_MAINPASTEICON BITMAP DISCARDABLE "res/icons/std/MainPasteIcon.bmp"
IDB_MAINREDOICON BITMAP DISCARDABLE "res/icons/std/MainRedoIcon.bmp"
IDB_MAINUNDOICON BITMAP DISCARDABLE "res/icons/std/MainUndoIcon.bmp"
IDB_MAINNEWICON BITMAP DISCARDABLE "res/icons/std/MainNewIcon.bmp"
IDB_MAINOPENICON BITMAP DISCARDABLE "res/icons/std/MainOpenIcon.bmp"
IDB_MAINPRINTICON BITMAP DISCARDABLE "res/icons/std/MainPrintIcon.bmp"
IDB_MAINPRINTPREICON BITMAP DISCARDABLE "res/icons/std/MainPrintPreIcon.bmp"
IDB_MAINSAVEICON BITMAP DISCARDABLE "res/icons/std/MainSaveIcon.bmp"
/* text toolbar icons */
IDB_TEXTBOLD BITMAP DISCARDABLE "res/icons/text/TextBoldIcon.bmp"
IDB_TEXTITALIC BITMAP DISCARDABLE "res/icons/text/TextItalicIcon.bmp"
IDB_TEXTULINE BITMAP DISCARDABLE "res/icons/text/TextUnderlineIcon.bmp"
IDB_TEXTLEFT BITMAP DISCARDABLE "res/icons/text/TextAlignLeftIcon.bmp"
IDB_TEXTCENTER BITMAP DISCARDABLE "res/icons/text/TextAlignCenterIcon.bmp"
IDB_TEXTRIGHT BITMAP DISCARDABLE "res/icons/text/TextAlignRightIcon.bmp"
/* tools window icons */
IDB_TOOLSCLONESTAMP BITMAP DISCARDABLE "res/icons/tools/ToolsCloneStamp.bmp"
IDB_TOOLSCOLORPICKER BITMAP DISCARDABLE "res/icons/tools/ToolsColorPicker.bmp"
IDB_TOOLSECLIPSE BITMAP DISCARDABLE "res/icons/tools/ToolsEllipse.bmp"
IDB_TOOLSECLIPSESEL BITMAP DISCARDABLE "res/icons/tools/ToolsEllipseSelect.bmp"
IDB_TOOLSERASER BITMAP DISCARDABLE "res/icons/tools/ToolsEraser.bmp"
IDB_TOOLSFREEFORM BITMAP DISCARDABLE "res/icons/tools/ToolsFreeformShape.bmp"
IDB_TOOLSLASOO BITMAP DISCARDABLE "res/icons/tools/ToolsLassoSelect.bmp"
IDB_TOOLSLINE BITMAP DISCARDABLE "res/icons/tools/ToolsLine.bmp"
IDB_TOOLSMAGICWAND BITMAP DISCARDABLE "res/icons/tools/ToolsMagicWand.bmp"
IDB_TOOLSMOVE BITMAP DISCARDABLE "res/icons/tools/ToolsMove.bmp"
IDB_TOOLSMOVESEL BITMAP DISCARDABLE "res/icons/tools/ToolsMoveSelection.bmp"
IDB_TOOLSPAINTBRUSH BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBrush.bmp"
IDB_TOOLSPAINTBUCKET BITMAP DISCARDABLE "res/icons/tools/ToolsPaintBucket.bmp"
IDB_TOOLSPENCIL BITMAP DISCARDABLE "res/icons/tools/ToolsPencil.bmp"
IDB_TOOLSRECOLORING BITMAP DISCARDABLE "res/icons/tools/ToolsRecoloring.bmp"
IDB_TOOLSRECTANGLE BITMAP DISCARDABLE "res/icons/tools/ToolsRectangle.bmp"
IDB_TOOLSRECTSEL BITMAP DISCARDABLE "res/icons/tools/ToolsRectangleSelect.bmp"
IDB_TOOLSROUNDRECT BITMAP DISCARDABLE "res/icons/tools/ToolsRoundedRectangle.bmp"
IDB_TOOLSTEXT BITMAP DISCARDABLE "res/icons/tools/ToolsText.bmp"
IDB_TOOLSZOOM BITMAP DISCARDABLE "res/icons/tools/ToolsZoom.bmp"
/* history window icons */
IDB_HISTBACK BITMAP DISCARDABLE "res/icons/hist/HistBack.bmp"
IDB_HISTUNDO BITMAP DISCARDABLE "res/icons/hist/HistUndo.bmp"
IDB_HISTREDO BITMAP DISCARDABLE "res/icons/hist/HistRedo.bmp"
IDB_HISTFORWARD BITMAP DISCARDABLE "res/icons/hist/HistForward.bmp"
IDB_HISTDELETE BITMAP DISCARDABLE "res/icons/hist/HistDelete.bmp"
/* colors window icons */
IDB_COLORSMORE BITMAP DISCARDABLE "res/icons/color/ColorMore.bmp"
IDB_COLORSLESS BITMAP DISCARDABLE "res/icons/color/ColorLess.bmp"
/* cursors */
IDC_PAINTBRUSHCURSOR CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursor.cur"
IDC_PAINTBRUSHCURSORMOUSEDOWN CURSOR DISCARDABLE "res/cursors/PaintBrushToolCursorMouseDown.cur"
#include "rsrc.rc"
File diff suppressed because it is too large Load Diff
+206 -206
View File
@@ -1,206 +1,206 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
BEGIN
IDS_APPNAME "ImageSoft"
IDS_VERSION "v0.1"
END
IDR_MAINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&New...", ID_NEW
MENUITEM "&Open...", ID_OPEN
MENUITEM SEPARATOR
MENUITEM "&Close\tCtrl+F4", ID_CLOSE, GRAYED
MENUITEM "C&lose all", ID_CLOSEALL, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Save", ID_SAVE, GRAYED
MENUITEM "Save &As...", ID_SAVEAS, GRAYED
MENUITEM SEPARATOR
MENUITEM "Print Pre&view", ID_PRINTPRE, GRAYED
MENUITEM "&Print...", ID_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Pr&operties...", ID_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", ID_EXIT
END
POPUP "&Edit"
BEGIN
MENUITEM "&Undo", ID_UNDO, GRAYED
MENUITEM "&Redo", ID_REDO, GRAYED
MENUITEM SEPARATOR
MENUITEM "Cu&t", ID_CUT, GRAYED
MENUITEM "&Copy", ID_COPY, GRAYED
MENUITEM "&Paste", ID_PASTE, GRAYED
MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Select &All", ID_SELALL, GRAYED
END
POPUP "&View"
BEGIN
MENUITEM "&Tools", ID_TOOLS
MENUITEM "&Colors", ID_COLOR
MENUITEM "&History", ID_HISTORY
MENUITEM "&Status Bar", ID_STATUSBAR
END
POPUP "&Image"
BEGIN
MENUITEM "&Crop...", -1, GRAYED
MENUITEM "&Resize...", -1, GRAYED
MENUITEM "R&otate...", -1, GRAYED
MENUITEM "&Flip...", -1, GRAYED
MENUITEM "&Stretch...", -1, GRAYED
MENUITEM "S&kew...", -1, GRAYED
MENUITEM "&Invert Colors", -1, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Attributes...", -1, GRAYED
END
POPUP "&Colors"
BEGIN
MENUITEM "&Edit Colors...", ID_EDITCOLOURS
END
POPUP "&Window"
BEGIN
MENUITEM "&Cascade", ID_WINDOW_CASCADE
MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ
MENUITEM "Tile &Vertiacally", ID_WINDOW_TILE_VERT
MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE
MENUITEM SEPARATOR
MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT
END
POPUP "&Help"
BEGIN
MENUITEM "&About...", ID_ABOUT
END
END
IDR_POPUP MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM SEPARATOR
END
END
IDD_ABOUTBOX DIALOGEX 22,16,210,182
CAPTION "About ImageSoft"
FONT 8,"Tahoma",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
//EXSTYLE WS_EX_LAYERED
BEGIN
LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller ([email protected])\nGed Murphy ([email protected])", IDC_STATIC, 48, 7, 150, 36
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END
IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163
CAPTION "Image Properties"
FONT 8,"MS Sans Serif",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9
EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98
LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9
CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54
LTEXT "Width:", IDC_STATIC, 12, 51, 42, 9
EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9
LTEXT "Height:", IDC_STATIC, 12, 68, 42, 9
EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9
LTEXT "Resolution:", IDC_STATIC, 12, 84, 42, 9
EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_RES_STAT, 94, 84, 40, 9
LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9
CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50
LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9
LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9
PUSHBUTTON "OK", IDOK, 50, 144, 48, 13
PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
IDS_READY " Ready."
IDS_TOOLBAR_STANDARD "Standard"
IDS_TOOLBAR_TEST "Test"
IDS_IMAGE_NAME "Image %1!u!"
IDS_FLT_TOOLS "Tools"
IDS_FLT_COLORS "Colors"
IDS_FLT_HISTORY "History"
END
/* imageprop.c */
STRINGTABLE DISCARDABLE
BEGIN
IDS_IMAGE_MONOCHROME "Monochrome (1 bit)"
IDS_IMAGE_GREYSCALE "Greyscale (8 bit)"
IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)"
IDS_IMAGE_TRUECOLOR "True color (24 bit)"
IDS_UNIT_PIXELS "Pixels"
IDS_UNIT_CM "Cm"
IDS_UNIT_INCHES "Inches"
IDS_UNIT_DOTSCM "Dots / Cm"
IDS_UNIT_DPI "DPI"
IDS_UNIT_KB "%d KB"
IDS_UNIT_MB "%d MB"
END
/* Tooltips */
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_NEW "New"
IDS_TOOLTIP_OPEN "Open"
IDS_TOOLTIP_SAVE "Save"
IDS_TOOLTIP_PRINTPRE "Print preview"
IDS_TOOLTIP_PRINT "Print"
IDS_TOOLTIP_CUT "Cut"
IDS_TOOLTIP_COPY "Copy"
IDS_TOOLTIP_PASTE "Paste"
IDS_TOOLTIP_UNDO "Undo"
IDS_TOOLTIP_REDO "Redo"
END
/* Hints */
STRINGTABLE DISCARDABLE
BEGIN
IDS_HINT_BLANK " "
IDS_HINT_NEW " Creates a new document."
IDS_HINT_OPEN " Opens an existing document."
IDS_HINT_CLOSE " Closes this window."
IDS_HINT_CLOSEALL " Closes all windows."
IDS_HINT_SAVE " Saves the active document."
IDS_HINT_SAVEAS " Saves the active document with a new name."
IDS_HINT_PRINTPRE " Previews the printed document."
IDS_HINT_PRINT " Prints the active document."
IDS_HINT_PROP " Shows the properties of the active image."
IDS_HINT_EXIT " Exits this application."
IDS_HINT_TOOLS " Shows or hides the tools floating window."
IDS_HINT_COLORS " Shows or hides the colors floating window."
IDS_HINT_HISTORY " Shows or hides the history floating window."
IDS_HINT_STATUS " Shows or hides the status bar."
IDS_HINT_CASCADE " Arrange windows so they overlap."
IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles."
IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles."
IDS_HINT_ARRANGE " Arrange icons at the bottom of the window."
IDS_HINT_NEXT " Activates the next window."
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
IDS_HINT_SYS_SIZE " Resizes this window."
IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
END
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
BEGIN
IDS_APPNAME "ImageSoft"
IDS_VERSION "v0.1"
END
IDR_MAINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&New...", ID_NEW
MENUITEM "&Open...", ID_OPEN
MENUITEM SEPARATOR
MENUITEM "&Close\tCtrl+F4", ID_CLOSE, GRAYED
MENUITEM "C&lose all", ID_CLOSEALL, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Save", ID_SAVE, GRAYED
MENUITEM "Save &As...", ID_SAVEAS, GRAYED
MENUITEM SEPARATOR
MENUITEM "Print Pre&view", ID_PRINTPRE, GRAYED
MENUITEM "&Print...", ID_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Pr&operties...", ID_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", ID_EXIT
END
POPUP "&Edit"
BEGIN
MENUITEM "&Undo", ID_UNDO, GRAYED
MENUITEM "&Redo", ID_REDO, GRAYED
MENUITEM SEPARATOR
MENUITEM "Cu&t", ID_CUT, GRAYED
MENUITEM "&Copy", ID_COPY, GRAYED
MENUITEM "&Paste", ID_PASTE, GRAYED
MENUITEM "Paste as new &image", ID_PASTENEWIMAGE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Select &All", ID_SELALL, GRAYED
END
POPUP "&View"
BEGIN
MENUITEM "&Tools", ID_TOOLS
MENUITEM "&Colors", ID_COLOR
MENUITEM "&History", ID_HISTORY
MENUITEM "&Status Bar", ID_STATUSBAR
END
POPUP "&Image"
BEGIN
MENUITEM "&Crop...", -1, GRAYED
MENUITEM "&Resize...", -1, GRAYED
MENUITEM "R&otate...", -1, GRAYED
MENUITEM "&Flip...", -1, GRAYED
MENUITEM "&Stretch...", -1, GRAYED
MENUITEM "S&kew...", -1, GRAYED
MENUITEM "&Invert Colors", -1, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Attributes...", -1, GRAYED
END
POPUP "&Colors"
BEGIN
MENUITEM "&Edit Colors...", ID_EDITCOLOURS
END
POPUP "&Window"
BEGIN
MENUITEM "&Cascade", ID_WINDOW_CASCADE
MENUITEM "Tile &Horizontally", ID_WINDOW_TILE_HORZ
MENUITEM "Tile &Vertiacally", ID_WINDOW_TILE_VERT
MENUITEM "&Arrange Icons", ID_WINDOW_ARRANGE
MENUITEM SEPARATOR
MENUITEM "Nex&t\tCtrl+F6", ID_WINDOW_NEXT
END
POPUP "&Help"
BEGIN
MENUITEM "&About...", ID_ABOUT
END
END
IDR_POPUP MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM SEPARATOR
END
END
IDD_ABOUTBOX DIALOGEX 22,16,210,182
CAPTION "About ImageSoft"
FONT 8,"Tahoma",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
//EXSTYLE WS_EX_LAYERED
BEGIN
LTEXT "ImageSoft v0.1\nCopyright (C) 2006\nThomas Weidenmueller ([email protected])\nGed Murphy ([email protected])", IDC_STATIC, 48, 7, 150, 36
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_IMAGESOFTICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 194, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END
IDD_IMAGE_PROP DIALOGEX 6, 5, 156, 163
CAPTION "Image Properties"
FONT 8,"MS Sans Serif",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9
EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98
LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9
CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54
LTEXT "Width:", IDC_STATIC, 12, 51, 42, 9
EDITTEXT IDC_WIDTH_EDIT, 58, 49, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_WIDTH_STAT, 94, 51, 40, 9
LTEXT "Height:", IDC_STATIC, 12, 68, 42, 9
EDITTEXT IDC_HEIGHT_EDIT, 58, 66, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_HEIGHT_STAT, 94, 68, 40, 9
LTEXT "Resolution:", IDC_STATIC, 12, 84, 42, 9
EDITTEXT IDC_RES_EDIT, 58, 83, 32, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_RES_STAT, 94, 84, 40, 9
LTEXT "Unit:", IDC_STATIC, 12, 99, 42, 9
CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50
LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9
LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9
PUSHBUTTON "OK", IDOK, 50, 144, 48, 13
PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
IDS_READY " Ready."
IDS_TOOLBAR_STANDARD "Standard"
IDS_TOOLBAR_TEST "Test"
IDS_IMAGE_NAME "Image %1!u!"
IDS_FLT_TOOLS "Tools"
IDS_FLT_COLORS "Colors"
IDS_FLT_HISTORY "History"
END
/* imageprop.c */
STRINGTABLE DISCARDABLE
BEGIN
IDS_IMAGE_MONOCHROME "Monochrome (1 bit)"
IDS_IMAGE_GREYSCALE "Greyscale (8 bit)"
IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)"
IDS_IMAGE_TRUECOLOR "True color (24 bit)"
IDS_UNIT_PIXELS "Pixels"
IDS_UNIT_CM "Cm"
IDS_UNIT_INCHES "Inches"
IDS_UNIT_DOTSCM "Dots / Cm"
IDS_UNIT_DPI "DPI"
IDS_UNIT_KB "%d KB"
IDS_UNIT_MB "%d MB"
END
/* Tooltips */
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_NEW "New"
IDS_TOOLTIP_OPEN "Open"
IDS_TOOLTIP_SAVE "Save"
IDS_TOOLTIP_PRINTPRE "Print preview"
IDS_TOOLTIP_PRINT "Print"
IDS_TOOLTIP_CUT "Cut"
IDS_TOOLTIP_COPY "Copy"
IDS_TOOLTIP_PASTE "Paste"
IDS_TOOLTIP_UNDO "Undo"
IDS_TOOLTIP_REDO "Redo"
END
/* Hints */
STRINGTABLE DISCARDABLE
BEGIN
IDS_HINT_BLANK " "
IDS_HINT_NEW " Creates a new document."
IDS_HINT_OPEN " Opens an existing document."
IDS_HINT_CLOSE " Closes this window."
IDS_HINT_CLOSEALL " Closes all windows."
IDS_HINT_SAVE " Saves the active document."
IDS_HINT_SAVEAS " Saves the active document with a new name."
IDS_HINT_PRINTPRE " Previews the printed document."
IDS_HINT_PRINT " Prints the active document."
IDS_HINT_PROP " Shows the properties of the active image."
IDS_HINT_EXIT " Exits this application."
IDS_HINT_TOOLS " Shows or hides the tools floating window."
IDS_HINT_COLORS " Shows or hides the colors floating window."
IDS_HINT_HISTORY " Shows or hides the history floating window."
IDS_HINT_STATUS " Shows or hides the status bar."
IDS_HINT_CASCADE " Arrange windows so they overlap."
IDS_HINT_TILE_HORZ " Arrange windows as non-overlapping tiles."
IDS_HINT_TILE_VERT " Arrange windows as non-overlapping tiles."
IDS_HINT_ARRANGE " Arrange icons at the bottom of the window."
IDS_HINT_NEXT " Activates the next window."
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
IDS_HINT_SYS_SIZE " Resizes this window."
IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
END
File diff suppressed because it is too large Load Diff
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="ReactOS.VMware.SVGA.Installer"
type="win32"
/>
<description>ReactOS VMware(r) SVGA driver Installer</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
<!-- EOF -->
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="ReactOS.VMware.SVGA.Installer"
type="win32"
/>
<description>ReactOS VMware(r) SVGA driver Installer</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
<!-- EOF -->
+421 -421
View File
@@ -1,421 +1,421 @@
#include <precomp.h>
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
if (hInst == NULL)
{
return -1;
}
/* There are always blocks of 16 strings */
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
/* Find the string table block */
if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) &&
(hRes = LoadResource(hInst, hrSrc)) &&
(lpStr = LockResource(hRes)))
{
UINT x;
/* Find the string we're looking for */
uID &= 0xF; /* position in the block, same as % 16 */
for (x = 0; x < uID; x++)
{
lpStr += (*lpStr) + 1;
}
/* Found the string */
return (int)(*lpStr);
}
return -1;
}
INT
AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID)
{
INT ln;
ln = LengthOfStrResource(hInst,
uID);
if (ln++ > 0)
{
(*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED,
ln * sizeof(TCHAR));
if ((*lpTarget) != NULL)
{
INT Ret;
if (!(Ret = LoadString(hInst, uID, *lpTarget, ln)))
{
LocalFree((HLOCAL)(*lpTarget));
}
return Ret;
}
}
return 0;
}
DWORD
LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...)
{
DWORD Ret = 0;
LPTSTR lpFormat;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, lpTarget);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)lpTarget,
0,
&lArgs);
va_end(lArgs);
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...)
{
BOOL Ret = FALSE;
LPTSTR lpFormat, lpStr;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, uID);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)&lpStr,
0,
&lArgs);
va_end(lArgs);
if (lpStr != NULL)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID)
{
BOOL Ret = FALSE;
LPTSTR lpStr;
if (AllocAndLoadString(&lpStr,
hInstance,
uID) > 0)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
return Ret;
}
INT
GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res)
{
INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));
if(len > 0)
{
GetDlgItemText(hDlg,
Res,
lpString,
len + 1);
}
else
lpString = NULL;
return len;
}
VOID GetError(DWORD err)
{
LPVOID lpMsgBuf;
if (err == 0)
err = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
/*
* Toolbar custom control routines
*/
typedef struct _TBCUSTCTL
{
HWND hWndControl;
INT iCommand;
BOOL HideVertical : 1;
BOOL IsVertical : 1;
} TBCUSTCTL, *PTBCUSTCTL;
BOOL
ToolbarDeleteControlSpace(HWND hWndToolbar,
const TBBUTTON *ptbButton)
{
if ((ptbButton->fsStyle & TBSTYLE_SEP) &&
ptbButton->dwData != 0)
{
PTBCUSTCTL cctl = (PTBCUSTCTL)ptbButton->dwData;
DestroyWindow(cctl->hWndControl);
HeapFree(ProcessHeap,
0,
cctl);
return TRUE;
}
return FALSE;
}
VOID
ToolbarUpdateControlSpaces(HWND hWndToolbar,
ToolbarChangeControlCallback ChangeCallback)
{
BOOL Vert;
DWORD nButtons, i;
TBBUTTON tbtn;
Vert = ((SendMessage(hWndToolbar,
TB_GETSTYLE,
0,
0) & CCS_VERT) != 0);
nButtons = SendMessage(hWndToolbar,
TB_BUTTONCOUNT,
0,
0);
for (i = 0;
i != nButtons;
i++)
{
if (SendMessage(hWndToolbar,
TB_GETBUTTON,
(WPARAM)i,
(LPARAM)&tbtn))
{
if ((tbtn.fsStyle & TBSTYLE_SEP) && tbtn.dwData != 0)
{
PTBCUSTCTL cctl = (PTBCUSTCTL)tbtn.dwData;
cctl->IsVertical = Vert;
if (cctl->HideVertical)
{
ShowWindow(cctl->hWndControl,
(Vert ? SW_HIDE : SW_SHOW));
goto ShowHideSep;
}
else if (cctl->IsVertical != Vert)
{
ChangeCallback(hWndToolbar,
cctl->hWndControl,
Vert);
ShowHideSep:
/* show/hide the separator */
SendMessage(hWndToolbar,
TB_HIDEBUTTON,
(WPARAM)cctl->iCommand,
(LPARAM)Vert && cctl->HideVertical);
}
}
}
}
}
BOOL
ToolbarInsertSpaceForControl(HWND hWndToolbar,
HWND hWndControl,
INT Index,
INT iCmd,
BOOL HideVertical)
{
PTBCUSTCTL cctl;
RECT rcControl, rcItem;
cctl = HeapAlloc(ProcessHeap,
0,
sizeof(TBCUSTCTL));
if (cctl == NULL)
return FALSE;
cctl->HideVertical = HideVertical;
cctl->hWndControl = hWndControl;
cctl->iCommand = iCmd;
if (GetWindowRect(hWndControl,
&rcControl))
{
TBBUTTON tbtn = {0};
tbtn.iBitmap = rcControl.right - rcControl.left;
tbtn.idCommand = iCmd;
tbtn.fsStyle = TBSTYLE_SEP;
tbtn.dwData = (DWORD_PTR)cctl;
if (SendMessage(hWndToolbar,
TB_GETSTYLE,
0,
0) & CCS_VERT)
{
if (HideVertical)
tbtn.fsState |= TBSTATE_HIDDEN;
cctl->IsVertical = TRUE;
}
else
cctl->IsVertical = FALSE;
if (SendMessage(hWndToolbar,
TB_INSERTBUTTON,
(WPARAM)Index,
(LPARAM)&tbtn))
{
if (SendMessage(hWndToolbar,
TB_GETITEMRECT,
(WPARAM)Index,
(LPARAM)&rcItem))
{
SetWindowPos(hWndControl,
NULL,
rcItem.left,
rcItem.top,
rcItem.right - rcItem.left,
rcItem.bottom - rcItem.top,
SWP_NOZORDER);
ShowWindow(hWndControl,
SW_SHOW);
return TRUE;
}
else if (tbtn.fsState & TBSTATE_HIDDEN)
{
ShowWindow(hWndControl,
SW_HIDE);
}
}
}
return FALSE;
}
HIMAGELIST
InitImageList(UINT NumImages, UINT StartResource)
{
HBITMAP hBitmap;
HIMAGELIST hImageList;
INT i, k, Ret;
/* Create the toolbar icon image list */
hImageList = ImageList_Create(TB_BMP_WIDTH,
TB_BMP_HEIGHT,
ILC_MASK | ILC_COLOR24,
NumImages,
0);
if (! hImageList)
return NULL;
/* Add all icons to the image list */
for (i = StartResource, k = 0; k < NumImages; i++, k++)
{
hBitmap = LoadImage(hInstance,
MAKEINTRESOURCE(i),
IMAGE_BITMAP,
TB_BMP_WIDTH,
TB_BMP_HEIGHT,
LR_LOADTRANSPARENT);
Ret = ImageList_AddMasked(hImageList,
hBitmap,
RGB(255, 255, 254));
DeleteObject(hBitmap);
}
return hImageList;
}
/*
static BOOL
DestroyImageList(HIMAGELIST hImageList)
{
if (! ImageList_Destroy(hImageList))
return FALSE;
else
return TRUE;
}
*/
#include <precomp.h>
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
if (hInst == NULL)
{
return -1;
}
/* There are always blocks of 16 strings */
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
/* Find the string table block */
if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) &&
(hRes = LoadResource(hInst, hrSrc)) &&
(lpStr = LockResource(hRes)))
{
UINT x;
/* Find the string we're looking for */
uID &= 0xF; /* position in the block, same as % 16 */
for (x = 0; x < uID; x++)
{
lpStr += (*lpStr) + 1;
}
/* Found the string */
return (int)(*lpStr);
}
return -1;
}
INT
AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID)
{
INT ln;
ln = LengthOfStrResource(hInst,
uID);
if (ln++ > 0)
{
(*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED,
ln * sizeof(TCHAR));
if ((*lpTarget) != NULL)
{
INT Ret;
if (!(Ret = LoadString(hInst, uID, *lpTarget, ln)))
{
LocalFree((HLOCAL)(*lpTarget));
}
return Ret;
}
}
return 0;
}
DWORD
LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...)
{
DWORD Ret = 0;
LPTSTR lpFormat;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, lpTarget);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)lpTarget,
0,
&lArgs);
va_end(lArgs);
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...)
{
BOOL Ret = FALSE;
LPTSTR lpFormat, lpStr;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, uID);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)&lpStr,
0,
&lArgs);
va_end(lArgs);
if (lpStr != NULL)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID)
{
BOOL Ret = FALSE;
LPTSTR lpStr;
if (AllocAndLoadString(&lpStr,
hInstance,
uID) > 0)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
return Ret;
}
INT
GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res)
{
INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));
if(len > 0)
{
GetDlgItemText(hDlg,
Res,
lpString,
len + 1);
}
else
lpString = NULL;
return len;
}
VOID GetError(DWORD err)
{
LPVOID lpMsgBuf;
if (err == 0)
err = GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
/*
* Toolbar custom control routines
*/
typedef struct _TBCUSTCTL
{
HWND hWndControl;
INT iCommand;
BOOL HideVertical : 1;
BOOL IsVertical : 1;
} TBCUSTCTL, *PTBCUSTCTL;
BOOL
ToolbarDeleteControlSpace(HWND hWndToolbar,
const TBBUTTON *ptbButton)
{
if ((ptbButton->fsStyle & TBSTYLE_SEP) &&
ptbButton->dwData != 0)
{
PTBCUSTCTL cctl = (PTBCUSTCTL)ptbButton->dwData;
DestroyWindow(cctl->hWndControl);
HeapFree(ProcessHeap,
0,
cctl);
return TRUE;
}
return FALSE;
}
VOID
ToolbarUpdateControlSpaces(HWND hWndToolbar,
ToolbarChangeControlCallback ChangeCallback)
{
BOOL Vert;
DWORD nButtons, i;
TBBUTTON tbtn;
Vert = ((SendMessage(hWndToolbar,
TB_GETSTYLE,
0,
0) & CCS_VERT) != 0);
nButtons = SendMessage(hWndToolbar,
TB_BUTTONCOUNT,
0,
0);
for (i = 0;
i != nButtons;
i++)
{
if (SendMessage(hWndToolbar,
TB_GETBUTTON,
(WPARAM)i,
(LPARAM)&tbtn))
{
if ((tbtn.fsStyle & TBSTYLE_SEP) && tbtn.dwData != 0)
{
PTBCUSTCTL cctl = (PTBCUSTCTL)tbtn.dwData;
cctl->IsVertical = Vert;
if (cctl->HideVertical)
{
ShowWindow(cctl->hWndControl,
(Vert ? SW_HIDE : SW_SHOW));
goto ShowHideSep;
}
else if (cctl->IsVertical != Vert)
{
ChangeCallback(hWndToolbar,
cctl->hWndControl,
Vert);
ShowHideSep:
/* show/hide the separator */
SendMessage(hWndToolbar,
TB_HIDEBUTTON,
(WPARAM)cctl->iCommand,
(LPARAM)Vert && cctl->HideVertical);
}
}
}
}
}
BOOL
ToolbarInsertSpaceForControl(HWND hWndToolbar,
HWND hWndControl,
INT Index,
INT iCmd,
BOOL HideVertical)
{
PTBCUSTCTL cctl;
RECT rcControl, rcItem;
cctl = HeapAlloc(ProcessHeap,
0,
sizeof(TBCUSTCTL));
if (cctl == NULL)
return FALSE;
cctl->HideVertical = HideVertical;
cctl->hWndControl = hWndControl;
cctl->iCommand = iCmd;
if (GetWindowRect(hWndControl,
&rcControl))
{
TBBUTTON tbtn = {0};
tbtn.iBitmap = rcControl.right - rcControl.left;
tbtn.idCommand = iCmd;
tbtn.fsStyle = TBSTYLE_SEP;
tbtn.dwData = (DWORD_PTR)cctl;
if (SendMessage(hWndToolbar,
TB_GETSTYLE,
0,
0) & CCS_VERT)
{
if (HideVertical)
tbtn.fsState |= TBSTATE_HIDDEN;
cctl->IsVertical = TRUE;
}
else
cctl->IsVertical = FALSE;
if (SendMessage(hWndToolbar,
TB_INSERTBUTTON,
(WPARAM)Index,
(LPARAM)&tbtn))
{
if (SendMessage(hWndToolbar,
TB_GETITEMRECT,
(WPARAM)Index,
(LPARAM)&rcItem))
{
SetWindowPos(hWndControl,
NULL,
rcItem.left,
rcItem.top,
rcItem.right - rcItem.left,
rcItem.bottom - rcItem.top,
SWP_NOZORDER);
ShowWindow(hWndControl,
SW_SHOW);
return TRUE;
}
else if (tbtn.fsState & TBSTATE_HIDDEN)
{
ShowWindow(hWndControl,
SW_HIDE);
}
}
}
return FALSE;
}
HIMAGELIST
InitImageList(UINT NumImages, UINT StartResource)
{
HBITMAP hBitmap;
HIMAGELIST hImageList;
INT i, k, Ret;
/* Create the toolbar icon image list */
hImageList = ImageList_Create(TB_BMP_WIDTH,
TB_BMP_HEIGHT,
ILC_MASK | ILC_COLOR24,
NumImages,
0);
if (! hImageList)
return NULL;
/* Add all icons to the image list */
for (i = StartResource, k = 0; k < NumImages; i++, k++)
{
hBitmap = LoadImage(hInstance,
MAKEINTRESOURCE(i),
IMAGE_BITMAP,
TB_BMP_WIDTH,
TB_BMP_HEIGHT,
LR_LOADTRANSPARENT);
Ret = ImageList_AddMasked(hImageList,
hBitmap,
RGB(255, 255, 254));
DeleteObject(hBitmap);
}
return hImageList;
}
/*
static BOOL
DestroyImageList(HIMAGELIST hImageList)
{
if (! ImageList_Destroy(hImageList))
return FALSE;
else
return TRUE;
}
*/
+87 -87
View File
@@ -1,87 +1,87 @@
#include <precomp.h>
static OPENFILENAME ofn;
/*
* Initialize file open / save structure
*/
VOID FileInitialize(HWND hwnd)
{
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = MAX_PATH;
ofn.lpstrDefExt = _T("bmp");
}
static BOOL
DoWriteFile(LPCTSTR pszFileName)
{
return TRUE;
}
BOOL
DoOpenFile(HWND hwnd,
LPTSTR szFileName,
LPTSTR szTitleName)
{
DWORD err;
/*static TCHAR Filter[] = _T("All image files (*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png)\0*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png\0") \
_T("All files (*.*)\0*.*\0") \
_T("Graphics Interchange format (*gif)\0*.gif\0") \
_T("Windows Bitmap (*bmp)\0*.bmp\0") \
_T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \
_T("TAG Image File Format (*tif)\0*.tif\0") \
_T("Portable Network Graphics (*png)\0*.png\0\0");*/
static TCHAR Filter[] = _T("Windows Bitmap (*.bmp)\0*.bmp\0");
ofn.lpstrFilter = Filter;
ofn.lpstrFile = szFileName;
ofn.lpstrFileTitle = szTitleName;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if (GetOpenFileName(&ofn))
{
return TRUE;
}
err = CommDlgExtendedError();
if (err != CDERR_GENERALCODES)
MessageBox(NULL, _T("Open file failed"), NULL, 0);
return FALSE;
}
BOOL
DoSaveFile(HWND hwnd)
{
TCHAR szFileName[MAX_PATH] = _T("");
static TCHAR Filter[] = _T("Graphics Interchange format (*gif)\0*.gif\0") \
_T("Windows Bitmap (*bmp)\0*.bmp\0") \
_T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \
_T("TAG Image File Format (*tif)\0*.tif\0") \
_T("Portable Network Graphics (*png)\0*.png\0\0");
ofn.lpstrFilter = Filter;
ofn.lpstrFile = szFileName;
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn))
{
if (DoWriteFile(szFileName))
return TRUE;
}
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Save to file failed"), NULL, 0);
return FALSE;
}
#include <precomp.h>
static OPENFILENAME ofn;
/*
* Initialize file open / save structure
*/
VOID FileInitialize(HWND hwnd)
{
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = MAX_PATH;
ofn.lpstrDefExt = _T("bmp");
}
static BOOL
DoWriteFile(LPCTSTR pszFileName)
{
return TRUE;
}
BOOL
DoOpenFile(HWND hwnd,
LPTSTR szFileName,
LPTSTR szTitleName)
{
DWORD err;
/*static TCHAR Filter[] = _T("All image files (*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png)\0*.gif,*.bmp,*.jpg,*.jpeg,*.tif,*.png\0") \
_T("All files (*.*)\0*.*\0") \
_T("Graphics Interchange format (*gif)\0*.gif\0") \
_T("Windows Bitmap (*bmp)\0*.bmp\0") \
_T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \
_T("TAG Image File Format (*tif)\0*.tif\0") \
_T("Portable Network Graphics (*png)\0*.png\0\0");*/
static TCHAR Filter[] = _T("Windows Bitmap (*.bmp)\0*.bmp\0");
ofn.lpstrFilter = Filter;
ofn.lpstrFile = szFileName;
ofn.lpstrFileTitle = szTitleName;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if (GetOpenFileName(&ofn))
{
return TRUE;
}
err = CommDlgExtendedError();
if (err != CDERR_GENERALCODES)
MessageBox(NULL, _T("Open file failed"), NULL, 0);
return FALSE;
}
BOOL
DoSaveFile(HWND hwnd)
{
TCHAR szFileName[MAX_PATH] = _T("");
static TCHAR Filter[] = _T("Graphics Interchange format (*gif)\0*.gif\0") \
_T("Windows Bitmap (*bmp)\0*.bmp\0") \
_T("JPEG File Interchange Format (*jpg,*.jpeg)\0*.jpg,*.jpeg\0") \
_T("TAG Image File Format (*tif)\0*.tif\0") \
_T("Portable Network Graphics (*png)\0*.png\0\0");
ofn.lpstrFilter = Filter;
ofn.lpstrFile = szFileName;
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn))
{
if (DoWriteFile(szFileName))
return TRUE;
}
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Save to file failed"), NULL, 0);
return FALSE;
}
+396 -396
View File
@@ -1,396 +1,396 @@
#ifndef __IMAGESOFT_PRECOMP_H
#define __IMAGESOFT_PRECOMP_H
//#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h> /* GET_X/Y_LPARAM */
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>
#include "resource.h"
/* FIXME - add to headers !!! */
#ifndef SB_SIMPLEID
#define SB_SIMPLEID 0xFF
#endif
#ifndef RBBS_USECHEVRON
#define RBBS_USECHEVRON 0x200
#endif
#ifndef RBN_CHEVRONPUSHED
#define RBN_CHEVRONPUSHED (RBN_FIRST - 10)
#endif
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
#define MAX_KEY_LENGTH 256
#define NUM_MAINTB_IMAGES 10
#define TB_BMP_WIDTH 16
#define TB_BMP_HEIGHT 16
#define TOOLS 0
#define COLORS 1
#define HISTORY 2
#define MONOCHROMEBITS 1
#define GREYSCALEBITS 8
#define PALLETEBITS 8
#define TRUECOLORBITS 24
#define PIXELS 0
#define CENTIMETERS 1
#define INCHES 2
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
/* generic definitions and forward declarations */
struct _MAIN_WND_INFO;
struct _EDIT_WND_INFO;
struct _FLT_WND;
typedef enum _MDI_EDITOR_TYPE {
metUnknown = 0,
metImageEditor,
} MDI_EDITOR_TYPE, *PMDI_EDITOR_TYPE;
/* about.c */
INT_PTR CALLBACK AboutDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam);
/* imageprop.c */
typedef struct _IMAGE_PROP
{
LPTSTR lpImageName;
/* Canvas properties */
USHORT Type;
USHORT Unit;
LONG Resolution;
/* size of drawing area */
LONG Width;
LONG Height;
} IMAGE_PROP, *PIMAGE_PROP;
INT_PTR CALLBACK
ImagePropDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam);
/* imagesoft.c */
extern HINSTANCE hInstance;
extern HANDLE ProcessHeap;
/* imgedwnd.c */
typedef enum
{
tSelect = 0,
tMove,
tLasso,
tZoom,
tMagicWand,
tBrush,
tEraser,
tPencil,
tColorPick,
tStamp,
tFill,
tLine,
tPolyline,
tRectangle,
tRoundRectangle,
tPolygon,
tElipse,
} TOOL;
typedef struct _OPEN_IMAGE_EDIT_INFO
{
BOOL CreateNew;
union
{
struct
{
LONG Width;
LONG Height;
} New;
struct
{
LPTSTR lpImagePath;
} Open;
};
LPTSTR lpImageName;
USHORT Type;
LONG Resolution;
} OPEN_IMAGE_EDIT_INFO, *POPEN_IMAGE_EDIT_INFO;
typedef struct _EDIT_WND_INFO
{
MDI_EDITOR_TYPE MdiEditorType; /* Must be first member! */
HWND hSelf;
HBITMAP hBitmap;
HDC hDCMem;
struct _MAIN_WND_INFO *MainWnd;
struct _EDIT_WND_INFO *Next;
POINT ScrollPos;
USHORT Zoom;
DWORD Tool;
POPEN_IMAGE_EDIT_INFO OpenInfo; /* Only valid during initialization */
/* Canvas properties */
USHORT Type;
LONG Resolution;
/* size of drawing area */
LONG Width;
LONG Height;
} EDIT_WND_INFO, *PEDIT_WND_INFO;
BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd,
POPEN_IMAGE_EDIT_INFO OpenInfo);
VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info,
BOOL Setup);
BOOL InitImageEditWindowImpl(VOID);
VOID UninitImageEditWindowImpl(VOID);
/* tooldock.c */
typedef enum
{
TOP_DOCK = 0,
LEFT_DOCK,
RIGHT_DOCK,
BOTTOM_DOCK,
NO_DOCK
} DOCK_POSITION;
typedef struct _DOCKBAR
{
UINT BarId;
LPCTSTR lpName;
UINT DisplayTextId;
DOCK_POSITION Position;
} DOCKBAR, *PDOCKBAR;
struct _TOOLBAR_DOCKS;
typedef BOOL (CALLBACK *PDOCKBAR_CREATECLIENT)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
HWND hParent,
HWND *hwnd);
typedef BOOL (CALLBACK *PDOCKBAR_DESTROYCLIENT)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
HWND hwnd);
typedef BOOL (CALLBACK *PDOCKBAR_INSERTBAND)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
UINT *Index,
LPREBARBANDINFO rbi);
typedef VOID (CALLBACK *PDOCKBAR_DOCKBAND)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
DOCK_POSITION DockFrom,
DOCK_POSITION DockTo,
LPREBARBANDINFO rbi);
typedef VOID (CALLBACK *PDOCKBAR_CHEVRONPUSHED)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
HWND hwndChild,
LPNMREBARCHEVRON lpnm);
typedef struct _DOCKBAR_ITEM_CALLBACKS
{
PDOCKBAR_CREATECLIENT CreateClient;
PDOCKBAR_DESTROYCLIENT DestroyClient;
PDOCKBAR_INSERTBAND InsertBand;
PDOCKBAR_DOCKBAND DockBand;
PDOCKBAR_CHEVRONPUSHED ChevronPushed;
} DOCKBAR_ITEM_CALLBACKS, *PDOCKBAR_ITEM_CALLBACKS;
typedef struct _DOCKBAR_ITEM
{
struct _DOCKBAR_ITEM *Next;
DOCKBAR DockBar;
PVOID Context;
HWND hWndTool;
HWND hWndClient;
DOCK_POSITION PrevDock;
UINT PrevBandIndex;
const DOCKBAR_ITEM_CALLBACKS *Callbacks;
} DOCKBAR_ITEM, *PDOCKBAR_ITEM;
typedef VOID (CALLBACK *PDOCKBAR_PARENTRESIZE)(PVOID Context,
WORD cx,
WORD cy);
#define DOCKS_COUNT 4
typedef struct _TOOLBAR_DOCKS
{
HWND hParent;
PVOID Context;
HWND hRebar[DOCKS_COUNT];
RECT rcRebar[DOCKS_COUNT];
RECT rcClient;
PDOCKBAR_ITEM Items;
PDOCKBAR_PARENTRESIZE ParentResize;
PDOCKBAR_ITEM Dragging;
UINT DraggingBandId;
TCHAR szTempText[255];
} TOOLBAR_DOCKS, *PTOOLBAR_DOCKS;
VOID TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks,
HWND hWndParent,
PVOID Context,
PDOCKBAR_PARENTRESIZE ParentResizeProc);
INT TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks,
PRECT rcClient);
HDWP TbdDeferDocks(HDWP hWinPosInfo,
PTOOLBAR_DOCKS TbDocks);
BOOL TbdAddToolbar(PTOOLBAR_DOCKS TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
const DOCKBAR_ITEM_CALLBACKS *DockbarCallbacks);
BOOL TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks,
HWND hWndClient,
UINT *Id);
BOOL TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks,
LPNMHDR pnmh,
LRESULT *Result);
VOID TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks,
HWND hWnd,
BOOL Enable);
VOID TbdHandleActivation(PTOOLBAR_DOCKS TbDocks,
HWND hWnd,
WPARAM *wParam,
LPARAM *lParam);
VOID TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks,
BOOL Show);
BOOL TbdInitImpl(VOID);
VOID TbdUninitImpl(VOID);
/* mainwnd.c */
typedef struct _MENU_HINT
{
WORD CmdId;
UINT HintId;
} MENU_HINT, *PMENU_HINT;
typedef struct _MAIN_WND_INFO
{
HWND hSelf;
HWND hMdiClient;
HWND hStatus;
int nCmdShow;
struct _FLT_WND *fltTools;
struct _FLT_WND *fltColors;
struct _FLT_WND *fltHistory;
TOOLBAR_DOCKS ToolDocks;
/* Editors */
PEDIT_WND_INFO ImageEditors;
UINT ImagesCreated;
PVOID ActiveEditor;
/* status flags */
BOOL InMenuLoop : 1;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
BOOL InitMainWindowImpl(VOID);
VOID UninitMainWindowImpl(VOID);
HWND CreateMainWindow(LPCTSTR lpCaption,
int nCmdShow);
BOOL MainWndTranslateMDISysAccel(HWND hwnd,
LPMSG lpMsg);
VOID MainWndSwitchEditorContext(PMAIN_WND_INFO Info,
HWND hDeactivate,
HWND hActivate);
MDI_EDITOR_TYPE MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd,
PVOID *Info);
/* misc.c */
INT AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID);
DWORD LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...);
BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...);
BOOL StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID);
INT GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res);
VOID GetError(DWORD err);
BOOL ToolbarDeleteControlSpace(HWND hWndToolbar,
const TBBUTTON *ptbButton);
typedef VOID (*ToolbarChangeControlCallback)(HWND hWndToolbar,
HWND hWndControl,
BOOL Vert);
VOID ToolbarUpdateControlSpaces(HWND hWndToolbar,
ToolbarChangeControlCallback ChangeCallback);
BOOL ToolbarInsertSpaceForControl(HWND hWndToolbar,
HWND hWndControl,
INT Index,
INT iCmd,
BOOL HideVertical);
HIMAGELIST InitImageList(UINT NumButtons,
UINT StartResource);
/* opensave.c */
VOID FileInitialize(HWND hwnd);
BOOL DoOpenFile(HWND hwnd,
LPTSTR lpFileName,
LPTSTR lpName);
BOOL DoSaveFile(HWND hwnd);
/* floattoolbar.c */
typedef struct _FLT_WND
{
HWND hSelf;
LPTSTR lpName;
INT x;
INT y;
INT Width;
INT Height;
BOOL bShow : 1;
BOOL bOpaque;
} FLT_WND, *PFLT_WND;
BOOL FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info);
BOOL FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info);
BOOL FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info);
BOOL InitFloatWndClass(VOID);
VOID UninitFloatWndImpl(VOID);
BOOL ShowHideWindow(PFLT_WND FltInfo);
VOID MakeFlatCombo(HWND hwndCombo);
#endif /* __IMAGESOFT_PRECOMP_H */
#ifndef __IMAGESOFT_PRECOMP_H
#define __IMAGESOFT_PRECOMP_H
//#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h> /* GET_X/Y_LPARAM */
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>
#include "resource.h"
/* FIXME - add to headers !!! */
#ifndef SB_SIMPLEID
#define SB_SIMPLEID 0xFF
#endif
#ifndef RBBS_USECHEVRON
#define RBBS_USECHEVRON 0x200
#endif
#ifndef RBN_CHEVRONPUSHED
#define RBN_CHEVRONPUSHED (RBN_FIRST - 10)
#endif
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
#define MAX_KEY_LENGTH 256
#define NUM_MAINTB_IMAGES 10
#define TB_BMP_WIDTH 16
#define TB_BMP_HEIGHT 16
#define TOOLS 0
#define COLORS 1
#define HISTORY 2
#define MONOCHROMEBITS 1
#define GREYSCALEBITS 8
#define PALLETEBITS 8
#define TRUECOLORBITS 24
#define PIXELS 0
#define CENTIMETERS 1
#define INCHES 2
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
/* generic definitions and forward declarations */
struct _MAIN_WND_INFO;
struct _EDIT_WND_INFO;
struct _FLT_WND;
typedef enum _MDI_EDITOR_TYPE {
metUnknown = 0,
metImageEditor,
} MDI_EDITOR_TYPE, *PMDI_EDITOR_TYPE;
/* about.c */
INT_PTR CALLBACK AboutDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam);
/* imageprop.c */
typedef struct _IMAGE_PROP
{
LPTSTR lpImageName;
/* Canvas properties */
USHORT Type;
USHORT Unit;
LONG Resolution;
/* size of drawing area */
LONG Width;
LONG Height;
} IMAGE_PROP, *PIMAGE_PROP;
INT_PTR CALLBACK
ImagePropDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam);
/* imagesoft.c */
extern HINSTANCE hInstance;
extern HANDLE ProcessHeap;
/* imgedwnd.c */
typedef enum
{
tSelect = 0,
tMove,
tLasso,
tZoom,
tMagicWand,
tBrush,
tEraser,
tPencil,
tColorPick,
tStamp,
tFill,
tLine,
tPolyline,
tRectangle,
tRoundRectangle,
tPolygon,
tElipse,
} TOOL;
typedef struct _OPEN_IMAGE_EDIT_INFO
{
BOOL CreateNew;
union
{
struct
{
LONG Width;
LONG Height;
} New;
struct
{
LPTSTR lpImagePath;
} Open;
};
LPTSTR lpImageName;
USHORT Type;
LONG Resolution;
} OPEN_IMAGE_EDIT_INFO, *POPEN_IMAGE_EDIT_INFO;
typedef struct _EDIT_WND_INFO
{
MDI_EDITOR_TYPE MdiEditorType; /* Must be first member! */
HWND hSelf;
HBITMAP hBitmap;
HDC hDCMem;
struct _MAIN_WND_INFO *MainWnd;
struct _EDIT_WND_INFO *Next;
POINT ScrollPos;
USHORT Zoom;
DWORD Tool;
POPEN_IMAGE_EDIT_INFO OpenInfo; /* Only valid during initialization */
/* Canvas properties */
USHORT Type;
LONG Resolution;
/* size of drawing area */
LONG Width;
LONG Height;
} EDIT_WND_INFO, *PEDIT_WND_INFO;
BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd,
POPEN_IMAGE_EDIT_INFO OpenInfo);
VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info,
BOOL Setup);
BOOL InitImageEditWindowImpl(VOID);
VOID UninitImageEditWindowImpl(VOID);
/* tooldock.c */
typedef enum
{
TOP_DOCK = 0,
LEFT_DOCK,
RIGHT_DOCK,
BOTTOM_DOCK,
NO_DOCK
} DOCK_POSITION;
typedef struct _DOCKBAR
{
UINT BarId;
LPCTSTR lpName;
UINT DisplayTextId;
DOCK_POSITION Position;
} DOCKBAR, *PDOCKBAR;
struct _TOOLBAR_DOCKS;
typedef BOOL (CALLBACK *PDOCKBAR_CREATECLIENT)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
HWND hParent,
HWND *hwnd);
typedef BOOL (CALLBACK *PDOCKBAR_DESTROYCLIENT)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
HWND hwnd);
typedef BOOL (CALLBACK *PDOCKBAR_INSERTBAND)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
UINT *Index,
LPREBARBANDINFO rbi);
typedef VOID (CALLBACK *PDOCKBAR_DOCKBAND)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
DOCK_POSITION DockFrom,
DOCK_POSITION DockTo,
LPREBARBANDINFO rbi);
typedef VOID (CALLBACK *PDOCKBAR_CHEVRONPUSHED)(struct _TOOLBAR_DOCKS *TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
HWND hwndChild,
LPNMREBARCHEVRON lpnm);
typedef struct _DOCKBAR_ITEM_CALLBACKS
{
PDOCKBAR_CREATECLIENT CreateClient;
PDOCKBAR_DESTROYCLIENT DestroyClient;
PDOCKBAR_INSERTBAND InsertBand;
PDOCKBAR_DOCKBAND DockBand;
PDOCKBAR_CHEVRONPUSHED ChevronPushed;
} DOCKBAR_ITEM_CALLBACKS, *PDOCKBAR_ITEM_CALLBACKS;
typedef struct _DOCKBAR_ITEM
{
struct _DOCKBAR_ITEM *Next;
DOCKBAR DockBar;
PVOID Context;
HWND hWndTool;
HWND hWndClient;
DOCK_POSITION PrevDock;
UINT PrevBandIndex;
const DOCKBAR_ITEM_CALLBACKS *Callbacks;
} DOCKBAR_ITEM, *PDOCKBAR_ITEM;
typedef VOID (CALLBACK *PDOCKBAR_PARENTRESIZE)(PVOID Context,
WORD cx,
WORD cy);
#define DOCKS_COUNT 4
typedef struct _TOOLBAR_DOCKS
{
HWND hParent;
PVOID Context;
HWND hRebar[DOCKS_COUNT];
RECT rcRebar[DOCKS_COUNT];
RECT rcClient;
PDOCKBAR_ITEM Items;
PDOCKBAR_PARENTRESIZE ParentResize;
PDOCKBAR_ITEM Dragging;
UINT DraggingBandId;
TCHAR szTempText[255];
} TOOLBAR_DOCKS, *PTOOLBAR_DOCKS;
VOID TbdInitializeDocks(PTOOLBAR_DOCKS TbDocks,
HWND hWndParent,
PVOID Context,
PDOCKBAR_PARENTRESIZE ParentResizeProc);
INT TbdAdjustUpdateClientRect(PTOOLBAR_DOCKS TbDocks,
PRECT rcClient);
HDWP TbdDeferDocks(HDWP hWinPosInfo,
PTOOLBAR_DOCKS TbDocks);
BOOL TbdAddToolbar(PTOOLBAR_DOCKS TbDocks,
const DOCKBAR *Dockbar,
PVOID Context,
const DOCKBAR_ITEM_CALLBACKS *DockbarCallbacks);
BOOL TbdDockBarIdFromClientWindow(PTOOLBAR_DOCKS TbDocks,
HWND hWndClient,
UINT *Id);
BOOL TbdHandleNotifications(PTOOLBAR_DOCKS TbDocks,
LPNMHDR pnmh,
LRESULT *Result);
VOID TbdHandleEnabling(PTOOLBAR_DOCKS TbDocks,
HWND hWnd,
BOOL Enable);
VOID TbdHandleActivation(PTOOLBAR_DOCKS TbDocks,
HWND hWnd,
WPARAM *wParam,
LPARAM *lParam);
VOID TbdShowFloatingToolbars(PTOOLBAR_DOCKS TbDocks,
BOOL Show);
BOOL TbdInitImpl(VOID);
VOID TbdUninitImpl(VOID);
/* mainwnd.c */
typedef struct _MENU_HINT
{
WORD CmdId;
UINT HintId;
} MENU_HINT, *PMENU_HINT;
typedef struct _MAIN_WND_INFO
{
HWND hSelf;
HWND hMdiClient;
HWND hStatus;
int nCmdShow;
struct _FLT_WND *fltTools;
struct _FLT_WND *fltColors;
struct _FLT_WND *fltHistory;
TOOLBAR_DOCKS ToolDocks;
/* Editors */
PEDIT_WND_INFO ImageEditors;
UINT ImagesCreated;
PVOID ActiveEditor;
/* status flags */
BOOL InMenuLoop : 1;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
BOOL InitMainWindowImpl(VOID);
VOID UninitMainWindowImpl(VOID);
HWND CreateMainWindow(LPCTSTR lpCaption,
int nCmdShow);
BOOL MainWndTranslateMDISysAccel(HWND hwnd,
LPMSG lpMsg);
VOID MainWndSwitchEditorContext(PMAIN_WND_INFO Info,
HWND hDeactivate,
HWND hActivate);
MDI_EDITOR_TYPE MainWndGetCurrentEditor(PMAIN_WND_INFO MainWnd,
PVOID *Info);
/* misc.c */
INT AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID);
DWORD LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...);
BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...);
BOOL StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID);
INT GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res);
VOID GetError(DWORD err);
BOOL ToolbarDeleteControlSpace(HWND hWndToolbar,
const TBBUTTON *ptbButton);
typedef VOID (*ToolbarChangeControlCallback)(HWND hWndToolbar,
HWND hWndControl,
BOOL Vert);
VOID ToolbarUpdateControlSpaces(HWND hWndToolbar,
ToolbarChangeControlCallback ChangeCallback);
BOOL ToolbarInsertSpaceForControl(HWND hWndToolbar,
HWND hWndControl,
INT Index,
INT iCmd,
BOOL HideVertical);
HIMAGELIST InitImageList(UINT NumButtons,
UINT StartResource);
/* opensave.c */
VOID FileInitialize(HWND hwnd);
BOOL DoOpenFile(HWND hwnd,
LPTSTR lpFileName,
LPTSTR lpName);
BOOL DoSaveFile(HWND hwnd);
/* floattoolbar.c */
typedef struct _FLT_WND
{
HWND hSelf;
LPTSTR lpName;
INT x;
INT y;
INT Width;
INT Height;
BOOL bShow : 1;
BOOL bOpaque;
} FLT_WND, *PFLT_WND;
BOOL FloatToolbarCreateToolsGui(PMAIN_WND_INFO Info);
BOOL FloatToolbarCreateColorsGui(PMAIN_WND_INFO Info);
BOOL FloatToolbarCreateHistoryGui(PMAIN_WND_INFO Info);
BOOL InitFloatWndClass(VOID);
VOID UninitFloatWndImpl(VOID);
BOOL ShowHideWindow(PFLT_WND FltInfo);
VOID MakeFlatCombo(HWND hwndCombo);
#endif /* __IMAGESOFT_PRECOMP_H */
+278 -278
View File
@@ -1,278 +1,278 @@
#define IDC_STATIC -1
/* Main Windows */
#define IDC_TOOLBAR 10
#define IDC_STATUSBAR 11
#define IDC_MAIN_MDI 12
/* these need to be kept consecutive */
#define IDS_FLT_TOOLS 20
#define IDS_FLT_COLORS 21
#define IDS_FLT_HISTORY 22
/* Program icon */
#define IDI_IMAGESOFTICON 50
/* Menus */
#define IDR_MAINMENU 102
#define IDR_POPUP 103
/* COMMANDS */
/* main */
#define ID_NEW 2000
#define ID_OPEN 2001
#define ID_CLOSE 2002
#define ID_CLOSEALL 2003
#define ID_SAVE 2004
#define ID_SAVEAS 2005
#define ID_PRINTPRE 2006
#define ID_PRINT 2007
#define ID_PROP 2008
#define ID_CUT 2009
#define ID_COPY 2010
#define ID_PASTE 2011
#define ID_PASTENEWIMAGE 2012
#define ID_UNDO 2013
#define ID_REDO 2014
#define ID_SELALL 2015
#define ID_EXIT 2016
#define ID_EDITCOLOURS 2017
#define ID_TOOLS 2018
#define ID_COLOR 2019
#define ID_HISTORY 2020
#define ID_STATUSBAR 2021
#define ID_BLANK 2022
#define ID_BACK 2025
#define ID_FORWARD 2026
#define ID_DELETE 2027
/* text */
#define ID_BOLD 2030
#define ID_ITALIC 2031
#define ID_ULINE 2032
#define ID_TXTLEFT 2033
#define ID_TXTCENTER 2034
#define ID_TXTRIGHT 2035
#define ID_TXTFONTNAME 2036
#define ID_TXTFONTSIZE 2037
/* tools */
#define ID_CLONESTAMP 2050
#define ID_COLORPICKER 2051
#define ID_ECLIPSE 2052
#define ID_ECLIPSESEL 2053
#define ID_ERASER 2054
#define ID_FREEFORM 2055
#define ID_LASOO 2056
#define ID_LINE 2057
#define ID_MAGICWAND 2058
#define ID_MOVE 2059
#define ID_MOVESEL 2060
#define ID_PAINTBRUSH 2061
#define ID_PAINTBUCKET 2062
#define ID_PENCIL 2063
#define ID_RECOLORING 2064
#define ID_RECTANGLE 2065
#define ID_RECTSEL 2066
#define ID_ROUNDRECT 2067
#define ID_TEXT 2068
#define ID_ZOOM 2069
#define ID_ABOUT 2100
#define ID_REFRESH 3000
#define ID_HELP 3001
#define ID_WINDOW_TILE_HORZ 3002
#define ID_WINDOW_TILE_VERT 3003
#define ID_WINDOW_CASCADE 3004
#define ID_WINDOW_NEXT 3005
#define ID_WINDOW_ARRANGE 3006
/* menu hints */
#define IDS_HINT_BLANK 20000
#define IDS_HINT_NEW 20001
#define IDS_HINT_OPEN 20002
#define IDS_HINT_CLOSE 21006
#define IDS_HINT_CLOSEALL 21007
#define IDS_HINT_SAVE 20003
#define IDS_HINT_SAVEAS 20004
#define IDS_HINT_PRINT 20005
#define IDS_HINT_PRINTPRE 20006
#define IDS_HINT_PROP 20007
#define IDS_HINT_EXIT 20008
#define IDS_HINT_TOOLS 20020
#define IDS_HINT_COLORS 20021
#define IDS_HINT_HISTORY 20022
#define IDS_HINT_STATUS 20023
#define IDS_HINT_CASCADE 21009
#define IDS_HINT_TILE_HORZ 21010
#define IDS_HINT_TILE_VERT 21011
#define IDS_HINT_ARRANGE 21012
#define IDS_HINT_NEXT 21013
/* system menu hints */
#define IDS_HINT_SYS_RESTORE 21001
#define IDS_HINT_SYS_MOVE 21002
#define IDS_HINT_SYS_SIZE 21003
#define IDS_HINT_SYS_MINIMIZE 21004
#define IDS_HINT_SYS_MAXIMIZE 21005
#define IDS_HINT_SYS_CLOSE 21006
/* Toolbar button bitmaps.
* These must be numbered consecutively
* See loop in InitImageList (misc.c)
*/
#define IDB_MAINNEWICON 10000
#define IDB_MAINOPENICON 10001
#define IDB_MAINSAVEICON 10002
#define IDB_MAINPRINTICON 10003
#define IDB_MAINPRINTPREICON 10004
#define IDB_MAINCUTICON 10005
#define IDB_MAINCOPYICON 10006
#define IDB_MAINPASTEICON 10007
#define IDB_MAINUNDOICON 10008
#define IDB_MAINREDOICON 10009
#define IDB_TEXTBOLD 10020
#define IDB_TEXTITALIC 10021
#define IDB_TEXTULINE 10022
#define IDB_TEXTLEFT 10023
#define IDB_TEXTCENTER 10024
#define IDB_TEXTRIGHT 10025
#define IDB_TOOLSRECTSEL 10030
#define IDB_TOOLSMOVESEL 10031
#define IDB_TOOLSLASOO 10032
#define IDB_TOOLSMOVE 10033
#define IDB_TOOLSECLIPSESEL 10034
#define IDB_TOOLSZOOM 10035
#define IDB_TOOLSMAGICWAND 10036
#define IDB_TOOLSTEXT 10037
#define IDB_TOOLSPAINTBRUSH 10038
#define IDB_TOOLSERASER 10039
#define IDB_TOOLSPENCIL 10040
#define IDB_TOOLSCOLORPICKER 10041
#define IDB_TOOLSCLONESTAMP 10042
#define IDB_TOOLSRECOLORING 10043
#define IDB_TOOLSPAINTBUCKET 10044
#define IDB_TOOLSLINE 10045
#define IDB_TOOLSRECTANGLE 10046
#define IDB_TOOLSROUNDRECT 10047
#define IDB_TOOLSECLIPSE 10048
#define IDB_TOOLSFREEFORM 10049
#define IDB_HISTBACK 10060
#define IDB_HISTUNDO 10061
#define IDB_HISTREDO 10062
#define IDB_HISTFORWARD 10063
#define IDB_HISTDELETE 10064
#define IDB_COLORSMORE 10080
#define IDB_COLORSLESS 10081
/* TOOLBAR BITMAPS */
/* standard */
#define TBICON_NEW 0
#define TBICON_OPEN 1
#define TBICON_SAVE 2
#define TBICON_PRINT 3
#define TBICON_PRINTPRE 4
#define TBICON_CUT 5
#define TBICON_COPY 6
#define TBICON_PASTE 7
#define TBICON_UNDO 8
#define TBICON_REDO 9
/* text */
#define TBICON_BOLD 0
#define TBICON_ITALIC 1
#define TBICON_ULINE 2
#define TBICON_TXTLEFT 3
#define TBICON_TXTCENTER 4
#define TBICON_TXTRIGHT 5
/* tools */
#define TBICON_RECTSEL 0
#define TBICON_MOVESEL 1
#define TBICON_LASOO 2
#define TBICON_MOVE 3
#define TBICON_ECLIPSESEL 4
#define TBICON_ZOOM 5
#define TBICON_MAGICWAND 6
#define TBICON_TEXT 7
#define TBICON_PAINTBRUSH 8
#define TBICON_ERASER 9
#define TBICON_PENCIL 10
#define TBICON_COLORPICKER 11
#define TBICON_CLONESTAMP 12
#define TBICON_RECOLORING 13
#define TBICON_PAINTBUCKET 14
#define TBICON_LINE 15
#define TBICON_RECTANGLE 16
#define TBICON_ROUNDRECT 17
#define TBICON_ECLIPSE 18
#define TBICON_FREEFORM 19
/* history */
#define TBICON_BACKSM 0
#define TBICON_UNDOSM 1
#define TBICON_REDOSM 2
#define TBICON_FORWARDSM 3
#define TBICON_DELETESM 4
/* tooltips */
#define IDS_TOOLTIP_NEW 6000
#define IDS_TOOLTIP_OPEN 6001
#define IDS_TOOLTIP_SAVE 6002
#define IDS_TOOLTIP_PRINTPRE 6003
#define IDS_TOOLTIP_PRINT 6004
#define IDS_TOOLTIP_CUT 6005
#define IDS_TOOLTIP_COPY 6006
#define IDS_TOOLTIP_PASTE 6007
#define IDS_TOOLTIP_UNDO 6008
#define IDS_TOOLTIP_REDO 6009
/* cursors */
#define IDC_PAINTBRUSHCURSOR 20001
#define IDC_PAINTBRUSHCURSORMOUSEDOWN 20002
/* DIALOGS */
/* image property dialog */
#define IDD_IMAGE_PROP 4000
#define IDC_IMAGE_NAME_EDIT 4001
#define IDC_IMAGETYPE 4003
#define IDC_WIDTH_EDIT 4004
#define IDC_WIDTH_STAT 4005
#define IDC_HEIGHT_EDIT 4006
#define IDC_HEIGHT_STAT 4007
#define IDC_RES_EDIT 4008
#define IDC_RES_STAT 4009
#define IDC_UNIT 4010
#define IDC_IMAGE_SIZE 4011
#define IDS_IMAGE_MONOCHROME 4100
#define IDS_IMAGE_GREYSCALE 4101
#define IDS_IMAGE_PALETTE 4102
#define IDS_IMAGE_TRUECOLOR 4103
#define IDS_UNIT_CM 4104
#define IDS_UNIT_INCHES 4105
#define IDS_UNIT_PIXELS 4106
#define IDS_UNIT_DOTSCM 4107
#define IDS_UNIT_DPI 4108
#define IDS_UNIT_MB 4109
#define IDS_UNIT_KB 4110
/* about box info */
#define IDD_ABOUTBOX 4200
#define IDC_LICENSE_EDIT 4201
#define IDS_APPNAME 4202
#define IDS_VERSION 4203
#define IDS_LICENSE 4204
#define IDS_READY 4205
#define IDS_TOOLBAR_STANDARD 4206
#define IDS_TOOLBAR_TEST 4207
#define IDS_TOOLBAR_TEXT 4208
#define IDS_IMAGE_NAME 4209
#define IDC_STATIC -1
/* Main Windows */
#define IDC_TOOLBAR 10
#define IDC_STATUSBAR 11
#define IDC_MAIN_MDI 12
/* these need to be kept consecutive */
#define IDS_FLT_TOOLS 20
#define IDS_FLT_COLORS 21
#define IDS_FLT_HISTORY 22
/* Program icon */
#define IDI_IMAGESOFTICON 50
/* Menus */
#define IDR_MAINMENU 102
#define IDR_POPUP 103
/* COMMANDS */
/* main */
#define ID_NEW 2000
#define ID_OPEN 2001
#define ID_CLOSE 2002
#define ID_CLOSEALL 2003
#define ID_SAVE 2004
#define ID_SAVEAS 2005
#define ID_PRINTPRE 2006
#define ID_PRINT 2007
#define ID_PROP 2008
#define ID_CUT 2009
#define ID_COPY 2010
#define ID_PASTE 2011
#define ID_PASTENEWIMAGE 2012
#define ID_UNDO 2013
#define ID_REDO 2014
#define ID_SELALL 2015
#define ID_EXIT 2016
#define ID_EDITCOLOURS 2017
#define ID_TOOLS 2018
#define ID_COLOR 2019
#define ID_HISTORY 2020
#define ID_STATUSBAR 2021
#define ID_BLANK 2022
#define ID_BACK 2025
#define ID_FORWARD 2026
#define ID_DELETE 2027
/* text */
#define ID_BOLD 2030
#define ID_ITALIC 2031
#define ID_ULINE 2032
#define ID_TXTLEFT 2033
#define ID_TXTCENTER 2034
#define ID_TXTRIGHT 2035
#define ID_TXTFONTNAME 2036
#define ID_TXTFONTSIZE 2037
/* tools */
#define ID_CLONESTAMP 2050
#define ID_COLORPICKER 2051
#define ID_ECLIPSE 2052
#define ID_ECLIPSESEL 2053
#define ID_ERASER 2054
#define ID_FREEFORM 2055
#define ID_LASOO 2056
#define ID_LINE 2057
#define ID_MAGICWAND 2058
#define ID_MOVE 2059
#define ID_MOVESEL 2060
#define ID_PAINTBRUSH 2061
#define ID_PAINTBUCKET 2062
#define ID_PENCIL 2063
#define ID_RECOLORING 2064
#define ID_RECTANGLE 2065
#define ID_RECTSEL 2066
#define ID_ROUNDRECT 2067
#define ID_TEXT 2068
#define ID_ZOOM 2069
#define ID_ABOUT 2100
#define ID_REFRESH 3000
#define ID_HELP 3001
#define ID_WINDOW_TILE_HORZ 3002
#define ID_WINDOW_TILE_VERT 3003
#define ID_WINDOW_CASCADE 3004
#define ID_WINDOW_NEXT 3005
#define ID_WINDOW_ARRANGE 3006
/* menu hints */
#define IDS_HINT_BLANK 20000
#define IDS_HINT_NEW 20001
#define IDS_HINT_OPEN 20002
#define IDS_HINT_CLOSE 21006
#define IDS_HINT_CLOSEALL 21007
#define IDS_HINT_SAVE 20003
#define IDS_HINT_SAVEAS 20004
#define IDS_HINT_PRINT 20005
#define IDS_HINT_PRINTPRE 20006
#define IDS_HINT_PROP 20007
#define IDS_HINT_EXIT 20008
#define IDS_HINT_TOOLS 20020
#define IDS_HINT_COLORS 20021
#define IDS_HINT_HISTORY 20022
#define IDS_HINT_STATUS 20023
#define IDS_HINT_CASCADE 21009
#define IDS_HINT_TILE_HORZ 21010
#define IDS_HINT_TILE_VERT 21011
#define IDS_HINT_ARRANGE 21012
#define IDS_HINT_NEXT 21013
/* system menu hints */
#define IDS_HINT_SYS_RESTORE 21001
#define IDS_HINT_SYS_MOVE 21002
#define IDS_HINT_SYS_SIZE 21003
#define IDS_HINT_SYS_MINIMIZE 21004
#define IDS_HINT_SYS_MAXIMIZE 21005
#define IDS_HINT_SYS_CLOSE 21006
/* Toolbar button bitmaps.
* These must be numbered consecutively
* See loop in InitImageList (misc.c)
*/
#define IDB_MAINNEWICON 10000
#define IDB_MAINOPENICON 10001
#define IDB_MAINSAVEICON 10002
#define IDB_MAINPRINTICON 10003
#define IDB_MAINPRINTPREICON 10004
#define IDB_MAINCUTICON 10005
#define IDB_MAINCOPYICON 10006
#define IDB_MAINPASTEICON 10007
#define IDB_MAINUNDOICON 10008
#define IDB_MAINREDOICON 10009
#define IDB_TEXTBOLD 10020
#define IDB_TEXTITALIC 10021
#define IDB_TEXTULINE 10022
#define IDB_TEXTLEFT 10023
#define IDB_TEXTCENTER 10024
#define IDB_TEXTRIGHT 10025
#define IDB_TOOLSRECTSEL 10030
#define IDB_TOOLSMOVESEL 10031
#define IDB_TOOLSLASOO 10032
#define IDB_TOOLSMOVE 10033
#define IDB_TOOLSECLIPSESEL 10034
#define IDB_TOOLSZOOM 10035
#define IDB_TOOLSMAGICWAND 10036
#define IDB_TOOLSTEXT 10037
#define IDB_TOOLSPAINTBRUSH 10038
#define IDB_TOOLSERASER 10039
#define IDB_TOOLSPENCIL 10040
#define IDB_TOOLSCOLORPICKER 10041
#define IDB_TOOLSCLONESTAMP 10042
#define IDB_TOOLSRECOLORING 10043
#define IDB_TOOLSPAINTBUCKET 10044
#define IDB_TOOLSLINE 10045
#define IDB_TOOLSRECTANGLE 10046
#define IDB_TOOLSROUNDRECT 10047
#define IDB_TOOLSECLIPSE 10048
#define IDB_TOOLSFREEFORM 10049
#define IDB_HISTBACK 10060
#define IDB_HISTUNDO 10061
#define IDB_HISTREDO 10062
#define IDB_HISTFORWARD 10063
#define IDB_HISTDELETE 10064
#define IDB_COLORSMORE 10080
#define IDB_COLORSLESS 10081
/* TOOLBAR BITMAPS */
/* standard */
#define TBICON_NEW 0
#define TBICON_OPEN 1
#define TBICON_SAVE 2
#define TBICON_PRINT 3
#define TBICON_PRINTPRE 4
#define TBICON_CUT 5
#define TBICON_COPY 6
#define TBICON_PASTE 7
#define TBICON_UNDO 8
#define TBICON_REDO 9
/* text */
#define TBICON_BOLD 0
#define TBICON_ITALIC 1
#define TBICON_ULINE 2
#define TBICON_TXTLEFT 3
#define TBICON_TXTCENTER 4
#define TBICON_TXTRIGHT 5
/* tools */
#define TBICON_RECTSEL 0
#define TBICON_MOVESEL 1
#define TBICON_LASOO 2
#define TBICON_MOVE 3
#define TBICON_ECLIPSESEL 4
#define TBICON_ZOOM 5
#define TBICON_MAGICWAND 6
#define TBICON_TEXT 7
#define TBICON_PAINTBRUSH 8
#define TBICON_ERASER 9
#define TBICON_PENCIL 10
#define TBICON_COLORPICKER 11
#define TBICON_CLONESTAMP 12
#define TBICON_RECOLORING 13
#define TBICON_PAINTBUCKET 14
#define TBICON_LINE 15
#define TBICON_RECTANGLE 16
#define TBICON_ROUNDRECT 17
#define TBICON_ECLIPSE 18
#define TBICON_FREEFORM 19
/* history */
#define TBICON_BACKSM 0
#define TBICON_UNDOSM 1
#define TBICON_REDOSM 2
#define TBICON_FORWARDSM 3
#define TBICON_DELETESM 4
/* tooltips */
#define IDS_TOOLTIP_NEW 6000
#define IDS_TOOLTIP_OPEN 6001
#define IDS_TOOLTIP_SAVE 6002
#define IDS_TOOLTIP_PRINTPRE 6003
#define IDS_TOOLTIP_PRINT 6004
#define IDS_TOOLTIP_CUT 6005
#define IDS_TOOLTIP_COPY 6006
#define IDS_TOOLTIP_PASTE 6007
#define IDS_TOOLTIP_UNDO 6008
#define IDS_TOOLTIP_REDO 6009
/* cursors */
#define IDC_PAINTBRUSHCURSOR 20001
#define IDC_PAINTBRUSHCURSORMOUSEDOWN 20002
/* DIALOGS */
/* image property dialog */
#define IDD_IMAGE_PROP 4000
#define IDC_IMAGE_NAME_EDIT 4001
#define IDC_IMAGETYPE 4003
#define IDC_WIDTH_EDIT 4004
#define IDC_WIDTH_STAT 4005
#define IDC_HEIGHT_EDIT 4006
#define IDC_HEIGHT_STAT 4007
#define IDC_RES_EDIT 4008
#define IDC_RES_STAT 4009
#define IDC_UNIT 4010
#define IDC_IMAGE_SIZE 4011
#define IDS_IMAGE_MONOCHROME 4100
#define IDS_IMAGE_GREYSCALE 4101
#define IDS_IMAGE_PALETTE 4102
#define IDS_IMAGE_TRUECOLOR 4103
#define IDS_UNIT_CM 4104
#define IDS_UNIT_INCHES 4105
#define IDS_UNIT_PIXELS 4106
#define IDS_UNIT_DOTSCM 4107
#define IDS_UNIT_DPI 4108
#define IDS_UNIT_MB 4109
#define IDS_UNIT_KB 4110
/* about box info */
#define IDD_ABOUTBOX 4200
#define IDC_LICENSE_EDIT 4201
#define IDS_APPNAME 4202
#define IDS_VERSION 4203
#define IDS_LICENSE 4204
#define IDS_READY 4205
#define IDS_TOOLBAR_STANDARD 4206
#define IDS_TOOLBAR_TEST 4207
#define IDS_TOOLBAR_TEXT 4208
#define IDS_IMAGE_NAME 4209
File diff suppressed because it is too large Load Diff
+98 -98
View File
@@ -1,98 +1,98 @@
// Hungarian resources, by Robert Horvath (Talley at cubeclub.hu)
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
IDD_MSCONFIG_DIALOG DIALOG DISCARDABLE 0, 0, 378, 220
STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Rendszerbeállítások"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,2,2,374,195
DEFPUSHBUTTON "OK", IDOK, 211, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Súgó", IDC_BTN_HELP, 2, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Mégse", IDCANCEL, 267, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Alkalmaz", IDC_BTN_APPLY, 323, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
IDD_STARTUP_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "List3",IDC_STARTUP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_STARTUP_ACTIVATE,223,155,66,14
PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_STARTUP_DEACTIVATE,295,155,66,14
END
IDD_TOOLS_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "List2",IDC_TOOLS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 134
EDITTEXT IDC_TOOLS_CMDLINE, 1, 139, 360, 12, ES_READONLY
PUSHBUTTON "&Futtat", IDC_BTN_RUN, 311, 155, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
IDD_SERVICES_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "List1",IDC_SERVICES_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP,2,1,360,148
PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_SERVICES_ACTIVATE,223,155,66,14
PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_SERVICES_DEACTIVATE,295,155,66,14
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_MSCONFIG "Rendszerkonfiguráciüs segédprogram"
IDS_TAB_GENERAL "Általános"
IDS_TAB_SYSTEM "SYSTEM.INI"
IDS_TAB_FREELDR "FREELDR.INI"
IDS_TAB_SERVICES "Szolgáltatások"
IDS_TAB_STARTUP "Automatikus indítás"
IDS_TAB_TOOLS "Segédprogramok"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_COLUMN_SERVICE "Szolgálgatás"
IDS_SERVICES_COLUMN_REQ "Lényeges"
IDS_SERVICES_COLUMN_VENDOR "Gyártó"
IDS_SERVICES_COLUMN_STATUS "Állapot"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLS_COLUMN_NAME "Név"
IDS_TOOLS_COLUMN_DESCR "Description"
IDS_TOOLS_CMD_NAME "Konzol"
IDS_TOOLS_CMD_DESCR ""
IDS_TOOLS_CMD_CMD "cmd.exe"
IDS_TOOLS_INFO_NAME "Verzió"
IDS_TOOLS_INFO_DESCR "Megjeleníti a verzió-információkat."
IDS_TOOLS_INFO_CMD "winver.exe"
IDS_TOOLS_REGEDIT_NAME "Rendszerleíróadatbázis-szerkesztõ"
IDS_TOOLS_REGEDIT_DESCR "Megnyitja a szerkesztõ programot."
IDS_TOOLS_REGEDIT_CMD "regedit.exe"
IDS_TOOLS_SYSDM_NAME "Rendszertulajdonságok"
IDS_TOOLS_SYSDM_DESCR "Megjeleníti a számítógép információkat."
IDS_TOOLS_SYSDM_CMD "control"
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
IDS_STARTUP_COLUMN_ELEMENT "Element"
IDS_STARTUP_COLUMN_CMD "Parancs"
IDS_STARTUP_COLUMN_PATH "Elérési út"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Fut"
IDS_SERVICES_STATUS_STOPPED "Leállítva"
IDS_SERVICES_YES "Igen"
IDS_SERVICES_UNKNOWN "Ismeretlen"
END
// Hungarian resources, by Robert Horvath (Talley at cubeclub.hu)
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
IDD_MSCONFIG_DIALOG DIALOG DISCARDABLE 0, 0, 378, 220
STYLE DS_CENTER | WS_MINIMIZEBOX | WS_POPUP |
WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU |
WS_THICKFRAME
CAPTION "Rendszerbeállítások"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Tab1",IDC_TAB,"SysTabControl32",WS_TABSTOP,2,2,374,195
DEFPUSHBUTTON "OK", IDOK, 211, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "&Súgó", IDC_BTN_HELP, 2, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Mégse", IDCANCEL, 267, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
PUSHBUTTON "Alkalmaz", IDC_BTN_APPLY, 323, 201, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
IDD_STARTUP_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "List3",IDC_STARTUP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 148
PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_STARTUP_ACTIVATE,223,155,66,14
PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_STARTUP_DEACTIVATE,295,155,66,14
END
IDD_TOOLS_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "List2",IDC_TOOLS_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP, 2, 1, 360, 134
EDITTEXT IDC_TOOLS_CMDLINE, 1, 139, 360, 12, ES_READONLY
PUSHBUTTON "&Futtat", IDC_BTN_RUN, 311, 155, 50, 14, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
IDD_SERVICES_PAGE DIALOG DISCARDABLE 0, 0, 362, 175
STYLE DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "List1",IDC_SERVICES_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_SORTASCENDING | WS_BORDER | WS_TABSTOP,2,1,360,148
PUSHBUTTON "Mindet &bekapcsol",IDC_BTN_SERVICES_ACTIVATE,223,155,66,14
PUSHBUTTON "Mindet &kikapcsol",IDC_BTN_SERVICES_DEACTIVATE,295,155,66,14
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_MSCONFIG "Rendszerkonfiguráciüs segédprogram"
IDS_TAB_GENERAL "Általános"
IDS_TAB_SYSTEM "SYSTEM.INI"
IDS_TAB_FREELDR "FREELDR.INI"
IDS_TAB_SERVICES "Szolgáltatások"
IDS_TAB_STARTUP "Automatikus indítás"
IDS_TAB_TOOLS "Segédprogramok"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_COLUMN_SERVICE "Szolgálgatás"
IDS_SERVICES_COLUMN_REQ "Lényeges"
IDS_SERVICES_COLUMN_VENDOR "Gyártó"
IDS_SERVICES_COLUMN_STATUS "Állapot"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLS_COLUMN_NAME "Név"
IDS_TOOLS_COLUMN_DESCR "Description"
IDS_TOOLS_CMD_NAME "Konzol"
IDS_TOOLS_CMD_DESCR ""
IDS_TOOLS_CMD_CMD "cmd.exe"
IDS_TOOLS_INFO_NAME "Verzió"
IDS_TOOLS_INFO_DESCR "Megjeleníti a verzió-információkat."
IDS_TOOLS_INFO_CMD "winver.exe"
IDS_TOOLS_REGEDIT_NAME "Rendszerleíróadatbázis-szerkesztõ"
IDS_TOOLS_REGEDIT_DESCR "Megnyitja a szerkesztõ programot."
IDS_TOOLS_REGEDIT_CMD "regedit.exe"
IDS_TOOLS_SYSDM_NAME "Rendszertulajdonságok"
IDS_TOOLS_SYSDM_DESCR "Megjeleníti a számítógép információkat."
IDS_TOOLS_SYSDM_CMD "control"
IDS_TOOLS_SYSDM_PARAM "sysdm.cpl"
IDS_STARTUP_COLUMN_ELEMENT "Element"
IDS_STARTUP_COLUMN_CMD "Parancs"
IDS_STARTUP_COLUMN_PATH "Elérési út"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Fut"
IDS_SERVICES_STATUS_STOPPED "Leállítva"
IDS_SERVICES_YES "Igen"
IDS_SERVICES_UNKNOWN "Ismeretlen"
END
@@ -1,65 +1,65 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
BEGIN
IDS_BCAST "Broadcast"
IDS_P2P "Peer To Peer"
IDS_MIXED "Mixed"
IDS_HYBRID "Hybrid"
IDS_UNKNOWN "unknown"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_OTHER "Other Type Of Adapter"
IDS_ETH "Ethernet Adapter"
IDS_TOKEN "Token Ring Adapter"
IDS_FDDI "FDDI Adapter"
IDS_PPP "PPP Adapter"
IDS_LOOP "Loopback Adapter"
IDS_SLIP "SLIP Adapter"
END
STRINGTABLE DISCARDABLE
BEGIN
/* Please keep the spacing/formatting as per En.rc when translating */
IDS_USAGE
"\nUSAGE:\n \
ipconfig [/? | /all | /renew [adapter] | /release [adapter] |\n \
/flushdns | /displaydns | /registerdns |\n \
/showclassid adapter |\n \
/setclassid adapter [classid] ]\n \
\n \
where\n \
adapter Connection name\n \
(wildcard characters * and ? allowed, see examples)\n \
\n \
Options:\n \
/? Display this help message\n \
/all Display full configuration information.\n \
/release Release the IP address for the specified adapter.\n \
/renew Renew the IP address for the specified adapter.\n \
/flushdns Purges the DNS Resolver cache.\n \
/registerdns Refreshes all DHCP leases and re-registers DNS names.\n \
/displaydns Display the contents of the DNS Resolver Cache.\n \
/showclassid Displays all the dhcp class IDs allowed for adapter.\n \
/setclassid Modifies the dhcp class id.\n \
\n \
The default is to display only the IP address, subnet mask and\n \
default gateway for each adapter bound to TCP/IP.\n \
\n \
For Release and Renew, if no adapter name is specified, then the IP address\n \
leases for all adapters bound to TCP/IP will be released or renewed.\n \
\n \
For Setclassid, if no ClassId is specified, then the ClassId is removed.\n \
\n \
Examples:\n \
> ipconfig ... Show information.\n \
> ipconfig /all ... Show detailed information\n \
> ipconfig /renew ... renew all adapters\n \
> ipconfig /renew EL* ... renew any connection that has its\n \
name starting with EL\n \
> ipconfig /release *Con* ... release all matching connections,\n \
eg. ""Local Area Connection 1"" or\n \
""Local Area Connection 2""\n"
END
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
BEGIN
IDS_BCAST "Broadcast"
IDS_P2P "Peer To Peer"
IDS_MIXED "Mixed"
IDS_HYBRID "Hybrid"
IDS_UNKNOWN "unknown"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_OTHER "Other Type Of Adapter"
IDS_ETH "Ethernet Adapter"
IDS_TOKEN "Token Ring Adapter"
IDS_FDDI "FDDI Adapter"
IDS_PPP "PPP Adapter"
IDS_LOOP "Loopback Adapter"
IDS_SLIP "SLIP Adapter"
END
STRINGTABLE DISCARDABLE
BEGIN
/* Please keep the spacing/formatting as per En.rc when translating */
IDS_USAGE
"\nUSAGE:\n \
ipconfig [/? | /all | /renew [adapter] | /release [adapter] |\n \
/flushdns | /displaydns | /registerdns |\n \
/showclassid adapter |\n \
/setclassid adapter [classid] ]\n \
\n \
where\n \
adapter Connection name\n \
(wildcard characters * and ? allowed, see examples)\n \
\n \
Options:\n \
/? Display this help message\n \
/all Display full configuration information.\n \
/release Release the IP address for the specified adapter.\n \
/renew Renew the IP address for the specified adapter.\n \
/flushdns Purges the DNS Resolver cache.\n \
/registerdns Refreshes all DHCP leases and re-registers DNS names.\n \
/displaydns Display the contents of the DNS Resolver Cache.\n \
/showclassid Displays all the dhcp class IDs allowed for adapter.\n \
/setclassid Modifies the dhcp class id.\n \
\n \
The default is to display only the IP address, subnet mask and\n \
default gateway for each adapter bound to TCP/IP.\n \
\n \
For Release and Renew, if no adapter name is specified, then the IP address\n \
leases for all adapters bound to TCP/IP will be released or renewed.\n \
\n \
For Setclassid, if no ClassId is specified, then the ClassId is removed.\n \
\n \
Examples:\n \
> ipconfig ... Show information.\n \
> ipconfig /all ... Show detailed information\n \
> ipconfig /renew ... renew all adapters\n \
> ipconfig /renew EL* ... renew any connection that has its\n \
name starting with EL\n \
> ipconfig /release *Con* ... release all matching connections,\n \
eg. ""Local Area Connection 1"" or\n \
""Local Area Connection 2""\n"
END
@@ -1,18 +1,18 @@
#define IDS_USAGE 100
#define IDS_UNKNOWN 101
#define IDS_BCAST 102
#define IDS_P2P 103
#define IDS_MIXED 104
#define IDS_HYBRID 105
/* adapter types */
#define IDS_OTHER 106
#define IDS_ETH 107
#define IDS_TOKEN 108
#define IDS_FDDI 109
#define IDS_PPP 110
#define IDS_LOOP 111
#define IDS_SLIP 112
#define IDS_USAGE 100
#define IDS_UNKNOWN 101
#define IDS_BCAST 102
#define IDS_P2P 103
#define IDS_MIXED 104
#define IDS_HYBRID 105
/* adapter types */
#define IDS_OTHER 106
#define IDS_ETH 107
#define IDS_TOKEN 108
#define IDS_FDDI 109
#define IDS_PPP 110
#define IDS_LOOP 111
#define IDS_SLIP 112
@@ -1,16 +1,16 @@
<?xml version="1.0"?>
<module name="net" type="win32cui" installbase="system32" installname="net.exe">
<include base="ping">.</include>
<define name="__USE_W32API" />
<define name="__USE_W32_SOCKETS" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<library>kernel32</library>
<library>ws2_32</library>
<file>main.c</file>
<file>cmdstart.c</file>
<file>cmdStop.c</file>
<file>help.c</file>
<file>process.c</file>
</module>
<?xml version="1.0"?>
<module name="net" type="win32cui" installbase="system32" installname="net.exe">
<include base="ping">.</include>
<define name="__USE_W32API" />
<define name="__USE_W32_SOCKETS" />
<define name="_WIN32_IE">0x600</define>
<define name="_WIN32_WINNT">0x501</define>
<library>kernel32</library>
<library>ws2_32</library>
<file>main.c</file>
<file>cmdstart.c</file>
<file>cmdStop.c</file>
<file>help.c</file>
<file>process.c</file>
</module>
+14 -14
View File
@@ -1,14 +1,14 @@
#define UNICODE
#define _UNICODE
#include <assert.h>
#include <stdio.h>
#include <windows.h>
#include <commdlg.h>
#include <commctrl.h>
#include <tchar.h>
#include <richedit.h>
#include "main.h"
#include "dialog.h"
#define UNICODE
#define _UNICODE
#include <assert.h>
#include <stdio.h>
#include <windows.h>
#include <commdlg.h>
#include <commctrl.h>
#include <tchar.h>
#include <richedit.h>
#include "main.h"
#include "dialog.h"
+407 -407
View File
@@ -1,407 +1,407 @@
/*
* Regedit resources
*
* Copyright 2002 Robert Dickenson
* Hungarian Translation by Robert Horvath
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
ID_ACCEL ACCELERATORS
{
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"^F", ID_EDIT_FIND
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT
}
/*
* Menu
*/
IDC_REGEDIT MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Kilépés", ID_REGISTRY_EXIT
END
POPUP "&Súgó"
BEGIN
MENUITEM "&Névjegy ...", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
POPUP "&Registry"
BEGIN
MENUITEM "&Import Registry File...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Export Registry File...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "&Connect Network Registry...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "&Disconnect Network Registry...",
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Print\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_REGISTRY_EXIT
END
POPUP "&Edit"
BEGIN
MENUITEM "&Modify", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM SEPARATOR
MENUITEM "&Permissions...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Delete\tDel", ID_EDIT_DELETE
MENUITEM "&Rename", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&Find\tCtrl+F", ID_EDIT_FIND, GRAYED
MENUITEM "Find Ne&xt\tF3", ID_EDIT_FINDNEXT, GRAYED
END
POPUP "&View"
BEGIN
MENUITEM "Status &Bar", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Sp&lit", ID_VIEW_SPLIT
MENUITEM SEPARATOR
MENUITEM "&Refresh\tF5", ID_VIEW_REFRESH
END
POPUP "&Favorites"
BEGIN
MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE
, GRAYED
END
POPUP "&Help"
BEGIN
MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "&About Registry Editor", ID_HELP_ABOUT
END
END
IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Modify", ID_EDIT_MODIFY
MENUITEM "Modify Binary Data", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Delete\tDel", ID_EDIT_DELETE
MENUITEM "&Rename", ID_EDIT_RENAME
END
POPUP ""
BEGIN
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE
END
END
POPUP ""
BEGIN
MENUITEM "Expand/Collapse", ID_TREE_EXPANDBRANCH
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM "&Find", ID_EDIT_FIND, GRAYED
MENUITEM "&Delete", ID_TREE_DELETE
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
END
/*
* Dialog
*/
IDD_EDIT_STRING DIALOG 32, 24, 252, 84
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit String"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,142,64,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,64,50,14
END
IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit Multi-String"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14
END
IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit Binary Value"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14
END
IDD_EDIT_DWORD DIALOG 32, 24, 252, 104
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit DWORD"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
GROUPBOX "Base",IDC_STATIC,130,35,116,39
AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP
AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10
DEFPUSHBUTTON "OK",IDOK,142,82,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,82,50,14
END
/*
* String Table
*/
STRINGTABLE DISCARDABLE
BEGIN
IDS_LIST_COLUMN_NAME "Name"
IDS_LIST_COLUMN_TYPE "Type"
IDS_LIST_COLUMN_DATA "Data"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Registry Editor"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_MENU "Contains commands for working with the whole registry"
ID_EDIT_MENU "Contains commands for editing values or keys"
ID_VIEW_MENU "Contains commands for customising the registry window"
ID_FAVOURITES_MENU "Contains commands for accessing frequently used keys"
ID_HELP_MENU "Contains commands for displaying help and information about registry editor"
ID_EDIT_NEW_MENU "Contains commands for creating new keys or values"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_EDIT_MODIFY "Modifies the value's data"
ID_EDIT_NEW_KEY "Adds a new key"
ID_EDIT_NEW_STRINGVALUE "Adds a new string value"
ID_EDIT_NEW_BINARYVALUE "Adds a new binary value"
ID_EDIT_NEW_DWORDVALUE "Adds a new double word value"
ID_REGISTRY_IMPORTREGISTRYFILE "Imports a text file into the registry"
ID_REGISTRY_EXPORTREGISTRYFILE
"Exports all or part of the registry to a text file"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"Connects to a remote computer's registry"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"Disconnects from a remote computer's registry"
ID_REGISTRY_PRINT "Prints all or part of the registry"
/* ID_HELP_HELPTOPICS "Opens registry editor help" */
ID_HELP_ABOUT "Displays program information, version number and copyright"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_EXIT "Quits the registry editor"
ID_FAVOURITES_ADDTOFAVOURITES "Adds keys to the favourites list"
ID_FAVOURITES_REMOVEFAVOURITE "Removes keys from the favourites list"
ID_VIEW_STATUSBAR "Shows or hides the status bar"
ID_VIEW_SPLIT "Change position of split between two panes"
ID_VIEW_REFRESH "Refreshes the window"
ID_EDIT_DELETE "Deletes the selection"
ID_EDIT_RENAME "Renames the selection"
ID_EDIT_COPYKEYNAME "Copies the name of the selected key to the clipboard"
ID_EDIT_FIND "Finds a text string in a key, value or data"
ID_EDIT_FINDNEXT "Finds next occurrence of text specified in previous search"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR "Error"
IDS_WARNING "Warning"
IDS_BAD_VALUE "Can't query value '%s'"
IDS_UNSUPPORTED_TYPE "Can't edit keys of this type (%ld)"
IDS_TOO_BIG_VALUE "Value is too big (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "Data of type REG_MULTI_SZ cannot contain empty strings.\nThe empty strings have been removed from the list."
IDS_QUERY_DELETE_KEY_ONE "Are you sure you want to delete this key?"
IDS_QUERY_DELETE_KEY_MORE "Are you sure you want to delete these keys?"
IDS_QUERY_DELETE_KEY_CONFIRM "Confirm Key Delete"
IDS_QUERY_DELETE_ONE "Are you sure you want to delete this value?"
IDS_QUERY_DELETE_MORE "Are you sure you want to delete these values?"
IDS_QUERY_DELETE_CONFIRM "Confirm Value Delete"
IDS_ERR_DELVAL_CAPTION "Error Deleting Values"
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(zero-length binary value)"
IDS_DEFAULT_VALUE_NAME "(Default)"
IDS_VALUE_NOT_SET "(value not set)"
IDS_UNKNOWN_TYPE "Unknown type: (0x%lx)"
IDS_MY_COMPUTER "My Computer"
IDS_IMPORT_REG_FILE "Import Registry File"
IDS_EXPORT_REG_FILE "Export Registry File"
IDS_INVALID_DWORD "(invalid DWORD value)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILES "Registration Files"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Full Control"
IDS_ACCESS_READ "Read"
IDS_ACCESS_QUERYVALUE "Query Value"
IDS_ACCESS_SETVALUE "Set Value"
IDS_ACCESS_CREATESUBKEY "Create Subkey"
IDS_ACCESS_ENUMERATESUBKEYS "Enumerate Subkeys"
IDS_ACCESS_NOTIFY "Notify"
IDS_ACCESS_CREATELINK "Create Link"
IDS_ACCESS_DELETE "Törlés"
IDS_ACCESS_WRITEDAC "Write DAC"
IDS_ACCESS_WRITEOWNER "Write Owner"
IDS_ACCESS_READCONTROL "Read Control"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INHERIT_THISKEYONLY "This key only"
IDS_INHERIT_THISKEYANDSUBKEYS "This key and subkeys"
IDS_INHERIT_SUBKEYSONLY "Subkeys only"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
END
/*****************************************************************/
/*
* Dialog
*/
IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_BORDER
FONT 8, "MS Sans Serif"
BEGIN
GROUPBOX "Export Range",IDC_STATIC,2,0,366,48
CONTROL "&Mind",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "S&elected Branch",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Mégse",IDCANCEL,130,24,50,14
END
/*
* TEXTINCLUDE
*/
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
/*
* String Table
*/
/*
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "Opens Registry Editor Help."
* ID_HELP_ABOUT "Displays program information, version number, and copyright."
*END
*/
/*****************************************************************/
/*
* Regedit resources
*
* Copyright 2002 Robert Dickenson
* Hungarian Translation by Robert Horvath
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
ID_ACCEL ACCELERATORS
{
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"^F", ID_EDIT_FIND
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT
}
/*
* Menu
*/
IDC_REGEDIT MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Kilépés", ID_REGISTRY_EXIT
END
POPUP "&Súgó"
BEGIN
MENUITEM "&Névjegy ...", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
POPUP "&Registry"
BEGIN
MENUITEM "&Import Registry File...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Export Registry File...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "&Connect Network Registry...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "&Disconnect Network Registry...",
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Print\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_REGISTRY_EXIT
END
POPUP "&Edit"
BEGIN
MENUITEM "&Modify", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM SEPARATOR
MENUITEM "&Permissions...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Delete\tDel", ID_EDIT_DELETE
MENUITEM "&Rename", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&Find\tCtrl+F", ID_EDIT_FIND, GRAYED
MENUITEM "Find Ne&xt\tF3", ID_EDIT_FINDNEXT, GRAYED
END
POPUP "&View"
BEGIN
MENUITEM "Status &Bar", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Sp&lit", ID_VIEW_SPLIT
MENUITEM SEPARATOR
MENUITEM "&Refresh\tF5", ID_VIEW_REFRESH
END
POPUP "&Favorites"
BEGIN
MENUITEM "&Add to Favorites", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
MENUITEM "&Remove Favorite", ID_FAVOURITES_REMOVEFAVOURITE
, GRAYED
END
POPUP "&Help"
BEGIN
MENUITEM "&Help Topics\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "&About Registry Editor", ID_HELP_ABOUT
END
END
IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Modify", ID_EDIT_MODIFY
MENUITEM "Modify Binary Data", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Delete\tDel", ID_EDIT_DELETE
MENUITEM "&Rename", ID_EDIT_RENAME
END
POPUP ""
BEGIN
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE
END
END
POPUP ""
BEGIN
MENUITEM "Expand/Collapse", ID_TREE_EXPANDBRANCH
POPUP "&New"
BEGIN
MENUITEM "&Key", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&String Value", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binary Value", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD Value", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM "&Find", ID_EDIT_FIND, GRAYED
MENUITEM "&Delete", ID_TREE_DELETE
MENUITEM "&Rename", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Copy Key Name", ID_EDIT_COPYKEYNAME
END
END
/*
* Dialog
*/
IDD_EDIT_STRING DIALOG 32, 24, 252, 84
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit String"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,142,64,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,64,50,14
END
IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit Multi-String"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14
END
IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit Binary Value"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,154,50,14
END
IDD_EDIT_DWORD DIALOG 32, 24, 252, 104
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edit DWORD"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "Value &name:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Value data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
GROUPBOX "Base",IDC_STATIC,130,35,116,39
AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP
AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10
DEFPUSHBUTTON "OK",IDOK,142,82,50,14
PUSHBUTTON "Cancel",IDCANCEL,196,82,50,14
END
/*
* String Table
*/
STRINGTABLE DISCARDABLE
BEGIN
IDS_LIST_COLUMN_NAME "Name"
IDS_LIST_COLUMN_TYPE "Type"
IDS_LIST_COLUMN_DATA "Data"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Registry Editor"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_MENU "Contains commands for working with the whole registry"
ID_EDIT_MENU "Contains commands for editing values or keys"
ID_VIEW_MENU "Contains commands for customising the registry window"
ID_FAVOURITES_MENU "Contains commands for accessing frequently used keys"
ID_HELP_MENU "Contains commands for displaying help and information about registry editor"
ID_EDIT_NEW_MENU "Contains commands for creating new keys or values"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_EDIT_MODIFY "Modifies the value's data"
ID_EDIT_NEW_KEY "Adds a new key"
ID_EDIT_NEW_STRINGVALUE "Adds a new string value"
ID_EDIT_NEW_BINARYVALUE "Adds a new binary value"
ID_EDIT_NEW_DWORDVALUE "Adds a new double word value"
ID_REGISTRY_IMPORTREGISTRYFILE "Imports a text file into the registry"
ID_REGISTRY_EXPORTREGISTRYFILE
"Exports all or part of the registry to a text file"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"Connects to a remote computer's registry"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"Disconnects from a remote computer's registry"
ID_REGISTRY_PRINT "Prints all or part of the registry"
/* ID_HELP_HELPTOPICS "Opens registry editor help" */
ID_HELP_ABOUT "Displays program information, version number and copyright"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_EXIT "Quits the registry editor"
ID_FAVOURITES_ADDTOFAVOURITES "Adds keys to the favourites list"
ID_FAVOURITES_REMOVEFAVOURITE "Removes keys from the favourites list"
ID_VIEW_STATUSBAR "Shows or hides the status bar"
ID_VIEW_SPLIT "Change position of split between two panes"
ID_VIEW_REFRESH "Refreshes the window"
ID_EDIT_DELETE "Deletes the selection"
ID_EDIT_RENAME "Renames the selection"
ID_EDIT_COPYKEYNAME "Copies the name of the selected key to the clipboard"
ID_EDIT_FIND "Finds a text string in a key, value or data"
ID_EDIT_FINDNEXT "Finds next occurrence of text specified in previous search"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR "Error"
IDS_WARNING "Warning"
IDS_BAD_VALUE "Can't query value '%s'"
IDS_UNSUPPORTED_TYPE "Can't edit keys of this type (%ld)"
IDS_TOO_BIG_VALUE "Value is too big (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "Data of type REG_MULTI_SZ cannot contain empty strings.\nThe empty strings have been removed from the list."
IDS_QUERY_DELETE_KEY_ONE "Are you sure you want to delete this key?"
IDS_QUERY_DELETE_KEY_MORE "Are you sure you want to delete these keys?"
IDS_QUERY_DELETE_KEY_CONFIRM "Confirm Key Delete"
IDS_QUERY_DELETE_ONE "Are you sure you want to delete this value?"
IDS_QUERY_DELETE_MORE "Are you sure you want to delete these values?"
IDS_QUERY_DELETE_CONFIRM "Confirm Value Delete"
IDS_ERR_DELVAL_CAPTION "Error Deleting Values"
IDS_ERR_DELETEVALUE "Unable to delete all specified values!"
IDS_ERR_RENVAL_CAPTION "Error Renaming Value"
IDS_ERR_RENVAL_TOEMPTY "Cannot rename %s. The specified value name is empty. Try another name and try again."
IDS_NEW_KEY "New Key #%d"
IDS_NEW_VALUE "New Value #%d"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(zero-length binary value)"
IDS_DEFAULT_VALUE_NAME "(Default)"
IDS_VALUE_NOT_SET "(value not set)"
IDS_UNKNOWN_TYPE "Unknown type: (0x%lx)"
IDS_MY_COMPUTER "My Computer"
IDS_IMPORT_REG_FILE "Import Registry File"
IDS_EXPORT_REG_FILE "Export Registry File"
IDS_INVALID_DWORD "(invalid DWORD value)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILES "Registration Files"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Win9x/NT4 Registration Files (REGEDIT4)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "All Files (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Full Control"
IDS_ACCESS_READ "Read"
IDS_ACCESS_QUERYVALUE "Query Value"
IDS_ACCESS_SETVALUE "Set Value"
IDS_ACCESS_CREATESUBKEY "Create Subkey"
IDS_ACCESS_ENUMERATESUBKEYS "Enumerate Subkeys"
IDS_ACCESS_NOTIFY "Notify"
IDS_ACCESS_CREATELINK "Create Link"
IDS_ACCESS_DELETE "Törlés"
IDS_ACCESS_WRITEDAC "Write DAC"
IDS_ACCESS_WRITEOWNER "Write Owner"
IDS_ACCESS_READCONTROL "Read Control"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INHERIT_THISKEYONLY "This key only"
IDS_INHERIT_THISKEYANDSUBKEYS "This key and subkeys"
IDS_INHERIT_SUBKEYSONLY "Subkeys only"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Expand"
IDS_COLLAPSE "&Collapse"
IDS_GOTO_SUGGESTED_KEY "&Go to '%s'"
END
/*****************************************************************/
/*
* Dialog
*/
IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_BORDER
FONT 8, "MS Sans Serif"
BEGIN
GROUPBOX "Export Range",IDC_STATIC,2,0,366,48
CONTROL "&Mind",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "S&elected Branch",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Mégse",IDCANCEL,130,24,50,14
END
/*
* TEXTINCLUDE
*/
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
/*
* String Table
*/
/*
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "Opens Registry Editor Help."
* ID_HELP_ABOUT "Displays program information, version number, and copyright."
*END
*/
/*****************************************************************/
+404 -404
View File
@@ -1,404 +1,404 @@
/*
* Regedit resources
*
* Copyright 2005 Sebastian Gasiorek
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
ID_ACCEL ACCELERATORS
{
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"^F", ID_EDIT_FIND
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT
}
/*
* Menu
*/
IDC_REGEDIT MENU DISCARDABLE
BEGIN
POPUP "&Plik"
BEGIN
MENUITEM "Za&koñcz", ID_REGISTRY_EXIT
END
POPUP "Pomo&c"
BEGIN
MENUITEM "&Informacje ...", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
POPUP "&Rejestr"
BEGIN
MENUITEM "&Importuj plik rejestru...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Eksportuj plik rejestru...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "&Pod³¹cz rejestr sieciowy...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "&Od³¹cz rejestr sieciowy...",
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Drukuj\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Za&koñcz", ID_REGISTRY_EXIT
END
POPUP "&Edycja"
BEGIN
MENUITEM "&Modyfikuj", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&Nowy"
BEGIN
MENUITEM "&Klucz", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "Wartoœæ &ci¹gu", ID_EDIT_NEW_STRINGVALUE
MENUITEM "WartoϾ &binarna", ID_EDIT_NEW_BINARYVALUE
MENUITEM "WartoϾ &DWORD", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM SEPARATOR
MENUITEM "&Uprawnienia...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "U&suñ\tDel", ID_EDIT_DELETE
MENUITEM "Z&mieñ nazwê", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiuj nazwê klucza", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&ZnajdŸ\tCtrl+F", ID_EDIT_FIND, GRAYED
MENUITEM "Zn&ajdŸ nastêpny\tF3", ID_EDIT_FINDNEXT, GRAYED
END
POPUP "&Widok"
BEGIN
MENUITEM "&Pasek stanu", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Po&dziel", ID_VIEW_SPLIT
MENUITEM SEPARATOR
MENUITEM "&Odœwie¿\tF5", ID_VIEW_REFRESH
END
POPUP "Ulu&bione"
BEGIN
MENUITEM "&Dodaj do ulubionych", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
MENUITEM "&Usuñ ulubiony", ID_FAVOURITES_REMOVEFAVOURITE
, GRAYED
END
POPUP "Pomo&c"
BEGIN
MENUITEM "&Tematy pomocy\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "Edytor rejestru - i&nformacje", ID_HELP_ABOUT
END
END
IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Modyfikuj", ID_EDIT_MODIFY
MENUITEM "Modyfikuj dane &binarne", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Usuñ\tDel", ID_EDIT_DELETE
MENUITEM "&Zmieñ nazwê", ID_EDIT_RENAME
END
POPUP ""
BEGIN
POPUP "&Nowy"
BEGIN
MENUITEM "&Kklucz", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Wartoœæ ci¹gu", ID_EDIT_NEW_STRINGVALUE
MENUITEM "WartoϾ &binarna", ID_EDIT_NEW_BINARYVALUE
MENUITEM "WartoϾ &DWORD", ID_EDIT_NEW_DWORDVALUE
END
END
POPUP ""
BEGIN
MENUITEM "Rozwiñ/Zwiñ", ID_TREE_EXPANDBRANCH
POPUP "&Nowy"
BEGIN
MENUITEM "&Klucz", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Wartoœæ ci¹gu", ID_EDIT_NEW_STRINGVALUE
MENUITEM "WartoϾ &binarna", ID_EDIT_NEW_BINARYVALUE
MENUITEM "WartoϾ &DWORD", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM "&ZnajdŸ", ID_EDIT_FIND, GRAYED
MENUITEM "U&suñ", ID_TREE_DELETE
MENUITEM "Z&mieñ nazwê", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiuj nazwê klucza", ID_EDIT_COPYKEYNAME
END
END
/*
* Dialog
*/
IDD_EDIT_STRING DIALOG 32, 24, 252, 84
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie ci¹gu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Dane wartoœci:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,142,64,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,64,50,14
END
IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie wieloci¹gu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Dane &wartoœci:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14
END
IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie wartoœci binarnej"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Dane wartoœci:",IDC_STATIC,6,35,161,8
CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14
END
IDD_EDIT_DWORD DIALOG 32, 24, 252, 104
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie wartoœci DWORD"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Dane &wartoœci:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
GROUPBOX "System",IDC_STATIC,130,35,116,39
AUTORADIOBUTTON "&Szesnastkowy",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP
AUTORADIOBUTTON "&Dziesiêtny",IDC_FORMAT_DEC,141,59,60,10
DEFPUSHBUTTON "OK",IDOK,142,82,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,82,50,14
END
/*
* String Table
*/
STRINGTABLE DISCARDABLE
BEGIN
IDS_LIST_COLUMN_NAME "Nazwa"
IDS_LIST_COLUMN_TYPE "Typ"
IDS_LIST_COLUMN_DATA "Dane"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Edytor rejestru"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_MENU "Zawiera polecenia do pracy z ca³ym rejestrem"
ID_EDIT_MENU "Zawiera polecenia do edycji wartoœci lub klucz"
ID_VIEW_MENU "Zawiera polecenia do dostosowywania okien rejestru"
ID_FAVOURITES_MENU "Zawiera polecenia dla dostêpu do czêsto u¿ywanych klawiszy"
ID_HELP_MENU "Zawiera polecenia do wyœwietlania Pomocy oraz informacji o Edytorze rejestru"
ID_EDIT_NEW_MENU "Zawiera polecenia do tworzenia nowych kluczy lub wartoœci"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_EDIT_MODIFY "Zmienia dane wartoœci"
ID_EDIT_NEW_KEY "Dodaje nowy klucz"
ID_EDIT_NEW_STRINGVALUE "Dodaje now¹ wartoœæ ci¹gu"
ID_EDIT_NEW_BINARYVALUE "Dodaje now¹ wartoœæ binarn¹"
ID_EDIT_NEW_DWORDVALUE "Dodaje now¹ wartoœæ DWORD"
ID_REGISTRY_IMPORTREGISTRYFILE "Importuje plik do rejestru"
ID_REGISTRY_EXPORTREGISTRYFILE
"Eksportuje ca³oœæ lub czêœæ rejestru do pliku"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"Po³¹czenie z rejestrem zdalnego komputera"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"Od³¹cza od rejestru zdalnego komputera"
ID_REGISTRY_PRINT "Drukuje ca³oœæ lub czêœæ rejestru"
/* ID_HELP_HELPTOPICS "Otwiera Pomoc Edytora rejestru" */
ID_HELP_ABOUT "Wyœwietla informacje o programie, numerze wersji i prawach autorskich"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_EXIT "Konczy dzia³anie Edytora rejestru"
ID_FAVOURITES_ADDTOFAVOURITES "Dodaje klawisze do listy elementów ulubionych"
ID_FAVOURITES_REMOVEFAVOURITE "Usuwa klawisze z listy elementów ulubionych"
ID_VIEW_STATUSBAR "Pokazuje lub ukrywa pasek stanu"
ID_VIEW_SPLIT "Zmienia pozycjê podzia³u pomiêdzy dwoma okienkami"
ID_VIEW_REFRESH "Odœwie¿a okno"
ID_EDIT_DELETE "Usuwa zaznaczenie"
ID_EDIT_RENAME "Zmienia nazwê zaznaczenia"
ID_EDIT_COPYKEYNAME "Kopiuje nazwê wybranego klucza do Schowka"
ID_EDIT_FIND "Znajduje ci¹g tekstowy w kluczu, wartoœci lub danych"
ID_EDIT_FINDNEXT "Znajduje nastêpne wyst¹pienie tekstu okreœlonego przy poprzednim szukaniu"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR "B³¹d"
IDS_WARNING "Ostrze¿enie"
IDS_BAD_VALUE "Nie mo¿na odczytaæ wartoœci '%s'"
IDS_UNSUPPORTED_TYPE "Nie mo¿na edytowaæ kluczy tego typu (%ld)"
IDS_TOO_BIG_VALUE "Wartoœæ jest za du¿a (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "Dane typu REG_MULTI_SZ nie mog¹ zawieraæ pustych ci¹gów.\nPusty ci¹g zosta³ usuniêty z listy."
IDS_QUERY_DELETE_KEY_ONE "Czy na pewno chcesz usun¹æ ten klucz?"
IDS_QUERY_DELETE_KEY_MORE "Czy na pewno chcesz usun¹æ te klucze?"
IDS_QUERY_DELETE_KEY_CONFIRM "Potwierdzenie usuniêcia klucza"
IDS_QUERY_DELETE_ONE "Czy na pewno chcesz usun¹æ tê wartoœæ?"
IDS_QUERY_DELETE_MORE "Czy na pewno chcesz usun¹æ te wartoœci?"
IDS_QUERY_DELETE_CONFIRM "Potwierdzanie usuniêcia wartoœci"
IDS_ERR_DELVAL_CAPTION "B³¹d przy usuwaniu wartoœci"
IDS_ERR_DELETEVALUE "Nie mo¿na usun¹æ wszystkich podanych wartoœci!"
IDS_ERR_RENVAL_CAPTION "B³¹d przy zmianie wartoœci"
IDS_ERR_RENVAL_TOEMPTY "Nie mo¿na zmieniæ nazwy %s. Okreœlona nazwa klucza jest pusta. Wpisz inn¹ nazwê i spróbuj ponownie."
IDS_NEW_KEY "Nowy klucz #%d"
IDS_NEW_VALUE "Nowa wartoϾ #%d"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(wartoœæ binarna o d³ugoœci zero)"
IDS_DEFAULT_VALUE_NAME "(Domyœlna)"
IDS_VALUE_NOT_SET "(wartoϾ nie ustalona)"
IDS_UNKNOWN_TYPE "Nieznany typ: (0x%lx)"
IDS_MY_COMPUTER "Mój komputer"
IDS_IMPORT_REG_FILE "Importuj plik rejestru"
IDS_EXPORT_REG_FILE "Eksportuj plik rejestru"
IDS_INVALID_DWORD "(niew³aœciwa wartoœæ DWORD)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILES "Pliki rejestru"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Pliki rejestru Win9x/NT4 (REGEDIT4)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Wszystkie pliki (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Pe³na kontrola"
IDS_ACCESS_READ "Odczyt"
IDS_ACCESS_QUERYVALUE "Badanie wartoœci"
IDS_ACCESS_SETVALUE "Ustawianie wartoœci"
IDS_ACCESS_CREATESUBKEY "Tworzenie podklucza"
IDS_ACCESS_ENUMERATESUBKEYS "Wyliczanie podkluczy"
IDS_ACCESS_NOTIFY "Powiadamianie"
IDS_ACCESS_CREATELINK "Tworzenie ³¹cza"
IDS_ACCESS_DELETE "Usuñ"
IDS_ACCESS_WRITEDAC "Zapisywanie DAC"
IDS_ACCESS_WRITEOWNER "Zapisywanie w³aœciciela"
IDS_ACCESS_READCONTROL "Kontrola odczytu"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INHERIT_THISKEYONLY "Tylko ten klucz"
IDS_INHERIT_THISKEYANDSUBKEYS "Ten klucz i podklucze"
IDS_INHERIT_SUBKEYSONLY "Tylko podklucze"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Rozwiñ"
IDS_COLLAPSE "&Zwiñ"
IDS_GOTO_SUGGESTED_KEY "&IdŸ do '%s'"
END
/*****************************************************************/
/*
* Dialog
*/
IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_BORDER
FONT 8, "MS Sans Serif"
BEGIN
GROUPBOX "Zakres eksportu",IDC_STATIC,2,0,366,48
CONTROL "&Wszystko",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "Wy&brana ga³¹Ÿ",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Anuluj",IDCANCEL,130,24,50,14
END
/*
* TEXTINCLUDE
*/
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
/*
* String Table
*/
/*
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "Opens Registry Editor Help."
* ID_HELP_ABOUT "Displays program information, version number, and copyright."
*END
*/
/*
* Regedit resources
*
* Copyright 2005 Sebastian Gasiorek
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
ID_ACCEL ACCELERATORS
{
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"^F", ID_EDIT_FIND
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT
}
/*
* Menu
*/
IDC_REGEDIT MENU DISCARDABLE
BEGIN
POPUP "&Plik"
BEGIN
MENUITEM "Za&koñcz", ID_REGISTRY_EXIT
END
POPUP "Pomo&c"
BEGIN
MENUITEM "&Informacje ...", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
POPUP "&Rejestr"
BEGIN
MENUITEM "&Importuj plik rejestru...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Eksportuj plik rejestru...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "&Pod³¹cz rejestr sieciowy...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
MENUITEM "&Od³¹cz rejestr sieciowy...",
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Drukuj\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Za&koñcz", ID_REGISTRY_EXIT
END
POPUP "&Edycja"
BEGIN
MENUITEM "&Modyfikuj", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&Nowy"
BEGIN
MENUITEM "&Klucz", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "Wartoœæ &ci¹gu", ID_EDIT_NEW_STRINGVALUE
MENUITEM "WartoϾ &binarna", ID_EDIT_NEW_BINARYVALUE
MENUITEM "WartoϾ &DWORD", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM SEPARATOR
MENUITEM "&Uprawnienia...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "U&suñ\tDel", ID_EDIT_DELETE
MENUITEM "Z&mieñ nazwê", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiuj nazwê klucza", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&ZnajdŸ\tCtrl+F", ID_EDIT_FIND, GRAYED
MENUITEM "Zn&ajdŸ nastêpny\tF3", ID_EDIT_FINDNEXT, GRAYED
END
POPUP "&Widok"
BEGIN
MENUITEM "&Pasek stanu", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Po&dziel", ID_VIEW_SPLIT
MENUITEM SEPARATOR
MENUITEM "&Odœwie¿\tF5", ID_VIEW_REFRESH
END
POPUP "Ulu&bione"
BEGIN
MENUITEM "&Dodaj do ulubionych", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
MENUITEM "&Usuñ ulubiony", ID_FAVOURITES_REMOVEFAVOURITE
, GRAYED
END
POPUP "Pomo&c"
BEGIN
MENUITEM "&Tematy pomocy\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "Edytor rejestru - i&nformacje", ID_HELP_ABOUT
END
END
IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Modyfikuj", ID_EDIT_MODIFY
MENUITEM "Modyfikuj dane &binarne", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Usuñ\tDel", ID_EDIT_DELETE
MENUITEM "&Zmieñ nazwê", ID_EDIT_RENAME
END
POPUP ""
BEGIN
POPUP "&Nowy"
BEGIN
MENUITEM "&Kklucz", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Wartoœæ ci¹gu", ID_EDIT_NEW_STRINGVALUE
MENUITEM "WartoϾ &binarna", ID_EDIT_NEW_BINARYVALUE
MENUITEM "WartoϾ &DWORD", ID_EDIT_NEW_DWORDVALUE
END
END
POPUP ""
BEGIN
MENUITEM "Rozwiñ/Zwiñ", ID_TREE_EXPANDBRANCH
POPUP "&Nowy"
BEGIN
MENUITEM "&Klucz", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Wartoœæ ci¹gu", ID_EDIT_NEW_STRINGVALUE
MENUITEM "WartoϾ &binarna", ID_EDIT_NEW_BINARYVALUE
MENUITEM "WartoϾ &DWORD", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM "&ZnajdŸ", ID_EDIT_FIND, GRAYED
MENUITEM "U&suñ", ID_TREE_DELETE
MENUITEM "Z&mieñ nazwê", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiuj nazwê klucza", ID_EDIT_COPYKEYNAME
END
END
/*
* Dialog
*/
IDD_EDIT_STRING DIALOG 32, 24, 252, 84
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie ci¹gu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Dane wartoœci:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,142,64,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,64,50,14
END
IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie wieloci¹gu"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Dane &wartoœci:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14
END
IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie wartoœci binarnej"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Dane wartoœci:",IDC_STATIC,6,35,161,8
CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,154,50,14
END
IDD_EDIT_DWORD DIALOG 32, 24, 252, 104
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Edytowanie wartoœci DWORD"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Nazwa wartoœci:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "Dane &wartoœci:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
GROUPBOX "System",IDC_STATIC,130,35,116,39
AUTORADIOBUTTON "&Szesnastkowy",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP
AUTORADIOBUTTON "&Dziesiêtny",IDC_FORMAT_DEC,141,59,60,10
DEFPUSHBUTTON "OK",IDOK,142,82,50,14
PUSHBUTTON "Anuluj",IDCANCEL,196,82,50,14
END
/*
* String Table
*/
STRINGTABLE DISCARDABLE
BEGIN
IDS_LIST_COLUMN_NAME "Nazwa"
IDS_LIST_COLUMN_TYPE "Typ"
IDS_LIST_COLUMN_DATA "Dane"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Edytor rejestru"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_MENU "Zawiera polecenia do pracy z ca³ym rejestrem"
ID_EDIT_MENU "Zawiera polecenia do edycji wartoœci lub klucz"
ID_VIEW_MENU "Zawiera polecenia do dostosowywania okien rejestru"
ID_FAVOURITES_MENU "Zawiera polecenia dla dostêpu do czêsto u¿ywanych klawiszy"
ID_HELP_MENU "Zawiera polecenia do wyœwietlania Pomocy oraz informacji o Edytorze rejestru"
ID_EDIT_NEW_MENU "Zawiera polecenia do tworzenia nowych kluczy lub wartoœci"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_EDIT_MODIFY "Zmienia dane wartoœci"
ID_EDIT_NEW_KEY "Dodaje nowy klucz"
ID_EDIT_NEW_STRINGVALUE "Dodaje now¹ wartoœæ ci¹gu"
ID_EDIT_NEW_BINARYVALUE "Dodaje now¹ wartoœæ binarn¹"
ID_EDIT_NEW_DWORDVALUE "Dodaje now¹ wartoœæ DWORD"
ID_REGISTRY_IMPORTREGISTRYFILE "Importuje plik do rejestru"
ID_REGISTRY_EXPORTREGISTRYFILE
"Eksportuje ca³oœæ lub czêœæ rejestru do pliku"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"Po³¹czenie z rejestrem zdalnego komputera"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"Od³¹cza od rejestru zdalnego komputera"
ID_REGISTRY_PRINT "Drukuje ca³oœæ lub czêœæ rejestru"
/* ID_HELP_HELPTOPICS "Otwiera Pomoc Edytora rejestru" */
ID_HELP_ABOUT "Wyœwietla informacje o programie, numerze wersji i prawach autorskich"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_EXIT "Konczy dzia³anie Edytora rejestru"
ID_FAVOURITES_ADDTOFAVOURITES "Dodaje klawisze do listy elementów ulubionych"
ID_FAVOURITES_REMOVEFAVOURITE "Usuwa klawisze z listy elementów ulubionych"
ID_VIEW_STATUSBAR "Pokazuje lub ukrywa pasek stanu"
ID_VIEW_SPLIT "Zmienia pozycjê podzia³u pomiêdzy dwoma okienkami"
ID_VIEW_REFRESH "Odœwie¿a okno"
ID_EDIT_DELETE "Usuwa zaznaczenie"
ID_EDIT_RENAME "Zmienia nazwê zaznaczenia"
ID_EDIT_COPYKEYNAME "Kopiuje nazwê wybranego klucza do Schowka"
ID_EDIT_FIND "Znajduje ci¹g tekstowy w kluczu, wartoœci lub danych"
ID_EDIT_FINDNEXT "Znajduje nastêpne wyst¹pienie tekstu okreœlonego przy poprzednim szukaniu"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR "B³¹d"
IDS_WARNING "Ostrze¿enie"
IDS_BAD_VALUE "Nie mo¿na odczytaæ wartoœci '%s'"
IDS_UNSUPPORTED_TYPE "Nie mo¿na edytowaæ kluczy tego typu (%ld)"
IDS_TOO_BIG_VALUE "Wartoœæ jest za du¿a (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "Dane typu REG_MULTI_SZ nie mog¹ zawieraæ pustych ci¹gów.\nPusty ci¹g zosta³ usuniêty z listy."
IDS_QUERY_DELETE_KEY_ONE "Czy na pewno chcesz usun¹æ ten klucz?"
IDS_QUERY_DELETE_KEY_MORE "Czy na pewno chcesz usun¹æ te klucze?"
IDS_QUERY_DELETE_KEY_CONFIRM "Potwierdzenie usuniêcia klucza"
IDS_QUERY_DELETE_ONE "Czy na pewno chcesz usun¹æ tê wartoœæ?"
IDS_QUERY_DELETE_MORE "Czy na pewno chcesz usun¹æ te wartoœci?"
IDS_QUERY_DELETE_CONFIRM "Potwierdzanie usuniêcia wartoœci"
IDS_ERR_DELVAL_CAPTION "B³¹d przy usuwaniu wartoœci"
IDS_ERR_DELETEVALUE "Nie mo¿na usun¹æ wszystkich podanych wartoœci!"
IDS_ERR_RENVAL_CAPTION "B³¹d przy zmianie wartoœci"
IDS_ERR_RENVAL_TOEMPTY "Nie mo¿na zmieniæ nazwy %s. Okreœlona nazwa klucza jest pusta. Wpisz inn¹ nazwê i spróbuj ponownie."
IDS_NEW_KEY "Nowy klucz #%d"
IDS_NEW_VALUE "Nowa wartoϾ #%d"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(wartoœæ binarna o d³ugoœci zero)"
IDS_DEFAULT_VALUE_NAME "(Domyœlna)"
IDS_VALUE_NOT_SET "(wartoϾ nie ustalona)"
IDS_UNKNOWN_TYPE "Nieznany typ: (0x%lx)"
IDS_MY_COMPUTER "Mój komputer"
IDS_IMPORT_REG_FILE "Importuj plik rejestru"
IDS_EXPORT_REG_FILE "Eksportuj plik rejestru"
IDS_INVALID_DWORD "(niew³aœciwa wartoœæ DWORD)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILES "Pliki rejestru"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Pliki rejestru Win9x/NT4 (REGEDIT4)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Wszystkie pliki (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Pe³na kontrola"
IDS_ACCESS_READ "Odczyt"
IDS_ACCESS_QUERYVALUE "Badanie wartoœci"
IDS_ACCESS_SETVALUE "Ustawianie wartoœci"
IDS_ACCESS_CREATESUBKEY "Tworzenie podklucza"
IDS_ACCESS_ENUMERATESUBKEYS "Wyliczanie podkluczy"
IDS_ACCESS_NOTIFY "Powiadamianie"
IDS_ACCESS_CREATELINK "Tworzenie ³¹cza"
IDS_ACCESS_DELETE "Usuñ"
IDS_ACCESS_WRITEDAC "Zapisywanie DAC"
IDS_ACCESS_WRITEOWNER "Zapisywanie w³aœciciela"
IDS_ACCESS_READCONTROL "Kontrola odczytu"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INHERIT_THISKEYONLY "Tylko ten klucz"
IDS_INHERIT_THISKEYANDSUBKEYS "Ten klucz i podklucze"
IDS_INHERIT_SUBKEYSONLY "Tylko podklucze"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Rozwiñ"
IDS_COLLAPSE "&Zwiñ"
IDS_GOTO_SUGGESTED_KEY "&IdŸ do '%s'"
END
/*****************************************************************/
/*
* Dialog
*/
IDD_EXPORTRANGE DIALOG DISCARDABLE 50, 50, 370, 50
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_BORDER
FONT 8, "MS Sans Serif"
BEGIN
GROUPBOX "Zakres eksportu",IDC_STATIC,2,0,366,48
CONTROL "&Wszystko",IDC_EXPORT_ALL,"Button",BS_AUTORADIOBUTTON,10,10, 29,11
CONTROL "Wy&brana ga³¹Ÿ",IDC_EXPORT_BRANCH,"Button",BS_AUTORADIOBUTTON,10,22, 100,11
EDITTEXT IDC_EXPORT_BRANCH_TEXT,30,34,335,12
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Anuluj",IDCANCEL,130,24,50,14
END
/*
* TEXTINCLUDE
*/
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
/*
* String Table
*/
/*
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "Opens Registry Editor Help."
* ID_HELP_ABOUT "Displays program information, version number, and copyright."
*END
*/
+396 -396
View File
@@ -1,396 +1,396 @@
/*
* Regedit (Swedish resources)
*
* Copyright 2005 Andreas Bjerkeholt
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
ID_ACCEL ACCELERATORS
{
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"^F", ID_EDIT_FIND
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT
}
/*
* Menu
*/
IDC_REGEDIT MENU DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "&Avsluta", ID_REGISTRY_EXIT
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Om ...", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
POPUP "R&egistret"
BEGIN
MENUITEM "&Importera registerfil...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Exportera registerfil...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "&Anslut Nätverksregister...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
, GRAYED
MENUITEM "&Koppla ifrån Nätverksregister...",
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
, GRAYED
MENUITEM SEPARATOR
MENUITEM "Skriv &ut\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Avsluta", ID_REGISTRY_EXIT
END
POPUP "&Redigera"
BEGIN
MENUITEM "&Ändra", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&Ny(tt)"
BEGIN
MENUITEM "&Nyckel", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Strängvärde", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binärvärde", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-värde", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM SEPARATOR
MENUITEM "B&ehörigheter...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE
MENUITEM "&Byt namn", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&Sök\tCtrl+F", ID_EDIT_FIND, GRAYED
MENUITEM "Sök N&ästa\tF3", ID_EDIT_FINDNEXT, GRAYED
END
POPUP "&Visa"
BEGIN
MENUITEM "Statusfält", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Dela", ID_VIEW_SPLIT
MENUITEM SEPARATOR
MENUITEM "&Uppdatera\tF5", ID_VIEW_REFRESH
END
POPUP "&Favoriter"
BEGIN
MENUITEM "&Lägg till i Favoriter", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
MENUITEM "&Ta bort från Favoriter", ID_FAVOURITES_REMOVEFAVOURITE
, GRAYED
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Hjälpavsnitt\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "&Om Registereditorn", ID_HELP_ABOUT
END
END
IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Ändra", ID_EDIT_MODIFY
MENUITEM "Ändra binärdata", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE
MENUITEM "&Byt namn", ID_EDIT_RENAME
END
POPUP ""
BEGIN
POPUP "&Ny(tt)"
BEGIN
MENUITEM "&Nyckel", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Strängvärde", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binärvärde", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-värde", ID_EDIT_NEW_DWORDVALUE
END
END
POPUP ""
BEGIN
MENUITEM "Visa/dölj nivå", ID_TREE_EXPANDBRANCH
POPUP "&Ny(tt)"
BEGIN
MENUITEM "&Nyckel", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Strängvärde", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binärvärde", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-värde", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM "&Sök", ID_EDIT_FIND, GRAYED
MENUITEM "&Ta bort", ID_TREE_DELETE
MENUITEM "&Byt namn", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME, GRAYED
END
END
/*
* Dialog
*/
IDD_EDIT_STRING DIALOG 32, 24, 252, 84
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra sträng"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,142,64,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,64,50,14
END
IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra multi-sträng"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14
END
IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra Binärvärde"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14
END
IDD_EDIT_DWORD DIALOG 32, 24, 252, 104
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra DWORD-värde"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
GROUPBOX "Bas",IDC_STATIC,130,35,116,39
AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP
AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10
DEFPUSHBUTTON "OK",IDOK,142,82,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,82,50,14
END
/*
* String Table
*/
STRINGTABLE DISCARDABLE
BEGIN
IDS_LIST_COLUMN_NAME "Namn"
IDS_LIST_COLUMN_TYPE "Typ"
IDS_LIST_COLUMN_DATA "Data"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Registereditorn"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_MENU "Innehåller kommandon för att arbeta med hela registret"
ID_EDIT_MENU "Innehåller kommandon för att ändra värden och nycklar"
ID_VIEW_MENU "Innehåller kommandon för att anpassa registerfönstret"
ID_FAVOURITES_MENU "Innehåller kommandon för att komma åt nycklar som används ofta"
ID_HELP_MENU "Innehåller kommandon för att visa hjälpen och information om Registereditorn"
ID_EDIT_NEW_MENU "Innehåller kommandon för att skapa nya nycklar eller värden"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_EDIT_MODIFY "Ändrar värdets data"
ID_EDIT_NEW_KEY "Lägger till en ny nyckel"
ID_EDIT_NEW_STRINGVALUE "Lägger till ett nytt strängvärde"
ID_EDIT_NEW_BINARYVALUE "Lägger till ett nytt binärt värde"
ID_EDIT_NEW_DWORDVALUE "Lägger till ett nytt dubbelordsvärde"
ID_REGISTRY_IMPORTREGISTRYFILE "Importerar en textfil till registret"
ID_REGISTRY_EXPORTREGISTRYFILE
"Exporterar hela eller en del av registret till en textfil"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"Ansluter till en annan dators register"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"Kopplar ifrån en annan dators register"
ID_REGISTRY_PRINT "Skriver ut hela eller en del av registret"
/* ID_HELP_HELPTOPICS "Öppnar hjälpen för Registereditorn" */
ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrätt"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_EXIT "Avslutar Registereditorn"
ID_FAVOURITES_ADDTOFAVOURITES "Lägger till nycklar till Favoriter"
ID_FAVOURITES_REMOVEFAVOURITE "Tar bort nycklar från Favoriter"
ID_VIEW_STATUSBAR "Visar eller döljer statusfältet"
ID_VIEW_SPLIT "Ändra storlek på delningslisten"
ID_VIEW_REFRESH "Uppdaterar fönstret"
ID_EDIT_DELETE "Tar bort markeringen"
ID_EDIT_RENAME "Byter namn på markeringen"
ID_EDIT_COPYKEYNAME "Kopierar namnet på den valda nyckeln till urklippet"
ID_EDIT_FIND "Hittar en textsträng i en nyckel, ett värde eller data"
ID_EDIT_FINDNEXT "Söker igen efter nästa träff i registret"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR "Fel"
IDS_WARNING "Varning"
IDS_BAD_VALUE "Kan inte läsa värdet '%s'"
IDS_UNSUPPORTED_TYPE "Kan inte ändra nycklar av typen %ld"
IDS_TOO_BIG_VALUE "Värdet är för stort (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "Data av typen REG_MULTI_SZ kan inte innehålla tomma strängar.\nDe tomma strängarna har tagits bort från listan."
IDS_QUERY_DELETE_ONE "Är du säker på att du vill ta bort detta värde?"
IDS_QUERY_DELETE_MORE "Är du säker på att du vill ta bort dessa värden?"
IDS_QUERY_DELETE_CONFIRM "Bekräfta borttagning av värde"
IDS_ERR_DELVAL_CAPTION "Borttagning misslyckades"
IDS_ERR_DELETEVALUE "Det gick inte att ta bort alla specificerade värden!"
IDS_ERR_RENVAL_CAPTION "Namnbyte misslyckades"
IDS_ERR_RENVAL_TOEMPTY "Kunde inte byta namn på %s. Det specificerade värdenamnet är tomt. Ange ett annat namn och försök igen."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(Tomt binärvärde)"
IDS_DEFAULT_VALUE_NAME "(Standard)"
IDS_VALUE_NOT_SET "(värde ej angivet)"
IDS_UNKNOWN_TYPE "Okänd typ: (0x%lx)"
IDS_MY_COMPUTER "Den här datorn"
IDS_IMPORT_REG_FILE "Importera registerfil"
IDS_EXPORT_REG_FILE "Exportera registerfil"
IDS_INVALID_DWORD "(felaktigt DWORD-värde)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILES "Registerfiler"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Win9x/NT4-Registerfiler (REGEDIT4)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Alla filer (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Fullständig behörighet"
IDS_ACCESS_READ "Läsa"
IDS_ACCESS_QUERYVALUE "Läsa värde"
IDS_ACCESS_SETVALUE "Ange värde"
IDS_ACCESS_CREATESUBKEY "Skapa undernyckel"
IDS_ACCESS_ENUMERATESUBKEYS "Räkna upp undernycklar"
IDS_ACCESS_NOTIFY "Meddela"
IDS_ACCESS_CREATELINK "Skapa länk"
IDS_ACCESS_DELETE "Ta bort"
IDS_ACCESS_WRITEDAC "Skriva DAC"
IDS_ACCESS_WRITEOWNER "Skriva ägare"
IDS_ACCESS_READCONTROL "Läsa behörighet"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INHERIT_THISKEYONLY "Endast denna nyckel"
IDS_INHERIT_THISKEYANDSUBKEYS "Denna nyckel samt undernycklar"
IDS_INHERIT_SUBKEYSONLY "Endast undernycklar"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Visa nivå"
IDS_COLLAPSE "&Dölj nivå"
END
/*****************************************************************/
/*
* Dialog
*/
IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_BORDER
FONT 8, "MS Sans Serif"
BEGIN
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Avbryt",IDCANCEL,130,24,50,14
END
/*
* TEXTINCLUDE
*/
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
/*
* String Table
*/
/*
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "Öppnar hjälpen för Registereditorn."
* ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrätt."
*END
*/
/*****************************************************************/
/*
* Regedit (Swedish resources)
*
* Copyright 2005 Andreas Bjerkeholt
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
ID_ACCEL ACCELERATORS
{
VK_DELETE, ID_EDIT_DELETE, VIRTKEY, NOINVERT
"^F", ID_EDIT_FIND
VK_F3, ID_EDIT_FINDNEXT, VIRTKEY, NOINVERT
VK_F5, ID_VIEW_REFRESH, VIRTKEY, NOINVERT
VK_F1, ID_HELP_HELPTOPICS, VIRTKEY, NOINVERT
}
/*
* Menu
*/
IDC_REGEDIT MENU DISCARDABLE
BEGIN
POPUP "&Arkiv"
BEGIN
MENUITEM "&Avsluta", ID_REGISTRY_EXIT
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Om ...", ID_HELP_ABOUT
END
END
IDR_REGEDIT_MENU MENU DISCARDABLE
BEGIN
POPUP "R&egistret"
BEGIN
MENUITEM "&Importera registerfil...", ID_REGISTRY_IMPORTREGISTRYFILE
MENUITEM "&Exportera registerfil...", ID_REGISTRY_EXPORTREGISTRYFILE
MENUITEM SEPARATOR
MENUITEM "&Anslut Nätverksregister...",
ID_REGISTRY_CONNECTNETWORKREGISTRY
, GRAYED
MENUITEM "&Koppla ifrån Nätverksregister...",
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
, GRAYED
MENUITEM SEPARATOR
MENUITEM "Skriv &ut\tCtrl+P", ID_REGISTRY_PRINT, GRAYED
MENUITEM SEPARATOR
MENUITEM "&Avsluta", ID_REGISTRY_EXIT
END
POPUP "&Redigera"
BEGIN
MENUITEM "&Ändra", ID_EDIT_MODIFY
MENUITEM SEPARATOR
POPUP "&Ny(tt)"
BEGIN
MENUITEM "&Nyckel", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Strängvärde", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binärvärde", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-värde", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM SEPARATOR
MENUITEM "B&ehörigheter...", ID_EDIT_PERMISSIONS
MENUITEM SEPARATOR
MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE
MENUITEM "&Byt namn", ID_EDIT_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME
MENUITEM SEPARATOR
MENUITEM "&Sök\tCtrl+F", ID_EDIT_FIND, GRAYED
MENUITEM "Sök N&ästa\tF3", ID_EDIT_FINDNEXT, GRAYED
END
POPUP "&Visa"
BEGIN
MENUITEM "Statusfält", ID_VIEW_STATUSBAR
MENUITEM SEPARATOR
MENUITEM "Dela", ID_VIEW_SPLIT
MENUITEM SEPARATOR
MENUITEM "&Uppdatera\tF5", ID_VIEW_REFRESH
END
POPUP "&Favoriter"
BEGIN
MENUITEM "&Lägg till i Favoriter", ID_FAVOURITES_ADDTOFAVOURITES
, GRAYED
MENUITEM "&Ta bort från Favoriter", ID_FAVOURITES_REMOVEFAVOURITE
, GRAYED
END
POPUP "&Hjälp"
BEGIN
MENUITEM "&Hjälpavsnitt\tF1", ID_HELP_HELPTOPICS
MENUITEM SEPARATOR
MENUITEM "&Om Registereditorn", ID_HELP_ABOUT
END
END
IDR_POPUP_MENUS MENU DISCARDABLE
BEGIN
POPUP ""
BEGIN
MENUITEM "&Ändra", ID_EDIT_MODIFY
MENUITEM "Ändra binärdata", ID_EDIT_MODIFY_BIN
MENUITEM SEPARATOR
MENUITEM "&Ta bort\tDel", ID_EDIT_DELETE
MENUITEM "&Byt namn", ID_EDIT_RENAME
END
POPUP ""
BEGIN
POPUP "&Ny(tt)"
BEGIN
MENUITEM "&Nyckel", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Strängvärde", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binärvärde", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-värde", ID_EDIT_NEW_DWORDVALUE
END
END
POPUP ""
BEGIN
MENUITEM "Visa/dölj nivå", ID_TREE_EXPANDBRANCH
POPUP "&Ny(tt)"
BEGIN
MENUITEM "&Nyckel", ID_EDIT_NEW_KEY
MENUITEM SEPARATOR
MENUITEM "&Strängvärde", ID_EDIT_NEW_STRINGVALUE
MENUITEM "&Binärvärde", ID_EDIT_NEW_BINARYVALUE
MENUITEM "&DWORD-värde", ID_EDIT_NEW_DWORDVALUE
END
MENUITEM "&Sök", ID_EDIT_FIND, GRAYED
MENUITEM "&Ta bort", ID_TREE_DELETE
MENUITEM "&Byt namn", ID_TREE_RENAME
MENUITEM SEPARATOR
MENUITEM "&Kopiera nyckelnamn", ID_EDIT_COPYKEYNAME, GRAYED
END
END
/*
* Dialog
*/
IDD_EDIT_STRING DIALOG 32, 24, 252, 84
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra sträng"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,142,64,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,64,50,14
END
IDD_EDIT_MULTI_STRING DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra multi-sträng"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,240,102,ES_AUTOHSCROLL | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL | WS_VSCROLL
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14
END
IDD_EDIT_BIN_DATA DIALOG 32, 24, 252, 174
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra Binärvärde"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
CONTROL "",IDC_VALUE_DATA,"HexEdit32",WS_VSCROLL | WS_BORDER | WS_TABSTOP,6,46,240,102
DEFPUSHBUTTON "OK",IDOK,142,154,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,154,50,14
END
IDD_EDIT_DWORD DIALOG 32, 24, 252, 104
STYLE DS_SETFONT | DS_MODALFRAME | DS_NOIDLEMSG | DS_3DLOOK | DS_CONTEXTHELP |
WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Ändra DWORD-värde"
FONT 8, "MS Shell Dlg"
BEGIN
LTEXT "&Värde:",IDC_STATIC,6,6,134,8
EDITTEXT IDC_VALUE_NAME,6,17,240,12,ES_AUTOHSCROLL | ES_READONLY
LTEXT "&Data:",IDC_STATIC,6,35,161,8
EDITTEXT IDC_VALUE_DATA,6,46,116,12,ES_AUTOHSCROLL
GROUPBOX "Bas",IDC_STATIC,130,35,116,39
AUTORADIOBUTTON "&Hexadecimal",IDC_FORMAT_HEX,141,46,60,10,WS_GROUP
AUTORADIOBUTTON "&Decimal",IDC_FORMAT_DEC,141,59,60,10
DEFPUSHBUTTON "OK",IDOK,142,82,50,14
PUSHBUTTON "Avbryt",IDCANCEL,196,82,50,14
END
/*
* String Table
*/
STRINGTABLE DISCARDABLE
BEGIN
IDS_LIST_COLUMN_NAME "Namn"
IDS_LIST_COLUMN_TYPE "Typ"
IDS_LIST_COLUMN_DATA "Data"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_APP_TITLE "Registereditorn"
IDC_REGEDIT "REGEDIT"
IDC_REGEDIT_FRAME "REGEDIT_FRAME"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_MENU "Innehåller kommandon för att arbeta med hela registret"
ID_EDIT_MENU "Innehåller kommandon för att ändra värden och nycklar"
ID_VIEW_MENU "Innehåller kommandon för att anpassa registerfönstret"
ID_FAVOURITES_MENU "Innehåller kommandon för att komma åt nycklar som används ofta"
ID_HELP_MENU "Innehåller kommandon för att visa hjälpen och information om Registereditorn"
ID_EDIT_NEW_MENU "Innehåller kommandon för att skapa nya nycklar eller värden"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_EDIT_MODIFY "Ändrar värdets data"
ID_EDIT_NEW_KEY "Lägger till en ny nyckel"
ID_EDIT_NEW_STRINGVALUE "Lägger till ett nytt strängvärde"
ID_EDIT_NEW_BINARYVALUE "Lägger till ett nytt binärt värde"
ID_EDIT_NEW_DWORDVALUE "Lägger till ett nytt dubbelordsvärde"
ID_REGISTRY_IMPORTREGISTRYFILE "Importerar en textfil till registret"
ID_REGISTRY_EXPORTREGISTRYFILE
"Exporterar hela eller en del av registret till en textfil"
ID_REGISTRY_CONNECTNETWORKREGISTRY
"Ansluter till en annan dators register"
ID_REGISTRY_DISCONNECTNETWORKREGISTRY
"Kopplar ifrån en annan dators register"
ID_REGISTRY_PRINT "Skriver ut hela eller en del av registret"
/* ID_HELP_HELPTOPICS "Öppnar hjälpen för Registereditorn" */
ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrätt"
END
STRINGTABLE DISCARDABLE
BEGIN
ID_REGISTRY_EXIT "Avslutar Registereditorn"
ID_FAVOURITES_ADDTOFAVOURITES "Lägger till nycklar till Favoriter"
ID_FAVOURITES_REMOVEFAVOURITE "Tar bort nycklar från Favoriter"
ID_VIEW_STATUSBAR "Visar eller döljer statusfältet"
ID_VIEW_SPLIT "Ändra storlek på delningslisten"
ID_VIEW_REFRESH "Uppdaterar fönstret"
ID_EDIT_DELETE "Tar bort markeringen"
ID_EDIT_RENAME "Byter namn på markeringen"
ID_EDIT_COPYKEYNAME "Kopierar namnet på den valda nyckeln till urklippet"
ID_EDIT_FIND "Hittar en textsträng i en nyckel, ett värde eller data"
ID_EDIT_FINDNEXT "Söker igen efter nästa träff i registret"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ERROR "Fel"
IDS_WARNING "Varning"
IDS_BAD_VALUE "Kan inte läsa värdet '%s'"
IDS_UNSUPPORTED_TYPE "Kan inte ändra nycklar av typen %ld"
IDS_TOO_BIG_VALUE "Värdet är för stort (%ld)"
IDS_MULTI_SZ_EMPTY_STRING "Data av typen REG_MULTI_SZ kan inte innehålla tomma strängar.\nDe tomma strängarna har tagits bort från listan."
IDS_QUERY_DELETE_ONE "Är du säker på att du vill ta bort detta värde?"
IDS_QUERY_DELETE_MORE "Är du säker på att du vill ta bort dessa värden?"
IDS_QUERY_DELETE_CONFIRM "Bekräfta borttagning av värde"
IDS_ERR_DELVAL_CAPTION "Borttagning misslyckades"
IDS_ERR_DELETEVALUE "Det gick inte att ta bort alla specificerade värden!"
IDS_ERR_RENVAL_CAPTION "Namnbyte misslyckades"
IDS_ERR_RENVAL_TOEMPTY "Kunde inte byta namn på %s. Det specificerade värdenamnet är tomt. Ange ett annat namn och försök igen."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_BINARY_EMPTY "(Tomt binärvärde)"
IDS_DEFAULT_VALUE_NAME "(Standard)"
IDS_VALUE_NOT_SET "(värde ej angivet)"
IDS_UNKNOWN_TYPE "Okänd typ: (0x%lx)"
IDS_MY_COMPUTER "Den här datorn"
IDS_IMPORT_REG_FILE "Importera registerfil"
IDS_EXPORT_REG_FILE "Exportera registerfil"
IDS_INVALID_DWORD "(felaktigt DWORD-värde)"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FLT_REGFILES "Registerfiler"
IDS_FLT_REGFILES_FLT "*.reg"
IDS_FLT_REGEDIT4 "Win9x/NT4-Registerfiler (REGEDIT4)"
IDS_FLT_REGEDIT4_FLT "*.reg"
IDS_FLT_ALLFILES "Alla filer (*.*)"
IDS_FLT_ALLFILES_FLT "*.*"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCESS_FULLCONTROL "Fullständig behörighet"
IDS_ACCESS_READ "Läsa"
IDS_ACCESS_QUERYVALUE "Läsa värde"
IDS_ACCESS_SETVALUE "Ange värde"
IDS_ACCESS_CREATESUBKEY "Skapa undernyckel"
IDS_ACCESS_ENUMERATESUBKEYS "Räkna upp undernycklar"
IDS_ACCESS_NOTIFY "Meddela"
IDS_ACCESS_CREATELINK "Skapa länk"
IDS_ACCESS_DELETE "Ta bort"
IDS_ACCESS_WRITEDAC "Skriva DAC"
IDS_ACCESS_WRITEOWNER "Skriva ägare"
IDS_ACCESS_READCONTROL "Läsa behörighet"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_INHERIT_THISKEYONLY "Endast denna nyckel"
IDS_INHERIT_THISKEYANDSUBKEYS "Denna nyckel samt undernycklar"
IDS_INHERIT_SUBKEYSONLY "Endast undernycklar"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_EXPAND "&Visa nivå"
IDS_COLLAPSE "&Dölj nivå"
END
/*****************************************************************/
/*
* Dialog
*/
IDD_DIALOG1 DIALOG DISCARDABLE 50, 50, 268, 98
STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS |
WS_BORDER
FONT 8, "MS Sans Serif"
BEGIN
END
IDD_DIALOG2 DIALOG DISCARDABLE 0, 0, 187, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,130,7,50,14
PUSHBUTTON "Avbryt",IDCANCEL,130,24,50,14
END
/*
* TEXTINCLUDE
*/
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
/*
* String Table
*/
/*
*STRINGTABLE DISCARDABLE
*BEGIN
* ID_HELP_HELPTOPICS "Öppnar hjälpen för Registereditorn."
* ID_HELP_ABOUT "Visar programinformation, versionsnummer, och upphovsrätt."
*END
*/
/*****************************************************************/
+30 -30
View File
@@ -1,30 +1,30 @@
#ifndef _REGEDIT_H
#define _REGEDIT_H
#define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */
#include <windows.h>
#include <commctrl.h>
#include <shellapi.h>
#include <shlwapi.h>
#include <stdlib.h>
#include <tchar.h>
#include <process.h>
#include <stdio.h>
#include <limits.h>
#include <accctrl.h>
#include <objbase.h>
#include <basetyps.h>
#include <unknwn.h>
#include <aclui.h>
#include <aclapi.h>
#include <commdlg.h>
#include <cderr.h>
#include <ole2.h>
#include <objbase.h>
#include <objsel.h>
#include <assert.h>
#include "main.h"
#include "regproc.h"
#include "hexedit.h"
#include "security.h"
#endif
#ifndef _REGEDIT_H
#define _REGEDIT_H
#define WIN32_LEAN_AND_MEAN /* Exclude rarely-used stuff from Windows headers */
#include <windows.h>
#include <commctrl.h>
#include <shellapi.h>
#include <shlwapi.h>
#include <stdlib.h>
#include <tchar.h>
#include <process.h>
#include <stdio.h>
#include <limits.h>
#include <accctrl.h>
#include <objbase.h>
#include <basetyps.h>
#include <unknwn.h>
#include <aclui.h>
#include <aclapi.h>
#include <commdlg.h>
#include <cderr.h>
#include <ole2.h>
#include <objbase.h>
#include <objsel.h>
#include <assert.h>
#include "main.h"
#include "regproc.h"
#include "hexedit.h"
#include "security.h"
#endif
@@ -1,58 +1,58 @@
/*
* Copyright 2005 Robert Horvath - Hungarian translation - talley at cubeclub.hu
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "A rendszer egy hibából állt helyre.", -1, 115, 15, 160, 24
LTEXT "Szeretnéd értesíteni errõl a ReactOS projektet?", -1, 115, 35, 160, 17
END
IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Kérlek írd le mit csináltál amikor a hiba jelentkezett.\n\nKattints a 'Tovább' gombra, hogy elküld a hibaértesítõt a ReactOS projektnek, vagy a 'Mégse' gombot, ha nem akarsz információkat küldeni.",-1,10,0,225,40
LTEXT "Az e-mail címed (nem szükséges):",-1,10,40,120,20
EDITTEXT IDE_SUBMIT_REPORT_YOUR_EMAIL, 110,40,150,12
LTEXT "A probléma rövid megfogalmazása (nem szükséges):",-1,10,55,120,20
EDITTEXT IDE_SUBMIT_REPORT_PROBLEM_DESCRIPTION,10,65,250,55,ES_WANTRETURN|ES_MULTILINE|ES_LEFT|WS_BORDER|WS_TABSTOP|WS_VSCROLL
END
IDD_SUBMITTING_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "{STATUS}",IDC_SUBMISSION_STATUS,25,58,225,8
CONTROL "", IDC_SUBMITTING_IN_PROGRESS, "msctls_progress32", PBS_MARQUEE | WS_CHILD | WS_VISIBLE | WS_BORDER, 25, 80, 225, 8
END
IDD_SUBMITTED_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "A hibajelentésed sikeresen ellett küldve a ReactOS projekt számára. Köszönjük!",-1,25,5,225,20
END
STRINGTABLE
BEGIN
IDS_WIZARD_NAME "Hibajelentés küldése a ReactOS projektnek"
IDS_FAILED_TO_CONTACT_SERVER "A rendszer nem felvenni a kapcsolatot a hibabejelentõ géppel.\nKérlek vizsgáld meg, hogy felvagy-e csatlakozva az internetre."
IDS_FAILED_TO_DELIVER_ERROR_REPORT "A rendszer nem tudta elküldeni a hibajelentést."
END
STRINGTABLE
BEGIN
IDS_CONTACTING_SERVER "A kapcsolat felvétele a hibabejelentõ géppel..."
IDS_FAILED_TO_INITIALIZE_WINSOCK "Nem sikerült a hálózatkezelõ rendszert elindítani (windows error code %d)"
IDS_FAILED_TO_LOCATE_SERVER "Nem sikerült felvenni a kapcsolatot a hibabejelentõ géppel"
END
/*
* Copyright 2005 Robert Horvath - Hungarian translation - talley at cubeclub.hu
*/
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
IDD_FIRSTPAGE DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "A rendszer egy hibából állt helyre.", -1, 115, 15, 160, 24
LTEXT "Szeretnéd értesíteni errõl a ReactOS projektet?", -1, 115, 35, 160, 17
END
IDD_SUBMIT_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "Kérlek írd le mit csináltál amikor a hiba jelentkezett.\n\nKattints a 'Tovább' gombra, hogy elküld a hibaértesítõt a ReactOS projektnek, vagy a 'Mégse' gombot, ha nem akarsz információkat küldeni.",-1,10,0,225,40
LTEXT "Az e-mail címed (nem szükséges):",-1,10,40,120,20
EDITTEXT IDE_SUBMIT_REPORT_YOUR_EMAIL, 110,40,150,12
LTEXT "A probléma rövid megfogalmazása (nem szükséges):",-1,10,55,120,20
EDITTEXT IDE_SUBMIT_REPORT_PROBLEM_DESCRIPTION,10,65,250,55,ES_WANTRETURN|ES_MULTILINE|ES_LEFT|WS_BORDER|WS_TABSTOP|WS_VSCROLL
END
IDD_SUBMITTING_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "{STATUS}",IDC_SUBMISSION_STATUS,25,58,225,8
CONTROL "", IDC_SUBMITTING_IN_PROGRESS, "msctls_progress32", PBS_MARQUEE | WS_CHILD | WS_VISIBLE | WS_BORDER, 25, 80, 225, 8
END
IDD_SUBMITTED_REPORT DIALOGEX 0, 0, PROPSHEETWIDTH, PROPSHEETHEIGHT
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Hibajelentõ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
LTEXT "A hibajelentésed sikeresen ellett küldve a ReactOS projekt számára. Köszönjük!",-1,25,5,225,20
END
STRINGTABLE
BEGIN
IDS_WIZARD_NAME "Hibajelentés küldése a ReactOS projektnek"
IDS_FAILED_TO_CONTACT_SERVER "A rendszer nem felvenni a kapcsolatot a hibabejelentõ géppel.\nKérlek vizsgáld meg, hogy felvagy-e csatlakozva az internetre."
IDS_FAILED_TO_DELIVER_ERROR_REPORT "A rendszer nem tudta elküldeni a hibajelentést."
END
STRINGTABLE
BEGIN
IDS_CONTACTING_SERVER "A kapcsolat felvétele a hibabejelentõ géppel..."
IDS_FAILED_TO_INITIALIZE_WINSOCK "Nem sikerült a hálózatkezelõ rendszert elindítani (windows error code %d)"
IDS_FAILED_TO_LOCATE_SERVER "Nem sikerült felvenni a kapcsolatot a hibabejelentõ géppel"
END
@@ -1,17 +1,17 @@
#include <windows.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Error Reporting Assistant\0"
#define REACTOS_STR_INTERNAL_NAME "reporterror\0"
#define REACTOS_STR_ORIGINAL_FILENAME "reporterror.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 24 DISCARDABLE "manifest.xml"
/* Bitmaps */
IDB_WATERMARK BITMAP "resources/watermark.bmp"
IDB_HEADER BITMAP "resources/header.bmp"
#include "rsrc.rc"
#include <windows.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Error Reporting Assistant\0"
#define REACTOS_STR_INTERNAL_NAME "reporterror\0"
#define REACTOS_STR_ORIGINAL_FILENAME "reporterror.exe\0"
#include <reactos/version.rc>
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
1 24 DISCARDABLE "manifest.xml"
/* Bitmaps */
IDB_WATERMARK BITMAP "resources/watermark.bmp"
IDB_HEADER BITMAP "resources/header.bmp"
#include "rsrc.rc"
+105 -105
View File
@@ -1,105 +1,105 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/sc/print.c
* PURPOSE: print service info
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "sc.h"
VOID
PrintService(LPCTSTR lpServiceName,
LPSERVICE_STATUS_PROCESS pStatus,
BOOL bExtended)
{
_tprintf(_T("SERVICE_NAME: %s\n"), lpServiceName);
_tprintf(_T("\tTYPE : %x "),
(unsigned int)pStatus->dwServiceType);
switch (pStatus->dwServiceType)
{
case SERVICE_KERNEL_DRIVER:
_tprintf(_T("KERNEL_DRIVER\n"));
break;
case SERVICE_FILE_SYSTEM_DRIVER:
_tprintf(_T("FILE_SYSTEM_DRIVER\n"));
break;
case SERVICE_WIN32_OWN_PROCESS:
_tprintf(_T("WIN32_OWN_PROCESS\n"));
break;
case SERVICE_WIN32_SHARE_PROCESS:
_tprintf(_T("WIN32_SHARE_PROCESS\n"));
break;
case SERVICE_WIN32_OWN_PROCESS + SERVICE_INTERACTIVE_PROCESS:
_tprintf(_T("WIN32_OWN_PROCESS (interactive)\n"));
break;
case SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS:
_tprintf(_T("WIN32_SHARE_PROCESS (interactive)\n"));
break;
default : _tprintf(_T("\n")); break;
}
_tprintf(_T("\tSTATE : %x "),
(unsigned int)pStatus->dwCurrentState);
switch (pStatus->dwCurrentState)
{
case 1 : _tprintf(_T("STOPPED\n")); break;
case 2 : _tprintf(_T("START_PENDING\n")); break;
case 3 : _tprintf(_T("STOP_PENDING\n")); break;
case 4 : _tprintf(_T("RUNNING\n")); break;
case 5 : _tprintf(_T("CONTINUE_PENDING\n")); break;
case 6 : _tprintf(_T("PAUSE_PENDING\n")); break;
case 7 : _tprintf(_T("PAUSED\n")); break;
default : _tprintf(_T("\n")); break;
}
_tprintf(_T("\t\t\t\t("));
if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_STOP)
_tprintf(_T("STOPPABLE,"));
else
_tprintf(_T("NOT_STOPPABLE,"));
if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_PAUSE_CONTINUE)
_tprintf(_T("PAUSABLE,"));
else
_tprintf(_T("NOT_PAUSABLE,"));
if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_SHUTDOWN)
_tprintf(_T("ACCEPTS_SHUTDOWN"));
else
_tprintf(_T("IGNORES_SHUTDOWN"));
_tprintf(_T(")\n"));
_tprintf(_T("\tWIN32_EXIT_CODE : %d (0x%x)\n"),
(unsigned int)pStatus->dwWin32ExitCode,
(unsigned int)pStatus->dwWin32ExitCode);
_tprintf(_T("\tSERVICE_EXIT_CODE : %d (0x%x)\n"),
(unsigned int)pStatus->dwServiceSpecificExitCode,
(unsigned int)pStatus->dwServiceSpecificExitCode);
_tprintf(_T("\tCHECKPOINT : 0x%x\n"),
(unsigned int)pStatus->dwCheckPoint);
_tprintf(_T("\tWAIT_HINT : 0x%x\n"),
(unsigned int)pStatus->dwWaitHint);
if (bExtended)
{
_tprintf(_T("\tPID : %lu\n"),
pStatus->dwProcessId);
_tprintf(_T("\tFLAGS : %lu\n"),
pStatus->dwServiceFlags);
}
_tprintf(_T("\n"));
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/sc/print.c
* PURPOSE: print service info
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "sc.h"
VOID
PrintService(LPCTSTR lpServiceName,
LPSERVICE_STATUS_PROCESS pStatus,
BOOL bExtended)
{
_tprintf(_T("SERVICE_NAME: %s\n"), lpServiceName);
_tprintf(_T("\tTYPE : %x "),
(unsigned int)pStatus->dwServiceType);
switch (pStatus->dwServiceType)
{
case SERVICE_KERNEL_DRIVER:
_tprintf(_T("KERNEL_DRIVER\n"));
break;
case SERVICE_FILE_SYSTEM_DRIVER:
_tprintf(_T("FILE_SYSTEM_DRIVER\n"));
break;
case SERVICE_WIN32_OWN_PROCESS:
_tprintf(_T("WIN32_OWN_PROCESS\n"));
break;
case SERVICE_WIN32_SHARE_PROCESS:
_tprintf(_T("WIN32_SHARE_PROCESS\n"));
break;
case SERVICE_WIN32_OWN_PROCESS + SERVICE_INTERACTIVE_PROCESS:
_tprintf(_T("WIN32_OWN_PROCESS (interactive)\n"));
break;
case SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS:
_tprintf(_T("WIN32_SHARE_PROCESS (interactive)\n"));
break;
default : _tprintf(_T("\n")); break;
}
_tprintf(_T("\tSTATE : %x "),
(unsigned int)pStatus->dwCurrentState);
switch (pStatus->dwCurrentState)
{
case 1 : _tprintf(_T("STOPPED\n")); break;
case 2 : _tprintf(_T("START_PENDING\n")); break;
case 3 : _tprintf(_T("STOP_PENDING\n")); break;
case 4 : _tprintf(_T("RUNNING\n")); break;
case 5 : _tprintf(_T("CONTINUE_PENDING\n")); break;
case 6 : _tprintf(_T("PAUSE_PENDING\n")); break;
case 7 : _tprintf(_T("PAUSED\n")); break;
default : _tprintf(_T("\n")); break;
}
_tprintf(_T("\t\t\t\t("));
if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_STOP)
_tprintf(_T("STOPPABLE,"));
else
_tprintf(_T("NOT_STOPPABLE,"));
if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_PAUSE_CONTINUE)
_tprintf(_T("PAUSABLE,"));
else
_tprintf(_T("NOT_PAUSABLE,"));
if (pStatus->dwControlsAccepted & SERVICE_ACCEPT_SHUTDOWN)
_tprintf(_T("ACCEPTS_SHUTDOWN"));
else
_tprintf(_T("IGNORES_SHUTDOWN"));
_tprintf(_T(")\n"));
_tprintf(_T("\tWIN32_EXIT_CODE : %d (0x%x)\n"),
(unsigned int)pStatus->dwWin32ExitCode,
(unsigned int)pStatus->dwWin32ExitCode);
_tprintf(_T("\tSERVICE_EXIT_CODE : %d (0x%x)\n"),
(unsigned int)pStatus->dwServiceSpecificExitCode,
(unsigned int)pStatus->dwServiceSpecificExitCode);
_tprintf(_T("\tCHECKPOINT : 0x%x\n"),
(unsigned int)pStatus->dwCheckPoint);
_tprintf(_T("\tWAIT_HINT : 0x%x\n"),
(unsigned int)pStatus->dwWaitHint);
if (bExtended)
{
_tprintf(_T("\tPID : %lu\n"),
pStatus->dwProcessId);
_tprintf(_T("\tFLAGS : %lu\n"),
pStatus->dwServiceFlags);
}
_tprintf(_T("\n"));
}
+10 -10
View File
@@ -1,10 +1,10 @@
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "Services control application\0"
#define REACTOS_STR_INTERNAL_NAME "sc\0"
#define REACTOS_STR_ORIGINAL_FILENAME "sc.exe\0"
#include <reactos/version.rc>
//#include "En.rc"
#include <windows.h>
#include <commctrl.h>
#include "resource.h"
#define REACTOS_STR_FILE_DESCRIPTION "Services control application\0"
#define REACTOS_STR_INTERNAL_NAME "sc\0"
#define REACTOS_STR_ORIGINAL_FILENAME "sc.exe\0"
#include <reactos/version.rc>
//#include "En.rc"
@@ -1,17 +1,17 @@
Matrrix2 screensaver for ReactOS
/*****************************************
Freeware
Copyright J Brown 2003
Updates at http://www.catch22.net
******************************************/
The author has given permission to use these sources
under Public Domain. Do what thou will but please give
credit where credit is due.
-Magnus Olsen (aka GreatLord) / Aleasky (aka Fireball)
Matrrix2 screensaver for ReactOS
/*****************************************
Freeware
Copyright J Brown 2003
Updates at http://www.catch22.net
******************************************/
The author has given permission to use these sources
under Public Domain. Do what thou will but please give
credit where credit is due.
-Magnus Olsen (aka GreatLord) / Aleasky (aka Fireball)
@@ -1,32 +1,32 @@
Matrix ScreenSaver 2.0
www.catch22.ork.uk
Freeware written by J Brown 2003
------------------------------------
The Matrix ScreenSaver is a small, fast and elegant Windows
version of the green "Matrix" cypher-code seen in the films.
With this version you can even add messages which are
decoded displayed in realtime.
Features
------------------------------------
+ Small and FAST (50Kb!)
+ All 32bit versions of Windows (Win95,98,ME,NT,2000,XP,NET)
+ Multimonitor support (new in version 2)
+ Custom matrix messages
+ Highly configurable
+ Full sourcecode available!
Installation and use
------------------------------------
Simply copy "matrix.scr" to your windows directory,
or right-click this file in explorer and click "Install".
Other than that, it's just a standard Windows screensaver so it
works just like any other screensaver
Matrix ScreenSaver 2.0
www.catch22.ork.uk
Freeware written by J Brown 2003
------------------------------------
The Matrix ScreenSaver is a small, fast and elegant Windows
version of the green "Matrix" cypher-code seen in the films.
With this version you can even add messages which are
decoded displayed in realtime.
Features
------------------------------------
+ Small and FAST (50Kb!)
+ All 32bit versions of Windows (Win95,98,ME,NT,2000,XP,NET)
+ Multimonitor support (new in version 2)
+ Custom matrix messages
+ Highly configurable
+ Full sourcecode available!
Installation and use
------------------------------------
Simply copy "matrix.scr" to your windows directory,
or right-click this file in explorer and click "Install".
Other than that, it's just a standard Windows screensaver so it
works just like any other screensaver
@@ -1,312 +1,312 @@
//
// config.c
//
// Screensaver Configuration dialog
//
#include <windows.h>
#include <commctrl.h>
#include <tchar.h>
#include "resource.h"
#include "globals.h"
#include "message.h"
#include "matrix.h"
// needed for slider-controls
//#pragma comment(lib, "comctl32.lib")
//
// Called once for every font - add to list
//
int CALLBACK EnumFontProc(ENUMLOGFONT *lpelfe, NEWTEXTMETRIC *lpntme, int FontType, LPARAM lParam)
{
SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfLogFont.lfFaceName);
return 1;
}
//
// Add every fontname into specified combobox
//
void AddFonts(HWND hwndCombo)
{
HDC hdc;
LOGFONT lf;
lf.lfCharSet = ANSI_CHARSET;
lf.lfPitchAndFamily = 0;
lf.lfFaceName[0] = _T('\0');
hdc = GetDC(0);
EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontProc, (LONG)hwndCombo, 0);
ReleaseDC(0, hdc);
}
//
// Redraw preview control with current font/fontsize
//
void UpdatePreview(HWND hwnd)
{
g_nFontSize = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS,0, 0);
SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold);
InvalidateRect(GetDlgItem(hwnd, IDC_PREVIEW), 0, 0);
}
//
// Dialogbox procedure for Configuration window
//
BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static TCHAR buf[256];
HWND hwndCombo, hwndCtrl;
int index, items, val;
RECT rect;
static int prevwidth, prevheight;
switch(uMsg)
{
case WM_INITDIALOG:
prevwidth = GetSystemMetrics(SM_CXSCREEN) / GLYPH_WIDTH;
prevheight = GetSystemMetrics(SM_CYSCREEN) / GLYPH_HEIGHT + 1;
//Add any saved messages to the combo box
for(index = 0; index < g_nNumMessages; index++)
{
if(lstrlen(g_szMessages[index]) > 0)
SendDlgItemMessage(hwnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)g_szMessages[index]);
}
//select the first message, and preview it
SendDlgItemMessage(hwnd, IDC_COMBO1, CB_SETCURSEL, 0, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETRANGE, 0, MAKELONG(SPEED_MIN, SPEED_MAX));
SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETRANGE, 0, MAKELONG(DENSITY_MIN, DENSITY_MAX));
SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETRANGE, 0, MAKELONG(MSGSPEED_MIN, MSGSPEED_MAX));
SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETRANGE, 0, MAKELONG(FONT_MIN, FONT_MAX));
//SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETTICFREQ, 5, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETTICFREQ, 5, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETTICFREQ, 50, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETTICFREQ, 2, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETPOS, TRUE, g_nMatrixSpeed);
SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETPOS, TRUE, g_nDensity);
SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETPOS, TRUE, g_nMessageSpeed);
SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETPOS, TRUE, g_nFontSize);
CheckDlgButton(hwnd, IDC_RANDOM, g_fRandomizeMessages);
CheckDlgButton(hwnd, IDC_BOLD, g_fFontBold);
AddFonts(GetDlgItem(hwnd, IDC_COMBO2));
index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_FINDSTRING, 0, (LPARAM)g_szFontName);
SendDlgItemMessage(hwnd, IDC_COMBO2, CB_SETCURSEL, index, 0);
UpdatePreview(hwnd);
return 0;
case WM_DESTROY:
//DeInitMessage();
return 0;
case WM_CTLCOLORSTATIC:
if(GetDlgCtrlID((HWND)lParam) == IDC_ABOUT)
{
SetTextColor((HDC)wParam, RGB(0,80,0));
SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE));
return (BOOL)GetSysColorBrush(COLOR_3DFACE);
}
else if(GetDlgCtrlID((HWND)lParam) == IDC_PREVIEW)
{
HDC hdc = (HDC)wParam;
RECT clip;
GetDlgItemText(hwnd, IDC_COMBO1, buf, 256);
GetClientRect((HWND)lParam, &rect);
if(prevwidth < rect.right)
{
rect.left = (rect.right-prevwidth) / 2;
rect.right = rect.left + prevwidth;
}
else
{
rect.left = 0;
rect.right = prevwidth;
}
if(prevheight < rect.bottom)
{
rect.top = (rect.bottom-prevheight) / 2;
rect.bottom = rect.top + prevheight;
}
else
{
rect.top = 0;
rect.bottom = prevheight;
}
SetTextColor(hdc, RGB(128,255,128));
SetBkColor(hdc, 0);
//SetRect(&rect, 0, 0, PrevMessage->width, MAXMSG_HEIGHT);
CopyRect(&clip, &rect);
FillRect(hdc, &rect, GetStockObject(BLACK_BRUSH));
SelectObject(hdc, g_hFont);
InflateRect(&clip, 2, 2);
FrameRect(hdc, &clip, GetSysColorBrush(COLOR_3DSHADOW));
IntersectClipRect(hdc, rect.left, rect.top, rect.right, rect.bottom);
// figure out where the bounding rectangle should be
DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT);
OffsetRect(&rect, (prevwidth-(rect.right-rect.left))/2, (prevheight-(rect.bottom-rect.top))/2);
// now draw it!
DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK);
return (BOOL)GetStockObject(NULL_BRUSH);
}
else
{
break;
}
case WM_HSCROLL:
if((HWND)lParam == GetDlgItem(hwnd, IDC_SLIDER4))
{
// one of the sliders changed..update
UpdatePreview(hwnd);
}
return 0;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case CBN_EDITCHANGE:
case CBN_SELCHANGE:
//fall through to Preview:
index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETCURSEL, 0, 0);
SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETLBTEXT, index, (LPARAM)g_szFontName);
//SetMessageFont(hwnd, g_szFontName, g_nFontSize, TRUE);
UpdatePreview(hwnd);
return 0;
}
switch(LOWORD(wParam))
{
case IDC_RANDOM:
g_fRandomizeMessages = IsDlgButtonChecked(hwnd, IDC_RANDOM);
break;
case IDC_BOLD:
g_fFontBold = IsDlgButtonChecked(hwnd, IDC_BOLD);
UpdatePreview(hwnd);
break;
case IDOK:
hwndCtrl = GetDlgItem(hwnd, IDC_COMBO1);
items = min(MAX_MESSAGES, SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0));
for(index = 0; index < items; index++)
{
SendMessage(hwndCtrl, CB_GETLBTEXT, index, (LPARAM)g_szMessages[index]);
}
g_nNumMessages = items;
//matrix speed
val = SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_GETPOS, 0, 0);
if(val >= SPEED_MIN && val <= SPEED_MAX)
g_nMatrixSpeed = val;
//density
val = SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_GETPOS, 0, 0);
if(val >= DENSITY_MIN && val <= DENSITY_MAX)
g_nDensity = val;
//message speed
val = SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_GETPOS, 0, 0);
if(val >= MSGSPEED_MIN && val <= MSGSPEED_MAX)
g_nMessageSpeed = val;
//font size
val = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS, 0, 0);
if(val >= FONT_MIN && val <= FONT_MAX)
g_nFontSize = val;
SaveSettings();
EndDialog(hwnd, 0);
return 0;
case IDCANCEL:
EndDialog(hwnd, 0);
return TRUE;
case IDC_ADD:
hwndCombo = GetDlgItem(hwnd, IDC_COMBO1);
if(GetWindowText(hwndCombo, buf, 256))
{
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)buf);
}
UpdatePreview(hwnd);
return 0;
case IDC_REMOVE:
hwndCombo = GetDlgItem(hwnd, IDC_COMBO1);
GetWindowText(hwndCombo, buf, 256);
index = SendMessage(hwndCombo, CB_GETCURSEL, 0, 0);
SendMessage(hwndCombo, CB_DELETESTRING, index, 0);
SendMessage(hwndCombo, CB_SETCURSEL, 0, 0);
UpdatePreview(hwnd);
return 0;
}
return 0;
case WM_CLOSE:
EndDialog(hwnd, 0);
return 0;
}
return 0;
}
//
// Display the configuration dialog
//
int Configure(HWND hwndParent)
{
INITCOMMONCONTROLSEX icc;
icc.dwICC = ICC_UPDOWN_CLASS | ICC_BAR_CLASSES;
icc.dwSize = sizeof(icc);
InitCommonControlsEx(&icc);
#ifdef _DEBUG
if(hwndParent == NULL)
hwndParent = 0;
#else
if(hwndParent == NULL)
hwndParent = GetForegroundWindow();
#endif
DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_CONFIG), hwndParent, ConfigDlgProc);
return 0;
}
//
// config.c
//
// Screensaver Configuration dialog
//
#include <windows.h>
#include <commctrl.h>
#include <tchar.h>
#include "resource.h"
#include "globals.h"
#include "message.h"
#include "matrix.h"
// needed for slider-controls
//#pragma comment(lib, "comctl32.lib")
//
// Called once for every font - add to list
//
int CALLBACK EnumFontProc(ENUMLOGFONT *lpelfe, NEWTEXTMETRIC *lpntme, int FontType, LPARAM lParam)
{
SendMessage((HWND)lParam, CB_ADDSTRING, 0, (LPARAM)lpelfe->elfLogFont.lfFaceName);
return 1;
}
//
// Add every fontname into specified combobox
//
void AddFonts(HWND hwndCombo)
{
HDC hdc;
LOGFONT lf;
lf.lfCharSet = ANSI_CHARSET;
lf.lfPitchAndFamily = 0;
lf.lfFaceName[0] = _T('\0');
hdc = GetDC(0);
EnumFontFamiliesEx(hdc, &lf, (FONTENUMPROC)EnumFontProc, (LONG)hwndCombo, 0);
ReleaseDC(0, hdc);
}
//
// Redraw preview control with current font/fontsize
//
void UpdatePreview(HWND hwnd)
{
g_nFontSize = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS,0, 0);
SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold);
InvalidateRect(GetDlgItem(hwnd, IDC_PREVIEW), 0, 0);
}
//
// Dialogbox procedure for Configuration window
//
BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
static TCHAR buf[256];
HWND hwndCombo, hwndCtrl;
int index, items, val;
RECT rect;
static int prevwidth, prevheight;
switch(uMsg)
{
case WM_INITDIALOG:
prevwidth = GetSystemMetrics(SM_CXSCREEN) / GLYPH_WIDTH;
prevheight = GetSystemMetrics(SM_CYSCREEN) / GLYPH_HEIGHT + 1;
//Add any saved messages to the combo box
for(index = 0; index < g_nNumMessages; index++)
{
if(lstrlen(g_szMessages[index]) > 0)
SendDlgItemMessage(hwnd, IDC_COMBO1, CB_ADDSTRING, 0, (LPARAM)g_szMessages[index]);
}
//select the first message, and preview it
SendDlgItemMessage(hwnd, IDC_COMBO1, CB_SETCURSEL, 0, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETRANGE, 0, MAKELONG(SPEED_MIN, SPEED_MAX));
SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETRANGE, 0, MAKELONG(DENSITY_MIN, DENSITY_MAX));
SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETRANGE, 0, MAKELONG(MSGSPEED_MIN, MSGSPEED_MAX));
SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETRANGE, 0, MAKELONG(FONT_MIN, FONT_MAX));
//SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETTICFREQ, 5, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETTICFREQ, 5, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETTICFREQ, 50, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETTICFREQ, 2, 0);
SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_SETPOS, TRUE, g_nMatrixSpeed);
SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_SETPOS, TRUE, g_nDensity);
SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_SETPOS, TRUE, g_nMessageSpeed);
SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_SETPOS, TRUE, g_nFontSize);
CheckDlgButton(hwnd, IDC_RANDOM, g_fRandomizeMessages);
CheckDlgButton(hwnd, IDC_BOLD, g_fFontBold);
AddFonts(GetDlgItem(hwnd, IDC_COMBO2));
index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_FINDSTRING, 0, (LPARAM)g_szFontName);
SendDlgItemMessage(hwnd, IDC_COMBO2, CB_SETCURSEL, index, 0);
UpdatePreview(hwnd);
return 0;
case WM_DESTROY:
//DeInitMessage();
return 0;
case WM_CTLCOLORSTATIC:
if(GetDlgCtrlID((HWND)lParam) == IDC_ABOUT)
{
SetTextColor((HDC)wParam, RGB(0,80,0));
SetBkColor((HDC)wParam, GetSysColor(COLOR_3DFACE));
return (BOOL)GetSysColorBrush(COLOR_3DFACE);
}
else if(GetDlgCtrlID((HWND)lParam) == IDC_PREVIEW)
{
HDC hdc = (HDC)wParam;
RECT clip;
GetDlgItemText(hwnd, IDC_COMBO1, buf, 256);
GetClientRect((HWND)lParam, &rect);
if(prevwidth < rect.right)
{
rect.left = (rect.right-prevwidth) / 2;
rect.right = rect.left + prevwidth;
}
else
{
rect.left = 0;
rect.right = prevwidth;
}
if(prevheight < rect.bottom)
{
rect.top = (rect.bottom-prevheight) / 2;
rect.bottom = rect.top + prevheight;
}
else
{
rect.top = 0;
rect.bottom = prevheight;
}
SetTextColor(hdc, RGB(128,255,128));
SetBkColor(hdc, 0);
//SetRect(&rect, 0, 0, PrevMessage->width, MAXMSG_HEIGHT);
CopyRect(&clip, &rect);
FillRect(hdc, &rect, GetStockObject(BLACK_BRUSH));
SelectObject(hdc, g_hFont);
InflateRect(&clip, 2, 2);
FrameRect(hdc, &clip, GetSysColorBrush(COLOR_3DSHADOW));
IntersectClipRect(hdc, rect.left, rect.top, rect.right, rect.bottom);
// figure out where the bounding rectangle should be
DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT);
OffsetRect(&rect, (prevwidth-(rect.right-rect.left))/2, (prevheight-(rect.bottom-rect.top))/2);
// now draw it!
DrawText(hdc, buf, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK);
return (BOOL)GetStockObject(NULL_BRUSH);
}
else
{
break;
}
case WM_HSCROLL:
if((HWND)lParam == GetDlgItem(hwnd, IDC_SLIDER4))
{
// one of the sliders changed..update
UpdatePreview(hwnd);
}
return 0;
case WM_COMMAND:
switch(HIWORD(wParam))
{
case CBN_EDITCHANGE:
case CBN_SELCHANGE:
//fall through to Preview:
index = SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETCURSEL, 0, 0);
SendDlgItemMessage(hwnd, IDC_COMBO2, CB_GETLBTEXT, index, (LPARAM)g_szFontName);
//SetMessageFont(hwnd, g_szFontName, g_nFontSize, TRUE);
UpdatePreview(hwnd);
return 0;
}
switch(LOWORD(wParam))
{
case IDC_RANDOM:
g_fRandomizeMessages = IsDlgButtonChecked(hwnd, IDC_RANDOM);
break;
case IDC_BOLD:
g_fFontBold = IsDlgButtonChecked(hwnd, IDC_BOLD);
UpdatePreview(hwnd);
break;
case IDOK:
hwndCtrl = GetDlgItem(hwnd, IDC_COMBO1);
items = min(MAX_MESSAGES, SendMessage(hwndCtrl, CB_GETCOUNT, 0, 0));
for(index = 0; index < items; index++)
{
SendMessage(hwndCtrl, CB_GETLBTEXT, index, (LPARAM)g_szMessages[index]);
}
g_nNumMessages = items;
//matrix speed
val = SendDlgItemMessage(hwnd, IDC_SLIDER1, TBM_GETPOS, 0, 0);
if(val >= SPEED_MIN && val <= SPEED_MAX)
g_nMatrixSpeed = val;
//density
val = SendDlgItemMessage(hwnd, IDC_SLIDER2, TBM_GETPOS, 0, 0);
if(val >= DENSITY_MIN && val <= DENSITY_MAX)
g_nDensity = val;
//message speed
val = SendDlgItemMessage(hwnd, IDC_SLIDER3, TBM_GETPOS, 0, 0);
if(val >= MSGSPEED_MIN && val <= MSGSPEED_MAX)
g_nMessageSpeed = val;
//font size
val = SendDlgItemMessage(hwnd, IDC_SLIDER4, TBM_GETPOS, 0, 0);
if(val >= FONT_MIN && val <= FONT_MAX)
g_nFontSize = val;
SaveSettings();
EndDialog(hwnd, 0);
return 0;
case IDCANCEL:
EndDialog(hwnd, 0);
return TRUE;
case IDC_ADD:
hwndCombo = GetDlgItem(hwnd, IDC_COMBO1);
if(GetWindowText(hwndCombo, buf, 256))
{
SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)buf);
}
UpdatePreview(hwnd);
return 0;
case IDC_REMOVE:
hwndCombo = GetDlgItem(hwnd, IDC_COMBO1);
GetWindowText(hwndCombo, buf, 256);
index = SendMessage(hwndCombo, CB_GETCURSEL, 0, 0);
SendMessage(hwndCombo, CB_DELETESTRING, index, 0);
SendMessage(hwndCombo, CB_SETCURSEL, 0, 0);
UpdatePreview(hwnd);
return 0;
}
return 0;
case WM_CLOSE:
EndDialog(hwnd, 0);
return 0;
}
return 0;
}
//
// Display the configuration dialog
//
int Configure(HWND hwndParent)
{
INITCOMMONCONTROLSEX icc;
icc.dwICC = ICC_UPDOWN_CLASS | ICC_BAR_CLASSES;
icc.dwSize = sizeof(icc);
InitCommonControlsEx(&icc);
#ifdef _DEBUG
if(hwndParent == NULL)
hwndParent = 0;
#else
if(hwndParent == NULL)
hwndParent = GetForegroundWindow();
#endif
DialogBox(GetModuleHandle(0), MAKEINTRESOURCE(IDD_CONFIG), hwndParent, ConfigDlgProc);
return 0;
}
@@ -1,63 +1,63 @@
#ifndef GLOBALS_INCLUDED
#define GLOBALS_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#define APPNAME _T("MATRIX ScreenSaver 2.0")
#define DENSITY 24
#define DENSITY_MAX 50
#define DENSITY_MIN 5
// constants inferred from matrix.bmp
#define MAX_INTENSITY 5 // number of intensity levels
#define NUM_GLYPHS 26 // number of "glyphs" in each level
#define GLYPH_WIDTH 14 // width of each glyph (pixels)
#define GLYPH_HEIGHT 14 // height of each glyph (pixels)
#define SPEED_MAX 10
#define SPEED_MIN 1
#define MAXMSG_WIDTH 0x100
#define MAXMSG_HEIGHT 0x100
#define MAXMSG_LENGTH 64
#define MSGSPEED_MAX 500
#define MSGSPEED_MIN 50
#define MAX_MESSAGES 16
#define FONT_MIN 8
#define FONT_MAX 30
extern TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH];
extern int g_nFontSize;
extern TCHAR g_szFontName[];
extern BOOL g_fFontBold;
extern int g_nNumMessages;
extern int g_nCurrentMessage;
extern int g_nMessageSpeed;
extern int g_nMatrixSpeed;
extern int g_nDensity;
extern BOOL g_fRandomizeMessages;
extern HFONT g_hFont;
extern BOOL g_fScreenSaving;
void LoadSettings();
void SaveSettings();
BOOL ChangePassword(HWND hwnd);
BOOL VerifyPassword(HWND hwnd);
BOOL Configure(HWND hwndParent);
BOOL ScreenSaver(HWND hwndParent);
int crc_rand();
#ifdef __cplusplus
}
#endif
#endif
#ifndef GLOBALS_INCLUDED
#define GLOBALS_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
#define APPNAME _T("MATRIX ScreenSaver 2.0")
#define DENSITY 24
#define DENSITY_MAX 50
#define DENSITY_MIN 5
// constants inferred from matrix.bmp
#define MAX_INTENSITY 5 // number of intensity levels
#define NUM_GLYPHS 26 // number of "glyphs" in each level
#define GLYPH_WIDTH 14 // width of each glyph (pixels)
#define GLYPH_HEIGHT 14 // height of each glyph (pixels)
#define SPEED_MAX 10
#define SPEED_MIN 1
#define MAXMSG_WIDTH 0x100
#define MAXMSG_HEIGHT 0x100
#define MAXMSG_LENGTH 64
#define MSGSPEED_MAX 500
#define MSGSPEED_MIN 50
#define MAX_MESSAGES 16
#define FONT_MIN 8
#define FONT_MAX 30
extern TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH];
extern int g_nFontSize;
extern TCHAR g_szFontName[];
extern BOOL g_fFontBold;
extern int g_nNumMessages;
extern int g_nCurrentMessage;
extern int g_nMessageSpeed;
extern int g_nMatrixSpeed;
extern int g_nDensity;
extern BOOL g_fRandomizeMessages;
extern HFONT g_hFont;
extern BOOL g_fScreenSaving;
void LoadSettings();
void SaveSettings();
BOOL ChangePassword(HWND hwnd);
BOOL VerifyPassword(HWND hwnd);
BOOL Configure(HWND hwndParent);
BOOL ScreenSaver(HWND hwndParent);
int crc_rand();
#ifdef __cplusplus
}
#endif
#endif
@@ -1,446 +1,446 @@
//
// matrix.c
//
// Matrix-window implementation
//
#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
#include "resource.h"
void DoMatrixMessage(HDC hdc, MATRIX *matrix);
// pseudo-random number generator, based on 16bit CRC algorithm
static WORD _crc_reg = 0;
int crc_rand()
{
const WORD mask = 0xb400;
if(_crc_reg & 1)
_crc_reg = (_crc_reg >> 1) ^ mask;
else
_crc_reg = (_crc_reg >> 1);
return _crc_reg;
}
int GlyphIntensity(GLYPH glyph)
{
return (int)((glyph & 0x7f00) >> 8);
}
GLYPH DarkenGlyph(GLYPH glyph)
{
int intensity = GlyphIntensity(glyph);
if(intensity > 0)
return GLYPH_REDRAW | ((intensity - 1) << 8) | (glyph & 0x00FF);
else
return glyph;
}
GLYPH RandomGlyph(int intensity)
{
return GLYPH_REDRAW | (intensity << 8) | (crc_rand() % NUM_GLYPHS);
}
void RedrawBlip(GLYPH *glypharr, int blippos)
{
glypharr[blippos+0] |= GLYPH_REDRAW;
glypharr[blippos+1] |= GLYPH_REDRAW;
glypharr[blippos+8] |= GLYPH_REDRAW;
glypharr[blippos+9] |= GLYPH_REDRAW;
}
void ScrollMatrixColumn(MATRIX_COLUMN *col)
{
int y;
GLYPH lastglyph = 0;
GLYPH thisglyph;
// wait until we are allowed to scroll
if(col->started == FALSE)
{
if(--col->countdown <= 0)
col->started = TRUE;
return;
}
// "seed" the glyph-run
lastglyph = col->state ? (GLYPH)0 : (GLYPH)(MAX_INTENSITY << 8);
//
// loop over the entire length of the column, looking for changes
// in intensity/darkness. This change signifies the start/end
// of a run of glyphs.
//
for(y = 0; y < col->length; y++)
{
thisglyph = col->glyph[y];
// bottom-most part of "run". Insert a new character (glyph)
// at the end to lengthen the run down the screen..gives the
// impression that the run is "falling" down the screen
if(GlyphIntensity(thisglyph) < GlyphIntensity(lastglyph) &&
GlyphIntensity(thisglyph) == 0)
{
col->glyph[y] = RandomGlyph(MAX_INTENSITY - 1);
y++;
}
// top-most part of "run". Delete a character off the top by
// darkening the glyph until it eventually disappears (turns black).
// this gives the effect that the run as dropped downwards
else if(GlyphIntensity(thisglyph) > GlyphIntensity(lastglyph))
{
col->glyph[y] = DarkenGlyph(thisglyph);
// if we've just darkened the last bit, skip on so
// the whole run doesn't go dark
if(GlyphIntensity(thisglyph) == MAX_INTENSITY - 1)
y++;
}
lastglyph = col->glyph[y];
}
// change state from blanks <-> runs when the current run as expired
if(--col->runlen <= 0)
{
if(col->state ^= 1)
col->runlen = crc_rand() % (3 * DENSITY/2) + DENSITY_MIN;
else
col->runlen = crc_rand() % (DENSITY_MAX+1-DENSITY) + (DENSITY_MIN*2);
}
//
// make a "blip" run down this column at double-speed
//
// mark current blip as redraw so it gets "erased"
if(col->blippos >= 0 && col->blippos < col->length)
RedrawBlip(col->glyph, col->blippos);
// advance down screen at double-speed
col->blippos += 2;
// if the blip gets to the end of a run, start it again (for a random
// length so that the blips never get synched together)
if(col->blippos >= col->bliplen)
{
col->bliplen = col->length + crc_rand() % 50;
col->blippos = 0;
}
// now redraw blip at new position
if(col->blippos >= 0 && col->blippos < col->length)
RedrawBlip(col->glyph, col->blippos);
}
//
// randomly change a small collection glyphs in a column
//
void RandomMatrixColumn(MATRIX_COLUMN *col)
{
int i, y;
for(i = 1, y = 0; i < 16; i++)
{
// find a run
while(GlyphIntensity(col->glyph[y]) < MAX_INTENSITY-1 && y < col->length)
y++;
if(y >= col->length)
break;
col->glyph[y] = (col->glyph[y] & 0xff00) | (crc_rand() % NUM_GLYPHS);
col->glyph[y] |= GLYPH_REDRAW;
y += crc_rand() % 10;
}
}
void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph)
{
int intensity = GlyphIntensity(glyph);
int glyphidx = glyph & 0xff;
BitBlt(hdc, xpos, ypos, GLYPH_WIDTH, GLYPH_HEIGHT, matrix->hdcBitmap,
glyphidx * GLYPH_WIDTH, intensity * GLYPH_HEIGHT, SRCCOPY);
}
void RedrawMatrixColumn(MATRIX_COLUMN *col, MATRIX *matrix, HDC hdc, int xpos)
{
int y;
// loop down the length of the column redrawing only what needs doing
for(y = 0; y < col->length; y++)
{
GLYPH glyph = col->glyph[y];
// does this glyph (character) need to be redrawn?
if(glyph & GLYPH_REDRAW)
{
if((y == col->blippos+0 || y == col->blippos+1 ||
y == col->blippos+8 || y == col->blippos+9) &&
GlyphIntensity(glyph) >= MAX_INTENSITY-1)
glyph |= MAX_INTENSITY << 8;
DrawGlyph(matrix, hdc, xpos, y * GLYPH_HEIGHT, glyph);
// clear redraw state
col->glyph[y] &= ~GLYPH_REDRAW;
}
}
}
void DecodeMatrix(HWND hwnd, MATRIX *matrix)
{
int x;
HDC hdc = GetDC(hwnd);
for(x = 0; x < matrix->numcols; x++)
{
RandomMatrixColumn(&matrix->column[x]);
ScrollMatrixColumn(&matrix->column[x]);
RedrawMatrixColumn(&matrix->column[x], matrix, hdc, x * GLYPH_WIDTH);
}
if(matrix->message)
DoMatrixMessage(hdc, matrix);
ReleaseDC(hwnd, hdc);
}
//
// Allocate matrix structures
//
MATRIX *CreateMatrix(HWND hwnd, int width, int height)
{
MATRIX *matrix;
HDC hdc;
int x, y;
int rows = height / GLYPH_HEIGHT + 1;
int cols = width / GLYPH_WIDTH + 1;
// allocate matrix!
if((matrix = malloc(sizeof(MATRIX) + sizeof(MATRIX_COLUMN) * cols)) == 0)
return 0;
matrix->numcols = cols;
matrix->numrows = rows;
matrix->width = width;
matrix->height = height;
for(x = 0; x < cols; x++)
{
matrix->column[x].length = rows;
matrix->column[x].started = FALSE;
matrix->column[x].countdown = crc_rand() % 100;
matrix->column[x].state = crc_rand() % 2;
matrix->column[x].runlen = crc_rand() % 20 + 3;
matrix->column[x].glyph = malloc(sizeof(GLYPH) * (rows+16));
for(y = 0; y < rows; y++)
matrix->column[x].glyph[y] = 0;//;
}
// Load bitmap!!
hdc = GetDC(NULL);
matrix->hbmBitmap = LoadBitmap(GetModuleHandle(0), MAKEINTRESOURCE(IDB_BITMAP1));
matrix->hdcBitmap = CreateCompatibleDC(hdc);
SelectObject(matrix->hdcBitmap, matrix->hbmBitmap);
ReleaseDC(NULL, hdc);
// Create a message for this window...only if we are
// screen-saving (not if in preview mode)
if(GetParent(hwnd) == 0)
matrix->message = InitMatrixMessage(hwnd, matrix->numcols, matrix->numrows);
else
matrix->message = 0;
return matrix;
}
//
// Free up matrix structures
//
void DestroyMatrix(MATRIX *matrix)
{
int x;
// free the matrix columns
for(x = 0; x < matrix->numcols; x++)
free(matrix->column[x].glyph);
DeleteDC(matrix->hdcBitmap);
DeleteObject(matrix->hbmBitmap);
// now delete the matrix!
free(matrix);
}
MATRIX *GetMatrix(HWND hwnd)
{
return (MATRIX *)GetWindowLong(hwnd, 0);
}
void SetMatrix(HWND hwnd, MATRIX *matrix)
{
SetWindowLong(hwnd, 0, (LONG)matrix);
}
//
// Window procedure for one matrix (1 per screen)
//
LRESULT WINAPI MatrixWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static POINT ptLast;
static POINT ptCursor;
static BOOL fFirstTime = TRUE;
MATRIX *matrix = GetMatrix(hwnd);
switch(msg)
{
// window creation
case WM_NCCREATE:
// create the matrix based on how big this window is
matrix = CreateMatrix(hwnd, ((CREATESTRUCT *)lParam)->cx, ((CREATESTRUCT *)lParam)->cy);
// failed to allocate? stop window creation!
if(matrix == 0)
return FALSE;
SetMatrix(hwnd, matrix);
// start off an animation timer
SetTimer(hwnd, 0xdeadbeef, ((SPEED_MAX - g_nMatrixSpeed) + SPEED_MIN) * 10, 0);
return TRUE;
// window being destroyed, cleanup
case WM_NCDESTROY:
DestroyMatrix(matrix);
PostQuitMessage(0);
return 0;
// animation timer has gone off, redraw the matrix!
case WM_TIMER:
DecodeMatrix(hwnd, matrix);
return 0;
// break out of screen-saver if any keyboard activity
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
PostMessage(hwnd, WM_CLOSE, 0, 0);
return 0;
// break out of screen-saver if any mouse activity
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_MOUSEMOVE:
// If we've got a parent then we must be a preview
if(GetParent(hwnd) != 0)
return 0;
if(fFirstTime)
{
GetCursorPos(&ptLast);
fFirstTime = FALSE;
}
GetCursorPos(&ptCursor);
// if the mouse has moved more than 3 pixels then exit
if(abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3)
PostMessage(hwnd, WM_CLOSE, 0, 0);
ptLast = ptCursor;
return 0;
// someone wants to close us...see if it's ok
case WM_CLOSE:
if(VerifyPassword(hwnd))
{
KillTimer(hwnd, 0xdeadbeef);
DestroyWindow(hwnd);
}
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect)
{
DWORD dwStyle = hwndParent ? WS_CHILD : WS_POPUP;
#ifdef _DEBUG
DWORD dwStyleEx = 0;
#else
DWORD dwStyleEx = WS_EX_TOPMOST;
#endif
if(hwndParent)
GetClientRect(hwndParent, rect);
return CreateWindowEx( dwStyleEx,
APPNAME,
0,
WS_VISIBLE | dwStyle,
rect->left,
rect->top,
rect->right - rect->left,
rect->bottom - rect->top,
hwndParent,
0,
GetModuleHandle(0),
0
);
}
//
// Initialize class for matrix window
//
void InitScreenSaveClass(BOOL fPreview)
{
WNDCLASSEX wcx;
wcx.cbSize = sizeof(WNDCLASSEX);
wcx.style = 0;
wcx.lpfnWndProc = MatrixWndProc;
wcx.cbClsExtra = 0;
wcx.cbWndExtra = sizeof(MATRIX *);
wcx.hInstance = GetModuleHandle(0);
wcx.hIcon = 0;
wcx.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wcx.lpszMenuName = 0;
wcx.lpszClassName = APPNAME;
wcx.hIconSm = 0;
if(fPreview)
wcx.hCursor = LoadCursor(0, IDC_ARROW);
else
wcx.hCursor = LoadCursor(wcx.hInstance, MAKEINTRESOURCE(IDC_BLANKCURSOR));
// initialize the crc register used for "random" number generation
_crc_reg = (WORD)GetTickCount();
RegisterClassEx(&wcx);
}
//
// matrix.c
//
// Matrix-window implementation
//
#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
#include "resource.h"
void DoMatrixMessage(HDC hdc, MATRIX *matrix);
// pseudo-random number generator, based on 16bit CRC algorithm
static WORD _crc_reg = 0;
int crc_rand()
{
const WORD mask = 0xb400;
if(_crc_reg & 1)
_crc_reg = (_crc_reg >> 1) ^ mask;
else
_crc_reg = (_crc_reg >> 1);
return _crc_reg;
}
int GlyphIntensity(GLYPH glyph)
{
return (int)((glyph & 0x7f00) >> 8);
}
GLYPH DarkenGlyph(GLYPH glyph)
{
int intensity = GlyphIntensity(glyph);
if(intensity > 0)
return GLYPH_REDRAW | ((intensity - 1) << 8) | (glyph & 0x00FF);
else
return glyph;
}
GLYPH RandomGlyph(int intensity)
{
return GLYPH_REDRAW | (intensity << 8) | (crc_rand() % NUM_GLYPHS);
}
void RedrawBlip(GLYPH *glypharr, int blippos)
{
glypharr[blippos+0] |= GLYPH_REDRAW;
glypharr[blippos+1] |= GLYPH_REDRAW;
glypharr[blippos+8] |= GLYPH_REDRAW;
glypharr[blippos+9] |= GLYPH_REDRAW;
}
void ScrollMatrixColumn(MATRIX_COLUMN *col)
{
int y;
GLYPH lastglyph = 0;
GLYPH thisglyph;
// wait until we are allowed to scroll
if(col->started == FALSE)
{
if(--col->countdown <= 0)
col->started = TRUE;
return;
}
// "seed" the glyph-run
lastglyph = col->state ? (GLYPH)0 : (GLYPH)(MAX_INTENSITY << 8);
//
// loop over the entire length of the column, looking for changes
// in intensity/darkness. This change signifies the start/end
// of a run of glyphs.
//
for(y = 0; y < col->length; y++)
{
thisglyph = col->glyph[y];
// bottom-most part of "run". Insert a new character (glyph)
// at the end to lengthen the run down the screen..gives the
// impression that the run is "falling" down the screen
if(GlyphIntensity(thisglyph) < GlyphIntensity(lastglyph) &&
GlyphIntensity(thisglyph) == 0)
{
col->glyph[y] = RandomGlyph(MAX_INTENSITY - 1);
y++;
}
// top-most part of "run". Delete a character off the top by
// darkening the glyph until it eventually disappears (turns black).
// this gives the effect that the run as dropped downwards
else if(GlyphIntensity(thisglyph) > GlyphIntensity(lastglyph))
{
col->glyph[y] = DarkenGlyph(thisglyph);
// if we've just darkened the last bit, skip on so
// the whole run doesn't go dark
if(GlyphIntensity(thisglyph) == MAX_INTENSITY - 1)
y++;
}
lastglyph = col->glyph[y];
}
// change state from blanks <-> runs when the current run as expired
if(--col->runlen <= 0)
{
if(col->state ^= 1)
col->runlen = crc_rand() % (3 * DENSITY/2) + DENSITY_MIN;
else
col->runlen = crc_rand() % (DENSITY_MAX+1-DENSITY) + (DENSITY_MIN*2);
}
//
// make a "blip" run down this column at double-speed
//
// mark current blip as redraw so it gets "erased"
if(col->blippos >= 0 && col->blippos < col->length)
RedrawBlip(col->glyph, col->blippos);
// advance down screen at double-speed
col->blippos += 2;
// if the blip gets to the end of a run, start it again (for a random
// length so that the blips never get synched together)
if(col->blippos >= col->bliplen)
{
col->bliplen = col->length + crc_rand() % 50;
col->blippos = 0;
}
// now redraw blip at new position
if(col->blippos >= 0 && col->blippos < col->length)
RedrawBlip(col->glyph, col->blippos);
}
//
// randomly change a small collection glyphs in a column
//
void RandomMatrixColumn(MATRIX_COLUMN *col)
{
int i, y;
for(i = 1, y = 0; i < 16; i++)
{
// find a run
while(GlyphIntensity(col->glyph[y]) < MAX_INTENSITY-1 && y < col->length)
y++;
if(y >= col->length)
break;
col->glyph[y] = (col->glyph[y] & 0xff00) | (crc_rand() % NUM_GLYPHS);
col->glyph[y] |= GLYPH_REDRAW;
y += crc_rand() % 10;
}
}
void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph)
{
int intensity = GlyphIntensity(glyph);
int glyphidx = glyph & 0xff;
BitBlt(hdc, xpos, ypos, GLYPH_WIDTH, GLYPH_HEIGHT, matrix->hdcBitmap,
glyphidx * GLYPH_WIDTH, intensity * GLYPH_HEIGHT, SRCCOPY);
}
void RedrawMatrixColumn(MATRIX_COLUMN *col, MATRIX *matrix, HDC hdc, int xpos)
{
int y;
// loop down the length of the column redrawing only what needs doing
for(y = 0; y < col->length; y++)
{
GLYPH glyph = col->glyph[y];
// does this glyph (character) need to be redrawn?
if(glyph & GLYPH_REDRAW)
{
if((y == col->blippos+0 || y == col->blippos+1 ||
y == col->blippos+8 || y == col->blippos+9) &&
GlyphIntensity(glyph) >= MAX_INTENSITY-1)
glyph |= MAX_INTENSITY << 8;
DrawGlyph(matrix, hdc, xpos, y * GLYPH_HEIGHT, glyph);
// clear redraw state
col->glyph[y] &= ~GLYPH_REDRAW;
}
}
}
void DecodeMatrix(HWND hwnd, MATRIX *matrix)
{
int x;
HDC hdc = GetDC(hwnd);
for(x = 0; x < matrix->numcols; x++)
{
RandomMatrixColumn(&matrix->column[x]);
ScrollMatrixColumn(&matrix->column[x]);
RedrawMatrixColumn(&matrix->column[x], matrix, hdc, x * GLYPH_WIDTH);
}
if(matrix->message)
DoMatrixMessage(hdc, matrix);
ReleaseDC(hwnd, hdc);
}
//
// Allocate matrix structures
//
MATRIX *CreateMatrix(HWND hwnd, int width, int height)
{
MATRIX *matrix;
HDC hdc;
int x, y;
int rows = height / GLYPH_HEIGHT + 1;
int cols = width / GLYPH_WIDTH + 1;
// allocate matrix!
if((matrix = malloc(sizeof(MATRIX) + sizeof(MATRIX_COLUMN) * cols)) == 0)
return 0;
matrix->numcols = cols;
matrix->numrows = rows;
matrix->width = width;
matrix->height = height;
for(x = 0; x < cols; x++)
{
matrix->column[x].length = rows;
matrix->column[x].started = FALSE;
matrix->column[x].countdown = crc_rand() % 100;
matrix->column[x].state = crc_rand() % 2;
matrix->column[x].runlen = crc_rand() % 20 + 3;
matrix->column[x].glyph = malloc(sizeof(GLYPH) * (rows+16));
for(y = 0; y < rows; y++)
matrix->column[x].glyph[y] = 0;//;
}
// Load bitmap!!
hdc = GetDC(NULL);
matrix->hbmBitmap = LoadBitmap(GetModuleHandle(0), MAKEINTRESOURCE(IDB_BITMAP1));
matrix->hdcBitmap = CreateCompatibleDC(hdc);
SelectObject(matrix->hdcBitmap, matrix->hbmBitmap);
ReleaseDC(NULL, hdc);
// Create a message for this window...only if we are
// screen-saving (not if in preview mode)
if(GetParent(hwnd) == 0)
matrix->message = InitMatrixMessage(hwnd, matrix->numcols, matrix->numrows);
else
matrix->message = 0;
return matrix;
}
//
// Free up matrix structures
//
void DestroyMatrix(MATRIX *matrix)
{
int x;
// free the matrix columns
for(x = 0; x < matrix->numcols; x++)
free(matrix->column[x].glyph);
DeleteDC(matrix->hdcBitmap);
DeleteObject(matrix->hbmBitmap);
// now delete the matrix!
free(matrix);
}
MATRIX *GetMatrix(HWND hwnd)
{
return (MATRIX *)GetWindowLong(hwnd, 0);
}
void SetMatrix(HWND hwnd, MATRIX *matrix)
{
SetWindowLong(hwnd, 0, (LONG)matrix);
}
//
// Window procedure for one matrix (1 per screen)
//
LRESULT WINAPI MatrixWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static POINT ptLast;
static POINT ptCursor;
static BOOL fFirstTime = TRUE;
MATRIX *matrix = GetMatrix(hwnd);
switch(msg)
{
// window creation
case WM_NCCREATE:
// create the matrix based on how big this window is
matrix = CreateMatrix(hwnd, ((CREATESTRUCT *)lParam)->cx, ((CREATESTRUCT *)lParam)->cy);
// failed to allocate? stop window creation!
if(matrix == 0)
return FALSE;
SetMatrix(hwnd, matrix);
// start off an animation timer
SetTimer(hwnd, 0xdeadbeef, ((SPEED_MAX - g_nMatrixSpeed) + SPEED_MIN) * 10, 0);
return TRUE;
// window being destroyed, cleanup
case WM_NCDESTROY:
DestroyMatrix(matrix);
PostQuitMessage(0);
return 0;
// animation timer has gone off, redraw the matrix!
case WM_TIMER:
DecodeMatrix(hwnd, matrix);
return 0;
// break out of screen-saver if any keyboard activity
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
PostMessage(hwnd, WM_CLOSE, 0, 0);
return 0;
// break out of screen-saver if any mouse activity
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
case WM_MBUTTONDOWN:
case WM_MBUTTONUP:
case WM_MOUSEMOVE:
// If we've got a parent then we must be a preview
if(GetParent(hwnd) != 0)
return 0;
if(fFirstTime)
{
GetCursorPos(&ptLast);
fFirstTime = FALSE;
}
GetCursorPos(&ptCursor);
// if the mouse has moved more than 3 pixels then exit
if(abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3)
PostMessage(hwnd, WM_CLOSE, 0, 0);
ptLast = ptCursor;
return 0;
// someone wants to close us...see if it's ok
case WM_CLOSE:
if(VerifyPassword(hwnd))
{
KillTimer(hwnd, 0xdeadbeef);
DestroyWindow(hwnd);
}
return 0;
}
return DefWindowProc(hwnd, msg, wParam, lParam);
}
HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect)
{
DWORD dwStyle = hwndParent ? WS_CHILD : WS_POPUP;
#ifdef _DEBUG
DWORD dwStyleEx = 0;
#else
DWORD dwStyleEx = WS_EX_TOPMOST;
#endif
if(hwndParent)
GetClientRect(hwndParent, rect);
return CreateWindowEx( dwStyleEx,
APPNAME,
0,
WS_VISIBLE | dwStyle,
rect->left,
rect->top,
rect->right - rect->left,
rect->bottom - rect->top,
hwndParent,
0,
GetModuleHandle(0),
0
);
}
//
// Initialize class for matrix window
//
void InitScreenSaveClass(BOOL fPreview)
{
WNDCLASSEX wcx;
wcx.cbSize = sizeof(WNDCLASSEX);
wcx.style = 0;
wcx.lpfnWndProc = MatrixWndProc;
wcx.cbClsExtra = 0;
wcx.cbWndExtra = sizeof(MATRIX *);
wcx.hInstance = GetModuleHandle(0);
wcx.hIcon = 0;
wcx.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wcx.lpszMenuName = 0;
wcx.lpszClassName = APPNAME;
wcx.hIconSm = 0;
if(fPreview)
wcx.hCursor = LoadCursor(0, IDC_ARROW);
else
wcx.hCursor = LoadCursor(wcx.hInstance, MAKEINTRESOURCE(IDC_BLANKCURSOR));
// initialize the crc register used for "random" number generation
_crc_reg = (WORD)GetTickCount();
RegisterClassEx(&wcx);
}
@@ -1,158 +1,158 @@
# Microsoft Developer Studio Project File - Name="matrix" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=matrix - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "matrix.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 "matrix.mak" CFG="matrix - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "matrix - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "matrix - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "matrix - 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 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX- /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 libctiny.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 /nologo /subsystem:windows /map /debug /machine:I386
!ELSEIF "$(CFG)" == "matrix - 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 Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "matrix - Win32 Release"
# Name "matrix - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\config.c
# End Source File
# Begin Source File
SOURCE=.\matrix.c
# End Source File
# Begin Source File
SOURCE=.\matrix.rc
# End Source File
# Begin Source File
SOURCE=.\message.c
# End Source File
# Begin Source File
SOURCE=.\password.c
# End Source File
# Begin Source File
SOURCE=.\screensave.c
# End Source File
# Begin Source File
SOURCE=.\settings.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\globals.h
# End Source File
# Begin Source File
SOURCE=.\matrix.h
# End Source File
# Begin Source File
SOURCE=.\message.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=.\cursor1.cur
# End Source File
# Begin Source File
SOURCE=.\icon1.ico
# End Source File
# Begin Source File
SOURCE=.\matrix.bmp
# End Source File
# Begin Source File
SOURCE=.\matrix2.bmp
# End Source File
# End Group
# End Target
# End Project
# Microsoft Developer Studio Project File - Name="matrix" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=matrix - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "matrix.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 "matrix.mak" CFG="matrix - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "matrix - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "matrix - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "matrix - 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 /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX- /Zi /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "NDEBUG"
# ADD RSC /l 0x809 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 libctiny.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 /nologo /subsystem:windows /map /debug /machine:I386
!ELSEIF "$(CFG)" == "matrix - 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 Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x809 /d "_DEBUG"
# ADD RSC /l 0x809 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "matrix - Win32 Release"
# Name "matrix - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\config.c
# End Source File
# Begin Source File
SOURCE=.\matrix.c
# End Source File
# Begin Source File
SOURCE=.\matrix.rc
# End Source File
# Begin Source File
SOURCE=.\message.c
# End Source File
# Begin Source File
SOURCE=.\password.c
# End Source File
# Begin Source File
SOURCE=.\screensave.c
# End Source File
# Begin Source File
SOURCE=.\settings.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\globals.h
# End Source File
# Begin Source File
SOURCE=.\matrix.h
# End Source File
# Begin Source File
SOURCE=.\message.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=.\cursor1.cur
# End Source File
# Begin Source File
SOURCE=.\icon1.ico
# End Source File
# Begin Source File
SOURCE=.\matrix.bmp
# End Source File
# Begin Source File
SOURCE=.\matrix2.bmp
# End Source File
# End Group
# End Target
# End Project
@@ -1,70 +1,70 @@
#ifndef MATRIX_INCLUDED
#define MATRIX_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
//
// Top BYTE of each glyph is used as flags
// (redraw state, intensity etc)
//
// Bottom BYTE of each glyph is the character value
//
// Bit: 15 14 13-8 | 7-0
//
// [Redraw][Blank][Intensity] [Glyph]
//
typedef unsigned short GLYPH;
#define GLYPH_REDRAW 0x8000
#define GLYPH_BLANK 0x4000
//
// The "matrix" is basically an array of these
// column structures, positioned side-by-side
//
typedef struct
{
BOOL state;
int countdown;
BOOL started;
int runlen;
int blippos;
int bliplen;
int length;
GLYPH *glyph;
} MATRIX_COLUMN;
typedef struct
{
int width;
int height;
int numcols;
int numrows;
// bitmap containing glyphs.
HDC hdcBitmap;
HBITMAP hbmBitmap;
MATRIX_MESSAGE *message;
MATRIX_COLUMN column[1];
} MATRIX;
GLYPH RandomGlyph(int intensity);
void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph);
HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect);
void InitScreenSaveClass();
#ifdef __cplusplus
}
#endif
#endif
#ifndef MATRIX_INCLUDED
#define MATRIX_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
//
// Top BYTE of each glyph is used as flags
// (redraw state, intensity etc)
//
// Bottom BYTE of each glyph is the character value
//
// Bit: 15 14 13-8 | 7-0
//
// [Redraw][Blank][Intensity] [Glyph]
//
typedef unsigned short GLYPH;
#define GLYPH_REDRAW 0x8000
#define GLYPH_BLANK 0x4000
//
// The "matrix" is basically an array of these
// column structures, positioned side-by-side
//
typedef struct
{
BOOL state;
int countdown;
BOOL started;
int runlen;
int blippos;
int bliplen;
int length;
GLYPH *glyph;
} MATRIX_COLUMN;
typedef struct
{
int width;
int height;
int numcols;
int numrows;
// bitmap containing glyphs.
HDC hdcBitmap;
HBITMAP hbmBitmap;
MATRIX_MESSAGE *message;
MATRIX_COLUMN column[1];
} MATRIX;
GLYPH RandomGlyph(int intensity);
void DrawGlyph(MATRIX *matrix, HDC hdc, int xpos, int ypos, GLYPH glyph);
HWND CreateScreenSaveWnd(HWND hwndParent, RECT *rect);
void InitScreenSaveClass();
#ifdef __cplusplus
}
#endif
#endif
@@ -1,33 +1,33 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<module name="matrix" type="win32scr" installbase="system32" installname="matrix2.scr" allowwarnings="true">
<include base="matrix">.</include>
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x0501</define>
<define name="_WIN32_WINNT">0x0501</define>
<define name="__REACTOS__" />
<define name="UNICODE" />
<define name="_UNICODE" />
<library>kernel32</library>
<library>user32</library>
<library>gdi32</library>
<library>winspool</library>
<library>comctl32</library>
<library>comdlg32</library>
<library>advapi32</library>
<library>shell32</library>
<library>uuid</library>
<file>config.c</file>
<file>matrix.c</file>
<file>message.c</file>
<file>password.c</file>
<file>screensave.c</file>
<file>settings.c</file>
<file>matrix.rc</file>
</module>
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<module name="matrix" type="win32scr" installbase="system32" installname="matrix2.scr" allowwarnings="true">
<include base="matrix">.</include>
<define name="__USE_W32API" />
<define name="_WIN32_IE">0x0501</define>
<define name="_WIN32_WINNT">0x0501</define>
<define name="__REACTOS__" />
<define name="UNICODE" />
<define name="_UNICODE" />
<library>kernel32</library>
<library>user32</library>
<library>gdi32</library>
<library>winspool</library>
<library>comctl32</library>
<library>comdlg32</library>
<library>advapi32</library>
<library>shell32</library>
<library>uuid</library>
<file>config.c</file>
<file>matrix.c</file>
<file>message.c</file>
<file>password.c</file>
<file>screensave.c</file>
<file>settings.c</file>
<file>matrix.rc</file>
</module>
@@ -1,167 +1,167 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_CONFIG DIALOG DISCARDABLE 0, 0, 340, 183
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Matrix ScreenSaver Configuration"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Decode &Speed",IDC_STATIC,7,7,128,36
LTEXT "Slower",IDC_STATIC,13,24,22,8
CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,17,62,22
LTEXT "Faster",IDC_STATIC,104,24,20,8
GROUPBOX "Cypher &Density",IDC_STATIC,7,50,128,36
LTEXT "Less",IDC_STATIC,13,67,19,8
CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,60,62,22
LTEXT "More",IDC_STATIC,104,67,23,8
GROUPBOX "&Message Display Speed",IDC_MSGSPEEDGRP,7,93,127,36
LTEXT "Slower",IDC_STATIC,13,110,22,8
CONTROL "Slider3",IDC_SLIDER3,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,103,62,22
LTEXT "Faster",IDC_STATIC,104,110,22,8
GROUPBOX "&Font Size",IDC_STATIC,7,137,127,36
LTEXT "Smaller",IDC_STATIC,13,153,24,8
CONTROL "Slider3",IDC_SLIDER4,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,146,62,22
LTEXT "Bigger",IDC_STATIC,104,153,25,8
GROUPBOX "Coded Messages",IDC_STATIC,145,7,188,142
COMBOBOX IDC_COMBO1,153,22,172,62,CBS_DROPDOWN | WS_VSCROLL |
WS_TABSTOP
CONTROL "",IDC_PREVIEW,"Static",SS_LEFTNOWORDWRAP |
SS_CENTERIMAGE | WS_GROUP,154,39,116,72
PUSHBUTTON "&Add",IDC_ADD,280,41,44,18
PUSHBUTTON "&Remove",IDC_REMOVE,280,66,44,18
CONTROL "Randomize Messages",IDC_RANDOM,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,151,134,85,10
DEFPUSHBUTTON "OK",IDOK,222,162,50,14
PUSHBUTTON "Cancel",IDCANCEL,283,162,50,14
COMBOBOX IDC_COMBO2,195,116,130,71,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
LTEXT "&Font Name:",IDC_STATIC,151,118,38,8
CONTROL "&Bold Font",IDC_BOLD,"Button",BS_AUTOCHECKBOX |
BS_MULTILINE | WS_TABSTOP,247,134,46,10
CTEXT "Matrix ScreenSaver www.catch22.org.uk",IDC_ABOUT,140,
158,75,18
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_CONFIG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 333
TOPMARGIN, 7
BOTTOMMARGIN, 176
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_BITMAP1 BITMAP DISCARDABLE "matrix.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_BLANKCURSOR CURSOR DISCARDABLE "cursor1.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON DISCARDABLE "icon1.ico"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_DESCRIPTION "Matrix ScreenSaver"
END
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.K.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_CONFIG DIALOG DISCARDABLE 0, 0, 340, 183
STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Matrix ScreenSaver Configuration"
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX "Decode &Speed",IDC_STATIC,7,7,128,36
LTEXT "Slower",IDC_STATIC,13,24,22,8
CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,17,62,22
LTEXT "Faster",IDC_STATIC,104,24,20,8
GROUPBOX "Cypher &Density",IDC_STATIC,7,50,128,36
LTEXT "Less",IDC_STATIC,13,67,19,8
CONTROL "Slider1",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,60,62,22
LTEXT "More",IDC_STATIC,104,67,23,8
GROUPBOX "&Message Display Speed",IDC_MSGSPEEDGRP,7,93,127,36
LTEXT "Slower",IDC_STATIC,13,110,22,8
CONTROL "Slider3",IDC_SLIDER3,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,103,62,22
LTEXT "Faster",IDC_STATIC,104,110,22,8
GROUPBOX "&Font Size",IDC_STATIC,7,137,127,36
LTEXT "Smaller",IDC_STATIC,13,153,24,8
CONTROL "Slider3",IDC_SLIDER4,"msctls_trackbar32",TBS_AUTOTICKS |
TBS_BOTH | WS_TABSTOP,38,146,62,22
LTEXT "Bigger",IDC_STATIC,104,153,25,8
GROUPBOX "Coded Messages",IDC_STATIC,145,7,188,142
COMBOBOX IDC_COMBO1,153,22,172,62,CBS_DROPDOWN | WS_VSCROLL |
WS_TABSTOP
CONTROL "",IDC_PREVIEW,"Static",SS_LEFTNOWORDWRAP |
SS_CENTERIMAGE | WS_GROUP,154,39,116,72
PUSHBUTTON "&Add",IDC_ADD,280,41,44,18
PUSHBUTTON "&Remove",IDC_REMOVE,280,66,44,18
CONTROL "Randomize Messages",IDC_RANDOM,"Button",BS_AUTOCHECKBOX |
WS_TABSTOP,151,134,85,10
DEFPUSHBUTTON "OK",IDOK,222,162,50,14
PUSHBUTTON "Cancel",IDCANCEL,283,162,50,14
COMBOBOX IDC_COMBO2,195,116,130,71,CBS_DROPDOWNLIST | CBS_SORT |
WS_VSCROLL | WS_TABSTOP
LTEXT "&Font Name:",IDC_STATIC,151,118,38,8
CONTROL "&Bold Font",IDC_BOLD,"Button",BS_AUTOCHECKBOX |
BS_MULTILINE | WS_TABSTOP,247,134,46,10
CTEXT "Matrix ScreenSaver www.catch22.org.uk",IDC_ABOUT,140,
158,75,18
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_CONFIG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 333
TOPMARGIN, 7
BOTTOMMARGIN, 176
END
END
#endif // APSTUDIO_INVOKED
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
IDB_BITMAP1 BITMAP DISCARDABLE "matrix.bmp"
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_BLANKCURSOR CURSOR DISCARDABLE "cursor1.cur"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON DISCARDABLE "icon1.ico"
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_DESCRIPTION "Matrix ScreenSaver"
END
#endif // English (U.K.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -1,250 +1,250 @@
//
// message.c
//
// Dissolve in/out messages into the "matrix"
//
//
//
#include <windows.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
//
// this isn't really a random-number generator. It's based on
// a 16bit CRC algorithm. With the right mask (0xb400) it is possible
// to call this function 65536 times and get a unique result every time
// with *NO* repeats. The results look random but they're not - if we
// call this function another 65536 times we get exactly the same results
// in the same order. This is necessary for fading in messages because
// we need to be guaranteed that all cells...it's completely uniform in
// operation but looks random enough to be very effective
//
WORD crc_msgrand(WORD reg)
{
const WORD mask = 0xb400;
if(reg & 1)
reg = (reg >> 1) ^ mask;
else
reg = (reg >> 1);
return reg;
}
//
// Set a new message based on font and text
//
void SetMatrixMessage(MATRIX_MESSAGE *msg, HFONT hFont, TCHAR *text)
{
HDC hdc;
RECT rect;
int x, y;
HDC hdcMessage;
HBITMAP hbmMessage;
HANDLE hOldFont, hOldBmp;
//
// Create a monochrome off-screen buffer
//
hdc = GetDC(NULL);
hdcMessage = CreateCompatibleDC(hdc);
hbmMessage = CreateBitmap(MAXMSG_WIDTH, MAXMSG_HEIGHT, 1, 1, 0);
hOldBmp = SelectObject(hdcMessage, hbmMessage);
ReleaseDC(NULL, hdc);
//
// Draw text into bitmap
//
SetRect(&rect, 0, 0, msg->width, MAXMSG_HEIGHT);
FillRect(hdcMessage, &rect, GetStockObject(WHITE_BRUSH));
hOldFont = SelectObject(hdcMessage, g_hFont);
DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT);
OffsetRect(&rect, (msg->width-(rect.right-rect.left))/2, (msg->height-(rect.bottom-rect.top))/2);
DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK);
//
// Convert bitmap into an array of cells for easy drawing
//
for(y = 0; y < msg->height; y++)
{
for(x = 0; x < msg->width; x++)
{
msg->message[x][y] = GetPixel(hdcMessage, x, y) ? 0 : 1;
}
}
//
// Cleanup
//
SelectObject(hdcMessage, hOldFont);
SelectObject(hdcMessage, hOldBmp);
DeleteDC(hdcMessage);
DeleteObject(hbmMessage);
}
//
// Draw any part of the message that is visible. Make the
// message "shimmer" by using a random glyph each time
//
void DrawMatrixMessage(MATRIX *matrix, MATRIX_MESSAGE *msg, HDC hdc)
{
int x, y;
for(x = 0; x < msg->width; x++)
for(y = 0; y < msg->height; y++)
if((msg->message[x][y] & 0x8000) &&
(msg->message[x][y] & 0x00FF))
{
DrawGlyph(matrix, hdc, x * GLYPH_WIDTH, y * GLYPH_HEIGHT, RandomGlyph(MAX_INTENSITY));
}
}
//
// Reveal specified amount of message
//
void RevealMatrixMessage(MATRIX_MESSAGE *msg, int amount)
{
while(amount--)
{
int pos;
msg->random_reg1 = crc_msgrand(msg->random_reg1);
pos = msg->random_reg1 & 0xffff;
msg->message[pos / 256][pos % 256] |= GLYPH_REDRAW;
}
}
//
// Reset (hide) the message
//
void ClearMatrixMessage(MATRIX_MESSAGE *msg)
{
int x, y;
for(x = 0; x < msg->width; x++)
for(y = 0; y < msg->height; y++)
msg->message[x][y] = 0;
}
//
// convert from 50-500 (fast-slow) to slow(50) - fast(500)
//
int MessageSpeed()
{
return (MSGSPEED_MAX-MSGSPEED_MIN) - (g_nMessageSpeed-MSGSPEED_MIN) + MSGSPEED_MIN;
}
//
// Called once for each iteration of the matrix
//
void DoMatrixMessage(HDC hdc, MATRIX *matrix)
{
MATRIX_MESSAGE *msg = matrix->message;
int RealSpeed = MessageSpeed();
if(g_nNumMessages > 0)
{
// nothing to do yet..
if(msg->counter++ < 0)
return;
// has counter reached limit..clear the message
if(msg->counter++ == RealSpeed / 2 + (RealSpeed/4))
ClearMatrixMessage(msg);
// reset counter + display a new message
if(msg->counter >= RealSpeed)
{
// mark all message-cells as being "invisible" so the
// message gets cleared by the matrix decoding naturally
if(g_fRandomizeMessages)
msg->msgindex = crc_rand() % g_nNumMessages;
else
msg->msgindex = (msg->msgindex + 1) % g_nNumMessages;
// make a new message..initially invisible
SetMatrixMessage(msg, 0, g_szMessages[msg->msgindex]);
msg->counter = -(int)(crc_rand() % MSGSPEED_MAX);
}
// reveal the next part of the message
else if(msg->counter < RealSpeed / 2)
{
int w = (g_nMessageSpeed - MSGSPEED_MIN);
w = (1 << 16) + ((w<<16) / MSGSPEED_MAX);
w = (w * 3 * g_nMessageSpeed) >> 16;
RevealMatrixMessage(msg, w + 100);
}
//
// draw whatever part of the message is visible at this time
//
DrawMatrixMessage(matrix, msg, hdc);
}
}
//
// Set current font used for messages
//
void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold)
{
int lfHeight;
HDC hdc;
HFONT hFont;
hdc = GetDC(hwnd);
lfHeight = -MulDiv(nPointSize, GetDeviceCaps(hdc, LOGPIXELSY), 72);
ReleaseDC(hwnd, hdc);
hFont = CreateFont(lfHeight, 0, 0, 0, fBold ? FW_BOLD: FW_NORMAL, 0, 0, 0,
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY, DEFAULT_PITCH, szFontName);
if(hFont != 0)
{
if(g_hFont != 0)
DeleteObject(g_hFont);
g_hFont = hFont;
}
}
//
// Create a message!
//
MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height)
{
MATRIX_MESSAGE *msg;
if((msg = malloc(sizeof(MATRIX_MESSAGE))) == 0)
return 0;
ClearMatrixMessage(msg);
msg->msgindex = 0;
msg->width = min(width, MAXMSG_WIDTH);
msg->height = min(height, MAXMSG_HEIGHT);
msg->counter = -(int)(crc_rand() % MSGSPEED_MIN + MSGSPEED_MIN);
msg->random_reg1 = (WORD)GetTickCount();
SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold);
SetMatrixMessage(msg, 0, g_szMessages[0]);
return msg;
}
//
// message.c
//
// Dissolve in/out messages into the "matrix"
//
//
//
#include <windows.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
//
// this isn't really a random-number generator. It's based on
// a 16bit CRC algorithm. With the right mask (0xb400) it is possible
// to call this function 65536 times and get a unique result every time
// with *NO* repeats. The results look random but they're not - if we
// call this function another 65536 times we get exactly the same results
// in the same order. This is necessary for fading in messages because
// we need to be guaranteed that all cells...it's completely uniform in
// operation but looks random enough to be very effective
//
WORD crc_msgrand(WORD reg)
{
const WORD mask = 0xb400;
if(reg & 1)
reg = (reg >> 1) ^ mask;
else
reg = (reg >> 1);
return reg;
}
//
// Set a new message based on font and text
//
void SetMatrixMessage(MATRIX_MESSAGE *msg, HFONT hFont, TCHAR *text)
{
HDC hdc;
RECT rect;
int x, y;
HDC hdcMessage;
HBITMAP hbmMessage;
HANDLE hOldFont, hOldBmp;
//
// Create a monochrome off-screen buffer
//
hdc = GetDC(NULL);
hdcMessage = CreateCompatibleDC(hdc);
hbmMessage = CreateBitmap(MAXMSG_WIDTH, MAXMSG_HEIGHT, 1, 1, 0);
hOldBmp = SelectObject(hdcMessage, hbmMessage);
ReleaseDC(NULL, hdc);
//
// Draw text into bitmap
//
SetRect(&rect, 0, 0, msg->width, MAXMSG_HEIGHT);
FillRect(hdcMessage, &rect, GetStockObject(WHITE_BRUSH));
hOldFont = SelectObject(hdcMessage, g_hFont);
DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_CALCRECT);
OffsetRect(&rect, (msg->width-(rect.right-rect.left))/2, (msg->height-(rect.bottom-rect.top))/2);
DrawText(hdcMessage, text, -1, &rect, DT_CENTER|DT_VCENTER|DT_WORDBREAK);
//
// Convert bitmap into an array of cells for easy drawing
//
for(y = 0; y < msg->height; y++)
{
for(x = 0; x < msg->width; x++)
{
msg->message[x][y] = GetPixel(hdcMessage, x, y) ? 0 : 1;
}
}
//
// Cleanup
//
SelectObject(hdcMessage, hOldFont);
SelectObject(hdcMessage, hOldBmp);
DeleteDC(hdcMessage);
DeleteObject(hbmMessage);
}
//
// Draw any part of the message that is visible. Make the
// message "shimmer" by using a random glyph each time
//
void DrawMatrixMessage(MATRIX *matrix, MATRIX_MESSAGE *msg, HDC hdc)
{
int x, y;
for(x = 0; x < msg->width; x++)
for(y = 0; y < msg->height; y++)
if((msg->message[x][y] & 0x8000) &&
(msg->message[x][y] & 0x00FF))
{
DrawGlyph(matrix, hdc, x * GLYPH_WIDTH, y * GLYPH_HEIGHT, RandomGlyph(MAX_INTENSITY));
}
}
//
// Reveal specified amount of message
//
void RevealMatrixMessage(MATRIX_MESSAGE *msg, int amount)
{
while(amount--)
{
int pos;
msg->random_reg1 = crc_msgrand(msg->random_reg1);
pos = msg->random_reg1 & 0xffff;
msg->message[pos / 256][pos % 256] |= GLYPH_REDRAW;
}
}
//
// Reset (hide) the message
//
void ClearMatrixMessage(MATRIX_MESSAGE *msg)
{
int x, y;
for(x = 0; x < msg->width; x++)
for(y = 0; y < msg->height; y++)
msg->message[x][y] = 0;
}
//
// convert from 50-500 (fast-slow) to slow(50) - fast(500)
//
int MessageSpeed()
{
return (MSGSPEED_MAX-MSGSPEED_MIN) - (g_nMessageSpeed-MSGSPEED_MIN) + MSGSPEED_MIN;
}
//
// Called once for each iteration of the matrix
//
void DoMatrixMessage(HDC hdc, MATRIX *matrix)
{
MATRIX_MESSAGE *msg = matrix->message;
int RealSpeed = MessageSpeed();
if(g_nNumMessages > 0)
{
// nothing to do yet..
if(msg->counter++ < 0)
return;
// has counter reached limit..clear the message
if(msg->counter++ == RealSpeed / 2 + (RealSpeed/4))
ClearMatrixMessage(msg);
// reset counter + display a new message
if(msg->counter >= RealSpeed)
{
// mark all message-cells as being "invisible" so the
// message gets cleared by the matrix decoding naturally
if(g_fRandomizeMessages)
msg->msgindex = crc_rand() % g_nNumMessages;
else
msg->msgindex = (msg->msgindex + 1) % g_nNumMessages;
// make a new message..initially invisible
SetMatrixMessage(msg, 0, g_szMessages[msg->msgindex]);
msg->counter = -(int)(crc_rand() % MSGSPEED_MAX);
}
// reveal the next part of the message
else if(msg->counter < RealSpeed / 2)
{
int w = (g_nMessageSpeed - MSGSPEED_MIN);
w = (1 << 16) + ((w<<16) / MSGSPEED_MAX);
w = (w * 3 * g_nMessageSpeed) >> 16;
RevealMatrixMessage(msg, w + 100);
}
//
// draw whatever part of the message is visible at this time
//
DrawMatrixMessage(matrix, msg, hdc);
}
}
//
// Set current font used for messages
//
void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold)
{
int lfHeight;
HDC hdc;
HFONT hFont;
hdc = GetDC(hwnd);
lfHeight = -MulDiv(nPointSize, GetDeviceCaps(hdc, LOGPIXELSY), 72);
ReleaseDC(hwnd, hdc);
hFont = CreateFont(lfHeight, 0, 0, 0, fBold ? FW_BOLD: FW_NORMAL, 0, 0, 0,
ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY, DEFAULT_PITCH, szFontName);
if(hFont != 0)
{
if(g_hFont != 0)
DeleteObject(g_hFont);
g_hFont = hFont;
}
}
//
// Create a message!
//
MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height)
{
MATRIX_MESSAGE *msg;
if((msg = malloc(sizeof(MATRIX_MESSAGE))) == 0)
return 0;
ClearMatrixMessage(msg);
msg->msgindex = 0;
msg->width = min(width, MAXMSG_WIDTH);
msg->height = min(height, MAXMSG_HEIGHT);
msg->counter = -(int)(crc_rand() % MSGSPEED_MIN + MSGSPEED_MIN);
msg->random_reg1 = (WORD)GetTickCount();
SetMessageFont(hwnd, g_szFontName, g_nFontSize, g_fFontBold);
SetMatrixMessage(msg, 0, g_szMessages[0]);
return msg;
}
@@ -1,32 +1,32 @@
#ifndef MESSAGE_INCLUDED
#define MESSAGE_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
//
// counter starts off negative (rand() < 0)..when it gets
// to zero the message starts to display
//
typedef struct
{
WORD message[MAXMSG_WIDTH][MAXMSG_HEIGHT];
int msgindex;
int counter;
WORD random_reg1;
int width, height;
} MATRIX_MESSAGE;
void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold);
MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height);
#ifdef __cplusplus
}
#endif
#endif
#ifndef MESSAGE_INCLUDED
#define MESSAGE_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif
//
// counter starts off negative (rand() < 0)..when it gets
// to zero the message starts to display
//
typedef struct
{
WORD message[MAXMSG_WIDTH][MAXMSG_HEIGHT];
int msgindex;
int counter;
WORD random_reg1;
int width, height;
} MATRIX_MESSAGE;
void SetMessageFont(HWND hwnd, TCHAR *szFontName, int nPointSize, BOOL fBold);
MATRIX_MESSAGE *InitMatrixMessage(HWND hwnd, int width, int height);
#ifdef __cplusplus
}
#endif
#endif
@@ -1,69 +1,69 @@
//
// password.c
//
// Password support for Win9x
//
#include <windows.h>
#include <tchar.h>
typedef BOOL (WINAPI *VERIFYSCREENSAVEPWD)(HWND hwnd);
typedef VOID (WINAPI *PWDCHANGEPASSWORD)(LPCTSTR lpcRegkeyname, HWND hwnd,UINT uiReserved1,UINT uiReserved2);
BOOL VerifyPassword(HWND hwnd)
{
// Under NT, we return TRUE immediately. This lets the saver quit,
// and the system manages passwords. Under '95, we call VerifyScreenSavePwd.
// This checks the appropriate registry key and, if necessary,
// pops up a verify dialog
HINSTANCE hpwdcpl;
VERIFYSCREENSAVEPWD VerifyScreenSavePwd;
BOOL fResult;
if(GetVersion() < 0x80000000)
return TRUE;
hpwdcpl = LoadLibrary(_T("PASSWORD.CPL"));
if(hpwdcpl == NULL)
{
return FALSE;
}
VerifyScreenSavePwd = (VERIFYSCREENSAVEPWD)GetProcAddress(hpwdcpl, "VerifyScreenSavePwd");
if(VerifyScreenSavePwd == NULL)
{
FreeLibrary(hpwdcpl);
return FALSE;
}
fResult = VerifyScreenSavePwd(hwnd);
FreeLibrary(hpwdcpl);
return fResult;
}
BOOL ChangePassword(HWND hwnd)
{
// This only ever gets called under '95, when started with the /a option.
HINSTANCE hmpr = LoadLibrary(_T("MPR.DLL"));
PWDCHANGEPASSWORD PwdChangePassword;
if(hmpr == NULL)
return FALSE;
PwdChangePassword = (PWDCHANGEPASSWORD)GetProcAddress(hmpr, "PwdChangePasswordA");
if(PwdChangePassword == NULL)
{
FreeLibrary(hmpr);
return FALSE;
}
PwdChangePassword(_T("SCRSAVE"), hwnd, 0, 0);
FreeLibrary(hmpr);
return TRUE;
}
//
// password.c
//
// Password support for Win9x
//
#include <windows.h>
#include <tchar.h>
typedef BOOL (WINAPI *VERIFYSCREENSAVEPWD)(HWND hwnd);
typedef VOID (WINAPI *PWDCHANGEPASSWORD)(LPCTSTR lpcRegkeyname, HWND hwnd,UINT uiReserved1,UINT uiReserved2);
BOOL VerifyPassword(HWND hwnd)
{
// Under NT, we return TRUE immediately. This lets the saver quit,
// and the system manages passwords. Under '95, we call VerifyScreenSavePwd.
// This checks the appropriate registry key and, if necessary,
// pops up a verify dialog
HINSTANCE hpwdcpl;
VERIFYSCREENSAVEPWD VerifyScreenSavePwd;
BOOL fResult;
if(GetVersion() < 0x80000000)
return TRUE;
hpwdcpl = LoadLibrary(_T("PASSWORD.CPL"));
if(hpwdcpl == NULL)
{
return FALSE;
}
VerifyScreenSavePwd = (VERIFYSCREENSAVEPWD)GetProcAddress(hpwdcpl, "VerifyScreenSavePwd");
if(VerifyScreenSavePwd == NULL)
{
FreeLibrary(hpwdcpl);
return FALSE;
}
fResult = VerifyScreenSavePwd(hwnd);
FreeLibrary(hpwdcpl);
return fResult;
}
BOOL ChangePassword(HWND hwnd)
{
// This only ever gets called under '95, when started with the /a option.
HINSTANCE hmpr = LoadLibrary(_T("MPR.DLL"));
PWDCHANGEPASSWORD PwdChangePassword;
if(hmpr == NULL)
return FALSE;
PwdChangePassword = (PWDCHANGEPASSWORD)GetProcAddress(hmpr, "PwdChangePasswordA");
if(PwdChangePassword == NULL)
{
FreeLibrary(hmpr);
return FALSE;
}
PwdChangePassword(_T("SCRSAVE"), hwnd, 0, 0);
FreeLibrary(hmpr);
return TRUE;
}
@@ -1,35 +1,35 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by matrix.rc
//
#define IDS_DESCRIPTION 1
#define IDD_CONFIG 101
#define IDB_BITMAP1 104
#define IDC_BLANKCURSOR 105
#define IDI_ICON1 106
#define IDC_COMBO1 1003
#define IDC_REMOVE 1004
#define IDC_ADD 1005
#define IDC_PREVIEW 1008
#define IDC_PREV 1009
#define IDC_ENABLEPREV 1013
#define IDC_RANDOM 1014
#define IDC_SLIDER1 1015
#define IDC_SLIDER2 1016
#define IDC_SLIDER3 1017
#define IDC_SLIDER4 1018
#define IDC_BOLD 1019
#define IDC_COMBO2 1020
#define IDC_MSGSPEEDGRP 1021
#define IDC_ABOUT 1022
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 109
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1023
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by matrix.rc
//
#define IDS_DESCRIPTION 1
#define IDD_CONFIG 101
#define IDB_BITMAP1 104
#define IDC_BLANKCURSOR 105
#define IDI_ICON1 106
#define IDC_COMBO1 1003
#define IDC_REMOVE 1004
#define IDC_ADD 1005
#define IDC_PREVIEW 1008
#define IDC_PREV 1009
#define IDC_ENABLEPREV 1013
#define IDC_RANDOM 1014
#define IDC_SLIDER1 1015
#define IDC_SLIDER2 1016
#define IDC_SLIDER3 1017
#define IDC_SLIDER4 1018
#define IDC_BOLD 1019
#define IDC_COMBO2 1020
#define IDC_MSGSPEEDGRP 1021
#define IDC_ABOUT 1022
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 109
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1023
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
@@ -1,162 +1,162 @@
//
// screensave.c
//
// Entrypoint for a win32 screensaver
//
// NOTES: Screen savers don't like being UPX'd (compressed). Don't
// know why, it just is. C-runtime has been stripped with
// "libctiny.lib".
//
// v1.0 1/12/2003 J Brown
//
#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
#include "resource.h"
//#pragma comment(lib, "libctiny.lib")
//#pragma comment(linker, "/OPT:NOWIN98")
//
// Added: Multimonitor support!!
//
HMONITOR (WINAPI * pfnEnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
BOOL (WINAPI * pfnGetMonitorInfo)(HMONITOR, LPMONITORINFO);
//
// Callback function for EnumDisplayMonitors API. Use this function
// to kickstart a screen-saver window for each monitor in the system
//
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, RECT *rcMonitor, LPARAM Param)
{
HWND hwnd;
// Create a screensaver on this monitor!
hwnd = CreateScreenSaveWnd((HWND)Param, rcMonitor);
// For some reason windows always places this window at 0,0...
// position it ourselves
SetWindowPos(hwnd, 0, rcMonitor->left, rcMonitor->top, 0, 0,
SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
return TRUE;
}
//
// Start screen saver!
//
BOOL ScreenSaver(HWND hwndParent)
{
HMODULE hUser32;
UINT nPreviousState;
MSG msg;
InitScreenSaveClass(hwndParent);
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
// Dynamically locate API call from USER32 - not present in all versions
hUser32 = GetModuleHandle(_T("USER32.DLL"));
pfnEnumDisplayMonitors = (PVOID)GetProcAddress(hUser32, "EnumDisplayMonitors");
// If we're running Win2k+ then the API is available...so call it!
if(pfnEnumDisplayMonitors && hwndParent == 0)
{
pfnEnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0);
}
// Otherwise simulate by calling enum-proc manually
else
{
RECT rect;
rect.left = 0;
rect.right = GetSystemMetrics(SM_CXSCREEN);
rect.top = 0;
rect.bottom = GetSystemMetrics(SM_CYSCREEN);
MonitorEnumProc(NULL, NULL, &rect, (LPARAM)hwndParent);
}
// run message loop to handle all screen-saver windows
while(GetMessage(&msg, NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
return TRUE;
}
//
// Look for any options Windows has passed to us:
//
// -a <hwnd> (set password)
// -s (screensave)
// -p <hwnd> (preview)
// -c <hwnd> (configure)
//
BOOL ParseCommandLine(LPSTR szCmdLine, int *chOption, HWND *hwndParent)
{
int ch = *szCmdLine++;
if(ch == '-' || ch == '/')
ch = *szCmdLine++;
if(ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A'; //convert to lower case
*chOption = ch;
ch = *szCmdLine++;
if(ch == ':')
ch = *szCmdLine++;
while(ch == ' ' || ch == '\t')
ch = *szCmdLine++;
if(isdigit(ch))
{
unsigned int i = atoi(szCmdLine - 1);
*hwndParent = (HWND)i;
}
else
*hwndParent = NULL;
return TRUE;
}
//
// Entrypoint for screen-saver: it's just a normal win32 app!
//
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int iCmdShow)
{
HWND hwndParent;
int chOption;
// Make sure that only 1 instance runs at a time -
// Win98 seems to want us to restart every 5 seconds!!
if(FindWindowEx(NULL, NULL, APPNAME, APPNAME))
{
return 0;
}
LoadSettings();
ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
switch(chOption)
{
case 's': return ScreenSaver(NULL); // screen save
case 'p': return ScreenSaver(hwndParent); // preview in small window
case 'a': return ChangePassword(hwndParent); // ask for password
case 'c': return Configure(hwndParent); // configuration dialog
default: return Configure(hwndParent); // configuration dialog
}
return 0;
}
//
// screensave.c
//
// Entrypoint for a win32 screensaver
//
// NOTES: Screen savers don't like being UPX'd (compressed). Don't
// know why, it just is. C-runtime has been stripped with
// "libctiny.lib".
//
// v1.0 1/12/2003 J Brown
//
#include <windows.h>
#include <windowsx.h>
#include <tchar.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
#include "resource.h"
//#pragma comment(lib, "libctiny.lib")
//#pragma comment(linker, "/OPT:NOWIN98")
//
// Added: Multimonitor support!!
//
HMONITOR (WINAPI * pfnEnumDisplayMonitors)(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
BOOL (WINAPI * pfnGetMonitorInfo)(HMONITOR, LPMONITORINFO);
//
// Callback function for EnumDisplayMonitors API. Use this function
// to kickstart a screen-saver window for each monitor in the system
//
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, RECT *rcMonitor, LPARAM Param)
{
HWND hwnd;
// Create a screensaver on this monitor!
hwnd = CreateScreenSaveWnd((HWND)Param, rcMonitor);
// For some reason windows always places this window at 0,0...
// position it ourselves
SetWindowPos(hwnd, 0, rcMonitor->left, rcMonitor->top, 0, 0,
SWP_NOZORDER|SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
return TRUE;
}
//
// Start screen saver!
//
BOOL ScreenSaver(HWND hwndParent)
{
HMODULE hUser32;
UINT nPreviousState;
MSG msg;
InitScreenSaveClass(hwndParent);
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);
// Dynamically locate API call from USER32 - not present in all versions
hUser32 = GetModuleHandle(_T("USER32.DLL"));
pfnEnumDisplayMonitors = (PVOID)GetProcAddress(hUser32, "EnumDisplayMonitors");
// If we're running Win2k+ then the API is available...so call it!
if(pfnEnumDisplayMonitors && hwndParent == 0)
{
pfnEnumDisplayMonitors(NULL, NULL, MonitorEnumProc, 0);
}
// Otherwise simulate by calling enum-proc manually
else
{
RECT rect;
rect.left = 0;
rect.right = GetSystemMetrics(SM_CXSCREEN);
rect.top = 0;
rect.bottom = GetSystemMetrics(SM_CYSCREEN);
MonitorEnumProc(NULL, NULL, &rect, (LPARAM)hwndParent);
}
// run message loop to handle all screen-saver windows
while(GetMessage(&msg, NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
return TRUE;
}
//
// Look for any options Windows has passed to us:
//
// -a <hwnd> (set password)
// -s (screensave)
// -p <hwnd> (preview)
// -c <hwnd> (configure)
//
BOOL ParseCommandLine(LPSTR szCmdLine, int *chOption, HWND *hwndParent)
{
int ch = *szCmdLine++;
if(ch == '-' || ch == '/')
ch = *szCmdLine++;
if(ch >= 'A' && ch <= 'Z')
ch += 'a' - 'A'; //convert to lower case
*chOption = ch;
ch = *szCmdLine++;
if(ch == ':')
ch = *szCmdLine++;
while(ch == ' ' || ch == '\t')
ch = *szCmdLine++;
if(isdigit(ch))
{
unsigned int i = atoi(szCmdLine - 1);
*hwndParent = (HWND)i;
}
else
*hwndParent = NULL;
return TRUE;
}
//
// Entrypoint for screen-saver: it's just a normal win32 app!
//
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int iCmdShow)
{
HWND hwndParent;
int chOption;
// Make sure that only 1 instance runs at a time -
// Win98 seems to want us to restart every 5 seconds!!
if(FindWindowEx(NULL, NULL, APPNAME, APPNAME))
{
return 0;
}
LoadSettings();
ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
switch(chOption)
{
case 's': return ScreenSaver(NULL); // screen save
case 'p': return ScreenSaver(hwndParent); // preview in small window
case 'a': return ChangePassword(hwndParent); // ask for password
case 'c': return Configure(hwndParent); // configuration dialog
default: return Configure(hwndParent); // configuration dialog
}
return 0;
}
@@ -1,165 +1,165 @@
//
// settings.c
//
// Load/Save settings from registry
//
#include <windows.h>
#include <tchar.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH];
int g_nNumMessages = 0;
int g_nMessageSpeed = 5;
TCHAR g_szFontName[512] = _T("Arial");
int g_nMatrixSpeed = 150;
int g_nDensity = 32;
int g_nFontSize = 12;
BOOL g_fRandomizeMessages = FALSE;
BOOL g_fFontBold = TRUE;
BOOL g_fScreenSaving = FALSE;
HFONT g_hFont;
void LoadSettings()
{
HKEY hkey;
LONG value;
ULONG len;
TCHAR *hugechar = malloc(4096);
TCHAR *hptr = hugechar;
if(hugechar == 0)
return;
hugechar[0] = _T('\0');
RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0,
_T(""), 0, KEY_READ, NULL, &hkey, NULL);
len = sizeof value;
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MessageSpeed"), 0, 0, (BYTE *)&value, &len))
{
if(value >= MSGSPEED_MIN && value <= MSGSPEED_MAX)
g_nMessageSpeed = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MatrixSpeed"), 0, 0, (BYTE *)&value, &len))
{
if(value >= SPEED_MIN && value <= SPEED_MAX)
g_nMatrixSpeed = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Density"), 0, 0, (BYTE *)&value, &len))
{
if(value >= DENSITY_MIN && value <= DENSITY_MAX)
g_nDensity = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontSize"), 0, 0, (BYTE *)&value, &len))
{
if(value >= FONT_MIN && value <= FONT_MAX)
g_nFontSize = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontBold"), 0, 0, (BYTE *)&value, &len))
g_fFontBold = (value == 0 ? FALSE : TRUE);
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Randomize"), 0, 0, (BYTE *)&value, &len))
g_fRandomizeMessages = (value == 0 ? FALSE : TRUE);
len = 4096;
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontName"), 0, 0, (BYTE *)hugechar, &len))
{
if(len > 0)
lstrcpy(g_szFontName, hugechar);
else
lstrcpy(g_szFontName, _T("Arial"));
}
len = 4096;
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Messages"), 0, 0 , (BYTE *)hugechar, &len))
{
while(len > 0 && *hptr && isascii(*hptr))
{
if(lstrlen(hptr) > 0)
{
lstrcpyn(g_szMessages[g_nNumMessages], hptr, MAXMSG_LENGTH);
++g_nNumMessages;
hptr += lstrlen(hptr) + 1;
}
}
}
else
{
/* built-in coded message for first run */
lstrcpyn(g_szMessages[0], _T("ReactOS"), MAXMSG_LENGTH);
++g_nNumMessages;
}
RegCloseKey(hkey);
free(hugechar);
}
void SaveSettings()
{
HKEY hkey;
TCHAR *hugechar = malloc(4096);
TCHAR *msgptr = hugechar;
int totallen = 0;
int i,len;
LONG value;
if(hugechar == 0)
return;
hugechar[0] = _T('\0');
msgptr = hugechar;
RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0,
_T(""), 0, KEY_WRITE, NULL, &hkey, NULL);
value = g_nMessageSpeed;
RegSetValueEx(hkey, _T("MessageSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_nMatrixSpeed;
RegSetValueEx(hkey, _T("MatrixSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_nDensity;
RegSetValueEx(hkey, _T("Density"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_nFontSize;
RegSetValueEx(hkey, _T("FontSize"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_fRandomizeMessages;
RegSetValueEx(hkey, _T("Randomize"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_fFontBold;
RegSetValueEx(hkey, _T("FontBold"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
RegSetValueEx(hkey, _T("FontName"), 0, REG_SZ, (BYTE *)g_szFontName, lstrlen(g_szFontName));
for(i = 0; i < g_nNumMessages; i++)
{
len = lstrlen(g_szMessages[i]);
if(len > 0 && totallen+len < 4096)
{
lstrcpyn(msgptr, g_szMessages[i], 4096-totallen);
totallen += len + 1;
msgptr += len + 1;
}
}
*msgptr = _T('\0');
totallen++;
RegSetValueEx(hkey, _T("Messages"), 0, REG_MULTI_SZ, (BYTE *)hugechar, totallen);
RegCloseKey(hkey);
free(hugechar);
}
//
// settings.c
//
// Load/Save settings from registry
//
#include <windows.h>
#include <tchar.h>
#include "globals.h"
#include "message.h"
#include "matrix.h"
TCHAR g_szMessages[MAX_MESSAGES][MAXMSG_LENGTH];
int g_nNumMessages = 0;
int g_nMessageSpeed = 5;
TCHAR g_szFontName[512] = _T("Arial");
int g_nMatrixSpeed = 150;
int g_nDensity = 32;
int g_nFontSize = 12;
BOOL g_fRandomizeMessages = FALSE;
BOOL g_fFontBold = TRUE;
BOOL g_fScreenSaving = FALSE;
HFONT g_hFont;
void LoadSettings()
{
HKEY hkey;
LONG value;
ULONG len;
TCHAR *hugechar = malloc(4096);
TCHAR *hptr = hugechar;
if(hugechar == 0)
return;
hugechar[0] = _T('\0');
RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0,
_T(""), 0, KEY_READ, NULL, &hkey, NULL);
len = sizeof value;
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MessageSpeed"), 0, 0, (BYTE *)&value, &len))
{
if(value >= MSGSPEED_MIN && value <= MSGSPEED_MAX)
g_nMessageSpeed = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("MatrixSpeed"), 0, 0, (BYTE *)&value, &len))
{
if(value >= SPEED_MIN && value <= SPEED_MAX)
g_nMatrixSpeed = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Density"), 0, 0, (BYTE *)&value, &len))
{
if(value >= DENSITY_MIN && value <= DENSITY_MAX)
g_nDensity = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontSize"), 0, 0, (BYTE *)&value, &len))
{
if(value >= FONT_MIN && value <= FONT_MAX)
g_nFontSize = value;
}
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontBold"), 0, 0, (BYTE *)&value, &len))
g_fFontBold = (value == 0 ? FALSE : TRUE);
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Randomize"), 0, 0, (BYTE *)&value, &len))
g_fRandomizeMessages = (value == 0 ? FALSE : TRUE);
len = 4096;
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("FontName"), 0, 0, (BYTE *)hugechar, &len))
{
if(len > 0)
lstrcpy(g_szFontName, hugechar);
else
lstrcpy(g_szFontName, _T("Arial"));
}
len = 4096;
if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("Messages"), 0, 0 , (BYTE *)hugechar, &len))
{
while(len > 0 && *hptr && isascii(*hptr))
{
if(lstrlen(hptr) > 0)
{
lstrcpyn(g_szMessages[g_nNumMessages], hptr, MAXMSG_LENGTH);
++g_nNumMessages;
hptr += lstrlen(hptr) + 1;
}
}
}
else
{
/* built-in coded message for first run */
lstrcpyn(g_szMessages[0], _T("ReactOS"), MAXMSG_LENGTH);
++g_nNumMessages;
}
RegCloseKey(hkey);
free(hugechar);
}
void SaveSettings()
{
HKEY hkey;
TCHAR *hugechar = malloc(4096);
TCHAR *msgptr = hugechar;
int totallen = 0;
int i,len;
LONG value;
if(hugechar == 0)
return;
hugechar[0] = _T('\0');
msgptr = hugechar;
RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Catch22\\Matrix Screen Saver"), 0,
_T(""), 0, KEY_WRITE, NULL, &hkey, NULL);
value = g_nMessageSpeed;
RegSetValueEx(hkey, _T("MessageSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_nMatrixSpeed;
RegSetValueEx(hkey, _T("MatrixSpeed"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_nDensity;
RegSetValueEx(hkey, _T("Density"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_nFontSize;
RegSetValueEx(hkey, _T("FontSize"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_fRandomizeMessages;
RegSetValueEx(hkey, _T("Randomize"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
value = g_fFontBold;
RegSetValueEx(hkey, _T("FontBold"), 0, REG_DWORD, (BYTE *)&value, sizeof value);
RegSetValueEx(hkey, _T("FontName"), 0, REG_SZ, (BYTE *)g_szFontName, lstrlen(g_szFontName));
for(i = 0; i < g_nNumMessages; i++)
{
len = lstrlen(g_szMessages[i]);
if(len > 0 && totallen+len < 4096)
{
lstrcpyn(msgptr, g_szMessages[i], 4096-totallen);
totallen += len + 1;
msgptr += len + 1;
}
}
*msgptr = _T('\0');
totallen++;
RegSetValueEx(hkey, _T("Messages"), 0, REG_MULTI_SZ, (BYTE *)hugechar, totallen);
RegCloseKey(hkey);
free(hugechar);
}
@@ -1,10 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<group>
<directory name="matrix">
<xi:include href="matrix/matrix.rbuild" />
</directory>
<directory name="cylfrac">
<xi:include href="cylfrac/cylfrac.rbuild" />
</directory>
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "tools/rbuild/project.dtd">
<group>
<directory name="matrix">
<xi:include href="matrix/matrix.rbuild" />
</directory>
<directory name="cylfrac">
<xi:include href="cylfrac/cylfrac.rbuild" />
</directory>
</group>
+404 -404
View File
@@ -1,404 +1,404 @@
#include "screenshot.h"
/*
* Save a screenshot to file until the clipboard
* is ready to accept images.
*/
static VOID
GetError(VOID)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL,
lpMsgBuf,
_T("Error!"),
MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
static BOOL
DoWriteFile(PSCREENSHOT pScrSht,
LPTSTR pstrFileName)
{
BITMAPFILEHEADER bmfh;
BOOL bSuccess;
DWORD dwBytesWritten;
HANDLE hFile;
//INT PalEntries;
hFile = CreateFile(pstrFileName,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
return FALSE;
/* write the BITMAPFILEHEADER to file */
bmfh.bfType = *(WORD *)"BM"; // 0x4D 0x42
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bSuccess = WriteFile(hFile,
&bmfh,
sizeof(bmfh),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh)))
goto fail;
/* write the BITMAPINFOHEADER to file */
bSuccess = WriteFile(hFile,
&pScrSht->lpbi->bmiHeader,
sizeof(BITMAPINFOHEADER),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < sizeof(BITMAPINFOHEADER)))
goto fail;
/* calculate the size of the pallete * /
if (pScrSht->lpbi->bmiHeader.biCompression == BI_BITFIELDS)
PalEntries = 3;
else
{
if (pScrSht->lpbi->bmiHeader.biBitCount <= 8)
PalEntries = (INT)(1 << pScrSht->lpbi->bmiHeader.biBitCount);
else
PalEntries = 0;
}
if (pScrSht->lpbi->bmiHeader.biClrUsed)
PalEntries = pScrSht->lpbi->bmiHeader.biClrUsed;
/ * write pallete to file * /
if (PalEntries != 0)
{
bSuccess = WriteFile(hFile,
&pScrSht->lpbi->bmiColors,
PalEntries * sizeof(RGBQUAD),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < PalEntries * sizeof(RGBQUAD)))
goto fail;
}
*/
/* save the current file position at the bginning of the bitmap bits */
bmfh.bfOffBits = SetFilePointer(hFile, 0, 0, FILE_CURRENT);
/* write the bitmap bits to file */
bSuccess = WriteFile(hFile,
pScrSht->lpvBits,
pScrSht->lpbi->bmiHeader.biSizeImage,
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < pScrSht->lpbi->bmiHeader.biSizeImage))
goto fail;
/* save the current file position at the final file size */
bmfh.bfSize = SetFilePointer(hFile, 0, 0, FILE_CURRENT);
/* rewrite the updated file headers */
SetFilePointer(hFile, 0, 0, FILE_BEGIN);
bSuccess = WriteFile(hFile,
&bmfh,
sizeof(bmfh),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh)))
goto fail;
return TRUE;
fail:
GetError();
if (hFile) CloseHandle(hFile);
DeleteFile(pstrFileName);
return FALSE;
}
static BOOL
DoSaveFile(HWND hwnd, LPTSTR szFileName)
{
OPENFILENAME ofn;
static TCHAR Filter[] = _T("24 bit Bitmap (*.bmp,*.dib)\0*.bmp\0");
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = MAX_PATH;
ofn.lpstrDefExt = _T("bmp");
ofn.lpstrFilter = Filter;
ofn.lpstrFile = szFileName;
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn))
return TRUE;
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Save to file failed"), NULL, 0);
return FALSE;
}
static BOOL
CaptureScreen(PSCREENSHOT pScrSht)
{
HDC ScreenDC;
RECT rect;
/* get window resolution */
//pScrSht->Width = GetSystemMetrics(SM_CXSCREEN);
//pScrSht->Height = GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(pScrSht->hSelf, &rect);
pScrSht->Width = rect.right - rect.left;
pScrSht->Height = rect.bottom - rect.top;
/* get a DC for the screen */
if (!(ScreenDC = GetDC(pScrSht->hSelf)))
return FALSE;
/* get a bitmap handle for the screen
* needed to convert to a DIB */
pScrSht->hBitmap = CreateCompatibleBitmap(ScreenDC,
pScrSht->Width,
pScrSht->Height);
if (pScrSht->hBitmap == NULL)
{
GetError();
ReleaseDC(pScrSht->hSelf, ScreenDC);
return FALSE;
}
/* get a DC compatable with the screen DC */
if (!(pScrSht->hDC = CreateCompatibleDC(ScreenDC)))
{
GetError();
ReleaseDC(pScrSht->hSelf, ScreenDC);
return FALSE;
}
/* select the bitmap into the DC */
SelectObject(pScrSht->hDC,
pScrSht->hBitmap);
/* copy the screen DC to the bitmap */
BitBlt(pScrSht->hDC,
0,
0,
pScrSht->Width,
pScrSht->Height,
ScreenDC,
0,
0,
SRCCOPY);
/* we're finished with the screen DC */
ReleaseDC(pScrSht->hSelf, ScreenDC);
return TRUE;
}
static BOOL
ConvertDDBtoDIB(PSCREENSHOT pScrSht)
{
INT Ret;
BITMAP bitmap;
WORD cClrBits;
/*
/ * can't call GetDIBits with hBitmap selected * /
//SelectObject(hDC, hOldBitmap);
/ * let GetDIBits fill the lpbi structure by passing NULL pointer * /
Ret = GetDIBits(hDC,
hBitmap,
0,
Height,
NULL,
lpbi,
DIB_RGB_COLORS);
if (Ret == 0)
{
GetError();
ReleaseDC(hwnd, hDC);
HeapFree(GetProcessHeap(), 0, lpbi);
return -1;
}
*/
////////////////////////////////////////////////////
if (!GetObjectW(pScrSht->hBitmap,
sizeof(BITMAP),
(LPTSTR)&bitmap))
{
GetError();
return FALSE;
}
cClrBits = (WORD)(bitmap.bmPlanes * bitmap.bmBitsPixel);
if (cClrBits == 1)
cClrBits = 1;
else if (cClrBits <= 4)
cClrBits = 4;
else if (cClrBits <= 8)
cClrBits = 8;
else if (cClrBits <= 16)
cClrBits = 16;
else if (cClrBits <= 24)
cClrBits = 24;
else cClrBits = 32;
if (cClrBits != 24)
pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(),
0,
sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (1 << cClrBits));
else
pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(),
0,
sizeof(BITMAPINFOHEADER));
if (!pScrSht->lpbi)
{
GetError();
return FALSE;
}
pScrSht->lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pScrSht->lpbi->bmiHeader.biWidth = bitmap.bmWidth;
pScrSht->lpbi->bmiHeader.biHeight = bitmap.bmHeight;
pScrSht->lpbi->bmiHeader.biPlanes = bitmap.bmPlanes;
pScrSht->lpbi->bmiHeader.biBitCount = bitmap.bmBitsPixel;
if (cClrBits < 24)
pScrSht->lpbi->bmiHeader.biClrUsed = (1 << cClrBits);
pScrSht->lpbi->bmiHeader.biCompression = BI_RGB;
pScrSht->lpbi->bmiHeader.biSizeImage = ((pScrSht->lpbi->bmiHeader.biWidth * cClrBits +31) & ~31) /8
* pScrSht->lpbi->bmiHeader.biHeight;
pScrSht->lpbi->bmiHeader.biClrImportant = 0;
//////////////////////////////////////////////////////
/* reserve memory to hold the screen bitmap */
pScrSht->lpvBits = HeapAlloc(GetProcessHeap(),
0,
pScrSht->lpbi->bmiHeader.biSizeImage);
if (pScrSht->lpvBits == NULL)
{
GetError();
return FALSE;
}
/* convert the DDB to a DIB */
Ret = GetDIBits(pScrSht->hDC,
pScrSht->hBitmap,
0,
pScrSht->Height,
pScrSht->lpvBits,
pScrSht->lpbi,
DIB_RGB_COLORS);
if (Ret == 0)
{
GetError();
return FALSE;
}
return TRUE;
}
// INT WINAPI GetScreenshot(BOOL bFullScreen)
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
PSCREENSHOT pScrSht;
TCHAR szFileName[MAX_PATH] = _T("");
BOOL bFullScreen = TRUE;
pScrSht = HeapAlloc(GetProcessHeap(),
0,
sizeof(SCREENSHOT));
if (pScrSht == NULL)
return -1;
if (bFullScreen)
{
pScrSht->hSelf = GetDesktopWindow();
}
else
{
pScrSht->hSelf = GetForegroundWindow();
}
if (pScrSht->hSelf == NULL)
{
HeapFree(GetProcessHeap(),
0,
pScrSht);
return -1;
}
if (CaptureScreen(pScrSht))
{
/* convert the DDB image to DIB */
if(ConvertDDBtoDIB(pScrSht))
{
/* Get filename from user */
if(DoSaveFile(pScrSht->hSelf, szFileName))
{
/* build the headers and write to file */
DoWriteFile(pScrSht, szFileName);
}
}
}
/* cleanup */
if (pScrSht->hSelf != NULL)
ReleaseDC(pScrSht->hSelf, pScrSht->hDC);
if (pScrSht->hBitmap != NULL)
DeleteObject(pScrSht->hBitmap);
if (pScrSht->lpbi != NULL)
HeapFree(GetProcessHeap(),
0,
pScrSht->lpbi);
if (pScrSht->lpvBits != NULL)
HeapFree(GetProcessHeap(),
0,
pScrSht->lpvBits);
if (pScrSht != NULL)
HeapFree(GetProcessHeap(),
0,
pScrSht);
return 0;
}
#include "screenshot.h"
/*
* Save a screenshot to file until the clipboard
* is ready to accept images.
*/
static VOID
GetError(VOID)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL,
lpMsgBuf,
_T("Error!"),
MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
static BOOL
DoWriteFile(PSCREENSHOT pScrSht,
LPTSTR pstrFileName)
{
BITMAPFILEHEADER bmfh;
BOOL bSuccess;
DWORD dwBytesWritten;
HANDLE hFile;
//INT PalEntries;
hFile = CreateFile(pstrFileName,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
return FALSE;
/* write the BITMAPFILEHEADER to file */
bmfh.bfType = *(WORD *)"BM"; // 0x4D 0x42
bmfh.bfReserved1 = 0;
bmfh.bfReserved2 = 0;
bSuccess = WriteFile(hFile,
&bmfh,
sizeof(bmfh),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh)))
goto fail;
/* write the BITMAPINFOHEADER to file */
bSuccess = WriteFile(hFile,
&pScrSht->lpbi->bmiHeader,
sizeof(BITMAPINFOHEADER),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < sizeof(BITMAPINFOHEADER)))
goto fail;
/* calculate the size of the pallete * /
if (pScrSht->lpbi->bmiHeader.biCompression == BI_BITFIELDS)
PalEntries = 3;
else
{
if (pScrSht->lpbi->bmiHeader.biBitCount <= 8)
PalEntries = (INT)(1 << pScrSht->lpbi->bmiHeader.biBitCount);
else
PalEntries = 0;
}
if (pScrSht->lpbi->bmiHeader.biClrUsed)
PalEntries = pScrSht->lpbi->bmiHeader.biClrUsed;
/ * write pallete to file * /
if (PalEntries != 0)
{
bSuccess = WriteFile(hFile,
&pScrSht->lpbi->bmiColors,
PalEntries * sizeof(RGBQUAD),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < PalEntries * sizeof(RGBQUAD)))
goto fail;
}
*/
/* save the current file position at the bginning of the bitmap bits */
bmfh.bfOffBits = SetFilePointer(hFile, 0, 0, FILE_CURRENT);
/* write the bitmap bits to file */
bSuccess = WriteFile(hFile,
pScrSht->lpvBits,
pScrSht->lpbi->bmiHeader.biSizeImage,
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < pScrSht->lpbi->bmiHeader.biSizeImage))
goto fail;
/* save the current file position at the final file size */
bmfh.bfSize = SetFilePointer(hFile, 0, 0, FILE_CURRENT);
/* rewrite the updated file headers */
SetFilePointer(hFile, 0, 0, FILE_BEGIN);
bSuccess = WriteFile(hFile,
&bmfh,
sizeof(bmfh),
&dwBytesWritten,
NULL);
if ((!bSuccess) || (dwBytesWritten < sizeof(bmfh)))
goto fail;
return TRUE;
fail:
GetError();
if (hFile) CloseHandle(hFile);
DeleteFile(pstrFileName);
return FALSE;
}
static BOOL
DoSaveFile(HWND hwnd, LPTSTR szFileName)
{
OPENFILENAME ofn;
static TCHAR Filter[] = _T("24 bit Bitmap (*.bmp,*.dib)\0*.bmp\0");
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hwnd;
ofn.nMaxFile = MAX_PATH;
ofn.nMaxFileTitle = MAX_PATH;
ofn.lpstrDefExt = _T("bmp");
ofn.lpstrFilter = Filter;
ofn.lpstrFile = szFileName;
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn))
return TRUE;
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Save to file failed"), NULL, 0);
return FALSE;
}
static BOOL
CaptureScreen(PSCREENSHOT pScrSht)
{
HDC ScreenDC;
RECT rect;
/* get window resolution */
//pScrSht->Width = GetSystemMetrics(SM_CXSCREEN);
//pScrSht->Height = GetSystemMetrics(SM_CYSCREEN);
GetWindowRect(pScrSht->hSelf, &rect);
pScrSht->Width = rect.right - rect.left;
pScrSht->Height = rect.bottom - rect.top;
/* get a DC for the screen */
if (!(ScreenDC = GetDC(pScrSht->hSelf)))
return FALSE;
/* get a bitmap handle for the screen
* needed to convert to a DIB */
pScrSht->hBitmap = CreateCompatibleBitmap(ScreenDC,
pScrSht->Width,
pScrSht->Height);
if (pScrSht->hBitmap == NULL)
{
GetError();
ReleaseDC(pScrSht->hSelf, ScreenDC);
return FALSE;
}
/* get a DC compatable with the screen DC */
if (!(pScrSht->hDC = CreateCompatibleDC(ScreenDC)))
{
GetError();
ReleaseDC(pScrSht->hSelf, ScreenDC);
return FALSE;
}
/* select the bitmap into the DC */
SelectObject(pScrSht->hDC,
pScrSht->hBitmap);
/* copy the screen DC to the bitmap */
BitBlt(pScrSht->hDC,
0,
0,
pScrSht->Width,
pScrSht->Height,
ScreenDC,
0,
0,
SRCCOPY);
/* we're finished with the screen DC */
ReleaseDC(pScrSht->hSelf, ScreenDC);
return TRUE;
}
static BOOL
ConvertDDBtoDIB(PSCREENSHOT pScrSht)
{
INT Ret;
BITMAP bitmap;
WORD cClrBits;
/*
/ * can't call GetDIBits with hBitmap selected * /
//SelectObject(hDC, hOldBitmap);
/ * let GetDIBits fill the lpbi structure by passing NULL pointer * /
Ret = GetDIBits(hDC,
hBitmap,
0,
Height,
NULL,
lpbi,
DIB_RGB_COLORS);
if (Ret == 0)
{
GetError();
ReleaseDC(hwnd, hDC);
HeapFree(GetProcessHeap(), 0, lpbi);
return -1;
}
*/
////////////////////////////////////////////////////
if (!GetObjectW(pScrSht->hBitmap,
sizeof(BITMAP),
(LPTSTR)&bitmap))
{
GetError();
return FALSE;
}
cClrBits = (WORD)(bitmap.bmPlanes * bitmap.bmBitsPixel);
if (cClrBits == 1)
cClrBits = 1;
else if (cClrBits <= 4)
cClrBits = 4;
else if (cClrBits <= 8)
cClrBits = 8;
else if (cClrBits <= 16)
cClrBits = 16;
else if (cClrBits <= 24)
cClrBits = 24;
else cClrBits = 32;
if (cClrBits != 24)
pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(),
0,
sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * (1 << cClrBits));
else
pScrSht->lpbi = (PBITMAPINFO) HeapAlloc(GetProcessHeap(),
0,
sizeof(BITMAPINFOHEADER));
if (!pScrSht->lpbi)
{
GetError();
return FALSE;
}
pScrSht->lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
pScrSht->lpbi->bmiHeader.biWidth = bitmap.bmWidth;
pScrSht->lpbi->bmiHeader.biHeight = bitmap.bmHeight;
pScrSht->lpbi->bmiHeader.biPlanes = bitmap.bmPlanes;
pScrSht->lpbi->bmiHeader.biBitCount = bitmap.bmBitsPixel;
if (cClrBits < 24)
pScrSht->lpbi->bmiHeader.biClrUsed = (1 << cClrBits);
pScrSht->lpbi->bmiHeader.biCompression = BI_RGB;
pScrSht->lpbi->bmiHeader.biSizeImage = ((pScrSht->lpbi->bmiHeader.biWidth * cClrBits +31) & ~31) /8
* pScrSht->lpbi->bmiHeader.biHeight;
pScrSht->lpbi->bmiHeader.biClrImportant = 0;
//////////////////////////////////////////////////////
/* reserve memory to hold the screen bitmap */
pScrSht->lpvBits = HeapAlloc(GetProcessHeap(),
0,
pScrSht->lpbi->bmiHeader.biSizeImage);
if (pScrSht->lpvBits == NULL)
{
GetError();
return FALSE;
}
/* convert the DDB to a DIB */
Ret = GetDIBits(pScrSht->hDC,
pScrSht->hBitmap,
0,
pScrSht->Height,
pScrSht->lpvBits,
pScrSht->lpbi,
DIB_RGB_COLORS);
if (Ret == 0)
{
GetError();
return FALSE;
}
return TRUE;
}
// INT WINAPI GetScreenshot(BOOL bFullScreen)
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
PSCREENSHOT pScrSht;
TCHAR szFileName[MAX_PATH] = _T("");
BOOL bFullScreen = TRUE;
pScrSht = HeapAlloc(GetProcessHeap(),
0,
sizeof(SCREENSHOT));
if (pScrSht == NULL)
return -1;
if (bFullScreen)
{
pScrSht->hSelf = GetDesktopWindow();
}
else
{
pScrSht->hSelf = GetForegroundWindow();
}
if (pScrSht->hSelf == NULL)
{
HeapFree(GetProcessHeap(),
0,
pScrSht);
return -1;
}
if (CaptureScreen(pScrSht))
{
/* convert the DDB image to DIB */
if(ConvertDDBtoDIB(pScrSht))
{
/* Get filename from user */
if(DoSaveFile(pScrSht->hSelf, szFileName))
{
/* build the headers and write to file */
DoWriteFile(pScrSht, szFileName);
}
}
}
/* cleanup */
if (pScrSht->hSelf != NULL)
ReleaseDC(pScrSht->hSelf, pScrSht->hDC);
if (pScrSht->hBitmap != NULL)
DeleteObject(pScrSht->hBitmap);
if (pScrSht->lpbi != NULL)
HeapFree(GetProcessHeap(),
0,
pScrSht->lpbi);
if (pScrSht->lpvBits != NULL)
HeapFree(GetProcessHeap(),
0,
pScrSht->lpvBits);
if (pScrSht != NULL)
HeapFree(GetProcessHeap(),
0,
pScrSht);
return 0;
}
@@ -1,15 +1,15 @@
#include <windows.h>
#include <tchar.h>
typedef struct _SCREENSHOT
{
HWND hSelf;
HDC hDC;
HBITMAP hBitmap;
LPBITMAPINFO lpbi;
LPVOID lpvBits;
INT Width;
INT Height;
} SCREENSHOT, *PSCREENSHOT;
//INT WINAPI GetScreenshot(VOID);
#include <windows.h>
#include <tchar.h>
typedef struct _SCREENSHOT
{
HWND hSelf;
HDC hDC;
HBITMAP hBitmap;
LPBITMAPINFO lpbi;
LPVOID lpvBits;
INT Width;
INT Height;
} SCREENSHOT, *PSCREENSHOT;
//INT WINAPI GetScreenshot(VOID);
@@ -1,14 +1,14 @@
<module name="screenshot" type="win32gui" installbase="system32" installname="screenshot.exe">
<include base="screenshot">.</include>
<define name="__USE_W32API" />
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="_WIN32_IE">0x501</define>
<define name="_WIN32_WINNT">0x0501</define>
<library>kernel32</library>
<library>user32</library>
<library>gdi32</library>
<library>comdlg32</library>
<file>screenshot.c</file>
<file>screenshot.rc</file>
</module>
<module name="screenshot" type="win32gui" installbase="system32" installname="screenshot.exe">
<include base="screenshot">.</include>
<define name="__USE_W32API" />
<define name="UNICODE" />
<define name="_UNICODE" />
<define name="_WIN32_IE">0x501</define>
<define name="_WIN32_WINNT">0x0501</define>
<library>kernel32</library>
<library>user32</library>
<library>gdi32</library>
<library>comdlg32</library>
<file>screenshot.c</file>
<file>screenshot.rc</file>
</module>
@@ -1,10 +1,10 @@
#include <windows.h>
#define REACTOS_STR_FILE_DESCRIPTION "desktop screenshot app\0"
#define REACTOS_STR_INTERNAL_NAME "screenshot\0"
#define REACTOS_STR_ORIGINAL_FILENAME "screenshot.exe\0"
#include <reactos/version.rc>
#define IDI_ICON 1
IDI_ICON ICON "snap.ico"
#include <windows.h>
#define REACTOS_STR_FILE_DESCRIPTION "desktop screenshot app\0"
#define REACTOS_STR_INTERNAL_NAME "screenshot\0"
#define REACTOS_STR_ORIGINAL_FILENAME "screenshot.exe\0"
#include <reactos/version.rc>
#define IDI_ICON 1
IDI_ICON ICON "snap.ico"
+121 -121
View File
@@ -1,121 +1,121 @@
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
IDR_MAINMENU MENU
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "B&eenden",ID_FILE_EXIT
END
POPUP "Action"
BEGIN
MENUITEM "Start",ID_START
MENUITEM "Stopp",ID_STOP
MENUITEM "Pause",ID_PAUSE
MENUITEM "Fortsetzen",ID_RESUME
MENUITEM "Neustart",ID_RESTART
MENUITEM SEPARATOR
MENUITEM "Aktualisieren",ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Eigenschaften",ID_PROP
END
POPUP "Ansicht"
BEGIN
MENUITEM "Anpassen",ID_VIEW_CUSTOMIZE
END
POPUP "Hilfe"
BEGIN
MENUITEM "Info",ID_HELP_ABOUT
END
END
IDD_ABOUTBOX DIALOG DISCARDABLE 22,16,190,182
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Über den Service Manager"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Service Manager v0.1\nCopyright (C) 2006\nby Ged Murphy ([email protected])",
IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,48,7,130,26
DEFPUSHBUTTON "Schließen",IDOK,140,162,44,15,WS_GROUP
ICON IDI_SM_ICON,IDC_STATIC,12,7,30,20
EDITTEXT IDC_LICENSE_EDIT,8,44,174,107,ES_MULTILINE |
ES_READONLY | WS_VSCROLL
END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225
CAPTION "Allgemein"
FONT 8, "MS Shell Dlg",0,0
STYLE 0x10CF0000
BEGIN
CONTROL "Dienstname:",IDC_STATIC,"Static",0x50000000,4,11,53,11
CONTROL "Anzeigename:",IDC_STATIC,"Static",0x50000000,4,29,53,11
CONTROL "Beschreibung",IDC_STATIC,"Static",0x50000000,4,51,53,11
CONTROL "",IDC_SERV_NAME,"Static",0x50000000,70,11,176,11
CONTROL "",IDC_DISP_NAME,"Static",0x50001000,70,29,176,12
CONTROL "",IDC_DESCRIPTION,"Static",0x50201000,70,46,176,22
CONTROL "Pfad zum ausführbarem Programm:",IDC_STATIC,"Static",0x50000000,6,73,150,9
CONTROL "",IDC_STATIC,"Static",0x50001000,6,86,238,12
CONTROL "Starttyp:",IDC_STATIC,"Static",0x50000000,6,108,53,11
CONTROL "",IDC_START_TYPE,"ComboBox",0x50010003,70,107,176,11
CONTROL "Status des Dienstes:",IDC_STATIC,"Static",0x50000000,4,138,100,11
CONTROL "",IDC_SERV_STATUS,"Static",0x50000000,70,138,176,11
CONTROL "Start",IDC_START,"Button",0x50010000,6,155,54,15
CONTROL "Stopp",IDC_STOP,"Button",0x50010000,68,155,54,15
CONTROL "Pause",IDC_PAUSE,"Button",0x50010000,130,155,54,15
CONTROL "Fortsetzen",IDC_RESUME,"Button",0x50010000,192,155,54,15
CONTROL "Sie können die Startparameter festlegen, die verwendet werden, wenn Sie den Dienst von hier aus starten.",IDC_STATIC,"Static",0x50000000,6,177,240,15
CONTROL "Startparameter",IDC_STATIC,"Static",0x50000000,6,199,53,11
CONTROL "",IDC_START_PARAM,"Static",0x50001000,70,199,176,11
END
IDB_BUTTONS BITMAP "buttons.bmp"
STRINGTABLE DISCARDABLE
BEGIN
IDS_FIRSTCOLUMN "Name"
IDS_SECONDCOLUMN "Beschreibung"
IDS_THIRDCOLUMN "Status"
IDS_FOURTHCOLUMN "Starttyp"
IDS_FITHCOLUMN "Anmelden als"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Gestartet"
IDS_SERVICES_STATUS_STOPPED "Gestoppt"
IDS_SERVICES_YES "Ja"
IDS_SERVICES_UNKNOWN "Unbekannt"
IDS_SERVICES_AUTO "Automatisch"
IDS_SERVICES_MAN "Manuell"
IDS_SERVICES_DIS "Deaktiviert"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_NUM_SERVICES "Dienste: %d"
IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.\r\n\r\nThis 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.\r\n\r\nYou 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."
/*"This program is free software; you can redistribute it "
"and/or modify it under the terms of the GNU Lesser General "
"Public License as published by the Free Software Foundation; "
"either version 2.1 of the License, or (at your option) any "
"later version.\r\n\r\nThis 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.\r\n\r\nYou 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." */
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Eigenschaften"
IDS_TOOLTIP_REFRESH "Aktualisieren"
IDS_TOOLTIP_EXPORT "Liste exportieren"
IDS_TOOLTIP_START "Dienst starten"
IDS_TOOLTIP_STOP "Dienst beenden"
IDS_TOOLTIP_PAUSE "Diest pausieren"
IDS_TOOLTIP_RESTART "Diest neustarten"
END
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
IDR_MAINMENU MENU
BEGIN
POPUP "&Datei"
BEGIN
MENUITEM "B&eenden",ID_FILE_EXIT
END
POPUP "Action"
BEGIN
MENUITEM "Start",ID_START
MENUITEM "Stopp",ID_STOP
MENUITEM "Pause",ID_PAUSE
MENUITEM "Fortsetzen",ID_RESUME
MENUITEM "Neustart",ID_RESTART
MENUITEM SEPARATOR
MENUITEM "Aktualisieren",ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Eigenschaften",ID_PROP
END
POPUP "Ansicht"
BEGIN
MENUITEM "Anpassen",ID_VIEW_CUSTOMIZE
END
POPUP "Hilfe"
BEGIN
MENUITEM "Info",ID_HELP_ABOUT
END
END
IDD_ABOUTBOX DIALOG DISCARDABLE 22,16,190,182
STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
CAPTION "Über den Service Manager"
FONT 8, "MS Shell Dlg"
BEGIN
CONTROL "Service Manager v0.1\nCopyright (C) 2006\nby Ged Murphy ([email protected])",
IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,48,7,130,26
DEFPUSHBUTTON "Schließen",IDOK,140,162,44,15,WS_GROUP
ICON IDI_SM_ICON,IDC_STATIC,12,7,30,20
EDITTEXT IDC_LICENSE_EDIT,8,44,174,107,ES_MULTILINE |
ES_READONLY | WS_VSCROLL
END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225
CAPTION "Allgemein"
FONT 8, "MS Shell Dlg",0,0
STYLE 0x10CF0000
BEGIN
CONTROL "Dienstname:",IDC_STATIC,"Static",0x50000000,4,11,53,11
CONTROL "Anzeigename:",IDC_STATIC,"Static",0x50000000,4,29,53,11
CONTROL "Beschreibung",IDC_STATIC,"Static",0x50000000,4,51,53,11
CONTROL "",IDC_SERV_NAME,"Static",0x50000000,70,11,176,11
CONTROL "",IDC_DISP_NAME,"Static",0x50001000,70,29,176,12
CONTROL "",IDC_DESCRIPTION,"Static",0x50201000,70,46,176,22
CONTROL "Pfad zum ausführbarem Programm:",IDC_STATIC,"Static",0x50000000,6,73,150,9
CONTROL "",IDC_STATIC,"Static",0x50001000,6,86,238,12
CONTROL "Starttyp:",IDC_STATIC,"Static",0x50000000,6,108,53,11
CONTROL "",IDC_START_TYPE,"ComboBox",0x50010003,70,107,176,11
CONTROL "Status des Dienstes:",IDC_STATIC,"Static",0x50000000,4,138,100,11
CONTROL "",IDC_SERV_STATUS,"Static",0x50000000,70,138,176,11
CONTROL "Start",IDC_START,"Button",0x50010000,6,155,54,15
CONTROL "Stopp",IDC_STOP,"Button",0x50010000,68,155,54,15
CONTROL "Pause",IDC_PAUSE,"Button",0x50010000,130,155,54,15
CONTROL "Fortsetzen",IDC_RESUME,"Button",0x50010000,192,155,54,15
CONTROL "Sie können die Startparameter festlegen, die verwendet werden, wenn Sie den Dienst von hier aus starten.",IDC_STATIC,"Static",0x50000000,6,177,240,15
CONTROL "Startparameter",IDC_STATIC,"Static",0x50000000,6,199,53,11
CONTROL "",IDC_START_PARAM,"Static",0x50001000,70,199,176,11
END
IDB_BUTTONS BITMAP "buttons.bmp"
STRINGTABLE DISCARDABLE
BEGIN
IDS_FIRSTCOLUMN "Name"
IDS_SECONDCOLUMN "Beschreibung"
IDS_THIRDCOLUMN "Status"
IDS_FOURTHCOLUMN "Starttyp"
IDS_FITHCOLUMN "Anmelden als"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STATUS_RUNNING "Gestartet"
IDS_SERVICES_STATUS_STOPPED "Gestoppt"
IDS_SERVICES_YES "Ja"
IDS_SERVICES_UNKNOWN "Unbekannt"
IDS_SERVICES_AUTO "Automatisch"
IDS_SERVICES_MAN "Manuell"
IDS_SERVICES_DIS "Deaktiviert"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_NUM_SERVICES "Dienste: %d"
IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.\r\n\r\nThis 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.\r\n\r\nYou 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."
/*"This program is free software; you can redistribute it "
"and/or modify it under the terms of the GNU Lesser General "
"Public License as published by the Free Software Foundation; "
"either version 2.1 of the License, or (at your option) any "
"later version.\r\n\r\nThis 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.\r\n\r\nYou 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." */
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Eigenschaften"
IDS_TOOLTIP_REFRESH "Aktualisieren"
IDS_TOOLTIP_EXPORT "Liste exportieren"
IDS_TOOLTIP_START "Dienst starten"
IDS_TOOLTIP_STOP "Dienst beenden"
IDS_TOOLTIP_PAUSE "Diest pausieren"
IDS_TOOLTIP_RESTART "Diest neustarten"
END
+280 -280
View File
@@ -1,280 +1,280 @@
IDR_MAINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "Export...", ID_EXPORT
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_EXIT
END
POPUP "Action"
BEGIN
MENUITEM "Connect to...", ID_CONNECT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Start", ID_START, GRAYED
MENUITEM "Stop", ID_STOP, GRAYED
MENUITEM "Pause", ID_PAUSE, GRAYED
MENUITEM "Resume", ID_RESUME, GRAYED
MENUITEM "Restart", ID_RESTART, GRAYED
MENUITEM SEPARATOR
MENUITEM "Refresh", ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Edit...", ID_EDIT, GRAYED
MENUITEM "Create...", ID_CREATE
MENUITEM "Delete...", ID_DELETE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Properties...", ID_PROP, GRAYED
END
POPUP "View"
BEGIN
MENUITEM "Large Icons", ID_VIEW_LARGE
MENUITEM "Small Icons", ID_VIEW_SMALL
MENUITEM "List", ID_VIEW_LIST
MENUITEM "Details", ID_VIEW_DETAILS
MENUITEM SEPARATOR
MENUITEM "Customize...",ID_VIEW_CUST, GRAYED
END
POPUP "Help"
BEGIN
MENUITEM "Help", ID_HELP
MENUITEM "About", ID_ABOUT
END
END
IDR_POPUP MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "Start", ID_START, GRAYED
MENUITEM "Stop", ID_STOP, GRAYED
MENUITEM "Pause", ID_PAUSE, GRAYED
MENUITEM "Resume", ID_RESUME, GRAYED
MENUITEM "Restart", ID_RESTART, GRAYED
MENUITEM SEPARATOR
MENUITEM "Refresh", ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Edit...", ID_EDIT, GRAYED
MENUITEM "Delete...", ID_DELETE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Properties...", ID_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "Help...", ID_HELP
END
END
IDD_ABOUTBOX DIALOGEX 22,16,190,182
CAPTION "About Service Manager"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Service Manager v0.5.1\nCopyright (C) 2005-2006\nby Ged Murphy ([email protected])", IDC_STATIC, 48, 7, 130, 26
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_SM_ICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225
CAPTION "General"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
LTEXT "", IDC_SERV_NAME, 70,11,176,11, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_DISP_NAME, 70, 29, 176, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY
EDITTEXT IDC_DESCRIPTION, 70, 46, 176, 24, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_MULTILINE | ES_READONLY
EDITTEXT IDC_EXEPATH, 6, 86, 240, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY
COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST
PUSHBUTTON "Start", IDC_START, 6, 155, 54, 15, WS_DISABLED
PUSHBUTTON "Stop", IDC_STOP, 68, 155, 54, 15, WS_DISABLED
PUSHBUTTON "Pause", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED
PUSHBUTTON "Resume", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED
LTEXT "Service name:", IDC_STATIC, 4, 11, 53, 11
LTEXT "Display name:", IDC_STATIC, 4, 29, 53, 11
LTEXT "Description:", IDC_STATIC, 4, 51, 53, 11
LTEXT "Path to executable:", IDC_STATIC, 6, 73, 82, 9
LTEXT "Startup type:", IDC_STATIC, 6, 108, 53, 11
LTEXT "Service status:", IDC_STATIC, 4, 138, 53, 11
LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE
LTEXT "You can specify the start parameters that apply when you start the service from here.",IDC_STATIC, 6,177,240,15
LTEXT "Start parameters:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225
CAPTION "Dependencies"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
CONTROL "", IDC_DEPEND_TREE1, "SysTreeView32" ,0x50010007, 8, 70, 236, 68, 0x00000200
CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", 0x50010007, 8, 151, 234, 67, 0x00000200
LTEXT "Some services depend on other services, system drivers and load order groups. If a system component is stopped or it is not running properly, dependant services can be affected.", IDC_STATIC,8, 7, 238, 26
LTEXT "This service depends on the following components", IDC_STATIC, 8, 57, 236, 9
LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13
END
IDD_DLG_CREATE DIALOGEX 6,6,225,209
CAPTION "Create a service"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
EDITTEXT IDC_CREATE_SERVNAME, 72, 12, 150, 11, WS_CHILD | WS_VISIBLE | WS_EX_CLIENTEDGE
EDITTEXT IDC_CREATE_DISPNAME, 72, 31, 150, 11, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_CREATE_PATH, 8, 62, 214, 13, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE
LTEXT "*Service Name :", IDC_STATIC, 12, 12, 54, 9
LTEXT "*Display Name :", IDC_STATIC, 12, 33, 54, 9
LTEXT "*Path to executable :", IDC_STATIC, 10, 51, 68, 9
LTEXT "Description :", IDC_STATIC, 12, 86, 44, 9
PUSHBUTTON "OK", IDOK, 126, 192, 44, 13
PUSHBUTTON "Cancel", IDCANCEL, 176, 192, 46, 13
LTEXT "Additional options (click help for details)", IDC_STATIC, 10, 151, 134, 9
PUSHBUTTON "Help", ID_CREATE_HELP, 6, 192, 44, 13
END
IDD_DLG_DELETE DIALOGEX 6,6,185,148
CAPTION "Delete a service"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_DLGFRAME | DS_MODALFRAME
BEGIN
ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22
LTEXT "Are you sure you want to delete the following service? This cannot be undone once removed!", IDC_STATIC, 50, 6, 125, 25
LTEXT "Service Name:",IDC_STATIC, 6, 40, 80, 9
LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15
EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY
PUSHBUTTON "Yes", IDOK, 26, 129, 54, 13
PUSHBUTTON "No", IDCANCEL, 102, 129, 54, 13
END
IDD_DLG_HELP_OPTIONS DIALOGEX 6,6,200,150
CAPTION "Options"
FONT 8, "MS Shell Dlg",0,0
STYLE 0x10CF0000
BEGIN
LTEXT "", IDC_CREATE_HELP, 6, 5, 200, 150
PUSHBUTTON "Ok", IDOK, 75, 130, 44, 13
END
IDD_DLG_PROGRESS DIALOGEX 6,6,255,89
CAPTION "Service Control"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
EXSTYLE WS_EX_TOOLWINDOW
BEGIN
CONTROL "", IDC_SERVCON_PROGRESS, "msctls_progress32", 0x50000000, 8, 46, 238, 13
LTEXT "", IDC_SERVCON_INFO, 8, 5, 236, 11
LTEXT "", IDC_SERVCON_NAME, 8, 25, 66, 11
PUSHBUTTON "&Close", IDOK, 100, 70, 54, 13
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FIRSTCOLUMN "Name"
IDS_SECONDCOLUMN "Description"
IDS_THIRDCOLUMN "Status"
IDS_FOURTHCOLUMN "Startup Type"
IDS_FITHCOLUMN "Log On As"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STARTED "Started"
IDS_SERVICES_STOPPED "Stopped"
IDS_SERVICES_AUTO "Automatic"
IDS_SERVICES_MAN "Manual"
IDS_SERVICES_DIS "Disabled"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_NUM_SERVICES "Num Services: %d"
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Properties"
IDS_TOOLTIP_REFRESH "Refresh"
IDS_TOOLTIP_EXPORT "Export list"
IDS_TOOLTIP_CREATE "Create a new service"
IDS_TOOLTIP_DELETE "Deletes an existing service"
IDS_TOOLTIP_START "Start service"
IDS_TOOLTIP_STOP "Stop service"
IDS_TOOLTIP_PAUSE "Pause service"
IDS_TOOLTIP_RESTART "Restart service"
IDS_TOOLTIP_HELP "Help"
IDS_TOOLTIP_EXIT "Exit"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service"
IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service"
IDS_CREATE_SUCCESS "Service Created Succesfully"
IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory"
IDS_DELETE_STOP "You must manually stop the service before deleting!"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_HELP_OPTIONS "CREATE OPTIONS:\r\nNOTE: The option name includes the equal sign.\r\n type= <own|share|interact|kernel|filesys|rec>\r\n (default = own)\r\n start= <boot|system|auto|demand|disabled>\r\n (default = demand) \r\n error= <normal|severe|critical|ignore>\r\n (default = normal)\r\n group= <LoadOrderGroup>\r\n tag= <yes|no>\r\n depend= <Dependencies(separated by / (forward slash))>\r\n obj= <AccountName|ObjectName>\r\n (default = LocalSystem)\r\n password= <password>\r\n"
END
#define IDS_HINT_BLANK 20000
#define IDS_HINT_EXPORT 20001
#define IDS_HINT_EXIT 20002
#define IDS_HINT_CONNECT 20011
#define IDS_HINT_START 20012
#define IDS_HINT_STOP 21013
#define IDS_HINT_PAUSE 21014
#define IDS_HINT_RESUME 20015
#define IDS_HINT_RESTART 20016
#define IDS_HINT_REFRESH 20017
#define IDS_HINT_EDIT 20018
#define IDS_HINT_CREATE 20019
#define IDS_HINT_DELETE 20020
#define IDS_HINT_PROP 20021
#define IDS_HINT_LARGE 20030
#define IDS_HINT_SMALL 20031
#define IDS_HINT_LIST 20032
#define IDS_HINT_DETAILS 20033
#define IDS_HINT_CUST 20034
#define IDS_HINT_HELP 20040
#define IDS_HINT_ABOUT 20041
/* Hints */
STRINGTABLE DISCARDABLE
BEGIN
IDS_HINT_BLANK " "
IDS_HINT_EXPORT " Exports the current list to a file."
IDS_HINT_EXIT " Exits the program."
IDS_HINT_CONNECT " Manage a different computer."
IDS_HINT_START " Start the selected service."
IDS_HINT_STOP " Stop the selected service."
IDS_HINT_PAUSE " Pause the selected service."
IDS_HINT_RESUME " Resume the selected service."
IDS_HINT_RESTART " Stop and start the selected service."
IDS_HINT_REFRESH " Refresh the service list."
IDS_HINT_EDIT " Edit the properties of the selected service."
IDS_HINT_CREATE " Create a new service."
IDS_HINT_DELETE " Delete the selected service."
IDS_HINT_PROP " Open property sheet for the current selection."
IDS_HINT_LARGE " Display items by using large icons."
IDS_HINT_SMALL " Display items by using small icons."
IDS_HINT_LIST " Display item in a list."
IDS_HINT_DETAILS " Display information about each item in a window."
IDS_HINT_CUST " Customizes the view."
IDS_HINT_HELP " Display help window."
IDS_HINT_ABOUT " About ReactOS Service Manager."
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
IDS_HINT_SYS_SIZE " Resizes this window."
IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
IDS_HINT_SYS_CLOSE " Closes this window."
END
IDR_MAINMENU MENU
BEGIN
POPUP "&File"
BEGIN
MENUITEM "Export...", ID_EXPORT
MENUITEM SEPARATOR
MENUITEM "E&xit", ID_EXIT
END
POPUP "Action"
BEGIN
MENUITEM "Connect to...", ID_CONNECT, GRAYED
MENUITEM SEPARATOR
MENUITEM "Start", ID_START, GRAYED
MENUITEM "Stop", ID_STOP, GRAYED
MENUITEM "Pause", ID_PAUSE, GRAYED
MENUITEM "Resume", ID_RESUME, GRAYED
MENUITEM "Restart", ID_RESTART, GRAYED
MENUITEM SEPARATOR
MENUITEM "Refresh", ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Edit...", ID_EDIT, GRAYED
MENUITEM "Create...", ID_CREATE
MENUITEM "Delete...", ID_DELETE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Properties...", ID_PROP, GRAYED
END
POPUP "View"
BEGIN
MENUITEM "Large Icons", ID_VIEW_LARGE
MENUITEM "Small Icons", ID_VIEW_SMALL
MENUITEM "List", ID_VIEW_LIST
MENUITEM "Details", ID_VIEW_DETAILS
MENUITEM SEPARATOR
MENUITEM "Customize...",ID_VIEW_CUST, GRAYED
END
POPUP "Help"
BEGIN
MENUITEM "Help", ID_HELP
MENUITEM "About", ID_ABOUT
END
END
IDR_POPUP MENU
BEGIN
POPUP "popup"
BEGIN
MENUITEM "Start", ID_START, GRAYED
MENUITEM "Stop", ID_STOP, GRAYED
MENUITEM "Pause", ID_PAUSE, GRAYED
MENUITEM "Resume", ID_RESUME, GRAYED
MENUITEM "Restart", ID_RESTART, GRAYED
MENUITEM SEPARATOR
MENUITEM "Refresh", ID_REFRESH
MENUITEM SEPARATOR
MENUITEM "Edit...", ID_EDIT, GRAYED
MENUITEM "Delete...", ID_DELETE, GRAYED
MENUITEM SEPARATOR
MENUITEM "Properties...", ID_PROP, GRAYED
MENUITEM SEPARATOR
MENUITEM "Help...", ID_HELP
END
END
IDD_ABOUTBOX DIALOGEX 22,16,190,182
CAPTION "About Service Manager"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
BEGIN
LTEXT "Service Manager v0.5.1\nCopyright (C) 2005-2006\nby Ged Murphy ([email protected])", IDC_STATIC, 48, 7, 130, 26
PUSHBUTTON "Close", IDOK, 75, 162, 44, 15
ICON IDI_SM_ICON, IDC_STATIC, 10, 10, 7, 30
EDITTEXT IDC_LICENSE_EDIT, 8, 44, 174, 107, WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_READONLY | ES_MULTILINE
END
IDD_DLG_GENERAL DIALOGEX 6,6,253,225
CAPTION "General"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
LTEXT "", IDC_SERV_NAME, 70,11,176,11, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_DISP_NAME, 70, 29, 176, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY
EDITTEXT IDC_DESCRIPTION, 70, 46, 176, 24, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | ES_MULTILINE | ES_READONLY
EDITTEXT IDC_EXEPATH, 6, 86, 240, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_READONLY
COMBOBOX IDC_START_TYPE, 70, 107, 176, 40, WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST
PUSHBUTTON "Start", IDC_START, 6, 155, 54, 15, WS_DISABLED
PUSHBUTTON "Stop", IDC_STOP, 68, 155, 54, 15, WS_DISABLED
PUSHBUTTON "Pause", IDC_PAUSE , 130, 155, 54, 15, WS_DISABLED
PUSHBUTTON "Resume", IDC_RESUME, 192, 155, 54, 15, WS_DISABLED
LTEXT "Service name:", IDC_STATIC, 4, 11, 53, 11
LTEXT "Display name:", IDC_STATIC, 4, 29, 53, 11
LTEXT "Description:", IDC_STATIC, 4, 51, 53, 11
LTEXT "Path to executable:", IDC_STATIC, 6, 73, 82, 9
LTEXT "Startup type:", IDC_STATIC, 6, 108, 53, 11
LTEXT "Service status:", IDC_STATIC, 4, 138, 53, 11
LTEXT "", IDC_SERV_STATUS, 70, 138, 176, 11, WS_CHILD | WS_VISIBLE
LTEXT "You can specify the start parameters that apply when you start the service from here.",IDC_STATIC, 6,177,240,15
LTEXT "Start parameters:", IDC_STATIC, 6, 200, 58, 11
EDITTEXT IDC_START_PARAM, 68, 199, 178, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP
END
IDD_DLG_DEPEND DIALOGEX 6,6,253,225
CAPTION "Dependencies"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
CONTROL "", IDC_DEPEND_TREE1, "SysTreeView32" ,0x50010007, 8, 70, 236, 68, 0x00000200
CONTROL "", IDC_DEPEND_TREE2, "SysTreeView32", 0x50010007, 8, 151, 234, 67, 0x00000200
LTEXT "Some services depend on other services, system drivers and load order groups. If a system component is stopped or it is not running properly, dependant services can be affected.", IDC_STATIC,8, 7, 238, 26
LTEXT "This service depends on the following components", IDC_STATIC, 8, 57, 236, 9
LTEXT "", IDC_DEPEND_SERVICE, 8, 38, 236, 13
END
IDD_DLG_CREATE DIALOGEX 6,6,225,209
CAPTION "Create a service"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_VISIBLE | WS_DLGFRAME | WS_SYSMENU | WS_THICKFRAME | WS_GROUP | WS_TABSTOP
BEGIN
EDITTEXT IDC_CREATE_SERVNAME, 72, 12, 150, 11, WS_CHILD | WS_VISIBLE | WS_EX_CLIENTEDGE
EDITTEXT IDC_CREATE_DISPNAME, 72, 31, 150, 11, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_CREATE_PATH, 8, 62, 214, 13, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_CREATE_DESC, 10, 97, 210, 48, WS_CHILD | WS_VISIBLE
EDITTEXT IDC_CREATE_OPTIONS, 10, 162, 210, 13, WS_CHILD | WS_VISIBLE
LTEXT "*Service Name :", IDC_STATIC, 12, 12, 54, 9
LTEXT "*Display Name :", IDC_STATIC, 12, 33, 54, 9
LTEXT "*Path to executable :", IDC_STATIC, 10, 51, 68, 9
LTEXT "Description :", IDC_STATIC, 12, 86, 44, 9
PUSHBUTTON "OK", IDOK, 126, 192, 44, 13
PUSHBUTTON "Cancel", IDCANCEL, 176, 192, 46, 13
LTEXT "Additional options (click help for details)", IDC_STATIC, 10, 151, 134, 9
PUSHBUTTON "Help", ID_CREATE_HELP, 6, 192, 44, 13
END
IDD_DLG_DELETE DIALOGEX 6,6,185,148
CAPTION "Delete a service"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_DLGFRAME | DS_MODALFRAME
BEGIN
ICON IDI_WARNING, IDC_STATIC, 10, 8, 24, 22
LTEXT "Are you sure you want to delete the following service? This cannot be undone once removed!", IDC_STATIC, 50, 6, 125, 25
LTEXT "Service Name:",IDC_STATIC, 6, 40, 80, 9
LTEXT "", IDC_DEL_NAME, 15, 53, 160, 15
EDITTEXT IDC_DEL_DESC, 6, 73, 174, 48, WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_EX_STATICEDGE | ES_MULTILINE | ES_READONLY
PUSHBUTTON "Yes", IDOK, 26, 129, 54, 13
PUSHBUTTON "No", IDCANCEL, 102, 129, 54, 13
END
IDD_DLG_HELP_OPTIONS DIALOGEX 6,6,200,150
CAPTION "Options"
FONT 8, "MS Shell Dlg",0,0
STYLE 0x10CF0000
BEGIN
LTEXT "", IDC_CREATE_HELP, 6, 5, 200, 150
PUSHBUTTON "Ok", IDOK, 75, 130, 44, 13
END
IDD_DLG_PROGRESS DIALOGEX 6,6,255,89
CAPTION "Service Control"
FONT 8, "MS Shell Dlg",0,0
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
EXSTYLE WS_EX_TOOLWINDOW
BEGIN
CONTROL "", IDC_SERVCON_PROGRESS, "msctls_progress32", 0x50000000, 8, 46, 238, 13
LTEXT "", IDC_SERVCON_INFO, 8, 5, 236, 11
LTEXT "", IDC_SERVCON_NAME, 8, 25, 66, 11
PUSHBUTTON "&Close", IDOK, 100, 70, 54, 13
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_FIRSTCOLUMN "Name"
IDS_SECONDCOLUMN "Description"
IDS_THIRDCOLUMN "Status"
IDS_FOURTHCOLUMN "Startup Type"
IDS_FITHCOLUMN "Log On As"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_SERVICES_STARTED "Started"
IDS_SERVICES_STOPPED "Stopped"
IDS_SERVICES_AUTO "Automatic"
IDS_SERVICES_MAN "Manual"
IDS_SERVICES_DIS "Disabled"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_NUM_SERVICES "Num Services: %d"
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_TOOLTIP_PROP "Properties"
IDS_TOOLTIP_REFRESH "Refresh"
IDS_TOOLTIP_EXPORT "Export list"
IDS_TOOLTIP_CREATE "Create a new service"
IDS_TOOLTIP_DELETE "Deletes an existing service"
IDS_TOOLTIP_START "Start service"
IDS_TOOLTIP_STOP "Stop service"
IDS_TOOLTIP_PAUSE "Pause service"
IDS_TOOLTIP_RESTART "Restart service"
IDS_TOOLTIP_HELP "Help"
IDS_TOOLTIP_EXIT "Exit"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_PROGRESS_INFO_START "ReactOS is attempting to start the following service"
IDS_PROGRESS_INFO_STOP "ReactOS is attempting to stop the following service"
IDS_CREATE_SUCCESS "Service Created Succesfully"
IDS_CREATE_REQ "Fields marked with an\nasterix are mandatory"
IDS_DELETE_STOP "You must manually stop the service before deleting!"
END
STRINGTABLE DISCARDABLE
BEGIN
IDS_HELP_OPTIONS "CREATE OPTIONS:\r\nNOTE: The option name includes the equal sign.\r\n type= <own|share|interact|kernel|filesys|rec>\r\n (default = own)\r\n start= <boot|system|auto|demand|disabled>\r\n (default = demand) \r\n error= <normal|severe|critical|ignore>\r\n (default = normal)\r\n group= <LoadOrderGroup>\r\n tag= <yes|no>\r\n depend= <Dependencies(separated by / (forward slash))>\r\n obj= <AccountName|ObjectName>\r\n (default = LocalSystem)\r\n password= <password>\r\n"
END
#define IDS_HINT_BLANK 20000
#define IDS_HINT_EXPORT 20001
#define IDS_HINT_EXIT 20002
#define IDS_HINT_CONNECT 20011
#define IDS_HINT_START 20012
#define IDS_HINT_STOP 21013
#define IDS_HINT_PAUSE 21014
#define IDS_HINT_RESUME 20015
#define IDS_HINT_RESTART 20016
#define IDS_HINT_REFRESH 20017
#define IDS_HINT_EDIT 20018
#define IDS_HINT_CREATE 20019
#define IDS_HINT_DELETE 20020
#define IDS_HINT_PROP 20021
#define IDS_HINT_LARGE 20030
#define IDS_HINT_SMALL 20031
#define IDS_HINT_LIST 20032
#define IDS_HINT_DETAILS 20033
#define IDS_HINT_CUST 20034
#define IDS_HINT_HELP 20040
#define IDS_HINT_ABOUT 20041
/* Hints */
STRINGTABLE DISCARDABLE
BEGIN
IDS_HINT_BLANK " "
IDS_HINT_EXPORT " Exports the current list to a file."
IDS_HINT_EXIT " Exits the program."
IDS_HINT_CONNECT " Manage a different computer."
IDS_HINT_START " Start the selected service."
IDS_HINT_STOP " Stop the selected service."
IDS_HINT_PAUSE " Pause the selected service."
IDS_HINT_RESUME " Resume the selected service."
IDS_HINT_RESTART " Stop and start the selected service."
IDS_HINT_REFRESH " Refresh the service list."
IDS_HINT_EDIT " Edit the properties of the selected service."
IDS_HINT_CREATE " Create a new service."
IDS_HINT_DELETE " Delete the selected service."
IDS_HINT_PROP " Open property sheet for the current selection."
IDS_HINT_LARGE " Display items by using large icons."
IDS_HINT_SMALL " Display items by using small icons."
IDS_HINT_LIST " Display item in a list."
IDS_HINT_DETAILS " Display information about each item in a window."
IDS_HINT_CUST " Customizes the view."
IDS_HINT_HELP " Display help window."
IDS_HINT_ABOUT " About ReactOS Service Manager."
IDS_HINT_SYS_RESTORE " Restores this window to normal size."
IDS_HINT_SYS_MOVE " Moves this window."
IDS_HINT_SYS_SIZE " Resizes this window."
IDS_HINT_SYS_MINIMIZE " Collapses this window to an icon."
IDS_HINT_SYS_MAXIMIZE " Expands this window to fill this screen."
IDS_HINT_SYS_CLOSE " Closes this window."
END
+62 -62
View File
@@ -1,62 +1,62 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/about.c
* PURPOSE: About dialog box message handler
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL CALLBACK
AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND hLicenseEditWnd;
HICON hIcon = NULL;
TCHAR strLicense[700];
switch (message)
{
case WM_INITDIALOG:
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hLicenseEditWnd = GetDlgItem(hDlg,
IDC_LICENSE_EDIT);
LoadString(hInstance,
IDS_LICENSE,
strLicense,
sizeof(strLicense) / sizeof(TCHAR));
SetWindowText(hLicenseEditWnd,
strLicense);
return TRUE;
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/about.c
* PURPOSE: About dialog box message handler
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL CALLBACK
AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND hLicenseEditWnd;
HICON hIcon = NULL;
TCHAR strLicense[700];
switch (message)
{
case WM_INITDIALOG:
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hLicenseEditWnd = GetDlgItem(hDlg,
IDC_LICENSE_EDIT);
LoadString(hInstance,
IDS_LICENSE,
strLicense,
sizeof(strLicense) / sizeof(TCHAR));
SetWindowText(hLicenseEditWnd,
strLicense);
return TRUE;
case WM_COMMAND:
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
+157 -157
View File
@@ -1,157 +1,157 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/control
* PURPOSE: Stops, pauses and resumes a service
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL
Control(PMAIN_WND_INFO Info,
DWORD Control)
{
HWND hProgBar;
SC_HANDLE hSCManager;
SC_HANDLE hSc;
SERVICE_STATUS_PROCESS ServiceStatus;
SERVICE_STATUS Status;
LVITEM item;
DWORD BytesNeeded = 0;
DWORD dwStartTickCount, dwOldCheckPoint;
item.mask = LVIF_PARAM;
item.iItem = Info->SelectedItem;
SendMessage(Info->hListView,
LVM_GETITEM,
0,
(LPARAM)&item);
/* set the progress bar range and step */
hProgBar = GetDlgItem(Info->hProgDlg,
IDC_SERVCON_PROGRESS);
SendMessage(hProgBar,
PBM_SETRANGE,
0,
MAKELPARAM(0, PROGRESSRANGE));
SendMessage(hProgBar,
PBM_SETSTEP,
(WPARAM)1,
0);
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
{
GetError();
return FALSE;
}
/* open handle to the service */
hSc = OpenService(hSCManager,
Info->CurrentService->lpServiceName,
SC_MANAGER_ALL_ACCESS);
if (hSc == NULL)
{
GetError();
return FALSE;
}
/* process requested action */
if (! ControlService(hSc,
Control,
&Status))
{
GetError();
CloseServiceHandle(hSc);
return FALSE;
}
/* query the state of the service */
if (! QueryServiceStatusEx(hSc,
SC_STATUS_PROCESS_INFO,
(LPBYTE)&ServiceStatus,
sizeof(SERVICE_STATUS_PROCESS),
&BytesNeeded))
{
GetError();
return FALSE;
}
/* Save the tick count and initial checkpoint. */
dwStartTickCount = GetTickCount();
dwOldCheckPoint = ServiceStatus.dwCheckPoint;
/* loop whilst service is not running */
/* FIXME: needs more control adding. 'Loop' is temparary */
while (ServiceStatus.dwCurrentState != Control)
{
DWORD dwWaitTime;
dwWaitTime = ServiceStatus.dwWaitHint / 10;
if (dwWaitTime < 500)
dwWaitTime = 500;
else if (dwWaitTime > 5000)
dwWaitTime = 5000;
/* increment the progress bar */
SendMessage(hProgBar,
PBM_STEPIT,
0,
0);
/* wait before checking status */
Sleep(dwWaitTime);
/* check status again */
if (! QueryServiceStatusEx(hSc,
SC_STATUS_PROCESS_INFO,
(LPBYTE)&ServiceStatus,
sizeof(SERVICE_STATUS_PROCESS),
&BytesNeeded))
{
GetError();
return FALSE;
}
if (ServiceStatus.dwCheckPoint > dwOldCheckPoint)
{
/* The service is making progress. increment the progress bar */
SendMessage(hProgBar,
PBM_STEPIT,
0,
0);
dwStartTickCount = GetTickCount();
dwOldCheckPoint = ServiceStatus.dwCheckPoint;
}
else
{
if(GetTickCount() - dwStartTickCount > ServiceStatus.dwWaitHint)
{
/* No progress made within the wait hint */
break;
}
}
}
CloseServiceHandle(hSc);
if (ServiceStatus.dwCurrentState == Control)
{
SendMessage(hProgBar,
PBM_DELTAPOS,
PROGRESSRANGE,
0);
Sleep(1000);
return TRUE;
}
else
return FALSE;
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/control
* PURPOSE: Stops, pauses and resumes a service
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL
Control(PMAIN_WND_INFO Info,
DWORD Control)
{
HWND hProgBar;
SC_HANDLE hSCManager;
SC_HANDLE hSc;
SERVICE_STATUS_PROCESS ServiceStatus;
SERVICE_STATUS Status;
LVITEM item;
DWORD BytesNeeded = 0;
DWORD dwStartTickCount, dwOldCheckPoint;
item.mask = LVIF_PARAM;
item.iItem = Info->SelectedItem;
SendMessage(Info->hListView,
LVM_GETITEM,
0,
(LPARAM)&item);
/* set the progress bar range and step */
hProgBar = GetDlgItem(Info->hProgDlg,
IDC_SERVCON_PROGRESS);
SendMessage(hProgBar,
PBM_SETRANGE,
0,
MAKELPARAM(0, PROGRESSRANGE));
SendMessage(hProgBar,
PBM_SETSTEP,
(WPARAM)1,
0);
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
{
GetError();
return FALSE;
}
/* open handle to the service */
hSc = OpenService(hSCManager,
Info->CurrentService->lpServiceName,
SC_MANAGER_ALL_ACCESS);
if (hSc == NULL)
{
GetError();
return FALSE;
}
/* process requested action */
if (! ControlService(hSc,
Control,
&Status))
{
GetError();
CloseServiceHandle(hSc);
return FALSE;
}
/* query the state of the service */
if (! QueryServiceStatusEx(hSc,
SC_STATUS_PROCESS_INFO,
(LPBYTE)&ServiceStatus,
sizeof(SERVICE_STATUS_PROCESS),
&BytesNeeded))
{
GetError();
return FALSE;
}
/* Save the tick count and initial checkpoint. */
dwStartTickCount = GetTickCount();
dwOldCheckPoint = ServiceStatus.dwCheckPoint;
/* loop whilst service is not running */
/* FIXME: needs more control adding. 'Loop' is temparary */
while (ServiceStatus.dwCurrentState != Control)
{
DWORD dwWaitTime;
dwWaitTime = ServiceStatus.dwWaitHint / 10;
if (dwWaitTime < 500)
dwWaitTime = 500;
else if (dwWaitTime > 5000)
dwWaitTime = 5000;
/* increment the progress bar */
SendMessage(hProgBar,
PBM_STEPIT,
0,
0);
/* wait before checking status */
Sleep(dwWaitTime);
/* check status again */
if (! QueryServiceStatusEx(hSc,
SC_STATUS_PROCESS_INFO,
(LPBYTE)&ServiceStatus,
sizeof(SERVICE_STATUS_PROCESS),
&BytesNeeded))
{
GetError();
return FALSE;
}
if (ServiceStatus.dwCheckPoint > dwOldCheckPoint)
{
/* The service is making progress. increment the progress bar */
SendMessage(hProgBar,
PBM_STEPIT,
0,
0);
dwStartTickCount = GetTickCount();
dwOldCheckPoint = ServiceStatus.dwCheckPoint;
}
else
{
if(GetTickCount() - dwStartTickCount > ServiceStatus.dwWaitHint)
{
/* No progress made within the wait hint */
break;
}
}
}
CloseServiceHandle(hSc);
if (ServiceStatus.dwCurrentState == Control)
{
SendMessage(hProgBar,
PBM_DELTAPOS,
PROGRESSRANGE,
0);
Sleep(1000);
return TRUE;
}
else
return FALSE;
}
+401 -401
View File
@@ -1,401 +1,401 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/create.c
* PURPOSE: Create a new service
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
typedef struct _CREATE_DATA
{
HWND hSelf;
LPTSTR ServiceName;
LPTSTR DisplayName;
LPTSTR BinPath;
LPTSTR Description;
LPTSTR Options;
} CREATE_DATA, *PCREATE_DATA;
static BOOL bHelpOpen = FALSE;
static BOOL
DoCreate(PCREATE_DATA Data)
{
SC_HANDLE hSCManager;
SC_HANDLE hSc;
TCHAR Buf[32];
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
{
GetError();
return FALSE;
}
hSc = CreateService(hSCManager,
Data->ServiceName,
Data->DisplayName,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
Data->BinPath,
NULL,
NULL,
NULL,
NULL,
NULL);
if (hSc == NULL)
{
GetError();
CloseServiceHandle(hSCManager);
return FALSE;
}
/* Set the service description in the registry
* CreateService does not do this for us */
SetDescription(Data->ServiceName,
Data->Description);
/* report success to user */
LoadString(hInstance,
IDS_CREATE_SUCCESS,
Buf,
sizeof(Buf) / sizeof(TCHAR));
DisplayString(Buf);
CloseServiceHandle(hSCManager);
CloseServiceHandle(hSc);
return TRUE;
}
static BOOL
GetDataFromDialog(PCREATE_DATA Data)
{
HWND hwnd;
TCHAR Buf[64];
INT iLen = 0;
/* get service name */
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_SERVNAME);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->ServiceName = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->ServiceName != NULL)
{
GetWindowText(hwnd,
Data->ServiceName,
iLen+1);
}
else
return FALSE;
}
else
{
LoadString(hInstance,
IDS_CREATE_REQ,
Buf,
sizeof(Buf));
DisplayString(Buf);
SetFocus(hwnd);
return FALSE;
}
/* get display name */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_DISPNAME);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->DisplayName = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->DisplayName != NULL)
{
GetWindowText(hwnd,
Data->DisplayName,
iLen+1);
}
else
return FALSE;
}
else
{
LoadString(hInstance,
IDS_CREATE_REQ,
Buf,
sizeof(Buf));
DisplayString(Buf);
SetFocus(hwnd);
return FALSE;
}
/* get binary path */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_PATH);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->BinPath = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->BinPath != NULL)
{
GetWindowText(hwnd,
Data->BinPath,
iLen+1);
}
else
return FALSE;
}
else
{
LoadString(hInstance,
IDS_CREATE_REQ,
Buf,
sizeof(Buf));
DisplayString(Buf);
SetFocus(hwnd);
return FALSE;
}
/* get description */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_DESC);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->Description = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->Description != NULL)
{
GetWindowText(hwnd,
Data->Description,
iLen+1);
}
else
return FALSE;
}
/* get options */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_PATH);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->Options = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->Options != NULL)
{
GetWindowText(hwnd,
Data->Options,
iLen+1);
}
else
return FALSE;
}
return TRUE;
}
static VOID
FreeMemory(PCREATE_DATA Data)
{
if (Data->ServiceName != NULL)
HeapFree(ProcessHeap,
0,
Data->ServiceName);
if (Data->DisplayName != NULL)
HeapFree(ProcessHeap,
0,
Data->DisplayName);
if (Data->BinPath != NULL)
HeapFree(ProcessHeap,
0,
Data->BinPath);
if (Data->Description != NULL)
HeapFree(ProcessHeap,
0,
Data->Description);
if (Data->Options != NULL)
HeapFree(ProcessHeap,
0,
Data->Options);
HeapFree(ProcessHeap,
0,
Data);
}
BOOL CALLBACK
CreateHelpDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HWND hHelp;
HICON hIcon = NULL;
TCHAR Buf[1000];
switch (message)
{
case WM_INITDIALOG:
{
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hHelp = GetDlgItem(hDlg,
IDC_CREATE_HELP);
LoadString(hInstance,
IDS_HELP_OPTIONS,
Buf,
sizeof(Buf) / sizeof(TCHAR));
SetWindowText(hHelp,
Buf);
return TRUE;
}
case WM_COMMAND:
{
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
bHelpOpen = FALSE;
DestroyIcon(hIcon);
DestroyWindow(hDlg);
return TRUE;
}
break;
}
}
return FALSE;
}
BOOL CALLBACK
CreateDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HICON hIcon = NULL;
switch (message)
{
case WM_INITDIALOG:
{
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
{
PCREATE_DATA Data;
Data = HeapAlloc(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(CREATE_DATA));
if (Data != NULL)
{
Data->hSelf = hDlg;
if (GetDataFromDialog(Data))
{
DoCreate(Data);
}
else
{
/* Something went wrong, leave the dialog
* open so they can try again */
FreeMemory(Data);
break;
}
FreeMemory(Data);
}
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
case IDCANCEL:
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
case ID_CREATE_HELP:
{
HWND hHelp;
if (! bHelpOpen)
{
hHelp = CreateDialog(hInstance,
MAKEINTRESOURCE(IDD_DLG_HELP_OPTIONS),
hDlg,
(DLGPROC)CreateHelpDialogProc);
if(hHelp != NULL)
{
bHelpOpen = TRUE;
}
}
}
break;
}
}
}
return FALSE;
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/create.c
* PURPOSE: Create a new service
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
typedef struct _CREATE_DATA
{
HWND hSelf;
LPTSTR ServiceName;
LPTSTR DisplayName;
LPTSTR BinPath;
LPTSTR Description;
LPTSTR Options;
} CREATE_DATA, *PCREATE_DATA;
static BOOL bHelpOpen = FALSE;
static BOOL
DoCreate(PCREATE_DATA Data)
{
SC_HANDLE hSCManager;
SC_HANDLE hSc;
TCHAR Buf[32];
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
{
GetError();
return FALSE;
}
hSc = CreateService(hSCManager,
Data->ServiceName,
Data->DisplayName,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_DEMAND_START,
SERVICE_ERROR_NORMAL,
Data->BinPath,
NULL,
NULL,
NULL,
NULL,
NULL);
if (hSc == NULL)
{
GetError();
CloseServiceHandle(hSCManager);
return FALSE;
}
/* Set the service description in the registry
* CreateService does not do this for us */
SetDescription(Data->ServiceName,
Data->Description);
/* report success to user */
LoadString(hInstance,
IDS_CREATE_SUCCESS,
Buf,
sizeof(Buf) / sizeof(TCHAR));
DisplayString(Buf);
CloseServiceHandle(hSCManager);
CloseServiceHandle(hSc);
return TRUE;
}
static BOOL
GetDataFromDialog(PCREATE_DATA Data)
{
HWND hwnd;
TCHAR Buf[64];
INT iLen = 0;
/* get service name */
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_SERVNAME);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->ServiceName = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->ServiceName != NULL)
{
GetWindowText(hwnd,
Data->ServiceName,
iLen+1);
}
else
return FALSE;
}
else
{
LoadString(hInstance,
IDS_CREATE_REQ,
Buf,
sizeof(Buf));
DisplayString(Buf);
SetFocus(hwnd);
return FALSE;
}
/* get display name */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_DISPNAME);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->DisplayName = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->DisplayName != NULL)
{
GetWindowText(hwnd,
Data->DisplayName,
iLen+1);
}
else
return FALSE;
}
else
{
LoadString(hInstance,
IDS_CREATE_REQ,
Buf,
sizeof(Buf));
DisplayString(Buf);
SetFocus(hwnd);
return FALSE;
}
/* get binary path */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_PATH);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->BinPath = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->BinPath != NULL)
{
GetWindowText(hwnd,
Data->BinPath,
iLen+1);
}
else
return FALSE;
}
else
{
LoadString(hInstance,
IDS_CREATE_REQ,
Buf,
sizeof(Buf));
DisplayString(Buf);
SetFocus(hwnd);
return FALSE;
}
/* get description */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_DESC);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->Description = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->Description != NULL)
{
GetWindowText(hwnd,
Data->Description,
iLen+1);
}
else
return FALSE;
}
/* get options */
iLen = 0;
hwnd = GetDlgItem(Data->hSelf,
IDC_CREATE_PATH);
iLen = GetWindowTextLength(hwnd);
if (iLen != 0)
{
Data->Options = HeapAlloc(ProcessHeap,
0,
(iLen+1) * sizeof(TCHAR));
if (Data->Options != NULL)
{
GetWindowText(hwnd,
Data->Options,
iLen+1);
}
else
return FALSE;
}
return TRUE;
}
static VOID
FreeMemory(PCREATE_DATA Data)
{
if (Data->ServiceName != NULL)
HeapFree(ProcessHeap,
0,
Data->ServiceName);
if (Data->DisplayName != NULL)
HeapFree(ProcessHeap,
0,
Data->DisplayName);
if (Data->BinPath != NULL)
HeapFree(ProcessHeap,
0,
Data->BinPath);
if (Data->Description != NULL)
HeapFree(ProcessHeap,
0,
Data->Description);
if (Data->Options != NULL)
HeapFree(ProcessHeap,
0,
Data->Options);
HeapFree(ProcessHeap,
0,
Data);
}
BOOL CALLBACK
CreateHelpDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HWND hHelp;
HICON hIcon = NULL;
TCHAR Buf[1000];
switch (message)
{
case WM_INITDIALOG:
{
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
hHelp = GetDlgItem(hDlg,
IDC_CREATE_HELP);
LoadString(hInstance,
IDS_HELP_OPTIONS,
Buf,
sizeof(Buf) / sizeof(TCHAR));
SetWindowText(hHelp,
Buf);
return TRUE;
}
case WM_COMMAND:
{
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
{
bHelpOpen = FALSE;
DestroyIcon(hIcon);
DestroyWindow(hDlg);
return TRUE;
}
break;
}
}
return FALSE;
}
BOOL CALLBACK
CreateDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
HICON hIcon = NULL;
switch (message)
{
case WM_INITDIALOG:
{
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
{
PCREATE_DATA Data;
Data = HeapAlloc(ProcessHeap,
HEAP_ZERO_MEMORY,
sizeof(CREATE_DATA));
if (Data != NULL)
{
Data->hSelf = hDlg;
if (GetDataFromDialog(Data))
{
DoCreate(Data);
}
else
{
/* Something went wrong, leave the dialog
* open so they can try again */
FreeMemory(Data);
break;
}
FreeMemory(Data);
}
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
case IDCANCEL:
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
case ID_CREATE_HELP:
{
HWND hHelp;
if (! bHelpOpen)
{
hHelp = CreateDialog(hInstance,
MAKEINTRESOURCE(IDD_DLG_HELP_OPTIONS),
hDlg,
(DLGPROC)CreateHelpDialogProc);
if(hHelp != NULL)
{
bHelpOpen = TRUE;
}
}
}
break;
}
}
}
return FALSE;
}
+142 -142
View File
@@ -1,142 +1,142 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/delete.c
* PURPOSE: Delete an existing service
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static BOOL
DoDeleteService(PMAIN_WND_INFO Info,
HWND hDlg)
{
SC_HANDLE hSCManager;
SC_HANDLE hSc;
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
{
GetError();
return FALSE;
}
/* get a handle to the service requested for deleting */
hSc = OpenService(hSCManager,
Info->CurrentService->lpServiceName,
DELETE);
if (hSc == NULL)
{
GetError();
CloseServiceHandle(hSCManager);
return FALSE;
}
/* delete the service opened */
if (! DeleteService(hSc))
{
GetError();
CloseServiceHandle(hSCManager);
CloseServiceHandle(hSc);
return FALSE;
}
CloseServiceHandle(hSCManager);
CloseServiceHandle(hSc);
return TRUE;
}
BOOL CALLBACK
DeleteDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
PMAIN_WND_INFO Info = NULL;
HICON hIcon = NULL;
TCHAR Buf[1000];
LVITEM item;
switch (message)
{
case WM_INITDIALOG:
{
Info = (PMAIN_WND_INFO)lParam;
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
SendDlgItemMessage(hDlg,
IDC_DEL_NAME,
WM_SETTEXT,
0,
(LPARAM)Info->CurrentService->lpDisplayName);
item.mask = LVIF_TEXT;
item.iItem = Info->SelectedItem;
item.iSubItem = 1;
item.pszText = Buf;
item.cchTextMax = sizeof(Buf);
SendMessage(Info->hListView,
LVM_GETITEM,
0,
(LPARAM)&item);
SendDlgItemMessage(hDlg,
IDC_DEL_DESC,
WM_SETTEXT,
0,
(LPARAM)Buf);
SetFocus(GetDlgItem(hDlg, IDCANCEL));
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
{
if (DoDeleteService(Info, hDlg))
(void)ListView_DeleteItem(Info->hListView,
Info->SelectedItem);
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
case IDCANCEL:
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
}
}
}
return FALSE;
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/delete.c
* PURPOSE: Delete an existing service
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static BOOL
DoDeleteService(PMAIN_WND_INFO Info,
HWND hDlg)
{
SC_HANDLE hSCManager;
SC_HANDLE hSc;
/* open handle to the SCM */
hSCManager = OpenSCManager(NULL,
NULL,
SC_MANAGER_ALL_ACCESS);
if (hSCManager == NULL)
{
GetError();
return FALSE;
}
/* get a handle to the service requested for deleting */
hSc = OpenService(hSCManager,
Info->CurrentService->lpServiceName,
DELETE);
if (hSc == NULL)
{
GetError();
CloseServiceHandle(hSCManager);
return FALSE;
}
/* delete the service opened */
if (! DeleteService(hSc))
{
GetError();
CloseServiceHandle(hSCManager);
CloseServiceHandle(hSc);
return FALSE;
}
CloseServiceHandle(hSCManager);
CloseServiceHandle(hSc);
return TRUE;
}
BOOL CALLBACK
DeleteDialogProc(HWND hDlg,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
PMAIN_WND_INFO Info = NULL;
HICON hIcon = NULL;
TCHAR Buf[1000];
LVITEM item;
switch (message)
{
case WM_INITDIALOG:
{
Info = (PMAIN_WND_INFO)lParam;
hIcon = LoadImage(hInstance,
MAKEINTRESOURCE(IDI_SM_ICON),
IMAGE_ICON,
16,
16,
0);
SendMessage(hDlg,
WM_SETICON,
ICON_SMALL,
(LPARAM)hIcon);
SendDlgItemMessage(hDlg,
IDC_DEL_NAME,
WM_SETTEXT,
0,
(LPARAM)Info->CurrentService->lpDisplayName);
item.mask = LVIF_TEXT;
item.iItem = Info->SelectedItem;
item.iSubItem = 1;
item.pszText = Buf;
item.cchTextMax = sizeof(Buf);
SendMessage(Info->hListView,
LVM_GETITEM,
0,
(LPARAM)&item);
SendDlgItemMessage(hDlg,
IDC_DEL_DESC,
WM_SETTEXT,
0,
(LPARAM)Buf);
SetFocus(GetDlgItem(hDlg, IDCANCEL));
return TRUE;
}
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
{
if (DoDeleteService(Info, hDlg))
(void)ListView_DeleteItem(Info->hListView,
Info->SelectedItem);
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
case IDCANCEL:
{
DestroyIcon(hIcon);
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
}
}
}
return FALSE;
}
+125 -125
View File
@@ -1,125 +1,125 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/export.c
* PURPOSE: Save services to a file
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static DWORD
GetTextFromListView(PMAIN_WND_INFO Info,
TCHAR Text[500],
INT row,
INT col)
{
LVITEM item;
DWORD NumChars;
ZeroMemory(&item, sizeof(item));
item.mask = LVIF_TEXT;
item.iSubItem = col;
item.pszText = Text;
item.cchTextMax = 500;
NumChars = (INT)SendMessage(Info->hListView,
LVM_GETITEMTEXT,
row,
(LPARAM)&item);
return NumChars;
}
static BOOL
SaveServicesToFile(PMAIN_WND_INFO Info,
LPCTSTR pszFileName)
{
HANDLE hFile;
BOOL bSuccess = FALSE;
hFile = CreateFile(pszFileName,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
TCHAR LVText[500];
TCHAR newl = _T('\n');
TCHAR tab = _T('\t');
DWORD dwTextLength, dwWritten;
INT NumListedServ = 0;
INT i, k;
NumListedServ = ListView_GetItemCount(Info->hListView);
for (i=0; i < NumListedServ; i++)
{
for (k=0; k<5; k++)
{
dwTextLength = GetTextFromListView(Info,
LVText,
i,
k);
if (LVText != NULL)
{
WriteFile(hFile,
LVText,
sizeof(TCHAR) * dwTextLength,
&dwWritten,
NULL);
WriteFile(hFile,
&tab,
sizeof(TCHAR),
&dwWritten,
NULL);
}
}
WriteFile(hFile,
&newl,
sizeof(TCHAR),
&dwWritten,
NULL);
}
CloseHandle(hFile);
bSuccess = TRUE;
}
return bSuccess;
}
VOID ExportFile(PMAIN_WND_INFO Info)
{
OPENFILENAME ofn;
TCHAR szFileName[MAX_PATH] = _T("");
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = Info->hMainWnd;
ofn.lpstrFilter = _T("Text (Tab Delimited)(*.txt)\0*.txt\0Text (Comma Delimited)(*.csv)\0*.csv\0");
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = _T("txt");
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if(GetSaveFileName(&ofn))
{
if (SaveServicesToFile(Info, szFileName))
return;
}
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Export to file failed"), NULL, 0);
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/export.c
* PURPOSE: Save services to a file
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static DWORD
GetTextFromListView(PMAIN_WND_INFO Info,
TCHAR Text[500],
INT row,
INT col)
{
LVITEM item;
DWORD NumChars;
ZeroMemory(&item, sizeof(item));
item.mask = LVIF_TEXT;
item.iSubItem = col;
item.pszText = Text;
item.cchTextMax = 500;
NumChars = (INT)SendMessage(Info->hListView,
LVM_GETITEMTEXT,
row,
(LPARAM)&item);
return NumChars;
}
static BOOL
SaveServicesToFile(PMAIN_WND_INFO Info,
LPCTSTR pszFileName)
{
HANDLE hFile;
BOOL bSuccess = FALSE;
hFile = CreateFile(pszFileName,
GENERIC_WRITE,
0,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
TCHAR LVText[500];
TCHAR newl = _T('\n');
TCHAR tab = _T('\t');
DWORD dwTextLength, dwWritten;
INT NumListedServ = 0;
INT i, k;
NumListedServ = ListView_GetItemCount(Info->hListView);
for (i=0; i < NumListedServ; i++)
{
for (k=0; k<5; k++)
{
dwTextLength = GetTextFromListView(Info,
LVText,
i,
k);
if (LVText != NULL)
{
WriteFile(hFile,
LVText,
sizeof(TCHAR) * dwTextLength,
&dwWritten,
NULL);
WriteFile(hFile,
&tab,
sizeof(TCHAR),
&dwWritten,
NULL);
}
}
WriteFile(hFile,
&newl,
sizeof(TCHAR),
&dwWritten,
NULL);
}
CloseHandle(hFile);
bSuccess = TRUE;
}
return bSuccess;
}
VOID ExportFile(PMAIN_WND_INFO Info)
{
OPENFILENAME ofn;
TCHAR szFileName[MAX_PATH] = _T("");
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = Info->hMainWnd;
ofn.lpstrFilter = _T("Text (Tab Delimited)(*.txt)\0*.txt\0Text (Comma Delimited)(*.csv)\0*.csv\0");
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = _T("txt");
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT;
if(GetSaveFileName(&ofn))
{
if (SaveServicesToFile(Info, szFileName))
return;
}
if (CommDlgExtendedError() != CDERR_GENERALCODES)
MessageBox(NULL, _T("Export to file failed"), NULL, 0);
}
File diff suppressed because it is too large Load Diff
+259 -259
View File
@@ -1,259 +1,259 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/misc.c
* PURPOSE: miscallanous functions
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
if (hInst == NULL)
{
return -1;
}
/* There are always blocks of 16 strings */
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
/* Find the string table block */
if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) &&
(hRes = LoadResource(hInst, hrSrc)) &&
(lpStr = LockResource(hRes)))
{
UINT x;
/* Find the string we're looking for */
uID &= 0xF; /* position in the block, same as % 16 */
for (x = 0; x < uID; x++)
{
lpStr += (*lpStr) + 1;
}
/* Found the string */
return (int)(*lpStr);
}
return -1;
}
INT
AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID)
{
INT ln;
ln = LengthOfStrResource(hInst,
uID);
if (ln++ > 0)
{
(*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED,
ln * sizeof(TCHAR));
if ((*lpTarget) != NULL)
{
INT Ret;
if (!(Ret = LoadString(hInst, uID, *lpTarget, ln)))
{
LocalFree((HLOCAL)(*lpTarget));
}
return Ret;
}
}
return 0;
}
DWORD
LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...)
{
DWORD Ret = 0;
LPTSTR lpFormat;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, lpTarget);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)lpTarget,
0,
&lArgs);
va_end(lArgs);
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...)
{
BOOL Ret = FALSE;
LPTSTR lpFormat, lpStr;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, uID);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)&lpStr,
0,
&lArgs);
va_end(lArgs);
if (lpStr != NULL)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID)
{
BOOL Ret = FALSE;
LPTSTR lpStr;
if (AllocAndLoadString(&lpStr,
hInstance,
uID) > 0)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
return Ret;
}
INT
GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res)
{
INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));
if(len > 0)
{
GetDlgItemText(hDlg,
Res,
lpString,
len + 1);
}
else
lpString = NULL;
return len;
}
VOID GetError(VOID)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
VOID DisplayString(PTCHAR Msg)
{
MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK);
}
HIMAGELIST
InitImageList(UINT StartResource,
UINT EndResource,
UINT Width,
UINT Height)
{
HBITMAP hBitmap;
HIMAGELIST hImageList;
INT i, Ret;
/* Create the toolbar icon image list */
hImageList = ImageList_Create(Width,
Height,
ILC_MASK | ILC_COLOR24,
EndResource - StartResource,
0);
if (hImageList == NULL)
return NULL;
/* Add all icons to the image list */
for (i = StartResource; i <= EndResource; i++)
{
hBitmap = LoadImage(hInstance,
MAKEINTRESOURCE(i),
IMAGE_BITMAP,
Width,
Height,
LR_LOADTRANSPARENT);
if (hBitmap == NULL)
return NULL;
Ret = ImageList_AddMasked(hImageList,
hBitmap,
RGB(255, 0, 128));
if (Ret == -1)
return NULL;
DeleteObject(hBitmap);
}
return hImageList;
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/misc.c
* PURPOSE: miscallanous functions
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static INT
LengthOfStrResource(IN HINSTANCE hInst,
IN UINT uID)
{
HRSRC hrSrc;
HGLOBAL hRes;
LPWSTR lpName, lpStr;
if (hInst == NULL)
{
return -1;
}
/* There are always blocks of 16 strings */
lpName = (LPWSTR)MAKEINTRESOURCE((uID >> 4) + 1);
/* Find the string table block */
if ((hrSrc = FindResourceW(hInst, lpName, (LPWSTR)RT_STRING)) &&
(hRes = LoadResource(hInst, hrSrc)) &&
(lpStr = LockResource(hRes)))
{
UINT x;
/* Find the string we're looking for */
uID &= 0xF; /* position in the block, same as % 16 */
for (x = 0; x < uID; x++)
{
lpStr += (*lpStr) + 1;
}
/* Found the string */
return (int)(*lpStr);
}
return -1;
}
INT
AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID)
{
INT ln;
ln = LengthOfStrResource(hInst,
uID);
if (ln++ > 0)
{
(*lpTarget) = (LPTSTR)LocalAlloc(LMEM_FIXED,
ln * sizeof(TCHAR));
if ((*lpTarget) != NULL)
{
INT Ret;
if (!(Ret = LoadString(hInst, uID, *lpTarget, ln)))
{
LocalFree((HLOCAL)(*lpTarget));
}
return Ret;
}
}
return 0;
}
DWORD
LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...)
{
DWORD Ret = 0;
LPTSTR lpFormat;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, lpTarget);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)lpTarget,
0,
&lArgs);
va_end(lArgs);
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...)
{
BOOL Ret = FALSE;
LPTSTR lpFormat, lpStr;
va_list lArgs;
if (AllocAndLoadString(&lpFormat,
hInstance,
uID) > 0)
{
va_start(lArgs, uID);
/* let's use FormatMessage to format it because it has the ability to allocate
memory automatically */
Ret = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING,
lpFormat,
0,
0,
(LPTSTR)&lpStr,
0,
&lArgs);
va_end(lArgs);
if (lpStr != NULL)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
LocalFree((HLOCAL)lpFormat);
}
return Ret;
}
BOOL
StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID)
{
BOOL Ret = FALSE;
LPTSTR lpStr;
if (AllocAndLoadString(&lpStr,
hInstance,
uID) > 0)
{
Ret = (BOOL)SendMessage(hStatusBar,
SB_SETTEXT,
(WPARAM)PartId,
(LPARAM)lpStr);
LocalFree((HLOCAL)lpStr);
}
return Ret;
}
INT
GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res)
{
INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));
if(len > 0)
{
GetDlgItemText(hDlg,
Res,
lpString,
len + 1);
}
else
lpString = NULL;
return len;
}
VOID GetError(VOID)
{
LPVOID lpMsgBuf;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL );
MessageBox(NULL, lpMsgBuf, _T("Error!"), MB_OK | MB_ICONERROR);
LocalFree(lpMsgBuf);
}
VOID DisplayString(PTCHAR Msg)
{
MessageBox(NULL, Msg, _T("Note!"), MB_ICONEXCLAMATION|MB_OK);
}
HIMAGELIST
InitImageList(UINT StartResource,
UINT EndResource,
UINT Width,
UINT Height)
{
HBITMAP hBitmap;
HIMAGELIST hImageList;
INT i, Ret;
/* Create the toolbar icon image list */
hImageList = ImageList_Create(Width,
Height,
ILC_MASK | ILC_COLOR24,
EndResource - StartResource,
0);
if (hImageList == NULL)
return NULL;
/* Add all icons to the image list */
for (i = StartResource; i <= EndResource; i++)
{
hBitmap = LoadImage(hInstance,
MAKEINTRESOURCE(i),
IMAGE_BITMAP,
Width,
Height,
LR_LOADTRANSPARENT);
if (hBitmap == NULL)
return NULL;
Ret = ImageList_AddMasked(hImageList,
hBitmap,
RGB(255, 0, 128));
if (Ret == -1)
return NULL;
DeleteObject(hBitmap);
}
return hImageList;
}
+146 -146
View File
@@ -1,146 +1,146 @@
#ifndef __SERVMAN_PRECOMP_H
#define __SERVMAN_PRECOMP_H
//#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h> /* GET_X/Y_LPARAM */
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>
#include "resource.h"
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
#ifndef SB_SIMPLEID
#define SB_SIMPLEID 0xFF
#endif
#define NO_ITEM_SELECTED -1
#define MAX_KEY_LENGTH 256
#define NUM_BUTTONS 14
#define PROGRESSRANGE 8
typedef struct _PROP_DLG_INFO
{
HWND hwndGenDlg;
HWND hwndDepDlg;
LPTSTR lpServiceName;
LPTSTR lpDisplayName;
LPTSTR lpDescription;
LPTSTR lpPathToExe;
TCHAR szStartupType;
TCHAR szServiceStatus[25];
LPTSTR lpStartParams;
} PROP_DLG_INFO, *PPROP_DLG_INFO;
typedef struct _MAIN_WND_INFO
{
HWND hMainWnd;
HWND hListView;
HWND hStatus;
HWND hTool;
HWND hProgDlg;
HMENU hShortcutMenu;
int nCmdShow;
/* Stores the complete services array */
ENUM_SERVICE_STATUS_PROCESS *pServiceStatus;
/* Stores the current selected service */
ENUM_SERVICE_STATUS_PROCESS *CurrentService;
/* selection number in the list view */
INT SelectedItem;
struct _PROP_DLG_INFO *PropSheet;
/* status flags */
BOOL InMenuLoop : 1;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK CreateDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK DeleteDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam);
/* servman.c */
extern HINSTANCE hInstance;
extern HANDLE ProcessHeap;
/* mainwnd.c */
typedef struct _MENU_HINT
{
WORD CmdId;
UINT HintId;
} MENU_HINT, *PMENU_HINT;
BOOL InitMainWindowImpl(VOID);
VOID UninitMainWindowImpl(VOID);
HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow);
/* start */
BOOL DoStart(PMAIN_WND_INFO Info);
/* stop */
BOOL DoStop(PMAIN_WND_INFO Info);
/* control */
BOOL Control(PMAIN_WND_INFO Info, DWORD Control);
/* query.c */
ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info);
BOOL SetDescription(LPTSTR, LPTSTR);
BOOL GetDescription(LPTSTR, LPTSTR *);
BOOL GetExecutablePath(PMAIN_WND_INFO Info, LPTSTR *);
BOOL RefreshServiceList(PMAIN_WND_INFO Info);
DWORD GetServiceList(PMAIN_WND_INFO Info);
/* propsheet.c */
LONG APIENTRY OpenPropSheet(PMAIN_WND_INFO Info);
/* export.c */
VOID ExportFile(PMAIN_WND_INFO Info);
/* misc.c */
INT AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID);
DWORD LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...);
BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...);
BOOL StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID);
INT GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res);
VOID GetError(VOID);
VOID DisplayString(PTCHAR);
HIMAGELIST InitImageList(UINT NumButtons,
UINT StartResource,
UINT Width,
UINT Height);
#endif /* __SERVMAN_PRECOMP_H */
#ifndef __SERVMAN_PRECOMP_H
#define __SERVMAN_PRECOMP_H
//#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h> /* GET_X/Y_LPARAM */
#include <stdio.h>
#include <tchar.h>
#include <commctrl.h>
#include "resource.h"
#ifdef _MSC_VER
#pragma warning(disable : 4100)
#endif
#ifndef SB_SIMPLEID
#define SB_SIMPLEID 0xFF
#endif
#define NO_ITEM_SELECTED -1
#define MAX_KEY_LENGTH 256
#define NUM_BUTTONS 14
#define PROGRESSRANGE 8
typedef struct _PROP_DLG_INFO
{
HWND hwndGenDlg;
HWND hwndDepDlg;
LPTSTR lpServiceName;
LPTSTR lpDisplayName;
LPTSTR lpDescription;
LPTSTR lpPathToExe;
TCHAR szStartupType;
TCHAR szServiceStatus[25];
LPTSTR lpStartParams;
} PROP_DLG_INFO, *PPROP_DLG_INFO;
typedef struct _MAIN_WND_INFO
{
HWND hMainWnd;
HWND hListView;
HWND hStatus;
HWND hTool;
HWND hProgDlg;
HMENU hShortcutMenu;
int nCmdShow;
/* Stores the complete services array */
ENUM_SERVICE_STATUS_PROCESS *pServiceStatus;
/* Stores the current selected service */
ENUM_SERVICE_STATUS_PROCESS *CurrentService;
/* selection number in the list view */
INT SelectedItem;
struct _PROP_DLG_INFO *PropSheet;
/* status flags */
BOOL InMenuLoop : 1;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
BOOL CALLBACK AboutDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK CreateDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK DeleteDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam);
/* servman.c */
extern HINSTANCE hInstance;
extern HANDLE ProcessHeap;
/* mainwnd.c */
typedef struct _MENU_HINT
{
WORD CmdId;
UINT HintId;
} MENU_HINT, *PMENU_HINT;
BOOL InitMainWindowImpl(VOID);
VOID UninitMainWindowImpl(VOID);
HWND CreateMainWindow(LPCTSTR lpCaption, int nCmdShow);
/* start */
BOOL DoStart(PMAIN_WND_INFO Info);
/* stop */
BOOL DoStop(PMAIN_WND_INFO Info);
/* control */
BOOL Control(PMAIN_WND_INFO Info, DWORD Control);
/* query.c */
ENUM_SERVICE_STATUS_PROCESS* GetSelectedService(PMAIN_WND_INFO Info);
BOOL SetDescription(LPTSTR, LPTSTR);
BOOL GetDescription(LPTSTR, LPTSTR *);
BOOL GetExecutablePath(PMAIN_WND_INFO Info, LPTSTR *);
BOOL RefreshServiceList(PMAIN_WND_INFO Info);
DWORD GetServiceList(PMAIN_WND_INFO Info);
/* propsheet.c */
LONG APIENTRY OpenPropSheet(PMAIN_WND_INFO Info);
/* export.c */
VOID ExportFile(PMAIN_WND_INFO Info);
/* misc.c */
INT AllocAndLoadString(OUT LPTSTR *lpTarget,
IN HINSTANCE hInst,
IN UINT uID);
DWORD LoadAndFormatString(IN HINSTANCE hInstance,
IN UINT uID,
OUT LPTSTR *lpTarget,
...);
BOOL StatusBarLoadAndFormatString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID,
...);
BOOL StatusBarLoadString(IN HWND hStatusBar,
IN INT PartId,
IN HINSTANCE hInstance,
IN UINT uID);
INT GetTextFromEdit(OUT LPTSTR lpString,
IN HWND hDlg,
IN UINT Res);
VOID GetError(VOID);
VOID DisplayString(PTCHAR);
HIMAGELIST InitImageList(UINT NumButtons,
UINT StartResource,
UINT Width,
UINT Height);
#endif /* __SERVMAN_PRECOMP_H */
+41 -41
View File
@@ -1,41 +1,41 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/progress.c
* PURPOSE: Progress dialog box message handler
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
DestroyWindow(hDlg);
break;
}
break;
case WM_DESTROY:
DestroyWindow(hDlg);
break;
default:
return FALSE;
}
return TRUE;
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/progress.c
* PURPOSE: Progress dialog box message handler
* COPYRIGHT: Copyright 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
BOOL CALLBACK ProgressDialogProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
DestroyWindow(hDlg);
break;
}
break;
case WM_DESTROY:
DestroyWindow(hDlg);
break;
default:
return FALSE;
}
return TRUE;
}
+410 -410
View File
@@ -1,410 +1,410 @@
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/propsheet.c
* PURPOSE: Property dialog box message handler
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static VOID
SetButtonStates(PMAIN_WND_INFO Info)
{
HWND hButton;
DWORD Flags, State;
Flags = Info->CurrentService->ServiceStatusProcess.dwControlsAccepted;
State = Info->CurrentService->ServiceStatusProcess.dwCurrentState;
if (State == SERVICE_STOPPED)
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START);
EnableWindow (hButton, TRUE);
}
if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) )
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_STOP);
EnableWindow (hButton, TRUE);
}
if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) )
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE);
EnableWindow (hButton, TRUE);
}
if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) )
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE);
EnableWindow (hButton, TRUE);
}
}
/*
* Fills the 'startup type' combo box with possible
* values and sets it to value of the selected item
*/
static VOID
SetStartupType(PMAIN_WND_INFO Info)
{
HWND hList;
HKEY hKey;
TCHAR buf[25];
DWORD dwValueSize = 0;
DWORD StartUp = 0;
LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s");
TCHAR KeyBuf[300];
/* open the registry key for the service */
_sntprintf(KeyBuf,
sizeof(KeyBuf) / sizeof(TCHAR),
Path,
Info->CurrentService->lpServiceName);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
KeyBuf,
0,
KEY_READ,
&hKey);
hList = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START_TYPE);
LoadString(hInstance, IDS_SERVICES_AUTO, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_SERVICES_MAN, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_SERVICES_DIS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf);
dwValueSize = sizeof(DWORD);
if (RegQueryValueEx(hKey,
_T("Start"),
NULL,
NULL,
(LPBYTE)&StartUp,
&dwValueSize))
{
RegCloseKey(hKey);
return;
}
if (StartUp == 0x02)
SendMessage(hList, CB_SETCURSEL, 0, 0);
else if (StartUp == 0x03)
SendMessage(hList, CB_SETCURSEL, 1, 0);
else if (StartUp == 0x04)
SendMessage(hList, CB_SETCURSEL, 2, 0);
}
/*
* Populates the General Properties dialog with
* the relevant service information
*/
static VOID
GetDlgInfo(PMAIN_WND_INFO Info)
{
/* set the service name */
Info->PropSheet->lpServiceName = Info->CurrentService->lpServiceName;
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_SERV_NAME,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpServiceName);
/* set the display name */
Info->PropSheet->lpDisplayName = Info->CurrentService->lpDisplayName;
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_DISP_NAME,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpDisplayName);
/* set the description */
if (GetDescription(Info->CurrentService->lpServiceName, &Info->PropSheet->lpDescription))
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_DESCRIPTION,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpDescription);
/* set the executable path */
if (GetExecutablePath(Info, &Info->PropSheet->lpPathToExe))
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_EXEPATH,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpPathToExe);
/* set startup type */
SetStartupType(Info);
/* set service status */
if (Info->CurrentService->ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING)
{
LoadString(hInstance,
IDS_SERVICES_STARTED,
Info->PropSheet->szServiceStatus,
sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR));
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_SERV_STATUS,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->szServiceStatus);
}
else
{
LoadString(hInstance,
IDS_SERVICES_STOPPED,
Info->PropSheet->szServiceStatus,
sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR));
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_SERV_STATUS,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->szServiceStatus);
}
}
/*
* General Property dialog callback.
* Controls messages to the General dialog
*/
static INT_PTR CALLBACK
GeneralPageProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PMAIN_WND_INFO Info;
/* Get the window context */
Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg,
GWLP_USERDATA);
if (Info == NULL && uMsg != WM_INITDIALOG)
{
return FALSE;
}
switch (uMsg)
{
case WM_INITDIALOG:
{
Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam);
if (Info != NULL)
{
Info->PropSheet->hwndGenDlg = hwndDlg;
SetWindowLongPtr(hwndDlg,
GWLP_USERDATA,
(LONG_PTR)Info);
GetDlgInfo(Info);
SetButtonStates(Info);
}
}
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_START_TYPE:
/* Enable the 'Apply' button */
//PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
case IDC_START:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_START, 0);
break;
case IDC_STOP:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_STOP, 0);
break;
case IDC_PAUSE:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_PAUSE, 0);
break;
case IDC_RESUME:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_RESUME, 0);
break;
case IDC_START_PARAM:
/* Enable the 'Apply' button */
//PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
break;
case WM_DESTROY:
break;
case WM_NOTIFY:
{
LPNMHDR lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{
case MCN_SELECT:
/* Enable the 'Apply' button */
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
}
break;
}
return FALSE;
}
/*
* Dependancies Property dialog callback.
* Controls messages to the Dependancies dialog
*/
static INT_PTR CALLBACK
DependanciesPageProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PMAIN_WND_INFO Info;
/* Get the window context */
Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg,
GWLP_USERDATA);
if (Info == NULL && uMsg != WM_INITDIALOG)
{
return FALSE;
}
switch (uMsg)
{
case WM_INITDIALOG:
{
Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam);
if (Info != NULL)
{
Info->PropSheet->hwndDepDlg = hwndDlg;
SetWindowLongPtr(hwndDlg,
GWLP_USERDATA,
(LONG_PTR)Info);
}
}
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
}
break;
case WM_DESTROY:
break;
case WM_NOTIFY:
{
LPNMHDR lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{
}
}
break;
}
return FALSE;
}
static INT CALLBACK
AddEditButton(HWND hwnd, UINT message, LPARAM lParam)
{
HWND hEditButton;
switch (message)
{
case PSCB_PRECREATE:
/*hEditButton = CreateWindowEx(0,
WC_BUTTON,
NULL,
WS_CHILD | WS_VISIBLE,
20, 300, 30, 15,
hwnd,
NULL,
hInstance,
NULL);
if (hEditButton == NULL)
GetError(0);*/
hEditButton = GetDlgItem(hwnd, PSBTN_OK);
DestroyWindow(hEditButton);
//SetWindowText(hEditButton, _T("test"));
return TRUE;
}
return TRUE;
}
static VOID
InitPropSheetPage(PROPSHEETPAGE *psp,
PMAIN_WND_INFO Info,
WORD idDlg,
DLGPROC DlgProc)
{
ZeroMemory(psp, sizeof(PROPSHEETPAGE));
psp->dwSize = sizeof(PROPSHEETPAGE);
psp->dwFlags = PSP_DEFAULT;
psp->hInstance = hInstance;
psp->pszTemplate = MAKEINTRESOURCE(idDlg);
psp->pfnDlgProc = DlgProc;
psp->lParam = (LPARAM)Info;
}
LONG APIENTRY
OpenPropSheet(PMAIN_WND_INFO Info)
{
PROPSHEETHEADER psh;
PROPSHEETPAGE psp[2];
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USECALLBACK;
psh.hwndParent = Info->hMainWnd;
psh.hInstance = hInstance;
psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SM_ICON));
psh.pszCaption = Info->CurrentService->lpDisplayName;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.pfnCallback = AddEditButton;
psh.ppsp = psp;
InitPropSheetPage(&psp[0], Info, IDD_DLG_GENERAL, GeneralPageProc);
//InitPropSheetPage(&psp[1], Info, IDD_DLG_GENERAL, LogonPageProc);
//InitPropSheetPage(&psp[2], Info, IDD_DLG_GENERAL, RecoveryPageProc);
InitPropSheetPage(&psp[1], Info, IDD_DLG_DEPEND, DependanciesPageProc);
return (LONG)(PropertySheet(&psh) != -1);
}
/*
* PROJECT: ReactOS Services
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/servman/propsheet.c
* PURPOSE: Property dialog box message handler
* COPYRIGHT: Copyright 2005 - 2006 Ged Murphy <[email protected]>
*
*/
#include "precomp.h"
static VOID
SetButtonStates(PMAIN_WND_INFO Info)
{
HWND hButton;
DWORD Flags, State;
Flags = Info->CurrentService->ServiceStatusProcess.dwControlsAccepted;
State = Info->CurrentService->ServiceStatusProcess.dwCurrentState;
if (State == SERVICE_STOPPED)
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START);
EnableWindow (hButton, TRUE);
}
if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) )
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_STOP);
EnableWindow (hButton, TRUE);
}
if ( (Flags & SERVICE_ACCEPT_PAUSE_CONTINUE) && (State == SERVICE_RUNNING) )
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE);
EnableWindow (hButton, TRUE);
}
if ( (Flags & SERVICE_ACCEPT_STOP) && (State == SERVICE_RUNNING) )
{
hButton = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_PAUSE);
EnableWindow (hButton, TRUE);
}
}
/*
* Fills the 'startup type' combo box with possible
* values and sets it to value of the selected item
*/
static VOID
SetStartupType(PMAIN_WND_INFO Info)
{
HWND hList;
HKEY hKey;
TCHAR buf[25];
DWORD dwValueSize = 0;
DWORD StartUp = 0;
LPCTSTR Path = _T("System\\CurrentControlSet\\Services\\%s");
TCHAR KeyBuf[300];
/* open the registry key for the service */
_sntprintf(KeyBuf,
sizeof(KeyBuf) / sizeof(TCHAR),
Path,
Info->CurrentService->lpServiceName);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,
KeyBuf,
0,
KEY_READ,
&hKey);
hList = GetDlgItem(Info->PropSheet->hwndGenDlg, IDC_START_TYPE);
LoadString(hInstance, IDS_SERVICES_AUTO, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_SERVICES_MAN, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf);
LoadString(hInstance, IDS_SERVICES_DIS, buf, sizeof(buf) / sizeof(TCHAR));
SendMessage(hList, CB_ADDSTRING, 0, (LPARAM)buf);
dwValueSize = sizeof(DWORD);
if (RegQueryValueEx(hKey,
_T("Start"),
NULL,
NULL,
(LPBYTE)&StartUp,
&dwValueSize))
{
RegCloseKey(hKey);
return;
}
if (StartUp == 0x02)
SendMessage(hList, CB_SETCURSEL, 0, 0);
else if (StartUp == 0x03)
SendMessage(hList, CB_SETCURSEL, 1, 0);
else if (StartUp == 0x04)
SendMessage(hList, CB_SETCURSEL, 2, 0);
}
/*
* Populates the General Properties dialog with
* the relevant service information
*/
static VOID
GetDlgInfo(PMAIN_WND_INFO Info)
{
/* set the service name */
Info->PropSheet->lpServiceName = Info->CurrentService->lpServiceName;
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_SERV_NAME,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpServiceName);
/* set the display name */
Info->PropSheet->lpDisplayName = Info->CurrentService->lpDisplayName;
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_DISP_NAME,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpDisplayName);
/* set the description */
if (GetDescription(Info->CurrentService->lpServiceName, &Info->PropSheet->lpDescription))
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_DESCRIPTION,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpDescription);
/* set the executable path */
if (GetExecutablePath(Info, &Info->PropSheet->lpPathToExe))
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_EXEPATH,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->lpPathToExe);
/* set startup type */
SetStartupType(Info);
/* set service status */
if (Info->CurrentService->ServiceStatusProcess.dwCurrentState == SERVICE_RUNNING)
{
LoadString(hInstance,
IDS_SERVICES_STARTED,
Info->PropSheet->szServiceStatus,
sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR));
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_SERV_STATUS,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->szServiceStatus);
}
else
{
LoadString(hInstance,
IDS_SERVICES_STOPPED,
Info->PropSheet->szServiceStatus,
sizeof(Info->PropSheet->szServiceStatus) / sizeof(TCHAR));
SendDlgItemMessage(Info->PropSheet->hwndGenDlg,
IDC_SERV_STATUS,
WM_SETTEXT,
0,
(LPARAM)Info->PropSheet->szServiceStatus);
}
}
/*
* General Property dialog callback.
* Controls messages to the General dialog
*/
static INT_PTR CALLBACK
GeneralPageProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PMAIN_WND_INFO Info;
/* Get the window context */
Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg,
GWLP_USERDATA);
if (Info == NULL && uMsg != WM_INITDIALOG)
{
return FALSE;
}
switch (uMsg)
{
case WM_INITDIALOG:
{
Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam);
if (Info != NULL)
{
Info->PropSheet->hwndGenDlg = hwndDlg;
SetWindowLongPtr(hwndDlg,
GWLP_USERDATA,
(LONG_PTR)Info);
GetDlgInfo(Info);
SetButtonStates(Info);
}
}
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_START_TYPE:
/* Enable the 'Apply' button */
//PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
case IDC_START:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_START, 0);
break;
case IDC_STOP:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_STOP, 0);
break;
case IDC_PAUSE:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_PAUSE, 0);
break;
case IDC_RESUME:
SendMessage(Info->hMainWnd, WM_COMMAND, ID_RESUME, 0);
break;
case IDC_START_PARAM:
/* Enable the 'Apply' button */
//PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
break;
case WM_DESTROY:
break;
case WM_NOTIFY:
{
LPNMHDR lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{
case MCN_SELECT:
/* Enable the 'Apply' button */
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
break;
}
}
break;
}
return FALSE;
}
/*
* Dependancies Property dialog callback.
* Controls messages to the Dependancies dialog
*/
static INT_PTR CALLBACK
DependanciesPageProc(HWND hwndDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam)
{
PMAIN_WND_INFO Info;
/* Get the window context */
Info = (PMAIN_WND_INFO)GetWindowLongPtr(hwndDlg,
GWLP_USERDATA);
if (Info == NULL && uMsg != WM_INITDIALOG)
{
return FALSE;
}
switch (uMsg)
{
case WM_INITDIALOG:
{
Info = (PMAIN_WND_INFO)(((LPPROPSHEETPAGE)lParam)->lParam);
if (Info != NULL)
{
Info->PropSheet->hwndDepDlg = hwndDlg;
SetWindowLongPtr(hwndDlg,
GWLP_USERDATA,
(LONG_PTR)Info);
}
}
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
}
break;
case WM_DESTROY:
break;
case WM_NOTIFY:
{
LPNMHDR lpnm = (LPNMHDR)lParam;
switch (lpnm->code)
{
}
}
break;
}
return FALSE;
}
static INT CALLBACK
AddEditButton(HWND hwnd, UINT message, LPARAM lParam)
{
HWND hEditButton;
switch (message)
{
case PSCB_PRECREATE:
/*hEditButton = CreateWindowEx(0,
WC_BUTTON,
NULL,
WS_CHILD | WS_VISIBLE,
20, 300, 30, 15,
hwnd,
NULL,
hInstance,
NULL);
if (hEditButton == NULL)
GetError(0);*/
hEditButton = GetDlgItem(hwnd, PSBTN_OK);
DestroyWindow(hEditButton);
//SetWindowText(hEditButton, _T("test"));
return TRUE;
}
return TRUE;
}
static VOID
InitPropSheetPage(PROPSHEETPAGE *psp,
PMAIN_WND_INFO Info,
WORD idDlg,
DLGPROC DlgProc)
{
ZeroMemory(psp, sizeof(PROPSHEETPAGE));
psp->dwSize = sizeof(PROPSHEETPAGE);
psp->dwFlags = PSP_DEFAULT;
psp->hInstance = hInstance;
psp->pszTemplate = MAKEINTRESOURCE(idDlg);
psp->pfnDlgProc = DlgProc;
psp->lParam = (LPARAM)Info;
}
LONG APIENTRY
OpenPropSheet(PMAIN_WND_INFO Info)
{
PROPSHEETHEADER psh;
PROPSHEETPAGE psp[2];
ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
psh.dwSize = sizeof(PROPSHEETHEADER);
psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE | PSH_USECALLBACK;
psh.hwndParent = Info->hMainWnd;
psh.hInstance = hInstance;
psh.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SM_ICON));
psh.pszCaption = Info->CurrentService->lpDisplayName;
psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
psh.nStartPage = 0;
psh.pfnCallback = AddEditButton;
psh.ppsp = psp;
InitPropSheetPage(&psp[0], Info, IDD_DLG_GENERAL, GeneralPageProc);
//InitPropSheetPage(&psp[1], Info, IDD_DLG_GENERAL, LogonPageProc);
//InitPropSheetPage(&psp[2], Info, IDD_DLG_GENERAL, RecoveryPageProc);
InitPropSheetPage(&psp[1], Info, IDD_DLG_DEPEND, DependanciesPageProc);
return (LONG)(PropertySheet(&psh) != -1);
}
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More