[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@gmail.com>
Co-authored-by: Joachim Henze <joachim.henze@reactos.org>
This commit is contained in:
Katayama Hirofumi MZ 2023-07-22 19:28:37 +09:00 committed by GitHub
parent d02cb099c8
commit 52bc5f7c5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
23 changed files with 85 additions and 6 deletions

View file

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

View file

@ -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/com/ieframe.c;hb=bf2cec186cc7655e062ec0e53ccfac860bcae70d#l35
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"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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 "Остановить"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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