mirror of
https://github.com/reactos/reactos
synced 2025-10-06 16:32:42 +02:00
Compare commits
9 Commits
GSoC_2011/
...
ReactOS-0.
Author | SHA1 | Date | |
---|---|---|---|
|
03dc76ef23 | ||
|
43903288f4 | ||
|
bdd21d454d | ||
|
d4028b14b9 | ||
|
f7404c57db | ||
|
867a0ff468 | ||
|
03c991f93b | ||
|
9cccfb8a2d | ||
|
d2eb058174 |
@@ -8,45 +8,37 @@ Description = The most popular and one of the best free Web Browsers out there.
|
||||
Size = 5.8M
|
||||
Category = 5
|
||||
URLSite = http://www.mozilla.com/en-US/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/en-US/Firefox%20Setup%202.0.0.20.exe
|
||||
URLDownload = http://svn.reactos.org/packages/Firefox%20Setup%202.0.0.20.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0405]
|
||||
Description = Nejpopulárnější a jeden z nejlepších svobodných webových prohlížečů.
|
||||
URLSite = http://www.mozilla-europe.org/cs/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/cs/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0407]
|
||||
Description = Der populärste und einer der besten freien Webbrowser.
|
||||
URLSite = http://www.mozilla-europe.org/de/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/de/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
|
||||
URLSite = http://www.mozilla-europe.org/es/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/es-ES/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.040c]
|
||||
Description = Le navigateur web gratuit le plus populaire et l'un des meilleurs.
|
||||
URLSite = http://www.mozilla-europe.org/fr/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/fr/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0414]
|
||||
Description = Mest populære og best også gratis nettleserene der ute.
|
||||
URLSite = http://www.mozilla-europe.org/no/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/nb-NO/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
|
||||
URLSite = http://www.mozilla-europe.org/pl/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/pl/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0419]
|
||||
Description = Один из самых популярных и лучших бесплатных браузеров.
|
||||
URLSite = http://www.mozilla-europe.org/ru/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/ru/Firefox%20Setup%202.0.0.20.exe
|
||||
|
||||
[Section.0422]
|
||||
Description = Найпопулярніший та один з кращих безплатних веб-браузерів.
|
||||
URLSite = http://www.mozilla-europe.org/uk/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/2.0.0.20/win32/uk/Firefox%20Setup%202.0.0.20.exe
|
||||
|
@@ -8,52 +8,44 @@ Description = The most popular and one of the best free Web Browsers out there.
|
||||
Size = 7.2M
|
||||
Category = 5
|
||||
URLSite = http://www.mozilla.com/en-US/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/en-US/Firefox%20Setup%203.0.19.exe
|
||||
URLDownload = http://svn.reactos.org/packages/Firefox%20Setup%203.0.19.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0405]
|
||||
Description = Nejpopulárnější a jeden z nejlepších svobodných webových prohlížečů.
|
||||
Size = 7.0M
|
||||
URLSite = http://www.mozilla-europe.org/cs/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/cs/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.0407]
|
||||
Description = Der populärste und einer der besten freien Webbrowser.
|
||||
Size = 7.0M
|
||||
URLSite = http://www.mozilla-europe.org/de/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/de/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
|
||||
Size = 7.0M
|
||||
URLSite = http://www.mozilla-europe.org/es/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/es-ES/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.040c]
|
||||
Description = Le navigateur web gratuit le plus populaire et l'un des meilleurs.
|
||||
URLSite = http://www.mozilla-europe.org/fr/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/fr/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.0414]
|
||||
Description = Mest populære og best også gratis nettleserene der ute.
|
||||
Size = 7.0M
|
||||
URLSite = http://www.mozilla-europe.org/no/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/nb-NO/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
|
||||
Size = 7.9M
|
||||
URLSite = http://www.mozilla-europe.org/pl/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/pl/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.0419]
|
||||
Description = Один из самых популярных и лучших бесплатных браузеров.
|
||||
Size = 7.8M
|
||||
URLSite = http://www.mozilla-europe.org/ru/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/ru/Firefox%20Setup%203.0.19.exe
|
||||
|
||||
[Section.0422]
|
||||
Description = Найпопулярніший та один з кращих безплатних веб-браузерів.
|
||||
Size = 7.4M
|
||||
URLSite = http://www.mozilla-europe.org/uk/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.0.19-real-real/win32/uk/Firefox%20Setup%203.0.19.exe
|
||||
|
@@ -8,47 +8,47 @@ Description = The most popular and one of the best free Web Browsers out there.
|
||||
Size = 8.2M
|
||||
Category = 5
|
||||
URLSite = http://www.mozilla.com/en-US/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/en-US/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/en-US/Firefox%20Setup%203.6.15.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
Description = Der populärste und einer der besten freien Webbrowser.
|
||||
Size = 8.1M
|
||||
URLSite = http://www.mozilla-europe.org/de/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/de/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/de/Firefox%20Setup%203.6.15.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
|
||||
Size = 8.1M
|
||||
URLSite = http://www.mozilla-europe.org/es/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/es-ES/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/es-ES/Firefox%20Setup%203.6.15.exe
|
||||
|
||||
[Section.040c]
|
||||
Description = Le navigateur web gratuit le plus populaire et l'un des meilleurs.
|
||||
Size = 8.1M
|
||||
URLSite = http://www.mozilla-europe.org/fr/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/fr/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/fr/Firefox%20Setup%203.6.15.exe
|
||||
|
||||
[Section.0414]
|
||||
Description = Mest populære og best også gratis nettleserene der ute.
|
||||
Size = 8.1M
|
||||
URLSite = http://www.mozilla-europe.org/no/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/nb-NO/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/nb-NO/Firefox%20Setup%203.6.15.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
|
||||
Size = 8.9M
|
||||
URLSite = http://www.mozilla-europe.org/pl/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/pl/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/pl/Firefox%20Setup%203.6.15.exe
|
||||
|
||||
[Section.0419]
|
||||
Description = Один из самых популярных и лучших бесплатных браузеров.
|
||||
Size = 8.5M
|
||||
URLSite = http://www.mozilla-europe.org/ru/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/ru/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/ru/Firefox%20Setup%203.6.15.exe
|
||||
|
||||
[Section.0422]
|
||||
Description = Найпопулярніший та один з кращих безплатних веб-браузерів.
|
||||
Size = 8.5M
|
||||
URLSite = http://www.mozilla-europe.org/uk/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/firefox/releases/3.6.15/win32/uk/Firefox%20Setup%203.6.15.exe
|
||||
URLDownload = http://mozilla.cdn.leaseweb.com/firefox/releases/3.6.15/win32/uk/Firefox%20Setup%203.6.15.exe
|
||||
|
@@ -8,36 +8,36 @@ Description = THE Open Source Office Suite.
|
||||
Size = 127MB
|
||||
Category = 6
|
||||
URLSite = http://www.openoffice.org/
|
||||
URLDownload = ftp://archive.services.openoffice.org/pub/openoffice-archive/stable/2.4.3/OOo_2.4.3_Win32Intel_install_en-US.exe
|
||||
URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/stable/2.4.3/OOo_2.4.3_Win32Intel_install_en-US.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
Description = DIE Open Source Office Suite.
|
||||
URLSite = http://de.openoffice.org/
|
||||
Size = 114.2MB
|
||||
URLDownload = ftp://archive.services.openoffice.org/pub/openoffice-archive/localized/de/2.4.3/OOo_2.4.3_Win32Intel_install_de.exe
|
||||
URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/de/2.4.3/OOo_2.4.3_Win32Intel_install_de.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = La suite de ofimática de código abierto.
|
||||
URLSite = http://es.openoffice.org/
|
||||
Size = 113.9MB
|
||||
URLDownload = ftp://archive.services.openoffice.org/pub/openoffice-archive/localized/es/2.4.3/OOo_2.4.3_Win32Intel_install_es.exe
|
||||
URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/es/2.4.3/OOo_2.4.3_Win32Intel_install_es.exe
|
||||
|
||||
[Section.040c]
|
||||
Version = 2.4.2
|
||||
Description = LA suite bureautique open source.
|
||||
URLSite = http://fr.openoffice.org/
|
||||
Size = 113.9MB
|
||||
URLDownload = ftp://archive.services.openoffice.org/pub/openoffice-archive/localized/fr/2.4.2/OOo_2.4.2_Win32Intel_install_fr.exe
|
||||
URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/fr/2.4.2/OOo_2.4.2_Win32Intel_install_fr.exe
|
||||
|
||||
[Section.0415]
|
||||
URLSite = http://pl.openoffice.org/
|
||||
Description = Otwarty pakiet biurowy.
|
||||
URLDownload = ftp://archive.services.openoffice.org/pub/openoffice-archive/localized/pl/2.4.2/OOo_2.4.2_Win32Intel_install_pl.exe
|
||||
URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/pl/2.4.2/OOo_2.4.2_Win32Intel_install_pl.exe
|
||||
Size = 113.9M
|
||||
|
||||
[Section.0422]
|
||||
URLSite = http://ua.openoffice.org/
|
||||
Description = Відкритий офісний пакет.
|
||||
URLDownload = ftp://archive.services.openoffice.org/pub/openoffice-archive/localized/ru/2.4.3/OOo_2.4.3_Win32Intel_install_ru.exe
|
||||
URLDownload = http://archive.services.openoffice.org/pub/openoffice-archive/localized/ru/2.4.3/OOo_2.4.3_Win32Intel_install_ru.exe
|
||||
Size = 114.8M
|
||||
|
@@ -8,30 +8,30 @@ Description = Mozilla Suite is alive. This is the one and only Browser, Mail, Ch
|
||||
Size = 10.2MB
|
||||
Category = 5
|
||||
URLSite = http://www.seamonkey-project.org/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/seamonkey/releases/2.0.12/win32/en-US/SeaMonkey%20Setup%202.0.12.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/2.0.12/win32/en-US/SeaMonkey%20Setup%202.0.12.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
Description = Mozilla Suite lebt. Dies ist das einzige Browser-, Mail-, Chat- and Composerwerkzeug-Bundle welches Sie benötigen.
|
||||
Size = 10.1MB
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/seamonkey/releases/2.0.12/win32/de/SeaMonkey%20Setup%202.0.12.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/2.0.12/win32/de/SeaMonkey%20Setup%202.0.12.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = La suite de Mozilla está viva. Es el primero y único navegador web, gestor de correo, lector de noticias, Chat y editor HTML que necesitarás.
|
||||
Size = 10.1MB
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/seamonkey/releases/2.0.12/win32/es-ES/SeaMonkey%20Setup%202.0.12.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/2.0.12/win32/es-ES/SeaMonkey%20Setup%202.0.12.exe
|
||||
|
||||
[Section.040c]
|
||||
Description = La suite Mozilla est en vie. Ceci est le seul et l'unique package navigateur, client mail, client chat et composer dont vous aurez besoin.
|
||||
Size = 10.1MB
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/seamonkey/releases/2.0.12/win32/fr/SeaMonkey%20Setup%202.0.12.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/2.0.12/win32/fr/SeaMonkey%20Setup%202.0.12.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Pakiet Mozilla żyje. W zestawie: przeglądarka, klient poczty, IRC oraz Edytor HTML - wszystko, czego potrzebujesz.
|
||||
Size = 11.0MB
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/seamonkey/releases/2.0.12/win32/pl/SeaMonkey%20Setup%202.0.12.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/2.0.12/win32/pl/SeaMonkey%20Setup%202.0.12.exe
|
||||
|
||||
[Section.0419]
|
||||
Description = Продолжение Mozilla Suite. Включает браузер, почтовый клиент, IRC-клиент и HTML-редактор.
|
||||
Size = 10.5MB
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/seamonkey/releases/2.0.12/win32/ru/SeaMonkey%20Setup%202.0.12.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/seamonkey/releases/2.0.12/win32/ru/SeaMonkey%20Setup%202.0.12.exe
|
||||
|
@@ -8,41 +8,41 @@ Description = The most popular and one of the best free Mail Clients out there.
|
||||
Size = 9.0M
|
||||
Category = 5
|
||||
URLSite = http://www.mozilla-europe.org/en/products/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/en-US/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/en-US/Thunderbird%20Setup%203.1.9.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
Description = Der populärste und einer der besten freien Mail-Clients.
|
||||
Size = 8.8M
|
||||
URLSite = http://www.mozilla-europe.org/de/products/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/de/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/de/Thunderbird%20Setup%203.1.9.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = El más popular y uno de los mejores clientes mail que hay.
|
||||
Size = 8.8M
|
||||
URLSite = http://www.mozilla-europe.org/es/products/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/es-ES/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/es-ES/Thunderbird%20Setup%203.1.9.exe
|
||||
|
||||
[Section.040c]
|
||||
Description = Le plus populaire et l'un des meilleurs clients mail gratuits disponible.
|
||||
Size = 8.8M
|
||||
URLSite = http://www.mozilla-europe.org/fr/products/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/fr/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/fr/Thunderbird%20Setup%203.1.9.exe
|
||||
|
||||
[Section.0415]
|
||||
Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty.
|
||||
Size = 9.7M
|
||||
URLSite = http://www.mozilla-europe.org/pl/products/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/pl/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/pl/Thunderbird%20Setup%203.1.9.exe
|
||||
|
||||
[Section.0419]
|
||||
Description = Один из самых популярных и лучших бесплатных почтовых клиентов.
|
||||
Size = 9.2M
|
||||
URLSite = http://www.mozilla-europe.org/ru/products/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/ru/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/ru/Thunderbird%20Setup%203.1.9.exe
|
||||
|
||||
[Section.0422]
|
||||
Description = Найпопулярніший та один з кращих поштових клієнтів.
|
||||
Size = 9.2M
|
||||
URLSite = http://www.mozillamessaging.com/uk/thunderbird/
|
||||
URLDownload = ftp://ftp.mozilla.org/pub/thunderbird/releases/3.1.9/win32/uk/Thunderbird%20Setup%203.1.9.exe
|
||||
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.1.9/win32/uk/Thunderbird%20Setup%203.1.9.exe
|
||||
|
@@ -8,7 +8,7 @@ Description = WinBoard is a graphical chessboard for the Windows/ReactOS that ca
|
||||
Size = 5.9MB
|
||||
Category = 4
|
||||
URLSite = http://www.gnu.org/software/xboard/
|
||||
URLDownload = ftp://ftp.gnu.org/old-gnu/xboard/winboard/winboard-4_2_7b.exe
|
||||
URLDownload = http://ftp.gnu.org/old-gnu/xboard/winboard/winboard-4_2_7b.exe
|
||||
CDPath = none
|
||||
|
||||
[Section.0407]
|
||||
|
@@ -29,22 +29,22 @@ BOOL
|
||||
CreateAudioDeviceList(DWORD max_size);
|
||||
|
||||
VOID
|
||||
DestroyAudioDeviceList(VOID);
|
||||
DestroyAudioDeviceList();
|
||||
|
||||
|
||||
/* Plug and Play (pnp.c) */
|
||||
|
||||
BOOL
|
||||
ProcessExistingDevices(VOID);
|
||||
ProcessExistingDevices();
|
||||
|
||||
DWORD
|
||||
ProcessDeviceArrival(DEV_BROADCAST_DEVICEINTERFACE* device);
|
||||
|
||||
BOOL
|
||||
RegisterForDeviceNotifications(VOID);
|
||||
RegisterForDeviceNotifications();
|
||||
|
||||
VOID
|
||||
UnregisterDeviceNotifications(VOID);
|
||||
UnregisterDeviceNotifications();
|
||||
|
||||
DWORD
|
||||
HandleDeviceEvent(
|
||||
@@ -52,7 +52,7 @@ HandleDeviceEvent(
|
||||
LPVOID lpEventData);
|
||||
|
||||
BOOL
|
||||
StartSystemAudioServices(VOID);
|
||||
StartSystemAudioServices();
|
||||
|
||||
/* Debugging */
|
||||
|
||||
|
@@ -35,8 +35,8 @@ extern volatile BOOL bShutdown;
|
||||
extern volatile BOOL bPause;
|
||||
|
||||
/* logging functions */
|
||||
BOOL InitLogging(VOID);
|
||||
VOID UninitLogging(VOID);
|
||||
BOOL InitLogging();
|
||||
VOID UninitLogging();
|
||||
VOID LogEvent(LPCWSTR lpMsg, DWORD errNum, DWORD exitCode, UINT flags);
|
||||
|
||||
/* skelserver functions */
|
||||
|
@@ -146,16 +146,16 @@ struct data15
|
||||
};
|
||||
|
||||
//Functions
|
||||
void runProg(void);
|
||||
void runProg();
|
||||
void processRequest(LPVOID lpParam);
|
||||
char* myGetToken(char*, BYTE);
|
||||
void init(void);
|
||||
void init();
|
||||
bool cleanReq(request*);
|
||||
bool getSection(const char*, char*, BYTE, char*);
|
||||
bool isIP(char*s);
|
||||
char* myLower(char*);
|
||||
char* myUpper(char*);
|
||||
char* IP2String(char*, DWORD);
|
||||
void printWindowsError(void);
|
||||
void printWindowsError();
|
||||
void logMess(request*, BYTE);
|
||||
void logMess(char*, BYTE);
|
||||
|
@@ -513,18 +513,6 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
|
||||
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /RDIMAGEPATH=reactos.img /RDIMAGEOFFSET=32256");
|
||||
#endif
|
||||
|
||||
/* ReactOS_old */
|
||||
CreateFreeLoaderEntry(IniCache, IniSection,
|
||||
L"ReactOS_old", L"\"ReactOS (old boot method)\"",
|
||||
L"ReactOS", ArcPath,
|
||||
L"");
|
||||
|
||||
/* ReactOS_Debug_old */
|
||||
CreateFreeLoaderEntry(IniCache, IniSection,
|
||||
L"ReactOS_Debug_old", L"\"ReactOS (Debug, old boot method)\"",
|
||||
L"ReactOS", ArcPath,
|
||||
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS");
|
||||
|
||||
/* Save the ini file */
|
||||
IniCacheSave(IniCache, IniPath);
|
||||
IniCacheDestroy(IniCache);
|
||||
|
@@ -166,9 +166,9 @@ typedef VOID (*PCABINET_DISK_CHANGE)(PWCHAR CabinetName,
|
||||
/* Classes */
|
||||
|
||||
/* Default constructor */
|
||||
VOID CabinetInitialize(VOID);
|
||||
VOID CabinetInitialize();
|
||||
/* Default destructor */
|
||||
VOID CabinetCleanup(VOID);
|
||||
VOID CabinetCleanup();
|
||||
/* Returns a pointer to the filename part of a fully qualified filename */
|
||||
PWCHAR CabinetGetFileName(PWCHAR Path);
|
||||
/* Removes a filename from a fully qualified filename */
|
||||
@@ -176,19 +176,19 @@ VOID CabinetRemoveFileName(PWCHAR Path);
|
||||
/* Normalizes a path */
|
||||
BOOL CabinetNormalizePath(PWCHAR Path, ULONG Length);
|
||||
/* Returns name of cabinet file */
|
||||
PWCHAR CabinetGetCabinetName(VOID);
|
||||
PWCHAR CabinetGetCabinetName();
|
||||
/* Sets the name of the cabinet file */
|
||||
VOID CabinetSetCabinetName(PWCHAR FileName);
|
||||
/* Sets destination path for extracted files */
|
||||
VOID CabinetSetDestinationPath(PWCHAR DestinationPath);
|
||||
/* Returns destination path */
|
||||
PWCHAR CabinetGetDestinationPath(VOID);
|
||||
PWCHAR CabinetGetDestinationPath();
|
||||
/* Returns zero-based current disk number */
|
||||
ULONG CabinetGetCurrentDiskNumber(VOID);
|
||||
ULONG CabinetGetCurrentDiskNumber();
|
||||
/* Opens the current cabinet file */
|
||||
ULONG CabinetOpen(VOID);
|
||||
ULONG CabinetOpen();
|
||||
/* Closes the current open cabinet file */
|
||||
VOID CabinetClose(VOID);
|
||||
VOID CabinetClose();
|
||||
/* Locates the first file in the current cabinet file that matches a search criteria */
|
||||
ULONG CabinetFindFirst(PWCHAR FileName, PCAB_SEARCH Search);
|
||||
/* Locates the next file in the current cabinet file */
|
||||
|
@@ -45,7 +45,7 @@ extern TCHAR textline[BATCH_BUFFSIZE]; /* Buffer for reading Batch file lines */
|
||||
|
||||
LPTSTR FindArg (TCHAR, BOOL *);
|
||||
LPTSTR BatchParams (LPTSTR, LPTSTR);
|
||||
VOID ExitBatch (VOID);
|
||||
VOID ExitBatch ();
|
||||
INT Batch (LPTSTR, LPTSTR, LPTSTR, PARSED_COMMAND *);
|
||||
LPTSTR ReadBatchLine(VOID);
|
||||
LPTSTR ReadBatchLine();
|
||||
VOID AddBatchRedirection(REDIRECTION **);
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -21,10 +21,6 @@ SelectedColor=Gray
|
||||
|
||||
[Operating Systems]
|
||||
Setup="Setup"
|
||||
Setup_old="Setup (old boot method)"
|
||||
|
||||
[Setup]
|
||||
BootType=ReactOSSetup2
|
||||
|
||||
[Setup_old]
|
||||
BootType=ReactOSSetup
|
||||
|
Binary file not shown.
@@ -21,14 +21,8 @@ SelectedColor=Gray
|
||||
|
||||
[Operating Systems]
|
||||
ReactOS="ReactOS"
|
||||
Reactos_old="ReactOS (old boot method)"
|
||||
|
||||
[ReactOS]
|
||||
BootType=Windows2003
|
||||
SystemPath=LiveCD\reactos
|
||||
Options=/DEBUGPORT=COM1 /SOS /MININT
|
||||
|
||||
[Reactos_old]
|
||||
BootType=ReactOS
|
||||
SystemPath=LiveCD\reactos
|
||||
Options=/DEBUGPORT=COM1 /SOS
|
||||
|
@@ -47,7 +47,7 @@ IsLayoutExists(LPTSTR szLayoutID, LPTSTR szLangID);
|
||||
INT_PTR CALLBACK
|
||||
KeySettingsDlgProc(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam);
|
||||
VOID
|
||||
UpdateKeySettingsList(VOID);
|
||||
UpdateKeySettingsList();
|
||||
|
||||
/* add.c */
|
||||
INT_PTR CALLBACK
|
||||
|
@@ -125,8 +125,8 @@ VOID Cleanup(LPDDRAWI_DIRECTDRAW_INT iface);
|
||||
/******** Main Object ********/
|
||||
|
||||
/* Public interface */
|
||||
VOID WINAPI AcquireDDThreadLock(VOID);
|
||||
VOID WINAPI ReleaseDDThreadLock(VOID);
|
||||
VOID WINAPI AcquireDDThreadLock();
|
||||
VOID WINAPI ReleaseDDThreadLock();
|
||||
|
||||
ULONG WINAPI DirectDrawClipper_AddRef (LPDIRECTDRAWCLIPPER iface);
|
||||
HRESULT WINAPI DirectDrawClipper_Initialize( LPDIRECTDRAWCLIPPER iface, LPDIRECTDRAW lpDD, DWORD dwFlags);
|
||||
|
@@ -79,16 +79,16 @@ typedef DWORD (*PipeSendFunc)( COMM_DHCP_REPLY *Reply );
|
||||
void AdapterInit(VOID);
|
||||
HANDLE StartAdapterDiscovery(VOID);
|
||||
void AdapterStop(VOID);
|
||||
extern PDHCP_ADAPTER AdapterGetFirst(VOID);
|
||||
extern PDHCP_ADAPTER AdapterGetFirst();
|
||||
extern PDHCP_ADAPTER AdapterGetNext(PDHCP_ADAPTER);
|
||||
extern PDHCP_ADAPTER AdapterFindIndex( unsigned int AdapterIndex );
|
||||
extern PDHCP_ADAPTER AdapterFindInfo( struct interface_info *info );
|
||||
extern PDHCP_ADAPTER AdapterFindByHardwareAddress( u_int8_t haddr[16], u_int8_t hlen );
|
||||
extern HANDLE PipeInit(VOID);
|
||||
extern VOID ApiInit(VOID);
|
||||
extern VOID ApiFree(VOID);
|
||||
extern VOID ApiLock(VOID);
|
||||
extern VOID ApiUnlock(VOID);
|
||||
extern HANDLE PipeInit();
|
||||
extern VOID ApiInit();
|
||||
extern VOID ApiFree();
|
||||
extern VOID ApiLock();
|
||||
extern VOID ApiUnlock();
|
||||
extern DWORD DSQueryHWInfo( PipeSendFunc Send, COMM_DHCP_REQ *Req );
|
||||
extern DWORD DSLeaseIpAddress( PipeSendFunc Send, COMM_DHCP_REQ *Req );
|
||||
extern DWORD DSRenewIpAddressLease( PipeSendFunc Send, COMM_DHCP_REQ *Req );
|
||||
|
@@ -28,7 +28,7 @@ typedef struct _IPHLP_RES_INFO {
|
||||
|
||||
/* Get resolver info. This currently is limited to a list of IP addresses
|
||||
* that name our DNS server list. */
|
||||
PIPHLP_RES_INFO getResInfo(VOID);
|
||||
PIPHLP_RES_INFO getResInfo();
|
||||
/* Release any resources used in acquiring the resolver information */
|
||||
VOID disposeResInfo( PIPHLP_RES_INFO InfoPtr );
|
||||
|
||||
|
@@ -12,7 +12,7 @@
|
||||
#include <ndk/ntndk.h>
|
||||
|
||||
/* FIXME USP10 api that does not have prototype in any include file */
|
||||
VOID WINAPI LpkPresent(VOID);
|
||||
VOID WINAPI LpkPresent();
|
||||
|
||||
/* FIXME move _LPK_LPEDITCONTROL_LIST to global place so user32 can access it */
|
||||
typedef struct _LPK_LPEDITCONTROL_LIST
|
||||
|
@@ -85,7 +85,7 @@ HRESULT WINAPI ISF_NetConnect_Constructor (IUnknown * pUnkOuter, REFIID riid, LP
|
||||
|
||||
/* enumlist.c */
|
||||
IEnumIDList * IEnumIDList_Constructor(void);
|
||||
LPITEMIDLIST _ILCreateNetConnect(void);
|
||||
LPITEMIDLIST _ILCreateNetConnect();
|
||||
LPITEMIDLIST ILCreateNetConnectItem(INetConnection * pItem);
|
||||
BOOL _ILIsNetConnect (LPCITEMIDLIST pidl);
|
||||
BOOL AddToEnumList(IEnumIDList * iface, LPITEMIDLIST pidl);
|
||||
|
@@ -5,8 +5,8 @@
|
||||
#include <sfc.h>
|
||||
#include <srrestoreptapi.h>
|
||||
|
||||
DWORD WINAPI sfc_8(VOID);
|
||||
DWORD WINAPI sfc_9(VOID);
|
||||
DWORD WINAPI sfc_8();
|
||||
DWORD WINAPI sfc_9();
|
||||
|
||||
typedef BOOL (WINAPI *PSRSRPA)(PRESTOREPOINTINFOA, PSTATEMGRSTATUS);
|
||||
typedef BOOL (WINAPI *PSRSRPW)(PRESTOREPOINTINFOW, PSTATEMGRSTATUS);
|
||||
|
@@ -47,52 +47,56 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
|
||||
HGLOBAL RenderHDROP(LPITEMIDLIST pidlRoot, LPITEMIDLIST * apidl, UINT cidl)
|
||||
{
|
||||
UINT i;
|
||||
int rootlen = 0,size = 0;
|
||||
WCHAR wszRootPath[MAX_PATH];
|
||||
int size = 0;
|
||||
WCHAR wszFileName[MAX_PATH];
|
||||
HGLOBAL hGlobal;
|
||||
HGLOBAL hGlobal = NULL;
|
||||
DROPFILES *pDropFiles;
|
||||
int offset;
|
||||
LPITEMIDLIST *pidls;
|
||||
|
||||
TRACE("(%p,%p,%u)\n", pidlRoot, apidl, cidl);
|
||||
|
||||
pidls = HeapAlloc(GetProcessHeap(), 0, cidl * sizeof(*pidls));
|
||||
if (!pidls)
|
||||
goto cleanup;
|
||||
|
||||
/* get the size needed */
|
||||
size = sizeof(DROPFILES);
|
||||
|
||||
SHGetPathFromIDListW(pidlRoot, wszRootPath);
|
||||
PathAddBackslashW(wszRootPath);
|
||||
rootlen = wcslen(wszRootPath);
|
||||
|
||||
for (i=0; i<cidl;i++)
|
||||
{
|
||||
_ILSimpleGetTextW(apidl[i], wszFileName, MAX_PATH);
|
||||
size += (rootlen + wcslen(wszFileName) + 1) * sizeof(WCHAR);
|
||||
pidls[i] = ILCombine(pidlRoot, apidl[i]);
|
||||
SHGetPathFromIDListW(pidls[i], wszFileName);
|
||||
size += (wcslen(wszFileName) + 1) * sizeof(WCHAR);
|
||||
}
|
||||
|
||||
size += sizeof(WCHAR);
|
||||
|
||||
/* Fill the structure */
|
||||
hGlobal = GlobalAlloc(GHND|GMEM_SHARE, size);
|
||||
if(!hGlobal) return hGlobal;
|
||||
if(!hGlobal)
|
||||
goto cleanup;
|
||||
|
||||
pDropFiles = (DROPFILES *)GlobalLock(hGlobal);
|
||||
offset = (sizeof(DROPFILES) + sizeof(WCHAR) - 1) / sizeof(WCHAR);
|
||||
pDropFiles->pFiles = offset * sizeof(WCHAR);
|
||||
pDropFiles->fWide = TRUE;
|
||||
|
||||
wcscpy(wszFileName, wszRootPath);
|
||||
|
||||
for (i=0; i<cidl;i++)
|
||||
{
|
||||
|
||||
_ILSimpleGetTextW(apidl[i], wszFileName + rootlen, MAX_PATH - rootlen);
|
||||
SHGetPathFromIDListW(pidls[i], wszFileName);
|
||||
wcscpy(((WCHAR*)pDropFiles)+offset, wszFileName);
|
||||
offset += wcslen(wszFileName) + 1;
|
||||
ILFree(pidls[i]);
|
||||
}
|
||||
|
||||
((WCHAR*)pDropFiles)[offset] = 0;
|
||||
GlobalUnlock(hGlobal);
|
||||
|
||||
cleanup:
|
||||
if(pidls)
|
||||
HeapFree(GetProcessHeap(), 0, pidls);
|
||||
|
||||
return hGlobal;
|
||||
}
|
||||
|
||||
|
@@ -773,6 +773,7 @@ CreateShortcuts(VOID)
|
||||
|
||||
/* Create desktop shortcuts */
|
||||
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_CMD, _T("%SystemRoot%\\system32\\cmd.exe"), IDS_CMT_CMD, TRUE);
|
||||
CreateShortcut(CSIDL_DESKTOP, NULL, IDS_SHORT_DOWNLOADER, _T("%SystemRoot%\\system32\\rapps.exe"), IDS_CMT_DOWNLOADER, TRUE);
|
||||
|
||||
/* Create program startmenu shortcuts */
|
||||
CreateShortcut(CSIDL_PROGRAMS, NULL, IDS_SHORT_EXPLORER, _T("%SystemRoot%\\explorer.exe"), IDS_CMT_EXPLORER, TRUE);
|
||||
|
@@ -123,7 +123,7 @@ typedef struct _USER32_THREAD_DATA
|
||||
USER32_TRACKINGLIST tracking_info; /* TrackMouseEvent stuff */
|
||||
} USER32_THREAD_DATA, *PUSER32_THREAD_DATA;
|
||||
|
||||
PUSER32_THREAD_DATA User32GetThreadData(VOID);
|
||||
PUSER32_THREAD_DATA User32GetThreadData();
|
||||
|
||||
/* FIXME: Belongs to some header. */
|
||||
BOOL WINAPI GdiDllInitialize(HANDLE, DWORD, LPVOID);
|
||||
|
@@ -250,9 +250,7 @@ WdmAudGetCapabilitiesByLegacy(
|
||||
}
|
||||
|
||||
MMRESULT
|
||||
WdmAudOpenSoundDeviceByLegacy(
|
||||
IN PSOUND_DEVICE SoundDevice,
|
||||
OUT PVOID *Handle)
|
||||
WdmAudOpenSoundDeviceByLegacy()
|
||||
{
|
||||
/* Only open this if it's not already open */
|
||||
if ( KernelHandle == INVALID_HANDLE_VALUE )
|
||||
|
@@ -15,16 +15,19 @@
|
||||
#include <debug.h>
|
||||
|
||||
BOOL
|
||||
WdmAudInitUserModeMixer(VOID);
|
||||
WdmAudInitUserModeMixer();
|
||||
|
||||
ULONG
|
||||
WdmAudGetWaveOutCount(VOID);
|
||||
WdmAudGetWaveOutCount();
|
||||
|
||||
ULONG
|
||||
WdmAudGetWaveInCount(VOID);
|
||||
WdmAudGetWaveInCount();
|
||||
|
||||
ULONG
|
||||
WdmAudGetMixerCount(VOID);
|
||||
WdmAudGetMixerCount();
|
||||
|
||||
MMRESULT
|
||||
WdmAudOpenSoundDeviceByLegacy();
|
||||
|
||||
MMRESULT
|
||||
WdmAudGetNumWdmDevsByMMixer(
|
||||
@@ -147,12 +150,12 @@ WdmAudCommitWaveBufferByMMixer(
|
||||
IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine);
|
||||
|
||||
MMRESULT
|
||||
WdmAudCleanupByMMixer(VOID);
|
||||
WdmAudCleanupByMMixer();
|
||||
|
||||
/* legacy.c */
|
||||
|
||||
MMRESULT
|
||||
WdmAudCleanupByLegacy(VOID);
|
||||
WdmAudCleanupByLegacy();
|
||||
|
||||
MMRESULT
|
||||
WdmAudGetCapabilitiesByLegacy(
|
||||
@@ -162,10 +165,7 @@ WdmAudGetCapabilitiesByLegacy(
|
||||
IN DWORD CapabilitiesSize);
|
||||
|
||||
MMRESULT
|
||||
WdmAudOpenSoundDeviceByLegacy(
|
||||
IN PSOUND_DEVICE SoundDevice,
|
||||
OUT PVOID *Handle
|
||||
);
|
||||
WdmAudOpenSoundDeviceByLegacy();
|
||||
|
||||
MMRESULT
|
||||
WdmAudCloseSoundDeviceByLegacy(
|
||||
|
@@ -858,14 +858,14 @@ WsAsyncGlobalInitialize(VOID);
|
||||
|
||||
FORCEINLINE
|
||||
PWSPROCESS
|
||||
WsGetProcess(VOID)
|
||||
WsGetProcess()
|
||||
{
|
||||
return CurrentWsProcess;
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
DWORD
|
||||
WsQuickProlog(VOID)
|
||||
WsQuickProlog()
|
||||
{
|
||||
/* Try to see if we're initialized. If not, do the full prolog */
|
||||
return WsGetProcess() ? ERROR_SUCCESS : WsSlowProlog();
|
||||
|
@@ -402,28 +402,6 @@ IoCompletion (
|
||||
/* sanity check */
|
||||
ASSERT(Header);
|
||||
|
||||
/* iterate through all stream headers and collect size */
|
||||
do
|
||||
{
|
||||
if (Context->Function == IOCTL_KS_READ_STREAM)
|
||||
{
|
||||
/* length is stored in DataUsed */
|
||||
Length += Header->DataUsed;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* length stored in frameextend */
|
||||
Length += Header->FrameExtent;
|
||||
}
|
||||
|
||||
/* subtract size */
|
||||
Context->Length -= Header->Size;
|
||||
|
||||
/* move to next stream header */
|
||||
Header = (PKSSTREAM_HEADER)((ULONG_PTR)Header + Header->Size);
|
||||
|
||||
}while(Context->Length);
|
||||
|
||||
/* time to free all allocated mdls */
|
||||
Mdl = Irp->MdlAddress;
|
||||
|
||||
@@ -454,12 +432,7 @@ IoCompletion (
|
||||
|
||||
DPRINT("IoCompletion Irp %p IoStatus %lx Information %lx Length %lu\n", Irp, Irp->IoStatus.Status, Irp->IoStatus.Information, Length);
|
||||
|
||||
if (Irp->IoStatus.Status == STATUS_SUCCESS)
|
||||
{
|
||||
/* store the length */
|
||||
Irp->IoStatus.Information = Length;
|
||||
}
|
||||
else
|
||||
if (!NT_SUCCESS(Irp->IoStatus.Status))
|
||||
{
|
||||
/* failed */
|
||||
Irp->IoStatus.Information = 0;
|
||||
@@ -471,7 +444,6 @@ IoCompletion (
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
WdmAudReadWrite(
|
||||
|
@@ -22,7 +22,7 @@ typedef ULONG CSR_API_NUMBER;
|
||||
#define MAKE_CSR_API(Number, Server) \
|
||||
((Server) << 16) + Number
|
||||
|
||||
#define CSR_CSRSS_SECTION_SIZE (65536)
|
||||
#define CSR_CSRSS_SECTION_SIZE (131072) //(65536)
|
||||
|
||||
typedef VOID (CALLBACK *PCONTROLDISPATCHER)(DWORD);
|
||||
|
||||
|
@@ -18,13 +18,13 @@
|
||||
#define __VERSION_H
|
||||
|
||||
#define KERNEL_VERSION_MAJOR 0
|
||||
#define KERNEL_VERSION_MINOR 4
|
||||
#define KERNEL_VERSION_PATCH_LEVEL 0
|
||||
#define KERNEL_VERSION_MINOR 3
|
||||
#define KERNEL_VERSION_PATCH_LEVEL 13
|
||||
|
||||
#define COPYRIGHT_YEAR "2011"
|
||||
|
||||
/* KERNEL_VERSION_BUILD_TYPE is L"SVN", L"RC1", L"RC2" or L"" (for the release) */
|
||||
#define KERNEL_VERSION_BUILD_TYPE L"SVN"
|
||||
#define KERNEL_VERSION_BUILD_TYPE L""
|
||||
|
||||
|
||||
#endif
|
||||
|
@@ -16,13 +16,6 @@
|
||||
#ifdef _UNICODE
|
||||
# define streamout wstreamout
|
||||
# define format_float format_floatw
|
||||
# define _flsbuf _flswbuf
|
||||
int __cdecl _flswbuf(int ch, FILE *stream);
|
||||
#endif
|
||||
|
||||
#ifdef _LIBCNT_
|
||||
# undef _flsbuf
|
||||
# define _flsbuf(chr, stream) _TEOF
|
||||
#endif
|
||||
|
||||
#define MB_CUR_MAX 10
|
||||
@@ -234,25 +227,19 @@ static
|
||||
int
|
||||
streamout_char(FILE *stream, int chr)
|
||||
{
|
||||
#if defined(_USER32_WSPRINTF) || defined(_LIBCNT_)
|
||||
/* Check if the buffer is full */
|
||||
if (stream->_cnt < sizeof(TCHAR))
|
||||
{
|
||||
#ifdef _USER32_WSPRINTF
|
||||
return _TEOF;
|
||||
#else
|
||||
/* Strings are done now */
|
||||
if (stream->_flag & _IOSTRG) return _TEOF;
|
||||
|
||||
/* Flush buffer for files */
|
||||
return _flsbuf(chr, stream) != _TEOF;
|
||||
#endif
|
||||
}
|
||||
return 0;
|
||||
|
||||
*(TCHAR*)stream->_ptr = chr;
|
||||
stream->_ptr += sizeof(TCHAR);
|
||||
stream->_cnt -= sizeof(TCHAR);
|
||||
|
||||
return 1;
|
||||
#else
|
||||
return _fputtc((TCHAR)chr, stream) != _TEOF;
|
||||
#endif
|
||||
}
|
||||
|
||||
static
|
||||
|
@@ -2175,12 +2175,33 @@ size_t CDECL fwrite(const void *ptr, size_t size, size_t nmemb, FILE* file)
|
||||
/*********************************************************************
|
||||
* fputwc (MSVCRT.@)
|
||||
*/
|
||||
wint_t CDECL fputwc(wint_t wc, FILE* file)
|
||||
wint_t CDECL fputwc(wchar_t c, FILE* stream)
|
||||
{
|
||||
wchar_t mwc=wc;
|
||||
if (fwrite( &mwc, sizeof(mwc), 1, file) != 1)
|
||||
return WEOF;
|
||||
return wc;
|
||||
/* If this is a real file stream (and not some temporary one for
|
||||
sprintf-like functions), check whether it is opened in text mode.
|
||||
In this case, we have to perform an implicit conversion to ANSI. */
|
||||
if (!(stream->_flag & _IOSTRG) && fdesc[stream->_file].wxflag & WX_TEXT)
|
||||
{
|
||||
/* Convert to multibyte in text mode */
|
||||
char mbc[MB_LEN_MAX];
|
||||
int mb_return;
|
||||
|
||||
mb_return = wctomb(mbc, c);
|
||||
|
||||
if(mb_return == -1)
|
||||
return WEOF;
|
||||
|
||||
/* Output all characters */
|
||||
if (fwrite(mbc, mb_return, 1, stream) != 1)
|
||||
return WEOF;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fwrite(&c, sizeof(c), 1, stream) != 1)
|
||||
return WEOF;
|
||||
}
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
@@ -708,7 +708,6 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
|
||||
if (ModifierState == 0)
|
||||
{
|
||||
UserEnterExclusive();
|
||||
if (fsModifiers == MOD_WIN)
|
||||
IntKeyboardSendWinKeyMsg();
|
||||
else if (fsModifiers == MOD_ALT)
|
||||
@@ -724,7 +723,6 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
}
|
||||
co_IntKeyboardSendAltKeyMsg();
|
||||
}
|
||||
UserLeave();
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -733,8 +731,6 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
}
|
||||
}
|
||||
|
||||
UserEnterExclusive();
|
||||
|
||||
for (;NumKeys;memcpy(&KeyInput, &NextKeyInput, sizeof(KeyInput)),
|
||||
NumKeys--)
|
||||
{
|
||||
@@ -864,8 +860,6 @@ KeyboardThreadMain(PVOID StartContext)
|
||||
*/
|
||||
co_MsqPostKeyboardMessage(msg.message,msg.wParam,msg.lParam);
|
||||
}
|
||||
|
||||
UserLeave();
|
||||
}
|
||||
|
||||
KeyboardEscape:
|
||||
@@ -1249,11 +1243,17 @@ IntKeyboardInput(KEYBDINPUT *ki)
|
||||
LARGE_INTEGER LargeTickCount;
|
||||
KBDLLHOOKSTRUCT KbdHookData;
|
||||
WORD flags, wVkStripped, wVkL, wVkR, wVk = ki->wVk, vk_hook = ki->wVk;
|
||||
BOOLEAN Entered = FALSE;
|
||||
|
||||
Msg.lParam = 0;
|
||||
|
||||
// Condition may arise when calling MsqPostMessage and waiting for an event.
|
||||
ASSERT (UserIsEntered());
|
||||
// Condition may arise when calling MsqPostMessage and waiting for an event.
|
||||
if (!UserIsEntered())
|
||||
{
|
||||
// Fixme: Not sure ATM if this thread is locked.
|
||||
UserEnterExclusive();
|
||||
Entered = TRUE;
|
||||
}
|
||||
|
||||
wVk = LOBYTE(wVk);
|
||||
Msg.wParam = wVk;
|
||||
@@ -1352,7 +1352,7 @@ IntKeyboardInput(KEYBDINPUT *ki)
|
||||
{
|
||||
DPRINT1("Kbd msg %d wParam %d lParam 0x%08x dropped by WH_KEYBOARD_LL hook\n",
|
||||
Msg.message, vk_hook, Msg.lParam);
|
||||
|
||||
if (Entered) UserLeave();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1380,7 +1380,7 @@ IntKeyboardInput(KEYBDINPUT *ki)
|
||||
if (FocusMessageQueue == NULL)
|
||||
{
|
||||
DPRINT("No focus message queue\n");
|
||||
|
||||
if (Entered) UserLeave();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1401,6 +1401,8 @@ IntKeyboardInput(KEYBDINPUT *ki)
|
||||
DPRINT("Invalid focus window handle\n");
|
||||
}
|
||||
|
||||
if (Entered) UserLeave();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@@ -1447,7 +1447,7 @@ co_IntSendMessageWithCallBack( HWND hWnd,
|
||||
if(!(Message = ExAllocatePoolWithTag(NonPagedPool, sizeof(USER_SENT_MESSAGE), TAG_USRMSG)))
|
||||
{
|
||||
DPRINT1("MsqSendMessage(): Not enough memory to allocate a message");
|
||||
RETURN( FALSE);
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
Message->Msg.hwnd = hWnd;
|
||||
@@ -1459,21 +1459,19 @@ co_IntSendMessageWithCallBack( HWND hWnd,
|
||||
Message->lResult = 0;
|
||||
Message->QS_Flags = 0;
|
||||
Message->SenderQueue = NULL; // mjmartin, you are right! This is null.
|
||||
IntReferenceMessageQueue(Win32Thread->MessageQueue);
|
||||
Message->CallBackSenderQueue = Win32Thread->MessageQueue;
|
||||
|
||||
IntReferenceMessageQueue(Window->head.pti->MessageQueue);
|
||||
Message->CompletionCallback = CompletionCallback;
|
||||
Message->CompletionCallbackContext = CompletionCallbackContext;
|
||||
Message->HookMessage = MSQ_NORMAL; // | MSQ_SENTNOWAIT
|
||||
Message->HookMessage = MSQ_NORMAL | MSQ_SENTNOWAIT;
|
||||
Message->HasPackedLParam = (lParamBufferSize > 0);
|
||||
Message->DispatchingListEntry.Flink = NULL;
|
||||
|
||||
Message->QS_Flags = QS_SENDMESSAGE;
|
||||
|
||||
IntReferenceMessageQueue(Window->head.pti->MessageQueue);
|
||||
|
||||
MsqWakeQueue(Window->head.pti->MessageQueue, QS_SENDMESSAGE, FALSE);
|
||||
|
||||
InsertTailList(&Window->head.pti->MessageQueue->SentMessagesListHead, &Message->ListEntry);
|
||||
//IntDereferenceMessageQueue(Window->head.pti->MessageQueue);
|
||||
IntDereferenceMessageQueue(Window->head.pti->MessageQueue);
|
||||
|
||||
RETURN(TRUE);
|
||||
|
||||
|
@@ -279,12 +279,18 @@ co_MsqPostKeyboardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
MSG Msg;
|
||||
LARGE_INTEGER LargeTickCount;
|
||||
KBDLLHOOKSTRUCT KbdHookData;
|
||||
BOOLEAN Entered = FALSE;
|
||||
|
||||
DPRINT("MsqPostKeyboardMessage(uMsg 0x%x, wParam 0x%x, lParam 0x%x)\n",
|
||||
uMsg, wParam, lParam);
|
||||
|
||||
// Condition may arise when calling MsqPostMessage and waiting for an event.
|
||||
ASSERT(UserIsEntered());
|
||||
if (!UserIsEntered())
|
||||
{
|
||||
// Fixme: Not sure ATM if this thread is locked.
|
||||
UserEnterExclusive();
|
||||
Entered = TRUE;
|
||||
}
|
||||
|
||||
FocusMessageQueue = IntGetFocusMessageQueue();
|
||||
|
||||
@@ -314,12 +320,14 @@ co_MsqPostKeyboardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
DPRINT1("Kbd msg %d wParam %d lParam 0x%08x dropped by WH_KEYBOARD_LL hook\n",
|
||||
Msg.message, Msg.wParam, Msg.lParam);
|
||||
if (Entered) UserLeave();
|
||||
return;
|
||||
}
|
||||
|
||||
if (FocusMessageQueue == NULL)
|
||||
{
|
||||
DPRINT("No focus message queue\n");
|
||||
if (Entered) UserLeave();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -338,6 +346,7 @@ co_MsqPostKeyboardMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
DPRINT("Invalid focus window handle\n");
|
||||
}
|
||||
|
||||
if (Entered) UserLeave();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -406,42 +415,6 @@ MsqDestroyMessage(PUSER_MESSAGE Message)
|
||||
ExFreeToPagedLookasideList(&MessageLookasideList, Message);
|
||||
}
|
||||
|
||||
VOID FASTCALL
|
||||
MsqDestroySentMessage(PUSER_MESSAGE_QUEUE MessageQueue, PUSER_SENT_MESSAGE SentMessage)
|
||||
{
|
||||
/* remove the message from the dispatching list if needed */
|
||||
if (SentMessage->DispatchingListEntry.Flink != NULL)
|
||||
{
|
||||
RemoveEntryList(&SentMessage->DispatchingListEntry);
|
||||
}
|
||||
|
||||
/* wake the sender's thread */
|
||||
if (SentMessage->CompletionEvent != NULL)
|
||||
{
|
||||
KeSetEvent(SentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
|
||||
}
|
||||
|
||||
/* dereference message queues */
|
||||
IntDereferenceMessageQueue(MessageQueue);
|
||||
if (SentMessage->SenderQueue)
|
||||
{
|
||||
IntDereferenceMessageQueue(SentMessage->SenderQueue);
|
||||
}
|
||||
if (SentMessage->CallBackSenderQueue)
|
||||
{
|
||||
IntDereferenceMessageQueue(SentMessage->CallBackSenderQueue);
|
||||
}
|
||||
|
||||
/* free lParam if needed */
|
||||
if (SentMessage->HasPackedLParam == TRUE && SentMessage->Msg.lParam)
|
||||
{
|
||||
ExFreePool((PVOID)SentMessage->Msg.lParam);
|
||||
}
|
||||
|
||||
/* free the message */
|
||||
ExFreePoolWithTag(SentMessage, TAG_USRMSG);
|
||||
}
|
||||
|
||||
BOOLEAN FASTCALL
|
||||
co_MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
{
|
||||
@@ -505,10 +478,13 @@ co_MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
RemoveEntryList(&Message->ListEntry);
|
||||
|
||||
/* remove the message from the dispatching list if needed, so lock the sender's message queue */
|
||||
if (Message->DispatchingListEntry.Flink != NULL)
|
||||
if (!(Message->HookMessage & MSQ_SENTNOWAIT))
|
||||
{
|
||||
RemoveEntryList(&Message->DispatchingListEntry);
|
||||
Message->DispatchingListEntry.Flink = NULL;
|
||||
if (Message->DispatchingListEntry.Flink != NULL)
|
||||
{
|
||||
/* only remove it from the dispatching list if not already removed by a timeout */
|
||||
RemoveEntryList(&Message->DispatchingListEntry);
|
||||
}
|
||||
}
|
||||
/* still keep the sender's message queue locked, so the sender can't exit the
|
||||
MsqSendMessage() function (if timed out) */
|
||||
@@ -524,11 +500,16 @@ co_MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
*Message->Result = Result;
|
||||
}
|
||||
|
||||
if (Message->HasPackedLParam == TRUE)
|
||||
{
|
||||
if (Message->Msg.lParam)
|
||||
ExFreePool((PVOID)Message->Msg.lParam);
|
||||
}
|
||||
|
||||
/* Notify the sender. */
|
||||
if (Message->CompletionEvent != NULL)
|
||||
{
|
||||
KeSetEvent(Message->CompletionEvent, IO_NO_INCREMENT, FALSE);
|
||||
Message->CompletionEvent = NULL; /* prevent MsqDestroySentMessage from setting this event again */
|
||||
}
|
||||
|
||||
/* Call the callback if the message was sent with SendMessageCallback */
|
||||
@@ -541,7 +522,15 @@ co_MsqDispatchOneSentMessage(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
Result);
|
||||
}
|
||||
|
||||
MsqDestroySentMessage(MessageQueue, Message);
|
||||
/* Only if it is not a no wait message */
|
||||
if (!(Message->HookMessage & MSQ_SENTNOWAIT))
|
||||
{
|
||||
IntDereferenceMessageQueue(Message->SenderQueue);
|
||||
IntDereferenceMessageQueue(MessageQueue);
|
||||
}
|
||||
|
||||
/* free the message */
|
||||
ExFreePoolWithTag(Message, TAG_USRMSG);
|
||||
|
||||
/* do not hangup on the user if this is reentering */
|
||||
if (!SaveMsg) pti->pcti->CTI_flags &= ~CTI_INSENDMESSAGE;
|
||||
@@ -571,14 +560,16 @@ MsqRemoveWindowMessagesFromQueue(PVOID pWindow)
|
||||
{
|
||||
PostedMessage = CONTAINING_RECORD(CurrentEntry, USER_MESSAGE,
|
||||
ListEntry);
|
||||
/* set CurrentEntry to next before destroying message */
|
||||
CurrentEntry = CurrentEntry->Flink;
|
||||
|
||||
if (PostedMessage->Msg.hwnd == Window->head.h)
|
||||
{
|
||||
RemoveEntryList(&PostedMessage->ListEntry);
|
||||
ClearMsgBitsMask(MessageQueue, PostedMessage->QS_Flags);
|
||||
MsqDestroyMessage(PostedMessage);
|
||||
CurrentEntry = MessageQueue->PostedMessagesListHead.Flink;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentEntry = CurrentEntry->Flink;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -589,9 +580,6 @@ MsqRemoveWindowMessagesFromQueue(PVOID pWindow)
|
||||
{
|
||||
SentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE,
|
||||
ListEntry);
|
||||
/* set CurrentEntry to next before destroying message */
|
||||
CurrentEntry = CurrentEntry->Flink;
|
||||
|
||||
if(SentMessage->Msg.hwnd == Window->head.h)
|
||||
{
|
||||
DPRINT("Notify the sender and remove a message from the queue that had not been dispatched\n");
|
||||
@@ -599,7 +587,41 @@ MsqRemoveWindowMessagesFromQueue(PVOID pWindow)
|
||||
RemoveEntryList(&SentMessage->ListEntry);
|
||||
ClearMsgBitsMask(MessageQueue, SentMessage->QS_Flags);
|
||||
|
||||
MsqDestroySentMessage(MessageQueue, SentMessage);
|
||||
/* remove the message from the dispatching list if neede */
|
||||
if ((!(SentMessage->HookMessage & MSQ_SENTNOWAIT))
|
||||
&& (SentMessage->DispatchingListEntry.Flink != NULL))
|
||||
{
|
||||
RemoveEntryList(&SentMessage->DispatchingListEntry);
|
||||
}
|
||||
|
||||
/* wake the sender's thread */
|
||||
if (SentMessage->CompletionEvent != NULL)
|
||||
{
|
||||
KeSetEvent(SentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
|
||||
}
|
||||
|
||||
if (SentMessage->HasPackedLParam == TRUE)
|
||||
{
|
||||
if (SentMessage->Msg.lParam)
|
||||
ExFreePool((PVOID)SentMessage->Msg.lParam);
|
||||
}
|
||||
|
||||
/* Only if it is not a no wait message */
|
||||
if (!(SentMessage->HookMessage & MSQ_SENTNOWAIT))
|
||||
{
|
||||
/* dereference our and the sender's message queue */
|
||||
IntDereferenceMessageQueue(MessageQueue);
|
||||
IntDereferenceMessageQueue(SentMessage->SenderQueue);
|
||||
}
|
||||
|
||||
/* free the message */
|
||||
ExFreePoolWithTag(SentMessage, TAG_USRMSG);
|
||||
|
||||
CurrentEntry = MessageQueue->SentMessagesListHead.Flink;
|
||||
}
|
||||
else
|
||||
{
|
||||
CurrentEntry = CurrentEntry->Flink;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -633,7 +655,7 @@ co_MsqSendMessage(PUSER_MESSAGE_QUEUE MessageQueue,
|
||||
|
||||
Timeout.QuadPart = (LONGLONG) uTimeout * (LONGLONG) -10000;
|
||||
|
||||
/* FIXME - increase reference counter of sender's message queue here - isn't it done? */
|
||||
/* FIXME - increase reference counter of sender's message queue here */
|
||||
|
||||
Message->Msg.hwnd = Wnd;
|
||||
Message->Msg.message = Msg;
|
||||
@@ -643,9 +665,9 @@ co_MsqSendMessage(PUSER_MESSAGE_QUEUE MessageQueue,
|
||||
Message->Result = &Result;
|
||||
Message->lResult = 0;
|
||||
Message->QS_Flags = 0;
|
||||
IntReferenceMessageQueue(ThreadQueue);
|
||||
Message->SenderQueue = ThreadQueue;
|
||||
Message->CallBackSenderQueue = NULL;
|
||||
IntReferenceMessageQueue(ThreadQueue);
|
||||
Message->CompletionCallback = NULL;
|
||||
Message->CompletionCallbackContext = 0;
|
||||
Message->HookMessage = HookMessage;
|
||||
@@ -1414,7 +1436,35 @@ MsqCleanupMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
|
||||
DPRINT("Notify the sender and remove a message from the queue that had not been dispatched\n");
|
||||
|
||||
MsqDestroySentMessage(MessageQueue, CurrentSentMessage);
|
||||
/* remove the message from the dispatching list if needed */
|
||||
if ((!(CurrentSentMessage->HookMessage & MSQ_SENTNOWAIT))
|
||||
&& (CurrentSentMessage->DispatchingListEntry.Flink != NULL))
|
||||
{
|
||||
RemoveEntryList(&CurrentSentMessage->DispatchingListEntry);
|
||||
}
|
||||
|
||||
/* wake the sender's thread */
|
||||
if (CurrentSentMessage->CompletionEvent != NULL)
|
||||
{
|
||||
KeSetEvent(CurrentSentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
|
||||
}
|
||||
|
||||
if (CurrentSentMessage->HasPackedLParam == TRUE)
|
||||
{
|
||||
if (CurrentSentMessage->Msg.lParam)
|
||||
ExFreePool((PVOID)CurrentSentMessage->Msg.lParam);
|
||||
}
|
||||
|
||||
/* Only if it is not a no wait message */
|
||||
if (!(CurrentSentMessage->HookMessage & MSQ_SENTNOWAIT))
|
||||
{
|
||||
/* dereference our and the sender's message queue */
|
||||
IntDereferenceMessageQueue(MessageQueue);
|
||||
IntDereferenceMessageQueue(CurrentSentMessage->SenderQueue);
|
||||
}
|
||||
|
||||
/* free the message */
|
||||
ExFreePool(CurrentSentMessage);
|
||||
}
|
||||
|
||||
/* notify senders of dispatching messages. This needs to be cleaned up if e.g.
|
||||
@@ -1425,9 +1475,36 @@ MsqCleanupMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
CurrentSentMessage = CONTAINING_RECORD(CurrentEntry, USER_SENT_MESSAGE,
|
||||
ListEntry);
|
||||
|
||||
/* remove the message from the dispatching list */
|
||||
if(CurrentSentMessage->DispatchingListEntry.Flink != NULL)
|
||||
{
|
||||
RemoveEntryList(&CurrentSentMessage->DispatchingListEntry);
|
||||
}
|
||||
|
||||
DPRINT("Notify the sender, the thread has been terminated while dispatching a message!\n");
|
||||
|
||||
MsqDestroySentMessage(MessageQueue, CurrentSentMessage);
|
||||
/* wake the sender's thread */
|
||||
if (CurrentSentMessage->CompletionEvent != NULL)
|
||||
{
|
||||
KeSetEvent(CurrentSentMessage->CompletionEvent, IO_NO_INCREMENT, FALSE);
|
||||
}
|
||||
|
||||
if (CurrentSentMessage->HasPackedLParam == TRUE)
|
||||
{
|
||||
if (CurrentSentMessage->Msg.lParam)
|
||||
ExFreePool((PVOID)CurrentSentMessage->Msg.lParam);
|
||||
}
|
||||
|
||||
/* Only if it is not a no wait message */
|
||||
if (!(CurrentSentMessage->HookMessage & MSQ_SENTNOWAIT))
|
||||
{
|
||||
/* dereference our and the sender's message queue */
|
||||
IntDereferenceMessageQueue(MessageQueue);
|
||||
IntDereferenceMessageQueue(CurrentSentMessage->SenderQueue);
|
||||
}
|
||||
|
||||
/* free the message */
|
||||
ExFreePool(CurrentSentMessage);
|
||||
}
|
||||
|
||||
/* tell other threads not to bother returning any info to us */
|
||||
@@ -1438,7 +1515,6 @@ MsqCleanupMessageQueue(PUSER_MESSAGE_QUEUE MessageQueue)
|
||||
DispatchingListEntry);
|
||||
CurrentSentMessage->CompletionEvent = NULL;
|
||||
CurrentSentMessage->Result = NULL;
|
||||
CurrentSentMessage->DispatchingListEntry.Flink = NULL; // yeah!
|
||||
|
||||
/* do NOT dereference our message queue as it might get attempted to be
|
||||
locked later */
|
||||
|
Reference in New Issue
Block a user