- Sync with trunk up to r46941.

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

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

View file

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

View file

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

View file

@ -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>

View file

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

View file

@ -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>

View file

@ -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>

View file

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

View file

@ -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>

View file

@ -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();

View file

@ -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)

View file

@ -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;
}
}

View file

@ -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

View file

@ -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>

View file

@ -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

View file

@ -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]

View file

@ -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]

View file

@ -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]

View file

@ -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]

View file

@ -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

View file

@ -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

View file

@ -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,

View file

@ -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;

View file

@ -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);

View file

@ -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);

View file

@ -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
*/

View file

@ -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;

View file

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

View file

@ -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>

View file

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

View file

@ -1,11 +1,11 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="tftpd" type="win32cui" installbase="system32" installname="tftpd.exe" allowwarnings="true" unicode="no">
<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>

View file

@ -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 */

View file

@ -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();

View file

@ -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)

View file

@ -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);
}
}
}

View file

@ -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);

View file

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

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

View file

@ -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);
}

View file

@ -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:

View file

@ -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 */

View file

@ -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>

View file

@ -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>

View 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

View file

@ -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");
}

View file

@ -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;

View file

@ -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++;

View file

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

View file

@ -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();
}
}
}

View file

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

View file

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

View file

@ -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);

View file

@ -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;
}

View file

@ -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

View file

@ -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>

View file

@ -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);
}

View file

@ -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;

View file

@ -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;
}

View file

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

View file

@ -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;
}

View file

@ -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)

View file

@ -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])

View file

@ -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

View file

@ -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]
*/

View file

@ -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>

View file

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

View file

@ -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

View file

@ -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);
}

View file

@ -99,8 +99,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
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;
}

View file

@ -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

View file

@ -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);

View file

@ -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;
}
/*

View file

@ -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));

View file

@ -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>

View file

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

View file

@ -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;

View file

@ -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;
}

View file

@ -1,12 +1,17 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
/* FILE: dll/win32/netcfgx/lang/cs-CZ.rc
* TRANSLATOR: Radek Liska aka Black_Fox (radekliska at gmail dot com)
* UPDATED: 2010-03-14
* THANKS TO: potapnik, who translated part of this file
*/
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDD_TCPIP_BASIC_DLG DIALOGEX DISCARDABLE 0, 0, 246, 228
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 "Do", 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 "Do", 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

View file

@ -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

View file

@ -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

View file

@ -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 D %s"
IDS_ASSIGNED_DHCP "Pøiøazeno DHCP"
IDS_ASSIGNED_MANUAL "Ruènì nastaveno"
END

View file

@ -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;
}
}

View file

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

View file

@ -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

View file

@ -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;
}
/*************************************************************************

View file

@ -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;
}

View file

@ -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

View file

@ -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

View file

@ -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 "<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

View file

@ -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

View file

@ -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