[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) add_executable(iexplore main.c iexplore.rc)
target_link_libraries(iexplore wine) target_link_libraries(iexplore wine)
set_module_type(iexplore win32gui UNICODE) 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%\ProgID",,,"InternetExplorer.Application.1"
HKCR,"CLSID\%CLSID_InternetExplorer%\VersionIndependentProgID",,,"InternetExplorer.Application" HKCR,"CLSID\%CLSID_InternetExplorer%\VersionIndependentProgID",,,"InternetExplorer.Application"
HKCR,"CLSID\%CLSID_Internet%\DefaultIcon",,,"shdoclc.dll,-190" ; FIXME: Implement CLSID_Internet in ieframe.dll (see CORE-18625)
HKCR,"CLSID\%CLSID_Internet%\Shell",,,"OpenHomePage" ; https://git.reactos.org/?p=reactos.git;a=blob;f=modules/rostests/apitests/com/ieframe.c;hb=bf2cec186cc7655e062ec0e53ccfac860bcae70d#l35
HKCR,"CLSID\%CLSID_Internet%\Shell\OpenHomePage",,,"Open &Home Page" HKCR,"CLSID\%CLSID_Internet%",,,"Internet Browser"
HKCR,"CLSID\%CLSID_Internet%\Shell\OpenHomePage\Command",,,"""%16422%\Internet Explorer\iexplore.exe""" 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_Internet%\ShellFolder",,2,"0x24"
HKCR,"CLSID\%CLSID_InternetExplorerManager%\LocalServer32",,,"""%16422%\Internet Explorer\iexplore.exe"" -startmanager" 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 list(APPEND ieframe_rc_deps
${CMAKE_CURRENT_SOURCE_DIR}/ieframe.rgs ${CMAKE_CURRENT_SOURCE_DIR}/ieframe.rgs
${CMAKE_CURRENT_SOURCE_DIR}/ieframe_v1.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) ${CMAKE_CURRENT_BINARY_DIR}/ieframe_v1.tlb)
set_source_files_properties(ieframe.rc PROPERTIES OBJECT_DEPENDS "${ieframe_rc_deps}") set_source_files_properties(ieframe.rc PROPERTIES OBJECT_DEPENDS "${ieframe_rc_deps}")

View file

@ -5,9 +5,21 @@ HKCR
} }
NoRemove CLSID NoRemove CLSID
{ {
'{871C5380-42A0-1069-A2EA-08002B30309D}' = s 'Internet' '{871C5380-42A0-1069-A2EA-08002B30309D}' = s 'Internet Browser'
{ {
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' } 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' '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}' = s 'Microsoft Url History Service'
{ {

View file

@ -45,6 +45,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE 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_BACK "Zpět"
IDS_TB_FORWARD "Vpřed" IDS_TB_FORWARD "Vpřed"
IDS_TB_STOP "Stop" IDS_TB_STOP "Stop"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE 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_BACK "Zurück"
IDS_TB_FORWARD "Vorwärts" IDS_TB_FORWARD "Vorwärts"
IDS_TB_STOP "Stop" IDS_TB_STOP "Stop"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Back" IDS_TB_BACK "Back"
IDS_TB_FORWARD "Forward" IDS_TB_FORWARD "Forward"
IDS_TB_STOP "Stop" IDS_TB_STOP "Stop"

View file

@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE 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_BACK "Atrás"
IDS_TB_FORWARD "Adelante" IDS_TB_FORWARD "Adelante"
IDS_TB_STOP "Detener" IDS_TB_STOP "Detener"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE 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_BACK "Précédent"
IDS_TB_FORWARD "Suivant" IDS_TB_FORWARD "Suivant"
IDS_TB_STOP "Arrêter" IDS_TB_STOP "Arrêter"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Vissza" IDS_TB_BACK "Vissza"
IDS_TB_FORWARD "Előre" IDS_TB_FORWARD "Előre"
IDS_TB_STOP "Leállítás" IDS_TB_STOP "Leállítás"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Kembali" IDS_TB_BACK "Kembali"
IDS_TB_FORWARD "Maju" IDS_TB_FORWARD "Maju"
IDS_TB_STOP "Berhenti" IDS_TB_STOP "Berhenti"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Indietro" IDS_TB_BACK "Indietro"
IDS_TB_FORWARD "Avanti" IDS_TB_FORWARD "Avanti"
IDS_TB_STOP "Interrompi" IDS_TB_STOP "Interrompi"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "戻る" IDS_TB_BACK "戻る"
IDS_TB_FORWARD "進む" IDS_TB_FORWARD "進む"
IDS_TB_STOP "停止" IDS_TB_STOP "停止"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Wstecz" IDS_TB_BACK "Wstecz"
IDS_TB_FORWARD "Dalej" IDS_TB_FORWARD "Dalej"
IDS_TB_STOP "Zatrzymaj" IDS_TB_STOP "Zatrzymaj"

View file

@ -40,6 +40,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Retroceder" IDS_TB_BACK "Retroceder"
IDS_TB_FORWARD "Avançar" IDS_TB_FORWARD "Avançar"
IDS_TB_STOP "Parar" IDS_TB_STOP "Parar"

View file

@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Înapoi" IDS_TB_BACK "Înapoi"
IDS_TB_FORWARD "Înainte" IDS_TB_FORWARD "Înainte"
IDS_TB_STOP "Oprește" IDS_TB_STOP "Oprește"

View file

@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Назад" IDS_TB_BACK "Назад"
IDS_TB_FORWARD "Вперед" IDS_TB_FORWARD "Вперед"
IDS_TB_STOP "Остановить" IDS_TB_STOP "Остановить"

View file

@ -42,6 +42,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "Geri" IDS_TB_BACK "Geri"
IDS_TB_FORWARD "İleri" IDS_TB_FORWARD "İleri"
IDS_TB_STOP "Dur" IDS_TB_STOP "Dur"

View file

@ -43,6 +43,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "后退" IDS_TB_BACK "后退"
IDS_TB_FORWARD "前进" IDS_TB_FORWARD "前进"
IDS_TB_STOP "停止" IDS_TB_STOP "停止"

View file

@ -49,6 +49,9 @@ IDR_BROWSE_MAIN_MENU MENU
STRINGTABLE STRINGTABLE
{ {
IDS_INTERNET "Internet Browser"
IDS_INTERNET_DESCRIPTION "Opens a Web browser and displays information on the Internet."
IDS_TB_BACK "上一頁" IDS_TB_BACK "上一頁"
IDS_TB_FORWARD "下一頁" IDS_TB_FORWARD "下一頁"
IDS_TB_STOP "停止" IDS_TB_STOP "停止"

View file

@ -55,6 +55,9 @@
#define ID_BROWSE_GOTOFAV_FIRST 2000 #define ID_BROWSE_GOTOFAV_FIRST 2000
#define ID_BROWSE_GOTOFAV_MAX 65000 #define ID_BROWSE_GOTOFAV_MAX 65000
#define IDS_INTERNET 880
#define IDS_INTERNET_DESCRIPTION 881
#define IDS_TB_BACK 1100 #define IDS_TB_BACK 1100
#define IDS_TB_FORWARD 1101 #define IDS_TB_FORWARD 1101
#define IDS_TB_STOP 1102 #define IDS_TB_STOP 1102

View file

@ -129,6 +129,7 @@ class CDesktopFolderEnum :
LPITEMIDLIST pidl; LPITEMIDLIST pidl;
static const WCHAR MyDocumentsClassString[] = L"{450D8FBA-AD25-11D0-98A8-0800361B1103}"; 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); TRACE("(%p)->(flags=0x%08x)\n", this, dwFlags);
@ -138,6 +139,8 @@ class CDesktopFolderEnum :
AddToEnumList(_ILCreateMyComputer()); AddToEnumList(_ILCreateMyComputer());
if (IsNamespaceExtensionHidden(MyDocumentsClassString) < 1) if (IsNamespaceExtensionHidden(MyDocumentsClassString) < 1)
AddToEnumList(_ILCreateMyDocuments()); AddToEnumList(_ILCreateMyDocuments());
if (IsNamespaceExtensionHidden(InternetClassString) < 1)
AddToEnumList(_ILCreateIExplore());
DWORD dwFetched; DWORD dwFetched;
while((S_OK == pRegEnumerator->Next(1, &pidl, &dwFetched)) && 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 else
{ {
// FIXME: Delete these hacks and make HCR_GetIconW and registry working
if (IsEqualGUID(*riid, CLSID_MyComputer)) if (IsEqualGUID(*riid, CLSID_MyComputer))
initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_COMPUTER); initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_COMPUTER);
else if (IsEqualGUID(*riid, CLSID_MyDocuments)) else if (IsEqualGUID(*riid, CLSID_MyDocuments))
initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_DOCUMENTS); initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_DOCUMENTS);
else if (IsEqualGUID(*riid, CLSID_NetworkPlaces)) else if (IsEqualGUID(*riid, CLSID_NetworkPlaces))
initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_NETWORK_PLACES); initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_MY_NETWORK_PLACES);
else if (IsEqualGUID(*riid, CLSID_Internet))
initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_WEB_BROWSER);
else else
initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_FOLDER); initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_FOLDER);
} }