ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
November 2024
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
22 participants
103 discussions
Start a n
N
ew thread
[reactos] 01/01: [SHELL32] Force FileType OpenWith verb (#7470)
by Whindmar Saksit
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9ccafe8e4964f0bee7900…
commit 9ccafe8e4964f0bee790083583f0a4e8c8ac23e4 Author: Whindmar Saksit <whindsaks(a)proton.me> AuthorDate: Sat Nov 9 16:49:27 2024 +0100 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Nov 9 16:49:27 2024 +0100 [SHELL32] Force FileType OpenWith verb (#7470) CORE-19816 --- dll/win32/shell32/COpenWithMenu.cpp | 15 +++++++++++++++ dll/win32/shell32/dialogs/filetypes.cpp | 31 +++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/dll/win32/shell32/COpenWithMenu.cpp b/dll/win32/shell32/COpenWithMenu.cpp index 6fc45cc153b..42f538a7eeb 100644 --- a/dll/win32/shell32/COpenWithMenu.cpp +++ b/dll/win32/shell32/COpenWithMenu.cpp @@ -771,7 +771,22 @@ BOOL COpenWithList::SetDefaultHandler(SApp *pApp, LPCWSTR pwszFilename) /* Copy static verbs from Classes\Applications key */ /* FIXME: SHCopyKey does not copy the security attributes of the keys */ + /* FIXME: Windows does not actually copy the verb keys */ + /* FIXME: Should probably delete any existing DelegateExecute/DropTarget/DDE verb information first */ LSTATUS Result = SHCopyKeyW(hSrcKey, NULL, hDestKey, 0); +#ifdef __REACTOS__ + // FIXME: When OpenWith is used to set a new default on Windows, the FileExts key + // is changed to force this association. ROS does not support this. The best + // we can do is to try to set the verb we (incorrectly) copied as the new default. + HKEY hAppKey; + StringCbPrintfW(wszBuf, sizeof(wszBuf), L"Applications\\%s", pApp->wszFilename); + if (Result == ERROR_SUCCESS && !RegOpenKeyExW(HKEY_CLASSES_ROOT, wszBuf, 0, KEY_READ, &hAppKey)) + { + if (HCR_GetDefaultVerbW(hAppKey, NULL, wszBuf, _countof(wszBuf)) && *wszBuf) + RegSetString(hDestKey, NULL, wszBuf, REG_SZ); + RegCloseKey(hAppKey); + } +#endif // __REACTOS__ RegCloseKey(hDestKey); RegCloseKey(hSrcKey); RegCloseKey(hKey); diff --git a/dll/win32/shell32/dialogs/filetypes.cpp b/dll/win32/shell32/dialogs/filetypes.cpp index 6a958b5cc1c..c10c62573eb 100644 --- a/dll/win32/shell32/dialogs/filetypes.cpp +++ b/dll/win32/shell32/dialogs/filetypes.cpp @@ -372,6 +372,7 @@ typedef struct EDITTYPE_DIALOG CAtlList<CStringW> ModifiedVerbs; WCHAR szIconPath[MAX_PATH]; INT nIconIndex; + bool ChangedIcon; WCHAR szDefaultVerb[VERBKEY_CCHMAX]; WCHAR TypeName[TYPENAME_CCHMAX]; } EDITTYPE_DIALOG, *PEDITTYPE_DIALOG; @@ -399,6 +400,7 @@ EditTypeDlg_OnChangeIcon(HWND hwndDlg, PEDITTYPE_DIALOG pEditType) // update EDITTYPE_DIALOG StringCbCopyW(pEditType->szIconPath, sizeof(pEditType->szIconPath), szPath); pEditType->nIconIndex = IconIndex; + pEditType->ChangedIcon = true; // set icon to dialog HICON hOld = (HICON)SendDlgItemMessageW(hwndDlg, IDC_EDITTYPE_ICON, STM_SETICON, (WPARAM)hIconLarge, 0); @@ -1189,14 +1191,23 @@ EditTypeDlg_WriteClass(HWND hwndDlg, PEDITTYPE_DIALOG pEditType, RegSetOrDelete(hClassKey, L"BrowserFlags", REG_DWORD, dw ? &dw : NULL, sizeof(dw)); } } - if (!(pEntry->EditFlags & FTA_NoEditDesc)) - { - RegSetString(hClassKey, NULL, TypeName, REG_SZ); - pEntry->InvalidateTypeName(); - } } + if (!(pEntry->EditFlags & FTA_NoEditDesc)) + { + if (!OnlyExt) + RegDeleteValueW(hClassKey, NULL); // Legacy name (in ProgId only) + + // Deleting this value is always the correct thing to do but Windows does not do this. + // This means the user cannot override the translated known type names set by the OS. + if (OnlyExt) + RegDeleteValueW(hClassKey, L"FriendlyTypeName"); // MUI name (extension or ProgId) - if (pEntry->IconPath[0] && !(pEntry->EditFlags & FTA_NoEditIcon)) + if (TypeName[0]) + RegSetString(hClassKey, OnlyExt ? L"FriendlyTypeName" : NULL, TypeName, REG_SZ); + pEntry->InvalidateTypeName(); + } + + if (pEntry->IconPath[0] && !(pEntry->EditFlags & FTA_NoEditIcon) && pEditType->ChangedIcon) { HKEY hDefaultIconKey; if (RegCreateKeyExW(hClassKey, L"DefaultIcon", 0, NULL, 0, KEY_WRITE, @@ -1231,7 +1242,10 @@ EditTypeDlg_WriteClass(HWND hwndDlg, PEDITTYPE_DIALOG pEditType, // set default action if (!(pEntry->EditFlags & FTA_NoEditDflt)) { - RegSetString(hShellKey, NULL, pEditType->szDefaultVerb, REG_SZ); + if (pEditType->szDefaultVerb[0]) + RegSetString(hShellKey, NULL, pEditType->szDefaultVerb, REG_SZ); + else + RegDeleteValueW(hShellKey, NULL); } // delete shell commands @@ -1571,6 +1585,7 @@ EditTypeDlg_OnInitDialog(HWND hwndDlg, PEDITTYPE_DIALOG pEditType) ExpandEnvironmentStringsW(pEntry->IconPath, pEditType->szIconPath, _countof(pEditType->szIconPath)); pEditType->nIconIndex = pEntry->nIconIndex; StringCbCopyW(pEditType->szDefaultVerb, sizeof(pEditType->szDefaultVerb), L"open"); + pEditType->ChangedIcon = false; // set info HICON hIco = DoExtractIcon(pEditType->szIconPath, pEditType->nIconIndex); @@ -1917,7 +1932,7 @@ FolderOptionsFileTypesDlg( pEntry = FileTypesDlg_GetEntry(GetDlgItem(hwndDlg, IDC_FILETYPES_LISTVIEW)); if (pEntry) { - OPENASINFO oai = { pEntry->FileExtension, 0, OAIF_ALLOW_REGISTRATION | OAIF_REGISTER_EXT }; + OPENASINFO oai = { pEntry->FileExtension, 0, OAIF_FORCE_REGISTRATION | OAIF_REGISTER_EXT }; if (SUCCEEDED(SHOpenWithDialog(hwndDlg, &oai))) { pEntry->InvalidateDefaultApp();
1 month, 2 weeks
1
0
0
0
[reactos] 01/01: [SHELL32][BROWSEUI] Set DefView InvokeCommand directory (#7495)
by Whindmar Saksit
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a17b6e9369568dbbfc67e…
commit a17b6e9369568dbbfc67edc0dd7bbe454127eb87 Author: Whindmar Saksit <whindsaks(a)proton.me> AuthorDate: Fri Nov 8 23:27:26 2024 +0100 Commit: GitHub <noreply(a)github.com> CommitDate: Fri Nov 8 23:27:26 2024 +0100 [SHELL32][BROWSEUI] Set DefView InvokeCommand directory (#7495) If a .lnk shortcut does not specify a working directory, it should use the directory provided by the InvokeCommand caller when it's launced. CORE-19855 --- dll/win32/browseui/shellfind/CFindFolder.cpp | 16 ++++++++++++++++ dll/win32/shell32/CShellLink.cpp | 11 ++++++++++- dll/win32/shell32/folders/CDesktopFolder.cpp | 7 +++++++ dll/win32/shell32/folders/CFSFolder.cpp | 4 ++++ 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/dll/win32/browseui/shellfind/CFindFolder.cpp b/dll/win32/browseui/shellfind/CFindFolder.cpp index 6e01db9c44a..1c254e75ab5 100644 --- a/dll/win32/browseui/shellfind/CFindFolder.cpp +++ b/dll/win32/browseui/shellfind/CFindFolder.cpp @@ -937,6 +937,22 @@ STDMETHODIMP CFindFolder::MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) CComVariant searchBar(pwszGuid); return pWebBrowser2->ShowBrowserBar(&searchBar, NULL, NULL); } + case SFVM_GETCOMMANDDIR: + { + HRESULT hr = E_FAIL; + if (m_shellFolderView) + { + PCUITEMID_CHILD *apidl; + UINT cidl = 0; + if (SUCCEEDED(hr = m_shellFolderView->GetSelectedObjects(&apidl, &cidl))) + { + if (cidl) + hr = StringCchCopyW((PWSTR)lParam, wParam, _ILGetPath(apidl[0])); + LocalFree(apidl); + } + } + return hr; + } } return E_NOTIMPL; } diff --git a/dll/win32/shell32/CShellLink.cpp b/dll/win32/shell32/CShellLink.cpp index 685391a9262..582a605ba54 100644 --- a/dll/win32/shell32/CShellLink.cpp +++ b/dll/win32/shell32/CShellLink.cpp @@ -2623,6 +2623,7 @@ HRESULT STDMETHODCALLTYPE CShellLink::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) HRESULT CShellLink::DoOpen(LPCMINVOKECOMMANDINFO lpici) { + LPCMINVOKECOMMANDINFOEX iciex = (LPCMINVOKECOMMANDINFOEX)lpici; const BOOL unicode = IsUnicode(*lpici); CStringW args; @@ -2631,7 +2632,6 @@ HRESULT CShellLink::DoOpen(LPCMINVOKECOMMANDINFO lpici) if (unicode) { - LPCMINVOKECOMMANDINFOEX iciex = (LPCMINVOKECOMMANDINFOEX)lpici; if (!StrIsNullOrEmpty(iciex->lpParametersW)) { args += L' '; @@ -2674,6 +2674,15 @@ HRESULT CShellLink::DoOpen(LPCMINVOKECOMMANDINFO lpici) if (lpici->nShow != SW_SHOWNORMAL && lpici->nShow != SW_SHOW) sei.nShow = lpici->nShow; // Allow invoker to override .lnk show mode + // Use the invoker specified working directory if the link did not specify one + if (StrIsNullOrEmpty(sei.lpDirectory) || !PathIsDirectoryW(sei.lpDirectory)) + { + LPCSTR pszDirA = lpici->lpDirectory; + if (unicode && !StrIsNullOrEmpty(iciex->lpDirectoryW)) + sei.lpDirectory = iciex->lpDirectoryW; + else if (pszDirA && SHAnsiToUnicode(pszDirA, dir, _countof(dir))) + sei.lpDirectory = dir; + } return (ShellExecuteExW(&sei) ? S_OK : E_FAIL); } diff --git a/dll/win32/shell32/folders/CDesktopFolder.cpp b/dll/win32/shell32/folders/CDesktopFolder.cpp index ee1c10834dc..945f3450ede 100644 --- a/dll/win32/shell32/folders/CDesktopFolder.cpp +++ b/dll/win32/shell32/folders/CDesktopFolder.cpp @@ -1069,6 +1069,13 @@ HRESULT WINAPI CDesktopFolderViewCB::MessageSFVCB(UINT uMsg, WPARAM wParam, LPAR case SFVM_VIEWRELEASE: m_pShellView = NULL; return S_OK; + case SFVM_GETCOMMANDDIR: + { + WCHAR buf[MAX_PATH]; + if (SHGetSpecialFolderPathW(NULL, buf, CSIDL_DESKTOPDIRECTORY, TRUE)) + return StringCchCopyW((PWSTR)lParam, wParam, buf); + break; + } } return E_NOTIMPL; } diff --git a/dll/win32/shell32/folders/CFSFolder.cpp b/dll/win32/shell32/folders/CFSFolder.cpp index 4943eeba0f1..0a209ade806 100644 --- a/dll/win32/shell32/folders/CFSFolder.cpp +++ b/dll/win32/shell32/folders/CFSFolder.cpp @@ -2076,6 +2076,10 @@ HRESULT WINAPI CFSFolder::MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam) case SFVM_GET_CUSTOMVIEWINFO: hr = GetCustomViewInfo((ULONG)wParam, (SFVM_CUSTOMVIEWINFO_DATA *)lParam); break; + case SFVM_GETCOMMANDDIR: + if (m_sPathTarget) + hr = StringCchCopyW((PWSTR)lParam, wParam, m_sPathTarget); + break; } return hr; }
1 month, 2 weeks
1
0
0
0
[reactos] 02/02: [MSI][BOOTDATA][INF] Add missing mnemonic keys for the context menu
by Stanislav Motylkov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3ecd2363a6d045a38aa68…
commit 3ecd2363a6d045a38aa68a1b5f17bb53ffaad3e4 Author: Stanislav Motylkov <x86corez(a)gmail.com> AuthorDate: Wed Nov 6 00:34:58 2024 +0300 Commit: Stanislav Motylkov <x86corez(a)gmail.com> CommitDate: Wed Nov 6 00:34:58 2024 +0300 [MSI][BOOTDATA][INF] Add missing mnemonic keys for the context menu Also add accelerator FIXMEs where I don't know. CORE-12323 --- boot/bootdata/hivecls.inf | 8 ++++---- dll/win32/msi/lang/msi_Bg.rc | 8 ++++---- dll/win32/msi/lang/msi_Da.rc | 8 ++++---- dll/win32/msi/lang/msi_De.rc | 8 ++++---- dll/win32/msi/lang/msi_En.rc | 8 ++++---- dll/win32/msi/lang/msi_Es.rc | 8 ++++---- dll/win32/msi/lang/msi_Fi.rc | 8 ++++---- dll/win32/msi/lang/msi_Fr.rc | 8 ++++---- dll/win32/msi/lang/msi_He.rc | 8 ++++---- dll/win32/msi/lang/msi_Hu.rc | 8 ++++---- dll/win32/msi/lang/msi_Id.rc | 8 ++++---- dll/win32/msi/lang/msi_It.rc | 8 ++++---- dll/win32/msi/lang/msi_Ja.rc | 8 ++++---- dll/win32/msi/lang/msi_Ko.rc | 8 ++++---- dll/win32/msi/lang/msi_Lt.rc | 8 ++++---- dll/win32/msi/lang/msi_Nl.rc | 8 ++++---- dll/win32/msi/lang/msi_No.rc | 8 ++++---- dll/win32/msi/lang/msi_Pl.rc | 8 ++++---- dll/win32/msi/lang/msi_Pt.rc | 8 ++++---- dll/win32/msi/lang/msi_Ro.rc | 8 ++++---- dll/win32/msi/lang/msi_Ru.rc | 8 ++++---- dll/win32/msi/lang/msi_Si.rc | 8 ++++---- dll/win32/msi/lang/msi_Sq.rc | 8 ++++---- dll/win32/msi/lang/msi_Sr.rc | 8 ++++---- dll/win32/msi/lang/msi_Sv.rc | 8 ++++---- dll/win32/msi/lang/msi_Tr.rc | 8 ++++---- dll/win32/msi/lang/msi_Uk.rc | 8 ++++---- dll/win32/msi/lang/msi_Zh.rc | 8 ++++---- 28 files changed, 112 insertions(+), 112 deletions(-) diff --git a/boot/bootdata/hivecls.inf b/boot/bootdata/hivecls.inf index 966df66bd5e..55fa8985658 100644 --- a/boot/bootdata/hivecls.inf +++ b/boot/bootdata/hivecls.inf @@ -435,13 +435,13 @@ HKCR,".msi","",0x00000000,"Msi.Package" HKCR,"Msi.Package","",0x00000000,"ReactOS Installer Package" HKCR,"Msi.Package","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-34" HKCR,"Msi.Package\DefaultIcon","",0x00000000,"msiexec.exe" -HKCR,"Msi.Package\shell\Open","",0x00000000,"Install" +HKCR,"Msi.Package\shell\Open","",0x00000000,"&Install" HKCR,"Msi.Package\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-36" HKCR,"Msi.Package\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /i ""%1""" -HKCR,"Msi.Package\shell\Repair","",0x00000000,"Repair" +HKCR,"Msi.Package\shell\Repair","",0x00000000,"Re&pair" HKCR,"Msi.Package\shell\Repair","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-37" HKCR,"Msi.Package\shell\Repair\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /f ""%1""" -HKCR,"Msi.Package\shell\Uninstall","",0x00000000,"Uninstall" +HKCR,"Msi.Package\shell\Uninstall","",0x00000000,"&Uninstall" HKCR,"Msi.Package\shell\Uninstall","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-38" HKCR,"Msi.Package\shell\Uninstall\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /x ""%1""" @@ -450,7 +450,7 @@ HKCR,".msp","",0x00000000,"Msi.Patch" HKCR,"Msi.Patch","",0x00000000,"ReactOS Installer Patch" HKCR,"Msi.Patch","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-35" HKCR,"Msi.Patch\DefaultIcon","",0x00000000,"msiexec.exe" -HKCR,"Msi.Patch\shell\Open","",0x00000000,"Apply Patch" +HKCR,"Msi.Patch\shell\Open","",0x00000000,"&Apply Patch" HKCR,"Msi.Patch\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-39" HKCR,"Msi.Patch\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /p ""%1""" diff --git a/dll/win32/msi/lang/msi_Bg.rc b/dll/win32/msi/lang/msi_Bg.rc index 604c06672e7..ca849ec3021 100644 --- a/dll/win32/msi/lang/msi_Bg.rc +++ b/dll/win32/msi/lang/msi_Bg.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Da.rc b/dll/win32/msi/lang/msi_Da.rc index f62dde0e436..c99ded9e3cb 100644 --- a/dll/win32/msi/lang/msi_Da.rc +++ b/dll/win32/msi/lang/msi_Da.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_De.rc b/dll/win32/msi/lang/msi_De.rc index 50cca99abec..aa5efdec13c 100644 --- a/dll/win32/msi/lang/msi_De.rc +++ b/dll/win32/msi/lang/msi_De.rc @@ -35,10 +35,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_En.rc b/dll/win32/msi/lang/msi_En.rc index 353f2aa6df9..39c5e456fdf 100644 --- a/dll/win32/msi/lang/msi_En.rc +++ b/dll/win32/msi/lang/msi_En.rc @@ -35,10 +35,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Es.rc b/dll/win32/msi/lang/msi_Es.rc index e93b3edbfdf..2b87c992db5 100644 --- a/dll/win32/msi/lang/msi_Es.rc +++ b/dll/win32/msi/lang/msi_Es.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Paquete de instalación de ReactOS" 35 "ReactOS Installer Patch" - 36 "Instalar" - 37 "Reparar" - 38 "Desinstalar" - 39 "Apply" + 36 "Instalar" //FIXME: add accel + 37 "Reparar" //FIXME: add accel + 38 "Desinstalar" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Fi.rc b/dll/win32/msi/lang/msi_Fi.rc index 2ffed02e648..e44b36180a7 100644 --- a/dll/win32/msi/lang/msi_Fi.rc +++ b/dll/win32/msi/lang/msi_Fi.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Fr.rc b/dll/win32/msi/lang/msi_Fr.rc index ddcb589b267..5b3d013274e 100644 --- a/dll/win32/msi/lang/msi_Fr.rc +++ b/dll/win32/msi/lang/msi_Fr.rc @@ -35,10 +35,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Package ReactOS Installer" 35 "ReactOS Installer Patch" - 36 "Installer" - 37 "Réparer" - 38 "Désinstaller" - 39 "Apply" + 36 "Installer" //FIXME: add accel + 37 "Réparer" //FIXME: add accel + 38 "Désinstaller" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_He.rc b/dll/win32/msi/lang/msi_He.rc index 172d1b017b8..d565c3b870c 100644 --- a/dll/win32/msi/lang/msi_He.rc +++ b/dll/win32/msi/lang/msi_He.rc @@ -37,10 +37,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Hu.rc b/dll/win32/msi/lang/msi_Hu.rc index b2c2f4fc240..edb18a4341e 100644 --- a/dll/win32/msi/lang/msi_Hu.rc +++ b/dll/win32/msi/lang/msi_Hu.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Id.rc b/dll/win32/msi/lang/msi_Id.rc index 4b8493bec3b..509852ec328 100644 --- a/dll/win32/msi/lang/msi_Id.rc +++ b/dll/win32/msi/lang/msi_Id.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_It.rc b/dll/win32/msi/lang/msi_It.rc index 2b17637ea03..67c3c789c5a 100644 --- a/dll/win32/msi/lang/msi_It.rc +++ b/dll/win32/msi/lang/msi_It.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Pacchetto di installazione di ReactOS" 35 "ReactOS Installer Patch" - 36 "Installa" - 37 "Ripara" - 38 "Rimuovi" - 39 "Apply" + 36 "Installa" //FIXME: add accel + 37 "Ripara" //FIXME: add accel + 38 "Rimuovi" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Ja.rc b/dll/win32/msi/lang/msi_Ja.rc index 7230aa9c014..cb63d7d8834 100644 --- a/dll/win32/msi/lang/msi_Ja.rc +++ b/dll/win32/msi/lang/msi_Ja.rc @@ -13,10 +13,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS インストーラ パッケージ" 35 "ReactOS Installer Patch" - 36 "インストール" - 37 "修復" - 38 "アンインストール" - 39 "Apply" + 36 "インストール" //FIXME: add accel + 37 "修復" //FIXME: add accel + 38 "アンインストール" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Ko.rc b/dll/win32/msi/lang/msi_Ko.rc index 65e77b301a9..676d4c9de93 100644 --- a/dll/win32/msi/lang/msi_Ko.rc +++ b/dll/win32/msi/lang/msi_Ko.rc @@ -36,10 +36,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Lt.rc b/dll/win32/msi/lang/msi_Lt.rc index f0fb6a801b2..237f9a3d595 100644 --- a/dll/win32/msi/lang/msi_Lt.rc +++ b/dll/win32/msi/lang/msi_Lt.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Nl.rc b/dll/win32/msi/lang/msi_Nl.rc index bba81b6ecd3..9bfae190b4f 100644 --- a/dll/win32/msi/lang/msi_Nl.rc +++ b/dll/win32/msi/lang/msi_Nl.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_No.rc b/dll/win32/msi/lang/msi_No.rc index 968bf7b990a..a8ed5670b64 100644 --- a/dll/win32/msi/lang/msi_No.rc +++ b/dll/win32/msi/lang/msi_No.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Pl.rc b/dll/win32/msi/lang/msi_Pl.rc index 8c9299bff04..4fa771358fb 100644 --- a/dll/win32/msi/lang/msi_Pl.rc +++ b/dll/win32/msi/lang/msi_Pl.rc @@ -35,10 +35,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Pakiet Instalatora ReactOS" 35 "ReactOS Installer Patch" - 36 "Zainstaluj" - 37 "Napraw" - 38 "Odinstaluj" - 39 "Apply" + 36 "Zainstaluj" //FIXME: add accel + 37 "Napraw" //FIXME: add accel + 38 "Odinstaluj" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Pt.rc b/dll/win32/msi/lang/msi_Pt.rc index fc19c3c4344..a975e478a4a 100644 --- a/dll/win32/msi/lang/msi_Pt.rc +++ b/dll/win32/msi/lang/msi_Pt.rc @@ -36,10 +36,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Pacote de instalação do ReactOS" 35 "ReactOS Installer Patch" - 36 "Instalar" - 37 "Reparar" - 38 "Desinstalar" - 39 "Apply" + 36 "Instalar" //FIXME: add accel + 37 "Reparar" //FIXME: add accel + 38 "Desinstalar" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Ro.rc b/dll/win32/msi/lang/msi_Ro.rc index 254f82e62cf..bec99bf56d5 100644 --- a/dll/win32/msi/lang/msi_Ro.rc +++ b/dll/win32/msi/lang/msi_Ro.rc @@ -49,10 +49,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Pachet de instalare ReactOS" 35 "ReactOS Installer Patch" - 36 "Instalează" - 37 "Repară" - 38 "Dezinstalează" - 39 "Apply" + 36 "Instalează" //FIXME: add accel + 37 "Repară" //FIXME: add accel + 38 "Dezinstalează" //FIXME: add accel + 39 "&Apply" #endif 100 "Folder nou" } diff --git a/dll/win32/msi/lang/msi_Ru.rc b/dll/win32/msi/lang/msi_Ru.rc index 8744b3aad72..2263c25501f 100644 --- a/dll/win32/msi/lang/msi_Ru.rc +++ b/dll/win32/msi/lang/msi_Ru.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "Пакет установщика ReactOS" 35 "Исправления установщика ReactOS" - 36 "Установить" - 37 "Исправить" - 38 "Удалить" - 39 "Применить" + 36 "Ус&тановить" + 37 "&Исправить" + 38 "Уда&лить" + 39 "&Применить" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Si.rc b/dll/win32/msi/lang/msi_Si.rc index d2560f52d96..44d56efa4a8 100644 --- a/dll/win32/msi/lang/msi_Si.rc +++ b/dll/win32/msi/lang/msi_Si.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Sq.rc b/dll/win32/msi/lang/msi_Sq.rc index 52a82f3da98..4f50b5695c7 100644 --- a/dll/win32/msi/lang/msi_Sq.rc +++ b/dll/win32/msi/lang/msi_Sq.rc @@ -35,10 +35,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Sr.rc b/dll/win32/msi/lang/msi_Sr.rc index eeeaaf30344..00ea2d2891b 100644 --- a/dll/win32/msi/lang/msi_Sr.rc +++ b/dll/win32/msi/lang/msi_Sr.rc @@ -35,10 +35,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Sv.rc b/dll/win32/msi/lang/msi_Sv.rc index 540253b4712..ead9caa1394 100644 --- a/dll/win32/msi/lang/msi_Sv.rc +++ b/dll/win32/msi/lang/msi_Sv.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Tr.rc b/dll/win32/msi/lang/msi_Tr.rc index 28cf6f15b2c..1184e68dfb8 100644 --- a/dll/win32/msi/lang/msi_Tr.rc +++ b/dll/win32/msi/lang/msi_Tr.rc @@ -34,10 +34,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Yükleyicisi Paketi" 35 "ReactOS Installer Patch" - 36 "Yükle" - 37 "Onar" - 38 "Kaldır" - 39 "Apply" + 36 "Yükle" //FIXME: add accel + 37 "Onar" //FIXME: add accel + 38 "Kaldır" //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Uk.rc b/dll/win32/msi/lang/msi_Uk.rc index 7d6d428ea30..ae3656f2f18 100644 --- a/dll/win32/msi/lang/msi_Uk.rc +++ b/dll/win32/msi/lang/msi_Uk.rc @@ -36,10 +36,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer Package" 35 "ReactOS Installer Patch" - 36 "Install" - 37 "Repair" - 38 "Uninstall" - 39 "Apply" + 36 "&Install" + 37 "Re&pair" + 38 "&Uninstall" + 39 "&Apply" #endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Zh.rc b/dll/win32/msi/lang/msi_Zh.rc index eec8e801d91..cd8bdaf00e2 100644 --- a/dll/win32/msi/lang/msi_Zh.rc +++ b/dll/win32/msi/lang/msi_Zh.rc @@ -37,10 +37,10 @@ STRINGTABLE #ifdef __REACTOS__ 34 "ReactOS Installer 软件包" // zh-TW/HK: ReactOS 安裝套件 35 "ReactOS Installer Patch" - 36 "安装" // zh-TW/HK: 安裝 - 37 "修复" // zh-TW/HK: 修復 - 38 "卸载" // zh-TW/HK: 解除安裝 - 39 "Apply" + 36 "安装" // zh-TW/HK: 安裝 //FIXME: add accel + 37 "修复" // zh-TW/HK: 修復 //FIXME: add accel + 38 "卸载" // zh-TW/HK: 解除安裝 //FIXME: add accel + 39 "&Apply" #endif 100 "New Folder" }
1 month, 2 weeks
1
0
0
0
[reactos] 01/02: [MSI][BOOTDATA][INF] Add missing localized strings to msi.dll resources
by Stanislav Motylkov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6be0de5d7b468481d024d…
commit 6be0de5d7b468481d024d682f2edb6619b61776b Author: Stanislav Motylkov <x86corez(a)gmail.com> AuthorDate: Wed Nov 6 00:18:52 2024 +0300 Commit: Stanislav Motylkov <x86corez(a)gmail.com> CommitDate: Wed Nov 6 00:26:18 2024 +0300 [MSI][BOOTDATA][INF] Add missing localized strings to msi.dll resources --- boot/bootdata/hivecls.inf | 149 ++++++++----------------------------------- dll/win32/msi/lang/msi_Bg.rc | 8 +++ dll/win32/msi/lang/msi_Da.rc | 8 +++ dll/win32/msi/lang/msi_De.rc | 8 +++ dll/win32/msi/lang/msi_En.rc | 8 +++ dll/win32/msi/lang/msi_Es.rc | 8 +++ dll/win32/msi/lang/msi_Fi.rc | 8 +++ dll/win32/msi/lang/msi_Fr.rc | 8 +++ dll/win32/msi/lang/msi_He.rc | 8 +++ dll/win32/msi/lang/msi_Hu.rc | 8 +++ dll/win32/msi/lang/msi_Id.rc | 8 +++ dll/win32/msi/lang/msi_It.rc | 8 +++ dll/win32/msi/lang/msi_Ja.rc | 8 +++ dll/win32/msi/lang/msi_Ko.rc | 8 +++ dll/win32/msi/lang/msi_Lt.rc | 8 +++ dll/win32/msi/lang/msi_Nl.rc | 8 +++ dll/win32/msi/lang/msi_No.rc | 8 +++ dll/win32/msi/lang/msi_Pl.rc | 8 +++ dll/win32/msi/lang/msi_Pt.rc | 8 +++ dll/win32/msi/lang/msi_Ro.rc | 8 +++ dll/win32/msi/lang/msi_Ru.rc | 8 +++ dll/win32/msi/lang/msi_Si.rc | 8 +++ dll/win32/msi/lang/msi_Sq.rc | 8 +++ dll/win32/msi/lang/msi_Sr.rc | 8 +++ dll/win32/msi/lang/msi_Sv.rc | 8 +++ dll/win32/msi/lang/msi_Tr.rc | 8 +++ dll/win32/msi/lang/msi_Uk.rc | 8 +++ dll/win32/msi/lang/msi_Zh.rc | 8 +++ 28 files changed, 242 insertions(+), 123 deletions(-) diff --git a/boot/bootdata/hivecls.inf b/boot/bootdata/hivecls.inf index 1b4c450b92c..966df66bd5e 100644 --- a/boot/bootdata/hivecls.inf +++ b/boot/bootdata/hivecls.inf @@ -432,25 +432,26 @@ HKCR,"xslfile\shell\open\command","",0x00020000,"%SystemRoot%\system32\notepad.e ; MSI files HKCR,".msi","",0x00000000,"Msi.Package" -HKCR,"Msi.Package","",0x00000000,%MSIPACK% -;;HKCR,"Msi.Package","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-34" +HKCR,"Msi.Package","",0x00000000,"ReactOS Installer Package" +HKCR,"Msi.Package","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-34" HKCR,"Msi.Package\DefaultIcon","",0x00000000,"msiexec.exe" -;;HKCR,"Msi.Package\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-36" +HKCR,"Msi.Package\shell\Open","",0x00000000,"Install" +HKCR,"Msi.Package\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-36" HKCR,"Msi.Package\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /i ""%1""" -HKCR,"Msi.Package\shell\Repair","",0x00000000,%REPAIR% -;;HKCR,"Msi.Package\shell\Repair","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-37" +HKCR,"Msi.Package\shell\Repair","",0x00000000,"Repair" +HKCR,"Msi.Package\shell\Repair","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-37" HKCR,"Msi.Package\shell\Repair\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /f ""%1""" -HKCR,"Msi.Package\shell\Uninstall","",0x00000000,%UNINSTALL% -;;HKCR,"Msi.Package\shell\Uninstall","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-38" +HKCR,"Msi.Package\shell\Uninstall","",0x00000000,"Uninstall" +HKCR,"Msi.Package\shell\Uninstall","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-38" HKCR,"Msi.Package\shell\Uninstall\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /x ""%1""" ; MSP files HKCR,".msp","",0x00000000,"Msi.Patch" -HKCR,"Msi.Patch","",0x00000000,%MSIPTCH% -;;HKCR,"Msi.Patch","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-35" +HKCR,"Msi.Patch","",0x00000000,"ReactOS Installer Patch" +HKCR,"Msi.Patch","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-35" HKCR,"Msi.Patch\DefaultIcon","",0x00000000,"msiexec.exe" -HKCR,"Msi.Patch\shell\Open","",0x00000000,%APPLY% -;;HKCR,"Msi.Patch\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-39" +HKCR,"Msi.Patch\shell\Open","",0x00000000,"Apply Patch" +HKCR,"Msi.Patch\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-39" HKCR,"Msi.Patch\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /p ""%1""" ; NT DOS32 Configuration File @@ -796,10 +797,6 @@ CHMFILE="Compiled HTML Help File" XMLFILE="XML Document" XSLFILE="XSL Stylesheet" -;; In msi.dll -MSIPACK="ReactOS Installer Package" -MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="Visual Style File" THEMEFILE="Theme File" @@ -819,12 +816,9 @@ WSFFILE="Windows Script File" ;; For .reg files, right-click menu MERGE="Merge" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Configure" INSTALL="Install" -UNINSTALL="Uninstall" -REPAIR="Repair" -APPLY="Apply Patch" TEST="Test" ;------------------------------------------------------------------------ @@ -840,10 +834,6 @@ CPLFILE_OPENWITH="Mit der Systemsteuerung öffnen" ;XMLFILE="XML Document" ;XSLFILE="XSL Stylesheet" -;; In msi.dll -;MSIPACK="ReactOS Installer Package" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll ;MSSTYLESFILE="Visual Style File" ;THEMEFILE="Theme File" @@ -862,12 +852,9 @@ CPLFILE_OPENWITH="Mit der Systemsteuerung öffnen" ;; For .reg files, right-click menu ;MERGE="Merge" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu ;CONFIGURE="Configure" ;INSTALL="Install" -;UNINSTALL="Uninstall" -;REPAIR="Repair" -;APPLY="Apply Patch" ;TEST="Test" ;------------------------------------------------------------------------ @@ -883,10 +870,6 @@ CHMFILE="Archivo de ayuda HTML compilado" XMLFILE="Documento XML" XSLFILE="Hoja de estilos XSL" -;; In msi.dll -MSIPACK="Paquete de instalación de ReactOS" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="Archivo de estilo visual" THEMEFILE="Archivo de tema" @@ -905,12 +888,9 @@ WMZFILE="Metarchivo mejorado comprimido" ;; For .reg files, right-click menu MERGE="Combinar" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Configurar" INSTALL="Instalar" -UNINSTALL="Desinstalar" -REPAIR="Reparar" -;APPLY="Apply Patch" TEST="Probar" ;------------------------------------------------------------------------ @@ -926,10 +906,6 @@ CHMFILE="Fichier d'aide HTML compilé" XMLFILE="Document XML" XSLFILE="Feuille de style XSL" -;; In msi.dll -MSIPACK="Package ReactOS Installer" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="Fichier de styles visuels" THEMEFILE="Fichier de thèmes" @@ -948,12 +924,9 @@ SCFFILE="Commande de l'explorateur ReactOS" ;; For .reg files, right-click menu MERGE="Fusionner" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Configurer" INSTALL="Installer" -UNINSTALL="Désinstaller" -REPAIR="Réparer" -;APPLY="Apply Patch" TEST="Tester" ;------------------------------------------------------------------------ @@ -969,10 +942,6 @@ CHMFILE="File della guida HTML compilato" XMLFILE="Documento XML" XSLFILE="Foglio di stile XSL" -;; In msi.dll -MSIPACK="Pacchetto di installazione di ReactOS" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="File di stili visivi" THEMEFILE="File di tema visivo" @@ -991,12 +960,9 @@ AVIFILE="Filmato video" ;; For .reg files, right-click menu MERGE="Unione" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Configura" INSTALL="Installa" -UNINSTALL="Rimuovi" -REPAIR="Ripara" -;APPLY="Apply Patch" TEST="Prova" ;------------------------------------------------------------------------ @@ -1012,10 +978,6 @@ CHMFILE="Skompilowany plik Pomocy w formacie HTML" XMLFILE="Dokument XML" XSLFILE="Arkusz stylów XSL" -;; In msi.dll -MSIPACK="Pakiet Instalatora ReactOS" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="Plik stylu wizualnego" THEMEFILE="Plik motywu" @@ -1034,12 +996,9 @@ WMZFILE="Skompresowany metaplik" ;; For .reg files, right-click menu MERGE="Scal" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Konfiguruj" INSTALL="Zainstaluj" -UNINSTALL="Odinstaluj" -REPAIR="Napraw" -;APPLY="Apply Patch" TEST="Testuj" ;------------------------------------------------------------------------ @@ -1056,10 +1015,6 @@ CHMFILE="Ficheiro de ajuda HTML compilado" XMLFILE="Documento XML" XSLFILE="Folha de estilos XSL" -;; In msi.dll -MSIPACK="Pacote de instalação do ReactOS" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="Ficheiro de estilo visual" THEMEFILE="Ficheiro de temas" @@ -1078,12 +1033,9 @@ WMZFILE="Metarquivo aprimorado compactado" ;; For .reg files, right-click menu MERGE="Combinar" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Configurar" INSTALL="Instalar" -UNINSTALL="Desinstalar" -REPAIR="Reparar" -;APPLY="Apply Patch" TEST="Testar" ;------------------------------------------------------------------------ @@ -1100,10 +1052,6 @@ CHMFILE="Manual compilat din HTML" XMLFILE="Document XML" XSLFILE="Foaie de stil XSL" -;; In msi.dll -MSIPACK="Pachet de instalare ReactOS" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="Fișier de stil vizual" THEMEFILE="Temă de interfață grafică" @@ -1122,12 +1070,9 @@ WMZFILE="Metafișier îmbunătățit comprimat" ;; For .reg files, right-click menu MERGE="Unește" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Configurează" INSTALL="Instalează" -UNINSTALL="Dezinstalează" -REPAIR="Repară" -;APPLY="Apply Patch" TEST="Testează" ;------------------------------------------------------------------------ @@ -1143,10 +1088,6 @@ CHMFILE="Скомпилированный HTML-файл справки" XMLFILE="Документ XML" XSLFILE="XSL таблица стилей" -;; In msi.dll -MSIPACK="Пакет установщика ReactOS" -MSIPTCH="Исправления установщика ReactOS" - ;; In themeui.dll MSSTYLESFILE="Файл стиля оформления" THEMEFILE="Файл темы оформления" @@ -1165,12 +1106,9 @@ WMZFILE="Сжатый расширенный метафайл" ;; For .reg files, right-click menu MERGE="Слияние" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="Настроить" INSTALL="Установить" -UNINSTALL="Удалить" -REPAIR="Исправить" -APPLY="Применить" TEST="Тест" ;------------------------------------------------------------------------ @@ -1186,10 +1124,6 @@ CHMFILE="已編譯的 HTML 說明檔案" XMLFILE="XML 文件" XSLFILE="XSL 樣式表" -;; In msi.dll -MSIPACK="ReactOS 安裝套件" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="視覺樣式檔案" THEMEFILE="主題檔案" @@ -1208,12 +1142,9 @@ SCFFILE="ReactOS Explorer 命令" ;; For .reg files, right-click menu MERGE="合併" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="設定" INSTALL="安裝" -UNINSTALL="解除安裝" -REPAIR="修復" -;APPLY="Apply Patch" TEST="測試" ;------------------------------------------------------------------------ @@ -1229,10 +1160,6 @@ CPLFILE_OPENWITH="Denetim Masası'yla Aç" ;XMLFILE="XML Dosyası" ;XSLFILE="XSL Stil Şablonu" -;; In msi.dll -;MSIPACK="ReactOS Yükleyicisi Paketi" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll ;MSSTYLESFILE="Görsel Stil Dosyası" ;THEMEFILE="Tema Dosyası" @@ -1251,12 +1178,9 @@ CPLFILE_OPENWITH="Denetim Masası'yla Aç" ;; For .reg files, right-click menu ;MERGE="Birleştir" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu ;CONFIGURE="Yapılandır" ;INSTALL="Yükle" -;UNINSTALL="Kaldır" -;REPAIR="Onar" -;APPLY="Apply Patch" ;TEST="Dene" ;------------------------------------------------------------------------ @@ -1272,10 +1196,6 @@ CHMFILE="已編譯 HTML 說明檔案" XMLFILE="XML 文件" XSLFILE="XSL 樣式表" -;; In msi.dll -MSIPACK="ReactOS 安裝套件" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="視覺樣式檔案" THEMEFILE="主題檔案" @@ -1294,12 +1214,9 @@ SCFFILE="ReactOS Explorer 命令" ;; For .reg files, right-click menu MERGE="合併" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="設定" INSTALL="安裝" -UNINSTALL="解除安裝" -REPAIR="修復" -;APPLY="Apply Patch" TEST="測試" ;------------------------------------------------------------------------ @@ -1316,10 +1233,6 @@ CHMFILE="コンパイル済み HTML ヘルプ ファイル" XMLFILE="XML 文書" XSLFILE="XSL スタイルシート" -;; In msi.dll -MSIPACK="ReactOS インストーラ パッケージ" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="視覚スタイル ファイル" THEMEFILE="テーマ ファイル" @@ -1338,12 +1251,9 @@ WMZFILE="圧縮済み拡張メタファイル" ;; For .reg files, right-click menu MERGE="結合" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="設定" INSTALL="インストール" -UNINSTALL="アンインストール" -REPAIR="修復" -;APPLY="Apply Patch" TEST="テスト" ;------------------------------------------------------------------------ @@ -1359,10 +1269,6 @@ CHMFILE="已编译的 HTML 帮助文件" XMLFILE="XML 文档" XSLFILE="XSL 样式表" -;; In msi.dll -MSIPACK="ReactOS Installer 软件包" -;MSIPTCH="ReactOS Installer Patch" - ;; In themeui.dll MSSTYLESFILE="可视化风格文件" THEMEFILE="主题文件" @@ -1381,12 +1287,9 @@ SCFFILE="ReactOS Explorer Command" ;; For .reg files, right-click menu MERGE="合并" -;; For screensaver (*.scr) and MSI install package (*.msi) files, right-click menu +;; For screensaver (*.scr) files, right-click menu CONFIGURE="配置" INSTALL="安装" -UNINSTALL="卸载" -REPAIR="修复" -;APPLY="Apply Patch" TEST="测试" ; EOF diff --git a/dll/win32/msi/lang/msi_Bg.rc b/dll/win32/msi/lang/msi_Bg.rc index ec165ec2b23..604c06672e7 100644 --- a/dll/win32/msi/lang/msi_Bg.rc +++ b/dll/win32/msi/lang/msi_Bg.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "ìðåæîâîòî óñòðîéñòâà íóæíî çà ôóíêöèîíàëíîñòòà ëèïñâà " 14 "ôóíêöèîíàëíîñò îò:" 15 "èçáåðåòå ïàïêàòà, êîÿòî ñúäúðæà %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Da.rc b/dll/win32/msi/lang/msi_Da.rc index 87f26254b10..f62dde0e436 100644 --- a/dll/win32/msi/lang/msi_Da.rc +++ b/dll/win32/msi/lang/msi_Da.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "featurens netværksdrev mangler." 14 "feature fra:" 15 "Vælg kataloget som indeholder '%s'." +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_De.rc b/dll/win32/msi/lang/msi_De.rc index d5e68537c82..50cca99abec 100644 --- a/dll/win32/msi/lang/msi_De.rc +++ b/dll/win32/msi/lang/msi_De.rc @@ -32,6 +32,14 @@ STRINGTABLE 13 "Das Netzwerklaufwerk für das Feature fehlt." 14 "Feature von:" 15 "Wählen Sie das Verzeichnis aus, dass %s enthält." +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_En.rc b/dll/win32/msi/lang/msi_En.rc index 1015a7d5116..353f2aa6df9 100644 --- a/dll/win32/msi/lang/msi_En.rc +++ b/dll/win32/msi/lang/msi_En.rc @@ -32,6 +32,14 @@ STRINGTABLE 13 "network drive for feature missing" 14 "feature from:" 15 "choose which folder contains %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Es.rc b/dll/win32/msi/lang/msi_Es.rc index a94859a12f8..e93b3edbfdf 100644 --- a/dll/win32/msi/lang/msi_Es.rc +++ b/dll/win32/msi/lang/msi_Es.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "unidad de red para característica ausente" 14 "característica de:" 15 "elija qué carpeta contiene %s" +#ifdef __REACTOS__ + 34 "Paquete de instalación de ReactOS" + 35 "ReactOS Installer Patch" + 36 "Instalar" + 37 "Reparar" + 38 "Desinstalar" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Fi.rc b/dll/win32/msi/lang/msi_Fi.rc index 77f5f4dd102..2ffed02e648 100644 --- a/dll/win32/msi/lang/msi_Fi.rc +++ b/dll/win32/msi/lang/msi_Fi.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "Ominaisuuden verkkolevy puuttuu." 14 "Ominaisuus:" 15 "Valitse kansio, jossa on %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Fr.rc b/dll/win32/msi/lang/msi_Fr.rc index 58393f31ace..ddcb589b267 100644 --- a/dll/win32/msi/lang/msi_Fr.rc +++ b/dll/win32/msi/lang/msi_Fr.rc @@ -32,6 +32,14 @@ STRINGTABLE 13 "lecteur réseau pour la fonctionnalité manquante" 14 "fonctionnalité depuis :" 15 "sélectionnez le dossier contenant %s" +#ifdef __REACTOS__ + 34 "Package ReactOS Installer" + 35 "ReactOS Installer Patch" + 36 "Installer" + 37 "Réparer" + 38 "Désinstaller" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_He.rc b/dll/win32/msi/lang/msi_He.rc index ede76d78c3c..172d1b017b8 100644 --- a/dll/win32/msi/lang/msi_He.rc +++ b/dll/win32/msi/lang/msi_He.rc @@ -34,6 +34,14 @@ STRINGTABLE 13 "כונן רשת עבור התכונה חסר" 14 "מהתקן מ:" 15 "בחר איזו תיקיה מכילה את %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Hu.rc b/dll/win32/msi/lang/msi_Hu.rc index 33c427c83e3..b2c2f4fc240 100644 --- a/dll/win32/msi/lang/msi_Hu.rc +++ b/dll/win32/msi/lang/msi_Hu.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "hiányzó tulajdonság a hálózati meghajtóhoz" 14 "tulajdonság innen:" 15 "válassza ki, melyik mappa tartalmazza ezt: %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Id.rc b/dll/win32/msi/lang/msi_Id.rc index ae8afecc6f4..4b8493bec3b 100644 --- a/dll/win32/msi/lang/msi_Id.rc +++ b/dll/win32/msi/lang/msi_Id.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "drive jatingan untuk fitur hilang" 14 "fitur dari:" 15 "pilih folder yang berisi %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_It.rc b/dll/win32/msi/lang/msi_It.rc index ecad1172585..2b17637ea03 100644 --- a/dll/win32/msi/lang/msi_It.rc +++ b/dll/win32/msi/lang/msi_It.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "periferica di rete per la funzionalità mancante" 14 "funzionalità da:" 15 "selezionare la cartella che contiene %s" +#ifdef __REACTOS__ + 34 "Pacchetto di installazione di ReactOS" + 35 "ReactOS Installer Patch" + 36 "Installa" + 37 "Ripara" + 38 "Rimuovi" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Ja.rc b/dll/win32/msi/lang/msi_Ja.rc index caa036cb77f..7230aa9c014 100644 --- a/dll/win32/msi/lang/msi_Ja.rc +++ b/dll/win32/msi/lang/msi_Ja.rc @@ -10,6 +10,14 @@ STRINGTABLE 13 "機能があるネットワーク ドライブがありません" 14 "機能の場所:" 15 "%s のあるフォルダを選択してください" +#ifdef __REACTOS__ + 34 "ReactOS インストーラ パッケージ" + 35 "ReactOS Installer Patch" + 36 "インストール" + 37 "修復" + 38 "アンインストール" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Ko.rc b/dll/win32/msi/lang/msi_Ko.rc index f57cb862772..65e77b301a9 100644 --- a/dll/win32/msi/lang/msi_Ko.rc +++ b/dll/win32/msi/lang/msi_Ko.rc @@ -33,6 +33,14 @@ STRINGTABLE 13 "빠진 부분(feature)을 위한 네트워크 드라이브" 14 "부분(feature)에서:" 15 " %s를 포함하는 폴더 선택" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Lt.rc b/dll/win32/msi/lang/msi_Lt.rc index 7fb9b00557f..f0fb6a801b2 100644 --- a/dll/win32/msi/lang/msi_Lt.rc +++ b/dll/win32/msi/lang/msi_Lt.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "trūksta tinklo disko komponentui" 14 "komponentas iš:" 15 "parinkite aplanką, kuris turi %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Nl.rc b/dll/win32/msi/lang/msi_Nl.rc index 07676578fdf..bba81b6ecd3 100644 --- a/dll/win32/msi/lang/msi_Nl.rc +++ b/dll/win32/msi/lang/msi_Nl.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "De netwerkschijf met de feature ontbreekt" 14 "Feature van:" 15 "Kies de map die %s bevat" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_No.rc b/dll/win32/msi/lang/msi_No.rc index fde6574d80f..968bf7b990a 100644 --- a/dll/win32/msi/lang/msi_No.rc +++ b/dll/win32/msi/lang/msi_No.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "Egenskapens nettverksstasjon mangler." 14 "Egenskap fra::" 15 "Velg katalogen som inneholder '%s'." +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Pl.rc b/dll/win32/msi/lang/msi_Pl.rc index d42c1b142c9..8c9299bff04 100644 --- a/dll/win32/msi/lang/msi_Pl.rc +++ b/dll/win32/msi/lang/msi_Pl.rc @@ -32,6 +32,14 @@ STRINGTABLE 13 "dysk siecowy zawierający żądaną funckje jest niedostępny" 14 "funkcja z:" 15 "wybierz folder zawierający '%s'" +#ifdef __REACTOS__ + 34 "Pakiet Instalatora ReactOS" + 35 "ReactOS Installer Patch" + 36 "Zainstaluj" + 37 "Napraw" + 38 "Odinstaluj" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Pt.rc b/dll/win32/msi/lang/msi_Pt.rc index 136225c1496..fc19c3c4344 100644 --- a/dll/win32/msi/lang/msi_Pt.rc +++ b/dll/win32/msi/lang/msi_Pt.rc @@ -33,6 +33,14 @@ STRINGTABLE 13 "faltando drive de rede para característica" 14 "origem da característica:" 15 "escolha a pasta que contém %s" +#ifdef __REACTOS__ + 34 "Pacote de instalação do ReactOS" + 35 "ReactOS Installer Patch" + 36 "Instalar" + 37 "Reparar" + 38 "Desinstalar" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Ro.rc b/dll/win32/msi/lang/msi_Ro.rc index 89721e4a56d..254f82e62cf 100644 --- a/dll/win32/msi/lang/msi_Ro.rc +++ b/dll/win32/msi/lang/msi_Ro.rc @@ -46,6 +46,14 @@ STRINGTABLE 13 "lipsește unitatea de rețea pentru această caracteristică" 14 "caracteristică de la:" 15 "selectați fișierul care conține %s" +#ifdef __REACTOS__ + 34 "Pachet de instalare ReactOS" + 35 "ReactOS Installer Patch" + 36 "Instalează" + 37 "Repară" + 38 "Dezinstalează" + 39 "Apply" +#endif 100 "Folder nou" } diff --git a/dll/win32/msi/lang/msi_Ru.rc b/dll/win32/msi/lang/msi_Ru.rc index c1f577c80c7..8744b3aad72 100644 --- a/dll/win32/msi/lang/msi_Ru.rc +++ b/dll/win32/msi/lang/msi_Ru.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "сетевой диск для данной возможности не указан" 14 "возможность из:" 15 "выберите каталог, содержащий %s" +#ifdef __REACTOS__ + 34 "Пакет установщика ReactOS" + 35 "Исправления установщика ReactOS" + 36 "Установить" + 37 "Исправить" + 38 "Удалить" + 39 "Применить" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Si.rc b/dll/win32/msi/lang/msi_Si.rc index a760270f721..d2560f52d96 100644 --- a/dll/win32/msi/lang/msi_Si.rc +++ b/dll/win32/msi/lang/msi_Si.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "manjkajoč omrežni pogon za namestitev funkcijo" 14 "funkcija z:" 15 "izberite mapo, ki vsebuje %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Sq.rc b/dll/win32/msi/lang/msi_Sq.rc index bb1a847b103..52a82f3da98 100644 --- a/dll/win32/msi/lang/msi_Sq.rc +++ b/dll/win32/msi/lang/msi_Sq.rc @@ -32,6 +32,14 @@ STRINGTABLE 13 "rrjet drive-ri për funksionin e munguar" 14 "funksione nga:" 15 "zgjidhni dosjen që përmban %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Sr.rc b/dll/win32/msi/lang/msi_Sr.rc index e7119247e92..eeeaaf30344 100644 --- a/dll/win32/msi/lang/msi_Sr.rc +++ b/dll/win32/msi/lang/msi_Sr.rc @@ -32,6 +32,14 @@ STRINGTABLE 13 "mrežni drajv nedostaje" 14 "dodatak sa:" 15 "izaberite koji folder sadrži %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Sv.rc b/dll/win32/msi/lang/msi_Sv.rc index d6764cc8c65..540253b4712 100644 --- a/dll/win32/msi/lang/msi_Sv.rc +++ b/dll/win32/msi/lang/msi_Sv.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "nätverksenhet för funktion saknar" 14 "funktion från:" 15 "välj den mapp som innehåller %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Tr.rc b/dll/win32/msi/lang/msi_Tr.rc index 5abe5a0d208..28cf6f15b2c 100644 --- a/dll/win32/msi/lang/msi_Tr.rc +++ b/dll/win32/msi/lang/msi_Tr.rc @@ -31,6 +31,14 @@ STRINGTABLE 13 "Eksik özellik için ağ sürücüsü" 14 "Şuradan özellik:" 15 "%s içeren dizini seçiniz." +#ifdef __REACTOS__ + 34 "ReactOS Yükleyicisi Paketi" + 35 "ReactOS Installer Patch" + 36 "Yükle" + 37 "Onar" + 38 "Kaldır" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Uk.rc b/dll/win32/msi/lang/msi_Uk.rc index ca9b42e04d6..7d6d428ea30 100644 --- a/dll/win32/msi/lang/msi_Uk.rc +++ b/dll/win32/msi/lang/msi_Uk.rc @@ -33,6 +33,14 @@ STRINGTABLE 13 "мережевий диск для даної можливості не вказаний" 14 "можливість з:" 15 "виберіть папку, що містить %s" +#ifdef __REACTOS__ + 34 "ReactOS Installer Package" + 35 "ReactOS Installer Patch" + 36 "Install" + 37 "Repair" + 38 "Uninstall" + 39 "Apply" +#endif 100 "New Folder" } diff --git a/dll/win32/msi/lang/msi_Zh.rc b/dll/win32/msi/lang/msi_Zh.rc index 9270486fb2d..eec8e801d91 100644 --- a/dll/win32/msi/lang/msi_Zh.rc +++ b/dll/win32/msi/lang/msi_Zh.rc @@ -34,6 +34,14 @@ STRINGTABLE 13 "本功能的网络驱动器不存在" 14 "功能来自:" 15 "选择包含 %s 的文件夹" +#ifdef __REACTOS__ + 34 "ReactOS Installer 软件包" // zh-TW/HK: ReactOS 安裝套件 + 35 "ReactOS Installer Patch" + 36 "安装" // zh-TW/HK: 安裝 + 37 "修复" // zh-TW/HK: 修復 + 38 "卸载" // zh-TW/HK: 解除安裝 + 39 "Apply" +#endif 100 "New Folder" }
1 month, 2 weeks
1
0
0
0
[reactos] 02/02: [BOOTDATA][INF] hivecls.inf: Update Russian (ru-RU) translation
by Stanislav Motylkov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3f4f51833a9a766d955af…
commit 3f4f51833a9a766d955af247f93ce743edeffa4f Author: Stanislav Motylkov <x86corez(a)gmail.com> AuthorDate: Tue Nov 5 23:26:44 2024 +0300 Commit: Stanislav Motylkov <x86corez(a)gmail.com> CommitDate: Tue Nov 5 23:30:15 2024 +0300 [BOOTDATA][INF] hivecls.inf: Update Russian (ru-RU) translation CORE-19845 --- boot/bootdata/hivecls.inf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boot/bootdata/hivecls.inf b/boot/bootdata/hivecls.inf index 624559c9a28..1b4c450b92c 100644 --- a/boot/bootdata/hivecls.inf +++ b/boot/bootdata/hivecls.inf @@ -1145,7 +1145,7 @@ XSLFILE="XSL таблица стилей" ;; In msi.dll MSIPACK="Пакет установщика ReactOS" -;MSIPTCH="ReactOS Installer Patch" +MSIPTCH="Исправления установщика ReactOS" ;; In themeui.dll MSSTYLESFILE="Файл стиля оформления" @@ -1170,7 +1170,7 @@ CONFIGURE="Настроить" INSTALL="Установить" UNINSTALL="Удалить" REPAIR="Исправить" -;APPLY="Apply Patch" +APPLY="Применить" TEST="Тест" ;------------------------------------------------------------------------
1 month, 2 weeks
1
0
0
0
[reactos] 01/02: [BOOTDATA][INF] hivecls.inf: Add definitions for MSP / Msi.Patch files
by Stanislav Motylkov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=b45429ce0300d00caa8da…
commit b45429ce0300d00caa8dac4e09d01d774bf456e4 Author: Stanislav Motylkov <x86corez(a)gmail.com> AuthorDate: Tue Nov 5 22:58:37 2024 +0300 Commit: Stanislav Motylkov <x86corez(a)gmail.com> CommitDate: Tue Nov 5 23:28:59 2024 +0300 [BOOTDATA][INF] hivecls.inf: Add definitions for MSP / Msi.Patch files These are used by Steinberg Cubase 5. CORE-19845 Also add some missing MUIVerb for Msi.Package. --- boot/bootdata/hivecls.inf | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/boot/bootdata/hivecls.inf b/boot/bootdata/hivecls.inf index f79cf76fdde..624559c9a28 100644 --- a/boot/bootdata/hivecls.inf +++ b/boot/bootdata/hivecls.inf @@ -435,12 +435,24 @@ HKCR,".msi","",0x00000000,"Msi.Package" HKCR,"Msi.Package","",0x00000000,%MSIPACK% ;;HKCR,"Msi.Package","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-34" HKCR,"Msi.Package\DefaultIcon","",0x00000000,"msiexec.exe" +;;HKCR,"Msi.Package\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-36" HKCR,"Msi.Package\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /i ""%1""" HKCR,"Msi.Package\shell\Repair","",0x00000000,%REPAIR% +;;HKCR,"Msi.Package\shell\Repair","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-37" HKCR,"Msi.Package\shell\Repair\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /f ""%1""" HKCR,"Msi.Package\shell\Uninstall","",0x00000000,%UNINSTALL% +;;HKCR,"Msi.Package\shell\Uninstall","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-38" HKCR,"Msi.Package\shell\Uninstall\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /x ""%1""" +; MSP files +HKCR,".msp","",0x00000000,"Msi.Patch" +HKCR,"Msi.Patch","",0x00000000,%MSIPTCH% +;;HKCR,"Msi.Patch","FriendlyTypeName",0x00020000,"@%SystemRoot%\system32\msi.dll,-35" +HKCR,"Msi.Patch\DefaultIcon","",0x00000000,"msiexec.exe" +HKCR,"Msi.Patch\shell\Open","",0x00000000,%APPLY% +;;HKCR,"Msi.Patch\shell\Open","MUIVerb",0x00020000,"@%SystemRoot%\system32\msi.dll,-39" +HKCR,"Msi.Patch\shell\Open\command","",0x00020000,"%SystemRoot%\system32\msiexec.exe /p ""%1""" + ; NT DOS32 Configuration File HKCR,".nt","",0x00000000,"ntfile" HKCR,"ntfile","",0x00000000,"NT DOS32 Configuration File" @@ -786,6 +798,7 @@ XSLFILE="XSL Stylesheet" ;; In msi.dll MSIPACK="ReactOS Installer Package" +MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Visual Style File" @@ -811,6 +824,7 @@ CONFIGURE="Configure" INSTALL="Install" UNINSTALL="Uninstall" REPAIR="Repair" +APPLY="Apply Patch" TEST="Test" ;------------------------------------------------------------------------ @@ -828,6 +842,7 @@ CPLFILE_OPENWITH="Mit der Systemsteuerung öffnen" ;; In msi.dll ;MSIPACK="ReactOS Installer Package" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll ;MSSTYLESFILE="Visual Style File" @@ -852,6 +867,7 @@ CPLFILE_OPENWITH="Mit der Systemsteuerung öffnen" ;INSTALL="Install" ;UNINSTALL="Uninstall" ;REPAIR="Repair" +;APPLY="Apply Patch" ;TEST="Test" ;------------------------------------------------------------------------ @@ -869,6 +885,7 @@ XSLFILE="Hoja de estilos XSL" ;; In msi.dll MSIPACK="Paquete de instalación de ReactOS" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Archivo de estilo visual" @@ -893,6 +910,7 @@ CONFIGURE="Configurar" INSTALL="Instalar" UNINSTALL="Desinstalar" REPAIR="Reparar" +;APPLY="Apply Patch" TEST="Probar" ;------------------------------------------------------------------------ @@ -910,6 +928,7 @@ XSLFILE="Feuille de style XSL" ;; In msi.dll MSIPACK="Package ReactOS Installer" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Fichier de styles visuels" @@ -934,6 +953,7 @@ CONFIGURE="Configurer" INSTALL="Installer" UNINSTALL="Désinstaller" REPAIR="Réparer" +;APPLY="Apply Patch" TEST="Tester" ;------------------------------------------------------------------------ @@ -951,6 +971,7 @@ XSLFILE="Foglio di stile XSL" ;; In msi.dll MSIPACK="Pacchetto di installazione di ReactOS" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="File di stili visivi" @@ -975,6 +996,7 @@ CONFIGURE="Configura" INSTALL="Installa" UNINSTALL="Rimuovi" REPAIR="Ripara" +;APPLY="Apply Patch" TEST="Prova" ;------------------------------------------------------------------------ @@ -992,6 +1014,7 @@ XSLFILE="Arkusz stylów XSL" ;; In msi.dll MSIPACK="Pakiet Instalatora ReactOS" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Plik stylu wizualnego" @@ -1016,6 +1039,7 @@ CONFIGURE="Konfiguruj" INSTALL="Zainstaluj" UNINSTALL="Odinstaluj" REPAIR="Napraw" +;APPLY="Apply Patch" TEST="Testuj" ;------------------------------------------------------------------------ @@ -1034,6 +1058,7 @@ XSLFILE="Folha de estilos XSL" ;; In msi.dll MSIPACK="Pacote de instalação do ReactOS" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Ficheiro de estilo visual" @@ -1058,6 +1083,7 @@ CONFIGURE="Configurar" INSTALL="Instalar" UNINSTALL="Desinstalar" REPAIR="Reparar" +;APPLY="Apply Patch" TEST="Testar" ;------------------------------------------------------------------------ @@ -1076,6 +1102,7 @@ XSLFILE="Foaie de stil XSL" ;; In msi.dll MSIPACK="Pachet de instalare ReactOS" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Fișier de stil vizual" @@ -1100,6 +1127,7 @@ CONFIGURE="Configurează" INSTALL="Instalează" UNINSTALL="Dezinstalează" REPAIR="Repară" +;APPLY="Apply Patch" TEST="Testează" ;------------------------------------------------------------------------ @@ -1117,6 +1145,7 @@ XSLFILE="XSL таблица стилей" ;; In msi.dll MSIPACK="Пакет установщика ReactOS" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="Файл стиля оформления" @@ -1141,6 +1170,7 @@ CONFIGURE="Настроить" INSTALL="Установить" UNINSTALL="Удалить" REPAIR="Исправить" +;APPLY="Apply Patch" TEST="Тест" ;------------------------------------------------------------------------ @@ -1158,6 +1188,7 @@ XSLFILE="XSL 樣式表" ;; In msi.dll MSIPACK="ReactOS 安裝套件" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="視覺樣式檔案" @@ -1182,6 +1213,7 @@ CONFIGURE="設定" INSTALL="安裝" UNINSTALL="解除安裝" REPAIR="修復" +;APPLY="Apply Patch" TEST="測試" ;------------------------------------------------------------------------ @@ -1199,6 +1231,7 @@ CPLFILE_OPENWITH="Denetim Masası'yla Aç" ;; In msi.dll ;MSIPACK="ReactOS Yükleyicisi Paketi" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll ;MSSTYLESFILE="Görsel Stil Dosyası" @@ -1223,6 +1256,7 @@ CPLFILE_OPENWITH="Denetim Masası'yla Aç" ;INSTALL="Yükle" ;UNINSTALL="Kaldır" ;REPAIR="Onar" +;APPLY="Apply Patch" ;TEST="Dene" ;------------------------------------------------------------------------ @@ -1240,6 +1274,7 @@ XSLFILE="XSL 樣式表" ;; In msi.dll MSIPACK="ReactOS 安裝套件" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="視覺樣式檔案" @@ -1264,6 +1299,7 @@ CONFIGURE="設定" INSTALL="安裝" UNINSTALL="解除安裝" REPAIR="修復" +;APPLY="Apply Patch" TEST="測試" ;------------------------------------------------------------------------ @@ -1282,6 +1318,7 @@ XSLFILE="XSL スタイルシート" ;; In msi.dll MSIPACK="ReactOS インストーラ パッケージ" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="視覚スタイル ファイル" @@ -1306,6 +1343,7 @@ CONFIGURE="設定" INSTALL="インストール" UNINSTALL="アンインストール" REPAIR="修復" +;APPLY="Apply Patch" TEST="テスト" ;------------------------------------------------------------------------ @@ -1323,6 +1361,7 @@ XSLFILE="XSL 样式表" ;; In msi.dll MSIPACK="ReactOS Installer 软件包" +;MSIPTCH="ReactOS Installer Patch" ;; In themeui.dll MSSTYLESFILE="可视化风格文件" @@ -1347,6 +1386,7 @@ CONFIGURE="配置" INSTALL="安装" UNINSTALL="卸载" REPAIR="修复" +;APPLY="Apply Patch" TEST="测试" ; EOF
1 month, 2 weeks
1
0
0
0
[reactos] 06/06: [RTL] actctx.c: Restore wine tracing
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=51aac7ca93a657718f170…
commit 51aac7ca93a657718f1700f802cd02c683bcc1c6 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Tue Sep 24 19:09:23 2024 +0300 Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org> CommitDate: Tue Nov 5 10:54:21 2024 +0200 [RTL] actctx.c: Restore wine tracing --- sdk/lib/rtl/actctx.c | 206 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 164 insertions(+), 42 deletions(-) diff --git a/sdk/lib/rtl/actctx.c b/sdk/lib/rtl/actctx.c index 3a102f1c725..d4768428d81 100644 --- a/sdk/lib/rtl/actctx.c +++ b/sdk/lib/rtl/actctx.c @@ -19,17 +19,16 @@ #include <ntstrsafe.h> #include <compat_undoc.h> -#define NDEBUG -#include <debug.h> - #include <wine/unicode.h> #include "wine/exception.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(actctx); #define GetProcessHeap() RtlGetProcessHeap() #define GetCurrentProcess() NtCurrentProcess() -#define FIXME DPRINT1 -#define WARN DPRINT1 -#define TRACE DPRINT +#define DPRINT1 FIXME +#define DPRINT TRACE #define FILE_END_OF_FILE_INFORMATION FILE_STANDARD_INFORMATION #define FileEndOfFileInformation FileStandardInformation #define RELATIVE_PATH RtlPathTypeRelative @@ -38,6 +37,7 @@ #define wcsnicmp _wcsnicmp #define swprintf _snwprintf #define wcsicmp _wcsicmp +extern LPCSTR debugstr_us( const UNICODE_STRING *str ) DECLSPEC_HIDDEN; #undef RT_MANIFEST #undef CREATEPROCESS_MANIFEST_RESOURCE_ID @@ -835,17 +835,27 @@ static inline BOOL isxmlspace( WCHAR ch ) return (ch == ' ' || ch == '\r' || ch == '\n' || ch == '\t'); } -#ifndef __REACTOS__ static inline const char* debugstr_xmlstr(const xmlstr_t* str) { return debugstr_wn(str->ptr, str->len); } +static inline const char *debugstr_xml_elem( const struct xml_elem *elem ) +{ + return wine_dbg_sprintf( "%s ns %s", debugstr_wn( elem->name.ptr, elem->name.len ), + debugstr_wn( elem->ns.ptr, elem->ns.len )); +} + +static inline const char *debugstr_xml_attr( const struct xml_attr *attr ) +{ + return wine_dbg_sprintf( "%s=%s", debugstr_wn( attr->name.ptr, attr->name.len ), + debugstr_wn( attr->value.ptr, attr->value.len )); +} + static inline const char* debugstr_version(const struct assembly_version *ver) { return wine_dbg_sprintf("%u.%u.%u.%u", ver->major, ver->minor, ver->build, ver->revision); } -#endif // !__REACTOS__ static NTSTATUS get_module_filename( HMODULE module, UNICODE_STRING *str, unsigned int extra_len ) { @@ -1068,8 +1078,8 @@ static BOOL add_dependent_assembly_id(struct actctx_loader* acl, for (i = 0; i < acl->actctx->num_assemblies; i++) if (is_matching_identity( ai, &acl->actctx->assemblies[i].id )) { - TRACE( "reusing existing assembly for %S arch %S version %u.%u.%u.%u\n", - ai->name, ai->arch, ai->version.major, ai->version.minor, + TRACE( "reusing existing assembly for %s arch %s version %u.%u.%u.%u\n", + debugstr_w(ai->name), debugstr_w(ai->arch), ai->version.major, ai->version.minor, ai->version.build, ai->version.revision ); return TRUE; } @@ -1077,8 +1087,8 @@ static BOOL add_dependent_assembly_id(struct actctx_loader* acl, for (i = 0; i < acl->num_dependencies; i++) if (is_matching_identity( ai, &acl->dependencies[i] )) { - TRACE( "reusing existing dependency for %S arch %S version %u.%u.%u.%u\n", - ai->name, ai->arch, ai->version.major, ai->version.minor, + TRACE( "reusing existing dependency for %s arch %s version %u.%u.%u.%u\n", + debugstr_w(ai->name), debugstr_w(ai->arch), ai->version.major, ai->version.minor, ai->version.build, ai->version.revision ); return TRUE; } @@ -1275,7 +1285,7 @@ static void push_xmlns( xmlbuf_t *xmlbuf, const struct xml_attr *attr ) if (xmlbuf->ns_pos == MAX_NAMESPACES - 1) { - // FIXME( "too many namespaces in manifest\n" ); + FIXME( "too many namespaces in manifest\n" ); set_error( xmlbuf ); return; } @@ -1299,7 +1309,7 @@ static xmlstr_t find_xmlns( xmlbuf_t *xmlbuf, const xmlstr_t *name ) !wcsncmp( xmlbuf->namespaces[i].name.ptr, name->ptr, name->len )) return xmlbuf->namespaces[i].value; } - + if (xmlbuf->ns_pos) WARN( "namespace %s not found\n", debugstr_xmlstr( name )); return empty_xmlstr; } @@ -1436,8 +1446,8 @@ static BOOL next_xml_elem( xmlbuf_t *xmlbuf, struct xml_elem *elem, const struct elem->ns = find_xmlns( xmlbuf, &elem->ns ); if (!xml_name_cmp( elem, parent )) { - /*ERR( "wrong closing element %s for %s\n", - debugstr_xmlstr(&elem->name), debugstr_xmlstr(&parent->name ));*/ + ERR( "wrong closing element %s for %s\n", + debugstr_xmlstr(&elem->name), debugstr_xmlstr(&parent->name )); return set_error( xmlbuf ); } while (xmlbuf->ptr < xmlbuf->end && isxmlspace(*xmlbuf->ptr)) xmlbuf->ptr++; @@ -1521,6 +1531,7 @@ static BOOL parse_version(const xmlstr_t *str, struct assembly_version *version) return TRUE; error: + FIXME( "Wrong version definition in manifest file (%s)\n", debugstr_xmlstr(str) ); return FALSE; } @@ -1530,8 +1541,7 @@ static void parse_expect_no_attr(xmlbuf_t* xmlbuf, BOOL* end) while (next_xml_attr(xmlbuf, &attr, end)) { - // TODO: report error - // if (!is_xmlns_attr( &attr )) WARN("unexpected attr %s\n", debugstr_xml_attr(&attr)); + if (!is_xmlns_attr( &attr )) WARN("unexpected attr %s\n", debugstr_xml_attr(&attr)); } } @@ -1541,7 +1551,7 @@ static void parse_expect_end_elem( xmlbuf_t *xmlbuf, const struct xml_elem *pare if (next_xml_elem(xmlbuf, &elem, parent)) { - // FIXME( "unexpected element %s\n", debugstr_xml_elem(&elem) ); + FIXME( "unexpected element %s\n", debugstr_xml_elem(&elem) ); set_error( xmlbuf ); } } @@ -1591,8 +1601,15 @@ static void parse_assembly_identity_elem(xmlbuf_t *xmlbuf, ACTIVATION_CONTEXT *a { if (!(ai->language = xmlstrdupW(&attr.value))) set_error( xmlbuf ); } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } + TRACE( "name=%s version=%s arch=%s\n", + debugstr_w(ai->name), debugstr_version(&ai->version), debugstr_w(ai->arch) ); + if (!end) parse_expect_end_elem(xmlbuf, parent); } @@ -1639,7 +1656,7 @@ static OLEMISC get_olemisc_value(const WCHAR *str, int len) min = n+1; } - WARN("unknown flag %S\n", str); + WARN("unknown flag %s\n", debugstr_wn(str, len)); return 0; } @@ -1759,6 +1776,10 @@ static void parse_com_class_elem( xmlbuf_t *xmlbuf, struct dll_redirect *dll, st { /* not stored */ } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } acl->actctx->sections |= SERVERREDIRECT_SECTION; @@ -1775,6 +1796,7 @@ static void parse_com_class_elem( xmlbuf_t *xmlbuf, struct dll_redirect *dll, st } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -1794,7 +1816,7 @@ static BOOL parse_nummethods(const xmlstr_t *str, struct entity *entity) num = num * 10 + *curr - '0'; else { - // ERR("wrong numeric value %wZ\n", &strU); + ERR("wrong numeric value %s\n", debugstr_xmlstr(str)); return FALSE; } } @@ -1878,6 +1900,7 @@ static void parse_cominterface_proxy_stub_elem( xmlbuf_t *xmlbuf, struct dll_red } else if (!is_xmlns_attr( &attr )) { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } } @@ -1913,7 +1936,7 @@ static BOOL parse_typelib_flags(const xmlstr_t *value, struct entity *entity) *flags |= LIBFLAG_FHASDISKIMAGE; else { - // WARN("unknown flags value %wZ\n", &valueU); + WARN("unknown flags value %s\n", debugstr_xmlstr(value)); return FALSE; } @@ -1951,6 +1974,7 @@ static BOOL parse_typelib_version(const xmlstr_t *str, struct entity *entity) return TRUE; error: + FIXME("wrong typelib version value (%s)\n", debugstr_xmlstr(str)); return FALSE; } @@ -1985,6 +2009,10 @@ static void parse_typelib_elem( xmlbuf_t *xmlbuf, struct dll_redirect *dll, { if (!parse_typelib_flags(&attr.value, entity)) set_error( xmlbuf ); } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } acl->actctx->sections |= TLIBREDIRECT_SECTION; @@ -2030,6 +2058,10 @@ static void parse_window_class_elem( xmlbuf_t *xmlbuf, struct dll_redirect *dll, else if (!xmlstr_cmpi(&attr.value, yesW)) set_error( xmlbuf ); } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } if (end) return; @@ -2041,6 +2073,7 @@ static void parse_window_class_elem( xmlbuf_t *xmlbuf, struct dll_redirect *dll, while (next_xml_elem(xmlbuf, &elem, parent)) { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2054,11 +2087,15 @@ static void parse_binding_redirect_elem( xmlbuf_t *xmlbuf, const struct xml_elem { if (xml_attr_cmp(&attr, oldVersionW)) { - // FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr)); + FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr)); } else if (xml_attr_cmp(&attr, newVersionW)) { - // FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr)); + FIXME("Not stored yet %s\n", debugstr_xml_attr(&attr)); + } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } } @@ -2072,13 +2109,19 @@ static void parse_description_elem( xmlbuf_t *xmlbuf, const struct xml_elem *par xmlstr_t content; BOOL end = FALSE; - while (next_xml_attr(xmlbuf, &attr, &end)); + while (next_xml_attr(xmlbuf, &attr, &end)) + { + if (!is_xmlns_attr( &attr )) WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } if (end) return; if (!parse_text_content(xmlbuf, &content)) return; + TRACE("Got description %s\n", debugstr_xmlstr(&content)); + while (next_xml_elem(xmlbuf, &elem, parent)) { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2126,6 +2169,10 @@ static void parse_com_interface_external_proxy_stub_elem(xmlbuf_t *xmlbuf, { if (!(entity->u.ifaceps.tlib = xmlstrdupW(&attr.value))) set_error( xmlbuf ); } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } acl->actctx->sections |= IFACEREDIRECT_SECTION; @@ -2173,6 +2220,10 @@ static void parse_clr_class_elem( xmlbuf_t* xmlbuf, struct assembly* assembly, { if (!(entity->u.comclass.version = xmlstrdupW(&attr.value))) set_error( xmlbuf ); } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } acl->actctx->sections |= SERVERREDIRECT_SECTION; @@ -2188,6 +2239,7 @@ static void parse_clr_class_elem( xmlbuf_t* xmlbuf, struct assembly* assembly, } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2223,6 +2275,10 @@ static void parse_clr_surrogate_elem( xmlbuf_t *xmlbuf, struct assembly *assembl { if (!(entity->u.clrsurrogate.version = xmlstrdupW(&attr.value))) set_error( xmlbuf ); } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } acl->actctx->sections |= CLRSURROGATES_SECTION; @@ -2247,6 +2303,8 @@ static void parse_dependent_assembly_elem( xmlbuf_t *xmlbuf, struct actctx_loade if (xml_attr_cmp(&attr, allowDelayedBindingW)) ai.delayed = xmlstr_cmp(&attr.value, trueW); + else if (!is_xmlns_attr( &attr )) + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } if (end) return; @@ -2262,6 +2320,8 @@ static void parse_dependent_assembly_elem( xmlbuf_t *xmlbuf, struct actctx_loade RtlFreeHeap( GetProcessHeap(), 0, ai.arch ); ai.arch = strdupW( current_archW ); } + TRACE( "adding name=%s version=%s arch=%s\n", + debugstr_w(ai.name), debugstr_version(&ai.version), debugstr_w(ai.arch) ); if (!add_dependent_assembly_id(acl, &ai)) set_error( xmlbuf ); } else if (xml_elem_cmp(&elem, bindingRedirectW, asmv1W)) @@ -2270,6 +2330,7 @@ static void parse_dependent_assembly_elem( xmlbuf_t *xmlbuf, struct actctx_loade } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2288,6 +2349,11 @@ static void parse_dependency_elem( xmlbuf_t *xmlbuf, struct actctx_loader *acl, if (xml_attr_cmp(&attr, optionalW)) { optional = xmlstr_cmpi( &attr.value, yesW ); + TRACE("optional=%s\n", debugstr_xmlstr(&attr.value)); + } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } } @@ -2299,6 +2365,7 @@ static void parse_dependency_elem( xmlbuf_t *xmlbuf, struct actctx_loader *acl, } else { + WARN("unknown element %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2339,6 +2406,7 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly* assembly, if (xml_attr_cmp(&attr, g_nameW)) { if (!(dll->name = xmlstrdupW(&attr.value))) set_error( xmlbuf ); + TRACE("name=%s\n", debugstr_xmlstr(&attr.value)); } else if (xml_attr_cmp(&attr, hashW)) { @@ -2347,9 +2415,12 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly* assembly, else if (xml_attr_cmp(&attr, hashalgW)) { static const WCHAR sha1W[] = {'S','H','A','1',0}; - if (!xmlstr_cmpi(&attr.value, sha1W)) { - //FIXME("hashalg should be SHA1, got %s\n", debugstr_xmlstr(&attr.value)); - } + if (!xmlstr_cmpi(&attr.value, sha1W)) + FIXME("hashalg should be SHA1, got %s\n", debugstr_xmlstr(&attr.value)); + } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } } @@ -2371,6 +2442,7 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly* assembly, } else if (xml_elem_cmp(&elem, hashW, asmv2W)) { + WARN("asmv2:hash (undocumented) not supported\n"); parse_unknown_elem(xmlbuf, &elem); } else if (xml_elem_cmp(&elem, typelibW, asmv1W)) @@ -2383,6 +2455,7 @@ static void parse_file_elem( xmlbuf_t* xmlbuf, struct assembly* assembly, } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem( xmlbuf, &elem ); } } @@ -2414,6 +2487,14 @@ static void parse_supportedos_elem( xmlbuf_t *xmlbuf, struct assembly *assembly, compat->Type = ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS; compat->Id = compat_id; } + else + { + WARN("Invalid guid %s\n", debugstr_xmlstr(&attr.value)); + } + } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } } @@ -2433,6 +2514,7 @@ static void parse_compatibility_application_elem(xmlbuf_t *xmlbuf, struct assemb } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2451,6 +2533,7 @@ static void parse_compatibility_elem(xmlbuf_t *xmlbuf, struct assembly *assembly } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2467,11 +2550,13 @@ static void parse_settings_elem( xmlbuf_t *xmlbuf, struct assembly *assembly, st while (next_xml_attr( xmlbuf, &attr, &end )) { + if (!is_xmlns_attr( &attr )) WARN( "unknown attr %s\n", debugstr_xml_attr(&attr) ); } if (end) return; if (!parse_text_content( xmlbuf, &content )) return; + TRACE( "got %s %s\n", debugstr_xmlstr(&parent->name), debugstr_xmlstr(&content) ); entity = add_entity( &assembly->entities, ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS ); if (!entity) @@ -2485,6 +2570,7 @@ static void parse_settings_elem( xmlbuf_t *xmlbuf, struct assembly *assembly, st while (next_xml_elem(xmlbuf, &elem, parent)) { + WARN( "unknown elem %s\n", debugstr_xml_elem(&elem) ); parse_unknown_elem( xmlbuf, &elem ); } } @@ -2512,6 +2598,7 @@ static void parse_windows_settings_elem( xmlbuf_t *xmlbuf, struct assembly *asse } else { + WARN( "unknown elem %s\n", debugstr_xml_elem(&elem) ); parse_unknown_elem( xmlbuf, &elem ); } } @@ -2530,6 +2617,7 @@ static void parse_application_elem( xmlbuf_t *xmlbuf, struct assembly *assembly, } else { + WARN( "unknown elem %s\n", debugstr_xml_elem(&elem) ); parse_unknown_elem( xmlbuf, &elem ); } } @@ -2563,6 +2651,8 @@ static void parse_requested_execution_level_elem( xmlbuf_t *xmlbuf, struct assem assembly->run_level = ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE; else if (xmlstr_cmpi(&attr.value, requireAdministratorW)) assembly->run_level = ACTCTX_RUN_LEVEL_REQUIRE_ADMIN; + else + FIXME("unknown execution level: %s\n", debugstr_xmlstr(&attr.value)); } else if (xml_attr_cmp(&attr, uiAccessW)) { @@ -2570,13 +2660,18 @@ static void parse_requested_execution_level_elem( xmlbuf_t *xmlbuf, struct assem assembly->ui_access = FALSE; else if (xmlstr_cmpi(&attr.value, trueW)) assembly->ui_access = TRUE; + else + FIXME("unknown uiAccess value: %s\n", debugstr_xmlstr(&attr.value)); } + else if (!is_xmlns_attr( &attr )) + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); } if (end) return; while (next_xml_elem(xmlbuf, &elem, parent)) { + WARN("unknown element %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2594,6 +2689,7 @@ static void parse_requested_privileges_elem( xmlbuf_t *xmlbuf, struct assembly * } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2612,6 +2708,7 @@ static void parse_security_elem( xmlbuf_t *xmlbuf, struct assembly *assembly, } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2630,6 +2727,7 @@ static void parse_trust_info_elem( xmlbuf_t *xmlbuf, struct assembly *assembly, } else { + WARN("unknown elem %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2643,6 +2741,8 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly* assembly, struct xml_attr attr; BOOL end = FALSE, version = FALSE; + TRACE("(%p)\n", xmlbuf); + while (next_xml_attr(xmlbuf, &attr, &end)) { if (xml_attr_cmp(&attr, manifestVersionW)) @@ -2650,10 +2750,15 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly* assembly, static const WCHAR v10W[] = {'1','.','0',0}; if (!xmlstr_cmp(&attr.value, v10W)) { + FIXME("wrong version %s\n", debugstr_xmlstr(&attr.value)); break; } version = TRUE; } + else if (!is_xmlns_attr( &attr )) + { + WARN("unknown attr %s\n", debugstr_xml_attr(&attr)); + } } if (end || !version) @@ -2711,6 +2816,11 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly* assembly, if (assembly->type == ASSEMBLY_MANIFEST && memcmp(&assembly->id.version, &expected_ai->version, sizeof(assembly->id.version))) { + FIXME("wrong version for assembly manifest: %u.%u.%u.%u / %u.%u.%u.%u\n", + expected_ai->version.major, expected_ai->version.minor, + expected_ai->version.build, expected_ai->version.revision, + assembly->id.version.major, assembly->id.version.minor, + assembly->id.version.build, assembly->id.version.revision); set_error( xmlbuf ); } else if (assembly->type == ASSEMBLY_SHARED_MANIFEST && @@ -2720,6 +2830,7 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly* assembly, (assembly->id.version.build == expected_ai->version.build && assembly->id.version.revision < expected_ai->version.revision))) { + FIXME("wrong version for shared assembly manifest\n"); set_error( xmlbuf ); } } @@ -2734,6 +2845,7 @@ static void parse_assembly_elem( xmlbuf_t *xmlbuf, struct assembly* assembly, } else { + WARN("unknown element %s\n", debugstr_xml_elem(&elem)); parse_unknown_elem(xmlbuf, &elem); } } @@ -2762,22 +2874,26 @@ static NTSTATUS parse_manifest_buffer( struct actctx_loader* acl, struct assembl if (!xml_elem_cmp(&elem, assemblyW, asmv1W)) { + FIXME("root element is %s, not <assembly>\n", debugstr_xml_elem(&elem)); return STATUS_SXS_CANT_GEN_ACTCTX; } parse_assembly_elem(xmlbuf, assembly, acl, &elem, ai); if (xmlbuf->error) { + FIXME("failed to parse manifest %s\n", debugstr_w(assembly->manifest.info) ); return STATUS_SXS_CANT_GEN_ACTCTX; } if (next_xml_elem(xmlbuf, &elem, &parent)) { + FIXME("unexpected element %s\n", debugstr_xml_elem(&elem)); return STATUS_SXS_CANT_GEN_ACTCTX; } if (xmlbuf->ptr != xmlbuf->end) { + FIXME("parse error\n"); return STATUS_SXS_CANT_GEN_ACTCTX; } return STATUS_SUCCESS; @@ -2792,7 +2908,7 @@ static NTSTATUS parse_manifest( struct actctx_loader* acl, struct assembly_ident struct assembly *assembly; int unicode_tests; - TRACE( "parsing manifest loaded from %S base dir %S\n", filename, directory ); + TRACE( "parsing manifest loaded from %s base dir %s\n", debugstr_w(filename), debugstr_w(directory) ); if (!(assembly = add_assembly(acl->actctx, shared ? ASSEMBLY_SHARED_MANIFEST : ASSEMBLY_MANIFEST))) return STATUS_SXS_CANT_GEN_ACTCTX; @@ -3018,7 +3134,7 @@ static NTSTATUS get_manifest_in_pe_file( struct actctx_loader* acl, struct assem resptr = resnameBuf; } - TRACE( "looking for res %S in %S\n", resptr, filename ? filename : L"<NULL>"); + DPRINT( "looking for res %S in %S\n", resptr, filename ? filename : L"<NULL>"); attr.Length = sizeof(attr); attr.RootDirectory = 0; @@ -3067,7 +3183,7 @@ static NTSTATUS get_manifest_in_manifest_file( struct actctx_loader* acl, struct SIZE_T count; void *base; - TRACE( "loading manifest file %S\n", filename ); + TRACE( "loading manifest file %s\n", debugstr_w(filename) ); attr.Length = sizeof(attr); attr.RootDirectory = 0; @@ -3110,7 +3226,7 @@ static NTSTATUS get_manifest_in_associated_manifest( struct actctx_loader* acl, if (!((ULONG_PTR)resname >> 16)) resid = (ULONG_PTR)resname & 0xffff; - TRACE( "looking for manifest associated with %S id %lu\n", filename, resid ); + TRACE( "looking for manifest associated with %s id %lu\n", debugstr_w(filename), resid ); if (module) /* use the module filename */ { @@ -3224,7 +3340,7 @@ static WCHAR *lookup_manifest_file( HANDLE dir, struct assembly_identity *ai ) } } } - else WARN("no matching file for %S\n", lookup); + else WARN("no matching file for %s\n", debugstr_w(lookup)); RtlFreeHeap( GetProcessHeap(), 0, lookup ); return ret; } @@ -3314,8 +3430,8 @@ static NTSTATUS lookup_assembly(struct actctx_loader* acl, HANDLE file; DWORD len; - TRACE( "looking for name=%S version=%u.%u.%u.%u arch=%S\n", - ai->name, ai->version.major, ai->version.minor, ai->version.build, ai->version.revision, ai->arch ); + TRACE( "looking for name=%s version=%s arch=%s\n", + debugstr_w(ai->name), debugstr_version(&ai->version), debugstr_w(ai->arch) ); if ((status = lookup_winsxs(acl, ai)) != STATUS_NO_SUCH_FILE) return status; @@ -3403,10 +3519,9 @@ static NTSTATUS parse_depend_manifests(struct actctx_loader* acl) { if (!acl->dependencies[i].optional && !acl->dependencies[i].delayed) { - const struct assembly_version *ver = &acl->dependencies[i].version; - DPRINT1( "Could not find dependent assembly %S (%u.%u.%u.%u)\n", - acl->dependencies[i].name, - ver->major, ver->minor, ver->build, ver->revision ); + FIXME( "Could not find dependent assembly %s (%s)\n", + debugstr_w(acl->dependencies[i].name), + debugstr_version(&acl->dependencies[i].version) ); status = STATUS_SXS_CANT_GEN_ACTCTX; break; } @@ -3566,7 +3681,7 @@ static struct string_index *find_string_index(const struct strsection_header *se break; } else - WARN("hash collision 0x%08x, %wZ, %wZ\n", hash, name, &str); + WARN("hash collision 0x%08x, %s, %s\n", hash, debugstr_us(name), debugstr_w(g_nameW)); } iter++; } @@ -3830,7 +3945,7 @@ static NTSTATUS find_window_class(ACTIVATION_CONTEXT* actctx, const UNICODE_STRI break; } else - WARN("hash collision 0x%08x, %wZ, %wZ\n", hash, name, &str); + WARN("hash collision 0x%08x, %s, %s\n", hash, debugstr_us(name), debugstr_w(g_nameW)); } iter++; } @@ -5762,7 +5877,9 @@ NTSTATUS WINAPI RtlFindActivationContextSectionString( ULONG flags, const GUID * PACTCTX_SECTION_KEYED_DATA data = ptr; NTSTATUS status = STATUS_SXS_KEY_NOT_FOUND; - DPRINT("RtlFindActivationContextSectionString(%x %p %x %wZ %p)\n", flags, guid, section_kind, section_name, ptr); + TRACE("%08x %s %u %s %p\n", flags, debugstr_guid(guid), section_kind, + debugstr_us(section_name), data); + #ifdef __REACTOS__ status = RtlpFindActivationContextSection_CheckParameters(flags, guid, section_kind, section_name, data); if (!NT_SUCCESS(status)) @@ -5832,6 +5949,8 @@ NTSTATUS WINAPI RtlFindActivationContextSectionGuid( ULONG flags, const GUID *ex ACTCTX_SECTION_KEYED_DATA *data = ptr; NTSTATUS status = STATUS_SXS_KEY_NOT_FOUND; + TRACE("%08x %s %u %s %p\n", flags, debugstr_guid(extguid), section_kind, debugstr_guid(guid), data); + if (extguid) { FIXME("expected extguid == NULL\n"); @@ -6072,6 +6191,9 @@ RtlpInitializeActCtx(PVOID* pOldShimData) WCHAR buffer[1024]; NTSTATUS Status; + /* Initialize trace flags to WARN and ERR */ + __wine_dbch_actctx.flags = 0x03; + actctx_init(); /* ReactOS specific:
1 month, 2 weeks
1
0
0
0
[reactos] 05/06: [RTL] Add minimal wine debug support functions
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d2753d6374b1ea3da10e3…
commit d2753d6374b1ea3da10e3be7253868e80398deef Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sun May 5 12:06:59 2024 +0300 Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org> CommitDate: Tue Nov 5 10:54:21 2024 +0200 [RTL] Add minimal wine debug support functions --- modules/rostests/apitests/rtl/testlist.c | 2 +- sdk/lib/rtl/CMakeLists.txt | 1 + sdk/lib/rtl/wine_debug.c | 187 +++++++++++++++++++++++++++++++ 3 files changed, 189 insertions(+), 1 deletion(-) diff --git a/modules/rostests/apitests/rtl/testlist.c b/modules/rostests/apitests/rtl/testlist.c index 62e2694add8..b0f113c7753 100644 --- a/modules/rostests/apitests/rtl/testlist.c +++ b/modules/rostests/apitests/rtl/testlist.c @@ -1,5 +1,5 @@ #define __ROS_LONG64__ - +#define wine_dbgstr_wn wine_dbgstr_wn_ #define STANDALONE #include <apitest.h> diff --git a/sdk/lib/rtl/CMakeLists.txt b/sdk/lib/rtl/CMakeLists.txt index a37e1ab9407..efe2c90a40b 100644 --- a/sdk/lib/rtl/CMakeLists.txt +++ b/sdk/lib/rtl/CMakeLists.txt @@ -23,6 +23,7 @@ endif() list(APPEND SOURCE ${RTL_WINE_SOURCE} + wine_debug.c access.c acl.c appverifier.c diff --git a/sdk/lib/rtl/wine_debug.c b/sdk/lib/rtl/wine_debug.c new file mode 100644 index 00000000000..43f65b69406 --- /dev/null +++ b/sdk/lib/rtl/wine_debug.c @@ -0,0 +1,187 @@ + +#define WIN32_NO_STATUS +#include <windef.h> +#include <ndk/rtlfuncs.h> +#include <wine/debug.h> + +NTSTATUS NTAPI vDbgPrintExWithPrefix(PCCH, ULONG, ULONG, PCCH, va_list); + +static struct +{ + HANDLE thread; + void* allocations; +} s_alloactions[32]; + +static int find_thread_slot() +{ + HANDLE thread = NtCurrentTeb()->ClientId.UniqueThread; + for (int i = 0; i < ARRAYSIZE(s_alloactions); i++) + { + if (s_alloactions[i].thread == thread) + { + return i; + } + } + return -1; +} + +static int get_thread_slot() +{ + int slot = find_thread_slot(); + if (slot != -1) + { + return slot; + } + + HANDLE thread = NtCurrentTeb()->ClientId.UniqueThread; + for (int i = 0; i < ARRAYSIZE(s_alloactions); i++) + { + if (s_alloactions[i].thread == NULL) + { + if (InterlockedCompareExchangePointer(&s_alloactions[i].thread, thread, NULL) == NULL) + { + return i; + } + } + } + + return -1; +} + +static char *alloc_buffer(size_t size) +{ + int slot = get_thread_slot(); + if (slot == -1) + { + return NULL; + } + + void** buffer = (void**)RtlAllocateHeap(RtlGetProcessHeap(), 0, size + sizeof(void*)); + if (buffer == NULL) + { + return NULL; + } + + *buffer = s_alloactions[slot].allocations; + s_alloactions[slot].allocations = buffer; + + return (char*)(buffer + 1); +} + +static void free_buffers(void) +{ + int slot = find_thread_slot(); + if (slot != -1) + { + return; + } + + void* buffer = s_alloactions[slot].allocations; + while (buffer != NULL) + { + void* next = *(void**)buffer; + RtlFreeHeap(RtlGetProcessHeap(), 0, buffer); + buffer = next; + } + + s_alloactions[slot].allocations = NULL; + s_alloactions[slot].thread = NULL; +} + +const char *wine_dbg_vsprintf(const char *format, va_list valist) +{ + char* buffer; + int len; + + len = vsnprintf(NULL, 0, format, valist); + buffer = alloc_buffer(len + 1); + if (buffer == NULL) + { + return "<allocation failed>"; + } + len = vsnprintf(buffer, len, format, valist); + buffer[len] = 0; + return buffer; +} + +/* printf with temp buffer allocation */ +const char *wine_dbg_sprintf( const char *format, ... ) +{ + const char *ret; + va_list valist; + + va_start(valist, format); + ret = wine_dbg_vsprintf( format, valist ); + va_end(valist); + return ret; +} + +const char *wine_dbgstr_wn( const WCHAR *str, int n ) +{ + if (!((ULONG_PTR)str >> 16)) + { + if (!str) return "(null)"; + return wine_dbg_sprintf("#%04x", LOWORD(str) ); + } + if (n == -1) + { + n = (int)wcslen(str); + } + if (n < 0) n = 0; + + return wine_dbg_sprintf("%.*S", n, str); +} + +/* From wine/dlls/ntdll/misc.c */ +LPCSTR debugstr_us( const UNICODE_STRING *us ) +{ + if (!us) return "<null>"; + return debugstr_wn(us->Buffer, us->Length / sizeof(WCHAR)); +} + +static int default_dbg_vprintf( const char *format, va_list args ) +{ + return vDbgPrintExWithPrefix("", -1, 0, format, args); +} + +int wine_dbg_printf(const char *format, ... ) +{ + int ret; + va_list valist; + + va_start(valist, format); + ret = default_dbg_vprintf(format, valist); + va_end(valist); + free_buffers(); + return ret; +} + +static int winefmt_default_dbg_vlog( enum __wine_debug_class cls, struct __wine_debug_channel *channel, + const char *file, const char *func, const int line, const char *format, va_list args ) +{ + int ret = 0; + + ret += wine_dbg_printf("%04x:", HandleToULong(NtCurrentTeb()->ClientId.UniqueProcess) ); + ret += wine_dbg_printf("%04x:", HandleToULong(NtCurrentTeb()->ClientId.UniqueThread) ); + + if (format) + ret += default_dbg_vprintf(format, args); + return ret; +} + +#define __wine_dbg_get_channel_flags(channel) \ + ((channel) ? (channel)->flags : 0) + +int ros_dbg_log( enum __wine_debug_class cls, struct __wine_debug_channel *channel, + const char *file, const char *func, const int line, const char *format, ... ) +{ + int ret; + va_list valist; + + if (!(__wine_dbg_get_channel_flags(channel) & (1 << cls))) return -1; + + va_start(valist, format); + ret = winefmt_default_dbg_vlog(cls, channel, file, func, line, format, valist); + va_end(valist); + return ret; +}
1 month, 2 weeks
1
0
0
0
[reactos] 04/06: [RTL] actctx.c: add an #ifdef __REACTOS__
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=626b06bb5a7f084ca3380…
commit 626b06bb5a7f084ca33804d0b32302a291c4b8d2 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sun May 5 09:46:43 2024 +0300 Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org> CommitDate: Tue Nov 5 10:54:21 2024 +0200 [RTL] actctx.c: add an #ifdef __REACTOS__ --- sdk/lib/rtl/actctx.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sdk/lib/rtl/actctx.c b/sdk/lib/rtl/actctx.c index a2d9080cb85..3a102f1c725 100644 --- a/sdk/lib/rtl/actctx.c +++ b/sdk/lib/rtl/actctx.c @@ -5763,6 +5763,7 @@ NTSTATUS WINAPI RtlFindActivationContextSectionString( ULONG flags, const GUID * NTSTATUS status = STATUS_SXS_KEY_NOT_FOUND; DPRINT("RtlFindActivationContextSectionString(%x %p %x %wZ %p)\n", flags, guid, section_kind, section_name, ptr); +#ifdef __REACTOS__ status = RtlpFindActivationContextSection_CheckParameters(flags, guid, section_kind, section_name, data); if (!NT_SUCCESS(status)) { @@ -5779,6 +5780,24 @@ NTSTATUS WINAPI RtlFindActivationContextSectionString( ULONG flags, const GUID * DPRINT("RtlFindActivationContextSectionString() failed with status %x\n", status); return status; } +#else + if (guid) + { + FIXME("expected guid == NULL\n"); + return STATUS_INVALID_PARAMETER; + } + if (flags & ~FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX) + { + FIXME("unknown flags %08x\n", flags); + return STATUS_INVALID_PARAMETER; + } + if ((data && data->cbSize < offsetof(ACTCTX_SECTION_KEYED_DATA, ulAssemblyRosterIndex)) || + !section_name || !section_name->Buffer) + { + WARN("invalid parameter\n"); + return STATUS_INVALID_PARAMETER; + } +#endif // __REACTOS__ ASSERT(NtCurrentTeb()); ASSERT(NtCurrentTeb()->ActivationContextStackPointer);
1 month, 2 weeks
1
0
0
0
[reactos] 03/06: [RTL] Move ReactOS specific actctx init code into it's own function
by Timo Kreuzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d58a040eb2756115f6dc0…
commit d58a040eb2756115f6dc02691a0e989d6318b746 Author: Timo Kreuzer <timo.kreuzer(a)reactos.org> AuthorDate: Sun May 5 12:28:39 2024 +0300 Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org> CommitDate: Tue Nov 5 10:54:21 2024 +0200 [RTL] Move ReactOS specific actctx init code into it's own function --- dll/ntdll/ldr/ldrinit.c | 4 ++-- sdk/lib/rtl/actctx.c | 63 +++++++++++++++++++++++++++++-------------------- 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/dll/ntdll/ldr/ldrinit.c b/dll/ntdll/ldr/ldrinit.c index 24730bb80da..991f498dba2 100644 --- a/dll/ntdll/ldr/ldrinit.c +++ b/dll/ntdll/ldr/ldrinit.c @@ -93,7 +93,7 @@ ULONG RtlpDisableHeapLookaside; // TODO: Move to heap.c ULONG RtlpShutdownProcessFlags; // TODO: Use it NTSTATUS LdrPerformRelocations(PIMAGE_NT_HEADERS NTHeaders, PVOID ImageBase); -void actctx_init(PVOID* pOldShimData); +NTSTATUS NTAPI RtlpInitializeActCtx(PVOID* pOldShimData); extern BOOLEAN RtlpUse16ByteSLists; #ifdef _WIN64 @@ -2265,7 +2265,7 @@ LdrpInitializeProcess(IN PCONTEXT Context, &LdrpNtDllDataTableEntry->InInitializationOrderLinks); /* Initialize Wine's active context implementation for the current process */ - actctx_init(&OldShimData); + RtlpInitializeActCtx(&OldShimData); /* Set the current directory */ Status = RtlSetCurrentDirectory_U(&CurrentDirectory); diff --git a/sdk/lib/rtl/actctx.c b/sdk/lib/rtl/actctx.c index 550110800aa..a2d9080cb85 100644 --- a/sdk/lib/rtl/actctx.c +++ b/sdk/lib/rtl/actctx.c @@ -5076,12 +5076,10 @@ static const WCHAR *find_app_settings( ACTIVATION_CONTEXT *actctx, const WCHAR * } /* initialize the activation context for the current process */ -void actctx_init(PVOID* pOldShimData) +void actctx_init(void) { ACTCTXW ctx; HANDLE handle; - WCHAR buffer[1024]; - NTSTATUS Status; ctx.cbSize = sizeof(ctx); ctx.lpSource = NULL; @@ -5094,28 +5092,6 @@ void actctx_init(PVOID* pOldShimData) process_actctx = check_actctx(handle); } - /* ReactOS specific: - Now that we have found the process_actctx we can initialize the process compat subsystem */ - LdrpInitializeProcessCompat(process_actctx, pOldShimData); - - - ctx.dwFlags = 0; - ctx.hModule = NULL; - ctx.lpResourceName = NULL; - ctx.lpSource = buffer; - RtlStringCchCopyW(buffer, RTL_NUMBER_OF(buffer), SharedUserData->NtSystemRoot); - RtlStringCchCatW(buffer, RTL_NUMBER_OF(buffer), L"\\winsxs\\manifests\\systemcompatible.manifest"); - - Status = RtlCreateActivationContext(0, (PVOID)&ctx, 0, NULL, NULL, &handle); - if (NT_SUCCESS(Status)) - { - implicit_actctx = check_actctx(handle); - } - else - { - DPRINT1("Failed to create the implicit act ctx. Status: 0x%x!!!\n", Status); - } - #ifdef __REACTOS__ NtCurrentTeb()->ProcessEnvironmentBlock->ActivationContextData = process_actctx->ActivationContextData; #else @@ -6067,4 +6043,41 @@ RtlDeactivateActivationContextUnsafeFast(IN PRTL_CALLER_ALLOCATED_ACTIVATION_CON Frame->Frame.Flags |= RTL_ACTIVATION_CONTEXT_STACK_FRAME_FLAG_DEACTIVATED; return NewFrame->Previous; } + +NTSTATUS +NTAPI +RtlpInitializeActCtx(PVOID* pOldShimData) +{ + ACTCTXW ctx; + HANDLE handle; + WCHAR buffer[1024]; + NTSTATUS Status; + + actctx_init(); + + /* ReactOS specific: + Now that we have found the process_actctx we can initialize the process compat subsystem */ + LdrpInitializeProcessCompat(process_actctx, pOldShimData); + + ctx.cbSize = sizeof(ctx); + ctx.dwFlags = 0; + ctx.hModule = NULL; + ctx.lpResourceName = NULL; + ctx.lpSource = buffer; + RtlStringCchCopyW(buffer, RTL_NUMBER_OF(buffer), SharedUserData->NtSystemRoot); + RtlStringCchCatW(buffer, RTL_NUMBER_OF(buffer), L"\\winsxs\\manifests\\systemcompatible.manifest"); + + Status = RtlCreateActivationContext(0, (PVOID)&ctx, 0, NULL, NULL, &handle); + if (NT_SUCCESS(Status)) + { + implicit_actctx = check_actctx(handle); + } + else + { + DPRINT1("Failed to create the implicit act ctx. Status: 0x%x!!!\n", Status); + } + + return Status; +} + #endif // __REACTOS__
1 month, 2 weeks
1
0
0
0
← Newer
1
2
3
4
5
6
7
8
9
10
11
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
Results per page:
10
25
50
100
200