mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-03 04:13:31 +00:00
set most of trunk svn property eol-style:native
svn path=/trunk/; revision=24701
This commit is contained in:
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
|
||||
@@ -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/
|
||||
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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 -->
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
/*****************************************************************/
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
/*****************************************************************/
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"));
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
+1067
-1067
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user