- Sync with trunk up to r46941.

[VMWINST]
- Rename FileExists() to DoesFileExist() to avoid clashing with the real API.

svn path=/branches/header-work/; revision=47155
This commit is contained in:
Amine Khaldi 2010-05-10 19:04:41 +00:00
commit cf73dc7621
259 changed files with 12740 additions and 7205 deletions

View file

@ -28,6 +28,7 @@
<if property="OPTIMIZE" value="1"> <if property="OPTIMIZE" value="1">
<compilerflag>-ftracer</compilerflag> <compilerflag>-ftracer</compilerflag>
</if> </if>
<compilerflag>-fms-extensions</compilerflag>
<compilerflag>-Wno-attributes</compilerflag> <compilerflag>-Wno-attributes</compilerflag>
<compilerflag>-U_UNICODE</compilerflag> <compilerflag>-U_UNICODE</compilerflag>
<compilerflag>-UUNICODE</compilerflag> <compilerflag>-UUNICODE</compilerflag>

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
<module name="reg" type="win32cui" installbase="system32" installname="reg.exe" unicode="true"> <module name="reg" type="win32cui" installbase="system32" installname="reg.exe" unicode="true">
<include base="reg">.</include> <include base="reg">.</include>
<redefine name="_WIN32_WINNT">0x600</redefine> <redefine name="_WIN32_WINNT">0x600</redefine>

View file

@ -1,25 +1,26 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<group xmlns:xi="http://www.w3.org/2001/XInclude"> <!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<installfile installbase="system32">downloader.xml</installfile> <group>
<module name="downloader" type="win32gui" installbase="system32" installname="downloader.exe" unicode="yes"> <installfile installbase="system32">downloader.xml</installfile>
<include base="downloader">.</include> <module name="downloader" type="win32gui" installbase="system32" installname="downloader.exe" unicode="yes">
<include base="expat">.</include> <include base="downloader">.</include>
<include base="expat">.</include>
<library>advapi32</library> <library>advapi32</library>
<library>ntdll</library> <library>ntdll</library>
<library>user32</library> <library>user32</library>
<library>gdi32</library> <library>gdi32</library>
<library>shell32</library> <library>shell32</library>
<library>comctl32</library> <library>comctl32</library>
<library>msimg32</library> <library>msimg32</library>
<library>shlwapi</library> <library>shlwapi</library>
<library>urlmon</library> <library>urlmon</library>
<library>uuid</library> <library>uuid</library>
<library>expat</library> <library>expat</library>
<file>main.c</file> <file>main.c</file>
<file>xml.c</file> <file>xml.c</file>
<file>download.c</file> <file>download.c</file>
<file>downloader.rc</file> <file>downloader.rc</file>
</module> </module>
</group> </group>

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="fontview" type="win32gui" installbase="system32" installname="fontview.exe"> <module name="fontview" type="win32gui" installbase="system32" installname="fontview.exe">
<include base="fontview">.</include> <include base="fontview">.</include>
<library>gdi32</library> <library>gdi32</library>

View file

@ -1,4 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<group xmlns:xi="http://www.w3.org/2001/XInclude"> <group xmlns:xi="http://www.w3.org/2001/XInclude">
<module name="kbswitch" type="win32gui" installbase="system32" installname="kbswitch.exe" unicode="yes"> <module name="kbswitch" type="win32gui" installbase="system32" installname="kbswitch.exe" unicode="yes">
<include base="kbswitch">.</include> <include base="kbswitch">.</include>

View file

@ -1,5 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE project SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="magnify" type="win32gui" installbase="system32" installname="magnify.exe"> <module name="magnify" type="win32gui" installbase="system32" installname="magnify.exe">
<include base="magnify">.</include> <include base="magnify">.</include>
<library>user32</library> <library>user32</library>

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="mplay32" type="win32gui" installbase="system32" installname="mplay32.exe" unicode="yes"> <module name="mplay32" type="win32gui" installbase="system32" installname="mplay32.exe" unicode="yes">
<include base="mplay32">.</include> <include base="mplay32">.</include>
<library>advapi32</library> <library>advapi32</library>

View file

@ -1,5 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<rbuild xmlns:xi="http://www.w3.org/2001/XInclude"> <!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
<module name="eventvwr" type="win32gui" installbase="system32" installname="eventvwr.exe" unicode="yes"> <module name="eventvwr" type="win32gui" installbase="system32" installname="eventvwr.exe" unicode="yes">
<include base="eventvwr">.</include> <include base="eventvwr">.</include>
<library>user32</library> <library>user32</library>
@ -8,4 +8,3 @@
<file>eventvwr.c</file> <file>eventvwr.c</file>
<file>eventvwr.rc</file> <file>eventvwr.rc</file>
</module> </module>
</rbuild>

View file

@ -630,8 +630,9 @@ int main(int argc, char* argv[])
while ((NeverStop) || (Count < PingCount)) while ((NeverStop) || (Count < PingCount))
{ {
Ping(); Ping();
Sleep(Timeout);
Count++; Count++;
if((NeverStop) || (Count < PingCount))
Sleep(Timeout);
}; };
Cleanup(); Cleanup();

View file

@ -147,16 +147,16 @@ void LoadSettings(void)
if (dwPointSize != 0) if (dwPointSize != 0)
Globals.lfFont.lfHeight = HeightFromPointSize(dwPointSize); Globals.lfFont.lfHeight = HeightFromPointSize(dwPointSize);
hFont = CreateFontIndirect(&Globals.lfFont);
if (hFont)
{
if (Globals.hFont)
DeleteObject(Globals.hFont);
Globals.hFont = hFont;
}
RegCloseKey(hKey); RegCloseKey(hKey);
} }
hFont = CreateFontIndirect(&Globals.lfFont);
if (hFont)
{
if (Globals.hFont)
DeleteObject(Globals.hFont);
Globals.hFont = hFont;
}
} }
static BOOL SaveDword(HKEY hKey, LPCTSTR pszValueNameT, DWORD dwValue) static BOOL SaveDword(HKEY hKey, LPCTSTR pszValueNameT, DWORD dwValue)

View file

@ -51,7 +51,7 @@ BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, int *piEncoding
{ {
DWORD dwSize; DWORD dwSize;
LPBYTE pBytes = NULL; LPBYTE pBytes = NULL;
LPCWSTR pszText; LPWSTR pszText;
LPWSTR pszAllocText = NULL; LPWSTR pszAllocText = NULL;
DWORD dwPos, i; DWORD dwPos, i;
DWORD dwCharCount; DWORD dwCharCount;
@ -110,7 +110,7 @@ BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, int *piEncoding
/* fall through */ /* fall through */
case ENCODING_UNICODE: case ENCODING_UNICODE:
pszText = (LPCWSTR) &pBytes[dwPos]; pszText = (LPWSTR) &pBytes[dwPos];
dwCharCount = (dwSize - dwPos) / sizeof(WCHAR); dwCharCount = (dwSize - dwPos) / sizeof(WCHAR);
break; break;
@ -174,6 +174,10 @@ BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, int *piEncoding
else else
adwEolnCount[EOLN_LF]++; adwEolnCount[EOLN_LF]++;
break; break;
case '\0':
pszText[i] = ' ';
break;
} }
} }

View file

@ -60,8 +60,8 @@ BEGIN
MENUITEM "800%", IDM_VIEWZOOM800 MENUITEM "800%", IDM_VIEWZOOM800
END END
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "Show grid", IDM_VIEWSHOWGRID MENUITEM "Mostra griglia", IDM_VIEWSHOWGRID
MENUITEM "Show miniature", IDM_VIEWSHOWMINIATURE MENUITEM "Mostra miniature", IDM_VIEWSHOWMINIATURE
END END
MENUITEM "Visualizza a schermo intero\tCtrl+F", IDM_VIEWFULLSCREEN MENUITEM "Visualizza a schermo intero\tCtrl+F", IDM_VIEWFULLSCREEN
END END
@ -201,5 +201,5 @@ BEGIN
IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1" IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"
IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1" IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"
IDS_FILESIZE, "%d bytes" IDS_FILESIZE, "%d bytes"
IDS_PRINTRES, "%d x %d pixels per meter" IDS_PRINTRES, "%d x %d pixels per metro"
END END

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<group> <group>
<module name="rapps" type="win32gui" installbase="system32" installname="rapps.exe" unicode="yes"> <module name="rapps" type="win32gui" installbase="system32" installname="rapps.exe" unicode="yes">
<include base="ReactOS">include/reactos</include> <include base="ReactOS">include/reactos</include>

View file

@ -2,41 +2,41 @@
[Section] [Section]
Name = Mozilla Firefox 3.0 Name = Mozilla Firefox 3.0
Version = 3.0.18 Version = 3.0.19
Licence = MPL/GPL/LGPL Licence = MPL/GPL/LGPL
Description = The most popular and one of the best free Web Browsers out there. Description = The most popular and one of the best free Web Browsers out there.
Size = 7.2M Size = 7.2M
Category = 5 Category = 5
URLSite = http://www.mozilla.com/en-US/ URLSite = http://www.mozilla.com/en-US/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.0/win32/en-US/Firefox%20Setup%203.0.18.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.19-real/win32/en-US/Firefox%20Setup%203.0.19.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]
Description = Der populärste und einer der besten freien Webbrowser. Description = Der populärste und einer der besten freien Webbrowser.
Size = 7.0M Size = 7.0M
URLSite = http://www.mozilla-europe.org/de/ URLSite = http://www.mozilla-europe.org/de/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.0/win32/de/Firefox%20Setup%203.0.18.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.19-real/win32/de/Firefox%20Setup%203.0.19.exe
[Section.040a] [Section.040a]
Description = El más popular y uno de los mejores navegadores web gratuitos que hay. Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
Size = 7.0M Size = 7.0M
URLSite = http://www.mozilla-europe.org/es/ URLSite = http://www.mozilla-europe.org/es/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.0/win32/es-ES/Firefox%20Setup%203.0.18.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.19-real/win32/es-ES/Firefox%20Setup%203.0.19.exe
[Section.0414] [Section.0414]
Description = Mest populære og best også gratis nettleserene der ute. Description = Mest populære og best også gratis nettleserene der ute.
Size = 6.9M Size = 7.0M
URLSite = http://www.mozilla-europe.org/no/ URLSite = http://www.mozilla-europe.org/no/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.0/win32/nb-NO/Firefox%20Setup%203.0.18.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.19-real/win32/nb-NO/Firefox%20Setup%203.0.19.exe
[Section.0415] [Section.0415]
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych. Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
Size = 7.8M Size = 7.8M
URLSite = http://www.mozilla-europe.org/pl/ URLSite = http://www.mozilla-europe.org/pl/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.0/win32/pl/Firefox%20Setup%203.0.18.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.19-real/win32/pl/Firefox%20Setup%203.0.19.exe
[Section.0419] [Section.0419]
Description = Один из самых популярных и лучших бесплатных браузеров. Description = Один из самых популярных и лучших бесплатных браузеров.
Size = 7.4M Size = 7.4M
URLSite = http://www.mozilla-europe.org/ru/ URLSite = http://www.mozilla-europe.org/ru/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest-3.0/win32/ru/Firefox%20Setup%203.0.18.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/3.0.19-real/win32/ru/Firefox%20Setup%203.0.19.exe

View file

@ -2,13 +2,13 @@
[Section] [Section]
Name = Miranda IM Name = Miranda IM
Version = 0.8.18 Version = 0.8.19
Licence = GPL Licence = GPL
Description = Open source multiprotocol instant messaging application - May not work completely. Description = Open source multiprotocol instant messaging application - May not work completely.
Size = 1.6MB Size = 1.6MB
Category = 5 Category = 5
URLSite = http://www.miranda-im.org/ URLSite = http://www.miranda-im.org/
URLDownload = http://miranda.googlecode.com/files/miranda-im-v0.8.18-unicode.exe URLDownload = http://miranda.googlecode.com/files/miranda-im-v0.8.19-unicode.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]

View file

@ -2,13 +2,13 @@
[Section] [Section]
Name = OpenTTD Name = OpenTTD
Version = 0.7.5 Version = 1.0.0
Licence = GPL v2 Licence = GPL v2
Description = Open Source clone of the "Transport Tycoon Deluxe" game engine. You need a copy of Transport Tycoon. Description = Open Source clone of the "Transport Tycoon Deluxe" game engine. You need a copy of Transport Tycoon.
Size = 2.9MB Size = 3.5MB
Category = 4 Category = 4
URLSite = http://www.openttd.org/ URLSite = http://www.openttd.org/
URLDownload = http://binaries.openttd.org/releases/0.7.5/openttd-0.7.5-windows-win32.exe URLDownload = http://binaries.openttd.org/releases/1.0.0/openttd-1.0.0-windows-win32.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]

View file

@ -2,13 +2,13 @@
[Section] [Section]
Name = SciTE Name = SciTE
Version = 2.03 Version = 2.10
Licence = Freeware Licence = Freeware
Description = SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs. Description = SciTE is a SCIntilla based Text Editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs.
Size = 0.6M Size = 0.6M
Category = 7 Category = 7
URLSite = http://www.scintilla.org/ URLSite = http://www.scintilla.org/
URLDownload = http://ovh.dl.sourceforge.net/sourceforge/scintilla/Sc203.exe URLDownload = http://ovh.dl.sourceforge.net/sourceforge/scintilla/Sc210.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]

View file

@ -2,13 +2,13 @@
[Section] [Section]
Name = ScummVM Name = ScummVM
Version = 1.0.0 Version = 1.1.0
Licence = GPL Licence = GPL
Description = Sam and Max, Day of the Tentacle, etc on ReactOS. Description = Sam and Max, Day of the Tentacle, etc on ReactOS.
Size = 3.1MB Size = 3.4MB
Category = 4 Category = 4
URLSite = http://scummvm.org/ URLSite = http://scummvm.org/
URLDownload = http://dfn.dl.sourceforge.net/project/scummvm/scummvm/1.0.0/scummvm-1.0.0-win32.exe URLDownload = http://dfn.dl.sourceforge.net/project/scummvm/scummvm/1.1.0/scummvm-1.1.0-win32.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]

View file

@ -2,31 +2,31 @@
[Section] [Section]
Name = Mozilla SeaMonkey Name = Mozilla SeaMonkey
Version = 2.0.3 Version = 2.0.4
Licence = MPL/GPL/LGPL Licence = MPL/GPL/LGPL
Description = Mozilla Suite is alive. This is the one and only Browser, Mail, Chat, and Composer bundle you will ever need. Description = Mozilla Suite is alive. This is the one and only Browser, Mail, Chat, and Composer bundle you will ever need.
Size = 10.0MB Size = 10.1MB
Category = 5 Category = 5
URLSite = http://www.seamonkey-project.org/ URLSite = http://www.seamonkey-project.org/
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.3/win32/en-US/SeaMonkey%20Setup%202.0.3.exe URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.4/win32/en-US/SeaMonkey%20Setup%202.0.4.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]
Description = Mozilla Suite lebt. Dies ist das einzige Browser-, Mail-, Chat- and Composerwerkzeug-Bundle welches Sie benötigen. Description = Mozilla Suite lebt. Dies ist das einzige Browser-, Mail-, Chat- and Composerwerkzeug-Bundle welches Sie benötigen.
Size = 10.1MB Size = 10.0MB
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.3/win32/de/SeaMonkey%20Setup%202.0.3.exe URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.4/win32/de/SeaMonkey%20Setup%202.0.4.exe
[Section.040a] [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. 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.0MB Size = 10.0MB
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.3/win32/es-ES/SeaMonkey%20Setup%202.0.3.exe URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.4/win32/es-ES/SeaMonkey%20Setup%202.0.4.exe
[Section.0415] [Section.0415]
Description = Pakiet Mozilla żyje. W zestawie: przeglądarka, klient poczty, IRC oraz Edytor HTML - wszystko, czego potrzebujesz. Description = Pakiet Mozilla żyje. W zestawie: przeglądarka, klient poczty, IRC oraz Edytor HTML - wszystko, czego potrzebujesz.
Size = 10.8MB Size = 10.8MB
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.3/win32/pl/SeaMonkey%20Setup%202.0.3.exe URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.4/win32/pl/SeaMonkey%20Setup%202.0.4.exe
[Section.0419] [Section.0419]
Description = Продолжение Mozilla Suite. Включает браузер, почтовый клиент, IRC-клиент и HTML-редактор. Description = Продолжение Mozilla Suite. Включает браузер, почтовый клиент, IRC-клиент и HTML-редактор.
Size = 10.4MB Size = 10.4MB
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.3/win32/ru/SeaMonkey%20Setup%202.0.3.exe URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.4/win32/ru/SeaMonkey%20Setup%202.0.4.exe

View file

@ -2,35 +2,35 @@
[Section] [Section]
Name = Mozilla Thunderbird Name = Mozilla Thunderbird
Version = 3.0.3 Version = 3.0.4
Licence = MPL/GPL/LGPL Licence = MPL/GPL/LGPL
Description = The most popular and one of the best free Mail Clients out there. Description = The most popular and one of the best free Mail Clients out there.
Size = 8.6M Size = 8.6M
Category = 5 Category = 5
URLSite = http://www.mozilla-europe.org/en/products/thunderbird/ URLSite = http://www.mozilla-europe.org/en/products/thunderbird/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.3/win32/en-US/Thunderbird%20Setup%203.0.3.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.4/win32/en-US/Thunderbird%20Setup%203.0.4.exe
CDPath = none CDPath = none
[Section.0407] [Section.0407]
Description = Der populärste und einer der besten freien Mail-Clients. Description = Der populärste und einer der besten freien Mail-Clients.
Size = 8.4M Size = 8.5M
URLSite = http://www.mozilla-europe.org/de/products/thunderbird/ URLSite = http://www.mozilla-europe.org/de/products/thunderbird/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.3/win32/de/Thunderbird%20Setup%203.0.3.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.4/win32/de/Thunderbird%20Setup%203.0.4.exe
[Section.040a] [Section.040a]
Description = El más popular y uno de los mejores clientes mail que hay. Description = El más popular y uno de los mejores clientes mail que hay.
Size = 8.4M Size = 8.4M
URLSite = http://www.mozilla-europe.org/es/products/thunderbird/ URLSite = http://www.mozilla-europe.org/es/products/thunderbird/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.3/win32/es-ES/Thunderbird%20Setup%203.0.3.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.4/win32/es-ES/Thunderbird%20Setup%203.0.4.exe
[Section.0415] [Section.0415]
Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty. Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty.
Size = 9.3M Size = 9.3M
URLSite = http://www.mozilla-europe.org/pl/products/thunderbird/ URLSite = http://www.mozilla-europe.org/pl/products/thunderbird/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.3/win32/pl/Thunderbird%20Setup%203.0.3.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.4/win32/pl/Thunderbird%20Setup%203.0.4.exe
[Section.0419] [Section.0419]
Description = Один из самых популярных и лучших бесплатных почтовых клиентов. Description = Один из самых популярных и лучших бесплатных почтовых клиентов.
Size = 8.8M Size = 8.8M
URLSite = http://www.mozilla-europe.org/ru/products/thunderbird/ URLSite = http://www.mozilla-europe.org/ru/products/thunderbird/
URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.3/win32/ru/Thunderbird%20Setup%203.0.3.exe URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/3.0.4/win32/ru/Thunderbird%20Setup%203.0.4.exe

View file

@ -49,7 +49,7 @@ void ApplicationPageOnNotify(WPARAM wParam, LPARAM lParam);
void ApplicationPageShowContextMenu1(void); void ApplicationPageShowContextMenu1(void);
void ApplicationPageShowContextMenu2(void); void ApplicationPageShowContextMenu2(void);
int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort); int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
int PerfGetIndexByProcessId(DWORD dwProcessId); int ProcGetIndexByProcessId(DWORD dwProcessId);
#if 0 #if 0
void SwitchToThisWindow ( void SwitchToThisWindow (
@ -236,6 +236,13 @@ void UpdateApplicationListControlViewSetting(void)
DWORD WINAPI ApplicationPageRefreshThread(void *lpParameter) DWORD WINAPI ApplicationPageRefreshThread(void *lpParameter)
{ {
INT i;
BOOL bItemRemoved = FALSE;
LV_ITEM item;
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
HIMAGELIST hImageListLarge;
HIMAGELIST hImageListSmall;
/* Create the event */ /* Create the event */
hApplicationPageEvent = CreateEventW(NULL, TRUE, TRUE, NULL); hApplicationPageEvent = CreateEventW(NULL, TRUE, TRUE, NULL);
@ -269,6 +276,55 @@ DWORD WINAPI ApplicationPageRefreshThread(void *lpParameter)
EnumWindows(EnumWindowsProc, 0); EnumWindows(EnumWindowsProc, 0);
if (noApps) if (noApps)
(void)ListView_DeleteAllItems(hApplicationPageListCtrl); (void)ListView_DeleteAllItems(hApplicationPageListCtrl);
/* Get the image lists */
hImageListLarge = ListView_GetImageList(hApplicationPageListCtrl, LVSIL_NORMAL);
hImageListSmall = ListView_GetImageList(hApplicationPageListCtrl, LVSIL_SMALL);
/* Check to see if we need to remove any items from the list */
for (i=ListView_GetItemCount(hApplicationPageListCtrl)-1; i>=0; i--)
{
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_IMAGE|LVIF_PARAM;
item.iItem = i;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (!IsWindow(pAPLI->hWnd)||
(wcslen(pAPLI->szTitle) <= 0) ||
!IsWindowVisible(pAPLI->hWnd) ||
(GetParent(pAPLI->hWnd) != NULL) ||
(GetWindow(pAPLI->hWnd, GW_OWNER) != NULL) ||
(GetWindowLongPtr(pAPLI->hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW))
{
ImageList_Remove(hImageListLarge, item.iItem);
ImageList_Remove(hImageListSmall, item.iItem);
(void)ListView_DeleteItem(hApplicationPageListCtrl, item.iItem);
HeapFree(GetProcessHeap(), 0, pAPLI);
bItemRemoved = TRUE;
}
}
/*
* If an item was removed from the list then
* we need to resync all the items with the
* image list
*/
if (bItemRemoved)
{
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++)
{
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_IMAGE;
item.iItem = i;
item.iImage = i;
(void)ListView_SetItem(hApplicationPageListCtrl, &item);
}
bItemRemoved = FALSE;
}
ApplicationPageUpdate();
} }
} }
} }
@ -333,13 +389,12 @@ BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam)
void AddOrUpdateHwnd(HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung) void AddOrUpdateHwnd(HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung)
{ {
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL; LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
HIMAGELIST hImageListLarge; HIMAGELIST hImageListLarge;
HIMAGELIST hImageListSmall; HIMAGELIST hImageListSmall;
LV_ITEM item; LV_ITEM item;
int i; int i;
BOOL bAlreadyInList = FALSE; BOOL bAlreadyInList = FALSE;
BOOL bItemRemoved = FALSE;
memset(&item, 0, sizeof(LV_ITEM)); memset(&item, 0, sizeof(LV_ITEM));
@ -406,51 +461,7 @@ void AddOrUpdateHwnd(HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung)
item.lParam = (LPARAM)pAPLI; item.lParam = (LPARAM)pAPLI;
(void)ListView_InsertItem(hApplicationPageListCtrl, &item); (void)ListView_InsertItem(hApplicationPageListCtrl, &item);
} }
return;
/* Check to see if we need to remove any items from the list */
for (i=ListView_GetItemCount(hApplicationPageListCtrl)-1; i>=0; i--)
{
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_IMAGE|LVIF_PARAM;
item.iItem = i;
(void)ListView_GetItem(hApplicationPageListCtrl, &item);
pAPLI = (LPAPPLICATION_PAGE_LIST_ITEM)item.lParam;
if (!IsWindow(pAPLI->hWnd)||
(wcslen(pAPLI->szTitle) <= 0) ||
!IsWindowVisible(pAPLI->hWnd) ||
(GetParent(pAPLI->hWnd) != NULL) ||
(GetWindow(pAPLI->hWnd, GW_OWNER) != NULL) ||
(GetWindowLongPtrW(hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW))
{
ImageList_Remove(hImageListLarge, item.iItem);
ImageList_Remove(hImageListSmall, item.iItem);
(void)ListView_DeleteItem(hApplicationPageListCtrl, item.iItem);
HeapFree(GetProcessHeap(), 0, pAPLI);
bItemRemoved = TRUE;
}
}
/*
* If an item was removed from the list then
* we need to resync all the items with the
* image list
*/
if (bItemRemoved)
{
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++)
{
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_IMAGE;
item.iItem = i;
item.iImage = i;
(void)ListView_SetItem(hApplicationPageListCtrl, &item);
}
}
ApplicationPageUpdate();
} }
void ApplicationPageUpdate(void) void ApplicationPageUpdate(void)
@ -878,7 +889,6 @@ void ApplicationPage_OnGotoProcess(void)
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL; LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
LV_ITEM item; LV_ITEM item;
int i; int i;
/* NMHDR nmhdr; */
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) { for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
memset(&item, 0, sizeof(LV_ITEM)); memset(&item, 0, sizeof(LV_ITEM));
@ -902,7 +912,7 @@ void ApplicationPage_OnGotoProcess(void)
/* /*
* Select the process item in the list * Select the process item in the list
*/ */
i = PerfGetIndexByProcessId(dwProcessId); i = ProcGetIndexByProcessId(dwProcessId);
if (i != -1) if (i != -1)
{ {
ListView_SetItemState(hProcessPageListCtrl, ListView_SetItemState(hProcessPageListCtrl,

View file

@ -40,6 +40,15 @@ SYSTEM_HANDLE_INFORMATION SystemHandleInfo;
PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SystemProcessorTimeInfo = NULL; PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SystemProcessorTimeInfo = NULL;
PSID SystemUserSid = NULL; PSID SystemUserSid = NULL;
typedef struct _SIDTOUSERNAME
{
LIST_ENTRY List;
LPWSTR pszName;
BYTE Data[0];
} SIDTOUSERNAME, *PSIDTOUSERNAME;
static LIST_ENTRY SidToUserNameHead = {&SidToUserNameHead, &SidToUserNameHead};
BOOL PerfDataInitialize(void) BOOL PerfDataInitialize(void)
{ {
SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY}; SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
@ -63,6 +72,8 @@ BOOL PerfDataInitialize(void)
void PerfDataUninitialize(void) void PerfDataUninitialize(void)
{ {
PLIST_ENTRY pCur;
PSIDTOUSERNAME pEntry;
if (pPerfData != NULL) if (pPerfData != NULL)
HeapFree(GetProcessHeap(), 0, pPerfData); HeapFree(GetProcessHeap(), 0, pPerfData);
@ -74,6 +85,15 @@ void PerfDataUninitialize(void)
FreeSid(SystemUserSid); FreeSid(SystemUserSid);
SystemUserSid = NULL; SystemUserSid = NULL;
} }
/* Free user names cache list */
pCur = SidToUserNameHead.Flink;
while (pCur != &SidToUserNameHead)
{
pEntry = CONTAINING_RECORD(pCur, SIDTOUSERNAME, List);
pCur = pCur->Flink;
HeapFree(GetProcessHeap(), 0, pEntry);
}
} }
static void SidToUserName(PSID Sid, LPWSTR szBuffer, DWORD BufferSize) static void SidToUserName(PSID Sid, LPWSTR szBuffer, DWORD BufferSize)
@ -86,6 +106,56 @@ static void SidToUserName(PSID Sid, LPWSTR szBuffer, DWORD BufferSize)
LookupAccountSidW(NULL, Sid, szBuffer, &BufferSize, szDomainNameUnused, &DomainNameLen, &Use); LookupAccountSidW(NULL, Sid, szBuffer, &BufferSize, szDomainNameUnused, &DomainNameLen, &Use);
} }
VOID
WINAPI
CachedGetUserFromSid(
PSID pSid,
LPWSTR pUserName,
PULONG pcwcUserName)
{
PLIST_ENTRY pCur;
PSIDTOUSERNAME pEntry;
ULONG cbSid, cwcUserName;
cwcUserName = *pcwcUserName;
/* Walk through the list */
for(pCur = SidToUserNameHead.Flink;
pCur != &SidToUserNameHead;
pCur = pCur->Flink)
{
pEntry = CONTAINING_RECORD(pCur, SIDTOUSERNAME, List);
if (EqualSid((PSID)&pEntry->Data, pSid))
{
wcsncpy(pUserName, pEntry->pszName, cwcUserName);
*pcwcUserName = cwcUserName;
return;
}
}
/* We didn't find the SID in the list, get the name conventional */
SidToUserName(pSid, pUserName, cwcUserName);
/* Allocate a new entry */
*pcwcUserName = wcslen(pUserName);
cwcUserName = *pcwcUserName + 1;
cbSid = GetLengthSid(pSid);
pEntry = HeapAlloc(GetProcessHeap(), 0, sizeof(SIDTOUSERNAME) + cbSid + cwcUserName * sizeof(WCHAR));
/* Copy the Sid and name to our entry */
CopySid(cbSid, (PSID)&pEntry->Data, pSid);
pEntry->pszName = (LPWSTR)(pEntry->Data + cbSid);
wcsncpy(pEntry->pszName, pUserName, cwcUserName);
/* Insert the new entry */
pEntry->List.Flink = &SidToUserNameHead;
pEntry->List.Blink = SidToUserNameHead.Blink;
SidToUserNameHead.Blink->Flink = &pEntry->List;
SidToUserNameHead.Blink = &pEntry->List;
return;
}
void PerfDataRefresh(void) void PerfDataRefresh(void)
{ {
ULONG ulSize; ULONG ulSize;
@ -106,6 +176,7 @@ void PerfDataRefresh(void)
PSECURITY_DESCRIPTOR ProcessSD; PSECURITY_DESCRIPTOR ProcessSD;
PSID ProcessUser; PSID ProcessUser;
ULONG Buffer[64]; /* must be 4 bytes aligned! */ ULONG Buffer[64]; /* must be 4 bytes aligned! */
ULONG cwcUserName;
/* Get new system time */ /* Get new system time */
status = NtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0); status = NtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0);
@ -341,7 +412,8 @@ ClearInfo:
ZeroMemory(&pPerfData[Idx].IOCounters, sizeof(IO_COUNTERS)); ZeroMemory(&pPerfData[Idx].IOCounters, sizeof(IO_COUNTERS));
} }
SidToUserName(ProcessUser, pPerfData[Idx].UserName, sizeof(pPerfData[0].UserName) / sizeof(pPerfData[0].UserName[0])); cwcUserName = sizeof(pPerfData[0].UserName) / sizeof(pPerfData[0].UserName[0]);
CachedGetUserFromSid(ProcessUser, pPerfData[Idx].UserName, &cwcUserName);
if (ProcessSD != NULL) if (ProcessSD != NULL)
{ {
@ -356,6 +428,29 @@ ClearInfo:
LeaveCriticalSection(&PerfDataCriticalSection); LeaveCriticalSection(&PerfDataCriticalSection);
} }
ULONG PerfDataGetProcessIndex(ULONG pid)
{
ULONG idx;
EnterCriticalSection(&PerfDataCriticalSection);
for (idx = 0; idx < ProcessCount; idx++)
{
if (PtrToUlong(pPerfData[idx].ProcessId) == pid)
{
break;
}
}
LeaveCriticalSection(&PerfDataCriticalSection);
if (idx == ProcessCount)
{
return -1;
}
return idx;
}
ULONG PerfDataGetProcessCount(void) ULONG PerfDataGetProcessCount(void)
{ {
return ProcessCount; return ProcessCount;
@ -387,27 +482,6 @@ BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, int nMaxCount)
return bSuccessful; return bSuccessful;
} }
int PerfGetIndexByProcessId(DWORD dwProcessId)
{
int FoundIndex = -1;
ULONG Index;
EnterCriticalSection(&PerfDataCriticalSection);
for (Index = 0; Index < ProcessCount; Index++)
{
if (PtrToUlong(pPerfData[Index].ProcessId) == dwProcessId)
{
FoundIndex = Index;
break;
}
}
LeaveCriticalSection(&PerfDataCriticalSection);
return FoundIndex;
}
ULONG PerfDataGetProcessId(ULONG Index) ULONG PerfDataGetProcessId(ULONG Index)
{ {
ULONG ProcessId; ULONG ProcessId;

View file

@ -60,6 +60,7 @@ void PerfDataUninitialize(void);
void PerfDataRefresh(void); void PerfDataRefresh(void);
BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData); BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData);
ULONG PerfDataGetProcessIndex(ULONG pid);
ULONG PerfDataGetProcessCount(void); ULONG PerfDataGetProcessCount(void);
ULONG PerfDataGetProcessorUsage(void); ULONG PerfDataGetProcessorUsage(void);
ULONG PerfDataGetProcessorSystemUsage(void); ULONG PerfDataGetProcessorSystemUsage(void);

View file

@ -28,7 +28,6 @@
typedef struct typedef struct
{ {
ULONG Index;
ULONG ProcessId; ULONG ProcessId;
} PROCESS_PAGE_LIST_ITEM, *LPPROCESS_PAGE_LIST_ITEM; } PROCESS_PAGE_LIST_ITEM, *LPPROCESS_PAGE_LIST_ITEM;
@ -54,6 +53,27 @@ BOOL PerfDataGetText(ULONG Index, ULONG ColumnIndex, LPTSTR lpText, int nMaxCoun
DWORD WINAPI ProcessPageRefreshThread(void *lpParameter); DWORD WINAPI ProcessPageRefreshThread(void *lpParameter);
int ProcessRunning(ULONG ProcessId); int ProcessRunning(ULONG ProcessId);
int ProcGetIndexByProcessId(DWORD dwProcessId)
{
int i;
LVITEM item;
LPPROCESS_PAGE_LIST_ITEM pData;
for (i=0; i<ListView_GetItemCount(hProcessPageListCtrl); i++)
{
memset(&item, 0, sizeof(LV_ITEM));
item.mask = LVIF_PARAM;
item.iItem = i;
(void)ListView_GetItem(hProcessPageListCtrl, &item);
pData = (LPPROCESS_PAGE_LIST_ITEM)item.lParam;
if (pData->ProcessId == dwProcessId)
{
return i;
}
}
return 0;
}
DWORD GetSelectedProcessId(void) DWORD GetSelectedProcessId(void)
{ {
int Index; int Index;
@ -71,7 +91,7 @@ DWORD GetSelectedProcessId(void)
(void)ListView_GetItem(hProcessPageListCtrl, &lvitem); (void)ListView_GetItem(hProcessPageListCtrl, &lvitem);
if (lvitem.lParam) if (lvitem.lParam)
return PerfDataGetProcessId(((LPPROCESS_PAGE_LIST_ITEM)lvitem.lParam)->Index); return ((LPPROCESS_PAGE_LIST_ITEM)lvitem.lParam)->ProcessId;
} }
return 0; return 0;
@ -219,7 +239,7 @@ void ProcessPageOnNotify(WPARAM wParam, LPARAM lParam)
break; break;
pData = (LPPROCESS_PAGE_LIST_ITEM)pnmdi->item.lParam; pData = (LPPROCESS_PAGE_LIST_ITEM)pnmdi->item.lParam;
Index = pData->Index; Index = PerfDataGetProcessIndex(pData->ProcessId);
ColumnIndex = pnmdi->item.iSubItem; ColumnIndex = pnmdi->item.iSubItem;
PerfDataGetText(Index, ColumnIndex, pnmdi->item.pszText, pnmdi->item.cchTextMax); PerfDataGetText(Index, ColumnIndex, pnmdi->item.pszText, pnmdi->item.cchTextMax);
@ -414,7 +434,7 @@ void UpdateProcesses()
{ {
int i; int i;
ULONG l; ULONG l;
LV_ITEM item; LV_ITEM item;
LPPROCESS_PAGE_LIST_ITEM pData; LPPROCESS_PAGE_LIST_ITEM pData;
/* Remove old processes */ /* Remove old processes */
@ -431,10 +451,17 @@ void UpdateProcesses()
HeapFree(GetProcessHeap(), 0, pData); HeapFree(GetProcessHeap(), 0, pData);
} }
} }
for (l = 0; l < PerfDataGetProcessCount(); l++)
/* Check for difference in listview process and performance process counts */
if (ListView_GetItemCount(hProcessPageListCtrl) != PerfDataGetProcessCount())
{ {
AddProcess(l); /* Add new processes by checking against the current items */
for (l = 0; l < PerfDataGetProcessCount(); l++)
{
AddProcess(l);
}
} }
if (TaskManagerSettings.SortColumn != -1) if (TaskManagerSettings.SortColumn != -1)
{ {
(void)ListView_SortItems(hProcessPageListCtrl, ProcessPageCompareFunc, NULL); (void)ListView_SortItems(hProcessPageListCtrl, ProcessPageCompareFunc, NULL);
@ -482,7 +509,7 @@ void AddProcess(ULONG Index)
item.iItem = i; item.iItem = i;
(void)ListView_GetItem(hProcessPageListCtrl, &item); (void)ListView_GetItem(hProcessPageListCtrl, &item);
pData = (LPPROCESS_PAGE_LIST_ITEM)item.lParam; pData = (LPPROCESS_PAGE_LIST_ITEM)item.lParam;
if (PerfDataGetProcessId(pData->Index) == pid) if (pData->ProcessId == pid)
{ {
bAlreadyInList = TRUE; bAlreadyInList = TRUE;
break; break;
@ -491,7 +518,6 @@ void AddProcess(ULONG Index)
if (!bAlreadyInList) /* Add */ if (!bAlreadyInList) /* Add */
{ {
pData = (LPPROCESS_PAGE_LIST_ITEM)HeapAlloc(GetProcessHeap(), 0, sizeof(PROCESS_PAGE_LIST_ITEM)); pData = (LPPROCESS_PAGE_LIST_ITEM)HeapAlloc(GetProcessHeap(), 0, sizeof(PROCESS_PAGE_LIST_ITEM));
pData->Index = Index;
pData->ProcessId = pid; pData->ProcessId = pid;
/* Add the item to the list */ /* Add the item to the list */
@ -686,6 +712,8 @@ int CALLBACK ProcessPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lPara
int ret = 0; int ret = 0;
LPPROCESS_PAGE_LIST_ITEM Param1; LPPROCESS_PAGE_LIST_ITEM Param1;
LPPROCESS_PAGE_LIST_ITEM Param2; LPPROCESS_PAGE_LIST_ITEM Param2;
ULONG IndexParam1;
ULONG IndexParam2;
WCHAR text1[260]; WCHAR text1[260];
WCHAR text2[260]; WCHAR text2[260];
ULONG l1; ULONG l1;
@ -704,165 +732,167 @@ int CALLBACK ProcessPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lPara
Param1 = (LPPROCESS_PAGE_LIST_ITEM)lParam2; Param1 = (LPPROCESS_PAGE_LIST_ITEM)lParam2;
Param2 = (LPPROCESS_PAGE_LIST_ITEM)lParam1; Param2 = (LPPROCESS_PAGE_LIST_ITEM)lParam1;
} }
IndexParam1 = PerfDataGetProcessIndex(Param1->ProcessId);
IndexParam2 = PerfDataGetProcessIndex(Param2->ProcessId);
if (TaskManagerSettings.SortColumn == COLUMN_IMAGENAME) if (TaskManagerSettings.SortColumn == COLUMN_IMAGENAME)
{ {
PerfDataGetImageName(Param1->Index, text1, sizeof (text1) / sizeof (*text1)); PerfDataGetImageName(IndexParam1, text1, sizeof (text1) / sizeof (*text1));
PerfDataGetImageName(Param2->Index, text2, sizeof (text2) / sizeof (*text2)); PerfDataGetImageName(IndexParam2, text2, sizeof (text2) / sizeof (*text2));
ret = _wcsicmp(text1, text2); ret = _wcsicmp(text1, text2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_PID) else if (TaskManagerSettings.SortColumn == COLUMN_PID)
{ {
l1 = PerfDataGetProcessId(Param1->Index); l1 = Param1->ProcessId;
l2 = PerfDataGetProcessId(Param2->Index); l2 = Param2->ProcessId;
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_USERNAME) else if (TaskManagerSettings.SortColumn == COLUMN_USERNAME)
{ {
PerfDataGetUserName(Param1->Index, text1, sizeof (text1) / sizeof (*text1)); PerfDataGetUserName(IndexParam1, text1, sizeof (text1) / sizeof (*text1));
PerfDataGetUserName(Param2->Index, text2, sizeof (text2) / sizeof (*text2)); PerfDataGetUserName(IndexParam2, text2, sizeof (text2) / sizeof (*text2));
ret = _wcsicmp(text1, text2); ret = _wcsicmp(text1, text2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_SESSIONID) else if (TaskManagerSettings.SortColumn == COLUMN_SESSIONID)
{ {
l1 = PerfDataGetSessionId(Param1->Index); l1 = PerfDataGetSessionId(IndexParam1);
l2 = PerfDataGetSessionId(Param2->Index); l2 = PerfDataGetSessionId(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_CPUUSAGE) else if (TaskManagerSettings.SortColumn == COLUMN_CPUUSAGE)
{ {
l1 = PerfDataGetCPUUsage(Param1->Index); l1 = PerfDataGetCPUUsage(IndexParam1);
l2 = PerfDataGetCPUUsage(Param2->Index); l2 = PerfDataGetCPUUsage(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_CPUTIME) else if (TaskManagerSettings.SortColumn == COLUMN_CPUTIME)
{ {
time1 = PerfDataGetCPUTime(Param1->Index); time1 = PerfDataGetCPUTime(IndexParam1);
time2 = PerfDataGetCPUTime(Param2->Index); time2 = PerfDataGetCPUTime(IndexParam2);
ret = largeintcmp(time1, time2); ret = largeintcmp(time1, time2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_MEMORYUSAGE) else if (TaskManagerSettings.SortColumn == COLUMN_MEMORYUSAGE)
{ {
l1 = PerfDataGetWorkingSetSizeBytes(Param1->Index); l1 = PerfDataGetWorkingSetSizeBytes(IndexParam1);
l2 = PerfDataGetWorkingSetSizeBytes(Param2->Index); l2 = PerfDataGetWorkingSetSizeBytes(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_PEAKMEMORYUSAGE) else if (TaskManagerSettings.SortColumn == COLUMN_PEAKMEMORYUSAGE)
{ {
l1 = PerfDataGetPeakWorkingSetSizeBytes(Param1->Index); l1 = PerfDataGetPeakWorkingSetSizeBytes(IndexParam1);
l2 = PerfDataGetPeakWorkingSetSizeBytes(Param2->Index); l2 = PerfDataGetPeakWorkingSetSizeBytes(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_MEMORYUSAGEDELTA) else if (TaskManagerSettings.SortColumn == COLUMN_MEMORYUSAGEDELTA)
{ {
l1 = PerfDataGetWorkingSetSizeDelta(Param1->Index); l1 = PerfDataGetWorkingSetSizeDelta(IndexParam1);
l2 = PerfDataGetWorkingSetSizeDelta(Param2->Index); l2 = PerfDataGetWorkingSetSizeDelta(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_PAGEFAULTS) else if (TaskManagerSettings.SortColumn == COLUMN_PAGEFAULTS)
{ {
l1 = PerfDataGetPageFaultCount(Param1->Index); l1 = PerfDataGetPageFaultCount(IndexParam1);
l2 = PerfDataGetPageFaultCount(Param2->Index); l2 = PerfDataGetPageFaultCount(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_PAGEFAULTSDELTA) else if (TaskManagerSettings.SortColumn == COLUMN_PAGEFAULTSDELTA)
{ {
l1 = PerfDataGetPageFaultCountDelta(Param1->Index); l1 = PerfDataGetPageFaultCountDelta(IndexParam1);
l2 = PerfDataGetPageFaultCountDelta(Param2->Index); l2 = PerfDataGetPageFaultCountDelta(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_VIRTUALMEMORYSIZE) else if (TaskManagerSettings.SortColumn == COLUMN_VIRTUALMEMORYSIZE)
{ {
l1 = PerfDataGetVirtualMemorySizeBytes(Param1->Index); l1 = PerfDataGetVirtualMemorySizeBytes(IndexParam1);
l2 = PerfDataGetVirtualMemorySizeBytes(Param2->Index); l2 = PerfDataGetVirtualMemorySizeBytes(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_PAGEDPOOL) else if (TaskManagerSettings.SortColumn == COLUMN_PAGEDPOOL)
{ {
l1 = PerfDataGetPagedPoolUsagePages(Param1->Index); l1 = PerfDataGetPagedPoolUsagePages(IndexParam1);
l2 = PerfDataGetPagedPoolUsagePages(Param2->Index); l2 = PerfDataGetPagedPoolUsagePages(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_NONPAGEDPOOL) else if (TaskManagerSettings.SortColumn == COLUMN_NONPAGEDPOOL)
{ {
l1 = PerfDataGetNonPagedPoolUsagePages(Param1->Index); l1 = PerfDataGetNonPagedPoolUsagePages(IndexParam1);
l2 = PerfDataGetNonPagedPoolUsagePages(Param2->Index); l2 = PerfDataGetNonPagedPoolUsagePages(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_BASEPRIORITY) else if (TaskManagerSettings.SortColumn == COLUMN_BASEPRIORITY)
{ {
l1 = PerfDataGetBasePriority(Param1->Index); l1 = PerfDataGetBasePriority(IndexParam1);
l2 = PerfDataGetBasePriority(Param2->Index); l2 = PerfDataGetBasePriority(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_HANDLECOUNT) else if (TaskManagerSettings.SortColumn == COLUMN_HANDLECOUNT)
{ {
l1 = PerfDataGetHandleCount(Param1->Index); l1 = PerfDataGetHandleCount(IndexParam1);
l2 = PerfDataGetHandleCount(Param2->Index); l2 = PerfDataGetHandleCount(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_THREADCOUNT) else if (TaskManagerSettings.SortColumn == COLUMN_THREADCOUNT)
{ {
l1 = PerfDataGetThreadCount(Param1->Index); l1 = PerfDataGetThreadCount(IndexParam1);
l2 = PerfDataGetThreadCount(Param2->Index); l2 = PerfDataGetThreadCount(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_USEROBJECTS) else if (TaskManagerSettings.SortColumn == COLUMN_USEROBJECTS)
{ {
l1 = PerfDataGetUSERObjectCount(Param1->Index); l1 = PerfDataGetUSERObjectCount(IndexParam1);
l2 = PerfDataGetUSERObjectCount(Param2->Index); l2 = PerfDataGetUSERObjectCount(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_GDIOBJECTS) else if (TaskManagerSettings.SortColumn == COLUMN_GDIOBJECTS)
{ {
l1 = PerfDataGetGDIObjectCount(Param1->Index); l1 = PerfDataGetGDIObjectCount(IndexParam1);
l2 = PerfDataGetGDIObjectCount(Param2->Index); l2 = PerfDataGetGDIObjectCount(IndexParam2);
ret = CMP(l1, l2); ret = CMP(l1, l2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_IOREADS) else if (TaskManagerSettings.SortColumn == COLUMN_IOREADS)
{ {
PerfDataGetIOCounters(Param1->Index, &iocounters1); PerfDataGetIOCounters(IndexParam1, &iocounters1);
PerfDataGetIOCounters(Param2->Index, &iocounters2); PerfDataGetIOCounters(IndexParam2, &iocounters2);
ull1 = iocounters1.ReadOperationCount; ull1 = iocounters1.ReadOperationCount;
ull2 = iocounters2.ReadOperationCount; ull2 = iocounters2.ReadOperationCount;
ret = CMP(ull1, ull2); ret = CMP(ull1, ull2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_IOWRITES) else if (TaskManagerSettings.SortColumn == COLUMN_IOWRITES)
{ {
PerfDataGetIOCounters(Param1->Index, &iocounters1); PerfDataGetIOCounters(IndexParam1, &iocounters1);
PerfDataGetIOCounters(Param2->Index, &iocounters2); PerfDataGetIOCounters(IndexParam2, &iocounters2);
ull1 = iocounters1.WriteOperationCount; ull1 = iocounters1.WriteOperationCount;
ull2 = iocounters2.WriteOperationCount; ull2 = iocounters2.WriteOperationCount;
ret = CMP(ull1, ull2); ret = CMP(ull1, ull2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_IOOTHER) else if (TaskManagerSettings.SortColumn == COLUMN_IOOTHER)
{ {
PerfDataGetIOCounters(Param1->Index, &iocounters1); PerfDataGetIOCounters(IndexParam1, &iocounters1);
PerfDataGetIOCounters(Param2->Index, &iocounters2); PerfDataGetIOCounters(IndexParam2, &iocounters2);
ull1 = iocounters1.OtherOperationCount; ull1 = iocounters1.OtherOperationCount;
ull2 = iocounters2.OtherOperationCount; ull2 = iocounters2.OtherOperationCount;
ret = CMP(ull1, ull2); ret = CMP(ull1, ull2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_IOREADBYTES) else if (TaskManagerSettings.SortColumn == COLUMN_IOREADBYTES)
{ {
PerfDataGetIOCounters(Param1->Index, &iocounters1); PerfDataGetIOCounters(IndexParam1, &iocounters1);
PerfDataGetIOCounters(Param2->Index, &iocounters2); PerfDataGetIOCounters(IndexParam2, &iocounters2);
ull1 = iocounters1.ReadTransferCount; ull1 = iocounters1.ReadTransferCount;
ull2 = iocounters2.ReadTransferCount; ull2 = iocounters2.ReadTransferCount;
ret = CMP(ull1, ull2); ret = CMP(ull1, ull2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_IOWRITEBYTES) else if (TaskManagerSettings.SortColumn == COLUMN_IOWRITEBYTES)
{ {
PerfDataGetIOCounters(Param1->Index, &iocounters1); PerfDataGetIOCounters(IndexParam1, &iocounters1);
PerfDataGetIOCounters(Param2->Index, &iocounters2); PerfDataGetIOCounters(IndexParam2, &iocounters2);
ull1 = iocounters1.WriteTransferCount; ull1 = iocounters1.WriteTransferCount;
ull2 = iocounters2.WriteTransferCount; ull2 = iocounters2.WriteTransferCount;
ret = CMP(ull1, ull2); ret = CMP(ull1, ull2);
} }
else if (TaskManagerSettings.SortColumn == COLUMN_IOOTHERBYTES) else if (TaskManagerSettings.SortColumn == COLUMN_IOOTHERBYTES)
{ {
PerfDataGetIOCounters(Param1->Index, &iocounters1); PerfDataGetIOCounters(IndexParam1, &iocounters1);
PerfDataGetIOCounters(Param2->Index, &iocounters2); PerfDataGetIOCounters(IndexParam2, &iocounters2);
ull1 = iocounters1.OtherTransferCount; ull1 = iocounters1.OtherTransferCount;
ull2 = iocounters2.OtherTransferCount; ull2 = iocounters2.OtherTransferCount;
ret = CMP(ull1, ull2); ret = CMP(ull1, ull2);

View file

@ -869,6 +869,7 @@ void TaskManager_OnTabWndSelChange(void)
HMENU hViewMenu; HMENU hViewMenu;
HMENU hSubMenu; HMENU hSubMenu;
WCHAR szTemp[256]; WCHAR szTemp[256];
SYSTEM_INFO sysInfo;
hMenu = GetMenu(hMainWnd); hMenu = GetMenu(hMainWnd);
hViewMenu = GetSubMenu(hMenu, 2); hViewMenu = GetSubMenu(hMenu, 2);
@ -947,16 +948,28 @@ void TaskManager_OnTabWndSelChange(void)
DeleteMenu(hMenu, 3, MF_BYPOSITION); DeleteMenu(hMenu, 3, MF_BYPOSITION);
DrawMenuBar(hMainWnd); DrawMenuBar(hMainWnd);
} }
hSubMenu = CreatePopupMenu();
LoadStringW(hInst, IDS_MENU_ONEGRAPHALLCPUS, szTemp, 256); GetSystemInfo(&sysInfo);
AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, szTemp);
LoadStringW(hInst, IDS_MENU_ONEGRAPHPERCPU, szTemp, 256); /* Hide CPU graph options on single CPU systems */
AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, szTemp); if (sysInfo.dwNumberOfProcessors > 1)
{
hSubMenu = CreatePopupMenu();
LoadStringW(hInst, IDS_MENU_CPUHISTORY, szTemp, 256); LoadStringW(hInst, IDS_MENU_ONEGRAPHALLCPUS, szTemp, 256);
AppendMenuW(hViewMenu, MF_STRING|MF_POPUP, (UINT_PTR) hSubMenu, szTemp); AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, szTemp);
LoadStringW(hInst, IDS_MENU_ONEGRAPHPERCPU, szTemp, 256);
AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, szTemp);
LoadStringW(hInst, IDS_MENU_CPUHISTORY, szTemp, 256);
AppendMenuW(hViewMenu, MF_STRING|MF_POPUP, (UINT_PTR) hSubMenu, szTemp);
if (TaskManagerSettings.CPUHistory_OneGraphPerCPU)
CheckMenuRadioItem(hSubMenu, ID_VIEW_CPUHISTORY_ONEGRAPHALL, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, MF_BYCOMMAND);
else
CheckMenuRadioItem(hSubMenu, ID_VIEW_CPUHISTORY_ONEGRAPHALL, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, ID_VIEW_CPUHISTORY_ONEGRAPHALL, MF_BYCOMMAND);
}
LoadStringW(hInst, IDS_MENU_SHOWKERNELTIMES, szTemp, 256); LoadStringW(hInst, IDS_MENU_SHOWKERNELTIMES, szTemp, 256);
AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_SHOWKERNELTIMES, szTemp); AppendMenuW(hViewMenu, MF_STRING, ID_VIEW_SHOWKERNELTIMES, szTemp);
@ -965,10 +978,7 @@ void TaskManager_OnTabWndSelChange(void)
CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_CHECKED); CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_CHECKED);
else else
CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_UNCHECKED); CheckMenuItem(hViewMenu, ID_VIEW_SHOWKERNELTIMES, MF_BYCOMMAND|MF_UNCHECKED);
if (TaskManagerSettings.CPUHistory_OneGraphPerCPU)
CheckMenuRadioItem(hSubMenu, ID_VIEW_CPUHISTORY_ONEGRAPHALL, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, MF_BYCOMMAND);
else
CheckMenuRadioItem(hSubMenu, ID_VIEW_CPUHISTORY_ONEGRAPHALL, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, ID_VIEW_CPUHISTORY_ONEGRAPHALL, MF_BYCOMMAND);
/* /*
* Give the tab control focus * Give the tab control focus
*/ */

View file

@ -492,7 +492,7 @@ static int comp_FindSubFile(void *p, const void *key,
int leaf, void** next) int leaf, void** next)
{ {
*next = (char *)p+strlen(p)+(leaf?5:3); *next = (char *)p+strlen(p)+(leaf?5:3);
WINE_TRACE("Comparing '%s' with '%s'\n", (char *)p, (char *)key); WINE_TRACE("Comparing '%s' with '%s'\n", (char *)p, (const char *)key);
return strcmp(p, key); return strcmp(p, key);
} }
@ -1601,7 +1601,7 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd,
case 0xEE: case 0xEE:
case 0xEF: case 0xEF:
{ {
char* ptr = (char*) format + 8; const char* ptr = (const char*) format + 8;
BYTE type = format[3]; BYTE type = format[3];
int wnd = -1; int wnd = -1;

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="winver" type="win32gui" installbase="system32" installname="winver.exe" unicode="yes"> <module name="winver" type="win32gui" installbase="system32" installname="winver.exe" unicode="yes">
<include base="winver">.</include> <include base="winver">.</include>
<library>shell32</library> <library>shell32</library>

View file

@ -1,5 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
<group> <group>
<module name="rpcss" type="win32cui" installbase="system32" installname="rpcss.exe" unicode="yes"> <module name="rpcss" type="win32cui" installbase="system32" installname="rpcss.exe" unicode="yes">
<include base="rpcss">.</include> <include base="rpcss">.</include>

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="telnetd" type="win32cui" installbase="system32" installname="telnetd.exe" unicode="no"> <module name="telnetd" type="win32cui" installbase="system32" installname="telnetd.exe" unicode="no">
<include base="reactos"></include> <include base="reactos"></include>
<include base="telnetd">..</include> <include base="telnetd">..</include>

View file

@ -1,11 +1,11 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="tftpd" type="win32cui" installbase="system32" installname="tftpd.exe" allowwarnings="true" unicode="no"> <module name="tftpd" type="win32cui" installbase="system32" installname="tftpd.exe" allowwarnings="true" unicode="no">
<include base="reactos"></include> <include base="reactos"></include>
<include base="telnetd">..</include> <include base="telnetd">..</include>
<library>ntdll</library> <library>ntdll</library>
<library>advapi32</library> <library>advapi32</library>
<library>ws2_32</library> <library>ws2_32</library>
<library>wine</library> <library>wine</library>
<file>tftpd.cpp</file> <file>tftpd.cpp</file>
</module> </module>

View file

@ -428,7 +428,7 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
/* ReactOS_KdSerial */ /* ReactOS_KdSerial */
CreateFreeLoaderEntry(IniCache, IniSection, CreateFreeLoaderEntry(IniCache, IniSection,
L"ReactOS_KdSerial", L"\"ReactOS (RosDbg)\"", L"ReactOS_KdSerial", L"\"ReactOS (RosDbg)\"",
L"ReactOS", ArcPath, L"Windows2003", ArcPath,
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL"); L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL");
/* ReactOS_LogFile */ /* ReactOS_LogFile */

View file

@ -111,7 +111,7 @@ DetectVMware(int *Version)
/* try to open the file */ /* try to open the file */
static BOOL static BOOL
FileExists(WCHAR *Path, WCHAR *File) DoesFileExist(WCHAR *Path, WCHAR *File)
{ {
WCHAR FileName[MAX_PATH + 1]; WCHAR FileName[MAX_PATH + 1];
HANDLE FileHandle; HANDLE FileHandle;
@ -195,9 +195,9 @@ IsVMwareCDInDrive(WCHAR *Drv)
continue; continue;
} }
if(FileExists(SrcPath, vmx_fb) && if(DoesFileExist(SrcPath, vmx_fb) &&
(FileExists(SrcPath, vmx_mode) || FileExists(SrcPath, vmx_mode_v6)) && (DoesFileExist(SrcPath, vmx_mode) || DoesFileExist(SrcPath, vmx_mode_v6)) &&
FileExists(SrcPath, vmx_svga)) DoesFileExist(SrcPath, vmx_svga))
{ {
*Drv = Current; *Drv = Current;
return TRUE; return TRUE;
@ -1070,9 +1070,9 @@ wWinMain(HINSTANCE hInstance,
SetCurrentDirectory(DestinationPath); SetCurrentDirectory(DestinationPath);
DriverFilesFound = FileExists(DestinationPath, vmx_fb) && DriverFilesFound = DoesFileExist(DestinationPath, vmx_fb) &&
FileExists(DestinationPath, vmx_mode) && DoesFileExist(DestinationPath, vmx_mode) &&
FileExists(DestinationDriversPath, vmx_svga); DoesFileExist(DestinationDriversPath, vmx_svga);
StartVMwConfigWizard = DriverFilesFound && IsVmwSVGAEnabled(); StartVMwConfigWizard = DriverFilesFound && IsVmwSVGAEnabled();

View file

@ -166,7 +166,7 @@ VOID ConOutChar (TCHAR c)
VOID ConPuts(LPTSTR szText, DWORD nStdHandle) VOID ConPuts(LPTSTR szText, DWORD nStdHandle)
{ {
ConWrite(szText, _tcslen(szText), nStdHandle); ConWrite(szText, _tcslen(szText), nStdHandle);
ConWrite(_T("\n"), 1, nStdHandle); ConWrite(_T("\r\n"), 2, nStdHandle);
} }
VOID ConOutResPaging(BOOL NewPage, UINT resID) VOID ConOutResPaging(BOOL NewPage, UINT resID)

View file

@ -703,7 +703,7 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
LastSpace = i; LastSpace = i;
} }
/* insert the quoation and move things around */ /* insert the quotation and move things around */
if(szPrefix[LastSpace + 1] != _T('\"') && LastSpace != -1) if(szPrefix[LastSpace + 1] != _T('\"') && LastSpace != -1)
{ {
memmove ( &szPrefix[LastSpace+1], &szPrefix[LastSpace], (_tcslen(szPrefix)-LastSpace+1) * sizeof(TCHAR) ); memmove ( &szPrefix[LastSpace+1], &szPrefix[LastSpace], (_tcslen(szPrefix)-LastSpace+1) * sizeof(TCHAR) );
@ -712,14 +712,17 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
{ {
_tcscat(szPrefix,_T("\"")); _tcscat(szPrefix,_T("\""));
} }
szPrefix[LastSpace + 1] = _T('\"'); szPrefix[LastSpace + 1] = _T('\"');
} }
else if(LastSpace == -1) else if(LastSpace == -1)
{ {
_tcscpy(szBaseWord,_T("\"")); /* Add quotation only if none exists already */
_tcscat(szBaseWord,szPrefix); if (szPrefix[0] != _T('\"'))
_tcscpy(szPrefix,szBaseWord); {
_tcscpy(szBaseWord,_T("\""));
_tcscat(szBaseWord,szPrefix);
_tcscpy(szPrefix,szBaseWord);
}
} }
} }

View file

@ -363,6 +363,12 @@ _tmain(int argc, TCHAR *argv[])
PrintWin32Error( szMsg, GetLastError()); PrintWin32Error( szMsg, GetLastError());
return -1; return -1;
} }
else if ( driveType == 1 )
{
LoadString( GetModuleHandle(NULL), STRING_NO_VOLUME, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
PrintWin32Error( szMsg, GetLastError());
return -1;
}
if( driveType != DRIVE_FIXED ) { if( driveType != DRIVE_FIXED ) {
LoadString( GetModuleHandle(NULL), STRING_INSERT_DISK, (LPTSTR) szMsg,RC_STRING_MAX_SIZE); LoadString( GetModuleHandle(NULL), STRING_INSERT_DISK, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);

View file

@ -1,3 +1,5 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="runonce" type="win32gui" installbase="system32" installname="runonce.exe" unicode="yes"> <module name="runonce" type="win32gui" installbase="system32" installname="runonce.exe" unicode="yes">
<include base="runonce">.</include> <include base="runonce">.</include>
<library>advapi32</library> <library>advapi32</library>

View file

@ -1,12 +1,14 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<if property="ARCH" value="i386> <group xmlns:xi="http://www.w3.org/2001/XInclude">
<if property="ARCH" value="i386">
<module name="bootcd" type="iso" output="ReactOS.iso"> <module name="bootcd" type="iso" output="ReactOS.iso">
<bootsector>isoboot</bootsector> <bootsector>isoboot</bootsector>
</module> </module>
</if> </if>
<ifnot property="ARCH" value="i386> <ifnot property="ARCH" value="i386">
<module name="bootcd" type="iso" output="ReactOS-$(ARCH).iso"> <module name="bootcd" type="iso" output="ReactOS-$(ARCH).iso">
<bootsector>isoboot</bootsector> <bootsector>isoboot</bootsector>
</module> </module>
</ifnot> </ifnot>
</group>

View file

@ -1,12 +1,14 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<if property="ARCH" value="i386> <group xmlns:xi="http://www.w3.org/2001/XInclude">
<if property="ARCH" value="i386">
<module name="livecd" type="liveiso" output="ReactOS-LiveCD.iso"> <module name="livecd" type="liveiso" output="ReactOS-LiveCD.iso">
<bootsector>isoboot</bootsector> <bootsector>isoboot</bootsector>
</module> </module>
</if> </if>
<ifnot property="ARCH" value="i386> <ifnot property="ARCH" value="i386">
<module name="livecd" type="liveiso" output="ReactOS-LiveCD-$(ARCH).iso"> <module name="livecd" type="liveiso" output="ReactOS-LiveCD-$(ARCH).iso">
<bootsector>isoboot</bootsector> <bootsector>isoboot</bootsector>
</module> </module>
</ifnot> </ifnot>
</group>

View file

@ -489,8 +489,6 @@ drivers\base\nmidebug\nmidebug.sys 2
drivers\battery\battc\battc.sys 2 drivers\battery\battc\battc.sys 2
drivers\bus\isapnp\isapnp.sys 2
drivers\bus\acpi\cmbatt\cmbatt.sys 2 drivers\bus\acpi\cmbatt\cmbatt.sys 2
drivers\bus\acpi\compbatt\compbatt.sys 2 drivers\bus\acpi\compbatt\compbatt.sys 2

View file

@ -22,6 +22,7 @@ c_1252.nls=,,,,,,,,,,,,2
cdfs.sys=,,,,,,x,,,,,,4 cdfs.sys=,,,,,,x,,,,,,4
cdrom.sys=,,,,,,x,,,,,,4 cdrom.sys=,,,,,,x,,,,,,4
class2.sys=,,,,,,x,,,,,,4 class2.sys=,,,,,,x,,,,,,4
isapnp.sys=,,,,,,,,,,,,4
kdcom.dll=,,,,,,,,,,,,2 kdcom.dll=,,,,,,,,,,,,2
disk.sys=,,,,,,x,,,,,,4 disk.sys=,,,,,,x,,,,,,4
floppy.sys=,,,,,,x,,,,,,4 floppy.sys=,,,,,,x,,,,,,4
@ -36,13 +37,16 @@ ramdisk.sys=,,,,,,x,,,,,,4
ext2.sys=,,,,,,x,,,,,,4 ext2.sys=,,,,,,x,,,,,,4
[HardwareIdsDatabase] [HardwareIdsDatabase]
*PNP0C08 = acpi ;*PNP0A00 = isapnp
*PNP0A03 = pci *PNP0A03 = pci
*PNP0C08 = acpi
;PCI\CC_0601 = isapnp
PCI\CC_0604 = pci PCI\CC_0604 = pci
[BootBusExtenders.Load] [BootBusExtenders.Load]
acpi = acpi.sys acpi = acpi.sys
pci = pci.sys pci = pci.sys
isapnp = isapnp.sys
[Cabinets] [Cabinets]
Cabinet=reactos.cab Cabinet=reactos.cab
@ -76,7 +80,7 @@ hal.dll=,,,,,,,,,,,,2
[Files.pci_mp] [Files.pci_mp]
ntkrnlmp.exe=,,,,,,,,,,ntoskrnl.exe,,2 ntkrnlmp.exe=,,,,,,,,,,ntoskrnl.exe,,2
halmp.dll=,,,,,,,,,,hal.dll,,2 halmps.dll=,,,,,,,,,,hal.dll,,2
[Display] [Display]
;<id> = <user friendly name>,<spare>,<service key name>,<hight>,<width>,<bpp> ;<id> = <user friendly name>,<spare>,<service key name>,<hight>,<width>,<bpp>

View file

@ -21,7 +21,7 @@ RealEntryPoint:
mov ss, ax mov ss, ax
/* checkPoint Charlie - where it all began... */ /* checkPoint Charlie - where it all began... */
mov si, offset _CheckPoint0 mov si, offset CheckPoint0
call writestr call writestr
/* Setup a real mode stack */ /* Setup a real mode stack */
@ -29,14 +29,14 @@ RealEntryPoint:
/* Zero BootDrive and BootPartition */ /* Zero BootDrive and BootPartition */
xor eax, eax xor eax, eax
mov _BootDrive, eax mov BootDrive, eax
mov _BootPartition, eax mov BootPartition, eax
/* Store the boot drive */ /* Store the boot drive */
mov _BootDrive, dl mov BootDrive, dl
/* Store the boot partition */ /* Store the boot partition */
mov _BootPartition, dh mov BootPartition, dh
/* Load the GDT */ /* Load the GDT */
lgdt gdtptr lgdt gdtptr
@ -46,13 +46,13 @@ RealEntryPoint:
call x86_16_EnableA20 call x86_16_EnableA20
/* checkPoint Charlie - where it all began... */ /* checkPoint Charlie - where it all began... */
mov si, offset _CheckPoint1 mov si, offset CheckPoint1
call writestr call writestr
call x86_16_BuildPageTables call x86_16_BuildPageTables
/* checkPoint Charlie - where it all began... */ /* checkPoint Charlie - where it all began... */
mov si, offset _CheckPoint2 mov si, offset CheckPoint2
call writestr call writestr
/* Check if CPU supports CPUID */ /* Check if CPU supports CPUID */
@ -89,26 +89,26 @@ RealEntryPoint:
/* X64 Processor */ /* X64 Processor */
/* checkPoint Charlie - where it all began... */ /* checkPoint Charlie - where it all began... */
mov si, offset _CheckPoint3 mov si, offset CheckPoint3
call writestr call writestr
jmp _switch64 jmp switch64
NO_X64_SUPPORT_DETECTED: NO_X64_SUPPORT_DETECTED:
mov si, offset _NotAnX64Processor // Loading message mov si, offset NotAnX64Processor // Loading message
call writestr call writestr
jmp _fail jmp fail
NO_CPUID_SUPPORT_DETECTED: NO_CPUID_SUPPORT_DETECTED:
mov si, offset _NoCPUIDSupport // Loading message mov si, offset NoCPUIDSupport // Loading message
call writestr call writestr
_fail: fail:
jmp _fail jmp fail
nop nop
nop nop
_switch64: switch64:
call x86_16_SwitchToLong call x86_16_SwitchToLong
.code64 .code64
@ -119,7 +119,7 @@ _switch64:
/* GO! */ /* GO! */
xor rcx, rcx xor rcx, rcx
call _BootMain call BootMain
/* Checkpoint */ /* Checkpoint */
// mov ax, LMODE_DS // mov ax, LMODE_DS
@ -174,14 +174,14 @@ x86_16_BuildPageTables:
push es push es
/* Get segment of pml4 */ /* Get segment of pml4 */
mov eax, offset _pml4_startup mov eax, offset pml4_startup
shr eax, 4 shr eax, 4
mov es, ax mov es, ax
cld cld
xor di, di xor di, di
/* One entry in the PML4 pointing to PDP */ /* One entry in the PML4 pointing to PDP */
mov eax, offset _pdp_startup mov eax, offset pdp_startup
or eax, 0x00f or eax, 0x00f
stosd stosd
/* clear rest */ /* clear rest */
@ -190,7 +190,7 @@ x86_16_BuildPageTables:
rep stosd rep stosd
/* One entry in the PDP pointing to PD */ /* One entry in the PDP pointing to PD */
mov eax, offset _pd_startup mov eax, offset pd_startup
or eax, 0x00f or eax, 0x00f
stosd stosd
/* clear rest */ /* clear rest */
@ -268,7 +268,7 @@ x86_16_SwitchToLong:
mov eax, 0x00a0 // Set PAE and PGE: 10100000b mov eax, 0x00a0 // Set PAE and PGE: 10100000b
mov cr4, eax mov cr4, eax
mov edx, offset _pml4_startup // Point cr3 at PML4 mov edx, offset pml4_startup // Point cr3 at PML4
mov cr3, edx mov cr3, edx
mov ecx, 0xC0000080 // Specify EFER MSR mov ecx, 0xC0000080 // Specify EFER MSR
@ -405,42 +405,42 @@ gdtptr:
.long gdt /* Base Address */ .long gdt /* Base Address */
.global _BootDrive .global BootDrive
_BootDrive: BootDrive:
.long 0 .long 0
.global _BootPartition .global BootPartition
_BootPartition: BootPartition:
.long 0 .long 0
.global _NotAnX64Processor .global NotAnX64Processor
_NotAnX64Processor: NotAnX64Processor:
.ascii "FreeLoader: No x64-compatible CPU detected! Exiting..." .ascii "FreeLoader: No x64-compatible CPU detected! Exiting..."
.byte 0x0d, 0x0a, 0 .byte 0x0d, 0x0a, 0
.global _NoCPUIDSupport .global NoCPUIDSupport
_NoCPUIDSupport: NoCPUIDSupport:
.ascii "FreeLoader: No CPUID instruction support detected! Exiting..." .ascii "FreeLoader: No CPUID instruction support detected! Exiting..."
.byte 0x0d, 0x0a, 0 .byte 0x0d, 0x0a, 0
/////////////////////////// Checkpoint messages /////////////////////////////// /////////////////////////// Checkpoint messages ///////////////////////////////
.global _CheckPoint0 .global CheckPoint0
_CheckPoint0: CheckPoint0:
.ascii "Starting FreeLoader..." .ascii "Starting FreeLoader..."
.byte 0x0d, 0x0a, 0 .byte 0x0d, 0x0a, 0
.global _CheckPoint1 .global CheckPoint1
_CheckPoint1: CheckPoint1:
.ascii "FreeLoader[16-bit]: building page tables..." .ascii "FreeLoader[16-bit]: building page tables..."
.byte 0x0d, 0x0a, 0 .byte 0x0d, 0x0a, 0
.global _CheckPoint2 .global CheckPoint2
_CheckPoint2: CheckPoint2:
.ascii "FreeLoader[16-bit]: checking CPU for x64 long mode..." .ascii "FreeLoader[16-bit]: checking CPU for x64 long mode..."
.byte 0x0d, 0x0a, 0 .byte 0x0d, 0x0a, 0
.global _CheckPoint3 .global CheckPoint3
_CheckPoint3: CheckPoint3:
.ascii "FreeLoader: Switching to x64 long mode..." .ascii "FreeLoader: Switching to x64 long mode..."
.byte 0x0d, 0x0a, 0 .byte 0x0d, 0x0a, 0

View file

@ -24,14 +24,14 @@
#include <arch.h> #include <arch.h>
EXTERN(_ChainLoadBiosBootSectorCode) EXTERN(ChainLoadBiosBootSectorCode)
.code64 .code64
call x86_64_SwitchToReal call x86_64_SwitchToReal
.code16 .code16
/* Set the boot drive */ /* Set the boot drive */
mov dl, _BootDrive mov dl, BootDrive
/* Load segment registers */ /* Load segment registers */
cli cli
@ -46,7 +46,7 @@ EXTERN(_ChainLoadBiosBootSectorCode)
// ljmpl $0x0000,$0x7C00 // ljmpl $0x0000,$0x7C00
jmp 0x7c00:0x0000 jmp 0x7c00:0x0000
EXTERN(_SoftReboot) EXTERN(SoftReboot)
.code64 .code64
call x86_64_SwitchToReal call x86_64_SwitchToReal

View file

@ -24,7 +24,7 @@
#include <arch.h> #include <arch.h>
EXTERN(_DriveMapInt13HandlerStart) EXTERN(DriveMapInt13HandlerStart)
Int13Handler: Int13Handler:
pushw %bp pushw %bp
@ -82,7 +82,7 @@ CallOldInt13Handler:
/* Call old int 13h handler with new drive number */ /* Call old int 13h handler with new drive number */
.byte 0x9a /* lcall */ .byte 0x9a /* lcall */
EXTERN(_DriveMapOldInt13HandlerAddress) EXTERN(DriveMapOldInt13HandlerAddress)
.word 0 .word 0
.word 0 .word 0
@ -105,7 +105,7 @@ CallersFlags:
PassedInDriveNumber: PassedInDriveNumber:
.byte 0 .byte 0
EXTERN(_DriveMapInt13HandlerMapList) EXTERN(DriveMapInt13HandlerMapList)
Int13HandlerMapCount: Int13HandlerMapCount:
.byte 0 .byte 0
@ -129,4 +129,4 @@ Int13HandlerDrive4:
Int13HandlerDriveNew4: Int13HandlerDriveNew4:
.byte 0 .byte 0
EXTERN(_DriveMapInt13HandlerEnd) EXTERN(DriveMapInt13HandlerEnd)

View file

@ -33,7 +33,7 @@
* 0x00000400: Found 80486 CPU without CPUID support * 0x00000400: Found 80486 CPU without CPUID support
*/ */
EXTERN(_CpuidSupported) EXTERN(CpuidSupported)
.code32 .code32
pushl %ecx /* save ECX */ pushl %ecx /* save ECX */
@ -80,7 +80,7 @@ NoCpuid:
* VOID GetCpuid(U32 Level, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx); * VOID GetCpuid(U32 Level, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx);
*/ */
EXTERN(_GetCpuid) EXTERN(GetCpuid)
.code32 .code32
pushl %ebp pushl %ebp
@ -123,7 +123,7 @@ EXTERN(_GetCpuid)
* U64 RDTSC(VOID); * U64 RDTSC(VOID);
*/ */
EXTERN(_RDTSC) EXTERN(RDTSC)
.code32 .code32
rdtsc rdtsc
ret ret

View file

@ -35,7 +35,7 @@ _pnp_bios_entry_point:
_pnp_bios_data_segment: _pnp_bios_data_segment:
.word 0 .word 0
EXTERN(_PnpBiosSupported) EXTERN(PnpBiosSupported)
.code64 .code64
push rdi push rdi
@ -113,7 +113,7 @@ _pnp_node_size:
_pnp_node_count: _pnp_node_count:
.word 0 .word 0
EXTERN(_PnpBiosGetDeviceNodeCount) EXTERN(PnpBiosGetDeviceNodeCount)
.code64 .code64
push rbp push rbp
@ -182,7 +182,7 @@ _pnp_buffer_offset:
_pnp_node_number: _pnp_node_number:
.byte 0 .byte 0
EXTERN(_PnpBiosGetDeviceNode) EXTERN(PnpBiosGetDeviceNode)
.code64 .code64
push rbp push rbp

View file

@ -273,7 +273,7 @@ i386CommonExceptionHandler:
SAVE_CPU_REGS SAVE_CPU_REGS
pushl $SCREEN_ATTR pushl $SCREEN_ATTR
call _MachVideoClearScreen call MachVideoClearScreen
add $4,%esp add $4,%esp
movl $i386ExceptionHandlerText,%esi movl $i386ExceptionHandlerText,%esi
@ -485,7 +485,7 @@ i386PrintChar:
pushl $SCREEN_ATTR pushl $SCREEN_ATTR
andl $0xff,%eax andl $0xff,%eax
pushl %eax pushl %eax
call _MachVideoPutChar call MachVideoPutChar
addl $16,%esp addl $16,%esp
ret ret

View file

@ -63,7 +63,7 @@ Int386_regsout:
/* /*
* int Int386(int ivec, REGS* in, REGS* out); * int Int386(int ivec, REGS* in, REGS* out);
*/ */
EXTERN(_Int386) EXTERN(Int386)
.code64 .code64
/* Get the function parameters */ /* Get the function parameters */

View file

@ -39,33 +39,6 @@ EnableA20()
/* Already done */ /* Already done */
} }
void
DumpLoaderBlock()
{
DbgPrint("LoaderBlock @ %p.\n", &LoaderBlock);
DbgPrint("Flags = 0x%x.\n", LoaderBlock.Flags);
DbgPrint("MemLower = 0x%p.\n", (PVOID)LoaderBlock.MemLower);
DbgPrint("MemHigher = 0x%p.\n", (PVOID)LoaderBlock.MemHigher);
DbgPrint("BootDevice = 0x%x.\n", LoaderBlock.BootDevice);
DbgPrint("CommandLine = %s.\n", LoaderBlock.CommandLine);
DbgPrint("ModsCount = 0x%x.\n", LoaderBlock.ModsCount);
DbgPrint("ModsAddr = 0x%p.\n", LoaderBlock.ModsAddr);
DbgPrint("Syms = 0x%s.\n", LoaderBlock.Syms);
DbgPrint("MmapLength = 0x%x.\n", LoaderBlock.MmapLength);
DbgPrint("MmapAddr = 0x%p.\n", (PVOID)LoaderBlock.MmapAddr);
DbgPrint("RdLength = 0x%x.\n", LoaderBlock.RdLength);
DbgPrint("RdAddr = 0x%p.\n", (PVOID)LoaderBlock.RdAddr);
DbgPrint("DrivesCount = 0x%x.\n", LoaderBlock.DrivesCount);
DbgPrint("DrivesAddr = 0x%p.\n", (PVOID)LoaderBlock.DrivesAddr);
DbgPrint("ConfigTable = 0x%x.\n", LoaderBlock.ConfigTable);
DbgPrint("BootLoaderName = 0x%x.\n", LoaderBlock.BootLoaderName);
DbgPrint("PageDirectoryStart = 0x%p.\n", (PVOID)LoaderBlock.PageDirectoryStart);
DbgPrint("PageDirectoryEnd = 0x%p.\n", (PVOID)LoaderBlock.PageDirectoryEnd);
DbgPrint("KernelBase = 0x%p.\n", (PVOID)LoaderBlock.KernelBase);
DbgPrint("ArchExtra = 0x%p.\n", (PVOID)LoaderBlock.ArchExtra);
}
/*++ /*++
* FrLdrStartup * FrLdrStartup
* INTERNAL * INTERNAL
@ -86,222 +59,7 @@ VOID
NTAPI NTAPI
FrLdrStartup(ULONG Magic) FrLdrStartup(ULONG Magic)
{ {
/* Disable Interrupts */ DbgPrint("ReactOS loader is unsupported! Halting.\n", KernelEntryPoint);
_disable(); for(;;);
/* Re-initalize EFLAGS */
__writeeflags(0);
/* Initialize the page directory */
FrLdrSetupPageDirectory();
/* Set the new PML4 */
__writecr3((ULONGLONG)pPML4);
FrLdrSetupGdtIdt();
LoaderBlock.FrLdrDbgPrint = DbgPrint;
// DumpLoaderBlock();
DbgPrint("Jumping to kernel @ %p.\n", KernelEntryPoint);
/* Jump to Kernel */
(*KernelEntryPoint)(Magic, &LoaderBlock);
} }
PPAGE_DIRECTORY_AMD64
FrLdrGetOrCreatePageDir(PPAGE_DIRECTORY_AMD64 pDir, ULONG Index)
{
PPAGE_DIRECTORY_AMD64 pSubDir;
if (!pDir)
return NULL;
if (!pDir->Pde[Index].Valid)
{
pSubDir = MmAllocateMemoryWithType(PAGE_SIZE, LoaderSpecialMemory);
if (!pSubDir)
return NULL;
RtlZeroMemory(pSubDir, PAGE_SIZE);
pDir->Pde[Index].PageFrameNumber = PtrToPfn(pSubDir);
pDir->Pde[Index].Valid = 1;
pDir->Pde[Index].Write = 1;
}
else
{
pSubDir = (PPAGE_DIRECTORY_AMD64)((ULONGLONG)(pDir->Pde[Index].PageFrameNumber) * PAGE_SIZE);
}
return pSubDir;
}
BOOLEAN
FrLdrMapSinglePage(ULONGLONG VirtualAddress, ULONGLONG PhysicalAddress)
{
PPAGE_DIRECTORY_AMD64 pDir3, pDir2, pDir1;
ULONG Index;
pDir3 = FrLdrGetOrCreatePageDir(pPML4, VAtoPXI(VirtualAddress));
pDir2 = FrLdrGetOrCreatePageDir(pDir3, VAtoPPI(VirtualAddress));
pDir1 = FrLdrGetOrCreatePageDir(pDir2, VAtoPDI(VirtualAddress));
if (!pDir1)
return FALSE;
Index = VAtoPTI(VirtualAddress);
if (pDir1->Pde[Index].Valid)
{
return FALSE;
}
pDir1->Pde[Index].Valid = 1;
pDir1->Pde[Index].Write = 1;
pDir1->Pde[Index].PageFrameNumber = PhysicalAddress / PAGE_SIZE;
return TRUE;
}
ULONG
FrLdrMapRangeOfPages(ULONGLONG VirtualAddress, ULONGLONG PhysicalAddress, ULONG cPages)
{
ULONG i;
for (i = 0; i < cPages; i++)
{
if (!FrLdrMapSinglePage(VirtualAddress, PhysicalAddress))
{
return i;
}
VirtualAddress += PAGE_SIZE;
PhysicalAddress += PAGE_SIZE;
}
return i;
}
/*++
* FrLdrSetupPageDirectory
* INTERNAL
*
* Sets up the ReactOS Startup Page Directory.
*
* Params:
* None.
*
* Returns:
* None.
*--*/
VOID
FASTCALL
FrLdrSetupPageDirectory(VOID)
{
ULONG KernelPages;
PVOID UserSharedData;
/* Allocate a Page for the PML4 */
pPML4 = MmAllocateMemoryWithType(PAGE_SIZE, LoaderSpecialMemory);
ASSERT(pPML4);
/* The page tables are located at 0xfffff68000000000
* We create a recursive self mapping through all 4 levels at
* virtual address 0xfffff6fb7dbedf68 */
pPML4->Pde[VAtoPXI(PXE_BASE)].Valid = 1;
pPML4->Pde[VAtoPXI(PXE_BASE)].Write = 1;
pPML4->Pde[VAtoPXI(PXE_BASE)].PageFrameNumber = PtrToPfn(pPML4);
/* Setup low memory pages */
if (FrLdrMapRangeOfPages(0, 0, 1024) < 1024)
{
DbgPrint("Could not map low memory pages.\n");
}
/* Setup kernel pages */
KernelPages = (ROUND_TO_PAGES(NextModuleBase - KERNEL_BASE_PHYS) / PAGE_SIZE);
if (FrLdrMapRangeOfPages(KernelBase, KERNEL_BASE_PHYS, KernelPages) != KernelPages)
{
DbgPrint("Could not map %d kernel pages.\n", KernelPages);
}
/* Setup a page for the idt */
pIdt = MmAllocateMemoryWithType(PAGE_SIZE, LoaderSpecialMemory);
IdtBase = KernelBase + KernelPages * PAGE_SIZE;
if (!FrLdrMapSinglePage(IdtBase, (ULONGLONG)pIdt))
{
DbgPrint("Could not map idt page.\n", KernelPages);
}
/* Setup a page for the gdt & tss */
pGdt = MmAllocateMemoryWithType(PAGE_SIZE, LoaderSpecialMemory);
GdtBase = IdtBase + PAGE_SIZE;
TssBase = GdtBase + 20 * sizeof(ULONG64); // FIXME: don't hardcode
if (!FrLdrMapSinglePage(GdtBase, (ULONGLONG)pGdt))
{
DbgPrint("Could not map gdt page.\n", KernelPages);
}
/* Setup KUSER_SHARED_DATA page */
UserSharedData = MmAllocateMemoryWithType(PAGE_SIZE, LoaderSpecialMemory);
if (!FrLdrMapSinglePage(KI_USER_SHARED_DATA, (ULONG64)UserSharedData))
{
DbgPrint("Could not map KUSER_SHARED_DATA page.\n", KernelPages);
}
/* Map APIC page */
if (!FrLdrMapSinglePage(APIC_BASE, APIC_PHYS_BASE))
{
DbgPrint("Could not map APIC page.\n");
}
}
VOID
FrLdrSetupGdtIdt()
{
PKGDTENTRY64 Entry;
KDESCRIPTOR Desc;
RtlZeroMemory(pGdt, PAGE_SIZE);
/* Setup KGDT_64_R0_CODE */
Entry = KiGetGdtEntry(pGdt, KGDT_64_R0_CODE);
*(PULONG64)Entry = 0x00209b0000000000ULL;
/* Setup KGDT_64_R0_SS */
Entry = KiGetGdtEntry(pGdt, KGDT_64_R0_SS);
*(PULONG64)Entry = 0x00cf93000000ffffULL;
/* Setup KGDT_64_DATA */
Entry = KiGetGdtEntry(pGdt, KGDT_64_DATA);
*(PULONG64)Entry = 0x00cff3000000ffffULL;
/* Setup KGDT_64_R3_CODE */
Entry = KiGetGdtEntry(pGdt, KGDT_64_R3_CODE);
*(PULONG64)Entry = 0x0020fb0000000000ULL;
/* Setup KGDT_32_R3_TEB */
Entry = KiGetGdtEntry(pGdt, KGDT_32_R3_TEB);
*(PULONG64)Entry = 0xff40f3fd50003c00ULL;
/* Setup TSS entry */
Entry = KiGetGdtEntry(pGdt, KGDT_TSS);
KiInitGdtEntry(Entry, TssBase, sizeof(KTSS), I386_TSS, 0);
/* Setup the gdt descriptor */
Desc.Limit = 12 * sizeof(ULONG64) - 1;
Desc.Base = (PVOID)GdtBase;
/* Set the new Gdt */
__lgdt(&Desc.Limit);
DbgPrint("Gdtr.Base = %p\n", Desc.Base);
/* Setup the idt descriptor */
Desc.Limit = 12 * sizeof(ULONG64) - 1;
Desc.Base = (PVOID)IdtBase;
/* Set the new Idt */
__lidt(&Desc.Limit);
DbgPrint("Idtr.Base = %p\n", Desc.Base);
}

View file

@ -29,35 +29,35 @@
* This boots the kernel * This boots the kernel
*/ */
.code64 .code64
.globl _PageDirectoryStart .globl PageDirectoryStart
.globl _pml4_startup .globl pml4_startup
.globl _pdp_startup .globl pdp_startup
.globl _pd_startup .globl pd_startup
.globl _PageDirectoryEnd .globl PageDirectoryEnd
// //
// Boot information structure // Boot information structure
// //
EXTERN(_reactos_memory_map_descriptor_size) EXTERN(reactos_memory_map_descriptor_size)
.long 0 .long 0
EXTERN(_reactos_memory_map) EXTERN(reactos_memory_map)
.rept (32 * /*sizeof(memory_map_t)*/24) .rept (32 * /*sizeof(memory_map_t)*/24)
.byte 0 .byte 0
.endr .endr
.bss .bss
_PageDirectoryStart: PageDirectoryStart:
_pml4_startup: pml4_startup:
.fill 4096, 1, 0 .fill 4096, 1, 0
_pdp_startup: pdp_startup:
.fill 4096, 1, 0 .fill 4096, 1, 0
_pd_startup: pd_startup:
.fill 4096, 1, 0 .fill 4096, 1, 0
_PageDirectoryEnd: PageDirectoryEnd:

View file

@ -1419,10 +1419,10 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
/* Set Interrupt */ /* Set Interrupt */
PartialDescriptor = &PartialResourceList->PartialDescriptors[1]; PartialDescriptor = &PartialResourceList->PartialDescriptors[1];
PartialDescriptor->Type = CmResourceTypeInterrupt; PartialDescriptor->Type = CmResourceTypeInterrupt;
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined; PartialDescriptor->ShareDisposition = CmResourceShareShared;
PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED; PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED;
PartialDescriptor->u.Interrupt.Level = Irq[i]; PartialDescriptor->u.Interrupt.Level = Irq[i];
PartialDescriptor->u.Interrupt.Vector = 0; PartialDescriptor->u.Interrupt.Vector = Irq[i];
PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF; PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
/* Set serial data (device specific) */ /* Set serial data (device specific) */
@ -1529,7 +1529,7 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined; PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED; PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED;
PartialDescriptor->u.Interrupt.Level = Irq[i]; PartialDescriptor->u.Interrupt.Level = Irq[i];
PartialDescriptor->u.Interrupt.Vector = 0; PartialDescriptor->u.Interrupt.Vector = Irq[i];
PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF; PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
} }
@ -1715,7 +1715,7 @@ DetectKeyboardController(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined; PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED; PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED;
PartialDescriptor->u.Interrupt.Level = 1; PartialDescriptor->u.Interrupt.Level = 1;
PartialDescriptor->u.Interrupt.Vector = 0; PartialDescriptor->u.Interrupt.Vector = 1;
PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF; PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
/* Set IO Port 0x60 */ /* Set IO Port 0x60 */
@ -1887,7 +1887,7 @@ DetectPS2Mouse(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList.PartialDescriptors[0].ShareDisposition = CmResourceShareUndetermined; PartialResourceList.PartialDescriptors[0].ShareDisposition = CmResourceShareUndetermined;
PartialResourceList.PartialDescriptors[0].Flags = CM_RESOURCE_INTERRUPT_LATCHED; PartialResourceList.PartialDescriptors[0].Flags = CM_RESOURCE_INTERRUPT_LATCHED;
PartialResourceList.PartialDescriptors[0].u.Interrupt.Level = 12; PartialResourceList.PartialDescriptors[0].u.Interrupt.Level = 12;
PartialResourceList.PartialDescriptors[0].u.Interrupt.Vector = 0; PartialResourceList.PartialDescriptors[0].u.Interrupt.Vector = 12;
PartialResourceList.PartialDescriptors[0].u.Interrupt.Affinity = 0xFFFFFFFF; PartialResourceList.PartialDescriptors[0].u.Interrupt.Affinity = 0xFFFFFFFF;
/* Create controller key */ /* Create controller key */

View file

@ -1,5 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE directory SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="freeldr_arch" type="objectlibrary" crt="static"> <module name="freeldr_arch" type="objectlibrary" crt="static">
<include base="freeldr_base">include</include> <include base="freeldr_base">include</include>
<include base="freeldr_base">cache</include> <include base="freeldr_base">cache</include>

View file

@ -23,7 +23,9 @@
<file>disk.c</file> <file>disk.c</file>
<file>partition.c</file> <file>partition.c</file>
<file>ramdisk.c</file> <file>ramdisk.c</file>
<file>scsiport.c</file> <if property="ARCH" value="i386">
<file>scsiport.c</file>
</if>
</directory> </directory>
<directory name="fs"> <directory name="fs">
<file>ext2.c</file> <file>ext2.c</file>

View file

@ -45,7 +45,7 @@
#define HYPERSPACE_BASE 0xfffff70000000000ULL #define HYPERSPACE_BASE 0xfffff70000000000ULL
#define HAL_BASE 0xffffffff80000000ULL #define HAL_BASE 0xffffffff80000000ULL
#define APIC_BASE 0xfffffffffee00000ULL // FIXME #define APIC_BASE 0xFFFFFFFFFFFE0000ULL
#define APIC_PHYS_BASE 0xfee00000 #define APIC_PHYS_BASE 0xfee00000

View file

@ -252,28 +252,36 @@ WinLdrSetupGdt(PVOID GdtBase, ULONG64 TssBase)
PKGDTENTRY64 Entry; PKGDTENTRY64 Entry;
KDESCRIPTOR GdtDesc; KDESCRIPTOR GdtDesc;
/* Setup KGDT_64_R0_CODE */ /* Setup KGDT64_NULL */
Entry = KiGetGdtEntry(GdtBase, KGDT_64_R0_CODE); Entry = KiGetGdtEntry(GdtBase, KGDT64_NULL);
*(PULONG64)Entry = 0x0000000000000000ULL;
/* Setup KGDT64_R0_CODE */
Entry = KiGetGdtEntry(GdtBase, KGDT64_R0_CODE);
*(PULONG64)Entry = 0x00209b0000000000ULL; *(PULONG64)Entry = 0x00209b0000000000ULL;
/* Setup KGDT_64_R0_SS */ /* Setup KGDT64_R0_DATA */
Entry = KiGetGdtEntry(GdtBase, KGDT_64_R0_SS); Entry = KiGetGdtEntry(GdtBase, KGDT64_R0_DATA);
*(PULONG64)Entry = 0x00cf93000000ffffULL; *(PULONG64)Entry = 0x00cf93000000ffffULL;
/* Setup KGDT_64_DATA */ /* Setup KGDT64_R3_CMCODE */
Entry = KiGetGdtEntry(GdtBase, KGDT_64_DATA); Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_CMCODE);
*(PULONG64)Entry = 0x00cffb000000ffffULL;
/* Setup KGDT64_R3_DATA */
Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_DATA);
*(PULONG64)Entry = 0x00cff3000000ffffULL; *(PULONG64)Entry = 0x00cff3000000ffffULL;
/* Setup KGDT_64_R3_CODE */ /* Setup KGDT64_R3_CODE */
Entry = KiGetGdtEntry(GdtBase, KGDT_64_R3_CODE); Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_CODE);
*(PULONG64)Entry = 0x0020fb0000000000ULL; *(PULONG64)Entry = 0x0020fb0000000000ULL;
/* Setup KGDT_32_R3_TEB */ /* Setup KGDT64_R3_CMTEB */
Entry = KiGetGdtEntry(GdtBase, KGDT_32_R3_TEB); Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_CMTEB);
*(PULONG64)Entry = 0xff40f3fd50003c00ULL; *(PULONG64)Entry = 0xff40f3fd50003c00ULL;
/* Setup TSS entry */ /* Setup TSS entry */
Entry = KiGetGdtEntry(GdtBase, KGDT_TSS); Entry = KiGetGdtEntry(GdtBase, KGDT64_SYS_TSS);
KiInitGdtEntry(Entry, TssBase, sizeof(KTSS), I386_TSS, 0); KiInitGdtEntry(Entry, TssBase, sizeof(KTSS), I386_TSS, 0);
/* Setup GDT descriptor */ /* Setup GDT descriptor */
@ -333,15 +341,8 @@ WinLdrSetProcessorContext(PVOID GdtIdt, IN ULONG64 Pcr, IN ULONG64 Tss)
/* LDT is unused */ /* LDT is unused */
// __lldt(0); // __lldt(0);
/* Load selectors for DS/ES/FS/GS/SS */
Ke386SetDs(KGDT_64_DATA | RPL_MASK); // 0x2b
Ke386SetEs(KGDT_64_DATA | RPL_MASK); // 0x2b
Ke386SetFs(KGDT_32_R3_TEB | RPL_MASK); // 0x53
Ke386SetGs(KGDT_64_DATA | RPL_MASK); // 0x2b
Ke386SetSs(KGDT_64_R0_SS); // 0x18
/* Load TSR */ /* Load TSR */
__ltr(KGDT_TSS); __ltr(KGDT64_SYS_TSS);
DPRINTM(DPRINT_WINDOWS, "leave WinLdrSetProcessorContext\n"); DPRINTM(DPRINT_WINDOWS, "leave WinLdrSetProcessorContext\n");
} }

View file

@ -1,5 +1,4 @@
/* $Id$ /*
*
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Display Control Panel * PROJECT: ReactOS Display Control Panel
* FILE: lib/cpl/desk/appearance.c * FILE: lib/cpl/desk/appearance.c
@ -486,11 +485,17 @@ AppearancePage_OnDestroy(HWND hwndDlg, GLOBALS *g)
return TRUE; return TRUE;
} }
static void
UpdateSelectedThemeId(HWND hwndDlg, GLOBALS *g)
{
int sel;
sel = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETCURSEL, 0, 0);
g->Theme.Id = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETITEMDATA, (WPARAM)sel, 0);
}
INT_PTR CALLBACK INT_PTR CALLBACK
AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
INT i;
GLOBALS *g; GLOBALS *g;
LPNMHDR lpnm; LPNMHDR lpnm;
@ -538,8 +543,7 @@ AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ {
PropSheet_Changed(GetParent(hwndDlg), hwndDlg); PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
g->Theme.bHasChanged = TRUE; g->Theme.bHasChanged = TRUE;
i = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETCURSEL, 0, 0); UpdateSelectedThemeId(hwndDlg, g);
g->Theme.Id = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETITEMDATA, (WPARAM)i, 0);
LoadThemeFromReg(g); LoadThemeFromReg(g);
//SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, WM_PAINT, 0, 0); //SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_PREVIEW, WM_PAINT, 0, 0);
} }
@ -557,6 +561,7 @@ AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
case PSN_APPLY: case PSN_APPLY:
if (g->Theme.bHasChanged) if (g->Theme.bHasChanged)
{ {
UpdateSelectedThemeId(hwndDlg, g);
ApplyTheme(g); ApplyTheme(g);
} }
return TRUE; return TRUE;

View file

@ -94,14 +94,17 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
ZeroMemory(&listItem, sizeof(LV_ITEM)); ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
listItem.state = LVIS_SELECTED; listItem.state = 0;
listItem.pszText = backgroundItem->szDisplayName; listItem.pszText = backgroundItem->szDisplayName;
listItem.iImage = -1; listItem.iImage = -1;
listItem.iItem = pGlobalData->listViewItemCount; listItem.iItem = pGlobalData->listViewItemCount;
listItem.lParam = pGlobalData->listViewItemCount; listItem.lParam = pGlobalData->listViewItemCount;
(void)ListView_InsertItem(hwndBackgroundList, &listItem); (void)ListView_InsertItem(hwndBackgroundList, &listItem);
ListView_SetItemState(hwndBackgroundList, pGlobalData->listViewItemCount, LVIS_SELECTED, LVIS_SELECTED); ListView_SetItemState(hwndBackgroundList,
pGlobalData->listViewItemCount,
LVIS_SELECTED,
LVIS_SELECTED);
pGlobalData->listViewItemCount++; pGlobalData->listViewItemCount++;
@ -143,14 +146,17 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
ZeroMemory(&listItem, sizeof(LV_ITEM)); ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
listItem.state = LVIS_SELECTED; listItem.state = 0;
listItem.pszText = backgroundItem->szDisplayName; listItem.pszText = backgroundItem->szDisplayName;
listItem.iImage = sfi.iIcon; listItem.iImage = sfi.iIcon;
listItem.iItem = pGlobalData->listViewItemCount; listItem.iItem = pGlobalData->listViewItemCount;
listItem.lParam = pGlobalData->listViewItemCount; listItem.lParam = pGlobalData->listViewItemCount;
(void)ListView_InsertItem(hwndBackgroundList, &listItem); (void)ListView_InsertItem(hwndBackgroundList, &listItem);
ListView_SetItemState(hwndBackgroundList, pGlobalData->listViewItemCount, LVIS_SELECTED, LVIS_SELECTED); ListView_SetItemState(hwndBackgroundList,
pGlobalData->listViewItemCount,
LVIS_SELECTED,
LVIS_SELECTED);
pGlobalData->listViewItemCount++; pGlobalData->listViewItemCount++;
} }
@ -454,13 +460,17 @@ OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
ZeroMemory(&listItem, sizeof(LV_ITEM)); ZeroMemory(&listItem, sizeof(LV_ITEM));
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
listItem.state = LVIS_SELECTED; listItem.state = 0;
listItem.pszText = backgroundItem->szDisplayName; listItem.pszText = backgroundItem->szDisplayName;
listItem.iImage = sfi.iIcon; listItem.iImage = sfi.iIcon;
listItem.iItem = pGlobalData->listViewItemCount; listItem.iItem = pGlobalData->listViewItemCount;
listItem.lParam = pGlobalData->listViewItemCount; listItem.lParam = pGlobalData->listViewItemCount;
(void)ListView_InsertItem(hwndBackgroundList, &listItem); (void)ListView_InsertItem(hwndBackgroundList, &listItem);
ListView_SetItemState(hwndBackgroundList,
pGlobalData->listViewItemCount,
LVIS_SELECTED,
LVIS_SELECTED);
SendMessage(hwndBackgroundList, WM_VSCROLL, SB_BOTTOM, 0); SendMessage(hwndBackgroundList, WM_VSCROLL, SB_BOTTOM, 0);
pGlobalData->listViewItemCount++; pGlobalData->listViewItemCount++;

View file

@ -1,5 +1,4 @@
/* $Id: effappdlg.c 24836 2007-02-12 03:12:56Z tkreuzer $ /*
*
* COPYRIGHT: See COPYING in the top level directory * COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Display Control Panel * PROJECT: ReactOS Display Control Panel
* FILE: dll/cpl/desk/effappdlg.c * FILE: dll/cpl/desk/effappdlg.c

View file

@ -336,6 +336,7 @@ CBDAPinControl_fnConstructor(
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
// register device filter // register device filter
OutputDebugStringW(L"CBDAPinControl_fnConstructor registering device filter with network provider\n");
hr = pNetworkProvider->RegisterDeviceFilter(pUnknown, &RegistrationCtx); hr = pNetworkProvider->RegisterDeviceFilter(pUnknown, &RegistrationCtx);
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
@ -361,7 +362,6 @@ CBDAPinControl_fnConstructor(
WCHAR Buffer[100]; WCHAR Buffer[100];
swprintf(Buffer, L"CBDAPinControl_fnConstructor failed to register filter with %lx\n", hr); swprintf(Buffer, L"CBDAPinControl_fnConstructor failed to register filter with %lx\n", hr);
OutputDebugStringW(Buffer); OutputDebugStringW(Buffer);
DebugBreak();
} }
} }
} }

View file

@ -357,6 +357,7 @@ CKsAllocator::GetBuffer(
if (!m_FreeList.empty()) if (!m_FreeList.empty())
{ {
OutputDebugStringW(L"CKsAllocator::GetBuffer HACK\n");
Sample = m_FreeList.top(); Sample = m_FreeList.top();
m_FreeList.pop(); m_FreeList.pop();
} }

View file

@ -71,7 +71,6 @@ CEnumPins::QueryInterface(
OutputDebugStringW(Buffer); OutputDebugStringW(Buffer);
CoTaskMemFree(lpstr); CoTaskMemFree(lpstr);
DebugBreak();
return E_NOINTERFACE; return E_NOINTERFACE;
} }

View file

@ -700,7 +700,6 @@ CInputPin::Receive(IMediaSample *pSample)
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::Receive NotImplemented\n"); OutputDebugStringW(L"CInputPin::Receive NotImplemented\n");
DebugBreak();
#endif #endif
return E_NOTIMPL; return E_NOTIMPL;
@ -712,7 +711,6 @@ CInputPin::ReceiveMultiple(IMediaSample **pSamples, long nSamples, long *nSample
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::ReceiveMultiple NotImplemented\n"); OutputDebugStringW(L"CInputPin::ReceiveMultiple NotImplemented\n");
DebugBreak();
#endif #endif
return E_NOTIMPL; return E_NOTIMPL;
@ -724,7 +722,6 @@ CInputPin::ReceiveCanBlock( void)
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::ReceiveCanBlock NotImplemented\n"); OutputDebugStringW(L"CInputPin::ReceiveCanBlock NotImplemented\n");
DebugBreak();
#endif #endif
return S_FALSE; return S_FALSE;
@ -923,7 +920,6 @@ CInputPin::KsQualityNotify(
OutputDebugStringW(L"CInputPin::KsQualityNotify NotImplemented\n"); OutputDebugStringW(L"CInputPin::KsQualityNotify NotImplemented\n");
#endif #endif
DebugBreak();
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -1114,7 +1110,6 @@ CInputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::Connect NotImplemented\n"); OutputDebugStringW(L"CInputPin::Connect NotImplemented\n");
DebugBreak();
#endif #endif
return NOERROR; return NOERROR;
} }
@ -1199,7 +1194,6 @@ CInputPin::ConnectionMediaType(AM_MEDIA_TYPE *pmt)
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::ConnectionMediaType NotImplemented\n"); OutputDebugStringW(L"CInputPin::ConnectionMediaType NotImplemented\n");
DebugBreak();
#endif #endif
return E_NOTIMPL; return E_NOTIMPL;
@ -1496,7 +1490,6 @@ CInputPin::CreatePin(
WCHAR Buffer[100]; WCHAR Buffer[100];
swprintf(Buffer, L"CInputPin::CreatePin unexpected communication %u %s\n", m_Communication, m_PinName); swprintf(Buffer, L"CInputPin::CreatePin unexpected communication %u %s\n", m_Communication, m_PinName);
OutputDebugStringW(Buffer); OutputDebugStringW(Buffer);
DebugBreak();
#endif #endif
hr = E_FAIL; hr = E_FAIL;
} }
@ -1629,7 +1622,6 @@ CInputPin::CreatePinHandle(
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::CreatePinHandle GetSupportedSets failed\n"); OutputDebugStringW(L"CInputPin::CreatePinHandle GetSupportedSets failed\n");
DebugBreak();
#endif #endif
return hr; return hr;
} }
@ -1640,7 +1632,6 @@ CInputPin::CreatePinHandle(
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::CreatePinHandle LoadProxyPlugins failed\n"); OutputDebugStringW(L"CInputPin::CreatePinHandle LoadProxyPlugins failed\n");
DebugBreak();
#endif #endif
return hr; return hr;
} }
@ -1783,7 +1774,6 @@ CInputPin::LoadProxyPlugins(
{ {
// store plugin // store plugin
m_Plugins.push_back(pUnknown); m_Plugins.push_back(pUnknown);
DebugBreak();
} }
// close key // close key
RegCloseKey(hSubKey); RegCloseKey(hSubKey);

View file

@ -21,7 +21,6 @@ public:
STDMETHODIMP_(ULONG) Release() STDMETHODIMP_(ULONG) Release()
{ {
InterlockedDecrement(&m_Ref); InterlockedDecrement(&m_Ref);
DebugBreak();
if (!m_Ref) if (!m_Ref)
{ {
if (m_Allocator) if (m_Allocator)
@ -280,7 +279,6 @@ STDMETHODCALLTYPE
CMediaSample::SetMediaType(AM_MEDIA_TYPE *pMediaType) CMediaSample::SetMediaType(AM_MEDIA_TYPE *pMediaType)
{ {
OutputDebugStringW(L"CMediaSample::SetMediaType NotImplemented\n"); OutputDebugStringW(L"CMediaSample::SetMediaType NotImplemented\n");
DebugBreak();
return E_NOTIMPL; return E_NOTIMPL;
} }

View file

@ -246,8 +246,16 @@ COutputPin::COutputPin(
ZeroMemory(m_FramingProp, sizeof(m_FramingProp)); ZeroMemory(m_FramingProp, sizeof(m_FramingProp));
ZeroMemory(m_FramingEx, sizeof(m_FramingEx)); ZeroMemory(m_FramingEx, sizeof(m_FramingEx));
ZeroMemory(&m_MediaFormat, sizeof(AM_MEDIA_TYPE));
hr = KsGetMediaType(0, &m_MediaFormat, KsObjectParent->KsGetObjectHandle(), m_PinId); hr = KsGetMediaType(0, &m_MediaFormat, KsObjectParent->KsGetObjectHandle(), m_PinId);
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::COutputPin Format %p pbFormat %lu\n", &m_MediaFormat, m_MediaFormat.cbFormat);
OutputDebugStringW(Buffer);
#endif
assert(hr == S_OK); assert(hr == S_OK);
InitializeCriticalSection(&m_Lock); InitializeCriticalSection(&m_Lock);
@ -1518,6 +1526,8 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
HRESULT hr; HRESULT hr;
ALLOCATOR_PROPERTIES Properties; ALLOCATOR_PROPERTIES Properties;
IMemAllocatorCallbackTemp *pMemCallback; IMemAllocatorCallbackTemp *pMemCallback;
LPGUID pGuid;
ULONG NumGuids = 0;
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
WCHAR Buffer[200]; WCHAR Buffer[200];
@ -1540,6 +1550,20 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
pmt = &m_MediaFormat; pmt = &m_MediaFormat;
} }
if (m_hPin == INVALID_HANDLE_VALUE)
{
hr = CreatePin(pmt);
if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
swprintf(Buffer, L"COutputPin::Connect CreatePin handle failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
return hr;
}
}
// query for IMemInput interface // query for IMemInput interface
hr = pReceivePin->QueryInterface(IID_IMemInputPin, (void**)&m_MemInputPin); hr = pReceivePin->QueryInterface(IID_IMemInputPin, (void**)&m_MemInputPin);
if (FAILED(hr)) if (FAILED(hr))
@ -1548,7 +1572,6 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
OutputDebugStringW(L"COutputPin::Connect no IMemInputPin interface\n"); OutputDebugStringW(L"COutputPin::Connect no IMemInputPin interface\n");
#endif #endif
DebugBreak();
return hr; return hr;
} }
@ -1649,10 +1672,24 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
return hr; return hr;
} }
if (!m_hPin)
assert(m_hPin != INVALID_HANDLE_VALUE);
// get all supported sets
if (m_Plugins.size() == 0)
{ {
//FIXME create pin handle if (GetSupportedSets(&pGuid, &NumGuids))
assert(0); {
// load all proxy plugins
if (FAILED(LoadProxyPlugins(pGuid, NumGuids)));
{
#ifdef KSPROXY_TRACE
OutputDebugStringW(L"COutputPin::Connect LoadProxyPlugins failed\n");
#endif
}
// free sets
CoTaskMemFree(pGuid);
}
} }
// receive connection; // receive connection;
@ -1946,13 +1983,26 @@ COutputPin::CreatePin(
// query for pin medium // query for pin medium
hr = KsQueryMediums(&MediumList); hr = KsQueryMediums(&MediumList);
if (FAILED(hr)) if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePin KsQueryMediums failed %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
return hr; return hr;
}
// query for pin interface // query for pin interface
hr = KsQueryInterfaces(&InterfaceList); hr = KsQueryInterfaces(&InterfaceList);
if (FAILED(hr)) if (FAILED(hr))
{ {
// failed // failed
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePin KsQueryInterfaces failed %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
CoTaskMemFree(MediumList); CoTaskMemFree(MediumList);
return hr; return hr;
} }
@ -2003,6 +2053,12 @@ COutputPin::CreatePin(
CoTaskMemFree(MediumList); CoTaskMemFree(MediumList);
CoTaskMemFree(InterfaceList); CoTaskMemFree(InterfaceList);
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePin failed to create interface handler %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
return hr; return hr;
} }
@ -2010,7 +2066,12 @@ COutputPin::CreatePin(
hr = InterfaceHandler->KsSetPin((IKsPin*)this); hr = InterfaceHandler->KsSetPin((IKsPin*)this);
if (FAILED(hr)) if (FAILED(hr))
{ {
// failed to load interface handler plugin // failed to initialize interface handler plugin
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePin failed to initialize interface handler %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
InterfaceHandler->Release(); InterfaceHandler->Release();
CoTaskMemFree(MediumList); CoTaskMemFree(MediumList);
CoTaskMemFree(InterfaceList); CoTaskMemFree(InterfaceList);
@ -2027,7 +2088,6 @@ COutputPin::CreatePin(
WCHAR Buffer[100]; WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePin unexpected communication %u %s\n", m_Communication, m_PinName); swprintf(Buffer, L"COutputPin::CreatePin unexpected communication %u %s\n", m_Communication, m_PinName);
OutputDebugStringW(Buffer); OutputDebugStringW(Buffer);
DebugBreak();
#endif #endif
hr = E_FAIL; hr = E_FAIL;
@ -2037,6 +2097,12 @@ COutputPin::CreatePin(
CoTaskMemFree(MediumList); CoTaskMemFree(MediumList);
CoTaskMemFree(InterfaceList); CoTaskMemFree(InterfaceList);
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePin Result %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
return hr; return hr;
} }
@ -2058,11 +2124,14 @@ COutputPin::CreatePinHandle(
//KSPROPERTY Property; //KSPROPERTY Property;
//ULONG BytesReturned; //ULONG BytesReturned;
OutputDebugStringW(L"COutputPin::CreatePinHandle\n");
if (m_hPin != INVALID_HANDLE_VALUE) if (m_hPin != INVALID_HANDLE_VALUE)
{ {
// pin already exists // pin already exists
//CloseHandle(m_hPin); //CloseHandle(m_hPin);
//m_hPin = INVALID_HANDLE_VALUE; //m_hPin = INVALID_HANDLE_VALUE;
OutputDebugStringW(L"COutputPin::CreatePinHandle pin already exists\n");
return S_OK; return S_OK;
} }
@ -2075,9 +2144,10 @@ COutputPin::CreatePinHandle(
if (!PinConnect) if (!PinConnect)
{ {
// failed // failed
OutputDebugStringW(L"COutputPin::CreatePinHandle out of memory\n");
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
} }
OutputDebugStringW(L"COutputPin::CreatePinHandle copy pinconnect\n");
// setup request // setup request
CopyMemory(&PinConnect->Interface, Interface, sizeof(KSPIN_INTERFACE)); CopyMemory(&PinConnect->Interface, Interface, sizeof(KSPIN_INTERFACE));
CopyMemory(&PinConnect->Medium, Medium, sizeof(KSPIN_MEDIUM)); CopyMemory(&PinConnect->Medium, Medium, sizeof(KSPIN_MEDIUM));
@ -2088,7 +2158,7 @@ COutputPin::CreatePinHandle(
// get dataformat offset // get dataformat offset
DataFormat = (PKSDATAFORMAT)(PinConnect + 1); DataFormat = (PKSDATAFORMAT)(PinConnect + 1);
OutputDebugStringW(L"COutputPin::CreatePinHandle copy format\n");
// copy data format // copy data format
DataFormat->FormatSize = sizeof(KSDATAFORMAT) + pmt->cbFormat; DataFormat->FormatSize = sizeof(KSDATAFORMAT) + pmt->cbFormat;
DataFormat->Flags = 0; DataFormat->Flags = 0;
@ -2101,13 +2171,19 @@ COutputPin::CreatePinHandle(
if (pmt->cbFormat) if (pmt->cbFormat)
{ {
// copy extended format // copy extended format
WCHAR Buffer[100];
swprintf(Buffer, L"COutputPin::CreatePinHandle copy format %p pbFormat %lu\n", pmt, pmt->cbFormat);
OutputDebugStringW(Buffer);
CopyMemory((DataFormat + 1), pmt->pbFormat, pmt->cbFormat); CopyMemory((DataFormat + 1), pmt->pbFormat, pmt->cbFormat);
} }
// get IKsObject interface // get IKsObject interface
hr = m_ParentFilter->QueryInterface(IID_IKsObject, (LPVOID*)&KsObjectParent); hr = m_ParentFilter->QueryInterface(IID_IKsObject, (LPVOID*)&KsObjectParent);
if (FAILED(hr)) if (FAILED(hr))
{
OutputDebugStringW(L"COutputPin::CreatePinHandle no IID_IKsObject interface\n");
return hr; return hr;
}
// get parent filter handle // get parent filter handle
hFilter = KsObjectParent->KsGetObjectHandle(); hFilter = KsObjectParent->KsGetObjectHandle();
@ -2116,13 +2192,19 @@ COutputPin::CreatePinHandle(
KsObjectParent->Release(); KsObjectParent->Release();
if (!hFilter) if (!hFilter)
return E_HANDLE;
// create pin
hr = KsCreatePin(hFilter, PinConnect, GENERIC_READ, &m_hPin);
if (SUCCEEDED(hr))
{ {
OutputDebugStringW(L"COutputPin::CreatePinHandle no filter handle\n");
return E_HANDLE;
}
OutputDebugStringW(L"COutputPin::CreatePinHandle before creating pin\n");
// create pin
DWORD dwError = KsCreatePin(hFilter, PinConnect, GENERIC_READ, &m_hPin);
if (dwError == ERROR_SUCCESS)
{
OutputDebugStringW(L"COutputPin::CreatePinHandle created pin\n");
// store current interface / medium // store current interface / medium
CopyMemory(&m_Medium, Medium, sizeof(KSPIN_MEDIUM)); CopyMemory(&m_Medium, Medium, sizeof(KSPIN_MEDIUM));
CopyMemory(&m_Interface, Interface, sizeof(KSPIN_INTERFACE)); CopyMemory(&m_Interface, Interface, sizeof(KSPIN_INTERFACE));
@ -2173,42 +2255,14 @@ COutputPin::CreatePinHandle(
if (FAILED(InitializeIOThread())) if (FAILED(InitializeIOThread()))
{ {
OutputDebugStringW(L"COutputPin::CreatePinHandle failed to initialize i/o thread\n"); OutputDebugStringW(L"COutputPin::CreatePinHandle failed to initialize i/o thread\n");
DebugBreak();
} }
LPGUID pGuid;
ULONG NumGuids = 0;
// get all supported sets
hr = GetSupportedSets(&pGuid, &NumGuids);
if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::CreatePinHandle GetSupportedSets failed\n");
DebugBreak();
#endif
return hr;
}
// load all proxy plugins
hr = LoadProxyPlugins(pGuid, NumGuids);
if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
OutputDebugStringW(L"CInputPin::CreatePinHandle LoadProxyPlugins failed\n");
DebugBreak();
#endif
return hr;
}
// free sets
CoTaskMemFree(pGuid);
//TODO //TODO
// connect pin pipes // connect pin pipes
} }
else
OutputDebugStringW(L"COutputPin::CreatePinHandle failed to create pin\n");
// free pin connect // free pin connect
CoTaskMemFree(PinConnect); CoTaskMemFree(PinConnect);
@ -2338,7 +2392,6 @@ COutputPin::LoadProxyPlugins(
{ {
// store plugin // store plugin
m_Plugins.push_back(pUnknown); m_Plugins.push_back(pUnknown);
DebugBreak();
} }
// close key // close key
RegCloseKey(hSubKey); RegCloseKey(hSubKey);
@ -2357,17 +2410,48 @@ COutputPin::IoProcessRoutine()
IMediaSample *Sample; IMediaSample *Sample;
LONG SampleCount; LONG SampleCount;
HRESULT hr; HRESULT hr;
PKSSTREAM_SEGMENT StreamSegment; PKSSTREAM_SEGMENT * StreamSegment;
HANDLE hEvent; HANDLE hEvent;
IMediaSample * Samples[1]; IMediaSample ** Samples;
LONG NumHandles;
DWORD dwStatus;
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
WCHAR Buffer[200]; WCHAR Buffer[200];
#endif #endif
NumHandles = m_Properties.cBuffers / 2;
if (!NumHandles)
NumHandles = 8;
assert(NumHandles);
//allocate stream segment array
StreamSegment = (PKSSTREAM_SEGMENT*)CoTaskMemAlloc(sizeof(PKSSTREAM_SEGMENT) * NumHandles);
if (!StreamSegment)
{
OutputDebugStringW(L"COutputPin::IoProcessRoutine out of memory\n");
return E_FAIL;
}
// allocate handle array
Samples = (IMediaSample**)CoTaskMemAlloc(sizeof(IMediaSample*) * NumHandles);
if (!Samples)
{
OutputDebugStringW(L"COutputPin::IoProcessRoutine out of memory\n");
return E_FAIL;
}
// zero handles array
ZeroMemory(StreamSegment, sizeof(PKSSTREAM_SEGMENT) * NumHandles);
ZeroMemory(Samples, sizeof(IMediaSample*) * NumHandles);
// first wait for the start event to signal // first wait for the start event to signal
WaitForSingleObject(m_hStartEvent, INFINITE); WaitForSingleObject(m_hStartEvent, INFINITE);
m_IoCount = 0;
assert(m_InterfaceHandler); assert(m_InterfaceHandler);
do do
{ {
@ -2392,14 +2476,14 @@ COutputPin::IoProcessRoutine()
// fill buffer // fill buffer
SampleCount = 1; SampleCount = 1;
Samples[0] = Sample; Samples[m_IoCount] = Sample;
Sample->SetTime(NULL, NULL); Sample->SetTime(NULL, NULL);
hr = m_InterfaceHandler->KsProcessMediaSamples(NULL, /* FIXME */ hr = m_InterfaceHandler->KsProcessMediaSamples(NULL, /* FIXME */
Samples, &Samples[m_IoCount],
&SampleCount, &SampleCount,
KsIoOperation_Read, KsIoOperation_Read,
&StreamSegment); &StreamSegment[m_IoCount]);
if (FAILED(hr) || !StreamSegment) if (FAILED(hr) || !StreamSegment)
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
@ -2409,14 +2493,26 @@ COutputPin::IoProcessRoutine()
break; break;
} }
// get completion event // interface handle should increment pending i/o count
hEvent = StreamSegment->CompletionEvent; assert(m_IoCount >= 1);
swprintf(Buffer, L"COutputPin::IoProcessRoutine m_IoCount %lu NumHandles %lu\n", m_IoCount, NumHandles);
OutputDebugStringW(Buffer);
if (m_IoCount != NumHandles)
continue;
// get completion handle
hEvent = StreamSegment[0]->CompletionEvent;
// wait for i/o completion // wait for i/o completion
WaitForSingleObject(hEvent, INFINITE); dwStatus = WaitForSingleObject(hEvent, INFINITE);
swprintf(Buffer, L"COutputPin::IoProcessRoutine dwStatus %lx Error %lx NumHandles %lu\n", dwStatus, GetLastError(), NumHandles);
OutputDebugStringW(Buffer);
// perform completion // perform completion
m_InterfaceHandler->KsCompleteIo(StreamSegment); m_InterfaceHandler->KsCompleteIo(StreamSegment[0]);
// close completion event // close completion event
CloseHandle(hEvent); CloseHandle(hEvent);
@ -2426,7 +2522,7 @@ COutputPin::IoProcessRoutine()
assert(m_MemInputPin); assert(m_MemInputPin);
// now deliver the sample // now deliver the sample
hr = m_MemInputPin->Receive(Sample); hr = m_MemInputPin->Receive(Samples[0]);
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
swprintf(Buffer, L"COutputPin::IoProcessRoutine PinName %s IMemInputPin::Receive hr %lx Sample %p m_MemAllocator %p\n", m_PinName, hr, Sample, m_MemAllocator); swprintf(Buffer, L"COutputPin::IoProcessRoutine PinName %s IMemInputPin::Receive hr %lx Sample %p m_MemAllocator %p\n", m_PinName, hr, Sample, m_MemAllocator);
@ -2438,6 +2534,11 @@ COutputPin::IoProcessRoutine()
Sample = NULL; Sample = NULL;
} }
//circular stream segment array
RtlMoveMemory(StreamSegment, &StreamSegment[1], sizeof(PKSSTREAM_SEGMENT) * (NumHandles - 1));
RtlMoveMemory(Samples, &Samples[1], sizeof(IMediaSample*) * (NumHandles - 1));
}while(TRUE); }while(TRUE);
// signal end of i/o thread // signal end of i/o thread

View file

@ -3,7 +3,7 @@
#define _FORCENAMELESSUNION #define _FORCENAMELESSUNION
#define BUILDING_KS #define BUILDING_KS
#define _KSDDK_ #define _KSDDK_
//#define KSPROXY_TRACE #define KSPROXY_TRACE
#include <dshow.h> #include <dshow.h>
//#include <streams.h> //#include <streams.h>
#include <ks.h> #include <ks.h>

View file

@ -1954,7 +1954,6 @@ CKsProxy::IsDirty()
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CKsProxy::IsDirty Notimplemented\n"); OutputDebugStringW(L"CKsProxy::IsDirty Notimplemented\n");
DebugBreak();
#endif #endif
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -2035,7 +2034,6 @@ CKsProxy::Load(
}while(Length > 0); }while(Length > 0);
DebugBreak();
return S_OK; return S_OK;
} }
@ -2059,7 +2057,6 @@ CKsProxy::GetSizeMax(
{ {
#ifdef KSPROXY_TRACE #ifdef KSPROXY_TRACE
OutputDebugStringW(L"CKsProxy::GetSizeMax Notimplemented\n"); OutputDebugStringW(L"CKsProxy::GetSizeMax Notimplemented\n");
DebugBreak();
#endif #endif
return E_NOTIMPL; return E_NOTIMPL;
@ -2480,23 +2477,50 @@ CKsProxy::CreatePins()
// query current instance count // query current instance count
hr = GetPinInstanceCount(Index, &Instances); hr = GetPinInstanceCount(Index, &Instances);
if (FAILED(hr)) if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins GetPinInstanceCount failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
continue; continue;
}
// query pin communication; // query pin communication;
hr = GetPinCommunication(Index, &Communication); hr = GetPinCommunication(Index, &Communication);
if (FAILED(hr)) if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins GetPinCommunication failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
continue; continue;
}
if (Instances.CurrentCount == Instances.PossibleCount) if (Instances.CurrentCount == Instances.PossibleCount)
{ {
// already maximum reached for this pin // already maximum reached for this pin
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins Instances.CurrentCount == Instances.PossibleCount\n");
OutputDebugStringW(Buffer);
#endif
continue; continue;
} }
// get direction of pin // get direction of pin
hr = GetPinDataflow(Index, &DataFlow); hr = GetPinDataflow(Index, &DataFlow);
if (FAILED(hr)) if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins GetPinDataflow failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
continue; continue;
}
if (DataFlow == KSPIN_DATAFLOW_IN) if (DataFlow == KSPIN_DATAFLOW_IN)
hr = GetPinName(Index, DataFlow, InputPin, &PinName); hr = GetPinName(Index, DataFlow, InputPin, &PinName);
@ -2504,7 +2528,14 @@ CKsProxy::CreatePins()
hr = GetPinName(Index, DataFlow, OutputPin, &PinName); hr = GetPinName(Index, DataFlow, OutputPin, &PinName);
if (FAILED(hr)) if (FAILED(hr))
{
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins GetPinName failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
continue; continue;
}
// construct the pins // construct the pins
if (DataFlow == KSPIN_DATAFLOW_IN) if (DataFlow == KSPIN_DATAFLOW_IN)
@ -2512,6 +2543,11 @@ CKsProxy::CreatePins()
hr = CInputPin_Constructor((IBaseFilter*)this, PinName, m_hDevice, Index, Communication, IID_IPin, (void**)&pPin); hr = CInputPin_Constructor((IBaseFilter*)this, PinName, m_hDevice, Index, Communication, IID_IPin, (void**)&pPin);
if (FAILED(hr)) if (FAILED(hr))
{ {
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins CInputPin_Constructor failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
CoTaskMemFree(PinName); CoTaskMemFree(PinName);
continue; continue;
} }
@ -2522,6 +2558,11 @@ CKsProxy::CreatePins()
hr = COutputPin_Constructor((IBaseFilter*)this, PinName, Index, Communication, IID_IPin, (void**)&pPin); hr = COutputPin_Constructor((IBaseFilter*)this, PinName, Index, Communication, IID_IPin, (void**)&pPin);
if (FAILED(hr)) if (FAILED(hr))
{ {
#ifdef KSPROXY_TRACE
WCHAR Buffer[100];
swprintf(Buffer, L"CKsProxy::CreatePins COutputPin_Constructor failed with %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
CoTaskMemFree(PinName); CoTaskMemFree(PinName);
continue; continue;
} }
@ -2627,9 +2668,12 @@ CKsProxy::Load(IPropertyBag *pPropBag, IErrorLog *pErrorLog)
hr = LoadProxyPlugins(pGuid, NumGuids); hr = LoadProxyPlugins(pGuid, NumGuids);
if (FAILED(hr)) if (FAILED(hr))
{ {
#if 0 //HACK
CloseHandle(m_hDevice); CloseHandle(m_hDevice);
m_hDevice = NULL; m_hDevice = NULL;
return hr; return hr;
#endif
OutputDebugStringW(L"CKsProxy::LoadProxyPlugins failed!\n");
} }
// free sets // free sets
@ -2638,6 +2682,14 @@ CKsProxy::Load(IPropertyBag *pPropBag, IErrorLog *pErrorLog)
// now create the input / output pins // now create the input / output pins
hr = CreatePins(); hr = CreatePins();
#ifdef KSPROXY_TRACE
swprintf(Buffer, L"CKsProxy::Load CreatePins %lx\n", hr);
OutputDebugStringW(Buffer);
#endif
//HACK
hr = S_OK;
return hr; return hr;
} }
@ -2986,10 +3038,6 @@ STDMETHODCALLTYPE
CKsProxy::EnumPins( CKsProxy::EnumPins(
IEnumPins **ppEnum) IEnumPins **ppEnum)
{ {
#ifdef KSPROXY_TRACE
OutputDebugStringW(L"CKsProxy::EnumPins\n");
#endif
return CEnumPins_fnConstructor(m_Pins, IID_IEnumPins, (void**)ppEnum); return CEnumPins_fnConstructor(m_Pins, IID_IEnumPins, (void**)ppEnum);
} }

View file

@ -155,14 +155,6 @@ CEnumPins_fnConstructor(
{ {
CEnumPins * handler = new CEnumPins(NumPins, pins); CEnumPins * handler = new CEnumPins(NumPins, pins);
#ifdef MSDVBNP_TRACE
WCHAR Buffer[MAX_PATH];
LPOLESTR lpstr;
StringFromCLSID(riid, &lpstr);
swprintf(Buffer, L"CEnumPins_fnConstructor riid %s pUnknown %p\n", lpstr, pUnknown);
OutputDebugStringW(Buffer);
#endif
if (!handler) if (!handler)
return E_OUTOFMEMORY; return E_OUTOFMEMORY;

View file

@ -9,10 +9,14 @@
#include "precomp.h" #include "precomp.h"
#ifndef _MSC_VER
const GUID KSCATEGORY_BDA_NETWORK_PROVIDER = {0x71985f4b, 0x1ca1, 0x11d3, {0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0}};
#endif
static INTERFACE_TABLE InterfaceTable[] = static INTERFACE_TABLE InterfaceTable[] =
{ {
{&CLSID_DVBTNetworkProvider, CNetworkProvider_fnConstructor}, {&CLSID_DVBTNetworkProvider, CNetworkProvider_fnConstructor, L"ReactOS DVBT Network Provider"},
{NULL, NULL} {NULL, NULL, NULL}
}; };
extern "C" extern "C"
@ -53,8 +57,19 @@ DllUnregisterServer(void)
HRESULT hr = S_OK; HRESULT hr = S_OK;
HKEY hClass; HKEY hClass;
hr = StringFromCLSID(KSCATEGORY_BDA_NETWORK_PROVIDER, &pStr);
if (FAILED(hr))
return hr;
if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_SET_VALUE, &hClass) != ERROR_SUCCESS) if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_SET_VALUE, &hClass) != ERROR_SUCCESS)
{
CoTaskMemFree(pStr);
return E_FAIL; return E_FAIL;
}
RegDeleteKeyW(hClass, pStr);
CoTaskMemFree(pStr);
do do
{ {
@ -71,6 +86,24 @@ DllUnregisterServer(void)
return hr; return hr;
} }
VOID
RegisterBDAComponent(
HKEY hFilter,
LPCWSTR ComponentClsid,
LPCWSTR ComponentName)
{
HKEY hComp;
// create network provider filter key
if (RegCreateKeyExW(hFilter, ComponentClsid, 0, NULL, 0, KEY_WRITE, NULL, &hComp, NULL) == ERROR_SUCCESS)
{
// store class id
RegSetValueExW(hComp, L"CLSID", 0, REG_SZ, (const BYTE*)ComponentClsid, (wcslen(ComponentClsid)+1) * sizeof(WCHAR));
RegSetValueExW(hComp, L"FriendlyName", 0, REG_SZ, (const BYTE*)ComponentName, (wcslen(ComponentName)+1) * sizeof(WCHAR));
RegCloseKey(hComp);
}
}
extern "C" extern "C"
KSDDKAPI KSDDKAPI
HRESULT HRESULT
@ -80,12 +113,50 @@ DllRegisterServer(void)
ULONG Index = 0; ULONG Index = 0;
LPOLESTR pStr; LPOLESTR pStr;
HRESULT hr = S_OK; HRESULT hr = S_OK;
HKEY hClass, hKey, hSubKey; HKEY hClass, hKey, hSubKey, hProvider, hInstance, hFilter;
static LPCWSTR ModuleName = L"msdvbnp.ax"; static LPCWSTR ModuleName = L"msdvbnp.ax";
static LPCWSTR ThreadingModel = L"Both"; static LPCWSTR ThreadingModel = L"Both";
hr = StringFromCLSID(KSCATEGORY_BDA_NETWORK_PROVIDER, &pStr);
if (FAILED(hr))
return hr;
if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_WRITE, &hClass) != ERROR_SUCCESS) if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"CLSID", 0, KEY_WRITE, &hClass) != ERROR_SUCCESS)
{
CoTaskMemFree(pStr);
return E_FAIL; return E_FAIL;
}
if (RegCreateKeyExW(hClass, pStr, 0, NULL, 0, KEY_WRITE, NULL, &hProvider, NULL) != ERROR_SUCCESS)
{
RegCloseKey(hClass);
CoTaskMemFree(pStr);
return E_FAIL;
}
CoTaskMemFree(pStr);
if (RegCreateKeyExW(hProvider, L"Instance", 0, NULL, 0, KEY_WRITE, NULL, &hInstance, NULL) != ERROR_SUCCESS)
{
RegCloseKey(hClass);
return E_FAIL;
}
RegCloseKey(hProvider);
/* open active movie filter category key */
if (RegCreateKeyExW(hClass, L"{da4e3da0-d07d-11d0-bd50-00a0c911ce86}\\Instance", 0, NULL, 0, KEY_WRITE, NULL, &hFilter, NULL) != ERROR_SUCCESS)
{
RegCloseKey(hClass);
RegCloseKey(hInstance);
return E_FAIL;
}
RegisterBDAComponent(hFilter, L"{71985F4A-1CA1-11d3-9CC8-00C04F7971E0}", L"BDA Playback Filter");
RegisterBDAComponent(hFilter, L"{71985F4B-1CA1-11D3-9CC8-00C04F7971E0}", L"BDA Network Providers");
RegisterBDAComponent(hFilter, L"{71985F48-1CA1-11d3-9CC8-00C04F7971E0}", L"BDA Source Filter");
RegisterBDAComponent(hFilter, L"{A2E3074F-6C3D-11D3-B653-00C04F79498E}", L"BDA Transport Information Renderers");
RegisterBDAComponent(hFilter, L"{FD0A5AF4-B41D-11d2-9C95-00C04F7971E0}", L"BDA Receiver Component");
RegCloseKey(hKey);
do do
{ {
@ -104,11 +175,23 @@ DllRegisterServer(void)
RegCloseKey(hKey); RegCloseKey(hKey);
} }
if (RegCreateKeyExW(hInstance, InterfaceTable[Index].ProviderName, 0, 0, 0, KEY_WRITE, NULL, &hKey, 0) == ERROR_SUCCESS)
{
//FIXME filterdata
RegSetValueExW(hKey, L"FriendlyName", 0, REG_SZ, (const BYTE*)InterfaceTable[Index].ProviderName, (wcslen(InterfaceTable[Index].ProviderName) + 1) * sizeof(WCHAR));
RegSetValueExW(hKey, L"CLSID", 0, REG_SZ, (const BYTE*)pStr, (wcslen(pStr)+1) * sizeof(WCHAR));
RegCloseKey(hKey);
}
CoTaskMemFree(pStr); CoTaskMemFree(pStr);
Index++; Index++;
}while(InterfaceTable[Index].lpfnCI != 0); }while(InterfaceTable[Index].lpfnCI != 0);
RegCloseKey(hClass); RegCloseKey(hClass);
RegCloseKey(hInstance);
return hr; return hr;
} }

View file

@ -28,6 +28,7 @@ typedef struct
{ {
const GUID* riid; const GUID* riid;
LPFNCREATEINSTANCE lpfnCI; LPFNCREATEINSTANCE lpfnCI;
LPCWSTR ProviderName;
} INTERFACE_TABLE; } INTERFACE_TABLE;
/* classfactory.cpp */ /* classfactory.cpp */

View file

@ -854,7 +854,7 @@ SampleGrabber_ISampleGrabber_GetCurrentBuffer(ISampleGrabber *iface, LONG *bufSi
static HRESULT WINAPI static HRESULT WINAPI
SampleGrabber_ISampleGrabber_GetCurrentSample(ISampleGrabber *iface, IMediaSample **sample) SampleGrabber_ISampleGrabber_GetCurrentSample(ISampleGrabber *iface, IMediaSample **sample)
{ {
/* MS doesn't implement it either, noone should call it */ /* MS doesn't implement it either, no one should call it */
WARN("(%p): not implemented\n", sample); WARN("(%p): not implemented\n", sample);
return E_NOTIMPL; return E_NOTIMPL;
} }
@ -1264,7 +1264,7 @@ SampleGrabber_IPin_EnumMediaTypes(IPin *iface, IEnumMediaTypes **mtypes)
TRACE("(%p)->(%p)\n", This, mtypes); TRACE("(%p)->(%p)\n", This, mtypes);
if (!mtypes) if (!mtypes)
return E_POINTER; return E_POINTER;
*mtypes = mediaenum_create(This->sg->pin_in.pair ? &This->sg->mtype : (const AM_MEDIA_TYPE *)NULL); *mtypes = mediaenum_create(This->sg->pin_in.pair ? &This->sg->mtype : NULL);
return *mtypes ? S_OK : E_OUTOFMEMORY; return *mtypes ? S_OK : E_OUTOFMEMORY;
} }

View file

@ -203,7 +203,7 @@ static HRESULT AVIDec_ConnectInput(InputPin *pin, const AM_MEDIA_TYPE * pmt)
bmi = &format2->bmiHeader; bmi = &format2->bmiHeader;
else else
goto failed; goto failed;
TRACE("Fourcc: %s\n", debugstr_an((char *)&pmt->subtype.Data1, 4)); TRACE("Fourcc: %s\n", debugstr_an((const char *)&pmt->subtype.Data1, 4));
This->hvid = ICLocate(pmt->majortype.Data1, pmt->subtype.Data1, bmi, NULL, ICMODE_DECOMPRESS); This->hvid = ICLocate(pmt->majortype.Data1, pmt->subtype.Data1, bmi, NULL, ICMODE_DECOMPRESS);
if (This->hvid) if (This->hvid)

View file

@ -692,7 +692,7 @@ static HRESULT AVISplitter_ProcessStreamList(AVISplitterImpl * This, const BYTE
amt.formattype = FORMAT_WaveFormatEx; amt.formattype = FORMAT_WaveFormatEx;
break; break;
default: default:
FIXME("fccType %.4s not handled yet\n", (char *)&pStrHdr->fccType); FIXME("fccType %.4s not handled yet\n", (const char *)&pStrHdr->fccType);
amt.formattype = FORMAT_None; amt.formattype = FORMAT_None;
} }
amt.majortype = MEDIATYPE_Video; amt.majortype = MEDIATYPE_Video;
@ -793,7 +793,7 @@ static HRESULT AVISplitter_ProcessStreamList(AVISplitterImpl * This, const BYTE
TRACE("bIndexSubType: %hd\n", pIndex->bIndexSubType); TRACE("bIndexSubType: %hd\n", pIndex->bIndexSubType);
TRACE("bIndexType: %hd\n", pIndex->bIndexType); TRACE("bIndexType: %hd\n", pIndex->bIndexType);
TRACE("nEntriesInUse: %u\n", pIndex->nEntriesInUse); TRACE("nEntriesInUse: %u\n", pIndex->nEntriesInUse);
TRACE("dwChunkId: %.4s\n", (char *)&pIndex->dwChunkId); TRACE("dwChunkId: %.4s\n", (const char *)&pIndex->dwChunkId);
if (pIndex->dwReserved[0]) if (pIndex->dwReserved[0])
TRACE("dwReserved[0]: %u\n", pIndex->dwReserved[0]); TRACE("dwReserved[0]: %u\n", pIndex->dwReserved[0]);
if (pIndex->dwReserved[2]) if (pIndex->dwReserved[2])

View file

@ -6,7 +6,7 @@
8 stub ADsBuildVarArrayInt 8 stub ADsBuildVarArrayInt
9 stdcall ADsOpenObject(wstr wstr wstr long ptr ptr) 9 stdcall ADsOpenObject(wstr wstr wstr long ptr ptr)
12 stub ADsSetLastError 12 stub ADsSetLastError
13 stub ADsGetLastError 13 stdcall ADsGetLastError(ptr ptr long ptr long)
14 stub AllocADsMem 14 stub AllocADsMem
15 stdcall FreeADsMem(ptr) 15 stdcall FreeADsMem(ptr)
16 stub ReallocADsMem 16 stub ReallocADsMem

View file

@ -94,6 +94,15 @@ HRESULT WINAPI ADsOpenObject(LPCWSTR lpszPathName, LPCWSTR lpszUserName, LPCWSTR
return E_NOTIMPL; return E_NOTIMPL;
} }
/*****************************************************
* ADsGetLastError [ACTIVEDS.13]
*/
HRESULT WINAPI ADsGetLastError(LPDWORD perror, LPWSTR errorbuf, DWORD errorbuflen, LPWSTR namebuf, DWORD namebuflen)
{
FIXME("(%p,%p,%d,%p,%d)!stub\n", perror, errorbuf, errorbuflen, namebuf, namebuflen);
return E_NOTIMPL;
}
/***************************************************** /*****************************************************
* FreeADsMem [ACTIVEDS.15] * FreeADsMem [ACTIVEDS.15]
*/ */

View file

@ -31,7 +31,6 @@
<file>actxprxy_ocmm.idl</file> <file>actxprxy_ocmm.idl</file>
<file>actxprxy_servprov.idl</file> <file>actxprxy_servprov.idl</file>
<!-- file>actxprxy_shobjidl.idl</file --> <!-- file>actxprxy_shobjidl.idl</file -->
<file>actxprxy_urlhist.idl <file>actxprxy_urlhist.idl</file>
</file>
</module> </module>
</group> </group>

View file

@ -950,7 +950,7 @@ HRESULT WINAPI AtlAxCreateControlEx(LPCOLESTR lpszName, HWND hWnd,
TRACE("(%s %p %p %p %p %p %p)\n", debugstr_w(lpszName), hWnd, pStream, TRACE("(%s %p %p %p %p %p %p)\n", debugstr_w(lpszName), hWnd, pStream,
ppUnkContainer, ppUnkControl, iidSink, punkSink); ppUnkContainer, ppUnkControl, iidSink, punkSink);
hRes = CLSIDFromString( (LPOLESTR) lpszName, &controlId ); hRes = CLSIDFromString( lpszName, &controlId );
if ( FAILED(hRes) ) if ( FAILED(hRes) )
hRes = CLSIDFromProgID( lpszName, &controlId ); hRes = CLSIDFromProgID( lpszName, &controlId );
if ( SUCCEEDED( hRes ) ) if ( SUCCEEDED( hRes ) )

View file

@ -1,7 +1,7 @@
/* /*
* Top level resource file for avifil32.dll * Top level resource file for avifil32.dll
* *
* Copyright 2002 Michael Günnewig * Copyright 2002 Michael Günnewig
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -18,10 +18,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "winver.h"
#include "avifile_private.h" #include "avifile_private.h"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

View file

@ -77,7 +77,7 @@ THOSE_ZIP_CONSTS;
struct fdi_file { struct fdi_file {
struct fdi_file *next; /* next file in sequence */ struct fdi_file *next; /* next file in sequence */
LPCSTR filename; /* output name of file */ LPSTR filename; /* output name of file */
int fh; /* open file handle or NULL */ int fh; /* open file handle or NULL */
cab_ULONG length; /* uncompressed length of file */ cab_ULONG length; /* uncompressed length of file */
cab_ULONG offset; /* uncompressed offset in folder */ cab_ULONG offset; /* uncompressed offset in folder */
@ -2301,7 +2301,7 @@ static void free_decompression_mem(HFDI hfdi,
} }
while (CAB(firstfile)) { while (CAB(firstfile)) {
file = CAB(firstfile); file = CAB(firstfile);
if (file->filename) PFDI_FREE(hfdi, (void *)file->filename); if (file->filename) PFDI_FREE(hfdi, file->filename);
CAB(firstfile) = CAB(firstfile)->next; CAB(firstfile) = CAB(firstfile)->next;
PFDI_FREE(hfdi, file); PFDI_FREE(hfdi, file);
} }

View file

@ -99,8 +99,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes); TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
needed = bytes + pad_bytes + 1; needed = bytes + pad_bytes + 1;
if (sep) needed += (needed / 64 + 1) * strlen(sep);
needed += (needed / 64 + 1) * strlen(sep);
if (needed > *out_len) if (needed > *out_len)
{ {
@ -117,7 +116,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
i = 0; i = 0;
while (div > 0) while (div > 0)
{ {
if (sep && i && i % 64 == 0) if (i && i % 64 == 0)
{ {
strcpy(ptr, sep); strcpy(ptr, sep);
ptr += strlen(sep); ptr += strlen(sep);
@ -163,8 +162,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
*ptr++ = '='; *ptr++ = '=';
break; break;
} }
if (sep) strcpy(ptr, sep);
strcpy(ptr, sep);
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
@ -180,7 +178,7 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
if (dwFlags & CRYPT_STRING_NOCR) if (dwFlags & CRYPT_STRING_NOCR)
sep = lf; sep = lf;
else if (dwFlags & CRYPT_STRING_NOCRLF) else if (dwFlags & CRYPT_STRING_NOCRLF)
sep = NULL; sep = "";
else else
sep = crlf; sep = crlf;
switch (dwFlags & 0x0fffffff) switch (dwFlags & 0x0fffffff)
@ -204,8 +202,6 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
charsNeeded = 0; charsNeeded = 0;
encodeBase64A(pbBinary, cbBinary, sep, NULL, &charsNeeded); encodeBase64A(pbBinary, cbBinary, sep, NULL, &charsNeeded);
if (sep)
charsNeeded += strlen(sep);
if (header) if (header)
charsNeeded += strlen(header) + strlen(sep); charsNeeded += strlen(header) + strlen(sep);
if (trailer) if (trailer)
@ -219,11 +215,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
{ {
strcpy(ptr, header); strcpy(ptr, header);
ptr += strlen(ptr); ptr += strlen(ptr);
if (sep) strcpy(ptr, sep);
{ ptr += strlen(sep);
strcpy(ptr, sep);
ptr += strlen(sep);
}
} }
encodeBase64A(pbBinary, cbBinary, sep, ptr, &size); encodeBase64A(pbBinary, cbBinary, sep, ptr, &size);
ptr += size - 1; ptr += size - 1;
@ -231,11 +224,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
{ {
strcpy(ptr, trailer); strcpy(ptr, trailer);
ptr += strlen(ptr); ptr += strlen(ptr);
if (sep) strcpy(ptr, sep);
{ ptr += strlen(sep);
strcpy(ptr, sep);
ptr += strlen(sep);
}
} }
*pcchString = charsNeeded - 1; *pcchString = charsNeeded - 1;
} }
@ -304,8 +294,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes); TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
needed = bytes + pad_bytes + 1; needed = bytes + pad_bytes + 1;
if (sep) needed += (needed / 64 + 1) * strlenW(sep);
needed += (needed / 64 + 1) * strlenW(sep);
if (needed > *out_len) if (needed > *out_len)
{ {
@ -322,7 +311,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
i = 0; i = 0;
while (div > 0) while (div > 0)
{ {
if (sep && i && i % 64 == 0) if (i && i % 64 == 0)
{ {
strcpyW(ptr, sep); strcpyW(ptr, sep);
ptr += strlenW(sep); ptr += strlenW(sep);
@ -368,8 +357,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
*ptr++ = '='; *ptr++ = '=';
break; break;
} }
if (sep) strcpyW(ptr, sep);
strcpyW(ptr, sep);
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
@ -377,7 +365,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
static BOOL BinaryToBase64W(const BYTE *pbBinary, static BOOL BinaryToBase64W(const BYTE *pbBinary,
DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString) DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
{ {
static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 }; static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 }, empty[] = {0};
BOOL ret = TRUE; BOOL ret = TRUE;
LPCWSTR header = NULL, trailer = NULL, sep; LPCWSTR header = NULL, trailer = NULL, sep;
DWORD charsNeeded; DWORD charsNeeded;
@ -385,7 +373,7 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
if (dwFlags & CRYPT_STRING_NOCR) if (dwFlags & CRYPT_STRING_NOCR)
sep = lf; sep = lf;
else if (dwFlags & CRYPT_STRING_NOCRLF) else if (dwFlags & CRYPT_STRING_NOCRLF)
sep = NULL; sep = empty;
else else
sep = crlf; sep = crlf;
switch (dwFlags & 0x0fffffff) switch (dwFlags & 0x0fffffff)
@ -409,8 +397,6 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
charsNeeded = 0; charsNeeded = 0;
encodeBase64W(pbBinary, cbBinary, sep, NULL, &charsNeeded); encodeBase64W(pbBinary, cbBinary, sep, NULL, &charsNeeded);
if (sep)
charsNeeded += strlenW(sep);
if (header) if (header)
charsNeeded += strlenW(header) + strlenW(sep); charsNeeded += strlenW(header) + strlenW(sep);
if (trailer) if (trailer)
@ -424,11 +410,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
{ {
strcpyW(ptr, header); strcpyW(ptr, header);
ptr += strlenW(ptr); ptr += strlenW(ptr);
if (sep) strcpyW(ptr, sep);
{ ptr += strlenW(sep);
strcpyW(ptr, sep);
ptr += strlenW(sep);
}
} }
encodeBase64W(pbBinary, cbBinary, sep, ptr, &size); encodeBase64W(pbBinary, cbBinary, sep, ptr, &size);
ptr += size - 1; ptr += size - 1;
@ -436,11 +419,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
{ {
strcpyW(ptr, trailer); strcpyW(ptr, trailer);
ptr += strlenW(ptr); ptr += strlenW(ptr);
if (sep) strcpyW(ptr, sep);
{ ptr += strlenW(sep);
strcpyW(ptr, sep);
ptr += strlenW(sep);
}
} }
*pcchString = charsNeeded - 1; *pcchString = charsNeeded - 1;
} }

View file

@ -1,6 +1,6 @@
/* FILE: dll/win32/devmgr/lang/cs-CZ.rc /* FILE: dll/win32/devmgr/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2008-06-24 * UPDATED: 2010-01-07
*/ */
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
@ -202,7 +202,7 @@ END
IDD_DEVICEDETAILS DIALOGEX DISCARDABLE 0, 0, 252, 218 IDD_DEVICEDETAILS DIALOGEX DISCARDABLE 0, 0, 252, 218
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Details" CAPTION "Detaily"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
ICON "", IDC_DEVICON, 7, 7, 20, 20 ICON "", IDC_DEVICON, 7, 7, 20, 20
@ -215,7 +215,7 @@ END
IDD_DEVICERESOURCES DIALOGEX DISCARDABLE 0, 0, 252, 218 IDD_DEVICERESOURCES DIALOGEX DISCARDABLE 0, 0, 252, 218
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Resources" CAPTION "Prostøedky"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
ICON "", IDC_DEVICON, 7, 7, 20, 20 ICON "", IDC_DEVICON, 7, 7, 20, 20
@ -224,7 +224,7 @@ END
IDD_DEVICEPOWER DIALOGEX DISCARDABLE 0, 0, 252, 218 IDD_DEVICEPOWER DIALOGEX DISCARDABLE 0, 0, 252, 218
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Power" CAPTION "Napájení"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
ICON "", IDC_DEVICON, 7, 7, 20, 20 ICON "", IDC_DEVICON, 7, 7, 20, 20

View file

@ -1540,7 +1540,7 @@ SelectObject(HDC hDC,
PDC_ATTR pDc_Attr; PDC_ATTR pDc_Attr;
HGDIOBJ hOldObj = NULL; HGDIOBJ hOldObj = NULL;
UINT uType; UINT uType;
// PTEB pTeb; PTEB pTeb;
if(!GdiGetHandleUserData(hDC, GDI_OBJECT_TYPE_DC, (PVOID)&pDc_Attr)) if(!GdiGetHandleUserData(hDC, GDI_OBJECT_TYPE_DC, (PVOID)&pDc_Attr))
{ {
@ -1582,7 +1582,6 @@ SelectObject(HDC hDC,
case GDI_OBJECT_TYPE_FONT: case GDI_OBJECT_TYPE_FONT:
hOldObj = pDc_Attr->hlfntNew; hOldObj = pDc_Attr->hlfntNew;
if (hOldObj == hGdiObj) return hOldObj; if (hOldObj == hGdiObj) return hOldObj;
#if 0
pDc_Attr->ulDirty_ &= ~SLOW_WIDTHS; pDc_Attr->ulDirty_ &= ~SLOW_WIDTHS;
pDc_Attr->ulDirty_ |= DIRTY_CHARSET; pDc_Attr->ulDirty_ |= DIRTY_CHARSET;
pDc_Attr->hlfntNew = hGdiObj; pDc_Attr->hlfntNew = hGdiObj;
@ -1604,7 +1603,6 @@ SelectObject(HDC hDC,
if (pTeb->GdiBatchCount >= GDI_BatchLimit) NtGdiFlush(); if (pTeb->GdiBatchCount >= GDI_BatchLimit) NtGdiFlush();
return hOldObj; return hOldObj;
} }
#endif
// default for select object font // default for select object font
return NtGdiSelectFont(hDC, hGdiObj); return NtGdiSelectFont(hDC, hGdiObj);

View file

@ -104,7 +104,6 @@ BOOL
FASTCALL FASTCALL
DeleteRegion( HRGN hRgn ) DeleteRegion( HRGN hRgn )
{ {
//#if 0
PRGN_ATTR Rgn_Attr; PRGN_ATTR Rgn_Attr;
if ((GdiGetHandleUserData((HGDIOBJ) hRgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr)) && if ((GdiGetHandleUserData((HGDIOBJ) hRgn, GDI_OBJECT_TYPE_REGION, (PVOID) &Rgn_Attr)) &&
@ -128,7 +127,6 @@ DeleteRegion( HRGN hRgn )
} }
} }
} }
//#endif
return NtGdiDeleteObjectApp((HGDIOBJ) hRgn); return NtGdiDeleteObjectApp((HGDIOBJ) hRgn);
} }
@ -581,8 +579,110 @@ INT
WINAPI WINAPI
ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode) ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
{ {
/* FIXME some part need be done on user mode size */ INT Ret;
return NtGdiExtSelectClipRgn(hdc,hrgn, iMode); HRGN NewRgn = NULL;
#if 0
// Handle something other than a normal dc object.
if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
{
if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
return MFDRV_ExtSelectClipRgn( hdc, );
else
{
PLDC pLDC = GdiGetLDC(hdc);
if ( pLDC )
{
if (pLDC->iType != LDC_EMFLDC || EMFDRV_ExtSelectClipRgn( hdc, ))
return NtGdiExtSelectClipRgn(hdc, );
}
else
SetLastError(ERROR_INVALID_HANDLE);
return ERROR;
}
}
#endif
#if 0
if ( hrgn )
{
if ( GetLayout(hdc) & LAYOUT_RTL )
{
if ( MirrorRgnDC(hdc, hrgn, &NewRgn) )
{
if ( NewRgn ) hrgn = NewRgn;
}
}
}
#endif
/* Batch handles RGN_COPY only! */
if (iMode == RGN_COPY)
{
#if 0
PDC_ATTR pDc_Attr;
PRGN_ATTR pRgn_Attr = NULL;
/* hrgn can be NULL unless the RGN_COPY mode is specified. */
if (hrgn)
GdiGetHandleUserData((HGDIOBJ) hrgn, GDI_OBJECT_TYPE_REGION, (PVOID) &pRgn_Attr);
if ( GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &pDc_Attr) &&
pDc_Attr )
{
PGDI_TABLE_ENTRY pEntry = GdiHandleTable + GDI_HANDLE_GET_INDEX(hdc);
PTEB pTeb = NtCurrentTeb();
if ( pTeb->Win32ThreadInfo != NULL &&
pTeb->GdiTebBatch.HDC == hdc &&
!(pDc_Attr->ulDirty_ & DC_DIBSECTION) &&
!(pEntry->Flags & GDI_ENTRY_VALIDATE_VIS) )
{
if (!hrgn ||
(hrgn && pRgn_Attr && pRgn_Attr->Flags <= SIMPLEREGION) )
{
if ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSEXTSELCLPRGN)) <= GDIBATCHBUFSIZE)
{
PGDIBSEXTSELCLPRGN pgO = (PGDIBSEXTSELCLPRGN)(&pTeb->GdiTebBatch.Buffer[0] +
pTeb->GdiTebBatch.Offset);
pgO->gbHdr.Cmd = GdiBCExtSelClipRgn;
pgO->gbHdr.Size = sizeof(GDIBSEXTSELCLPRGN);
pgO->fnMode = iMode;
if ( hrgn && pRgn_Attr )
{
Ret = pRgn_Attr->Flags;
if ( pDc_Attr->VisRectRegion.Rect.left >= pRgn_Attr->Rect.right ||
pDc_Attr->VisRectRegion.Rect.top >= pRgn_Attr->Rect.bottom ||
pDc_Attr->VisRectRegion.Rect.right <= pRgn_Attr->Rect.left ||
pDc_Attr->VisRectRegion.Rect.bottom <= pRgn_Attr->Rect.top )
Ret = NULLREGION;
pgO->left = pRgn_Attr->Rect.left;
pgO->top = pRgn_Attr->Rect.top;
pgO->right = pRgn_Attr->Rect.right;
pgO->bottom = pRgn_Attr->Rect.bottom;
}
else
{
Ret = pDc_Attr->VisRectRegion.Flags;
pgO->fnMode |= 0x80000000; // Set no hrgn mode.
}
pTeb->GdiTebBatch.Offset += sizeof(GDIBSEXTSELCLPRGN);
pTeb->GdiBatchCount++;
if (pTeb->GdiBatchCount >= GDI_BatchLimit) NtGdiFlush();
if ( NewRgn ) DeleteObject(NewRgn);
return Ret;
}
}
}
}
#endif
}
Ret = NtGdiExtSelectClipRgn(hdc, hrgn, iMode);
if ( NewRgn ) DeleteObject(NewRgn);
return Ret;
} }
/* /*

View file

@ -741,7 +741,7 @@ GetShortPathNameW (
} }
/* check for drive letter */ /* check for drive letter */
if (longpath[1] == ':' ) if (longpath[0] != '/' && longpath[1] == ':' )
{ {
tmpshortpath[0] = longpath[0]; tmpshortpath[0] = longpath[0];
tmpshortpath[1] = ':'; tmpshortpath[1] = ':';
@ -772,7 +772,7 @@ GetShortPathNameW (
tmplen = p - (longpath + lp); tmplen = p - (longpath + lp);
lstrcpynW(tmpshortpath + sp, longpath + lp, tmplen + 1); lstrcpynW(tmpshortpath + sp, longpath + lp, tmplen + 1);
/* Check, if the current element is a valid dos name */ /* Check, if the current element is a valid dos name */
if (tmplen <= 8+1+3+1) if (tmplen <= 8+1+3)
{ {
BOOLEAN spaces; BOOLEAN spaces;
memcpy(ustr_buf, longpath + lp, tmplen * sizeof(WCHAR)); memcpy(ustr_buf, longpath + lp, tmplen * sizeof(WCHAR));

View file

@ -1,6 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> <!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<group> <group xmlns:xi="http://www.w3.org/2001/XInclude">
<module name="msacm32" type="win32dll" baseaddress="${BASEADDRESS_MSACM32}" installbase="system32" installname="msacm32.dll" unicode="yes"> <module name="msacm32" type="win32dll" baseaddress="${BASEADDRESS_MSACM32}" installbase="system32" installname="msacm32.dll" unicode="yes">
<importlibrary definition="msacm32.spec" /> <importlibrary definition="msacm32.spec" />
<include base="msacm32">.</include> <include base="msacm32">.</include>

View file

@ -7,7 +7,7 @@
@ stub CallFunctionShim @ stub CallFunctionShim
@ stub CloseCtrs @ stub CloseCtrs
@ stub ClrCreateManagedInstance @ stdcall ClrCreateManagedInstance(wstr ptr ptr)
@ stub CoEEShutDownCOM @ stub CoEEShutDownCOM
@ stdcall CoInitializeCor(long) @ stdcall CoInitializeCor(long)
@ stub CoInitializeEE @ stub CoInitializeEE

View file

@ -91,9 +91,9 @@ HRESULT WINAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor
{ {
WCHAR *mono_exe; WCHAR *mono_exe;
FIXME("(%s, %s, %s, %p, %d, %p, %p, %p): semi-stub!\n", debugstr_w(pwszVersion), FIXME("(%s, %s, %s, %p, %d, %s, %s, %p): semi-stub!\n", debugstr_w(pwszVersion),
debugstr_w(pwszBuildFlavor), debugstr_w(pwszHostConfigFile), pReserved, debugstr_w(pwszBuildFlavor), debugstr_w(pwszHostConfigFile), pReserved,
startupFlags, rclsid, riid, ppv); startupFlags, debugstr_guid(rclsid), debugstr_guid(riid), ppv);
if (!(mono_exe = get_mono_exe())) if (!(mono_exe = get_mono_exe()))
{ {
@ -144,6 +144,11 @@ __int32 WINAPI _CorExeMain(void)
PROCESS_INFORMATION pi; PROCESS_INFORMATION pi;
WCHAR *mono_exe, *cmd_line; WCHAR *mono_exe, *cmd_line;
DWORD size, exit_code; DWORD size, exit_code;
static const WCHAR WINE_MONO_TRACE[]={'W','I','N','E','_','M','O','N','O','_','T','R','A','C','E',0};
static const WCHAR trace_switch_start[]={'"','-','-','t','r','a','c','e','=',0};
static const WCHAR trace_switch_end[]={'"',' ',0};
int trace_size;
WCHAR trace_setting[256];
if (!(mono_exe = get_mono_exe())) if (!(mono_exe = get_mono_exe()))
{ {
@ -151,7 +156,13 @@ __int32 WINAPI _CorExeMain(void)
return -1; return -1;
} }
trace_size = GetEnvironmentVariableW(WINE_MONO_TRACE, trace_setting, sizeof(trace_setting)/sizeof(WCHAR));
size = (lstrlenW(mono_exe) + lstrlenW(GetCommandLineW()) + 1) * sizeof(WCHAR); size = (lstrlenW(mono_exe) + lstrlenW(GetCommandLineW()) + 1) * sizeof(WCHAR);
if (trace_size)
size += (trace_size + lstrlenW(trace_switch_start) + lstrlenW(trace_switch_end)) * sizeof(WCHAR);
if (!(cmd_line = HeapAlloc(GetProcessHeap(), 0, size))) if (!(cmd_line = HeapAlloc(GetProcessHeap(), 0, size)))
{ {
HeapFree(GetProcessHeap(), 0, mono_exe); HeapFree(GetProcessHeap(), 0, mono_exe);
@ -160,6 +171,14 @@ __int32 WINAPI _CorExeMain(void)
lstrcpyW(cmd_line, mono_exe); lstrcpyW(cmd_line, mono_exe);
HeapFree(GetProcessHeap(), 0, mono_exe); HeapFree(GetProcessHeap(), 0, mono_exe);
if (trace_size)
{
lstrcatW(cmd_line, trace_switch_start);
lstrcatW(cmd_line, trace_setting);
lstrcatW(cmd_line, trace_switch_end);
}
lstrcatW(cmd_line, GetCommandLineW()); lstrcatW(cmd_line, GetCommandLineW());
TRACE("new command line: %s\n", debugstr_w(cmd_line)); TRACE("new command line: %s\n", debugstr_w(cmd_line));
@ -271,7 +290,7 @@ HRESULT WINAPI CoInitializeCor(DWORD fFlags)
HRESULT WINAPI GetAssemblyMDImport(LPCWSTR szFileName, REFIID riid, IUnknown **ppIUnk) HRESULT WINAPI GetAssemblyMDImport(LPCWSTR szFileName, REFIID riid, IUnknown **ppIUnk)
{ {
FIXME("(%p %s, %p, %p): stub\n", szFileName, debugstr_w(szFileName), riid, *ppIUnk); FIXME("(%p %s, %s, %p): stub\n", szFileName, debugstr_w(szFileName), debugstr_guid(riid), *ppIUnk);
return ERROR_CALL_NOT_IMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED;
} }
@ -324,6 +343,12 @@ HRESULT WINAPI CorBindToCurrentRuntime(LPCWSTR filename, REFCLSID rclsid, REFIID
return E_NOTIMPL; return E_NOTIMPL;
} }
STDAPI ClrCreateManagedInstance(LPCWSTR pTypeName, REFIID riid, void **ppObject)
{
FIXME("(%s,%s,%p)\n", debugstr_w(pTypeName), debugstr_guid(riid), ppObject);
return E_NOTIMPL;
}
BOOL WINAPI StrongNameSignatureVerification(LPCWSTR filename, DWORD inFlags, DWORD* pOutFlags) BOOL WINAPI StrongNameSignatureVerification(LPCWSTR filename, DWORD inFlags, DWORD* pOutFlags)
{ {
FIXME("(%s, 0x%X, %p): stub\n", debugstr_w(filename), inFlags, pOutFlags); FIXME("(%s, 0x%X, %p): stub\n", debugstr_w(filename), inFlags, pOutFlags);
@ -338,7 +363,7 @@ BOOL WINAPI StrongNameSignatureVerificationEx(LPCWSTR filename, BOOL forceVerifi
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{ {
FIXME("(%p, %p, %p): stub\n", rclsid, riid, ppv); FIXME("(%s, %s, %p): stub\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
if(!ppv) if(!ppv)
return E_INVALIDARG; return E_INVALIDARG;

View file

@ -655,7 +655,7 @@ static HRESULT WINAPI ActiveIMMApp_Deactivate(IActiveIMMApp* This)
static HRESULT WINAPI ActiveIMMApp_OnDefWindowProc(IActiveIMMApp* This, static HRESULT WINAPI ActiveIMMApp_OnDefWindowProc(IActiveIMMApp* This,
HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult) HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, LRESULT *plResult)
{ {
FIXME("Stub (%p %x %lx %lx)\n",hWnd,Msg,wParam,lParam); //FIXME("Stub (%p %x %lx %lx)\n",hWnd,Msg,wParam,lParam);
return E_FAIL; return E_FAIL;
} }

View file

@ -1,12 +1,17 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT /* FILE: dll/win32/netcfgx/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2010-03-14
* THANKS TO: potapnik, who translated part of this file
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDD_TCPIP_BASIC_DLG DIALOGEX DISCARDABLE 0, 0, 246, 228 IDD_TCPIP_BASIC_DLG DIALOGEX DISCARDABLE 0, 0, 246, 228
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Obecné nastavení" CAPTION "Obecné nastavení"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Konfigurace IP adres mùže probìhnout automaticky, pokud to Vaše sí<73> dovoluje. V opaèném pøípadì kontaktujte správce sítì pro správné nastavení.", -1, 9, 9, 228, 27 LTEXT "Konfigurace IP adres může proběhnout automaticky, pokud to síť dovoluje. V opačném případě kontaktujte správce sítě pro správné nastavení.", -1, 9, 9, 228, 27
CONTROL "Získat IP adresu automaticky", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP, 14, 43, 210, 12 CONTROL "Získat IP adresu automaticky", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP, 14, 43, 210, 12
GROUPBOX "", -1, 9, 61, 228, 70, BS_GROUPBOX GROUPBOX "", -1, 9, 61, 228, 70, BS_GROUPBOX
CONTROL "&Použít následující IP adresu:", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON, 14, 59, 105, 12 CONTROL "&Použít následující IP adresu:", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON, 14, 59, 105, 12
@ -28,43 +33,43 @@ END
IDD_TCPIP_ALTCF_DLG DIALOGEX DISCARDABLE 0, 0, 246, 228 IDD_TCPIP_ALTCF_DLG DIALOGEX DISCARDABLE 0, 0, 246, 228
STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION
CAPTION "Alternate Configuration" CAPTION "Alternativní konfigurace"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "If this computer is used on more than one network, enter the alternate IP settings below", -1, 9, 9, 220, 20 LTEXT "Pokud je tento počítač používán ve více než jedné síti, lze zadat alternativní nastavení níže", -1, 9, 9, 220, 20
CONTROL "Au&tomatic private IP address", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 40, 210, 12 CONTROL "Au&tomatická privátní IP adresa", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 40, 210, 12
GROUPBOX "", -1, 9, 55, 228, 80, BS_GROUPBOX GROUPBOX "", -1, 9, 55, 228, 80, BS_GROUPBOX
CONTROL "U&ser configured", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 55, 70, 12 CONTROL "&Uživatelské nastavení", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 55, 70, 12
LTEXT "&IP address:", -1, 14, 75, 135, 8 LTEXT "&IP adresa:", -1, 14, 75, 135, 8
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 150, 75, 80, 12 CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 150, 75, 80, 12
LTEXT "S&ubnet mask:", -1, 14, 95, 135, 8 LTEXT "&Maska podsítě:", -1, 14, 95, 135, 8
CONTROL "",IDC_SUBNETMASK,"SysIPAddress32",WS_TABSTOP, 150, 95, 80, 12 CONTROL "",IDC_SUBNETMASK,"SysIPAddress32",WS_TABSTOP, 150, 95, 80, 12
LTEXT "&Default gateway:", -1, 14, 115, 135, 8 LTEXT "&Výchozí brána:", -1, 14, 115, 135, 8
CONTROL "",IDC_DEFGATEWAY,"SysIPAddress32",WS_TABSTOP, 150, 115, 80, 12 CONTROL "",IDC_DEFGATEWAY,"SysIPAddress32",WS_TABSTOP, 150, 115, 80, 12
LTEXT "&Preferred DNS server:", -1, 14, 150, 135, 8 LTEXT "&Preferovaný DNS server:", -1, 14, 150, 135, 8
CONTROL "",IDC_DNS1,"SysIPAddress32",WS_TABSTOP, 150, 150, 80, 12 CONTROL "",IDC_DNS1,"SysIPAddress32",WS_TABSTOP, 150, 150, 80, 12
LTEXT "&Alternate DNS server:", -1, 14, 165, 180, 8 LTEXT "&Alternativní DNS server:", -1, 14, 165, 180, 8
CONTROL "",IDC_DNS2,"SysIPAddress32",WS_TABSTOP, 150, 165, 80, 12 CONTROL "",IDC_DNS2,"SysIPAddress32",WS_TABSTOP, 150, 165, 80, 12
END END
IDD_TCPIP_ADVIP_DLG DIALOGEX DISCARDABLE 0, 0, 247, 247 IDD_TCPIP_ADVIP_DLG DIALOGEX DISCARDABLE 0, 0, 247, 247
STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION
CAPTION "IP Settings" CAPTION "IP nastavení"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
GROUPBOX "IP addresses", -1, 5, 5, 240, 90 GROUPBOX "IP adresy", -1, 5, 5, 240, 90
CONTROL "", IDC_IPLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 15, 15, 210, 55 CONTROL "", IDC_IPLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 15, 15, 210, 55
PUSHBUTTON "Add...", IDC_IPADD, 60, 75, 50, 14, WS_TABSTOP PUSHBUTTON "Přidat...", IDC_IPADD, 60, 75, 50, 14, WS_TABSTOP
PUSHBUTTON "Edit...", IDC_IPMOD, 120, 75, 50, 14, WS_TABSTOP PUSHBUTTON "Upravit...", IDC_IPMOD, 120, 75, 50, 14, WS_TABSTOP
PUSHBUTTON "Remove", IDC_IPDEL, 180, 75, 50, 14, WS_TABSTOP PUSHBUTTON "Odebrat", IDC_IPDEL, 180, 75, 50, 14, WS_TABSTOP
GROUPBOX "Default gateways:", -1, 5, 100, 240, 90 GROUPBOX "Výchozí brány:", -1, 5, 100, 240, 90
CONTROL "", IDC_GWLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 15, 110, 210, 55 CONTROL "", IDC_GWLIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 15, 110, 210, 55
PUSHBUTTON "Add...", IDC_GWADD, 60, 170, 50, 14, WS_TABSTOP PUSHBUTTON "Přidat...", IDC_GWADD, 60, 170, 50, 14, WS_TABSTOP
PUSHBUTTON "Edit...", IDC_GWMOD, 120, 170, 50, 14, WS_TABSTOP PUSHBUTTON "Upravit...", IDC_GWMOD, 120, 170, 50, 14, WS_TABSTOP
PUSHBUTTON "Remove", IDC_GWDEL, 180, 170, 50, 14, WS_TABSTOP PUSHBUTTON "Odebrat", IDC_GWDEL, 180, 170, 50, 14, WS_TABSTOP
GROUPBOX "", -1, 5, 200, 240, 30 GROUPBOX "", -1, 5, 200, 240, 30
CHECKBOX "Automatic metric", IDC_AUTOMETRIC, 9, 200, 90, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Automatická metrika", IDC_AUTOMETRIC, 9, 200, 90, 12, BS_AUTOCHECKBOX | WS_TABSTOP
LTEXT "Interface metric:", -1, 15, 215, 90, 12 LTEXT "Metrika rozhraní:", -1, 15, 215, 90, 12
EDITTEXT IDC_METRIC, 110, 212, 50, 12, WS_TABSTOP | ES_NUMBER EDITTEXT IDC_METRIC, 110, 212, 50, 12, WS_TABSTOP | ES_NUMBER
END END
@ -74,158 +79,158 @@ CAPTION "DNS"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LISTBOX IDC_DNSADDRLIST, 5, 15, 180, 60, LBS_NOTIFY LISTBOX IDC_DNSADDRLIST, 5, 15, 180, 60, LBS_NOTIFY
LTEXT "D&NS server addresses, in order of use:", -1, 5, 5, 180, 12 LTEXT "&Adresy DNS serverů v pořadí využití:", -1, 5, 5, 180, 12
PUSHBUTTON "Up", IDC_DNSADDRUP, 190, 30, 50, 14, WS_TABSTOP PUSHBUTTON "Nahoru", IDC_DNSADDRUP, 190, 30, 50, 14, WS_TABSTOP
PUSHBUTTON "Down", IDC_DNSADDRDOWN, 190, 50, 50, 14, WS_TABSTOP PUSHBUTTON "Do", IDC_DNSADDRDOWN, 190, 50, 50, 14, WS_TABSTOP
PUSHBUTTON "&Add...", IDC_DNSADDRADD, 30, 70, 50, 14, WS_TABSTOP PUSHBUTTON "&Přidat...", IDC_DNSADDRADD, 30, 70, 50, 14, WS_TABSTOP
PUSHBUTTON "&Edit...", IDC_DNSADDRMOD, 100, 70, 50, 14, WS_TABSTOP PUSHBUTTON "&Upravit...", IDC_DNSADDRMOD, 100, 70, 50, 14, WS_TABSTOP
PUSHBUTTON "Remo&ve", IDC_DNSADDRDEL, 170, 70, 50, 14, WS_TABSTOP PUSHBUTTON "&Odebrat", IDC_DNSADDRDEL, 170, 70, 50, 14, WS_TABSTOP
LTEXT "The following three settings are applied to all connections with TCP/IP enabled. For resolution of unqualified names:", -1, 5, 90, 220, 24 LTEXT "Následující tři nastavení jsou aplikována na všechna připojení s povoleným TCP/IP. Při rezoluci nekvalifikovaných jmen:", -1, 5, 90, 220, 24
CONTROL "Append &primary and connection specific DNS suffixes", IDC_PRIMSUFFIX, "BUTTON", BS_AUTORADIOBUTTON, 5, 110, 160, 12 CONTROL "Připojit p&rimární a připojením dané DNS přípony", IDC_PRIMSUFFIX, "BUTTON", BS_AUTORADIOBUTTON, 5, 110, 160, 12
CHECKBOX "Append parent suffi&xes of the primary DNS suffix", IDC_TOPPRIMSUFFIX, 15, 125, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Připojit rodičovské přípony primární DNS přípony", IDC_TOPPRIMSUFFIX, 15, 125, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CONTROL "Append t&hese DNS suffixes(in order):", IDC_SELSUFFIX, "BUTTON", BS_AUTORADIOBUTTON, 5, 140, 190, 12 CONTROL "Připojit &tyto DNS přípony (v tomto pořadí):", IDC_SELSUFFIX, "BUTTON", BS_AUTORADIOBUTTON, 5, 140, 190, 12
LISTBOX IDC_DNSSUFFIXLIST, 5, 155, 180, 60, LBS_NOTIFY LISTBOX IDC_DNSSUFFIXLIST, 5, 155, 180, 60, LBS_NOTIFY
PUSHBUTTON "Up", IDC_DNSSUFFIXUP, 190, 170, 50, 14, WS_TABSTOP PUSHBUTTON "Nahoru", IDC_DNSSUFFIXUP, 190, 170, 50, 14, WS_TABSTOP
PUSHBUTTON "Down", IDC_DNSSUFFIXDOWN, 190, 190, 50, 14, WS_TABSTOP PUSHBUTTON "Do", IDC_DNSSUFFIXDOWN, 190, 190, 50, 14, WS_TABSTOP
PUSHBUTTON "&Add...", IDC_DNSSUFFIXADD, 30, 210, 50, 14, WS_TABSTOP PUSHBUTTON "&Přidat...", IDC_DNSSUFFIXADD, 30, 210, 50, 14, WS_TABSTOP
PUSHBUTTON "&Edit...", IDC_DNSSUFFIXMOD, 100, 210, 50, 14, WS_TABSTOP PUSHBUTTON "&Upravit...", IDC_DNSSUFFIXMOD, 100, 210, 50, 14, WS_TABSTOP
PUSHBUTTON "Remo&ve", IDC_DNSSUFFIXDEL, 170, 210, 50, 14, WS_TABSTOP PUSHBUTTON "&Odebrat", IDC_DNSSUFFIXDEL, 170, 210, 50, 14, WS_TABSTOP
LTEXT "DNS &suffix for this connection:", -1, 5, 225, 110, 14 LTEXT "DNS přípo&na tohoto připojení:", -1, 5, 225, 110, 14
EDITTEXT IDC_SUFFIX, 120, 225, 100, 12, WS_TABSTOP EDITTEXT IDC_SUFFIX, 120, 225, 100, 12, WS_TABSTOP
CHECKBOX "&Register this connection's addresses in DNS", IDC_REGSUFFIX, 15, 240, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Registrovat &adresy tohoto připojení v DNS", IDC_REGSUFFIX, 15, 240, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Use this connection's DNS suffix in DNS registration", IDC_USESUFFIX, 15, 255, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "P&oužít DNS příponu tohoto připojení při DNS registraci", IDC_USESUFFIX, 15, 255, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
END END
IDD_TCPIP_ADVOPT_DLG DIALOGEX DISCARDABLE 0, 0, 247, 247 IDD_TCPIP_ADVOPT_DLG DIALOGEX DISCARDABLE 0, 0, 247, 247
STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION
CAPTION "Options" CAPTION "Volby"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LISTBOX IDC_OPTLIST, 5, 30, 230, 70 LISTBOX IDC_OPTLIST, 5, 30, 230, 70
LTEXT "&Optional settings", -1, 5, 15, 130, 12 LTEXT "&Volitelná nastavení", -1, 5, 15, 130, 12
PUSHBUTTON "&Properties", IDC_OPTPROP, 160, 100, 70, 14, WS_TABSTOP PUSHBUTTON "&Podrobnosti", IDC_OPTPROP, 160, 100, 70, 14, WS_TABSTOP
GROUPBOX "Description:", -1, 5, 120, 240, 70 GROUPBOX "Popis:", -1, 5, 120, 240, 70
LTEXT "", IDC_OPTDESC, 15, 130, 220, 33 LTEXT "", IDC_OPTDESC, 15, 130, 220, 33
END END
IDD_TCPIPADDIP_DLG DIALOGEX DISCARDABLE 0, 0, 200, 70 IDD_TCPIPADDIP_DLG DIALOGEX DISCARDABLE 0, 0, 200, 70
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP/IP Address" CAPTION "TCP/IP adresa"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 100, 15, 80, 12 CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 100, 15, 80, 12
LTEXT "IP address:", -1, 5, 15, 70, 12 LTEXT "IP adresa:", -1, 5, 15, 70, 12
LTEXT "Subnet mask:", -1, 5, 30, 70, 12 LTEXT "Maska podsítě:", -1, 5, 30, 70, 12
CONTROL "",IDC_SUBNETMASK,"SysIPAddress32", WS_TABSTOP, 100, 30, 80, 12 CONTROL "",IDC_SUBNETMASK,"SysIPAddress32", WS_TABSTOP, 100, 30, 80, 12
PUSHBUTTON "", IDC_OK, 50, 50, 50, 14, WS_TABSTOP PUSHBUTTON "OK", IDC_OK, 50, 50, 50, 14, WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
END END
IDD_TCPIPGW_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80 IDD_TCPIPGW_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP/IP Gateway Address" CAPTION "TCP/IP adresa brány"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 100, 15, 80, 12 CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 100, 15, 80, 12
LTEXT "Gateway:", -1, 5, 15, 70, 12 LTEXT "Brána:", -1, 5, 15, 70, 12
CHECKBOX "Automatic metric", IDC_USEMETRIC, 15, 30, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Automatická metrika", IDC_USEMETRIC, 15, 30, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
LTEXT "&Metric:", IDC_METRICTXT, 5, 45, 45, 12, WS_DISABLED LTEXT "&Metrika:", IDC_METRICTXT, 5, 45, 45, 12, WS_DISABLED
EDITTEXT IDC_METRIC, 100, 45, 50, 12, WS_TABSTOP | ES_NUMBER | WS_DISABLED EDITTEXT IDC_METRIC, 100, 45, 50, 12, WS_TABSTOP | ES_NUMBER | WS_DISABLED
PUSHBUTTON "", IDC_OK, 50, 60, 50, 14, WS_TABSTOP PUSHBUTTON "", IDC_OK, 50, 60, 50, 14, WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 110, 60, 50, 14, WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 110, 60, 50, 14, WS_TABSTOP
END END
IDD_TCPIPDNS_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80 IDD_TCPIPDNS_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP/IP DNS Server" CAPTION "TCP/IP DNS server"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 5, 25, 80, 12 CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 5, 25, 80, 12
LTEXT "DNS server:", -1, 5, 10, 120, 12 LTEXT "DNS server:", -1, 5, 10, 120, 12
PUSHBUTTON "", IDC_OK, 50, 50, 50, 14, WS_TABSTOP PUSHBUTTON "", IDC_OK, 50, 50, 50, 14, WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
END END
IDD_TCPIPSUFFIX_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80 IDD_TCPIPSUFFIX_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP/IP Domain Suffix" CAPTION "TCP/IP doménová přípona"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
EDITTEXT IDC_SUFFIX, 5, 25, 190, 12, WS_TABSTOP EDITTEXT IDC_SUFFIX, 5, 25, 190, 12, WS_TABSTOP
LTEXT "Domain suffix:", -1, 5, 10, 120, 12 LTEXT "Doménová přípona:", -1, 5, 10, 120, 12
PUSHBUTTON "", IDC_OK, 50, 50, 50, 14, WS_TABSTOP PUSHBUTTON "", IDC_OK, 50, 50, 50, 14, WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
END END
IDD_TCPIP_FILTER_DLG DIALOGEX DISCARDABLE 0, 0, 305, 220 IDD_TCPIP_FILTER_DLG DIALOGEX DISCARDABLE 0, 0, 305, 220
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "TCP/IP Filtering" CAPTION "TCP/IP filtrování"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
CHECKBOX "Enable TCP/IP-Filtering (All adapters)", IDC_USE_FILTER, 15, 5, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Zapnout filtrování TCP/IP (všechny adaptéry)", IDC_USE_FILTER, 15, 5, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
GROUPBOX "", -1, 5, 30, 90, 150 GROUPBOX "", -1, 5, 30, 90, 150
CONTROL "Permit All", IDC_TCP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 30, 70, 12 CONTROL "Povolit vše", IDC_TCP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 30, 70, 12
CONTROL "Permit Only", IDC_TCP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 44, 70, 12 CONTROL "Povolit pouze", IDC_TCP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 44, 70, 12
CONTROL "", IDC_TCP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 11, 62, 72, 75 CONTROL "", IDC_TCP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 11, 62, 72, 75
PUSHBUTTON "Add", IDC_TCP_ADD, 15, 141, 50, 14, WS_TABSTOP PUSHBUTTON "Přidat", IDC_TCP_ADD, 15, 141, 50, 14, WS_TABSTOP
PUSHBUTTON "Remove", IDC_TCP_DEL, 15, 161, 50, 14, WS_TABSTOP PUSHBUTTON "Odebrat", IDC_TCP_DEL, 15, 161, 50, 14, WS_TABSTOP
GROUPBOX "", -1, 105, 30, 90, 150 GROUPBOX "", -1, 105, 30, 90, 150
CONTROL "Permit All", IDC_UDP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 115, 30, 70, 12 CONTROL "Povolit vše", IDC_UDP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 115, 30, 70, 12
CONTROL "Permit Only", IDC_UDP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 115, 44, 70, 12 CONTROL "Povolit pouze", IDC_UDP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 115, 44, 70, 12
CONTROL "", IDC_UDP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 111, 62, 72, 75 CONTROL "", IDC_UDP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 111, 62, 72, 75
PUSHBUTTON "Add", IDC_UDP_ADD, 115, 141, 50, 14, WS_TABSTOP PUSHBUTTON "Přidat", IDC_UDP_ADD, 115, 141, 50, 14, WS_TABSTOP
PUSHBUTTON "Remove", IDC_UDP_DEL, 115, 161, 50, 14, WS_TABSTOP PUSHBUTTON "Odebrat", IDC_UDP_DEL, 115, 161, 50, 14, WS_TABSTOP
GROUPBOX "", -1, 205, 30, 90, 150 GROUPBOX "", -1, 205, 30, 90, 150
CONTROL "Permit All", IDC_IP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 215, 30, 70, 12 CONTROL "Povolit vše", IDC_IP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 215, 30, 70, 12
CONTROL "Permit Only", IDC_IP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 215, 44, 70, 12 CONTROL "Povolit pouze", IDC_IP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 215, 44, 70, 12
CONTROL "", IDC_IP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 211, 62, 72, 75 CONTROL "", IDC_IP_LIST, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 211, 62, 72, 75
PUSHBUTTON "Add", IDC_IP_ADD, 215, 141, 50, 14, WS_TABSTOP PUSHBUTTON "Přidat", IDC_IP_ADD, 215, 141, 50, 14, WS_TABSTOP
PUSHBUTTON "Remove", IDC_IP_DEL, 215, 161, 50, 14, WS_TABSTOP PUSHBUTTON "Odebrat", IDC_IP_DEL, 215, 161, 50, 14, WS_TABSTOP
PUSHBUTTON "OK", IDC_OK, 150, 190, 50, 14, WS_TABSTOP PUSHBUTTON "OK", IDC_OK, 150, 190, 50, 14, WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 210, 190, 50, 14, WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 210, 190, 50, 14, WS_TABSTOP
END END
IDD_TCPIP_PORT_DLG DIALOGEX DISCARDABLE 0, 0, 200, 60 IDD_TCPIP_PORT_DLG DIALOGEX DISCARDABLE 0, 0, 200, 60
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Add Filter" CAPTION "Přidat filtr"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
EDITTEXT IDC_PORT_VAL, 5, 30, 70, 12, WS_TABSTOP | ES_NUMBER EDITTEXT IDC_PORT_VAL, 5, 30, 70, 12, WS_TABSTOP | ES_NUMBER
LTEXT "", IDC_PORT_DESC, 5, 15, 40, 12 LTEXT "", IDC_PORT_DESC, 5, 15, 40, 12
PUSHBUTTON "OK", IDC_OK, 120, 15, 50, 14, WS_TABSTOP PUSHBUTTON "OK", IDC_OK, 120, 15, 50, 14, WS_TABSTOP
PUSHBUTTON "Cancel", IDCANCEL, 120, 30, 50, 14, WS_TABSTOP PUSHBUTTON "Storno", IDCANCEL, 120, 30, 50, 14, WS_TABSTOP
END END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_NET_CONNECT "Network connection" IDS_NET_CONNECT "Síťové připojení"
IDS_NO_IPADDR_SET "The adapter requires at least one IP address. Please enter one." IDS_NO_IPADDR_SET "Adaptér vyžaduje zadání alespoň jedné IP adresy."
IDS_NO_SUBMASK_SET "You have entered an address that is missing its subnet mask. Please add a subnet mask." IDS_NO_SUBMASK_SET "K zadané adrese je nutné doplnit masku podsítě."
IDS_TCPFILTERDESC "TCP/IP filtering allows you to control the type of TCP/IP network traffic that reaches your computer." IDS_TCPFILTERDESC "TCP/IP filtrování dovoluje kontrolovat typ TCP/IP síťového provozu, který se dostane k tomuto počítači."
IDS_TCPFILTER "TCP/IP Filtering" IDS_TCPFILTER "TCP/IP filtrování"
IDS_IPADDR "IP address" IDS_IPADDR "IP adresa"
IDS_SUBMASK "Subnet mask" IDS_SUBMASK "Maska podsítě"
IDS_GATEWAY "Gateway" IDS_GATEWAY "Brána"
IDS_METRIC "Metric" IDS_METRIC "Metrika"
IDS_DHCPACTIVE "DHCP Enabled" IDS_DHCPACTIVE "DHCP zapnuto"
IDS_AUTOMATIC "Automatic" IDS_AUTOMATIC "Automaticky"
IDS_NOITEMSEL "You have not selected an item. Select one first." IDS_NOITEMSEL "Nebyla vybrána žádná položka."
IDS_TCPIP "ReactOS-TCP/IP" IDS_TCPIP "ReactOS-TCP/IP"
IDS_ADD "Add" IDS_ADD "Přidat"
IDS_MOD "OK" IDS_MOD "OK"
IDS_TCP_PORTS "TCP Ports" IDS_TCP_PORTS "TCP porty"
IDS_UDP_PORTS "UDP Ports" IDS_UDP_PORTS "UDP porty"
IDS_IP_PROTO "IP protocols" IDS_IP_PROTO "IP protokoly"
IDS_PORT_RANGE "Port numbers must be greater than 0 and less than 65536. Please enter a number within this range." IDS_PORT_RANGE "Čísla portů musí být zadána vyšší než 0 a nižší než 65536."
IDS_PROT_RANGE "Protocol numbers must be greater than 0 and less than 256. Please enter a number within this range." IDS_PROT_RANGE "Čísla protokolů musí být zadána vyšší než 0 a nižší než 256."
IDS_DUP_NUMBER "The number you are trying to add is already in the list. Please enter a different number." IDS_DUP_NUMBER "Přidávané číslo se už nachází v seznamu. Je nutné zadat jiné číslo."
IDS_DISABLE_FILTER "Disabling this global TCP/IP setting will affect all adapters." IDS_DISABLE_FILTER "Vypnutí tohoto globálního nastavení TCP/IP ovlivní všechny adaptéry."
IDS_NO_SUFFIX "The current setting of search method requires at least one DNS suffix. Please enter one or change the setting." IDS_NO_SUFFIX "Současné nastavení metod vyhledávání vyžaduje alespoň jednu DNS příponu. Je nutné ji zadat nebo změnit nastavení."
IDS_DOMAIN_SUFFIX "Domain suffix is not a valid suffix." IDS_DOMAIN_SUFFIX "Zadaná doménová přípona není platná."
IDS_DNS_SUFFIX "The DNS domain name ""%s"" is not a valid DNS name." IDS_DNS_SUFFIX "DNS doménové jméno ""%s"" není platné."
IDS_DUP_SUFFIX "The DNS suffix is already on the list." IDS_DUP_SUFFIX "DNS přípona se už nachází v seznamu."
IDS_DUP_IPADDR "The IP address is already on the list." IDS_DUP_IPADDR "IP adresa se už nachází v seznamu."
IDS_DUP_GW "The default gateway is already on the list." IDS_DUP_GW "Výchozí brána se už nachází v seznamu."
END END

View file

@ -1,6 +1,6 @@
/* FILE: dll/win32/netid/lang/cs-CZ.rc /* FILE: dll/win32/netid/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com) * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2008-06-26 * UPDATED: 2010-03-14
*/ */
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
@ -18,10 +18,9 @@ BEGIN
LTEXT "(Implicitní)", IDC_COMPUTERNAME, 98, 68, 144, 11 LTEXT "(Implicitní)", IDC_COMPUTERNAME, 98, 68, 144, 11
LTEXT "Pracovní skupina:", IDC_WORKGROUPDOMAIN, 6, 84, 64, 9 LTEXT "Pracovní skupina:", IDC_WORKGROUPDOMAIN, 6, 84, 64, 9
LTEXT "(prázdné)", IDC_WORKGROUPDOMAIN_NAME, 98, 84, 144, 9 LTEXT "(prázdné)", IDC_WORKGROUPDOMAIN_NAME, 98, 84, 144, 9
LTEXT "Pokud chcete použít Prùvodce sí<73>ovou identifikací k pøipojení se k doménì a vytvoøení místního uživatele, kliknìte na ""Sí<53>ová ID"".", IDC_STATIC, 6, 113, 172, 24 LTEXT "Kliknutím na ""Síťová ID"" lze použít Průvodce síťovou identifikací k připojení se k doméně a vytvoření místního uživatele.", IDC_STATIC, 6, 113, 172, 24
//musi zustat jako sitova ID, jinak se nevejde na tlacitko! PUSHBUTTON "&Síťová ID...", IDC_NETWORK_ID, 190, 114, 58, 15 //FIXME nic vic nez "sitova ID" se nevejde na tlacitko!
PUSHBUTTON "&Sí<53>ová ID...", IDC_NETWORK_ID, 190, 114, 58, 15 LTEXT "Kliknutím na ""Změnit"" lze přejmenovat tento počítač nebo se připojit k doméně.", IDC_STATIC, 6, 149, 170, 17
LTEXT "Pokud chcete pøejmenovat tento poèítaè nebo se pøipojit k doménì, kliknìte na ""Zmìnit"".", IDC_STATIC, 6, 149, 170, 17
PUSHBUTTON "&Změnit...",IDC_NETWORK_PROPERTY, 190, 149, 58, 15 PUSHBUTTON "&Změnit...",IDC_NETWORK_PROPERTY, 190, 149, 58, 15
LTEXT "Poznámka: Identifikaci tohoto počítače mohou změnit pouze administrátoři.", IDC_STATIC, 6, 179, 300, 9 LTEXT "Poznámka: Identifikaci tohoto počítače mohou změnit pouze administrátoři.", IDC_STATIC, 6, 179, 300, 9
END END
@ -31,7 +30,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_CAPTIO
CAPTION "Změna názvu počítače" CAPTION "Změna názvu počítače"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "(message goes here)", 1017, 7, 5, 218, 30 LTEXT "(sem patří zpráva)", 1017, 7, 5, 218, 30
LTEXT "&Název počítače:", -1, 7, 41, 219, 8 LTEXT "&Název počítače:", -1, 7, 41, 219, 8
EDITTEXT 1002, 7, 53, 218, 14, ES_AUTOHSCROLL | ES_OEMCONVERT EDITTEXT 1002, 7, 53, 218, 14, ES_AUTOHSCROLL | ES_OEMCONVERT
LTEXT "Úplný název počítače:", 1016, 7, 72, 218, 10 LTEXT "Úplný název počítače:", 1016, 7, 72, 218, 10
@ -41,7 +40,7 @@ BEGIN
AUTORADIOBUTTON "&Domény:", 1008, 17, 132, 192, 10, WS_GROUP AUTORADIOBUTTON "&Domény:", 1008, 17, 132, 192, 10, WS_GROUP
AUTORADIOBUTTON "&Pracovní skupiny:", 1004, 17, 161, 191, 10 AUTORADIOBUTTON "&Pracovní skupiny:", 1004, 17, 161, 191, 10
EDITTEXT 116, 28, 144, 181, 14, ES_AUTOHSCROLL | WS_GROUP EDITTEXT 116, 28, 144, 181, 14, ES_AUTOHSCROLL | WS_GROUP
PUSHBUTTON "Najít moj&i doménu", 1010, 7, 203, 109, 14, NOT WS_VISIBLE | WS_DISABLED PUSHBUTTON "Najít &moji doménu", 1010, 7, 203, 109, 14, NOT WS_VISIBLE | WS_DISABLED
EDITTEXT 1007, 28, 172, 181, 14, ES_UPPERCASE | ES_AUTOHSCROLL | ES_OEMCONVERT EDITTEXT 1007, 28, 172, 181, 14, ES_UPPERCASE | ES_AUTOHSCROLL | ES_OEMCONVERT
DEFPUSHBUTTON "OK", 1, 121, 203, 50, 14, WS_GROUP DEFPUSHBUTTON "OK", 1, 121, 203, 50, 14, WS_GROUP
PUSHBUTTON "Storno", 2, 176, 203, 50, 14 PUSHBUTTON "Storno", 2, 176, 203, 50, 14
@ -65,7 +64,7 @@ END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
1 "* Neznámé *" 1 "* Neznámé *"
2 "WORKGROUP" 2 "SKUPINA"
3 "Při pokusu o načtení informací o členství v doméně nastala následující chyba:" 3 "Při pokusu o načtení informací o členství v doméně nastala následující chyba:"
4 "Změna názvu počítače" 4 "Změna názvu počítače"
5 "Pracovní skupina:" 5 "Pracovní skupina:"
@ -73,12 +72,12 @@ BEGIN
22 "Vítejte v pracovní skupině %1." 22 "Vítejte v pracovní skupině %1."
23 "Vítejte v doméně %1." 23 "Vítejte v doméně %1."
24 "Aby se změny mohly projevit, musí být počítač restartován." 24 "Aby se změny mohly projevit, musí být počítač restartován."
25 "You can change the name and the membership of this computer. Changes may affect access to network resources." 25 "Lze změnit název a členství tohoto počítače. Změny mohou mít vliv na přístup k síťovým prostředkům."
1021 "Poznámka: Identifikaci tohoto počítače mohou změnit pouze administrátoři." 1021 "Poznámka: Identifikaci tohoto počítače mohou změnit pouze administrátoři."
1022 "Poznámka: Identifikace počítače nemůže být změněna z následujících důvodů:" 1022 "Poznámka: Identifikace počítače nemůže být změněna z následujících důvodů:"
1030 "The new computer name ""%s"" contains characters which are not allowed. Characters which are not allowed include ` ~ ! @ # $ %% ^ & * ( ) = + _ [ ] { } \\ | ; : ' \" , . < > / and ?" 1030 "Nový název počítače ""%s"" obsahuje nepovolené znaky. Mezi nepovolené znaky patří ` ~ ! @ # $ %% ^ & * ( ) = + _ [ ] { } \\ | ; : ' \" , . < > / ?"
3210 "&Detaily >>" 3210 "&Detaily >>"
3220 "<< &Detaily" 3220 "<< &Detaily"
4000 "Information" 4000 "Informace"
4001 "Can't set new a computer name!" 4001 "Nelze nastavit nový název počítače!"
END END

View file

@ -67,13 +67,13 @@ BEGIN
6 "Dominio:" 6 "Dominio:"
22 "Benvenuto al gruppo di lavoro %1." 22 "Benvenuto al gruppo di lavoro %1."
23 "Benvenuto al dominio %1." 23 "Benvenuto al dominio %1."
24 "Il computer deve essre riavviato per rendere operative queste modifiche." 24 "Il computer deve essere riavviato per rendere operative queste modifiche."
25 "You can change the name and the membership of this computer. Changes may affect access to network resources." 25 "Potete modificare il nome e il dominio di questo computer. Le modifiche potrebbero influenzare l'accesso alle risorse di rete."
1021 "Nota: Solo gli Amministratori possono cambiare l'identificazione di questo computer." 1021 "Nota: Solo gli Amministratori possono cambiare l'identificazione di questo computer."
1022 "Nota: L'identificazione di questo computer non può essere cambiata perchè:" 1022 "Nota: L'identificazione di questo computer non può essere cambiata perchè:"
1030 "The new computer name ""%s"" contains characters which are not allowed. Characters which are not allowed include ` ~ ! @ # $ %% ^ & * ( ) = + _ [ ] { } \\ | ; : ' \" , . < > / and ?" 1030 "Il nuovo nome del computer ""%s"" contiene dei caratteri non permessi. I caratteri vietati sono `? ~ ! @ # $ %% ^ & * ( ) = + _ [ ] { } \\ | ; : ' \" , . < > / "
3210 "&Dettagli >>" 3210 "&Dettagli >>"
3220 "<< &Dettagli" 3220 "<< &Dettagli"
4000 "Information" 4000 "Informazioni"
4001 "Can't set new a computer name!" 4001 "Impossibile assegnare il nuovo nome del computer!"
END END

View file

@ -16,12 +16,12 @@ BEGIN
GROUPBOX "Popis", -1, 9, 153, 230, 46, BS_GROUPBOX GROUPBOX "Popis", -1, 9, 153, 230, 46, BS_GROUPBOX
LTEXT "Tak tady bude popis komponenty...", IDC_DESCRIPTION, 15, 165, 217, 28, WS_GROUP LTEXT "Tak tady bude popis komponenty...", IDC_DESCRIPTION, 15, 165, 217, 28, WS_GROUP
CHECKBOX "Po pøipojení zobrazit ikonu na hlavním panelu", IDC_SHOWTASKBAR, 9, 206, 230, 12, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "Po pøipojení zobrazit ikonu na hlavním panelu", IDC_SHOWTASKBAR, 9, 206, 230, 12, BS_AUTOCHECKBOX | WS_TABSTOP
CHECKBOX "&Notify me when this connection has limited or no connectivity", IDC_NOTIFYNOCONNECTION, 9, 220, 230, 24, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "&Upozornit, když toto připojení bude mít omezenou nebo žádnou konektivitu", IDC_NOTIFYNOCONNECTION, 9, 220, 230, 24, BS_AUTOCHECKBOX | WS_TABSTOP
END END
IDD_STATUS DIALOGEX DISCARDABLE 0, 0, 200, 280 IDD_STATUS DIALOGEX DISCARDABLE 0, 0, 200, 280
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "General" CAPTION "Obecné nastavení"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
END END
@ -65,62 +65,62 @@ BEGIN
RTEXT "000.000.000.000", IDC_DETAILSSUBNET, 122, 48, 80, 8 RTEXT "000.000.000.000", IDC_DETAILSSUBNET, 122, 48, 80, 8
RTEXT "", IDC_DETAILSGATEWAY, 122, 62, 80, 8 RTEXT "", IDC_DETAILSGATEWAY, 122, 62, 80, 8
PUSHBUTTON "&Detaily...", IDC_DETAILS, 22, 76, 62, 14 PUSHBUTTON "&Podrobnosti...", IDC_DETAILS, 22, 76, 62, 14
END END
IDD_LAN_NETSTATUSDETAILS DIALOGEX DISCARDABLE 0, 0, 200,200 IDD_LAN_NETSTATUSDETAILS DIALOGEX DISCARDABLE 0, 0, 200,200
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION
CAPTION "Network Connection Details" CAPTION "Podrobnosti síťového připojení"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Network Connection &Details:", -1, 15, 9, 170, 12 LTEXT "&Podrobnosti síťového připojení:", -1, 15, 9, 170, 12
CONTROL "", IDC_DETAILS, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 15, 25, 170, 130 CONTROL "", IDC_DETAILS, "SysListView32", LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_NOSORTHEADER | WS_BORDER | WS_TABSTOP, 15, 25, 170, 130
PUSHBUTTON "&Close", IDC_CLOSE, 125, 165, 62, 14 PUSHBUTTON "&zavřít", IDC_CLOSE, 125, 165, 62, 14
END END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN BEGIN
IDS_PHYSICAL_ADDRESS "Physical Address" IDS_PHYSICAL_ADDRESS "Fyzická adresa"
IDS_IP_ADDRESS "IP Address" IDS_IP_ADDRESS "IP Adresa"
IDS_SUBNET_MASK "Subnet Mask" IDS_SUBNET_MASK "Maska podsítě"
IDS_DEF_GATEWAY "Default Gateway" IDS_DEF_GATEWAY "Výchozí brána"
IDS_DHCP_SERVER "DHCP Server" IDS_DHCP_SERVER "DHCP server"
IDS_LEASE_OBTAINED "Lease Obtained" IDS_LEASE_OBTAINED "Zapůjčeno"
IDS_LEASE_EXPIRES "Lease Expires" IDS_LEASE_EXPIRES "Zapůjčení vyprší"
IDS_DNS_SERVERS "DNS Servers" IDS_DNS_SERVERS "DNS servery"
IDS_WINS_SERVERS "WINS Servers" IDS_WINS_SERVERS "WINS servery"
IDS_PROPERTY "Property" IDS_PROPERTY "Vlastnost"
IDS_VALUE "Value" IDS_VALUE "Hodnota"
IDS_NETWORKCONNECTION "Network Connection" IDS_NETWORKCONNECTION "Síťová připojení"
IDS_SHV_COLUMN_NAME "Name" IDS_SHV_COLUMN_NAME "Název"
IDS_SHV_COLUMN_TYPE "Type" IDS_SHV_COLUMN_TYPE "Typ"
IDS_SHV_COLUMN_STATE "Status" IDS_SHV_COLUMN_STATE "Status"
IDS_SHV_COLUMN_DEVNAME "Device Name" IDS_SHV_COLUMN_DEVNAME "Název zařízení"
IDS_SHV_COLUMN_PHONE "Phone # or Host Address" IDS_SHV_COLUMN_PHONE "Telefonní číslo nebo adresa hostitele"
IDS_SHV_COLUMN_OWNER "Owner" IDS_SHV_COLUMN_OWNER "Vlastník"
IDS_TYPE_ETHERNET "LAN or High-Speed Internet" IDS_TYPE_ETHERNET "LAN nebo vysokorychlostní internet"
IDS_STATUS_NON_OPERATIONAL "Disabled" IDS_STATUS_NON_OPERATIONAL "Vypnuto"
IDS_STATUS_UNREACHABLE "Not Connected" IDS_STATUS_UNREACHABLE "Nepřipojeno"
IDS_STATUS_DISCONNECTED "Network cable unplugged" IDS_STATUS_DISCONNECTED "Síťový kabel byl odpojen"
IDS_STATUS_CONNECTING "Acquiring network address" IDS_STATUS_CONNECTING "Získávám síťovou adresu"
IDS_STATUS_CONNECTED "Connected" IDS_STATUS_CONNECTED "Připojeno"
IDS_STATUS_OPERATIONAL "Connected" IDS_STATUS_OPERATIONAL "Připojeno"
IDS_NET_ACTIVATE "Enable" IDS_NET_ACTIVATE "Zapnout"
IDS_NET_DEACTIVATE "Disable" IDS_NET_DEACTIVATE "Vypnout"
IDS_NET_STATUS "Status" IDS_NET_STATUS "Status"
IDS_NET_REPAIR "Repair" IDS_NET_REPAIR "Opravit"
IDS_NET_CREATELINK "Create Shortcut" IDS_NET_CREATELINK "Vytvořit zástupce"
IDS_NET_DELETE "Delete" IDS_NET_DELETE "Smazat"
IDS_NET_RENAME "Rename" IDS_NET_RENAME "Přejmenovat"
IDS_NET_PROPERTIES "Properties" IDS_NET_PROPERTIES "Vlasnosti"
IDS_FORMAT_BIT "%u Bit/s" IDS_FORMAT_BIT "%u Bit/s"
IDS_FORMAT_KBIT "%u KBit/s" IDS_FORMAT_KBIT "%u KBit/s"
IDS_FORMAT_MBIT "%u MBit/s" IDS_FORMAT_MBIT "%u MBit/s"
IDS_FORMAT_GBIT "%u GBit/s" IDS_FORMAT_GBIT "%u GBit/s"
IDS_DURATION_DAY "%d Day %s" IDS_DURATION_DAY "%d Den %s"
IDS_DURATION_DAYS "%d Days %s" IDS_DURATION_DAYS "%d D %s"
IDS_ASSIGNED_DHCP "Pøiøazeno DHCP" IDS_ASSIGNED_DHCP "Pøiøazeno DHCP"
IDS_ASSIGNED_MANUAL "Ruènì nastaveno" IDS_ASSIGNED_MANUAL "Ruènì nastaveno"
END END

View file

@ -1236,7 +1236,7 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
DWORD ObjectsPresent; DWORD ObjectsPresent;
BOOL needToClean; BOOL needToClean;
PSID pSid1, pSid2; PSID pSid1, pSid2;
ULONG i; ULONG i, j;
LSA_HANDLE PolicyHandle = NULL; LSA_HANDLE PolicyHandle = NULL;
BOOL bRet; BOOL bRet;
DWORD LastErr; DWORD LastErr;
@ -1295,11 +1295,11 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
case REVOKE_ACCESS: case REVOKE_ACCESS:
case SET_ACCESS: case SET_ACCESS:
/* Discard all accesses for the trustee... */ /* Discard all accesses for the trustee... */
for (i = 0; i < SizeInformation.AceCount; i++) for (j = 0; j < SizeInformation.AceCount; j++)
{ {
if (!pKeepAce[i]) if (!pKeepAce[j])
continue; continue;
if (!GetAce(OldAcl, i, (PVOID*)&pAce)) if (!GetAce(OldAcl, j, (PVOID*)&pAce))
{ {
Ret = GetLastError(); Ret = GetLastError();
goto Cleanup; goto Cleanup;
@ -1308,7 +1308,7 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
pSid2 = AccpGetAceSid(pAce); pSid2 = AccpGetAceSid(pAce);
if (RtlEqualSid(pSid1, pSid2)) if (RtlEqualSid(pSid1, pSid2))
{ {
pKeepAce[i] = FALSE; pKeepAce[j] = FALSE;
SizeInformation.AclBytesInUse -= pAce->AceSize; SizeInformation.AclBytesInUse -= pAce->AceSize;
} }
} }

View file

@ -1566,7 +1566,7 @@ static HRESULT __CLSIDFromString(LPCWSTR s, CLSID *id)
/*****************************************************************************/ /*****************************************************************************/
HRESULT WINAPI CLSIDFromString(LPOLESTR idstr, CLSID *id ) HRESULT WINAPI CLSIDFromString(LPCOLESTR idstr, LPCLSID id )
{ {
HRESULT ret; HRESULT ret;

View file

@ -1,23 +1,7 @@
/* Hey, Emacs, open this file with -*- coding: cp1250 -*- /* FILE: dll/win32/setupapi/lang/cs-CZ.rc
* * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* Czech resources for SETUPAPI * THANKS TO: David Kredba
* * UPDATED: 2010-01-07
* Copyright 2001 Andreas Mohr
* Copyright 2004 David Kredba
*
* 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
@ -39,7 +23,7 @@ END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN BEGIN
IDS_QUERY_REBOOT_TEXT "Your computer needs to be rebooted to finish installation. Do you want to proceed?" IDS_QUERY_REBOOT_TEXT "Aby mohla být instalace dokonèena, musí být poèítaè restartován. Pokraèovat?"
IDS_QUERY_REBOOT_CAPTION "Reboot" IDS_QUERY_REBOOT_CAPTION "Restartovat"
IDS_INF_FILE "Setup Information" IDS_INF_FILE "Instalaèní informace"
END END

View file

@ -344,7 +344,7 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
else else
pdir[3] = '\0'; pdir[3] = '\0';
} }
if (ShellExecuteA(NULL, "open", psz, NULL, pdir, SW_SHOWNORMAL) < (HINSTANCE)33) if (ShellExecuteA(NULL, NULL, psz, NULL, pdir, SW_SHOWNORMAL) < (HINSTANCE)33)
{ {
char *pszSysMsg = NULL ; char *pszSysMsg = NULL ;
FormatMessageA ( FormatMessageA (
@ -357,7 +357,7 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
) ; ) ;
sprintf (szMsg, "Error: %s", pszSysMsg) ; sprintf (szMsg, "Error: %s", pszSysMsg) ;
LocalFree ((HLOCAL)pszSysMsg) ; LocalFree ((HLOCAL)pszSysMsg) ;
MessageBoxA (hwnd, szMsg, "Nix", MB_OK | MB_ICONEXCLAMATION) ; MessageBoxA (hwnd, szMsg, NULL, MB_OK | MB_ICONEXCLAMATION) ;
HeapFree(GetProcessHeap(), 0, psz); HeapFree(GetProcessHeap(), 0, psz);
HeapFree(GetProcessHeap(), 0, pdir); HeapFree(GetProcessHeap(), 0, pdir);
@ -612,9 +612,11 @@ int WINAPI RestartDialogEx(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, D
int WINAPI LogoffWindowsDialog(HWND hWndOwner) int WINAPI LogoffWindowsDialog(HWND hWndOwner)
{ {
UNIMPLEMENTED; if (ConfirmDialog(hWndOwner, IDS_LOGOFF_PROMPT, IDS_LOGOFF_TITLE))
ExitWindowsEx(EWX_LOGOFF, 0); {
return 0; ExitWindowsEx(EWX_LOGOFF, 0);
}
return 0;
} }
/************************************************************************* /*************************************************************************

View file

@ -114,7 +114,7 @@ SH_FileGeneralSetFileType(HWND hwndDlg, WCHAR *filext)
{ {
/* the file extension is unknown, so default to string "FileExtension File" */ /* the file extension is unknown, so default to string "FileExtension File" */
SendMessageW(hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)value); SendMessageW(hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)value);
swprintf(name, value, &filext[1]); swprintf(name, L"%s %s", &filext[1], value);
SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)name); SendMessageW(hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)name);
return TRUE; return TRUE;
} }

View file

@ -357,7 +357,7 @@ BEGIN
END END
OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256 OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Îòâàðÿíå ñ" CAPTION "Îòâàðÿíå ñ"
FONT 8, "MS Shell Dlg", 0, 0, 0x0 FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
@ -666,6 +666,8 @@ BEGIN
IDS_RESTART_PROMPT "Èñêàòå ëè äà ïðåçàïóñíåòå ñèñòåìàòà?" IDS_RESTART_PROMPT "Èñêàòå ëè äà ïðåçàïóñíåòå ñèñòåìàòà?"
IDS_SHUTDOWN_TITLE "Èçêëþ÷âàíå" IDS_SHUTDOWN_TITLE "Èçêëþ÷âàíå"
IDS_SHUTDOWN_PROMPT "Èñêàòå ëè äà èçêëþ÷èòå êîìïþòúðà?" IDS_SHUTDOWN_PROMPT "Èñêàòå ëè äà èçêëþ÷èòå êîìïþòúðà?"
IDS_LOGOFF_TITLE "Log Off"
IDS_LOGOFF_PROMPT "Do you want to log off?"
// shell folder path default values // shell folder path default values
IDS_PROGRAMS "Ïóñêîâ èçáîðíèê\\Ïðèëîæåíèÿ" IDS_PROGRAMS "Ïóñêîâ èçáîðíèê\\Ïðèëîæåíèÿ"
@ -750,6 +752,8 @@ BEGIN
IDS_DEFAULT_CLUSTER_SIZE "Ïîäðàçáèðàí ðàçïðåäåëèòåëåí ðàçìåð" IDS_DEFAULT_CLUSTER_SIZE "Ïîäðàçáèðàí ðàçïðåäåëèòåëåí ðàçìåð"
IDS_COPY_OF "Copy of" IDS_COPY_OF "Copy of"
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
END END

View file

@ -358,7 +358,7 @@ BEGIN
END END
OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256 OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Open With" CAPTION "Open With"
FONT 8, "MS Shell Dlg", 0, 0, 0x0 FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
@ -665,6 +665,8 @@ BEGIN
IDS_RESTART_PROMPT "Do you want to restart the system?" IDS_RESTART_PROMPT "Do you want to restart the system?"
IDS_SHUTDOWN_TITLE "Shutdown" IDS_SHUTDOWN_TITLE "Shutdown"
IDS_SHUTDOWN_PROMPT "Do you want to shutdown?" IDS_SHUTDOWN_PROMPT "Do you want to shutdown?"
IDS_LOGOFF_TITLE "Log Off"
IDS_LOGOFF_PROMPT "Do you want to log off?"
/* shell folder path default values */ /* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programs" IDS_PROGRAMS "Start Menu\\Programs"
@ -749,4 +751,6 @@ BEGIN
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
IDS_COPY_OF "Copy of" IDS_COPY_OF "Copy of"
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
END END

View file

@ -1,21 +1,7 @@
/* /* FILE: dll/win32/shell32/lang/cs-CZ.rc
* Copyright 1998 Juergen Schmied * TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* Copyright 2003 Filip Navara * UPDATED: 2010-04-05
* Copyright 2008 Radek Liska * THANKS TO: navaraf, who translated major part of this file
*
* 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
@ -208,18 +194,18 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
ICON "", 14000, 10, 3, 30, 30, WS_VISIBLE ICON "", 14000, 10, 3, 30, 30, WS_VISIBLE
EDITTEXT 14001, 70, 9, 158, 14, ES_LEFT | ES_READONLY EDITTEXT 14001, 70, 9, 158, 14, ES_LEFT | ES_READONLY
LTEXT "Type of file:", 14004, 8, 35, 50, 10 LTEXT "Typ souboru:", 14004, 8, 35, 50, 10
LTEXT "Folder", 14005, 68, 35, 160, 10 LTEXT "Složka", 14005, 68, 35, 160, 10
LTEXT "Location:", 14006, 8, 53, 50, 10 LTEXT "Umístìní:", 14006, 8, 53, 50, 10
LTEXT "", 14007, 68, 53, 315, 10 LTEXT "", 14007, 68, 53, 315, 10
LTEXT "Size:", 14008, 8, 72, 45, 10 LTEXT "Velikost:", 14008, 8, 72, 45, 10
LTEXT "", 14009, 68, 72, 315, 10 LTEXT "", 14009, 68, 72, 315, 10
LTEXT "Contains:", 14010, 8, 93, 45, 10 LTEXT "Obsahuje:", 14010, 8, 93, 45, 10
LTEXT "", 14011, 68, 93, 160, 10 LTEXT "", 14011, 68, 93, 160, 10
LTEXT "Created:", 14014, 8, 118, 45, 10 LTEXT "Vytvoøeno:", 14014, 8, 118, 45, 10
LTEXT "", 14015, 68, 118, 160, 10 LTEXT "", 14015, 68, 118, 160, 10
AUTOCHECKBOX "&Read-only", 14021, 45, 150, 67, 10 AUTOCHECKBOX "&Jen pro ètení", 14021, 45, 150, 67, 10
AUTOCHECKBOX "&Hidden", 14022, 126, 150, 50, 10 AUTOCHECKBOX "&Skrytý", 14022, 126, 150, 50, 10
END END
SHELL_FILE_GENERAL_DLG DIALOGEX 0, 0, 240, 205 SHELL_FILE_GENERAL_DLG DIALOGEX 0, 0, 240, 205
@ -360,7 +346,7 @@ BEGIN
END END
OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256 OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Otevøít v..." CAPTION "Otevøít v..."
FONT 8, "MS Shell Dlg", 0, 0, 0x0 FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
@ -546,7 +532,7 @@ END
FORMAT_DLG DIALOGEX 50, 50, 184, 218 FORMAT_DLG DIALOGEX 50, 50, 184, 218
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
CAPTION "Format" CAPTION "Formátování"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "&Spustit", IDOK, 53, 198, 60, 14 DEFPUSHBUTTON "&Spustit", IDOK, 53, 198, 60, 14
@ -567,14 +553,14 @@ END
CHKDSK_DLG DIALOGEX 50, 50, 194, 120 CHKDSK_DLG DIALOGEX 50, 50, 194, 120
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
CAPTION "Check Disk" CAPTION "Zkontrolovat disk"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
DEFPUSHBUTTON "Start", IDOK, 53, 100, 60, 14 DEFPUSHBUTTON "Start", IDOK, 53, 100, 60, 14
GROUPBOX "Check disk options", -1, 7, 6, 179, 50 GROUPBOX "Možnosti kontroly disku", -1, 7, 6, 179, 50
PUSHBUTTON "Cancel", IDCANCEL, 118, 100, 60, 14 PUSHBUTTON "Storno", IDCANCEL, 118, 100, 60, 14
AUTOCHECKBOX "Automatically fix file system errors", 14000, 16, 15, 155, 10 AUTOCHECKBOX "Automaticky opravovat chyby souborového systému", 14000, 16, 15, 155, 10
AUTOCHECKBOX "&Scan for and attempt recovery of bad sectors", 14001, 16, 30, 165, 10 AUTOCHECKBOX "&Vyhledat a pokusit se obnovit vadné sektory", 14001, 16, 30, 165, 10
CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 60, 170, 8 CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 60, 170, 8
LTEXT "", 14003, 60, 80, 170, 10 LTEXT "", 14003, 60, 80, 170, 10
END END
@ -607,17 +593,17 @@ BEGIN
IDS_SHV_COLUMN9 "Komentáø" IDS_SHV_COLUMN9 "Komentáø"
IDS_SHV_COLUMN10 "Vlastník" IDS_SHV_COLUMN10 "Vlastník"
IDS_SHV_COLUMN11 "Skupina" IDS_SHV_COLUMN11 "Skupina"
IDS_SHV_COLUMN12 "Filename" IDS_SHV_COLUMN12 "Název souboru"
IDS_SHV_COLUMN13 "Category" IDS_SHV_COLUMN13 "Kategorie"
IDS_SHV_COLUMN_DELFROM "Pùvodní umístìní" IDS_SHV_COLUMN_DELFROM "Pùvodní umístìní"
IDS_SHV_COLUMN_DELDATE "Odstranìno" IDS_SHV_COLUMN_DELDATE "Odstranìno"
IDS_SHV_COLUMN_FONTTYPE "Fonttype" IDS_SHV_COLUMN_FONTTYPE "Fonttype"
IDS_SHV_COLUMN_WORKGROUP "Workgroup" IDS_SHV_COLUMN_WORKGROUP "Pracovní skupina"
IDS_SHV_NETWORKLOCATION "Network Location" IDS_SHV_NETWORKLOCATION "<EFBFBD>ové umístìní"
IDS_SHV_COLUMN_DOCUMENTS "Documents" IDS_SHV_COLUMN_DOCUMENTS "Dokumenty"
IDS_SHV_COLUMN_STATUS "Status" IDS_SHV_COLUMN_STATUS "Status"
IDS_SHV_COLUMN_COMMENTS "Comments" IDS_SHV_COLUMN_COMMENTS "Komentáøe"
IDS_SHV_COLUMN_LOCATION "Location" IDS_SHV_COLUMN_LOCATION "Umístìní"
IDS_SHV_COLUMN_MODEL "Model" IDS_SHV_COLUMN_MODEL "Model"
/* special folders */ /* special folders */
@ -625,7 +611,7 @@ BEGIN
IDS_MYCOMPUTER "Tento poèítaè" IDS_MYCOMPUTER "Tento poèítaè"
IDS_RECYCLEBIN_FOLDER_NAME "Koš" IDS_RECYCLEBIN_FOLDER_NAME "Koš"
IDS_CONTROLPANEL "Ovládací panely" IDS_CONTROLPANEL "Ovládací panely"
IDS_ADMINISTRATIVETOOLS "Administrative Tools" IDS_ADMINISTRATIVETOOLS "Nástroje správy"
/* context menus */ /* context menus */
IDS_VIEW_LARGE "&Vedle sebe" IDS_VIEW_LARGE "&Vedle sebe"
@ -634,15 +620,15 @@ BEGIN
IDS_VIEW_DETAILS "&Podrobnosti" IDS_VIEW_DETAILS "&Podrobnosti"
IDS_SELECT "Vybrat" IDS_SELECT "Vybrat"
IDS_OPEN "Otevøít" IDS_OPEN "Otevøít"
IDS_CREATELINK "Vytvoøit zástupc&e" IDS_CREATELINK "Vytvoøit zástupc&e"
IDS_COPY "&Kopírovat" IDS_COPY "&Kopírovat"
IDS_DELETE "O&dstranit" IDS_DELETE "O&dstranit"
IDS_PROPERTIES "&Vlastnosti" IDS_PROPERTIES "&Vlastnosti"
IDS_CUT "Vyj&mout" IDS_CUT "Vyj&mout"
IDS_RESTORE "Restore" IDS_RESTORE "Obnovit"
IDS_FORMATDRIVE "Format..." IDS_FORMATDRIVE "Formátovat..."
IDS_RENAME "Rename" IDS_RENAME "Pøejmenovat"
IDS_INSERT "Insert" IDS_INSERT "Vložit"
IDS_CREATEFOLDER_DENIED "Nelze vytvoøit novou složku, protože pøístup byl odepøen." IDS_CREATEFOLDER_DENIED "Nelze vytvoøit novou složku, protože pøístup byl odepøen."
IDS_CREATEFOLDER_CAPTION "Chyba pøi pokusu vytvoøit nový adresáø" IDS_CREATEFOLDER_CAPTION "Chyba pøi pokusu vytvoøit nový adresáø"
@ -666,6 +652,8 @@ BEGIN
IDS_RESTART_PROMPT "Opravdu chcete restartovat systém?" IDS_RESTART_PROMPT "Opravdu chcete restartovat systém?"
IDS_SHUTDOWN_TITLE "Vypnout" IDS_SHUTDOWN_TITLE "Vypnout"
IDS_SHUTDOWN_PROMPT "Opravdu chcete vypnout poèítaè?" IDS_SHUTDOWN_PROMPT "Opravdu chcete vypnout poèítaè?"
IDS_LOGOFF_TITLE "Odhlásit se"
IDS_LOGOFF_PROMPT "Opravdu se chcete odhlásit?"
/* shell folder path default values */ /* shell folder path default values */
IDS_PROGRAMS "Nabídka Start\\Programy" IDS_PROGRAMS "Nabídka Start\\Programy"
@ -735,19 +723,21 @@ BEGIN
IDS_LNK_FILE "Zástupce" IDS_LNK_FILE "Zástupce"
IDS_SYS_FILE "Systémový soubor" IDS_SYS_FILE "Systémový soubor"
IDS_OPEN_VERB "Open" IDS_OPEN_VERB "Otevøít"
IDS_RUNAS_VERB "Run as " IDS_RUNAS_VERB "Spustit jako "
IDS_EDIT_VERB "Edit" IDS_EDIT_VERB "Upravit"
IDS_FIND_VERB "Find" IDS_FIND_VERB "Najít"
IDS_PRINT_VERB "Print" IDS_PRINT_VERB "Tisknout"
IDS_PLAY_VERB "Play" IDS_PLAY_VERB "Pøehrát"
IDS_PREVIEW_VERB "Preview" IDS_PREVIEW_VERB "Náhled"
IDS_FILE_FOLDER "%u Files, %u Folders" IDS_FILE_FOLDER "%u souborù, %u složek"
IDS_PRINTERS "Printers" IDS_PRINTERS "Tiskárny"
IDS_FONTS "Fonts" IDS_FONTS "Fonty"
IDS_INSTALLNEWFONT "Install New Font..." IDS_INSTALLNEWFONT "Nainstalovat nový font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" IDS_DEFAULT_CLUSTER_SIZE "Výchozí alokaèní velikost"
IDS_COPY_OF "Copy of" IDS_COPY_OF "Kopie "
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
END END

View file

@ -347,7 +347,7 @@ BEGIN
END END
OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256 OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Open With" CAPTION "Open With"
FONT 8, "MS Shell Dlg", 0, 0, 0x0 FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
@ -654,6 +654,8 @@ BEGIN
IDS_RESTART_PROMPT "Ønsker du at Genstarte Systemet?" IDS_RESTART_PROMPT "Ønsker du at Genstarte Systemet?"
IDS_SHUTDOWN_TITLE "Luk Ned" IDS_SHUTDOWN_TITLE "Luk Ned"
IDS_SHUTDOWN_PROMPT "Ønsker du at Lukke Ned?" IDS_SHUTDOWN_PROMPT "Ønsker du at Lukke Ned?"
IDS_LOGOFF_TITLE "Log Off"
IDS_LOGOFF_PROMPT "Do you want to log off?"
/* shell folder path default values */ /* shell folder path default values */
IDS_PROGRAMS "Start Menu\\Programmer" IDS_PROGRAMS "Start Menu\\Programmer"
@ -738,4 +740,6 @@ BEGIN
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
IDS_COPY_OF "Copy of" IDS_COPY_OF "Copy of"
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
END END

View file

@ -296,7 +296,7 @@ BEGIN
CONTROL "", 14015, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 20, 140, 200, 20 CONTROL "", 14015, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 20, 140, 200, 20
LTEXT "Laufwerk %s", 14009, 100, 170, 40, 10 LTEXT "Laufwerk %s", 14009, 100, 170, 50, 10
PUSHBUTTON "Bereinigen", 14010, 180, 175, 50, 15, WS_TABSTOP PUSHBUTTON "Bereinigen", 14010, 180, 175, 50, 15, WS_TABSTOP
CHECKBOX "Laufwerk komprimieren, um Speicherplatz zu sparen", 14011, 15, 205, 180, 10, WS_DISABLED CHECKBOX "Laufwerk komprimieren, um Speicherplatz zu sparen", 14011, 15, 205, 180, 10, WS_DISABLED
CHECKBOX "Laufwerk für schnelle Dateisuche indizieren", 14012, 15, 220, 165, 10, WS_DISABLED CHECKBOX "Laufwerk für schnelle Dateisuche indizieren", 14012, 15, 220, 165, 10, WS_DISABLED
@ -361,17 +361,17 @@ BEGIN
END END
OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256 OPEN_WITH_PROGRAMM_DLG DIALOGEX 0, 0, 264, 256
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION
CAPTION "Öffnen mit" CAPTION "Öffnen mit"
FONT 8, "MS Shell Dlg", 0, 0, 0x0 FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN BEGIN
ICON IDI_SHELL_OPEN_WITH, -1, 8, 12, 21, 20 ICON IDI_SHELL_OPEN_WITH, -1, 8, 12, 21, 20
LTEXT "Wählen Sie das Programm, das zum Öffnen dieser Datei verwendet werden soll:", -1, 44, 12, 211, 10 LTEXT "Wählen Sie das Programm, das zum Öffnen dieser Datei verwendet werden soll:", -1, 44, 12, 211, 18
LTEXT "Datei: ", 14001, 44, 25, 188, 10 LTEXT "Datei: ", 14001, 44, 30, 188, 10
GROUPBOX "&Programme", -1, 7, 42, 249, 187 GROUPBOX "&Programme", -1, 7, 42, 249, 187
LISTBOX 14002, 16 ,57, 230, 130, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP, WS_EX_STATICEDGE LISTBOX 14002, 16 ,57, 230, 130, LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP, WS_EX_STATICEDGE
AUTOCHECKBOX "&Dateityp &immer mit dem ausgewählten Programm öffnen", 14003, 20, 193, 225, 10 AUTOCHECKBOX "&Dateityp &immer mit dem ausgewählten Programm öffnen", 14003, 20, 193, 225, 10
PUSHBUTTON "&Durchsuchen..", 14004, 198, 207, 50, 14 PUSHBUTTON "&Durchsuchen...", 14004, 188, 207, 60, 14
PUSHBUTTON "OK", 14005, 150, 236, 50, 14 PUSHBUTTON "OK", 14005, 150, 236, 50, 14
PUSHBUTTON "Abbrechen", 14006, 206, 236, 50, 14 PUSHBUTTON "Abbrechen", 14006, 206, 236, 50, 14
END END
@ -669,6 +669,8 @@ BEGIN
IDS_RESTART_PROMPT "Möchten Sie das System neu starten?" IDS_RESTART_PROMPT "Möchten Sie das System neu starten?"
IDS_SHUTDOWN_TITLE "Herunterfahren" IDS_SHUTDOWN_TITLE "Herunterfahren"
IDS_SHUTDOWN_PROMPT "Möchten Sie das System herunterfahren?" IDS_SHUTDOWN_PROMPT "Möchten Sie das System herunterfahren?"
IDS_LOGOFF_TITLE "Ausloggen"
IDS_LOGOFF_PROMPT "Möchten Sie sich ausloggen?"
/* shell folder path default values */ /* shell folder path default values */
IDS_PROGRAMS "Startmenü\\Programme" IDS_PROGRAMS "Startmenü\\Programme"
@ -753,4 +755,6 @@ BEGIN
IDS_DEFAULT_CLUSTER_SIZE "Standardgröße" IDS_DEFAULT_CLUSTER_SIZE "Standardgröße"
IDS_COPY_OF "Kopie von" IDS_COPY_OF "Kopie von"
IDS_SHLEXEC_NOASSOC "Es ist kein Programm mit diesem Dateityp verknüpft."
END END

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