mirror of
https://github.com/reactos/reactos.git
synced 2024-07-06 12:45:16 +00:00
- 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:
commit
cf73dc7621
|
@ -28,6 +28,7 @@
|
|||
<if property="OPTIMIZE" value="1">
|
||||
<compilerflag>-ftracer</compilerflag>
|
||||
</if>
|
||||
<compilerflag>-fms-extensions</compilerflag>
|
||||
<compilerflag>-Wno-attributes</compilerflag>
|
||||
<compilerflag>-U_UNICODE</compilerflag>
|
||||
<compilerflag>-UUNICODE</compilerflag>
|
||||
|
|
|
@ -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">
|
||||
<include base="reg">.</include>
|
||||
<redefine name="_WIN32_WINNT">0x600</redefine>
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
<?xml version="1.0"?>
|
||||
<group xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<installfile installbase="system32">downloader.xml</installfile>
|
||||
<module name="downloader" type="win32gui" installbase="system32" installname="downloader.exe" unicode="yes">
|
||||
<include base="downloader">.</include>
|
||||
<include base="expat">.</include>
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group>
|
||||
<installfile installbase="system32">downloader.xml</installfile>
|
||||
<module name="downloader" type="win32gui" installbase="system32" installname="downloader.exe" unicode="yes">
|
||||
<include base="downloader">.</include>
|
||||
<include base="expat">.</include>
|
||||
|
||||
<library>advapi32</library>
|
||||
<library>ntdll</library>
|
||||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>shell32</library>
|
||||
<library>comctl32</library>
|
||||
<library>msimg32</library>
|
||||
<library>shlwapi</library>
|
||||
<library>urlmon</library>
|
||||
<library>uuid</library>
|
||||
<library>expat</library>
|
||||
<library>advapi32</library>
|
||||
<library>ntdll</library>
|
||||
<library>user32</library>
|
||||
<library>gdi32</library>
|
||||
<library>shell32</library>
|
||||
<library>comctl32</library>
|
||||
<library>msimg32</library>
|
||||
<library>shlwapi</library>
|
||||
<library>urlmon</library>
|
||||
<library>uuid</library>
|
||||
<library>expat</library>
|
||||
|
||||
<file>main.c</file>
|
||||
<file>xml.c</file>
|
||||
<file>download.c</file>
|
||||
<file>downloader.rc</file>
|
||||
</module>
|
||||
<file>main.c</file>
|
||||
<file>xml.c</file>
|
||||
<file>download.c</file>
|
||||
<file>downloader.rc</file>
|
||||
</module>
|
||||
</group>
|
||||
|
|
|
@ -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">
|
||||
<include base="fontview">.</include>
|
||||
<library>gdi32</library>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<module name="kbswitch" type="win32gui" installbase="system32" installname="kbswitch.exe" unicode="yes">
|
||||
<include base="kbswitch">.</include>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?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">
|
||||
<include base="magnify">.</include>
|
||||
<library>user32</library>
|
||||
|
|
|
@ -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">
|
||||
<include base="mplay32">.</include>
|
||||
<library>advapi32</library>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?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">
|
||||
<include base="eventvwr">.</include>
|
||||
<library>user32</library>
|
||||
|
@ -8,4 +8,3 @@
|
|||
<file>eventvwr.c</file>
|
||||
<file>eventvwr.rc</file>
|
||||
</module>
|
||||
</rbuild>
|
||||
|
|
|
@ -630,8 +630,9 @@ int main(int argc, char* argv[])
|
|||
while ((NeverStop) || (Count < PingCount))
|
||||
{
|
||||
Ping();
|
||||
Sleep(Timeout);
|
||||
Count++;
|
||||
if((NeverStop) || (Count < PingCount))
|
||||
Sleep(Timeout);
|
||||
};
|
||||
|
||||
Cleanup();
|
||||
|
|
|
@ -147,16 +147,16 @@ void LoadSettings(void)
|
|||
if (dwPointSize != 0)
|
||||
Globals.lfFont.lfHeight = HeightFromPointSize(dwPointSize);
|
||||
|
||||
hFont = CreateFontIndirect(&Globals.lfFont);
|
||||
if (hFont)
|
||||
{
|
||||
if (Globals.hFont)
|
||||
DeleteObject(Globals.hFont);
|
||||
Globals.hFont = hFont;
|
||||
}
|
||||
|
||||
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)
|
||||
|
|
|
@ -51,7 +51,7 @@ BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, int *piEncoding
|
|||
{
|
||||
DWORD dwSize;
|
||||
LPBYTE pBytes = NULL;
|
||||
LPCWSTR pszText;
|
||||
LPWSTR pszText;
|
||||
LPWSTR pszAllocText = NULL;
|
||||
DWORD dwPos, i;
|
||||
DWORD dwCharCount;
|
||||
|
@ -110,7 +110,7 @@ BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, int *piEncoding
|
|||
/* fall through */
|
||||
|
||||
case ENCODING_UNICODE:
|
||||
pszText = (LPCWSTR) &pBytes[dwPos];
|
||||
pszText = (LPWSTR) &pBytes[dwPos];
|
||||
dwCharCount = (dwSize - dwPos) / sizeof(WCHAR);
|
||||
break;
|
||||
|
||||
|
@ -174,6 +174,10 @@ BOOL ReadText(HANDLE hFile, LPWSTR *ppszText, DWORD *pdwTextLen, int *piEncoding
|
|||
else
|
||||
adwEolnCount[EOLN_LF]++;
|
||||
break;
|
||||
|
||||
case '\0':
|
||||
pszText[i] = ' ';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -60,8 +60,8 @@ BEGIN
|
|||
MENUITEM "800%", IDM_VIEWZOOM800
|
||||
END
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Show grid", IDM_VIEWSHOWGRID
|
||||
MENUITEM "Show miniature", IDM_VIEWSHOWMINIATURE
|
||||
MENUITEM "Mostra griglia", IDM_VIEWSHOWGRID
|
||||
MENUITEM "Mostra miniature", IDM_VIEWSHOWMINIATURE
|
||||
END
|
||||
MENUITEM "Visualizza a schermo intero\tCtrl+F", IDM_VIEWFULLSCREEN
|
||||
END
|
||||
|
@ -201,5 +201,5 @@ BEGIN
|
|||
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_FILESIZE, "%d bytes"
|
||||
IDS_PRINTRES, "%d x %d pixels per meter"
|
||||
IDS_PRINTRES, "%d x %d pixels per metro"
|
||||
END
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group>
|
||||
<module name="rapps" type="win32gui" installbase="system32" installname="rapps.exe" unicode="yes">
|
||||
<include base="ReactOS">include/reactos</include>
|
||||
|
|
|
@ -2,41 +2,41 @@
|
|||
|
||||
[Section]
|
||||
Name = Mozilla Firefox 3.0
|
||||
Version = 3.0.18
|
||||
Version = 3.0.19
|
||||
Licence = MPL/GPL/LGPL
|
||||
Description = The most popular and one of the best free Web Browsers out there.
|
||||
Size = 7.2M
|
||||
Category = 5
|
||||
URLSite = http://www.mozilla.com/en-US/
|
||||
URLDownload = 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
|
||||
|
||||
[Section.0407]
|
||||
Description = Der populärste und einer der besten freien Webbrowser.
|
||||
Size = 7.0M
|
||||
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]
|
||||
Description = El más popular y uno de los mejores navegadores web gratuitos que hay.
|
||||
Size = 7.0M
|
||||
URLSite = http://www.mozilla-europe.org/es/
|
||||
URLDownload = 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]
|
||||
Description = Mest populære og best også gratis nettleserene der ute.
|
||||
Size = 6.9M
|
||||
Size = 7.0M
|
||||
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]
|
||||
Description = Najpopularniejsza i jedna z najlepszych darmowych przeglądarek internetowych.
|
||||
Size = 7.8M
|
||||
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]
|
||||
Description = Один из самых популярных и лучших бесплатных браузеров.
|
||||
Size = 7.4M
|
||||
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
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = Miranda IM
|
||||
Version = 0.8.18
|
||||
Version = 0.8.19
|
||||
Licence = GPL
|
||||
Description = Open source multiprotocol instant messaging application - May not work completely.
|
||||
Size = 1.6MB
|
||||
Category = 5
|
||||
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
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = OpenTTD
|
||||
Version = 0.7.5
|
||||
Version = 1.0.0
|
||||
Licence = GPL v2
|
||||
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
|
||||
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
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = SciTE
|
||||
Version = 2.03
|
||||
Version = 2.10
|
||||
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.
|
||||
Size = 0.6M
|
||||
Category = 7
|
||||
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
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
[Section]
|
||||
Name = ScummVM
|
||||
Version = 1.0.0
|
||||
Version = 1.1.0
|
||||
Licence = GPL
|
||||
Description = Sam and Max, Day of the Tentacle, etc on ReactOS.
|
||||
Size = 3.1MB
|
||||
Size = 3.4MB
|
||||
Category = 4
|
||||
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
|
||||
|
||||
[Section.0407]
|
||||
|
|
|
@ -2,31 +2,31 @@
|
|||
|
||||
[Section]
|
||||
Name = Mozilla SeaMonkey
|
||||
Version = 2.0.3
|
||||
Version = 2.0.4
|
||||
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.
|
||||
Size = 10.0MB
|
||||
Size = 10.1MB
|
||||
Category = 5
|
||||
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
|
||||
|
||||
[Section.0407]
|
||||
Description = Mozilla Suite lebt. Dies ist das einzige Browser-, Mail-, Chat- and Composerwerkzeug-Bundle welches Sie benötigen.
|
||||
Size = 10.1MB
|
||||
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.3/win32/de/SeaMonkey%20Setup%202.0.3.exe
|
||||
Size = 10.0MB
|
||||
URLDownload = http://ftp.df.lth.se/mozilla/seamonkey/releases/2.0.4/win32/de/SeaMonkey%20Setup%202.0.4.exe
|
||||
|
||||
[Section.040a]
|
||||
Description = La suite de Mozilla está viva. Es el primero y único navegador web, gestor de correo, lector de noticias, Chat y editor HTML que necesitarás.
|
||||
Size = 10.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]
|
||||
Description = Pakiet Mozilla żyje. W zestawie: przeglądarka, klient poczty, IRC oraz Edytor HTML - wszystko, czego potrzebujesz.
|
||||
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]
|
||||
Description = Продолжение Mozilla Suite. Включает браузер, почтовый клиент, IRC-клиент и HTML-редактор.
|
||||
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
|
||||
|
|
|
@ -2,35 +2,35 @@
|
|||
|
||||
[Section]
|
||||
Name = Mozilla Thunderbird
|
||||
Version = 3.0.3
|
||||
Version = 3.0.4
|
||||
Licence = MPL/GPL/LGPL
|
||||
Description = The most popular and one of the best free Mail Clients out there.
|
||||
Size = 8.6M
|
||||
Category = 5
|
||||
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
|
||||
|
||||
[Section.0407]
|
||||
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/
|
||||
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]
|
||||
Description = El más popular y uno de los mejores clientes mail que hay.
|
||||
Size = 8.4M
|
||||
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]
|
||||
Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty.
|
||||
Size = 9.3M
|
||||
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]
|
||||
Description = Один из самых популярных и лучших бесплатных почтовых клиентов.
|
||||
Size = 8.8M
|
||||
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
|
||||
|
|
|
@ -49,7 +49,7 @@ void ApplicationPageOnNotify(WPARAM wParam, LPARAM lParam);
|
|||
void ApplicationPageShowContextMenu1(void);
|
||||
void ApplicationPageShowContextMenu2(void);
|
||||
int CALLBACK ApplicationPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
|
||||
int PerfGetIndexByProcessId(DWORD dwProcessId);
|
||||
int ProcGetIndexByProcessId(DWORD dwProcessId);
|
||||
|
||||
#if 0
|
||||
void SwitchToThisWindow (
|
||||
|
@ -236,6 +236,13 @@ void UpdateApplicationListControlViewSetting(void)
|
|||
|
||||
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 */
|
||||
hApplicationPageEvent = CreateEventW(NULL, TRUE, TRUE, NULL);
|
||||
|
||||
|
@ -269,6 +276,55 @@ DWORD WINAPI ApplicationPageRefreshThread(void *lpParameter)
|
|||
EnumWindows(EnumWindowsProc, 0);
|
||||
if (noApps)
|
||||
(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)
|
||||
{
|
||||
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
|
||||
HIMAGELIST hImageListLarge;
|
||||
HIMAGELIST hImageListSmall;
|
||||
LV_ITEM item;
|
||||
int i;
|
||||
BOOL bAlreadyInList = FALSE;
|
||||
BOOL bItemRemoved = FALSE;
|
||||
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
|
||||
HIMAGELIST hImageListLarge;
|
||||
HIMAGELIST hImageListSmall;
|
||||
LV_ITEM item;
|
||||
int i;
|
||||
BOOL bAlreadyInList = FALSE;
|
||||
|
||||
memset(&item, 0, sizeof(LV_ITEM));
|
||||
|
||||
|
@ -406,51 +461,7 @@ void AddOrUpdateHwnd(HWND hWnd, WCHAR *szTitle, HICON hIcon, BOOL bHung)
|
|||
item.lParam = (LPARAM)pAPLI;
|
||||
(void)ListView_InsertItem(hApplicationPageListCtrl, &item);
|
||||
}
|
||||
|
||||
|
||||
/* 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();
|
||||
return;
|
||||
}
|
||||
|
||||
void ApplicationPageUpdate(void)
|
||||
|
@ -878,7 +889,6 @@ void ApplicationPage_OnGotoProcess(void)
|
|||
LPAPPLICATION_PAGE_LIST_ITEM pAPLI = NULL;
|
||||
LV_ITEM item;
|
||||
int i;
|
||||
/* NMHDR nmhdr; */
|
||||
|
||||
for (i=0; i<ListView_GetItemCount(hApplicationPageListCtrl); i++) {
|
||||
memset(&item, 0, sizeof(LV_ITEM));
|
||||
|
@ -902,7 +912,7 @@ void ApplicationPage_OnGotoProcess(void)
|
|||
/*
|
||||
* Select the process item in the list
|
||||
*/
|
||||
i = PerfGetIndexByProcessId(dwProcessId);
|
||||
i = ProcGetIndexByProcessId(dwProcessId);
|
||||
if (i != -1)
|
||||
{
|
||||
ListView_SetItemState(hProcessPageListCtrl,
|
||||
|
|
|
@ -40,6 +40,15 @@ SYSTEM_HANDLE_INFORMATION SystemHandleInfo;
|
|||
PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SystemProcessorTimeInfo = 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)
|
||||
{
|
||||
SID_IDENTIFIER_AUTHORITY NtSidAuthority = {SECURITY_NT_AUTHORITY};
|
||||
|
@ -63,6 +72,8 @@ BOOL PerfDataInitialize(void)
|
|||
|
||||
void PerfDataUninitialize(void)
|
||||
{
|
||||
PLIST_ENTRY pCur;
|
||||
PSIDTOUSERNAME pEntry;
|
||||
|
||||
if (pPerfData != NULL)
|
||||
HeapFree(GetProcessHeap(), 0, pPerfData);
|
||||
|
@ -74,6 +85,15 @@ void PerfDataUninitialize(void)
|
|||
FreeSid(SystemUserSid);
|
||||
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)
|
||||
|
@ -86,6 +106,56 @@ static void SidToUserName(PSID Sid, LPWSTR szBuffer, DWORD BufferSize)
|
|||
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)
|
||||
{
|
||||
ULONG ulSize;
|
||||
|
@ -106,6 +176,7 @@ void PerfDataRefresh(void)
|
|||
PSECURITY_DESCRIPTOR ProcessSD;
|
||||
PSID ProcessUser;
|
||||
ULONG Buffer[64]; /* must be 4 bytes aligned! */
|
||||
ULONG cwcUserName;
|
||||
|
||||
/* Get new system time */
|
||||
status = NtQuerySystemInformation(SystemTimeOfDayInformation, &SysTimeInfo, sizeof(SysTimeInfo), 0);
|
||||
|
@ -341,7 +412,8 @@ ClearInfo:
|
|||
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)
|
||||
{
|
||||
|
@ -356,6 +428,29 @@ ClearInfo:
|
|||
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)
|
||||
{
|
||||
return ProcessCount;
|
||||
|
@ -387,27 +482,6 @@ BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, int nMaxCount)
|
|||
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 ProcessId;
|
||||
|
|
|
@ -60,6 +60,7 @@ void PerfDataUninitialize(void);
|
|||
void PerfDataRefresh(void);
|
||||
|
||||
BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData);
|
||||
ULONG PerfDataGetProcessIndex(ULONG pid);
|
||||
ULONG PerfDataGetProcessCount(void);
|
||||
ULONG PerfDataGetProcessorUsage(void);
|
||||
ULONG PerfDataGetProcessorSystemUsage(void);
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
|
||||
typedef struct
|
||||
{
|
||||
ULONG Index;
|
||||
ULONG ProcessId;
|
||||
} 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);
|
||||
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)
|
||||
{
|
||||
int Index;
|
||||
|
@ -71,7 +91,7 @@ DWORD GetSelectedProcessId(void)
|
|||
(void)ListView_GetItem(hProcessPageListCtrl, &lvitem);
|
||||
|
||||
if (lvitem.lParam)
|
||||
return PerfDataGetProcessId(((LPPROCESS_PAGE_LIST_ITEM)lvitem.lParam)->Index);
|
||||
return ((LPPROCESS_PAGE_LIST_ITEM)lvitem.lParam)->ProcessId;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -219,7 +239,7 @@ void ProcessPageOnNotify(WPARAM wParam, LPARAM lParam)
|
|||
break;
|
||||
|
||||
pData = (LPPROCESS_PAGE_LIST_ITEM)pnmdi->item.lParam;
|
||||
Index = pData->Index;
|
||||
Index = PerfDataGetProcessIndex(pData->ProcessId);
|
||||
ColumnIndex = pnmdi->item.iSubItem;
|
||||
|
||||
PerfDataGetText(Index, ColumnIndex, pnmdi->item.pszText, pnmdi->item.cchTextMax);
|
||||
|
@ -414,7 +434,7 @@ void UpdateProcesses()
|
|||
{
|
||||
int i;
|
||||
ULONG l;
|
||||
LV_ITEM item;
|
||||
LV_ITEM item;
|
||||
LPPROCESS_PAGE_LIST_ITEM pData;
|
||||
|
||||
/* Remove old processes */
|
||||
|
@ -431,10 +451,17 @@ void UpdateProcesses()
|
|||
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)
|
||||
{
|
||||
(void)ListView_SortItems(hProcessPageListCtrl, ProcessPageCompareFunc, NULL);
|
||||
|
@ -482,7 +509,7 @@ void AddProcess(ULONG Index)
|
|||
item.iItem = i;
|
||||
(void)ListView_GetItem(hProcessPageListCtrl, &item);
|
||||
pData = (LPPROCESS_PAGE_LIST_ITEM)item.lParam;
|
||||
if (PerfDataGetProcessId(pData->Index) == pid)
|
||||
if (pData->ProcessId == pid)
|
||||
{
|
||||
bAlreadyInList = TRUE;
|
||||
break;
|
||||
|
@ -491,7 +518,6 @@ void AddProcess(ULONG Index)
|
|||
if (!bAlreadyInList) /* Add */
|
||||
{
|
||||
pData = (LPPROCESS_PAGE_LIST_ITEM)HeapAlloc(GetProcessHeap(), 0, sizeof(PROCESS_PAGE_LIST_ITEM));
|
||||
pData->Index = Index;
|
||||
pData->ProcessId = pid;
|
||||
|
||||
/* Add the item to the list */
|
||||
|
@ -686,6 +712,8 @@ int CALLBACK ProcessPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lPara
|
|||
int ret = 0;
|
||||
LPPROCESS_PAGE_LIST_ITEM Param1;
|
||||
LPPROCESS_PAGE_LIST_ITEM Param2;
|
||||
ULONG IndexParam1;
|
||||
ULONG IndexParam2;
|
||||
WCHAR text1[260];
|
||||
WCHAR text2[260];
|
||||
ULONG l1;
|
||||
|
@ -704,165 +732,167 @@ int CALLBACK ProcessPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lPara
|
|||
Param1 = (LPPROCESS_PAGE_LIST_ITEM)lParam2;
|
||||
Param2 = (LPPROCESS_PAGE_LIST_ITEM)lParam1;
|
||||
}
|
||||
IndexParam1 = PerfDataGetProcessIndex(Param1->ProcessId);
|
||||
IndexParam2 = PerfDataGetProcessIndex(Param2->ProcessId);
|
||||
|
||||
if (TaskManagerSettings.SortColumn == COLUMN_IMAGENAME)
|
||||
{
|
||||
PerfDataGetImageName(Param1->Index, text1, sizeof (text1) / sizeof (*text1));
|
||||
PerfDataGetImageName(Param2->Index, text2, sizeof (text2) / sizeof (*text2));
|
||||
PerfDataGetImageName(IndexParam1, text1, sizeof (text1) / sizeof (*text1));
|
||||
PerfDataGetImageName(IndexParam2, text2, sizeof (text2) / sizeof (*text2));
|
||||
ret = _wcsicmp(text1, text2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_PID)
|
||||
{
|
||||
l1 = PerfDataGetProcessId(Param1->Index);
|
||||
l2 = PerfDataGetProcessId(Param2->Index);
|
||||
l1 = Param1->ProcessId;
|
||||
l2 = Param2->ProcessId;
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_USERNAME)
|
||||
{
|
||||
PerfDataGetUserName(Param1->Index, text1, sizeof (text1) / sizeof (*text1));
|
||||
PerfDataGetUserName(Param2->Index, text2, sizeof (text2) / sizeof (*text2));
|
||||
PerfDataGetUserName(IndexParam1, text1, sizeof (text1) / sizeof (*text1));
|
||||
PerfDataGetUserName(IndexParam2, text2, sizeof (text2) / sizeof (*text2));
|
||||
ret = _wcsicmp(text1, text2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_SESSIONID)
|
||||
{
|
||||
l1 = PerfDataGetSessionId(Param1->Index);
|
||||
l2 = PerfDataGetSessionId(Param2->Index);
|
||||
l1 = PerfDataGetSessionId(IndexParam1);
|
||||
l2 = PerfDataGetSessionId(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_CPUUSAGE)
|
||||
{
|
||||
l1 = PerfDataGetCPUUsage(Param1->Index);
|
||||
l2 = PerfDataGetCPUUsage(Param2->Index);
|
||||
l1 = PerfDataGetCPUUsage(IndexParam1);
|
||||
l2 = PerfDataGetCPUUsage(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_CPUTIME)
|
||||
{
|
||||
time1 = PerfDataGetCPUTime(Param1->Index);
|
||||
time2 = PerfDataGetCPUTime(Param2->Index);
|
||||
time1 = PerfDataGetCPUTime(IndexParam1);
|
||||
time2 = PerfDataGetCPUTime(IndexParam2);
|
||||
ret = largeintcmp(time1, time2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_MEMORYUSAGE)
|
||||
{
|
||||
l1 = PerfDataGetWorkingSetSizeBytes(Param1->Index);
|
||||
l2 = PerfDataGetWorkingSetSizeBytes(Param2->Index);
|
||||
l1 = PerfDataGetWorkingSetSizeBytes(IndexParam1);
|
||||
l2 = PerfDataGetWorkingSetSizeBytes(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_PEAKMEMORYUSAGE)
|
||||
{
|
||||
l1 = PerfDataGetPeakWorkingSetSizeBytes(Param1->Index);
|
||||
l2 = PerfDataGetPeakWorkingSetSizeBytes(Param2->Index);
|
||||
l1 = PerfDataGetPeakWorkingSetSizeBytes(IndexParam1);
|
||||
l2 = PerfDataGetPeakWorkingSetSizeBytes(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_MEMORYUSAGEDELTA)
|
||||
{
|
||||
l1 = PerfDataGetWorkingSetSizeDelta(Param1->Index);
|
||||
l2 = PerfDataGetWorkingSetSizeDelta(Param2->Index);
|
||||
l1 = PerfDataGetWorkingSetSizeDelta(IndexParam1);
|
||||
l2 = PerfDataGetWorkingSetSizeDelta(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_PAGEFAULTS)
|
||||
{
|
||||
l1 = PerfDataGetPageFaultCount(Param1->Index);
|
||||
l2 = PerfDataGetPageFaultCount(Param2->Index);
|
||||
l1 = PerfDataGetPageFaultCount(IndexParam1);
|
||||
l2 = PerfDataGetPageFaultCount(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_PAGEFAULTSDELTA)
|
||||
{
|
||||
l1 = PerfDataGetPageFaultCountDelta(Param1->Index);
|
||||
l2 = PerfDataGetPageFaultCountDelta(Param2->Index);
|
||||
l1 = PerfDataGetPageFaultCountDelta(IndexParam1);
|
||||
l2 = PerfDataGetPageFaultCountDelta(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_VIRTUALMEMORYSIZE)
|
||||
{
|
||||
l1 = PerfDataGetVirtualMemorySizeBytes(Param1->Index);
|
||||
l2 = PerfDataGetVirtualMemorySizeBytes(Param2->Index);
|
||||
l1 = PerfDataGetVirtualMemorySizeBytes(IndexParam1);
|
||||
l2 = PerfDataGetVirtualMemorySizeBytes(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_PAGEDPOOL)
|
||||
{
|
||||
l1 = PerfDataGetPagedPoolUsagePages(Param1->Index);
|
||||
l2 = PerfDataGetPagedPoolUsagePages(Param2->Index);
|
||||
l1 = PerfDataGetPagedPoolUsagePages(IndexParam1);
|
||||
l2 = PerfDataGetPagedPoolUsagePages(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_NONPAGEDPOOL)
|
||||
{
|
||||
l1 = PerfDataGetNonPagedPoolUsagePages(Param1->Index);
|
||||
l2 = PerfDataGetNonPagedPoolUsagePages(Param2->Index);
|
||||
l1 = PerfDataGetNonPagedPoolUsagePages(IndexParam1);
|
||||
l2 = PerfDataGetNonPagedPoolUsagePages(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_BASEPRIORITY)
|
||||
{
|
||||
l1 = PerfDataGetBasePriority(Param1->Index);
|
||||
l2 = PerfDataGetBasePriority(Param2->Index);
|
||||
l1 = PerfDataGetBasePriority(IndexParam1);
|
||||
l2 = PerfDataGetBasePriority(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_HANDLECOUNT)
|
||||
{
|
||||
l1 = PerfDataGetHandleCount(Param1->Index);
|
||||
l2 = PerfDataGetHandleCount(Param2->Index);
|
||||
l1 = PerfDataGetHandleCount(IndexParam1);
|
||||
l2 = PerfDataGetHandleCount(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_THREADCOUNT)
|
||||
{
|
||||
l1 = PerfDataGetThreadCount(Param1->Index);
|
||||
l2 = PerfDataGetThreadCount(Param2->Index);
|
||||
l1 = PerfDataGetThreadCount(IndexParam1);
|
||||
l2 = PerfDataGetThreadCount(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_USEROBJECTS)
|
||||
{
|
||||
l1 = PerfDataGetUSERObjectCount(Param1->Index);
|
||||
l2 = PerfDataGetUSERObjectCount(Param2->Index);
|
||||
l1 = PerfDataGetUSERObjectCount(IndexParam1);
|
||||
l2 = PerfDataGetUSERObjectCount(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_GDIOBJECTS)
|
||||
{
|
||||
l1 = PerfDataGetGDIObjectCount(Param1->Index);
|
||||
l2 = PerfDataGetGDIObjectCount(Param2->Index);
|
||||
l1 = PerfDataGetGDIObjectCount(IndexParam1);
|
||||
l2 = PerfDataGetGDIObjectCount(IndexParam2);
|
||||
ret = CMP(l1, l2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_IOREADS)
|
||||
{
|
||||
PerfDataGetIOCounters(Param1->Index, &iocounters1);
|
||||
PerfDataGetIOCounters(Param2->Index, &iocounters2);
|
||||
PerfDataGetIOCounters(IndexParam1, &iocounters1);
|
||||
PerfDataGetIOCounters(IndexParam2, &iocounters2);
|
||||
ull1 = iocounters1.ReadOperationCount;
|
||||
ull2 = iocounters2.ReadOperationCount;
|
||||
ret = CMP(ull1, ull2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_IOWRITES)
|
||||
{
|
||||
PerfDataGetIOCounters(Param1->Index, &iocounters1);
|
||||
PerfDataGetIOCounters(Param2->Index, &iocounters2);
|
||||
PerfDataGetIOCounters(IndexParam1, &iocounters1);
|
||||
PerfDataGetIOCounters(IndexParam2, &iocounters2);
|
||||
ull1 = iocounters1.WriteOperationCount;
|
||||
ull2 = iocounters2.WriteOperationCount;
|
||||
ret = CMP(ull1, ull2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_IOOTHER)
|
||||
{
|
||||
PerfDataGetIOCounters(Param1->Index, &iocounters1);
|
||||
PerfDataGetIOCounters(Param2->Index, &iocounters2);
|
||||
PerfDataGetIOCounters(IndexParam1, &iocounters1);
|
||||
PerfDataGetIOCounters(IndexParam2, &iocounters2);
|
||||
ull1 = iocounters1.OtherOperationCount;
|
||||
ull2 = iocounters2.OtherOperationCount;
|
||||
ret = CMP(ull1, ull2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_IOREADBYTES)
|
||||
{
|
||||
PerfDataGetIOCounters(Param1->Index, &iocounters1);
|
||||
PerfDataGetIOCounters(Param2->Index, &iocounters2);
|
||||
PerfDataGetIOCounters(IndexParam1, &iocounters1);
|
||||
PerfDataGetIOCounters(IndexParam2, &iocounters2);
|
||||
ull1 = iocounters1.ReadTransferCount;
|
||||
ull2 = iocounters2.ReadTransferCount;
|
||||
ret = CMP(ull1, ull2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_IOWRITEBYTES)
|
||||
{
|
||||
PerfDataGetIOCounters(Param1->Index, &iocounters1);
|
||||
PerfDataGetIOCounters(Param2->Index, &iocounters2);
|
||||
PerfDataGetIOCounters(IndexParam1, &iocounters1);
|
||||
PerfDataGetIOCounters(IndexParam2, &iocounters2);
|
||||
ull1 = iocounters1.WriteTransferCount;
|
||||
ull2 = iocounters2.WriteTransferCount;
|
||||
ret = CMP(ull1, ull2);
|
||||
}
|
||||
else if (TaskManagerSettings.SortColumn == COLUMN_IOOTHERBYTES)
|
||||
{
|
||||
PerfDataGetIOCounters(Param1->Index, &iocounters1);
|
||||
PerfDataGetIOCounters(Param2->Index, &iocounters2);
|
||||
PerfDataGetIOCounters(IndexParam1, &iocounters1);
|
||||
PerfDataGetIOCounters(IndexParam2, &iocounters2);
|
||||
ull1 = iocounters1.OtherTransferCount;
|
||||
ull2 = iocounters2.OtherTransferCount;
|
||||
ret = CMP(ull1, ull2);
|
||||
|
|
|
@ -869,6 +869,7 @@ void TaskManager_OnTabWndSelChange(void)
|
|||
HMENU hViewMenu;
|
||||
HMENU hSubMenu;
|
||||
WCHAR szTemp[256];
|
||||
SYSTEM_INFO sysInfo;
|
||||
|
||||
hMenu = GetMenu(hMainWnd);
|
||||
hViewMenu = GetSubMenu(hMenu, 2);
|
||||
|
@ -947,16 +948,28 @@ void TaskManager_OnTabWndSelChange(void)
|
|||
DeleteMenu(hMenu, 3, MF_BYPOSITION);
|
||||
DrawMenuBar(hMainWnd);
|
||||
}
|
||||
hSubMenu = CreatePopupMenu();
|
||||
|
||||
LoadStringW(hInst, IDS_MENU_ONEGRAPHALLCPUS, szTemp, 256);
|
||||
AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHALL, szTemp);
|
||||
GetSystemInfo(&sysInfo);
|
||||
|
||||
LoadStringW(hInst, IDS_MENU_ONEGRAPHPERCPU, szTemp, 256);
|
||||
AppendMenuW(hSubMenu, MF_STRING, ID_VIEW_CPUHISTORY_ONEGRAPHPERCPU, szTemp);
|
||||
/* Hide CPU graph options on single CPU systems */
|
||||
if (sysInfo.dwNumberOfProcessors > 1)
|
||||
{
|
||||
hSubMenu = CreatePopupMenu();
|
||||
|
||||
LoadStringW(hInst, IDS_MENU_CPUHISTORY, szTemp, 256);
|
||||
AppendMenuW(hViewMenu, MF_STRING|MF_POPUP, (UINT_PTR) hSubMenu, szTemp);
|
||||
LoadStringW(hInst, IDS_MENU_ONEGRAPHALLCPUS, szTemp, 256);
|
||||
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);
|
||||
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);
|
||||
else
|
||||
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
|
||||
*/
|
||||
|
|
|
@ -492,7 +492,7 @@ static int comp_FindSubFile(void *p, const void *key,
|
|||
int leaf, void** next)
|
||||
{
|
||||
*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);
|
||||
}
|
||||
|
||||
|
@ -1601,7 +1601,7 @@ static BOOL HLPFILE_BrowseParagraph(HLPFILE_PAGE* page, struct RtfData* rd,
|
|||
case 0xEE:
|
||||
case 0xEF:
|
||||
{
|
||||
char* ptr = (char*) format + 8;
|
||||
const char* ptr = (const char*) format + 8;
|
||||
BYTE type = format[3];
|
||||
int wnd = -1;
|
||||
|
||||
|
|
|
@ -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">
|
||||
<include base="winver">.</include>
|
||||
<library>shell32</library>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group>
|
||||
<module name="rpcss" type="win32cui" installbase="system32" installname="rpcss.exe" unicode="yes">
|
||||
<include base="rpcss">.</include>
|
||||
|
|
|
@ -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">
|
||||
<include base="reactos"></include>
|
||||
<include base="telnetd">..</include>
|
||||
|
|
|
@ -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">
|
||||
<include base="reactos"></include>
|
||||
<include base="telnetd">..</include>
|
||||
|
||||
<library>ntdll</library>
|
||||
<library>advapi32</library>
|
||||
<library>ws2_32</library>
|
||||
<library>wine</library>
|
||||
|
||||
<file>tftpd.cpp</file>
|
||||
</module>
|
||||
|
|
|
@ -428,7 +428,7 @@ CreateFreeLoaderIniForReactos(PWCHAR IniPath,
|
|||
/* ReactOS_KdSerial */
|
||||
CreateFreeLoaderEntry(IniCache, IniSection,
|
||||
L"ReactOS_KdSerial", L"\"ReactOS (RosDbg)\"",
|
||||
L"ReactOS", ArcPath,
|
||||
L"Windows2003", ArcPath,
|
||||
L"/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /KDSERIAL");
|
||||
|
||||
/* ReactOS_LogFile */
|
||||
|
|
|
@ -111,7 +111,7 @@ DetectVMware(int *Version)
|
|||
|
||||
/* try to open the file */
|
||||
static BOOL
|
||||
FileExists(WCHAR *Path, WCHAR *File)
|
||||
DoesFileExist(WCHAR *Path, WCHAR *File)
|
||||
{
|
||||
WCHAR FileName[MAX_PATH + 1];
|
||||
HANDLE FileHandle;
|
||||
|
@ -195,9 +195,9 @@ IsVMwareCDInDrive(WCHAR *Drv)
|
|||
continue;
|
||||
}
|
||||
|
||||
if(FileExists(SrcPath, vmx_fb) &&
|
||||
(FileExists(SrcPath, vmx_mode) || FileExists(SrcPath, vmx_mode_v6)) &&
|
||||
FileExists(SrcPath, vmx_svga))
|
||||
if(DoesFileExist(SrcPath, vmx_fb) &&
|
||||
(DoesFileExist(SrcPath, vmx_mode) || DoesFileExist(SrcPath, vmx_mode_v6)) &&
|
||||
DoesFileExist(SrcPath, vmx_svga))
|
||||
{
|
||||
*Drv = Current;
|
||||
return TRUE;
|
||||
|
@ -1070,9 +1070,9 @@ wWinMain(HINSTANCE hInstance,
|
|||
|
||||
SetCurrentDirectory(DestinationPath);
|
||||
|
||||
DriverFilesFound = FileExists(DestinationPath, vmx_fb) &&
|
||||
FileExists(DestinationPath, vmx_mode) &&
|
||||
FileExists(DestinationDriversPath, vmx_svga);
|
||||
DriverFilesFound = DoesFileExist(DestinationPath, vmx_fb) &&
|
||||
DoesFileExist(DestinationPath, vmx_mode) &&
|
||||
DoesFileExist(DestinationDriversPath, vmx_svga);
|
||||
|
||||
StartVMwConfigWizard = DriverFilesFound && IsVmwSVGAEnabled();
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ VOID ConOutChar (TCHAR c)
|
|||
VOID ConPuts(LPTSTR szText, DWORD nStdHandle)
|
||||
{
|
||||
ConWrite(szText, _tcslen(szText), nStdHandle);
|
||||
ConWrite(_T("\n"), 1, nStdHandle);
|
||||
ConWrite(_T("\r\n"), 2, nStdHandle);
|
||||
}
|
||||
|
||||
VOID ConOutResPaging(BOOL NewPage, UINT resID)
|
||||
|
|
|
@ -703,7 +703,7 @@ VOID CompleteFilename (LPTSTR strIN, BOOL bNext, LPTSTR strOut, UINT cusor)
|
|||
LastSpace = i;
|
||||
|
||||
}
|
||||
/* insert the quoation and move things around */
|
||||
/* insert the quotation and move things around */
|
||||
if(szPrefix[LastSpace + 1] != _T('\"') && LastSpace != -1)
|
||||
{
|
||||
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("\""));
|
||||
}
|
||||
szPrefix[LastSpace + 1] = _T('\"');
|
||||
szPrefix[LastSpace + 1] = _T('\"');
|
||||
}
|
||||
else if(LastSpace == -1)
|
||||
{
|
||||
_tcscpy(szBaseWord,_T("\""));
|
||||
_tcscat(szBaseWord,szPrefix);
|
||||
_tcscpy(szPrefix,szBaseWord);
|
||||
|
||||
/* Add quotation only if none exists already */
|
||||
if (szPrefix[0] != _T('\"'))
|
||||
{
|
||||
_tcscpy(szBaseWord,_T("\""));
|
||||
_tcscat(szBaseWord,szPrefix);
|
||||
_tcscpy(szPrefix,szBaseWord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -363,6 +363,12 @@ _tmain(int argc, TCHAR *argv[])
|
|||
PrintWin32Error( szMsg, GetLastError());
|
||||
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 ) {
|
||||
LoadString( GetModuleHandle(NULL), STRING_INSERT_DISK, (LPTSTR) szMsg,RC_STRING_MAX_SIZE);
|
||||
|
|
|
@ -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">
|
||||
<include base="runonce">.</include>
|
||||
<library>advapi32</library>
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<!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">
|
||||
<bootsector>isoboot</bootsector>
|
||||
</module>
|
||||
</if>
|
||||
<ifnot property="ARCH" value="i386>
|
||||
<ifnot property="ARCH" value="i386">
|
||||
<module name="bootcd" type="iso" output="ReactOS-$(ARCH).iso">
|
||||
<bootsector>isoboot</bootsector>
|
||||
</module>
|
||||
</ifnot>
|
||||
</group>
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
<!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">
|
||||
<bootsector>isoboot</bootsector>
|
||||
</module>
|
||||
</if>
|
||||
<ifnot property="ARCH" value="i386>
|
||||
<ifnot property="ARCH" value="i386">
|
||||
<module name="livecd" type="liveiso" output="ReactOS-LiveCD-$(ARCH).iso">
|
||||
<bootsector>isoboot</bootsector>
|
||||
</module>
|
||||
</ifnot>
|
||||
</group>
|
||||
|
|
|
@ -489,8 +489,6 @@ drivers\base\nmidebug\nmidebug.sys 2
|
|||
|
||||
drivers\battery\battc\battc.sys 2
|
||||
|
||||
drivers\bus\isapnp\isapnp.sys 2
|
||||
|
||||
drivers\bus\acpi\cmbatt\cmbatt.sys 2
|
||||
drivers\bus\acpi\compbatt\compbatt.sys 2
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ c_1252.nls=,,,,,,,,,,,,2
|
|||
cdfs.sys=,,,,,,x,,,,,,4
|
||||
cdrom.sys=,,,,,,x,,,,,,4
|
||||
class2.sys=,,,,,,x,,,,,,4
|
||||
isapnp.sys=,,,,,,,,,,,,4
|
||||
kdcom.dll=,,,,,,,,,,,,2
|
||||
disk.sys=,,,,,,x,,,,,,4
|
||||
floppy.sys=,,,,,,x,,,,,,4
|
||||
|
@ -36,13 +37,16 @@ ramdisk.sys=,,,,,,x,,,,,,4
|
|||
ext2.sys=,,,,,,x,,,,,,4
|
||||
|
||||
[HardwareIdsDatabase]
|
||||
*PNP0C08 = acpi
|
||||
;*PNP0A00 = isapnp
|
||||
*PNP0A03 = pci
|
||||
*PNP0C08 = acpi
|
||||
;PCI\CC_0601 = isapnp
|
||||
PCI\CC_0604 = pci
|
||||
|
||||
[BootBusExtenders.Load]
|
||||
acpi = acpi.sys
|
||||
pci = pci.sys
|
||||
isapnp = isapnp.sys
|
||||
|
||||
[Cabinets]
|
||||
Cabinet=reactos.cab
|
||||
|
@ -76,7 +80,7 @@ hal.dll=,,,,,,,,,,,,2
|
|||
|
||||
[Files.pci_mp]
|
||||
ntkrnlmp.exe=,,,,,,,,,,ntoskrnl.exe,,2
|
||||
halmp.dll=,,,,,,,,,,hal.dll,,2
|
||||
halmps.dll=,,,,,,,,,,hal.dll,,2
|
||||
|
||||
[Display]
|
||||
;<id> = <user friendly name>,<spare>,<service key name>,<hight>,<width>,<bpp>
|
||||
|
|
|
@ -21,22 +21,22 @@ RealEntryPoint:
|
|||
mov ss, ax
|
||||
|
||||
/* checkPoint Charlie - where it all began... */
|
||||
mov si, offset _CheckPoint0
|
||||
mov si, offset CheckPoint0
|
||||
call writestr
|
||||
|
||||
|
||||
/* Setup a real mode stack */
|
||||
mov sp, stack16
|
||||
|
||||
/* Zero BootDrive and BootPartition */
|
||||
xor eax, eax
|
||||
mov _BootDrive, eax
|
||||
mov _BootPartition, eax
|
||||
mov BootDrive, eax
|
||||
mov BootPartition, eax
|
||||
|
||||
/* Store the boot drive */
|
||||
mov _BootDrive, dl
|
||||
mov BootDrive, dl
|
||||
|
||||
/* Store the boot partition */
|
||||
mov _BootPartition, dh
|
||||
mov BootPartition, dh
|
||||
|
||||
/* Load the GDT */
|
||||
lgdt gdtptr
|
||||
|
@ -46,13 +46,13 @@ RealEntryPoint:
|
|||
call x86_16_EnableA20
|
||||
|
||||
/* checkPoint Charlie - where it all began... */
|
||||
mov si, offset _CheckPoint1
|
||||
mov si, offset CheckPoint1
|
||||
call writestr
|
||||
|
||||
call x86_16_BuildPageTables
|
||||
|
||||
/* checkPoint Charlie - where it all began... */
|
||||
mov si, offset _CheckPoint2
|
||||
mov si, offset CheckPoint2
|
||||
call writestr
|
||||
|
||||
/* Check if CPU supports CPUID */
|
||||
|
@ -89,26 +89,26 @@ RealEntryPoint:
|
|||
/* X64 Processor */
|
||||
|
||||
/* checkPoint Charlie - where it all began... */
|
||||
mov si, offset _CheckPoint3
|
||||
mov si, offset CheckPoint3
|
||||
call writestr
|
||||
|
||||
jmp _switch64
|
||||
jmp switch64
|
||||
|
||||
NO_X64_SUPPORT_DETECTED:
|
||||
mov si, offset _NotAnX64Processor // Loading message
|
||||
mov si, offset NotAnX64Processor // Loading message
|
||||
call writestr
|
||||
jmp _fail
|
||||
jmp fail
|
||||
|
||||
NO_CPUID_SUPPORT_DETECTED:
|
||||
mov si, offset _NoCPUIDSupport // Loading message
|
||||
call writestr
|
||||
mov si, offset NoCPUIDSupport // Loading message
|
||||
call writestr
|
||||
|
||||
_fail:
|
||||
jmp _fail
|
||||
fail:
|
||||
jmp fail
|
||||
nop
|
||||
nop
|
||||
|
||||
_switch64:
|
||||
switch64:
|
||||
call x86_16_SwitchToLong
|
||||
|
||||
.code64
|
||||
|
@ -119,7 +119,7 @@ _switch64:
|
|||
|
||||
/* GO! */
|
||||
xor rcx, rcx
|
||||
call _BootMain
|
||||
call BootMain
|
||||
|
||||
/* Checkpoint */
|
||||
// mov ax, LMODE_DS
|
||||
|
@ -174,14 +174,14 @@ x86_16_BuildPageTables:
|
|||
push es
|
||||
|
||||
/* Get segment of pml4 */
|
||||
mov eax, offset _pml4_startup
|
||||
mov eax, offset pml4_startup
|
||||
shr eax, 4
|
||||
mov es, ax
|
||||
cld
|
||||
xor di, di
|
||||
|
||||
/* One entry in the PML4 pointing to PDP */
|
||||
mov eax, offset _pdp_startup
|
||||
mov eax, offset pdp_startup
|
||||
or eax, 0x00f
|
||||
stosd
|
||||
/* clear rest */
|
||||
|
@ -190,7 +190,7 @@ x86_16_BuildPageTables:
|
|||
rep stosd
|
||||
|
||||
/* One entry in the PDP pointing to PD */
|
||||
mov eax, offset _pd_startup
|
||||
mov eax, offset pd_startup
|
||||
or eax, 0x00f
|
||||
stosd
|
||||
/* clear rest */
|
||||
|
@ -268,7 +268,7 @@ x86_16_SwitchToLong:
|
|||
mov eax, 0x00a0 // Set PAE and PGE: 10100000b
|
||||
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 ecx, 0xC0000080 // Specify EFER MSR
|
||||
|
@ -405,42 +405,42 @@ gdtptr:
|
|||
.long gdt /* Base Address */
|
||||
|
||||
|
||||
.global _BootDrive
|
||||
_BootDrive:
|
||||
.global BootDrive
|
||||
BootDrive:
|
||||
.long 0
|
||||
|
||||
.global _BootPartition
|
||||
_BootPartition:
|
||||
.global BootPartition
|
||||
BootPartition:
|
||||
.long 0
|
||||
|
||||
.global _NotAnX64Processor
|
||||
_NotAnX64Processor:
|
||||
.global NotAnX64Processor
|
||||
NotAnX64Processor:
|
||||
.ascii "FreeLoader: No x64-compatible CPU detected! Exiting..."
|
||||
.byte 0x0d, 0x0a, 0
|
||||
|
||||
.global _NoCPUIDSupport
|
||||
_NoCPUIDSupport:
|
||||
.global NoCPUIDSupport
|
||||
NoCPUIDSupport:
|
||||
.ascii "FreeLoader: No CPUID instruction support detected! Exiting..."
|
||||
.byte 0x0d, 0x0a, 0
|
||||
|
||||
/////////////////////////// Checkpoint messages ///////////////////////////////
|
||||
.global _CheckPoint0
|
||||
_CheckPoint0:
|
||||
.global CheckPoint0
|
||||
CheckPoint0:
|
||||
.ascii "Starting FreeLoader..."
|
||||
.byte 0x0d, 0x0a, 0
|
||||
|
||||
.global _CheckPoint1
|
||||
_CheckPoint1:
|
||||
.global CheckPoint1
|
||||
CheckPoint1:
|
||||
.ascii "FreeLoader[16-bit]: building page tables..."
|
||||
.byte 0x0d, 0x0a, 0
|
||||
|
||||
.global _CheckPoint2
|
||||
_CheckPoint2:
|
||||
.global CheckPoint2
|
||||
CheckPoint2:
|
||||
.ascii "FreeLoader[16-bit]: checking CPU for x64 long mode..."
|
||||
.byte 0x0d, 0x0a, 0
|
||||
|
||||
.global _CheckPoint3
|
||||
_CheckPoint3:
|
||||
.global CheckPoint3
|
||||
CheckPoint3:
|
||||
.ascii "FreeLoader: Switching to x64 long mode..."
|
||||
.byte 0x0d, 0x0a, 0
|
||||
|
||||
|
|
|
@ -24,14 +24,14 @@
|
|||
#include <arch.h>
|
||||
|
||||
|
||||
EXTERN(_ChainLoadBiosBootSectorCode)
|
||||
EXTERN(ChainLoadBiosBootSectorCode)
|
||||
.code64
|
||||
|
||||
call x86_64_SwitchToReal
|
||||
.code16
|
||||
|
||||
/* Set the boot drive */
|
||||
mov dl, _BootDrive
|
||||
mov dl, BootDrive
|
||||
|
||||
/* Load segment registers */
|
||||
cli
|
||||
|
@ -46,7 +46,7 @@ EXTERN(_ChainLoadBiosBootSectorCode)
|
|||
// ljmpl $0x0000,$0x7C00
|
||||
jmp 0x7c00:0x0000
|
||||
|
||||
EXTERN(_SoftReboot)
|
||||
EXTERN(SoftReboot)
|
||||
.code64
|
||||
|
||||
call x86_64_SwitchToReal
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include <arch.h>
|
||||
|
||||
|
||||
EXTERN(_DriveMapInt13HandlerStart)
|
||||
EXTERN(DriveMapInt13HandlerStart)
|
||||
Int13Handler:
|
||||
|
||||
pushw %bp
|
||||
|
@ -82,7 +82,7 @@ CallOldInt13Handler:
|
|||
|
||||
/* Call old int 13h handler with new drive number */
|
||||
.byte 0x9a /* lcall */
|
||||
EXTERN(_DriveMapOldInt13HandlerAddress)
|
||||
EXTERN(DriveMapOldInt13HandlerAddress)
|
||||
.word 0
|
||||
.word 0
|
||||
|
||||
|
@ -105,7 +105,7 @@ CallersFlags:
|
|||
PassedInDriveNumber:
|
||||
.byte 0
|
||||
|
||||
EXTERN(_DriveMapInt13HandlerMapList)
|
||||
EXTERN(DriveMapInt13HandlerMapList)
|
||||
Int13HandlerMapCount:
|
||||
.byte 0
|
||||
|
||||
|
@ -129,4 +129,4 @@ Int13HandlerDrive4:
|
|||
Int13HandlerDriveNew4:
|
||||
.byte 0
|
||||
|
||||
EXTERN(_DriveMapInt13HandlerEnd)
|
||||
EXTERN(DriveMapInt13HandlerEnd)
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
* 0x00000400: Found 80486 CPU without CPUID support
|
||||
*/
|
||||
|
||||
EXTERN(_CpuidSupported)
|
||||
EXTERN(CpuidSupported)
|
||||
.code32
|
||||
|
||||
pushl %ecx /* save ECX */
|
||||
|
@ -80,7 +80,7 @@ NoCpuid:
|
|||
* VOID GetCpuid(U32 Level, U32 *eax, U32 *ebx, U32 *ecx, U32 *edx);
|
||||
*/
|
||||
|
||||
EXTERN(_GetCpuid)
|
||||
EXTERN(GetCpuid)
|
||||
.code32
|
||||
|
||||
pushl %ebp
|
||||
|
@ -123,7 +123,7 @@ EXTERN(_GetCpuid)
|
|||
* U64 RDTSC(VOID);
|
||||
*/
|
||||
|
||||
EXTERN(_RDTSC)
|
||||
EXTERN(RDTSC)
|
||||
.code32
|
||||
rdtsc
|
||||
ret
|
||||
|
|
|
@ -35,7 +35,7 @@ _pnp_bios_entry_point:
|
|||
_pnp_bios_data_segment:
|
||||
.word 0
|
||||
|
||||
EXTERN(_PnpBiosSupported)
|
||||
EXTERN(PnpBiosSupported)
|
||||
.code64
|
||||
|
||||
push rdi
|
||||
|
@ -113,7 +113,7 @@ _pnp_node_size:
|
|||
_pnp_node_count:
|
||||
.word 0
|
||||
|
||||
EXTERN(_PnpBiosGetDeviceNodeCount)
|
||||
EXTERN(PnpBiosGetDeviceNodeCount)
|
||||
.code64
|
||||
|
||||
push rbp
|
||||
|
@ -182,7 +182,7 @@ _pnp_buffer_offset:
|
|||
_pnp_node_number:
|
||||
.byte 0
|
||||
|
||||
EXTERN(_PnpBiosGetDeviceNode)
|
||||
EXTERN(PnpBiosGetDeviceNode)
|
||||
.code64
|
||||
|
||||
push rbp
|
||||
|
|
|
@ -273,7 +273,7 @@ i386CommonExceptionHandler:
|
|||
SAVE_CPU_REGS
|
||||
|
||||
pushl $SCREEN_ATTR
|
||||
call _MachVideoClearScreen
|
||||
call MachVideoClearScreen
|
||||
add $4,%esp
|
||||
|
||||
movl $i386ExceptionHandlerText,%esi
|
||||
|
@ -485,7 +485,7 @@ i386PrintChar:
|
|||
pushl $SCREEN_ATTR
|
||||
andl $0xff,%eax
|
||||
pushl %eax
|
||||
call _MachVideoPutChar
|
||||
call MachVideoPutChar
|
||||
addl $16,%esp
|
||||
|
||||
ret
|
||||
|
|
|
@ -63,7 +63,7 @@ Int386_regsout:
|
|||
/*
|
||||
* int Int386(int ivec, REGS* in, REGS* out);
|
||||
*/
|
||||
EXTERN(_Int386)
|
||||
EXTERN(Int386)
|
||||
.code64
|
||||
|
||||
/* Get the function parameters */
|
||||
|
|
|
@ -39,33 +39,6 @@ EnableA20()
|
|||
/* 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
|
||||
* INTERNAL
|
||||
|
@ -86,222 +59,7 @@ VOID
|
|||
NTAPI
|
||||
FrLdrStartup(ULONG Magic)
|
||||
{
|
||||
/* Disable Interrupts */
|
||||
_disable();
|
||||
|
||||
/* 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);
|
||||
|
||||
DbgPrint("ReactOS loader is unsupported! Halting.\n", KernelEntryPoint);
|
||||
for(;;);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
}
|
||||
|
|
|
@ -29,35 +29,35 @@
|
|||
* This boots the kernel
|
||||
*/
|
||||
.code64
|
||||
.globl _PageDirectoryStart
|
||||
.globl PageDirectoryStart
|
||||
|
||||
.globl _pml4_startup
|
||||
.globl _pdp_startup
|
||||
.globl _pd_startup
|
||||
.globl pml4_startup
|
||||
.globl pdp_startup
|
||||
.globl pd_startup
|
||||
|
||||
.globl _PageDirectoryEnd
|
||||
.globl PageDirectoryEnd
|
||||
|
||||
//
|
||||
// Boot information structure
|
||||
//
|
||||
|
||||
EXTERN(_reactos_memory_map_descriptor_size)
|
||||
EXTERN(reactos_memory_map_descriptor_size)
|
||||
.long 0
|
||||
|
||||
EXTERN(_reactos_memory_map)
|
||||
EXTERN(reactos_memory_map)
|
||||
.rept (32 * /*sizeof(memory_map_t)*/24)
|
||||
.byte 0
|
||||
.endr
|
||||
|
||||
.bss
|
||||
_PageDirectoryStart:
|
||||
_pml4_startup:
|
||||
PageDirectoryStart:
|
||||
pml4_startup:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
_pdp_startup:
|
||||
pdp_startup:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
_pd_startup:
|
||||
pd_startup:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
_PageDirectoryEnd:
|
||||
PageDirectoryEnd:
|
||||
|
|
|
@ -1419,10 +1419,10 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
|
|||
/* Set Interrupt */
|
||||
PartialDescriptor = &PartialResourceList->PartialDescriptors[1];
|
||||
PartialDescriptor->Type = CmResourceTypeInterrupt;
|
||||
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
|
||||
PartialDescriptor->ShareDisposition = CmResourceShareShared;
|
||||
PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED;
|
||||
PartialDescriptor->u.Interrupt.Level = Irq[i];
|
||||
PartialDescriptor->u.Interrupt.Vector = 0;
|
||||
PartialDescriptor->u.Interrupt.Vector = Irq[i];
|
||||
PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
|
||||
|
||||
/* Set serial data (device specific) */
|
||||
|
@ -1529,7 +1529,7 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
|
|||
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
|
||||
PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED;
|
||||
PartialDescriptor->u.Interrupt.Level = Irq[i];
|
||||
PartialDescriptor->u.Interrupt.Vector = 0;
|
||||
PartialDescriptor->u.Interrupt.Vector = Irq[i];
|
||||
PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
|
@ -1715,7 +1715,7 @@ DetectKeyboardController(PCONFIGURATION_COMPONENT_DATA BusKey)
|
|||
PartialDescriptor->ShareDisposition = CmResourceShareUndetermined;
|
||||
PartialDescriptor->Flags = CM_RESOURCE_INTERRUPT_LATCHED;
|
||||
PartialDescriptor->u.Interrupt.Level = 1;
|
||||
PartialDescriptor->u.Interrupt.Vector = 0;
|
||||
PartialDescriptor->u.Interrupt.Vector = 1;
|
||||
PartialDescriptor->u.Interrupt.Affinity = 0xFFFFFFFF;
|
||||
|
||||
/* Set IO Port 0x60 */
|
||||
|
@ -1887,7 +1887,7 @@ DetectPS2Mouse(PCONFIGURATION_COMPONENT_DATA BusKey)
|
|||
PartialResourceList.PartialDescriptors[0].ShareDisposition = CmResourceShareUndetermined;
|
||||
PartialResourceList.PartialDescriptors[0].Flags = CM_RESOURCE_INTERRUPT_LATCHED;
|
||||
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;
|
||||
|
||||
/* Create controller key */
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?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">
|
||||
<include base="freeldr_base">include</include>
|
||||
<include base="freeldr_base">cache</include>
|
||||
|
|
|
@ -23,7 +23,9 @@
|
|||
<file>disk.c</file>
|
||||
<file>partition.c</file>
|
||||
<file>ramdisk.c</file>
|
||||
<file>scsiport.c</file>
|
||||
<if property="ARCH" value="i386">
|
||||
<file>scsiport.c</file>
|
||||
</if>
|
||||
</directory>
|
||||
<directory name="fs">
|
||||
<file>ext2.c</file>
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
#define HYPERSPACE_BASE 0xfffff70000000000ULL
|
||||
#define HAL_BASE 0xffffffff80000000ULL
|
||||
#define APIC_BASE 0xfffffffffee00000ULL // FIXME
|
||||
#define APIC_BASE 0xFFFFFFFFFFFE0000ULL
|
||||
|
||||
#define APIC_PHYS_BASE 0xfee00000
|
||||
|
||||
|
|
|
@ -252,28 +252,36 @@ WinLdrSetupGdt(PVOID GdtBase, ULONG64 TssBase)
|
|||
PKGDTENTRY64 Entry;
|
||||
KDESCRIPTOR GdtDesc;
|
||||
|
||||
/* Setup KGDT_64_R0_CODE */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT_64_R0_CODE);
|
||||
/* Setup KGDT64_NULL */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_NULL);
|
||||
*(PULONG64)Entry = 0x0000000000000000ULL;
|
||||
|
||||
/* Setup KGDT64_R0_CODE */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_R0_CODE);
|
||||
*(PULONG64)Entry = 0x00209b0000000000ULL;
|
||||
|
||||
/* Setup KGDT_64_R0_SS */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT_64_R0_SS);
|
||||
/* Setup KGDT64_R0_DATA */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_R0_DATA);
|
||||
*(PULONG64)Entry = 0x00cf93000000ffffULL;
|
||||
|
||||
/* Setup KGDT_64_DATA */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT_64_DATA);
|
||||
/* Setup KGDT64_R3_CMCODE */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_CMCODE);
|
||||
*(PULONG64)Entry = 0x00cffb000000ffffULL;
|
||||
|
||||
/* Setup KGDT64_R3_DATA */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_DATA);
|
||||
*(PULONG64)Entry = 0x00cff3000000ffffULL;
|
||||
|
||||
/* Setup KGDT_64_R3_CODE */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT_64_R3_CODE);
|
||||
/* Setup KGDT64_R3_CODE */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_CODE);
|
||||
*(PULONG64)Entry = 0x0020fb0000000000ULL;
|
||||
|
||||
/* Setup KGDT_32_R3_TEB */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT_32_R3_TEB);
|
||||
/* Setup KGDT64_R3_CMTEB */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_R3_CMTEB);
|
||||
*(PULONG64)Entry = 0xff40f3fd50003c00ULL;
|
||||
|
||||
/* Setup TSS entry */
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT_TSS);
|
||||
Entry = KiGetGdtEntry(GdtBase, KGDT64_SYS_TSS);
|
||||
KiInitGdtEntry(Entry, TssBase, sizeof(KTSS), I386_TSS, 0);
|
||||
|
||||
/* Setup GDT descriptor */
|
||||
|
@ -333,15 +341,8 @@ WinLdrSetProcessorContext(PVOID GdtIdt, IN ULONG64 Pcr, IN ULONG64 Tss)
|
|||
/* LDT is unused */
|
||||
// __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 */
|
||||
__ltr(KGDT_TSS);
|
||||
__ltr(KGDT64_SYS_TSS);
|
||||
|
||||
DPRINTM(DPRINT_WINDOWS, "leave WinLdrSetProcessorContext\n");
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/* $Id$
|
||||
*
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Display Control Panel
|
||||
* FILE: lib/cpl/desk/appearance.c
|
||||
|
@ -486,11 +485,17 @@ AppearancePage_OnDestroy(HWND hwndDlg, GLOBALS *g)
|
|||
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
|
||||
AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
INT i;
|
||||
GLOBALS *g;
|
||||
LPNMHDR lpnm;
|
||||
|
||||
|
@ -538,8 +543,7 @@ AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
|
||||
g->Theme.bHasChanged = TRUE;
|
||||
i = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETCURSEL, 0, 0);
|
||||
g->Theme.Id = SendDlgItemMessage(hwndDlg, IDC_APPEARANCE_COLORSCHEME, CB_GETITEMDATA, (WPARAM)i, 0);
|
||||
UpdateSelectedThemeId(hwndDlg, g);
|
||||
LoadThemeFromReg(g);
|
||||
//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:
|
||||
if (g->Theme.bHasChanged)
|
||||
{
|
||||
UpdateSelectedThemeId(hwndDlg, g);
|
||||
ApplyTheme(g);
|
||||
}
|
||||
return TRUE;
|
||||
|
|
|
@ -94,14 +94,17 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
ZeroMemory(&listItem, sizeof(LV_ITEM));
|
||||
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
|
||||
listItem.state = LVIS_SELECTED;
|
||||
listItem.state = 0;
|
||||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.iImage = -1;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
|
||||
(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++;
|
||||
|
||||
|
@ -143,14 +146,17 @@ AddListViewItems(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
ZeroMemory(&listItem, sizeof(LV_ITEM));
|
||||
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
|
||||
listItem.state = LVIS_SELECTED;
|
||||
listItem.state = 0;
|
||||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.iImage = sfi.iIcon;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
|
||||
(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++;
|
||||
}
|
||||
|
@ -454,13 +460,17 @@ OnBrowseButton(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
|
|||
|
||||
ZeroMemory(&listItem, sizeof(LV_ITEM));
|
||||
listItem.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;
|
||||
listItem.state = LVIS_SELECTED;
|
||||
listItem.state = 0;
|
||||
listItem.pszText = backgroundItem->szDisplayName;
|
||||
listItem.iImage = sfi.iIcon;
|
||||
listItem.iItem = pGlobalData->listViewItemCount;
|
||||
listItem.lParam = pGlobalData->listViewItemCount;
|
||||
|
||||
(void)ListView_InsertItem(hwndBackgroundList, &listItem);
|
||||
ListView_SetItemState(hwndBackgroundList,
|
||||
pGlobalData->listViewItemCount,
|
||||
LVIS_SELECTED,
|
||||
LVIS_SELECTED);
|
||||
SendMessage(hwndBackgroundList, WM_VSCROLL, SB_BOTTOM, 0);
|
||||
|
||||
pGlobalData->listViewItemCount++;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/* $Id: effappdlg.c 24836 2007-02-12 03:12:56Z tkreuzer $
|
||||
*
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Display Control Panel
|
||||
* FILE: dll/cpl/desk/effappdlg.c
|
||||
|
|
|
@ -336,6 +336,7 @@ CBDAPinControl_fnConstructor(
|
|||
if (SUCCEEDED(hr))
|
||||
{
|
||||
// register device filter
|
||||
OutputDebugStringW(L"CBDAPinControl_fnConstructor registering device filter with network provider\n");
|
||||
hr = pNetworkProvider->RegisterDeviceFilter(pUnknown, &RegistrationCtx);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
|
@ -361,7 +362,6 @@ CBDAPinControl_fnConstructor(
|
|||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"CBDAPinControl_fnConstructor failed to register filter with %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
DebugBreak();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -357,6 +357,7 @@ CKsAllocator::GetBuffer(
|
|||
|
||||
if (!m_FreeList.empty())
|
||||
{
|
||||
OutputDebugStringW(L"CKsAllocator::GetBuffer HACK\n");
|
||||
Sample = m_FreeList.top();
|
||||
m_FreeList.pop();
|
||||
}
|
||||
|
|
|
@ -71,7 +71,6 @@ CEnumPins::QueryInterface(
|
|||
OutputDebugStringW(Buffer);
|
||||
CoTaskMemFree(lpstr);
|
||||
|
||||
DebugBreak();
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
|
|
|
@ -700,7 +700,6 @@ CInputPin::Receive(IMediaSample *pSample)
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::Receive NotImplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
|
@ -712,7 +711,6 @@ CInputPin::ReceiveMultiple(IMediaSample **pSamples, long nSamples, long *nSample
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::ReceiveMultiple NotImplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
|
@ -724,7 +722,6 @@ CInputPin::ReceiveCanBlock( void)
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::ReceiveCanBlock NotImplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
|
||||
return S_FALSE;
|
||||
|
@ -923,7 +920,6 @@ CInputPin::KsQualityNotify(
|
|||
OutputDebugStringW(L"CInputPin::KsQualityNotify NotImplemented\n");
|
||||
#endif
|
||||
|
||||
DebugBreak();
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
@ -1114,7 +1110,6 @@ CInputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::Connect NotImplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
return NOERROR;
|
||||
}
|
||||
|
@ -1199,7 +1194,6 @@ CInputPin::ConnectionMediaType(AM_MEDIA_TYPE *pmt)
|
|||
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::ConnectionMediaType NotImplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
|
@ -1496,7 +1490,6 @@ CInputPin::CreatePin(
|
|||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"CInputPin::CreatePin unexpected communication %u %s\n", m_Communication, m_PinName);
|
||||
OutputDebugStringW(Buffer);
|
||||
DebugBreak();
|
||||
#endif
|
||||
hr = E_FAIL;
|
||||
}
|
||||
|
@ -1629,7 +1622,6 @@ CInputPin::CreatePinHandle(
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::CreatePinHandle GetSupportedSets failed\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
return hr;
|
||||
}
|
||||
|
@ -1640,7 +1632,6 @@ CInputPin::CreatePinHandle(
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CInputPin::CreatePinHandle LoadProxyPlugins failed\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
return hr;
|
||||
}
|
||||
|
@ -1783,7 +1774,6 @@ CInputPin::LoadProxyPlugins(
|
|||
{
|
||||
// store plugin
|
||||
m_Plugins.push_back(pUnknown);
|
||||
DebugBreak();
|
||||
}
|
||||
// close key
|
||||
RegCloseKey(hSubKey);
|
||||
|
|
|
@ -21,7 +21,6 @@ public:
|
|||
STDMETHODIMP_(ULONG) Release()
|
||||
{
|
||||
InterlockedDecrement(&m_Ref);
|
||||
DebugBreak();
|
||||
if (!m_Ref)
|
||||
{
|
||||
if (m_Allocator)
|
||||
|
@ -280,7 +279,6 @@ STDMETHODCALLTYPE
|
|||
CMediaSample::SetMediaType(AM_MEDIA_TYPE *pMediaType)
|
||||
{
|
||||
OutputDebugStringW(L"CMediaSample::SetMediaType NotImplemented\n");
|
||||
DebugBreak();
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
|
|
@ -246,8 +246,16 @@ COutputPin::COutputPin(
|
|||
|
||||
ZeroMemory(m_FramingProp, sizeof(m_FramingProp));
|
||||
ZeroMemory(m_FramingEx, sizeof(m_FramingEx));
|
||||
ZeroMemory(&m_MediaFormat, sizeof(AM_MEDIA_TYPE));
|
||||
|
||||
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);
|
||||
|
||||
InitializeCriticalSection(&m_Lock);
|
||||
|
@ -1518,6 +1526,8 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
|
|||
HRESULT hr;
|
||||
ALLOCATOR_PROPERTIES Properties;
|
||||
IMemAllocatorCallbackTemp *pMemCallback;
|
||||
LPGUID pGuid;
|
||||
ULONG NumGuids = 0;
|
||||
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[200];
|
||||
|
@ -1540,6 +1550,20 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
|
|||
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
|
||||
hr = pReceivePin->QueryInterface(IID_IMemInputPin, (void**)&m_MemInputPin);
|
||||
if (FAILED(hr))
|
||||
|
@ -1548,7 +1572,6 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
|
|||
OutputDebugStringW(L"COutputPin::Connect no IMemInputPin interface\n");
|
||||
#endif
|
||||
|
||||
DebugBreak();
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -1649,10 +1672,24 @@ COutputPin::Connect(IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
|
|||
return hr;
|
||||
}
|
||||
|
||||
if (!m_hPin)
|
||||
|
||||
assert(m_hPin != INVALID_HANDLE_VALUE);
|
||||
|
||||
// get all supported sets
|
||||
if (m_Plugins.size() == 0)
|
||||
{
|
||||
//FIXME create pin handle
|
||||
assert(0);
|
||||
if (GetSupportedSets(&pGuid, &NumGuids))
|
||||
{
|
||||
// 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;
|
||||
|
@ -1946,13 +1983,26 @@ COutputPin::CreatePin(
|
|||
// query for pin medium
|
||||
hr = KsQueryMediums(&MediumList);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"COutputPin::CreatePin KsQueryMediums failed %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
return hr;
|
||||
}
|
||||
|
||||
// query for pin interface
|
||||
hr = KsQueryInterfaces(&InterfaceList);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
// failed
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"COutputPin::CreatePin KsQueryInterfaces failed %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
|
||||
CoTaskMemFree(MediumList);
|
||||
return hr;
|
||||
}
|
||||
|
@ -2003,6 +2053,12 @@ COutputPin::CreatePin(
|
|||
CoTaskMemFree(MediumList);
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -2010,7 +2066,12 @@ COutputPin::CreatePin(
|
|||
hr = InterfaceHandler->KsSetPin((IKsPin*)this);
|
||||
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();
|
||||
CoTaskMemFree(MediumList);
|
||||
CoTaskMemFree(InterfaceList);
|
||||
|
@ -2027,7 +2088,6 @@ COutputPin::CreatePin(
|
|||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"COutputPin::CreatePin unexpected communication %u %s\n", m_Communication, m_PinName);
|
||||
OutputDebugStringW(Buffer);
|
||||
DebugBreak();
|
||||
#endif
|
||||
|
||||
hr = E_FAIL;
|
||||
|
@ -2037,6 +2097,12 @@ COutputPin::CreatePin(
|
|||
CoTaskMemFree(MediumList);
|
||||
CoTaskMemFree(InterfaceList);
|
||||
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"COutputPin::CreatePin Result %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -2058,11 +2124,14 @@ COutputPin::CreatePinHandle(
|
|||
//KSPROPERTY Property;
|
||||
//ULONG BytesReturned;
|
||||
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle\n");
|
||||
|
||||
if (m_hPin != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
// pin already exists
|
||||
//CloseHandle(m_hPin);
|
||||
//m_hPin = INVALID_HANDLE_VALUE;
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle pin already exists\n");
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -2075,9 +2144,10 @@ COutputPin::CreatePinHandle(
|
|||
if (!PinConnect)
|
||||
{
|
||||
// failed
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle out of memory\n");
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle copy pinconnect\n");
|
||||
// setup request
|
||||
CopyMemory(&PinConnect->Interface, Interface, sizeof(KSPIN_INTERFACE));
|
||||
CopyMemory(&PinConnect->Medium, Medium, sizeof(KSPIN_MEDIUM));
|
||||
|
@ -2088,7 +2158,7 @@ COutputPin::CreatePinHandle(
|
|||
|
||||
// get dataformat offset
|
||||
DataFormat = (PKSDATAFORMAT)(PinConnect + 1);
|
||||
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle copy format\n");
|
||||
// copy data format
|
||||
DataFormat->FormatSize = sizeof(KSDATAFORMAT) + pmt->cbFormat;
|
||||
DataFormat->Flags = 0;
|
||||
|
@ -2101,13 +2171,19 @@ COutputPin::CreatePinHandle(
|
|||
if (pmt->cbFormat)
|
||||
{
|
||||
// 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);
|
||||
}
|
||||
|
||||
// get IKsObject interface
|
||||
hr = m_ParentFilter->QueryInterface(IID_IKsObject, (LPVOID*)&KsObjectParent);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle no IID_IKsObject interface\n");
|
||||
return hr;
|
||||
}
|
||||
|
||||
// get parent filter handle
|
||||
hFilter = KsObjectParent->KsGetObjectHandle();
|
||||
|
@ -2116,13 +2192,19 @@ COutputPin::CreatePinHandle(
|
|||
KsObjectParent->Release();
|
||||
|
||||
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
|
||||
CopyMemory(&m_Medium, Medium, sizeof(KSPIN_MEDIUM));
|
||||
CopyMemory(&m_Interface, Interface, sizeof(KSPIN_INTERFACE));
|
||||
|
@ -2173,42 +2255,14 @@ COutputPin::CreatePinHandle(
|
|||
if (FAILED(InitializeIOThread()))
|
||||
{
|
||||
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
|
||||
// connect pin pipes
|
||||
|
||||
}
|
||||
else
|
||||
OutputDebugStringW(L"COutputPin::CreatePinHandle failed to create pin\n");
|
||||
// free pin connect
|
||||
CoTaskMemFree(PinConnect);
|
||||
|
||||
|
@ -2338,7 +2392,6 @@ COutputPin::LoadProxyPlugins(
|
|||
{
|
||||
// store plugin
|
||||
m_Plugins.push_back(pUnknown);
|
||||
DebugBreak();
|
||||
}
|
||||
// close key
|
||||
RegCloseKey(hSubKey);
|
||||
|
@ -2357,17 +2410,48 @@ COutputPin::IoProcessRoutine()
|
|||
IMediaSample *Sample;
|
||||
LONG SampleCount;
|
||||
HRESULT hr;
|
||||
PKSSTREAM_SEGMENT StreamSegment;
|
||||
PKSSTREAM_SEGMENT * StreamSegment;
|
||||
HANDLE hEvent;
|
||||
IMediaSample * Samples[1];
|
||||
IMediaSample ** Samples;
|
||||
LONG NumHandles;
|
||||
DWORD dwStatus;
|
||||
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[200];
|
||||
#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
|
||||
WaitForSingleObject(m_hStartEvent, INFINITE);
|
||||
|
||||
m_IoCount = 0;
|
||||
|
||||
assert(m_InterfaceHandler);
|
||||
do
|
||||
{
|
||||
|
@ -2392,14 +2476,14 @@ COutputPin::IoProcessRoutine()
|
|||
|
||||
// fill buffer
|
||||
SampleCount = 1;
|
||||
Samples[0] = Sample;
|
||||
Samples[m_IoCount] = Sample;
|
||||
|
||||
Sample->SetTime(NULL, NULL);
|
||||
hr = m_InterfaceHandler->KsProcessMediaSamples(NULL, /* FIXME */
|
||||
Samples,
|
||||
&Samples[m_IoCount],
|
||||
&SampleCount,
|
||||
KsIoOperation_Read,
|
||||
&StreamSegment);
|
||||
&StreamSegment[m_IoCount]);
|
||||
if (FAILED(hr) || !StreamSegment)
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
|
@ -2409,14 +2493,26 @@ COutputPin::IoProcessRoutine()
|
|||
break;
|
||||
}
|
||||
|
||||
// get completion event
|
||||
hEvent = StreamSegment->CompletionEvent;
|
||||
// interface handle should increment pending i/o count
|
||||
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
|
||||
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
|
||||
m_InterfaceHandler->KsCompleteIo(StreamSegment);
|
||||
m_InterfaceHandler->KsCompleteIo(StreamSegment[0]);
|
||||
|
||||
// close completion event
|
||||
CloseHandle(hEvent);
|
||||
|
@ -2426,7 +2522,7 @@ COutputPin::IoProcessRoutine()
|
|||
assert(m_MemInputPin);
|
||||
|
||||
// now deliver the sample
|
||||
hr = m_MemInputPin->Receive(Sample);
|
||||
hr = m_MemInputPin->Receive(Samples[0]);
|
||||
|
||||
#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);
|
||||
|
@ -2438,6 +2534,11 @@ COutputPin::IoProcessRoutine()
|
|||
|
||||
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);
|
||||
|
||||
// signal end of i/o thread
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#define _FORCENAMELESSUNION
|
||||
#define BUILDING_KS
|
||||
#define _KSDDK_
|
||||
//#define KSPROXY_TRACE
|
||||
#define KSPROXY_TRACE
|
||||
#include <dshow.h>
|
||||
//#include <streams.h>
|
||||
#include <ks.h>
|
||||
|
|
|
@ -1954,7 +1954,6 @@ CKsProxy::IsDirty()
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CKsProxy::IsDirty Notimplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
@ -2035,7 +2034,6 @@ CKsProxy::Load(
|
|||
|
||||
}while(Length > 0);
|
||||
|
||||
DebugBreak();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -2059,7 +2057,6 @@ CKsProxy::GetSizeMax(
|
|||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CKsProxy::GetSizeMax Notimplemented\n");
|
||||
DebugBreak();
|
||||
#endif
|
||||
|
||||
return E_NOTIMPL;
|
||||
|
@ -2480,23 +2477,50 @@ CKsProxy::CreatePins()
|
|||
// query current instance count
|
||||
hr = GetPinInstanceCount(Index, &Instances);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"CKsProxy::CreatePins GetPinInstanceCount failed with %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
// query pin communication;
|
||||
hr = GetPinCommunication(Index, &Communication);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"CKsProxy::CreatePins GetPinCommunication failed with %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Instances.CurrentCount == Instances.PossibleCount)
|
||||
{
|
||||
// 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;
|
||||
}
|
||||
|
||||
// get direction of pin
|
||||
hr = GetPinDataflow(Index, &DataFlow);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"CKsProxy::CreatePins GetPinDataflow failed with %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
if (DataFlow == KSPIN_DATAFLOW_IN)
|
||||
hr = GetPinName(Index, DataFlow, InputPin, &PinName);
|
||||
|
@ -2504,7 +2528,14 @@ CKsProxy::CreatePins()
|
|||
hr = GetPinName(Index, DataFlow, OutputPin, &PinName);
|
||||
|
||||
if (FAILED(hr))
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
WCHAR Buffer[100];
|
||||
swprintf(Buffer, L"CKsProxy::CreatePins GetPinName failed with %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
continue;
|
||||
}
|
||||
|
||||
// construct the pins
|
||||
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);
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
|
@ -2522,6 +2558,11 @@ CKsProxy::CreatePins()
|
|||
hr = COutputPin_Constructor((IBaseFilter*)this, PinName, Index, Communication, IID_IPin, (void**)&pPin);
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
|
@ -2627,9 +2668,12 @@ CKsProxy::Load(IPropertyBag *pPropBag, IErrorLog *pErrorLog)
|
|||
hr = LoadProxyPlugins(pGuid, NumGuids);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
#if 0 //HACK
|
||||
CloseHandle(m_hDevice);
|
||||
m_hDevice = NULL;
|
||||
return hr;
|
||||
#endif
|
||||
OutputDebugStringW(L"CKsProxy::LoadProxyPlugins failed!\n");
|
||||
}
|
||||
|
||||
// free sets
|
||||
|
@ -2638,6 +2682,14 @@ CKsProxy::Load(IPropertyBag *pPropBag, IErrorLog *pErrorLog)
|
|||
// now create the input / output pins
|
||||
hr = CreatePins();
|
||||
|
||||
#ifdef KSPROXY_TRACE
|
||||
swprintf(Buffer, L"CKsProxy::Load CreatePins %lx\n", hr);
|
||||
OutputDebugStringW(Buffer);
|
||||
#endif
|
||||
|
||||
//HACK
|
||||
hr = S_OK;
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
@ -2986,10 +3038,6 @@ STDMETHODCALLTYPE
|
|||
CKsProxy::EnumPins(
|
||||
IEnumPins **ppEnum)
|
||||
{
|
||||
#ifdef KSPROXY_TRACE
|
||||
OutputDebugStringW(L"CKsProxy::EnumPins\n");
|
||||
#endif
|
||||
|
||||
return CEnumPins_fnConstructor(m_Pins, IID_IEnumPins, (void**)ppEnum);
|
||||
}
|
||||
|
||||
|
|
|
@ -155,14 +155,6 @@ CEnumPins_fnConstructor(
|
|||
{
|
||||
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)
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
|
|
|
@ -9,10 +9,14 @@
|
|||
|
||||
#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[] =
|
||||
{
|
||||
{&CLSID_DVBTNetworkProvider, CNetworkProvider_fnConstructor},
|
||||
{NULL, NULL}
|
||||
{&CLSID_DVBTNetworkProvider, CNetworkProvider_fnConstructor, L"ReactOS DVBT Network Provider"},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
||||
extern "C"
|
||||
|
@ -53,8 +57,19 @@ DllUnregisterServer(void)
|
|||
HRESULT hr = S_OK;
|
||||
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)
|
||||
{
|
||||
CoTaskMemFree(pStr);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
RegDeleteKeyW(hClass, pStr);
|
||||
CoTaskMemFree(pStr);
|
||||
|
||||
do
|
||||
{
|
||||
|
@ -71,6 +86,24 @@ DllUnregisterServer(void)
|
|||
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"
|
||||
KSDDKAPI
|
||||
HRESULT
|
||||
|
@ -80,12 +113,50 @@ DllRegisterServer(void)
|
|||
ULONG Index = 0;
|
||||
LPOLESTR pStr;
|
||||
HRESULT hr = S_OK;
|
||||
HKEY hClass, hKey, hSubKey;
|
||||
HKEY hClass, hKey, hSubKey, hProvider, hInstance, hFilter;
|
||||
static LPCWSTR ModuleName = L"msdvbnp.ax";
|
||||
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)
|
||||
{
|
||||
CoTaskMemFree(pStr);
|
||||
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
|
||||
{
|
||||
|
@ -104,11 +175,23 @@ DllRegisterServer(void)
|
|||
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);
|
||||
Index++;
|
||||
}while(InterfaceTable[Index].lpfnCI != 0);
|
||||
|
||||
RegCloseKey(hClass);
|
||||
RegCloseKey(hInstance);
|
||||
return hr;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ typedef struct
|
|||
{
|
||||
const GUID* riid;
|
||||
LPFNCREATEINSTANCE lpfnCI;
|
||||
LPCWSTR ProviderName;
|
||||
} INTERFACE_TABLE;
|
||||
|
||||
/* classfactory.cpp */
|
||||
|
|
|
@ -854,7 +854,7 @@ SampleGrabber_ISampleGrabber_GetCurrentBuffer(ISampleGrabber *iface, LONG *bufSi
|
|||
static HRESULT WINAPI
|
||||
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);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
@ -1264,7 +1264,7 @@ SampleGrabber_IPin_EnumMediaTypes(IPin *iface, IEnumMediaTypes **mtypes)
|
|||
TRACE("(%p)->(%p)\n", This, mtypes);
|
||||
if (!mtypes)
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ static HRESULT AVIDec_ConnectInput(InputPin *pin, const AM_MEDIA_TYPE * pmt)
|
|||
bmi = &format2->bmiHeader;
|
||||
else
|
||||
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);
|
||||
if (This->hvid)
|
||||
|
|
|
@ -692,7 +692,7 @@ static HRESULT AVISplitter_ProcessStreamList(AVISplitterImpl * This, const BYTE
|
|||
amt.formattype = FORMAT_WaveFormatEx;
|
||||
break;
|
||||
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.majortype = MEDIATYPE_Video;
|
||||
|
@ -793,7 +793,7 @@ static HRESULT AVISplitter_ProcessStreamList(AVISplitterImpl * This, const BYTE
|
|||
TRACE("bIndexSubType: %hd\n", pIndex->bIndexSubType);
|
||||
TRACE("bIndexType: %hd\n", pIndex->bIndexType);
|
||||
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])
|
||||
TRACE("dwReserved[0]: %u\n", pIndex->dwReserved[0]);
|
||||
if (pIndex->dwReserved[2])
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
8 stub ADsBuildVarArrayInt
|
||||
9 stdcall ADsOpenObject(wstr wstr wstr long ptr ptr)
|
||||
12 stub ADsSetLastError
|
||||
13 stub ADsGetLastError
|
||||
13 stdcall ADsGetLastError(ptr ptr long ptr long)
|
||||
14 stub AllocADsMem
|
||||
15 stdcall FreeADsMem(ptr)
|
||||
16 stub ReallocADsMem
|
||||
|
|
|
@ -94,6 +94,15 @@ HRESULT WINAPI ADsOpenObject(LPCWSTR lpszPathName, LPCWSTR lpszUserName, LPCWSTR
|
|||
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]
|
||||
*/
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
<file>actxprxy_ocmm.idl</file>
|
||||
<file>actxprxy_servprov.idl</file>
|
||||
<!-- file>actxprxy_shobjidl.idl</file -->
|
||||
<file>actxprxy_urlhist.idl
|
||||
</file>
|
||||
<file>actxprxy_urlhist.idl</file>
|
||||
</module>
|
||||
</group>
|
||||
|
|
|
@ -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,
|
||||
ppUnkContainer, ppUnkControl, iidSink, punkSink);
|
||||
|
||||
hRes = CLSIDFromString( (LPOLESTR) lpszName, &controlId );
|
||||
hRes = CLSIDFromString( lpszName, &controlId );
|
||||
if ( FAILED(hRes) )
|
||||
hRes = CLSIDFromProgID( lpszName, &controlId );
|
||||
if ( SUCCEEDED( hRes ) )
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* 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
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
#include "winver.h"
|
||||
#include "avifile_private.h"
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
|
|
|
@ -77,7 +77,7 @@ THOSE_ZIP_CONSTS;
|
|||
|
||||
struct fdi_file {
|
||||
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 */
|
||||
cab_ULONG length; /* uncompressed length of file */
|
||||
cab_ULONG offset; /* uncompressed offset in folder */
|
||||
|
@ -2301,7 +2301,7 @@ static void free_decompression_mem(HFDI hfdi,
|
|||
}
|
||||
while (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;
|
||||
PFDI_FREE(hfdi, 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);
|
||||
needed = bytes + pad_bytes + 1;
|
||||
if (sep)
|
||||
needed += (needed / 64 + 1) * strlen(sep);
|
||||
needed += (needed / 64 + 1) * strlen(sep);
|
||||
|
||||
if (needed > *out_len)
|
||||
{
|
||||
|
@ -117,7 +116,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
|
|||
i = 0;
|
||||
while (div > 0)
|
||||
{
|
||||
if (sep && i && i % 64 == 0)
|
||||
if (i && i % 64 == 0)
|
||||
{
|
||||
strcpy(ptr, sep);
|
||||
ptr += strlen(sep);
|
||||
|
@ -163,8 +162,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
|
|||
*ptr++ = '=';
|
||||
break;
|
||||
}
|
||||
if (sep)
|
||||
strcpy(ptr, sep);
|
||||
strcpy(ptr, sep);
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
@ -180,7 +178,7 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
|
|||
if (dwFlags & CRYPT_STRING_NOCR)
|
||||
sep = lf;
|
||||
else if (dwFlags & CRYPT_STRING_NOCRLF)
|
||||
sep = NULL;
|
||||
sep = "";
|
||||
else
|
||||
sep = crlf;
|
||||
switch (dwFlags & 0x0fffffff)
|
||||
|
@ -204,8 +202,6 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
|
|||
|
||||
charsNeeded = 0;
|
||||
encodeBase64A(pbBinary, cbBinary, sep, NULL, &charsNeeded);
|
||||
if (sep)
|
||||
charsNeeded += strlen(sep);
|
||||
if (header)
|
||||
charsNeeded += strlen(header) + strlen(sep);
|
||||
if (trailer)
|
||||
|
@ -219,11 +215,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
|
|||
{
|
||||
strcpy(ptr, header);
|
||||
ptr += strlen(ptr);
|
||||
if (sep)
|
||||
{
|
||||
strcpy(ptr, sep);
|
||||
ptr += strlen(sep);
|
||||
}
|
||||
strcpy(ptr, sep);
|
||||
ptr += strlen(sep);
|
||||
}
|
||||
encodeBase64A(pbBinary, cbBinary, sep, ptr, &size);
|
||||
ptr += size - 1;
|
||||
|
@ -231,11 +224,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
|
|||
{
|
||||
strcpy(ptr, trailer);
|
||||
ptr += strlen(ptr);
|
||||
if (sep)
|
||||
{
|
||||
strcpy(ptr, sep);
|
||||
ptr += strlen(sep);
|
||||
}
|
||||
strcpy(ptr, sep);
|
||||
ptr += strlen(sep);
|
||||
}
|
||||
*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);
|
||||
needed = bytes + pad_bytes + 1;
|
||||
if (sep)
|
||||
needed += (needed / 64 + 1) * strlenW(sep);
|
||||
needed += (needed / 64 + 1) * strlenW(sep);
|
||||
|
||||
if (needed > *out_len)
|
||||
{
|
||||
|
@ -322,7 +311,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
|
|||
i = 0;
|
||||
while (div > 0)
|
||||
{
|
||||
if (sep && i && i % 64 == 0)
|
||||
if (i && i % 64 == 0)
|
||||
{
|
||||
strcpyW(ptr, sep);
|
||||
ptr += strlenW(sep);
|
||||
|
@ -368,8 +357,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
|
|||
*ptr++ = '=';
|
||||
break;
|
||||
}
|
||||
if (sep)
|
||||
strcpyW(ptr, sep);
|
||||
strcpyW(ptr, sep);
|
||||
|
||||
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,
|
||||
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;
|
||||
LPCWSTR header = NULL, trailer = NULL, sep;
|
||||
DWORD charsNeeded;
|
||||
|
@ -385,7 +373,7 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
|
|||
if (dwFlags & CRYPT_STRING_NOCR)
|
||||
sep = lf;
|
||||
else if (dwFlags & CRYPT_STRING_NOCRLF)
|
||||
sep = NULL;
|
||||
sep = empty;
|
||||
else
|
||||
sep = crlf;
|
||||
switch (dwFlags & 0x0fffffff)
|
||||
|
@ -409,8 +397,6 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
|
|||
|
||||
charsNeeded = 0;
|
||||
encodeBase64W(pbBinary, cbBinary, sep, NULL, &charsNeeded);
|
||||
if (sep)
|
||||
charsNeeded += strlenW(sep);
|
||||
if (header)
|
||||
charsNeeded += strlenW(header) + strlenW(sep);
|
||||
if (trailer)
|
||||
|
@ -424,11 +410,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
|
|||
{
|
||||
strcpyW(ptr, header);
|
||||
ptr += strlenW(ptr);
|
||||
if (sep)
|
||||
{
|
||||
strcpyW(ptr, sep);
|
||||
ptr += strlenW(sep);
|
||||
}
|
||||
strcpyW(ptr, sep);
|
||||
ptr += strlenW(sep);
|
||||
}
|
||||
encodeBase64W(pbBinary, cbBinary, sep, ptr, &size);
|
||||
ptr += size - 1;
|
||||
|
@ -436,11 +419,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
|
|||
{
|
||||
strcpyW(ptr, trailer);
|
||||
ptr += strlenW(ptr);
|
||||
if (sep)
|
||||
{
|
||||
strcpyW(ptr, sep);
|
||||
ptr += strlenW(sep);
|
||||
}
|
||||
strcpyW(ptr, sep);
|
||||
ptr += strlenW(sep);
|
||||
}
|
||||
*pcchString = charsNeeded - 1;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* FILE: dll/win32/devmgr/lang/cs-CZ.rc
|
||||
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
|
||||
* UPDATED: 2008-06-24
|
||||
* UPDATED: 2010-01-07
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
@ -202,7 +202,7 @@ END
|
|||
|
||||
IDD_DEVICEDETAILS DIALOGEX DISCARDABLE 0, 0, 252, 218
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Details"
|
||||
CAPTION "Detaily"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
ICON "", IDC_DEVICON, 7, 7, 20, 20
|
||||
|
@ -215,7 +215,7 @@ END
|
|||
|
||||
IDD_DEVICERESOURCES DIALOGEX DISCARDABLE 0, 0, 252, 218
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Resources"
|
||||
CAPTION "Prostøedky"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
ICON "", IDC_DEVICON, 7, 7, 20, 20
|
||||
|
@ -224,7 +224,7 @@ END
|
|||
|
||||
IDD_DEVICEPOWER DIALOGEX DISCARDABLE 0, 0, 252, 218
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Power"
|
||||
CAPTION "Napájení"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
ICON "", IDC_DEVICON, 7, 7, 20, 20
|
||||
|
|
|
@ -1540,7 +1540,7 @@ SelectObject(HDC hDC,
|
|||
PDC_ATTR pDc_Attr;
|
||||
HGDIOBJ hOldObj = NULL;
|
||||
UINT uType;
|
||||
// PTEB pTeb;
|
||||
PTEB pTeb;
|
||||
|
||||
if(!GdiGetHandleUserData(hDC, GDI_OBJECT_TYPE_DC, (PVOID)&pDc_Attr))
|
||||
{
|
||||
|
@ -1582,7 +1582,6 @@ SelectObject(HDC hDC,
|
|||
case GDI_OBJECT_TYPE_FONT:
|
||||
hOldObj = pDc_Attr->hlfntNew;
|
||||
if (hOldObj == hGdiObj) return hOldObj;
|
||||
#if 0
|
||||
pDc_Attr->ulDirty_ &= ~SLOW_WIDTHS;
|
||||
pDc_Attr->ulDirty_ |= DIRTY_CHARSET;
|
||||
pDc_Attr->hlfntNew = hGdiObj;
|
||||
|
@ -1604,7 +1603,6 @@ SelectObject(HDC hDC,
|
|||
if (pTeb->GdiBatchCount >= GDI_BatchLimit) NtGdiFlush();
|
||||
return hOldObj;
|
||||
}
|
||||
#endif
|
||||
// default for select object font
|
||||
return NtGdiSelectFont(hDC, hGdiObj);
|
||||
|
||||
|
|
|
@ -104,7 +104,6 @@ BOOL
|
|||
FASTCALL
|
||||
DeleteRegion( HRGN hRgn )
|
||||
{
|
||||
//#if 0
|
||||
PRGN_ATTR 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);
|
||||
}
|
||||
|
||||
|
@ -581,8 +579,110 @@ INT
|
|||
WINAPI
|
||||
ExtSelectClipRgn( IN HDC hdc, IN HRGN hrgn, IN INT iMode)
|
||||
{
|
||||
/* FIXME some part need be done on user mode size */
|
||||
return NtGdiExtSelectClipRgn(hdc,hrgn, iMode);
|
||||
INT Ret;
|
||||
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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -741,7 +741,7 @@ GetShortPathNameW (
|
|||
}
|
||||
|
||||
/* check for drive letter */
|
||||
if (longpath[1] == ':' )
|
||||
if (longpath[0] != '/' && longpath[1] == ':' )
|
||||
{
|
||||
tmpshortpath[0] = longpath[0];
|
||||
tmpshortpath[1] = ':';
|
||||
|
@ -772,7 +772,7 @@ GetShortPathNameW (
|
|||
tmplen = p - (longpath + lp);
|
||||
lstrcpynW(tmpshortpath + sp, longpath + lp, tmplen + 1);
|
||||
/* Check, if the current element is a valid dos name */
|
||||
if (tmplen <= 8+1+3+1)
|
||||
if (tmplen <= 8+1+3)
|
||||
{
|
||||
BOOLEAN spaces;
|
||||
memcpy(ustr_buf, longpath + lp, tmplen * sizeof(WCHAR));
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<!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">
|
||||
<importlibrary definition="msacm32.spec" />
|
||||
<include base="msacm32">.</include>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
@ stub CallFunctionShim
|
||||
@ stub CloseCtrs
|
||||
@ stub ClrCreateManagedInstance
|
||||
@ stdcall ClrCreateManagedInstance(wstr ptr ptr)
|
||||
@ stub CoEEShutDownCOM
|
||||
@ stdcall CoInitializeCor(long)
|
||||
@ stub CoInitializeEE
|
||||
|
|
|
@ -91,9 +91,9 @@ HRESULT WINAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor
|
|||
{
|
||||
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,
|
||||
startupFlags, rclsid, riid, ppv);
|
||||
startupFlags, debugstr_guid(rclsid), debugstr_guid(riid), ppv);
|
||||
|
||||
if (!(mono_exe = get_mono_exe()))
|
||||
{
|
||||
|
@ -144,6 +144,11 @@ __int32 WINAPI _CorExeMain(void)
|
|||
PROCESS_INFORMATION pi;
|
||||
WCHAR *mono_exe, *cmd_line;
|
||||
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()))
|
||||
{
|
||||
|
@ -151,7 +156,13 @@ __int32 WINAPI _CorExeMain(void)
|
|||
return -1;
|
||||
}
|
||||
|
||||
trace_size = GetEnvironmentVariableW(WINE_MONO_TRACE, trace_setting, sizeof(trace_setting)/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)))
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, mono_exe);
|
||||
|
@ -160,6 +171,14 @@ __int32 WINAPI _CorExeMain(void)
|
|||
|
||||
lstrcpyW(cmd_line, 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());
|
||||
|
||||
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)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -324,6 +343,12 @@ HRESULT WINAPI CorBindToCurrentRuntime(LPCWSTR filename, REFCLSID rclsid, REFIID
|
|||
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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
FIXME("(%p, %p, %p): stub\n", rclsid, riid, ppv);
|
||||
FIXME("(%s, %s, %p): stub\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
|
||||
if(!ppv)
|
||||
return E_INVALIDARG;
|
||||
|
||||
|
|
|
@ -655,7 +655,7 @@ static HRESULT WINAPI ActiveIMMApp_Deactivate(IActiveIMMApp* This)
|
|||
static HRESULT WINAPI ActiveIMMApp_OnDefWindowProc(IActiveIMMApp* This,
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION
|
||||
CAPTION "Obecné nastavení"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
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
|
||||
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
|
||||
|
@ -28,43 +33,43 @@ END
|
|||
|
||||
IDD_TCPIP_ALTCF_DLG DIALOGEX DISCARDABLE 0, 0, 246, 228
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION
|
||||
CAPTION "Alternate Configuration"
|
||||
CAPTION "Alternativní konfigurace"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "If this computer is used on more than one network, enter the alternate IP settings below", -1, 9, 9, 220, 20
|
||||
CONTROL "Au&tomatic private IP address", IDC_USEDHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 40, 210, 12
|
||||
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&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
|
||||
CONTROL "U&ser configured", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 55, 70, 12
|
||||
LTEXT "&IP address:", -1, 14, 75, 135, 8
|
||||
CONTROL "&Uživatelské nastavení", IDC_NODHCP, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 14, 55, 70, 12
|
||||
LTEXT "&IP adresa:", -1, 14, 75, 135, 8
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
END
|
||||
|
||||
IDD_TCPIP_ADVIP_DLG DIALOGEX DISCARDABLE 0, 0, 247, 247
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION
|
||||
CAPTION "IP Settings"
|
||||
CAPTION "IP nastavení"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
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
|
||||
PUSHBUTTON "Add...", IDC_IPADD, 60, 75, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Edit...", IDC_IPMOD, 120, 75, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remove", IDC_IPDEL, 180, 75, 50, 14, WS_TABSTOP
|
||||
GROUPBOX "Default gateways:", -1, 5, 100, 240, 90
|
||||
PUSHBUTTON "Přidat...", IDC_IPADD, 60, 75, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Upravit...", IDC_IPMOD, 120, 75, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Odebrat", IDC_IPDEL, 180, 75, 50, 14, WS_TABSTOP
|
||||
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
|
||||
PUSHBUTTON "Add...", IDC_GWADD, 60, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Edit...", IDC_GWMOD, 120, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remove", IDC_GWDEL, 180, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Přidat...", IDC_GWADD, 60, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Upravit...", IDC_GWMOD, 120, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Odebrat", IDC_GWDEL, 180, 170, 50, 14, WS_TABSTOP
|
||||
GROUPBOX "", -1, 5, 200, 240, 30
|
||||
CHECKBOX "Automatic metric", IDC_AUTOMETRIC, 9, 200, 90, 12, BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
LTEXT "Interface metric:", -1, 15, 215, 90, 12
|
||||
CHECKBOX "Automatická metrika", IDC_AUTOMETRIC, 9, 200, 90, 12, BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
LTEXT "Metrika rozhraní:", -1, 15, 215, 90, 12
|
||||
EDITTEXT IDC_METRIC, 110, 212, 50, 12, WS_TABSTOP | ES_NUMBER
|
||||
END
|
||||
|
||||
|
@ -74,158 +79,158 @@ CAPTION "DNS"
|
|||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LISTBOX IDC_DNSADDRLIST, 5, 15, 180, 60, LBS_NOTIFY
|
||||
LTEXT "D&NS server addresses, in order of use:", -1, 5, 5, 180, 12
|
||||
PUSHBUTTON "Up", IDC_DNSADDRUP, 190, 30, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Down", IDC_DNSADDRDOWN, 190, 50, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Add...", IDC_DNSADDRADD, 30, 70, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Edit...", IDC_DNSADDRMOD, 100, 70, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remo&ve", 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
|
||||
CONTROL "Append &primary and connection specific DNS suffixes", 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
|
||||
CONTROL "Append t&hese DNS suffixes(in order):", IDC_SELSUFFIX, "BUTTON", BS_AUTORADIOBUTTON, 5, 140, 190, 12
|
||||
LTEXT "&Adresy DNS serverů v pořadí využití:", -1, 5, 5, 180, 12
|
||||
PUSHBUTTON "Nahoru", IDC_DNSADDRUP, 190, 30, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Dolů", IDC_DNSADDRDOWN, 190, 50, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Přidat...", IDC_DNSADDRADD, 30, 70, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Upravit...", IDC_DNSADDRMOD, 100, 70, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Odebrat", IDC_DNSADDRDEL, 170, 70, 50, 14, WS_TABSTOP
|
||||
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 "Připojit p&rimární a připojením dané DNS přípony", IDC_PRIMSUFFIX, "BUTTON", BS_AUTORADIOBUTTON, 5, 110, 160, 12
|
||||
CHECKBOX "Připojit rodičovské přípony primární DNS přípony", IDC_TOPPRIMSUFFIX, 15, 125, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
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
|
||||
PUSHBUTTON "Up", IDC_DNSSUFFIXUP, 190, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Down", IDC_DNSSUFFIXDOWN, 190, 190, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Add...", IDC_DNSSUFFIXADD, 30, 210, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Edit...", IDC_DNSSUFFIXMOD, 100, 210, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remo&ve", IDC_DNSSUFFIXDEL, 170, 210, 50, 14, WS_TABSTOP
|
||||
LTEXT "DNS &suffix for this connection:", -1, 5, 225, 110, 14
|
||||
PUSHBUTTON "Nahoru", IDC_DNSSUFFIXUP, 190, 170, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Dolů", IDC_DNSSUFFIXDOWN, 190, 190, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Přidat...", IDC_DNSSUFFIXADD, 30, 210, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Upravit...", IDC_DNSSUFFIXMOD, 100, 210, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "&Odebrat", IDC_DNSSUFFIXDEL, 170, 210, 50, 14, WS_TABSTOP
|
||||
LTEXT "DNS přípo&na tohoto připojení:", -1, 5, 225, 110, 14
|
||||
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 "&Use this connection's DNS suffix in DNS registration", IDC_USESUFFIX, 15, 255, 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 "P&oužít DNS příponu tohoto připojení při DNS registraci", IDC_USESUFFIX, 15, 255, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
|
||||
END
|
||||
|
||||
IDD_TCPIP_ADVOPT_DLG DIALOGEX DISCARDABLE 0, 0, 247, 247
|
||||
STYLE DS_SHELLFONT | WS_CHILD | WS_CAPTION
|
||||
CAPTION "Options"
|
||||
CAPTION "Volby"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LISTBOX IDC_OPTLIST, 5, 30, 230, 70
|
||||
LTEXT "&Optional settings", -1, 5, 15, 130, 12
|
||||
PUSHBUTTON "&Properties", IDC_OPTPROP, 160, 100, 70, 14, WS_TABSTOP
|
||||
GROUPBOX "Description:", -1, 5, 120, 240, 70
|
||||
LTEXT "&Volitelná nastavení", -1, 5, 15, 130, 12
|
||||
PUSHBUTTON "&Podrobnosti", IDC_OPTPROP, 160, 100, 70, 14, WS_TABSTOP
|
||||
GROUPBOX "Popis:", -1, 5, 120, 240, 70
|
||||
LTEXT "", IDC_OPTDESC, 15, 130, 220, 33
|
||||
END
|
||||
|
||||
IDD_TCPIPADDIP_DLG DIALOGEX DISCARDABLE 0, 0, 200, 70
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "TCP/IP Address"
|
||||
CAPTION "TCP/IP adresa"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 100, 15, 80, 12
|
||||
LTEXT "IP address:", -1, 5, 15, 70, 12
|
||||
LTEXT "Subnet mask:", -1, 5, 30, 70, 12
|
||||
LTEXT "IP adresa:", -1, 5, 15, 70, 12
|
||||
LTEXT "Maska podsítě:", -1, 5, 30, 70, 12
|
||||
CONTROL "",IDC_SUBNETMASK,"SysIPAddress32", WS_TABSTOP, 100, 30, 80, 12
|
||||
PUSHBUTTON "", IDC_OK, 50, 50, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "OK", IDC_OK, 50, 50, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Storno", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_TCPIPGW_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80
|
||||
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"
|
||||
BEGIN
|
||||
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 100, 15, 80, 12
|
||||
LTEXT "Gateway:", -1, 5, 15, 70, 12
|
||||
CHECKBOX "Automatic metric", IDC_USEMETRIC, 15, 30, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
LTEXT "&Metric:", IDC_METRICTXT, 5, 45, 45, 12, WS_DISABLED
|
||||
LTEXT "Brána:", -1, 5, 15, 70, 12
|
||||
CHECKBOX "Automatická metrika", IDC_USEMETRIC, 15, 30, 190, 12, BS_AUTOCHECKBOX | WS_TABSTOP
|
||||
LTEXT "&Metrika:", IDC_METRICTXT, 5, 45, 45, 12, 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 "Cancel", IDCANCEL, 110, 60, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Storno", IDCANCEL, 110, 60, 50, 14, WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_TCPIPDNS_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "TCP/IP DNS Server"
|
||||
CAPTION "TCP/IP DNS server"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
CONTROL "",IDC_IPADDR,"SysIPAddress32",WS_TABSTOP, 5, 25, 80, 12
|
||||
LTEXT "DNS server:", -1, 5, 10, 120, 12
|
||||
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
|
||||
|
||||
IDD_TCPIPSUFFIX_DLG DIALOGEX DISCARDABLE 0, 0, 200, 80
|
||||
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"
|
||||
BEGIN
|
||||
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 "Cancel", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Storno", IDCANCEL, 110, 50, 50, 14, WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_TCPIP_FILTER_DLG DIALOGEX DISCARDABLE 0, 0, 305, 220
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "TCP/IP Filtering"
|
||||
CAPTION "TCP/IP filtrování"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
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
|
||||
CONTROL "Permit All", 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 vše", IDC_TCP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 30, 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
|
||||
PUSHBUTTON "Add", IDC_TCP_ADD, 15, 141, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remove", IDC_TCP_DEL, 15, 161, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Přidat", IDC_TCP_ADD, 15, 141, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Odebrat", IDC_TCP_DEL, 15, 161, 50, 14, WS_TABSTOP
|
||||
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 "Permit Only", IDC_UDP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 115, 44, 70, 12
|
||||
CONTROL "Povolit vše", IDC_UDP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 115, 30, 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
|
||||
PUSHBUTTON "Add", IDC_UDP_ADD, 115, 141, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remove", IDC_UDP_DEL, 115, 161, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Přidat", IDC_UDP_ADD, 115, 141, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Odebrat", IDC_UDP_DEL, 115, 161, 50, 14, WS_TABSTOP
|
||||
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 "Permit Only", IDC_IP_RESTRICT, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 215, 44, 70, 12
|
||||
CONTROL "Povolit vše", IDC_IP_ALLOW_ALL, "BUTTON", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 215, 30, 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
|
||||
PUSHBUTTON "Add", IDC_IP_ADD, 215, 141, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Remove", IDC_IP_DEL, 215, 161, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Přidat", IDC_IP_ADD, 215, 141, 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 "Cancel", IDCANCEL, 210, 190, 50, 14, WS_TABSTOP
|
||||
PUSHBUTTON "Storno", IDCANCEL, 210, 190, 50, 14, WS_TABSTOP
|
||||
END
|
||||
|
||||
IDD_TCPIP_PORT_DLG DIALOGEX DISCARDABLE 0, 0, 200, 60
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Add Filter"
|
||||
CAPTION "Přidat filtr"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
EDITTEXT IDC_PORT_VAL, 5, 30, 70, 12, WS_TABSTOP | ES_NUMBER
|
||||
LTEXT "", IDC_PORT_DESC, 5, 15, 40, 12
|
||||
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
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_NET_CONNECT "Network connection"
|
||||
IDS_NO_IPADDR_SET "The adapter requires at least one IP address. Please enter one."
|
||||
IDS_NO_SUBMASK_SET "You have entered an address that is missing its subnet mask. Please add a subnet mask."
|
||||
IDS_TCPFILTERDESC "TCP/IP filtering allows you to control the type of TCP/IP network traffic that reaches your computer."
|
||||
IDS_TCPFILTER "TCP/IP Filtering"
|
||||
IDS_IPADDR "IP address"
|
||||
IDS_SUBMASK "Subnet mask"
|
||||
IDS_GATEWAY "Gateway"
|
||||
IDS_METRIC "Metric"
|
||||
IDS_DHCPACTIVE "DHCP Enabled"
|
||||
IDS_AUTOMATIC "Automatic"
|
||||
IDS_NOITEMSEL "You have not selected an item. Select one first."
|
||||
IDS_NET_CONNECT "Síťové připojení"
|
||||
IDS_NO_IPADDR_SET "Adaptér vyžaduje zadání alespoň jedné IP adresy."
|
||||
IDS_NO_SUBMASK_SET "K zadané adrese je nutné doplnit masku podsítě."
|
||||
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 filtrování"
|
||||
IDS_IPADDR "IP adresa"
|
||||
IDS_SUBMASK "Maska podsítě"
|
||||
IDS_GATEWAY "Brána"
|
||||
IDS_METRIC "Metrika"
|
||||
IDS_DHCPACTIVE "DHCP zapnuto"
|
||||
IDS_AUTOMATIC "Automaticky"
|
||||
IDS_NOITEMSEL "Nebyla vybrána žádná položka."
|
||||
IDS_TCPIP "ReactOS-TCP/IP"
|
||||
IDS_ADD "Add"
|
||||
IDS_ADD "Přidat"
|
||||
IDS_MOD "OK"
|
||||
IDS_TCP_PORTS "TCP Ports"
|
||||
IDS_UDP_PORTS "UDP Ports"
|
||||
IDS_IP_PROTO "IP protocols"
|
||||
IDS_PORT_RANGE "Port numbers must be greater than 0 and less than 65536. Please enter a number within this range."
|
||||
IDS_PROT_RANGE "Protocol numbers must be greater than 0 and less than 256. Please enter a number within this range."
|
||||
IDS_DUP_NUMBER "The number you are trying to add is already in the list. Please enter a different number."
|
||||
IDS_DISABLE_FILTER "Disabling this global TCP/IP setting will affect all adapters."
|
||||
IDS_NO_SUFFIX "The current setting of search method requires at least one DNS suffix. Please enter one or change the setting."
|
||||
IDS_DOMAIN_SUFFIX "Domain suffix is not a valid suffix."
|
||||
IDS_DNS_SUFFIX "The DNS domain name ""%s"" is not a valid DNS name."
|
||||
IDS_DUP_SUFFIX "The DNS suffix is already on the list."
|
||||
IDS_DUP_IPADDR "The IP address is already on the list."
|
||||
IDS_DUP_GW "The default gateway is already on the list."
|
||||
IDS_TCP_PORTS "TCP porty"
|
||||
IDS_UDP_PORTS "UDP porty"
|
||||
IDS_IP_PROTO "IP protokoly"
|
||||
IDS_PORT_RANGE "Čísla portů musí být zadána vyšší než 0 a nižší než 65536."
|
||||
IDS_PROT_RANGE "Čísla protokolů musí být zadána vyšší než 0 a nižší než 256."
|
||||
IDS_DUP_NUMBER "Přidávané číslo se už nachází v seznamu. Je nutné zadat jiné číslo."
|
||||
IDS_DISABLE_FILTER "Vypnutí tohoto globálního nastavení TCP/IP ovlivní všechny adaptéry."
|
||||
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 "Zadaná doménová přípona není platná."
|
||||
IDS_DNS_SUFFIX "DNS doménové jméno ""%s"" není platné."
|
||||
IDS_DUP_SUFFIX "DNS přípona se už nachází v seznamu."
|
||||
IDS_DUP_IPADDR "IP adresa se už nachází v seznamu."
|
||||
IDS_DUP_GW "Výchozí brána se už nachází v seznamu."
|
||||
END
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* FILE: dll/win32/netid/lang/cs-CZ.rc
|
||||
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
|
||||
* UPDATED: 2008-06-26
|
||||
* UPDATED: 2010-03-14
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
@ -18,10 +18,9 @@ BEGIN
|
|||
LTEXT "(Implicitní)", IDC_COMPUTERNAME, 98, 68, 144, 11
|
||||
LTEXT "Pracovní skupina:", IDC_WORKGROUPDOMAIN, 6, 84, 64, 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
|
||||
//musi zustat jako sitova ID, jinak se nevejde na tlacitko!
|
||||
PUSHBUTTON "&Sí<53>ová ID...", IDC_NETWORK_ID, 190, 114, 58, 15
|
||||
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
|
||||
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
|
||||
PUSHBUTTON "&Síťová ID...", IDC_NETWORK_ID, 190, 114, 58, 15 //FIXME nic vic nez "sitova ID" se nevejde na tlacitko!
|
||||
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
|
||||
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
|
||||
END
|
||||
|
@ -31,7 +30,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_CAPTIO
|
|||
CAPTION "Změna názvu počítače"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
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
|
||||
EDITTEXT 1002, 7, 53, 218, 14, ES_AUTOHSCROLL | ES_OEMCONVERT
|
||||
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 "&Pracovní skupiny:", 1004, 17, 161, 191, 10
|
||||
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
|
||||
DEFPUSHBUTTON "OK", 1, 121, 203, 50, 14, WS_GROUP
|
||||
PUSHBUTTON "Storno", 2, 176, 203, 50, 14
|
||||
|
@ -65,7 +64,7 @@ END
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
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:"
|
||||
4 "Změna názvu počítače"
|
||||
5 "Pracovní skupina:"
|
||||
|
@ -73,12 +72,12 @@ BEGIN
|
|||
22 "Vítejte v pracovní skupině %1."
|
||||
23 "Vítejte v doméně %1."
|
||||
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."
|
||||
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 >>"
|
||||
3220 "<< &Detaily"
|
||||
4000 "Information"
|
||||
4001 "Can't set new a computer name!"
|
||||
4000 "Informace"
|
||||
4001 "Nelze nastavit nový název počítače!"
|
||||
END
|
||||
|
|
|
@ -67,13 +67,13 @@ BEGIN
|
|||
6 "Dominio:"
|
||||
22 "Benvenuto al gruppo di lavoro %1."
|
||||
23 "Benvenuto al dominio %1."
|
||||
24 "Il computer deve essre 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."
|
||||
24 "Il computer deve essere riavviato per rendere operative queste modifiche."
|
||||
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."
|
||||
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 >>"
|
||||
3220 "<< &Dettagli"
|
||||
4000 "Information"
|
||||
4001 "Can't set new a computer name!"
|
||||
4000 "Informazioni"
|
||||
4001 "Impossibile assegnare il nuovo nome del computer!"
|
||||
END
|
||||
|
|
|
@ -16,12 +16,12 @@ BEGIN
|
|||
GROUPBOX "Popis", -1, 9, 153, 230, 46, BS_GROUPBOX
|
||||
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 "&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
|
||||
|
||||
IDD_STATUS DIALOGEX DISCARDABLE 0, 0, 200, 280
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "General"
|
||||
CAPTION "Obecné nastavení"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
END
|
||||
|
@ -65,62 +65,62 @@ BEGIN
|
|||
RTEXT "000.000.000.000", IDC_DETAILSSUBNET, 122, 48, 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
|
||||
|
||||
IDD_LAN_NETSTATUSDETAILS DIALOGEX DISCARDABLE 0, 0, 200,200
|
||||
STYLE DS_SHELLFONT | WS_POPUP | WS_CAPTION
|
||||
CAPTION "Network Connection Details"
|
||||
CAPTION "Podrobnosti síťového připojení"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
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
|
||||
PUSHBUTTON "&Close", IDC_CLOSE, 125, 165, 62, 14
|
||||
PUSHBUTTON "&zavřít", IDC_CLOSE, 125, 165, 62, 14
|
||||
END
|
||||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_PHYSICAL_ADDRESS "Physical Address"
|
||||
IDS_IP_ADDRESS "IP Address"
|
||||
IDS_SUBNET_MASK "Subnet Mask"
|
||||
IDS_DEF_GATEWAY "Default Gateway"
|
||||
IDS_DHCP_SERVER "DHCP Server"
|
||||
IDS_LEASE_OBTAINED "Lease Obtained"
|
||||
IDS_LEASE_EXPIRES "Lease Expires"
|
||||
IDS_DNS_SERVERS "DNS Servers"
|
||||
IDS_WINS_SERVERS "WINS Servers"
|
||||
IDS_PROPERTY "Property"
|
||||
IDS_VALUE "Value"
|
||||
IDS_NETWORKCONNECTION "Network Connection"
|
||||
IDS_SHV_COLUMN_NAME "Name"
|
||||
IDS_SHV_COLUMN_TYPE "Type"
|
||||
IDS_PHYSICAL_ADDRESS "Fyzická adresa"
|
||||
IDS_IP_ADDRESS "IP Adresa"
|
||||
IDS_SUBNET_MASK "Maska podsítě"
|
||||
IDS_DEF_GATEWAY "Výchozí brána"
|
||||
IDS_DHCP_SERVER "DHCP server"
|
||||
IDS_LEASE_OBTAINED "Zapůjčeno"
|
||||
IDS_LEASE_EXPIRES "Zapůjčení vyprší"
|
||||
IDS_DNS_SERVERS "DNS servery"
|
||||
IDS_WINS_SERVERS "WINS servery"
|
||||
IDS_PROPERTY "Vlastnost"
|
||||
IDS_VALUE "Hodnota"
|
||||
IDS_NETWORKCONNECTION "Síťová připojení"
|
||||
IDS_SHV_COLUMN_NAME "Název"
|
||||
IDS_SHV_COLUMN_TYPE "Typ"
|
||||
IDS_SHV_COLUMN_STATE "Status"
|
||||
IDS_SHV_COLUMN_DEVNAME "Device Name"
|
||||
IDS_SHV_COLUMN_PHONE "Phone # or Host Address"
|
||||
IDS_SHV_COLUMN_OWNER "Owner"
|
||||
IDS_TYPE_ETHERNET "LAN or High-Speed Internet"
|
||||
IDS_STATUS_NON_OPERATIONAL "Disabled"
|
||||
IDS_STATUS_UNREACHABLE "Not Connected"
|
||||
IDS_STATUS_DISCONNECTED "Network cable unplugged"
|
||||
IDS_STATUS_CONNECTING "Acquiring network address"
|
||||
IDS_STATUS_CONNECTED "Connected"
|
||||
IDS_STATUS_OPERATIONAL "Connected"
|
||||
IDS_SHV_COLUMN_DEVNAME "Název zařízení"
|
||||
IDS_SHV_COLUMN_PHONE "Telefonní číslo nebo adresa hostitele"
|
||||
IDS_SHV_COLUMN_OWNER "Vlastník"
|
||||
IDS_TYPE_ETHERNET "LAN nebo vysokorychlostní internet"
|
||||
IDS_STATUS_NON_OPERATIONAL "Vypnuto"
|
||||
IDS_STATUS_UNREACHABLE "Nepřipojeno"
|
||||
IDS_STATUS_DISCONNECTED "Síťový kabel byl odpojen"
|
||||
IDS_STATUS_CONNECTING "Získávám síťovou adresu"
|
||||
IDS_STATUS_CONNECTED "Připojeno"
|
||||
IDS_STATUS_OPERATIONAL "Připojeno"
|
||||
|
||||
IDS_NET_ACTIVATE "Enable"
|
||||
IDS_NET_DEACTIVATE "Disable"
|
||||
IDS_NET_ACTIVATE "Zapnout"
|
||||
IDS_NET_DEACTIVATE "Vypnout"
|
||||
IDS_NET_STATUS "Status"
|
||||
IDS_NET_REPAIR "Repair"
|
||||
IDS_NET_CREATELINK "Create Shortcut"
|
||||
IDS_NET_DELETE "Delete"
|
||||
IDS_NET_RENAME "Rename"
|
||||
IDS_NET_PROPERTIES "Properties"
|
||||
IDS_NET_REPAIR "Opravit"
|
||||
IDS_NET_CREATELINK "Vytvořit zástupce"
|
||||
IDS_NET_DELETE "Smazat"
|
||||
IDS_NET_RENAME "Přejmenovat"
|
||||
IDS_NET_PROPERTIES "Vlasnosti"
|
||||
|
||||
IDS_FORMAT_BIT "%u Bit/s"
|
||||
IDS_FORMAT_KBIT "%u KBit/s"
|
||||
IDS_FORMAT_MBIT "%u MBit/s"
|
||||
IDS_FORMAT_GBIT "%u GBit/s"
|
||||
IDS_DURATION_DAY "%d Day %s"
|
||||
IDS_DURATION_DAYS "%d Days %s"
|
||||
IDS_DURATION_DAY "%d Den %s"
|
||||
IDS_DURATION_DAYS "%d Dnů %s"
|
||||
IDS_ASSIGNED_DHCP "Pøiøazeno DHCP"
|
||||
IDS_ASSIGNED_MANUAL "Ruènì nastaveno"
|
||||
END
|
||||
|
|
|
@ -1236,7 +1236,7 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
|
|||
DWORD ObjectsPresent;
|
||||
BOOL needToClean;
|
||||
PSID pSid1, pSid2;
|
||||
ULONG i;
|
||||
ULONG i, j;
|
||||
LSA_HANDLE PolicyHandle = NULL;
|
||||
BOOL bRet;
|
||||
DWORD LastErr;
|
||||
|
@ -1295,11 +1295,11 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
|
|||
case REVOKE_ACCESS:
|
||||
case SET_ACCESS:
|
||||
/* 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;
|
||||
if (!GetAce(OldAcl, i, (PVOID*)&pAce))
|
||||
if (!GetAce(OldAcl, j, (PVOID*)&pAce))
|
||||
{
|
||||
Ret = GetLastError();
|
||||
goto Cleanup;
|
||||
|
@ -1308,7 +1308,7 @@ AccRewriteSetEntriesInAcl(ULONG cCountOfExplicitEntries,
|
|||
pSid2 = AccpGetAceSid(pAce);
|
||||
if (RtlEqualSid(pSid1, pSid2))
|
||||
{
|
||||
pKeepAce[i] = FALSE;
|
||||
pKeepAce[j] = FALSE;
|
||||
SizeInformation.AclBytesInUse -= pAce->AceSize;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -1,23 +1,7 @@
|
|||
/* Hey, Emacs, open this file with -*- coding: cp1250 -*-
|
||||
*
|
||||
* Czech resources for SETUPAPI
|
||||
*
|
||||
* 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
|
||||
/* FILE: dll/win32/setupapi/lang/cs-CZ.rc
|
||||
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
|
||||
* THANKS TO: David Kredba
|
||||
* UPDATED: 2010-01-07
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
@ -39,7 +23,7 @@ END
|
|||
|
||||
STRINGTABLE DISCARDABLE
|
||||
BEGIN
|
||||
IDS_QUERY_REBOOT_TEXT "Your computer needs to be rebooted to finish installation. Do you want to proceed?"
|
||||
IDS_QUERY_REBOOT_CAPTION "Reboot"
|
||||
IDS_INF_FILE "Setup Information"
|
||||
IDS_QUERY_REBOOT_TEXT "Aby mohla být instalace dokonèena, musí být poèítaè restartován. Pokraèovat?"
|
||||
IDS_QUERY_REBOOT_CAPTION "Restartovat"
|
||||
IDS_INF_FILE "Instalaèní informace"
|
||||
END
|
||||
|
|
|
@ -344,7 +344,7 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
|
|||
else
|
||||
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 ;
|
||||
FormatMessageA (
|
||||
|
@ -357,7 +357,7 @@ static INT_PTR CALLBACK RunDlgProc (HWND hwnd, UINT message, WPARAM wParam, LPAR
|
|||
) ;
|
||||
sprintf (szMsg, "Error: %s", 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, pdir);
|
||||
|
@ -612,9 +612,11 @@ int WINAPI RestartDialogEx(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, D
|
|||
|
||||
int WINAPI LogoffWindowsDialog(HWND hWndOwner)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
ExitWindowsEx(EWX_LOGOFF, 0);
|
||||
return 0;
|
||||
if (ConfirmDialog(hWndOwner, IDS_LOGOFF_PROMPT, IDS_LOGOFF_TITLE))
|
||||
{
|
||||
ExitWindowsEx(EWX_LOGOFF, 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
|
|
|
@ -114,7 +114,7 @@ SH_FileGeneralSetFileType(HWND hwndDlg, WCHAR *filext)
|
|||
{
|
||||
/* the file extension is unknown, so default to string "FileExtension File" */
|
||||
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);
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -357,7 +357,7 @@ BEGIN
|
|||
END
|
||||
|
||||
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 "Îòâàðÿíå ñ"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
@ -666,6 +666,8 @@ BEGIN
|
|||
IDS_RESTART_PROMPT "Èñêàòå ëè äà ïðåçàïóñíåòå ñèñòåìàòà?"
|
||||
IDS_SHUTDOWN_TITLE "Èçêëþ÷âàíå"
|
||||
IDS_SHUTDOWN_PROMPT "Èñêàòå ëè äà èçêëþ÷èòå êîìïþòúðà?"
|
||||
IDS_LOGOFF_TITLE "Log Off"
|
||||
IDS_LOGOFF_PROMPT "Do you want to log off?"
|
||||
|
||||
// shell folder path default values
|
||||
IDS_PROGRAMS "Ïóñêîâ èçáîðíèê\\Ïðèëîæåíèÿ"
|
||||
|
@ -750,6 +752,8 @@ BEGIN
|
|||
|
||||
IDS_DEFAULT_CLUSTER_SIZE "Ïîäðàçáèðàí ðàçïðåäåëèòåëåí ðàçìåð"
|
||||
IDS_COPY_OF "Copy of"
|
||||
|
||||
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
|
||||
END
|
||||
|
||||
|
||||
|
|
|
@ -358,7 +358,7 @@ BEGIN
|
|||
END
|
||||
|
||||
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"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
@ -665,6 +665,8 @@ BEGIN
|
|||
IDS_RESTART_PROMPT "Do you want to restart the system?"
|
||||
IDS_SHUTDOWN_TITLE "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 */
|
||||
IDS_PROGRAMS "Start Menu\\Programs"
|
||||
|
@ -749,4 +751,6 @@ BEGIN
|
|||
|
||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||
IDS_COPY_OF "Copy of"
|
||||
|
||||
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
|
||||
END
|
||||
|
|
|
@ -1,21 +1,7 @@
|
|||
/*
|
||||
* Copyright 1998 Juergen Schmied
|
||||
* Copyright 2003 Filip Navara
|
||||
* Copyright 2008 Radek Liska
|
||||
*
|
||||
* 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
|
||||
/* FILE: dll/win32/shell32/lang/cs-CZ.rc
|
||||
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
|
||||
* UPDATED: 2010-04-05
|
||||
* THANKS TO: navaraf, who translated major part of this file
|
||||
*/
|
||||
|
||||
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
||||
|
@ -208,18 +194,18 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
|||
BEGIN
|
||||
ICON "", 14000, 10, 3, 30, 30, WS_VISIBLE
|
||||
EDITTEXT 14001, 70, 9, 158, 14, ES_LEFT | ES_READONLY
|
||||
LTEXT "Type of file:", 14004, 8, 35, 50, 10
|
||||
LTEXT "Folder", 14005, 68, 35, 160, 10
|
||||
LTEXT "Location:", 14006, 8, 53, 50, 10
|
||||
LTEXT "Typ souboru:", 14004, 8, 35, 50, 10
|
||||
LTEXT "Složka", 14005, 68, 35, 160, 10
|
||||
LTEXT "Umístìní:", 14006, 8, 53, 50, 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 "Contains:", 14010, 8, 93, 45, 10
|
||||
LTEXT "Obsahuje:", 14010, 8, 93, 45, 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
|
||||
AUTOCHECKBOX "&Read-only", 14021, 45, 150, 67, 10
|
||||
AUTOCHECKBOX "&Hidden", 14022, 126, 150, 50, 10
|
||||
AUTOCHECKBOX "&Jen pro ètení", 14021, 45, 150, 67, 10
|
||||
AUTOCHECKBOX "&Skrytý", 14022, 126, 150, 50, 10
|
||||
END
|
||||
|
||||
SHELL_FILE_GENERAL_DLG DIALOGEX 0, 0, 240, 205
|
||||
|
@ -360,7 +346,7 @@ BEGIN
|
|||
END
|
||||
|
||||
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..."
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
@ -546,7 +532,7 @@ END
|
|||
|
||||
FORMAT_DLG DIALOGEX 50, 50, 184, 218
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Format"
|
||||
CAPTION "Formátování"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "&Spustit", IDOK, 53, 198, 60, 14
|
||||
|
@ -567,14 +553,14 @@ END
|
|||
|
||||
CHKDSK_DLG DIALOGEX 50, 50, 194, 120
|
||||
STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUPWINDOW | WS_VISIBLE | WS_CAPTION
|
||||
CAPTION "Check Disk"
|
||||
CAPTION "Zkontrolovat disk"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "Start", IDOK, 53, 100, 60, 14
|
||||
GROUPBOX "Check disk options", -1, 7, 6, 179, 50
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 118, 100, 60, 14
|
||||
AUTOCHECKBOX "Automatically fix file system errors", 14000, 16, 15, 155, 10
|
||||
AUTOCHECKBOX "&Scan for and attempt recovery of bad sectors", 14001, 16, 30, 165, 10
|
||||
GROUPBOX "Možnosti kontroly disku", -1, 7, 6, 179, 50
|
||||
PUSHBUTTON "Storno", IDCANCEL, 118, 100, 60, 14
|
||||
AUTOCHECKBOX "Automaticky opravovat chyby souborového systému", 14000, 16, 15, 155, 10
|
||||
AUTOCHECKBOX "&Vyhledat a pokusit se obnovit vadné sektory", 14001, 16, 30, 165, 10
|
||||
CONTROL "", 14002, "MSCTLS_PROGRESS32", 16, 7, 60, 170, 8
|
||||
LTEXT "", 14003, 60, 80, 170, 10
|
||||
END
|
||||
|
@ -607,17 +593,17 @@ BEGIN
|
|||
IDS_SHV_COLUMN9 "Komentáø"
|
||||
IDS_SHV_COLUMN10 "Vlastník"
|
||||
IDS_SHV_COLUMN11 "Skupina"
|
||||
IDS_SHV_COLUMN12 "Filename"
|
||||
IDS_SHV_COLUMN13 "Category"
|
||||
IDS_SHV_COLUMN12 "Název souboru"
|
||||
IDS_SHV_COLUMN13 "Kategorie"
|
||||
IDS_SHV_COLUMN_DELFROM "Pùvodní umístìní"
|
||||
IDS_SHV_COLUMN_DELDATE "Odstranìno"
|
||||
IDS_SHV_COLUMN_FONTTYPE "Fonttype"
|
||||
IDS_SHV_COLUMN_WORKGROUP "Workgroup"
|
||||
IDS_SHV_NETWORKLOCATION "Network Location"
|
||||
IDS_SHV_COLUMN_DOCUMENTS "Documents"
|
||||
IDS_SHV_COLUMN_WORKGROUP "Pracovní skupina"
|
||||
IDS_SHV_NETWORKLOCATION "Sí<EFBFBD>ové umístìní"
|
||||
IDS_SHV_COLUMN_DOCUMENTS "Dokumenty"
|
||||
IDS_SHV_COLUMN_STATUS "Status"
|
||||
IDS_SHV_COLUMN_COMMENTS "Comments"
|
||||
IDS_SHV_COLUMN_LOCATION "Location"
|
||||
IDS_SHV_COLUMN_COMMENTS "Komentáøe"
|
||||
IDS_SHV_COLUMN_LOCATION "Umístìní"
|
||||
IDS_SHV_COLUMN_MODEL "Model"
|
||||
|
||||
/* special folders */
|
||||
|
@ -625,7 +611,7 @@ BEGIN
|
|||
IDS_MYCOMPUTER "Tento poèítaè"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Koš"
|
||||
IDS_CONTROLPANEL "Ovládací panely"
|
||||
IDS_ADMINISTRATIVETOOLS "Administrative Tools"
|
||||
IDS_ADMINISTRATIVETOOLS "Nástroje správy"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Vedle sebe"
|
||||
|
@ -634,15 +620,15 @@ BEGIN
|
|||
IDS_VIEW_DETAILS "&Podrobnosti"
|
||||
IDS_SELECT "Vybrat"
|
||||
IDS_OPEN "Otevøít"
|
||||
IDS_CREATELINK "Vytvoøit zástupc&e"
|
||||
IDS_CREATELINK "Vytvoøit zástupc&e"
|
||||
IDS_COPY "&Kopírovat"
|
||||
IDS_DELETE "O&dstranit"
|
||||
IDS_PROPERTIES "&Vlastnosti"
|
||||
IDS_CUT "Vyj&mout"
|
||||
IDS_RESTORE "Restore"
|
||||
IDS_FORMATDRIVE "Format..."
|
||||
IDS_RENAME "Rename"
|
||||
IDS_INSERT "Insert"
|
||||
IDS_RESTORE "Obnovit"
|
||||
IDS_FORMATDRIVE "Formátovat..."
|
||||
IDS_RENAME "Pøejmenovat"
|
||||
IDS_INSERT "Vložit"
|
||||
|
||||
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áø"
|
||||
|
@ -666,6 +652,8 @@ BEGIN
|
|||
IDS_RESTART_PROMPT "Opravdu chcete restartovat systém?"
|
||||
IDS_SHUTDOWN_TITLE "Vypnout"
|
||||
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 */
|
||||
IDS_PROGRAMS "Nabídka Start\\Programy"
|
||||
|
@ -735,19 +723,21 @@ BEGIN
|
|||
IDS_LNK_FILE "Zástupce"
|
||||
IDS_SYS_FILE "Systémový soubor"
|
||||
|
||||
IDS_OPEN_VERB "Open"
|
||||
IDS_RUNAS_VERB "Run as "
|
||||
IDS_EDIT_VERB "Edit"
|
||||
IDS_FIND_VERB "Find"
|
||||
IDS_PRINT_VERB "Print"
|
||||
IDS_PLAY_VERB "Play"
|
||||
IDS_PREVIEW_VERB "Preview"
|
||||
IDS_OPEN_VERB "Otevøít"
|
||||
IDS_RUNAS_VERB "Spustit jako "
|
||||
IDS_EDIT_VERB "Upravit"
|
||||
IDS_FIND_VERB "Najít"
|
||||
IDS_PRINT_VERB "Tisknout"
|
||||
IDS_PLAY_VERB "Pøehrát"
|
||||
IDS_PREVIEW_VERB "Náhled"
|
||||
|
||||
IDS_FILE_FOLDER "%u Files, %u Folders"
|
||||
IDS_PRINTERS "Printers"
|
||||
IDS_FONTS "Fonts"
|
||||
IDS_INSTALLNEWFONT "Install New Font..."
|
||||
IDS_FILE_FOLDER "%u souborù, %u složek"
|
||||
IDS_PRINTERS "Tiskárny"
|
||||
IDS_FONTS "Fonty"
|
||||
IDS_INSTALLNEWFONT "Nainstalovat nový font..."
|
||||
|
||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||
IDS_COPY_OF "Copy of"
|
||||
IDS_DEFAULT_CLUSTER_SIZE "Výchozí alokaèní velikost"
|
||||
IDS_COPY_OF "Kopie "
|
||||
|
||||
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
|
||||
END
|
||||
|
|
|
@ -347,7 +347,7 @@ BEGIN
|
|||
END
|
||||
|
||||
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"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
|
@ -654,6 +654,8 @@ BEGIN
|
|||
IDS_RESTART_PROMPT "Ønsker du at Genstarte Systemet?"
|
||||
IDS_SHUTDOWN_TITLE "Luk 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 */
|
||||
IDS_PROGRAMS "Start Menu\\Programmer"
|
||||
|
@ -738,4 +740,6 @@ BEGIN
|
|||
|
||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||
IDS_COPY_OF "Copy of"
|
||||
|
||||
IDS_SHLEXEC_NOASSOC "There is no Windows program configured to open this type of file."
|
||||
END
|
||||
|
|
|
@ -296,7 +296,7 @@ BEGIN
|
|||
|
||||
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
|
||||
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
|
||||
|
@ -361,17 +361,17 @@ BEGIN
|
|||
END
|
||||
|
||||
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"
|
||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||
BEGIN
|
||||
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 "Datei: ", 14001, 44, 25, 188, 10
|
||||
LTEXT "Wählen Sie das Programm, das zum Öffnen dieser Datei verwendet werden soll:", -1, 44, 12, 211, 18
|
||||
LTEXT "Datei: ", 14001, 44, 30, 188, 10
|
||||
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
|
||||
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 "Abbrechen", 14006, 206, 236, 50, 14
|
||||
END
|
||||
|
@ -669,6 +669,8 @@ BEGIN
|
|||
IDS_RESTART_PROMPT "Möchten Sie das System neu starten?"
|
||||
IDS_SHUTDOWN_TITLE "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 */
|
||||
IDS_PROGRAMS "Startmenü\\Programme"
|
||||
|
@ -753,4 +755,6 @@ BEGIN
|
|||
|
||||
IDS_DEFAULT_CLUSTER_SIZE "Standardgröße"
|
||||
IDS_COPY_OF "Kopie von"
|
||||
|
||||
IDS_SHLEXEC_NOASSOC "Es ist kein Programm mit diesem Dateityp verknüpft."
|
||||
END
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue