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
July 2023
----- 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
26 participants
189 discussions
Start a n
N
ew thread
[reactos] 01/01: [IEFRAME] Sync translations with IDC_ICONS_INTERNET in shell32.dll
by Stanislav Motylkov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=00420aff1f143467e7a6b…
commit 00420aff1f143467e7a6b4aebb31e1f86ec0e537 Author: Stanislav Motylkov <x86corez(a)gmail.com> AuthorDate: Sat Jul 22 22:22:05 2023 +0300 Commit: Stanislav Motylkov <x86corez(a)gmail.com> CommitDate: Sat Jul 22 22:30:02 2023 +0300 [IEFRAME] Sync translations with IDC_ICONS_INTERNET in shell32.dll Also update Russian (ru-RU) translation. CORE-18625 --- dll/win32/ieframe/lang/fr-FR.rc | 2 +- dll/win32/ieframe/lang/hu-HU.rc | 2 +- dll/win32/ieframe/lang/ja-JP.rc | 2 +- dll/win32/ieframe/lang/pl-PL.rc | 2 +- dll/win32/ieframe/lang/pt-PT.rc | 2 +- dll/win32/ieframe/lang/ro-RO.rc | 2 +- dll/win32/ieframe/lang/ru-RU.rc | 4 ++-- dll/win32/ieframe/lang/tr-TR.rc | 2 +- dll/win32/ieframe/lang/zh-CN.rc | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dll/win32/ieframe/lang/fr-FR.rc b/dll/win32/ieframe/lang/fr-FR.rc index 6fd596aaacb..9f4852a3219 100644 --- a/dll/win32/ieframe/lang/fr-FR.rc +++ b/dll/win32/ieframe/lang/fr-FR.rc @@ -40,7 +40,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "Navigateur Internet" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "Précédent" diff --git a/dll/win32/ieframe/lang/hu-HU.rc b/dll/win32/ieframe/lang/hu-HU.rc index e7224c60927..5c440461b66 100644 --- a/dll/win32/ieframe/lang/hu-HU.rc +++ b/dll/win32/ieframe/lang/hu-HU.rc @@ -40,7 +40,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "Internet böngésző" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "Vissza" diff --git a/dll/win32/ieframe/lang/ja-JP.rc b/dll/win32/ieframe/lang/ja-JP.rc index 1501e00aa46..36e4eca66e4 100644 --- a/dll/win32/ieframe/lang/ja-JP.rc +++ b/dll/win32/ieframe/lang/ja-JP.rc @@ -40,7 +40,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "インターネット ブラウザ" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "戻る" diff --git a/dll/win32/ieframe/lang/pl-PL.rc b/dll/win32/ieframe/lang/pl-PL.rc index 6f9432f0ad8..16e089affe5 100644 --- a/dll/win32/ieframe/lang/pl-PL.rc +++ b/dll/win32/ieframe/lang/pl-PL.rc @@ -40,7 +40,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "Przeglądarka internetowa" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "Wstecz" diff --git a/dll/win32/ieframe/lang/pt-PT.rc b/dll/win32/ieframe/lang/pt-PT.rc index 33df448de07..5fd5b4bc168 100644 --- a/dll/win32/ieframe/lang/pt-PT.rc +++ b/dll/win32/ieframe/lang/pt-PT.rc @@ -40,7 +40,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "Navegador de Internet" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "Retroceder" diff --git a/dll/win32/ieframe/lang/ro-RO.rc b/dll/win32/ieframe/lang/ro-RO.rc index 6b12740d444..04296f436ab 100644 --- a/dll/win32/ieframe/lang/ro-RO.rc +++ b/dll/win32/ieframe/lang/ro-RO.rc @@ -42,7 +42,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "Navigatorul de internet" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "Înapoi" diff --git a/dll/win32/ieframe/lang/ru-RU.rc b/dll/win32/ieframe/lang/ru-RU.rc index 07f2e1c0b1e..e85d22710d4 100644 --- a/dll/win32/ieframe/lang/ru-RU.rc +++ b/dll/win32/ieframe/lang/ru-RU.rc @@ -42,8 +42,8 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" - IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_INTERNET "Интернет браузер" + IDS_INTERNET_DESCRIPTION "Открывает веб-браузер для поиска и отображения информации и веб-узлов в Интернете." IDS_TB_BACK "Назад" IDS_TB_FORWARD "Вперед" diff --git a/dll/win32/ieframe/lang/tr-TR.rc b/dll/win32/ieframe/lang/tr-TR.rc index d3e9544cc46..4b47427554f 100644 --- a/dll/win32/ieframe/lang/tr-TR.rc +++ b/dll/win32/ieframe/lang/tr-TR.rc @@ -42,7 +42,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "İnternet tarayıcısı" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "Geri" diff --git a/dll/win32/ieframe/lang/zh-CN.rc b/dll/win32/ieframe/lang/zh-CN.rc index 430d0648fec..9b4c1ec68ad 100644 --- a/dll/win32/ieframe/lang/zh-CN.rc +++ b/dll/win32/ieframe/lang/zh-CN.rc @@ -43,7 +43,7 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { - IDS_INTERNET "Internet Browser" + IDS_INTERNET "Internet浏览器" IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." IDS_TB_BACK "后退"
1 year, 5 months
1
0
0
0
[reactos] 01/01: [EXPLORER] Large taskbar icon support (#5465)
by Carl J. Bialorucki
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=0e8cf6ffd58cc7a46db8b…
commit 0e8cf6ffd58cc7a46db8bfe46cfb361aceb15153 Author: Carl J. Bialorucki <cbialo2(a)outlook.com> AuthorDate: Sat Jul 22 09:24:28 2023 -0600 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 18:24:28 2023 +0300 [EXPLORER] Large taskbar icon support (#5465) - Use HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarSmallIcons registry key to store the icon size setting for the taskbar. - If the registry value is missing, small icons will be used by default. - If the registry value is set to 1, it will also use small icons. - Only if the value exists and is set to 0 it will use large icons. This allows us to use the same registry value as Windows 7 explorer, while also keeping the taskbar icons small in most cases, especially running the shell on unmodified Windows Server 2003. CORE-11698 --- base/shell/explorer/precomp.h | 1 + base/shell/explorer/settings.cpp | 4 ++++ base/shell/explorer/taskswnd.cpp | 15 ++++++++++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/base/shell/explorer/precomp.h b/base/shell/explorer/precomp.h index 7f58465ad8e..91770090ef5 100644 --- a/base/shell/explorer/precomp.h +++ b/base/shell/explorer/precomp.h @@ -210,6 +210,7 @@ struct TaskbarSettings BOOL bShowSeconds; BOOL bPreferDate; BOOL bHideInactiveIcons; + BOOL bSmallIcons; TW_STRUCKRECTS2 sr; BOOL Load(); diff --git a/base/shell/explorer/settings.cpp b/base/shell/explorer/settings.cpp index 9e6051eb9d7..4c6b3dd2633 100644 --- a/base/shell/explorer/settings.cpp +++ b/base/shell/explorer/settings.cpp @@ -31,6 +31,7 @@ BOOL TaskbarSettings::Save() BOOL bAllowSizeMove = !bLock; SHSetValueW(hkExplorer, L"Advanced", L"TaskbarSizeMove", REG_DWORD, &bAllowSizeMove, sizeof(bAllowSizeMove)); sr.cbSize = sizeof(sr); + SHSetValueW(hkExplorer, L"Advanced", L"TaskbarSmallIcons", REG_DWORD, &bSmallIcons, sizeof(bSmallIcons)); SHSetValueW(hkExplorer, L"StuckRects2", L"Settings", REG_BINARY, &sr, sizeof(sr)); /* TODO: AutoHide writes something to HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\0 figure out what and why */ @@ -57,6 +58,9 @@ BOOL TaskbarSettings::Load() dwRet = SHGetValueW(hkExplorer, NULL, L"EnableAutotray", NULL, &dwValue, &cbSize); bHideInactiveIcons = (dwRet == ERROR_SUCCESS) ? (dwValue != 0) : FALSE; + dwRet = SHGetValueW(hkExplorer, L"Advanced", L"TaskbarSmallIcons", NULL, &dwValue, &cbSize); + bSmallIcons = (dwRet == ERROR_SUCCESS) ? (dwValue != 0) : TRUE; + cbSize = sizeof(sr); dwRet = SHGetValueW(hkExplorer, L"StuckRects2", L"Settings", NULL, &sr, &cbSize); diff --git a/base/shell/explorer/taskswnd.cpp b/base/shell/explorer/taskswnd.cpp index 5437f4701f0..e58c99bc6df 100644 --- a/base/shell/explorer/taskswnd.cpp +++ b/base/shell/explorer/taskswnd.cpp @@ -494,7 +494,7 @@ public: #define GET_ICON(type) \ SendMessageTimeout(hwnd, WM_GETICON, (type), 0, SMTO_NOTIMEOUTIFNOTHUNG, 100, (PDWORD_PTR)&hIcon) - LRESULT bAlive = GET_ICON(ICON_SMALL2); + LRESULT bAlive = GET_ICON(g_TaskbarSettings.bSmallIcons ? ICON_SMALL2 : ICON_BIG); if (hIcon) return hIcon; @@ -507,7 +507,7 @@ public: if (bAlive) { - GET_ICON(ICON_BIG); + GET_ICON(g_TaskbarSettings.bSmallIcons ? ICON_BIG : ICON_SMALL2); if (hIcon) return hIcon; } @@ -1262,9 +1262,12 @@ public: /* Update the size of the image list if needed */ int cx, cy; ImageList_GetIconSize(m_ImageList, &cx, &cy); - if (cx != GetSystemMetrics(SM_CXSMICON) || cy != GetSystemMetrics(SM_CYSMICON)) + if (cx != GetSystemMetrics(g_TaskbarSettings.bSmallIcons ? SM_CXSMICON : SM_CXICON) || + cy != GetSystemMetrics(g_TaskbarSettings.bSmallIcons ? SM_CYSMICON : SM_CYICON)) { - ImageList_SetIconSize(m_ImageList, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON)); + ImageList_SetIconSize(m_ImageList, + GetSystemMetrics(g_TaskbarSettings.bSmallIcons ? SM_CXSMICON : SM_CXICON), + GetSystemMetrics(g_TaskbarSettings.bSmallIcons ? SM_CYSMICON : SM_CYICON)); /* SetIconSize removes all icons so we have to reinsert them */ PTASK_ITEM TaskItem = m_TaskItems; @@ -1430,7 +1433,9 @@ public: SetWindowTheme(m_TaskBar.m_hWnd, L"TaskBand", NULL); - m_ImageList = ImageList_Create(GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), ILC_COLOR32 | ILC_MASK, 0, 1000); + m_ImageList = ImageList_Create(GetSystemMetrics(g_TaskbarSettings.bSmallIcons ? SM_CXSMICON : SM_CXICON), + GetSystemMetrics(g_TaskbarSettings.bSmallIcons ? SM_CYSMICON : SM_CYICON), + ILC_COLOR32 | ILC_MASK, 0, 1000); m_TaskBar.SetImageList(m_ImageList); /* Set proper spacing between buttons */
1 year, 5 months
1
0
0
0
[reactos] 01/01: [BROWSEUI] Add an option to use full folder path in the window title (#5468)
by Carl J. Bialorucki
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6d37456542a71f64b58ab…
commit 6d37456542a71f64b58ab5a16833aa9e048fcb1b Author: Carl J. Bialorucki <cbialo2(a)outlook.com> AuthorDate: Sat Jul 22 08:50:39 2023 -0600 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 17:50:39 2023 +0300 [BROWSEUI] Add an option to use full folder path in the window title (#5468) - Set `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState\FullPath` to 0 by default. Adding this registry value also enables the "Display the full path in the title bar" option in our folder options window. - Query the same registry key when the file explorer is started to determine whether to use the full path or the display name in the window title. CORE-19046 CORE-18904 --- boot/bootdata/hivedef.inf | 2 ++ dll/win32/browseui/shellbrowser.cpp | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/boot/bootdata/hivedef.inf b/boot/bootdata/hivedef.inf index 2b7a2c53c47..6394246fad9 100644 --- a/boot/bootdata/hivedef.inf +++ b/boot/bootdata/hivedef.inf @@ -1899,6 +1899,8 @@ HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","StartMenuLog ; "Hidden" to be changed to 2 if we later want to have "Hide hidden files by default" HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","Hidden",0x00010003,1 HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowSuperHidden",0x00010003,0 +HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState",,0x00000012 +HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CabinetState","FullPath",0x00010003,0 HKCU,"SOFTWARE\Microsoft\Internet Explorer\Main","StatusBarOther",0x00010003,1 ; ComDlg32 diff --git a/dll/win32/browseui/shellbrowser.cpp b/dll/win32/browseui/shellbrowser.cpp index 71068d22ef4..fb4c1ccc59b 100644 --- a/dll/win32/browseui/shellbrowser.cpp +++ b/dll/win32/browseui/shellbrowser.cpp @@ -350,6 +350,7 @@ public: HRESULT UpdateUpState(); void UpdateGotoMenu(HMENU theMenu); void UpdateViewMenu(HMENU theMenu); + void LoadSettings(); /* // *** IDockingWindowFrame methods *** virtual HRESULT STDMETHODCALLTYPE AddToolbar(IUnknown *punkSrc, LPCWSTR pwszItem, DWORD dwAddFlags); @@ -709,10 +710,6 @@ CShellBrowser::CShellBrowser() fCurrentShellViewWindow = NULL; fCurrentDirectoryPIDL = NULL; fStatusBar = NULL; - fStatusBarVisible = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", - L"StatusBarOther", - FALSE, - FALSE); fCurrentMenuBar = NULL; fHistoryObject = NULL; fHistoryStream = NULL; @@ -786,6 +783,7 @@ HRESULT CShellBrowser::Initialize() fToolbarProxy.Initialize(m_hWnd, clientBar); + LoadSettings(); // create status bar DWORD dwStatusStyle = WS_CHILD | WS_CLIPSIBLINGS | SBARS_SIZEGRIP | SBARS_TOOLTIPS; @@ -1510,6 +1508,19 @@ void CShellBrowser::RepositionBars() clientRect.bottom - clientRect.top, SWP_NOOWNERZORDER | SWP_NOZORDER); } +void CShellBrowser::LoadSettings() +{ + fStatusBarVisible = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main", + L"StatusBarOther", + FALSE, + FALSE); + + fCabinetState.fFullPathTitle = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\CabinetState", + L"FullPath", + FALSE, + FALSE); +} + HRESULT CShellBrowser::FireEvent(DISPID dispIdMember, int argCount, VARIANT *arguments) { DISPPARAMS params;
1 year, 5 months
1
0
0
0
[reactos] 01/01: [APPWIZ] Add locking in access of download_binding (#5463)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f85b8fb564d98e77bc8e6…
commit f85b8fb564d98e77bc8e6eb5b7dc7aa1acb51603 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sat Jul 22 22:18:31 2023 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 22:18:31 2023 +0900 [APPWIZ] Add locking in access of download_binding (#5463) The pointer variable download_binding is used in multiple threads. I thought it needs locking before accessing. CORE-15786 --- dll/cpl/appwiz/addons.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dll/cpl/appwiz/addons.c b/dll/cpl/appwiz/addons.c index ae51aa4849a..5a3c11e9add 100644 --- a/dll/cpl/appwiz/addons.c +++ b/dll/cpl/appwiz/addons.c @@ -59,6 +59,7 @@ static const addon_info_t addons_info[] = { static const addon_info_t *addon; static HWND install_dialog = NULL; +static CRITICAL_SECTION csLock; static IBinding *download_binding = NULL; static WCHAR GeckoUrl[] = L"
https://svn.reactos.org/amine/wine_gecko-2.40-x86.msi
"; @@ -260,8 +261,12 @@ static HRESULT WINAPI InstallCallback_OnStartBinding(IBindStatusCallback *iface, DWORD dwReserved, IBinding *pib) { set_status(IDS_DOWNLOADING); + IBinding_AddRef(pib); + + EnterCriticalSection(&csLock); download_binding = pib; + LeaveCriticalSection(&csLock); return S_OK; } @@ -294,10 +299,12 @@ static HRESULT WINAPI InstallCallback_OnProgress(IBindStatusCallback *iface, ULO static HRESULT WINAPI InstallCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError) { + EnterCriticalSection(&csLock); if(download_binding) { IBinding_Release(download_binding); download_binding = NULL; } + LeaveCriticalSection(&csLock); if(FAILED(hresult)) { if(hresult == E_ABORT) @@ -401,12 +408,14 @@ static INT_PTR CALLBACK installer_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARA case WM_COMMAND: switch(wParam) { case IDCANCEL: + EnterCriticalSection(&csLock); if(download_binding) { IBinding_Abort(download_binding); } else { EndDialog(hwnd, 0); } + LeaveCriticalSection(&csLock); return FALSE; case ID_DWL_INSTALL: @@ -436,6 +445,8 @@ BOOL install_addon(addon_t addon_type, HWND hwnd_parent) addon = addons_info + addon_type; + InitializeCriticalSection(&csLock); + /* * Try to find addon .msi file in following order: * - directory stored in $dir_config_key value of HKCU/Wine/Software/$config_key key @@ -444,5 +455,7 @@ BOOL install_addon(addon_t addon_type, HWND hwnd_parent) if (install_from_registered_dir() == INSTALL_NEXT) DialogBoxW(hApplet, addon->dialog_template, hwnd_parent, installer_proc); + DeleteCriticalSection(&csLock); + return TRUE; }
1 year, 5 months
1
0
0
0
[reactos] 01/01: [IEXPLORE][IEFRAME][SHELL32] Add Internet icon on Desktop (#5451)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=52bc5f7c5df5eaf48b22f…
commit 52bc5f7c5df5eaf48b22f6089f7415bc8857543d Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sat Jul 22 19:28:37 2023 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 19:28:37 2023 +0900 [IEXPLORE][IEFRAME][SHELL32] Add Internet icon on Desktop (#5451) - Add Internet icon on Desktop. You can hide/show the icon from Desktop's customization. - Modify "HKCR\CLSID\%CLSID_Internet%" registry key. - Add IDS_INTERNET and IDS_INTERNET_DESCRITION into ieframe.dll. - Modify folders/CDesktopFolder.cpp and folders/CRegFolder.cpp to add the icon. CORE-18625 Co-authored-by: Stanislav Motylkov <x86corez(a)gmail.com> Co-authored-by: Joachim Henze <joachim.henze(a)reactos.org> --- base/applications/iexplore/CMakeLists.txt | 4 +++- base/applications/iexplore/iexplore.inf | 14 ++++++++++---- dll/win32/ieframe/CMakeLists.txt | 2 ++ dll/win32/ieframe/ieframe_v1.rgs | 14 +++++++++++++- dll/win32/ieframe/lang/cs-CZ.rc | 3 +++ dll/win32/ieframe/lang/de-DE.rc | 3 +++ dll/win32/ieframe/lang/en-US.rc | 3 +++ dll/win32/ieframe/lang/es-ES.rc | 3 +++ dll/win32/ieframe/lang/fr-FR.rc | 3 +++ dll/win32/ieframe/lang/hu-HU.rc | 3 +++ dll/win32/ieframe/lang/id-ID.rc | 3 +++ dll/win32/ieframe/lang/it-IT.rc | 3 +++ dll/win32/ieframe/lang/ja-JP.rc | 3 +++ dll/win32/ieframe/lang/pl-PL.rc | 3 +++ dll/win32/ieframe/lang/pt-PT.rc | 3 +++ dll/win32/ieframe/lang/ro-RO.rc | 3 +++ dll/win32/ieframe/lang/ru-RU.rc | 3 +++ dll/win32/ieframe/lang/tr-TR.rc | 3 +++ dll/win32/ieframe/lang/zh-CN.rc | 3 +++ dll/win32/ieframe/lang/zh-TW.rc | 3 +++ dll/win32/ieframe/resource.h | 3 +++ dll/win32/shell32/folders/CDesktopFolder.cpp | 3 +++ dll/win32/shell32/folders/CRegFolder.cpp | 3 +++ 23 files changed, 85 insertions(+), 6 deletions(-) diff --git a/base/applications/iexplore/CMakeLists.txt b/base/applications/iexplore/CMakeLists.txt index b25b1d9b48d..9a17e61c6c4 100644 --- a/base/applications/iexplore/CMakeLists.txt +++ b/base/applications/iexplore/CMakeLists.txt @@ -1,5 +1,7 @@ -add_rc_deps(iexplore.rc ${CMAKE_CURRENT_SOURCE_DIR}/iexplore.ico) +add_rc_deps(iexplore.rc + ${CMAKE_CURRENT_SOURCE_DIR}/iexplore.ico + ${CMAKE_CURRENT_SOURCE_DIR}/iexplore.inf) add_executable(iexplore main.c iexplore.rc) target_link_libraries(iexplore wine) set_module_type(iexplore win32gui UNICODE) diff --git a/base/applications/iexplore/iexplore.inf b/base/applications/iexplore/iexplore.inf index e88cead039d..ee7d404e792 100644 --- a/base/applications/iexplore/iexplore.inf +++ b/base/applications/iexplore/iexplore.inf @@ -16,10 +16,16 @@ HKCR,"CLSID\%CLSID_InternetExplorer%\LocalServer32",,,"""%16422%\Internet Explor HKCR,"CLSID\%CLSID_InternetExplorer%\ProgID",,,"InternetExplorer.Application.1" HKCR,"CLSID\%CLSID_InternetExplorer%\VersionIndependentProgID",,,"InternetExplorer.Application" -HKCR,"CLSID\%CLSID_Internet%\DefaultIcon",,,"shdoclc.dll,-190" -HKCR,"CLSID\%CLSID_Internet%\Shell",,,"OpenHomePage" -HKCR,"CLSID\%CLSID_Internet%\Shell\OpenHomePage",,,"Open &Home Page" -HKCR,"CLSID\%CLSID_Internet%\Shell\OpenHomePage\Command",,,"""%16422%\Internet Explorer\iexplore.exe""" +; FIXME: Implement CLSID_Internet in ieframe.dll (see CORE-18625) +;
https://git.reactos.org/?p=reactos.git;a=blob;f=modules/rostests/apitests/c…
+HKCR,"CLSID\%CLSID_Internet%",,,"Internet Browser" +HKCR,"CLSID\%CLSID_Internet%","InfoTip",0x00020000,"@%SystemRoot%\system32\ieframe.dll,-881" +HKCR,"CLSID\%CLSID_Internet%","LocalizedString",0x00020000,"@%SystemRoot%\system32\ieframe.dll,-880" +HKCR,"CLSID\%CLSID_Internet%\DefaultIcon",,0x00020000,"%SystemRoot%\system32\shell32.dll,-512" +; FIXME: should be "OpenHomePage" action +HKCR,"CLSID\%CLSID_Internet%\Shell",,,"open" +HKCR,"CLSID\%CLSID_Internet%\Shell\open",,,"" +HKCR,"CLSID\%CLSID_Internet%\Shell\open\Command",,,"rundll32.exe url,OpenURL
https://google.com
" HKCR,"CLSID\%CLSID_Internet%\ShellFolder",,2,"0x24" HKCR,"CLSID\%CLSID_InternetExplorerManager%\LocalServer32",,,"""%16422%\Internet Explorer\iexplore.exe"" -startmanager" diff --git a/dll/win32/ieframe/CMakeLists.txt b/dll/win32/ieframe/CMakeLists.txt index cdd58efb6e7..830a3f5b9c3 100644 --- a/dll/win32/ieframe/CMakeLists.txt +++ b/dll/win32/ieframe/CMakeLists.txt @@ -35,6 +35,8 @@ add_typelib(ieframe_v1.idl) list(APPEND ieframe_rc_deps ${CMAKE_CURRENT_SOURCE_DIR}/ieframe.rgs ${CMAKE_CURRENT_SOURCE_DIR}/ieframe_v1.rgs + ${CMAKE_CURRENT_SOURCE_DIR}/resources/ietoolbar.bmp + ${CMAKE_CURRENT_SOURCE_DIR}/resources/pages.ico ${CMAKE_CURRENT_BINARY_DIR}/ieframe_v1.tlb) set_source_files_properties(ieframe.rc PROPERTIES OBJECT_DEPENDS "${ieframe_rc_deps}") diff --git a/dll/win32/ieframe/ieframe_v1.rgs b/dll/win32/ieframe/ieframe_v1.rgs index 8e124912c56..388f1fe0427 100644 --- a/dll/win32/ieframe/ieframe_v1.rgs +++ b/dll/win32/ieframe/ieframe_v1.rgs @@ -5,9 +5,21 @@ HKCR } NoRemove CLSID { - '{871C5380-42A0-1069-A2EA-08002B30309D}' = s 'Internet' + '{871C5380-42A0-1069-A2EA-08002B30309D}' = s 'Internet Browser' { InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } + Shellex = s '' + { + ContextMenuHandlers = s '' + { + ieframe = s '{871C5380-42A0-1069-A2EA-08002B30309D}' + { + } + } + MayChangeDefaultMenu = s '' + { + } + } } '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}' = s 'Microsoft Url History Service' { diff --git a/dll/win32/ieframe/lang/cs-CZ.rc b/dll/win32/ieframe/lang/cs-CZ.rc index 30b5ee547af..c46500c0423 100644 --- a/dll/win32/ieframe/lang/cs-CZ.rc +++ b/dll/win32/ieframe/lang/cs-CZ.rc @@ -45,6 +45,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Zpět" IDS_TB_FORWARD "Vpřed" IDS_TB_STOP "Stop" diff --git a/dll/win32/ieframe/lang/de-DE.rc b/dll/win32/ieframe/lang/de-DE.rc index 823aad7de9e..bda8f635b2d 100644 --- a/dll/win32/ieframe/lang/de-DE.rc +++ b/dll/win32/ieframe/lang/de-DE.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Zurück" IDS_TB_FORWARD "Vorwärts" IDS_TB_STOP "Stop" diff --git a/dll/win32/ieframe/lang/en-US.rc b/dll/win32/ieframe/lang/en-US.rc index 088458dc344..7df6eda4745 100644 --- a/dll/win32/ieframe/lang/en-US.rc +++ b/dll/win32/ieframe/lang/en-US.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Back" IDS_TB_FORWARD "Forward" IDS_TB_STOP "Stop" diff --git a/dll/win32/ieframe/lang/es-ES.rc b/dll/win32/ieframe/lang/es-ES.rc index 66c8ea67e5d..dd7ff32ce4f 100644 --- a/dll/win32/ieframe/lang/es-ES.rc +++ b/dll/win32/ieframe/lang/es-ES.rc @@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Atrás" IDS_TB_FORWARD "Adelante" IDS_TB_STOP "Detener" diff --git a/dll/win32/ieframe/lang/fr-FR.rc b/dll/win32/ieframe/lang/fr-FR.rc index 42465f831e6..6fd596aaacb 100644 --- a/dll/win32/ieframe/lang/fr-FR.rc +++ b/dll/win32/ieframe/lang/fr-FR.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Précédent" IDS_TB_FORWARD "Suivant" IDS_TB_STOP "Arrêter" diff --git a/dll/win32/ieframe/lang/hu-HU.rc b/dll/win32/ieframe/lang/hu-HU.rc index 000857b8428..e7224c60927 100644 --- a/dll/win32/ieframe/lang/hu-HU.rc +++ b/dll/win32/ieframe/lang/hu-HU.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Vissza" IDS_TB_FORWARD "Előre" IDS_TB_STOP "Leállítás" diff --git a/dll/win32/ieframe/lang/id-ID.rc b/dll/win32/ieframe/lang/id-ID.rc index 6eb1d09f9c7..3806fae54e6 100644 --- a/dll/win32/ieframe/lang/id-ID.rc +++ b/dll/win32/ieframe/lang/id-ID.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Kembali" IDS_TB_FORWARD "Maju" IDS_TB_STOP "Berhenti" diff --git a/dll/win32/ieframe/lang/it-IT.rc b/dll/win32/ieframe/lang/it-IT.rc index 97da1705e02..4d53a09ad1e 100644 --- a/dll/win32/ieframe/lang/it-IT.rc +++ b/dll/win32/ieframe/lang/it-IT.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Indietro" IDS_TB_FORWARD "Avanti" IDS_TB_STOP "Interrompi" diff --git a/dll/win32/ieframe/lang/ja-JP.rc b/dll/win32/ieframe/lang/ja-JP.rc index a9cc0035a7a..1501e00aa46 100644 --- a/dll/win32/ieframe/lang/ja-JP.rc +++ b/dll/win32/ieframe/lang/ja-JP.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "戻る" IDS_TB_FORWARD "進む" IDS_TB_STOP "停止" diff --git a/dll/win32/ieframe/lang/pl-PL.rc b/dll/win32/ieframe/lang/pl-PL.rc index d94e2de120f..6f9432f0ad8 100644 --- a/dll/win32/ieframe/lang/pl-PL.rc +++ b/dll/win32/ieframe/lang/pl-PL.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Wstecz" IDS_TB_FORWARD "Dalej" IDS_TB_STOP "Zatrzymaj" diff --git a/dll/win32/ieframe/lang/pt-PT.rc b/dll/win32/ieframe/lang/pt-PT.rc index 65c7e3de8b5..33df448de07 100644 --- a/dll/win32/ieframe/lang/pt-PT.rc +++ b/dll/win32/ieframe/lang/pt-PT.rc @@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Retroceder" IDS_TB_FORWARD "Avançar" IDS_TB_STOP "Parar" diff --git a/dll/win32/ieframe/lang/ro-RO.rc b/dll/win32/ieframe/lang/ro-RO.rc index 14e3cc83c00..6b12740d444 100644 --- a/dll/win32/ieframe/lang/ro-RO.rc +++ b/dll/win32/ieframe/lang/ro-RO.rc @@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Înapoi" IDS_TB_FORWARD "Înainte" IDS_TB_STOP "Oprește" diff --git a/dll/win32/ieframe/lang/ru-RU.rc b/dll/win32/ieframe/lang/ru-RU.rc index 26c297792d6..07f2e1c0b1e 100644 --- a/dll/win32/ieframe/lang/ru-RU.rc +++ b/dll/win32/ieframe/lang/ru-RU.rc @@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Назад" IDS_TB_FORWARD "Вперед" IDS_TB_STOP "Остановить" diff --git a/dll/win32/ieframe/lang/tr-TR.rc b/dll/win32/ieframe/lang/tr-TR.rc index 1dfc7aeaca1..d3e9544cc46 100644 --- a/dll/win32/ieframe/lang/tr-TR.rc +++ b/dll/win32/ieframe/lang/tr-TR.rc @@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "Geri" IDS_TB_FORWARD "İleri" IDS_TB_STOP "Dur" diff --git a/dll/win32/ieframe/lang/zh-CN.rc b/dll/win32/ieframe/lang/zh-CN.rc index 516a436231c..430d0648fec 100644 --- a/dll/win32/ieframe/lang/zh-CN.rc +++ b/dll/win32/ieframe/lang/zh-CN.rc @@ -43,6 +43,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "后退" IDS_TB_FORWARD "前进" IDS_TB_STOP "停止" diff --git a/dll/win32/ieframe/lang/zh-TW.rc b/dll/win32/ieframe/lang/zh-TW.rc index 904ce82b982..732aee20447 100644 --- a/dll/win32/ieframe/lang/zh-TW.rc +++ b/dll/win32/ieframe/lang/zh-TW.rc @@ -49,6 +49,9 @@ IDR_BROWSE_MAIN_MENU MENU STRINGTABLE { + IDS_INTERNET "Internet Browser" + IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet." + IDS_TB_BACK "上一頁" IDS_TB_FORWARD "下一頁" IDS_TB_STOP "停止" diff --git a/dll/win32/ieframe/resource.h b/dll/win32/ieframe/resource.h index 00c79beee72..1e51753f864 100644 --- a/dll/win32/ieframe/resource.h +++ b/dll/win32/ieframe/resource.h @@ -55,6 +55,9 @@ #define ID_BROWSE_GOTOFAV_FIRST 2000 #define ID_BROWSE_GOTOFAV_MAX 65000 +#define IDS_INTERNET 880 +#define IDS_INTERNET_DESCRIPTION 881 + #define IDS_TB_BACK 1100 #define IDS_TB_FORWARD 1101 #define IDS_TB_STOP 1102 diff --git a/dll/win32/shell32/folders/CDesktopFolder.cpp b/dll/win32/shell32/folders/CDesktopFolder.cpp index 8aa1e089fff..d1fafa88b5c 100644 --- a/dll/win32/shell32/folders/CDesktopFolder.cpp +++ b/dll/win32/shell32/folders/CDesktopFolder.cpp @@ -129,6 +129,7 @@ class CDesktopFolderEnum : LPITEMIDLIST pidl; static const WCHAR MyDocumentsClassString[] = L"{450D8FBA-AD25-11D0-98A8-0800361B1103}"; + static const WCHAR InternetClassString[] = L"{871C5380-42A0-1069-A2EA-08002B30309D}"; TRACE("(%p)->(flags=0x%08x)\n", this, dwFlags); @@ -138,6 +139,8 @@ class CDesktopFolderEnum : AddToEnumList(_ILCreateMyComputer()); if (IsNamespaceExtensionHidden(MyDocumentsClassString) < 1) AddToEnumList(_ILCreateMyDocuments()); + if (IsNamespaceExtensionHidden(InternetClassString) < 1) + AddToEnumList(_ILCreateIExplore()); DWORD dwFetched; while((S_OK == pRegEnumerator->Next(1, &pidl, &dwFetched)) && dwFetched) diff --git a/dll/win32/shell32/folders/CRegFolder.cpp b/dll/win32/shell32/folders/CRegFolder.cpp index eea529de235..16b0b7325e2 100644 --- a/dll/win32/shell32/folders/CRegFolder.cpp +++ b/dll/win32/shell32/folders/CRegFolder.cpp @@ -185,12 +185,15 @@ HRESULT CGuidItemExtractIcon_CreateInstance(LPCITEMIDLIST pidl, REFIID iid, LPVO } else { + // FIXME: Delete these hacks and make HCR_GetIconW and registry working if (IsEqualGUID(*riid, CLSID_MyComputer)) initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_COMPUTER); else if (IsEqualGUID(*riid, CLSID_MyDocuments)) initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_DOCUMENTS); else if (IsEqualGUID(*riid, CLSID_NetworkPlaces)) initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_NETWORK_PLACES); + else if (IsEqualGUID(*riid, CLSID_Internet)) + initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_WEB_BROWSER); else initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_FOLDER); }
1 year, 5 months
1
0
0
0
[reactos] 01/01: [SHELL32] Fix condition check for GetDisplayNameOf() return value (#5444)
by Doug Lyons
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d02cb099c8f568497e075…
commit d02cb099c8f568497e075eda094a334bf1c3a532 Author: Doug Lyons <douglyons(a)douglyons.com> AuthorDate: Sat Jul 22 05:24:25 2023 -0500 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 13:24:25 2023 +0300 [SHELL32] Fix condition check for GetDisplayNameOf() return value (#5444) This fixes 'Attempt to free an invalid HEAP address' error. CORE-18841 Confirmed by running new tests written by Mark Jansen, showing that previous behavior was wrong. While here, also fix a typographical error. --- dll/win32/shell32/droptargets/CFSDropTarget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dll/win32/shell32/droptargets/CFSDropTarget.cpp b/dll/win32/shell32/droptargets/CFSDropTarget.cpp index 19438fa51dd..7dff8fb3885 100644 --- a/dll/win32/shell32/droptargets/CFSDropTarget.cpp +++ b/dll/win32/shell32/droptargets/CFSDropTarget.cpp @@ -74,7 +74,7 @@ HRESULT CFSDropTarget::_CopyItems(IShellFolder * pSFFrom, UINT cidl, STRRET strretFrom; hr = pSFFrom->GetDisplayNameOf(NULL, SHGDN_FORPARSING, &strretFrom); - if (FAILED_UNEXPECTEDLY(hr)) + if (hr != S_OK) return hr; pszSrcList = BuildPathsList(strretFrom.pOleStr, cidl, apidl);
1 year, 5 months
1
0
0
0
[reactos] 01/01: [ZIPFLDR][BOOTDATA] Support UTF-8 Zip packing (#5450)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=104ef25fcc8c9859e327e…
commit 104ef25fcc8c9859e327e17149d2f7fe8bac1dfe Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sat Jul 22 12:57:32 2023 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 12:57:32 2023 +0900 [ZIPFLDR][BOOTDATA] Support UTF-8 Zip packing (#5450) New ReactOS can zip/unzip files and folders in UTF-8 filenames. You can also choose the codepage of filenames to zip/unzip via the ZipCodePage / UnZipCodePage registry values on the registry key HKEY_CURRENT_USER\Software\ReactOS. Windows 8 or later also support UTF-8 zipped folders. You can also use 3rd party software to zip/unzip in older Windows. - Use <atlconv.h> for string conversion. - Use zipOpenNewFileInZip4_64 instead of zipOpenNewFileInZip3_64, and then add MINIZIP_UTF8_FLAG flag. - Set the filenames in UTF-8 by using CP_UTF8 codepage. - Codepage is user selectable via registry settings. CORE-16668 --- boot/bootdata/hivedef.inf | 4 ++++ dll/shellext/zipfldr/CZipCreator.cpp | 20 ++++++++------------ dll/shellext/zipfldr/CZipEnumerator.hpp | 8 +++++--- dll/shellext/zipfldr/precomp.h | 7 +++---- dll/shellext/zipfldr/zipfldr.cpp | 29 ++++++++++++++++++++++------- 5 files changed, 42 insertions(+), 26 deletions(-) diff --git a/boot/bootdata/hivedef.inf b/boot/bootdata/hivedef.inf index 484c4cbbb7b..2b7a2c53c47 100644 --- a/boot/bootdata/hivedef.inf +++ b/boot/bootdata/hivedef.inf @@ -1978,6 +1978,10 @@ HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP", HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","SPMajorVersion",0x00010001,0x00000001 HKCU,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\WINXP","SPMinorVersion",0x00010001,0x00000000 +; Zip/UnZip codepages +HKCU,"SOFTWARE\ReactOS","ZipCodePage",0x00000000,"65001" ; CP_UTF8 +HKCU,"SOFTWARE\ReactOS","UnZipCodePage",0x00000000,"0" ; CP_ACP + ; DEBUG: Windows Messages SPY configuration HKCU,"SOFTWARE\ReactOS\Debug","SpyInclude",0x00020000,"INCLUDEALL" ;HKCU,"SOFTWARE\ReactOS\Debug","SpyExclude",0x00020000,"" diff --git a/dll/shellext/zipfldr/CZipCreator.cpp b/dll/shellext/zipfldr/CZipCreator.cpp index 00f44932b42..fdae3f3cf59 100644 --- a/dll/shellext/zipfldr/CZipCreator.cpp +++ b/dll/shellext/zipfldr/CZipCreator.cpp @@ -3,7 +3,7 @@ * LICENSE: GPL-2.0+ (
https://spdx.org/licenses/GPL-2.0+
) * PURPOSE: Create a zip file * COPYRIGHT: Copyright 2019 Mark Jansen (mark.jansen(a)reactos.org) - * Copyright 2019 Katayama Hirofumi MZ (katayama.hirofumi.mz(a)gmail.com) + * Copyright 2019-2023 Katayama Hirofumi MZ (katayama.hirofumi.mz(a)gmail.com) */ #include "precomp.h" @@ -34,13 +34,6 @@ static CStringW DoGetZipName(PCWSTR filename) return ret; } -static CStringA DoGetAnsiName(PCWSTR filename) -{ - CHAR buf[MAX_PATH]; - WideCharToMultiByte(CP_ACP, 0, filename, -1, buf, _countof(buf), NULL, NULL); - return buf; -} - static CStringW DoGetBaseName(PCWSTR filename) { WCHAR szBaseName[MAX_PATH]; @@ -51,7 +44,7 @@ static CStringW DoGetBaseName(PCWSTR filename) } static CStringA -DoGetNameInZip(const CStringW& basename, const CStringW& filename) +DoGetNameInZip(const CStringW& basename, const CStringW& filename, UINT nCodePage) { CStringW basenameI = basename, filenameI = filename; basenameI.MakeUpper(); @@ -65,7 +58,7 @@ DoGetNameInZip(const CStringW& basename, const CStringW& filename) ret.Replace(L'\\', L'/'); - return DoGetAnsiName(ret); + return CStringA(CW2AEX<MAX_PATH>(ret, nCodePage)); } static BOOL @@ -279,6 +272,7 @@ unsigned CZipCreatorImpl::JustDoIt() int err = 0; CStringW strTarget, strBaseName = DoGetBaseName(m_items[0]); + UINT nCodePage = GetZipCodePage(FALSE); for (INT iFile = 0; iFile < files.GetSize(); ++iFile) { const CStringW& strFile = files[iFile]; @@ -298,8 +292,8 @@ unsigned CZipCreatorImpl::JustDoIt() // TODO: crc = ...; } - CStringA strNameInZip = DoGetNameInZip(strBaseName, strFile); - err = zipOpenNewFileInZip3_64(zf, + CStringA strNameInZip = DoGetNameInZip(strBaseName, strFile, nCodePage); + err = zipOpenNewFileInZip4_64(zf, strNameInZip, &zi, NULL, @@ -315,6 +309,8 @@ unsigned CZipCreatorImpl::JustDoIt() Z_DEFAULT_STRATEGY, password, crc, + MINIZIP_COMPATIBLE_VERSION, + (nCodePage == CP_UTF8 ? MINIZIP_UTF8_FLAG : 0), zip64); if (err) { diff --git a/dll/shellext/zipfldr/CZipEnumerator.hpp b/dll/shellext/zipfldr/CZipEnumerator.hpp index 3e7037c1e5d..81752116ea2 100644 --- a/dll/shellext/zipfldr/CZipEnumerator.hpp +++ b/dll/shellext/zipfldr/CZipEnumerator.hpp @@ -12,9 +12,11 @@ private: CComPtr<IZip> m_Zip; bool m_First; CAtlList<CStringW> m_Returned; + UINT m_nCodePage; public: CZipEnumerator() - :m_First(true) + : m_First(true) + , m_nCodePage(GetZipCodePage(TRUE)) { } @@ -92,9 +94,9 @@ public: nameA.Replace('\\', '/'); if (info.flag & MINIZIP_UTF8_FLAG) - Utf8ToWide(nameA, name); + name = CA2WEX<MAX_PATH>(nameA, CP_UTF8); else - name = CStringW(nameA); + name = CA2WEX<MAX_PATH>(nameA, m_nCodePage); } return err == UNZ_OK; } diff --git a/dll/shellext/zipfldr/precomp.h b/dll/shellext/zipfldr/precomp.h index 7eaab9c3738..448e8ad5528 100644 --- a/dll/shellext/zipfldr/precomp.h +++ b/dll/shellext/zipfldr/precomp.h @@ -11,6 +11,7 @@ #include <atlbase.h> #include <atlcom.h> #include <atlcoll.h> +#include <atlconv.h> #include <atlstr.h> #include <ui/rosdlgs.h> #include <shlwapi.h> @@ -21,8 +22,6 @@ #include <reactos/debug.h> #include <shellutils.h> -void Utf8ToWide(const CStringA& strUtf8, CStringW& strWide); - #define EXTRACT_VERBA "extract" #define EXTRACT_VERBW L"extract" @@ -36,10 +35,10 @@ EXTERN_C const GUID CLSID_ZipFolderExtractAllCommand; extern LONG g_ModuleRefCnt; - +UINT GetZipCodePage(BOOL bUnZip); WCHAR* guid2string(REFCLSID iid); - +#define MINIZIP_COMPATIBLE_VERSION 36 #define MINIZIP_PASSWORD_FLAG 1 #define MINIZIP_UTF8_FLAG (1 << 11) diff --git a/dll/shellext/zipfldr/zipfldr.cpp b/dll/shellext/zipfldr/zipfldr.cpp index 07fcc3a01b5..df2079e1827 100644 --- a/dll/shellext/zipfldr/zipfldr.cpp +++ b/dll/shellext/zipfldr/zipfldr.cpp @@ -48,13 +48,6 @@ static void init_zlib() fill_win32_filefunc64W(&g_FFunc); } -void Utf8ToWide(const CStringA& strUtf8, CStringW& strWide) -{ - INT cchWide = MultiByteToWideChar(CP_UTF8, 0, strUtf8, -1, NULL, 0); - MultiByteToWideChar(CP_UTF8, 0, strUtf8, -1, strWide.GetBuffer(cchWide), cchWide); - strWide.ReleaseBuffer(); -} - static BOOL CreateEmptyFile(PCWSTR pszFile) { @@ -94,6 +87,28 @@ GetDefaultUserSendTo(PWSTR pszPath) SHGFP_TYPE_DEFAULT, pszPath); } +UINT GetZipCodePage(BOOL bUnZip) +{ + WCHAR szValue[16]; + DWORD dwType, cbValue = sizeof(szValue); + UINT nDefaultCodePage = (bUnZip ? CP_ACP : CP_UTF8); + + LONG error = SHGetValueW(HKEY_CURRENT_USER, L"Software\\ReactOS", + (bUnZip ? L"UnZipCodePage" : L"ZipCodePage"), + &dwType, szValue, &cbValue); + if (error != ERROR_SUCCESS) + return nDefaultCodePage; + + if (cbValue == sizeof(DWORD) && (dwType == REG_DWORD || dwType == REG_BINARY)) + return *(DWORD*)szValue; + + if (dwType != REG_SZ && dwType != REG_EXPAND_SZ) + return nDefaultCodePage; + + szValue[_countof(szValue) - 1] = UNICODE_NULL; + return (UINT)wcstol(szValue, NULL, 0); +} + EXTERN_C BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved) {
1 year, 5 months
1
0
0
0
[reactos] 01/01: [APPWIZ] 'Create Shortcut' wizard: Accept arguments (#5456)
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=059427e31d64730938409…
commit 059427e31d6473093840964848726054d62709c7 Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Sat Jul 22 12:39:51 2023 +0900 Commit: GitHub <noreply(a)github.com> CommitDate: Sat Jul 22 12:39:51 2023 +0900 [APPWIZ] 'Create Shortcut' wizard: Accept arguments (#5456) Allow command line as Create Shortcut wizard's target. CORE-5866 --- dll/cpl/appwiz/appwiz.h | 3 +- dll/cpl/appwiz/createlink.c | 79 +++++++++++++++++++++++++-------------------- 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/dll/cpl/appwiz/appwiz.h b/dll/cpl/appwiz/appwiz.h index fa388848695..6148da7a98c 100644 --- a/dll/cpl/appwiz/appwiz.h +++ b/dll/cpl/appwiz/appwiz.h @@ -27,9 +27,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(appwiz); typedef struct { - WCHAR szTarget[MAX_PATH]; + WCHAR szTarget[2 * MAX_PATH]; WCHAR szWorkingDirectory[MAX_PATH]; WCHAR szDescription[MAX_PATH]; + WCHAR szArguments[2 * MAX_PATH]; WCHAR szOrigin[MAX_PATH]; WCHAR szOldFile[MAX_PATH]; WCHAR szLinkName[MAX_PATH]; diff --git a/dll/cpl/appwiz/createlink.c b/dll/cpl/appwiz/createlink.c index 9f80dc5aa7c..ea1ecc48e6d 100644 --- a/dll/cpl/appwiz/createlink.c +++ b/dll/cpl/appwiz/createlink.c @@ -14,6 +14,7 @@ #include <commctrl.h> #include <shellapi.h> #include <strsafe.h> +#include <shlwapi_undoc.h> // for PathFindOnPathExW BOOL IsShortcut(HKEY hKey) @@ -126,6 +127,8 @@ CreateShortcut(PCREATE_LINK_CONTEXT pContext) return FALSE; pShellLink->lpVtbl->SetPath(pShellLink, Path); + if (pContext->szArguments[0]) + pShellLink->lpVtbl->SetArguments(pShellLink, pContext->szArguments); pShellLink->lpVtbl->SetDescription(pShellLink, pContext->szDescription); pShellLink->lpVtbl->SetWorkingDirectory(pShellLink, pContext->szWorkingDirectory); @@ -237,7 +240,6 @@ WelcomeDlgProc(HWND hwndDlg, WCHAR szTitle[100]; BROWSEINFOW brws; LPITEMIDLIST pidllist; - LPWSTR pch; SHFILEINFOW FileInfo; switch(uMsg) @@ -250,6 +252,7 @@ WelcomeDlgProc(HWND hwndDlg, SHAutoComplete(GetDlgItem(hwndDlg, IDC_SHORTCUT_LOCATION), SHACF_DEFAULT); break; case WM_COMMAND: + { switch(HIWORD(wParam)) { case EN_CHANGE: @@ -306,56 +309,66 @@ WelcomeDlgProc(HWND hwndDlg, { GetDlgItemTextW(hwndDlg, IDC_SHORTCUT_LOCATION, pContext->szTarget, _countof(pContext->szTarget)); StrTrimW(pContext->szTarget, L" \t"); - ExpandEnvironmentStringsW(pContext->szTarget, szPath, _countof(szPath)); - StringCchCopyW(pContext->szTarget, _countof(pContext->szTarget), szPath); - if (IsInternetLocation(pContext->szTarget)) + if (IsInternetLocation(szPath)) /* The internet location */ { - /* internet */ WCHAR szName[128]; LoadStringW(hApplet, IDS_NEW_INTERNET_SHORTCUT, szName, _countof(szName)); StringCchCopyW(pContext->szDescription, _countof(pContext->szDescription), szName); - pContext->szWorkingDirectory[0] = 0; + pContext->szArguments[0] = 0; + return FALSE; } - else if (GetFileAttributesW(pContext->szTarget) != INVALID_FILE_ATTRIBUTES) + + /* Split and build args */ + LPWSTR pszArgs = PathGetArgsW(szPath); + if (pszArgs && pszArgs > szPath) { - /* file */ - SendDlgItemMessage(hwndDlg, IDC_SHORTCUT_LOCATION, EM_SETSEL, 0, -1); - SetFocus(GetDlgItem(hwndDlg, IDC_SHORTCUT_LOCATION)); - SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); - - /* get display name */ - FileInfo.szDisplayName[0] = 0; - if (SHGetFileInfoW(pContext->szTarget, 0, &FileInfo, sizeof(FileInfo), SHGFI_DISPLAYNAME)) - StringCchCopyW(pContext->szDescription, _countof(pContext->szDescription), FileInfo.szDisplayName); - - /* set working directory */ - StringCchCopyW(pContext->szWorkingDirectory, _countof(pContext->szWorkingDirectory), - pContext->szTarget); - PathRemoveBackslashW(pContext->szWorkingDirectory); - pch = PathFindFileNameW(pContext->szWorkingDirectory); - if (pch && *pch) - *pch = 0; - PathRemoveBackslashW(pContext->szWorkingDirectory); + PathRemoveArgsW(szPath); + StringCchCopyW(pContext->szArguments, _countof(pContext->szArguments), pszArgs); } else { - /* not found */ - WCHAR szError[MAX_PATH + 100]; + pContext->szArguments[0] = 0; + } + /* Find the file */ + WCHAR szFound[MAX_PATH]; + StringCchCopyW(szFound, _countof(szFound), szPath); + if (!PathFindOnPathExW(szFound, NULL, WHICH_DEFAULT) && + FindExecutableW(szPath, NULL, szFound) <= (HINSTANCE)(INT_PTR)32) + { + /* Not found */ SendDlgItemMessageW(hwndDlg, IDC_SHORTCUT_LOCATION, EM_SETSEL, 0, -1); LoadStringW(hApplet, IDS_CREATE_SHORTCUT, szDesc, _countof(szDesc)); LoadStringW(hApplet, IDS_ERROR_NOT_FOUND, szPath, _countof(szPath)); + + WCHAR szError[MAX_PATH + 100]; StringCchPrintfW(szError, _countof(szError), szPath, pContext->szTarget); MessageBoxW(hwndDlg, szError, szDesc, MB_ICONERROR); - /* prevent the wizard to go next */ + /* Prevent the wizard to go next */ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1); return TRUE; } + + /* Rebuild target */ + StringCchCopyW(pContext->szTarget, _countof(pContext->szTarget), szFound); + + /* Get display name */ + FileInfo.szDisplayName[0] = 0; + if (SHGetFileInfoW(szFound, 0, &FileInfo, sizeof(FileInfo), SHGFI_DISPLAYNAME)) + StringCchCopyW(pContext->szDescription, _countof(pContext->szDescription), FileInfo.szDisplayName); + + /* Set working directory */ + StringCchCopyW(pContext->szWorkingDirectory, _countof(pContext->szWorkingDirectory), szFound); + PathRemoveBackslashW(pContext->szWorkingDirectory); + PathRemoveFileSpecW(pContext->szWorkingDirectory); + PathRemoveBackslashW(pContext->szWorkingDirectory); + + SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE); } else if (lppsn->hdr.code == PSN_RESET && !lppsn->lParam) { @@ -364,6 +377,7 @@ WelcomeDlgProc(HWND hwndDlg, SHChangeNotify(SHCNE_DELETE, SHCNF_PATHW, pContext->szOldFile, NULL); } break; + } } return FALSE; } @@ -378,7 +392,6 @@ FinishDlgProc(HWND hwndDlg, LPPROPSHEETPAGEW ppsp; PCREATE_LINK_CONTEXT pContext; LPPSHNOTIFY lppsn; - LPWSTR pch; WCHAR szText[MAX_PATH]; WCHAR szMessage[128]; @@ -450,9 +463,7 @@ FinishDlgProc(HWND hwndDlg, PathAppendW(pContext->szLinkName, pContext->szDescription); /* change extension if any */ - pch = PathFindExtensionW(pContext->szLinkName); - if (pch && *pch) - *pch = 0; + PathRemoveExtensionW(pContext->szLinkName); StringCchCatW(pContext->szLinkName, _countof(pContext->szLinkName), L".url"); if (!CreateInternetShortcut(pContext)) @@ -469,9 +480,7 @@ FinishDlgProc(HWND hwndDlg, PathAppendW(pContext->szLinkName, pContext->szDescription); /* change extension if any */ - pch = PathFindExtensionW(pContext->szLinkName); - if (pch && *pch) - *pch = 0; + PathRemoveExtensionW(pContext->szLinkName); StringCchCatW(pContext->szLinkName, _countof(pContext->szLinkName), L".lnk"); if (!CreateShortcut(pContext))
1 year, 5 months
1
0
0
0
[reactos] 01/01: [APPWIZ] Update Japanese (ja-JP) translation
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=252026352de606d93be4f…
commit 252026352de606d93be4f1f5996a74cec136954e Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Fri Jul 21 09:36:32 2023 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Fri Jul 21 09:38:01 2023 +0900 [APPWIZ] Update Japanese (ja-JP) translation CORE-18706 --- dll/cpl/appwiz/lang/ja-JP.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dll/cpl/appwiz/lang/ja-JP.rc b/dll/cpl/appwiz/lang/ja-JP.rc index 5a532f9a1f9..a8e93c6b894 100644 --- a/dll/cpl/appwiz/lang/ja-JP.rc +++ b/dll/cpl/appwiz/lang/ja-JP.rc @@ -86,5 +86,5 @@ BEGIN IDS_NO_DIRECTORY "ディレクトリが与えられてません!" IDS_INVALID_PATH "与えられたパスは無効です!" IDS_INVALID_NAME "入力したショートカット名にファイル名としては無効な文字が含まれているか長すぎます。" - IDS_BROWSE_FOR_TARGET "Please select the target of the shortcut below:" + IDS_BROWSE_FOR_TARGET "ショートカットの参照先を下からお選び下さい:" END
1 year, 5 months
1
0
0
0
[reactos] 01/01: [URL] Implement OpenURLA function
by Katayama Hirofumi MZ
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1c91b0b61ddb893e7fb52…
commit 1c91b0b61ddb893e7fb52e84c8d415fe426915de Author: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> AuthorDate: Fri Jul 21 08:24:26 2023 +0900 Commit: Katayama Hirofumi MZ <katayama.hirofumi.mz(a)gmail.com> CommitDate: Fri Jul 21 08:24:26 2023 +0900 [URL] Implement OpenURLA function CORE-18625 --- dll/win32/url/url_main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dll/win32/url/url_main.c b/dll/win32/url/url_main.c index 8ad413b6ea9..aeaba70f258 100644 --- a/dll/win32/url/url_main.c +++ b/dll/win32/url/url_main.c @@ -105,7 +105,12 @@ void WINAPI FileProtocolHandlerA(HWND hWnd, HINSTANCE hInst, LPCSTR pszUrl, int */ void WINAPI OpenURLA(HWND hwnd, HINSTANCE inst, LPCSTR cmdline, INT show) { +#ifdef __REACTOS__ + TRACE("(%p, %p, %s, %d)\n", hwnd, inst, debugstr_a(cmdline), show); + ShellExecuteA(hwnd, NULL, cmdline, NULL, NULL, show); +#else FIXME("(%p, %p, %s, %d): stub!\n", hwnd, inst, debugstr_a(cmdline), show); +#endif } /***********************************************************************
1 year, 5 months
1
0
0
0
← Newer
1
2
3
4
5
6
7
8
...
19
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Results per page:
10
25
50
100
200