Difference between revisions of "User:Petr-akhlamov/Shell"
(→CLSID) |
(→Shell Namespace Extensions) |
||
(34 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
[http://winehq.org.ru/ROS_Shell (on russian)] | [http://winehq.org.ru/ROS_Shell (on russian)] | ||
==Progress== | ==Progress== | ||
− | *13.07.2014 - CMergedFolder was completed | + | *13.07.2014 - CMergedFolder was completed. |
*24.08.2014 - hotkeys Ctrl+C, Ctrl+X, Ctrl+V was implemented. | *24.08.2014 - hotkeys Ctrl+C, Ctrl+X, Ctrl+V was implemented. | ||
− | *28.09.2014 - IPC was implemented | + | *28.09.2014 - IPC was implemented. |
==Shell32 components scheme== | ==Shell32 components scheme== | ||
Line 15: | Line 15: | ||
*shell/explorer issues ({{JIRA|5620}}) | *shell/explorer issues ({{JIRA|5620}}) | ||
*Major unimplemented features of the shell ({{JIRA|9277}}) | *Major unimplemented features of the shell ({{JIRA|9277}}) | ||
− | |||
*shell32: shell icon cache and icon extractors need to be rewritten ({{JIRA|7563}}) | *shell32: shell icon cache and icon extractors need to be rewritten ({{JIRA|7563}}) | ||
==Reorganization of shell resources== | ==Reorganization of shell resources== | ||
− | As part of | + | As part of his work (<s>{{JIRA|10030}}</s>), Robert Naumann: |
− | * | + | *Reworked the property dialogs, made them nicer, added missing resources and removed unneeded ones |
− | *Changed the start menu | + | *Changed the start menu icon from an icon to a bitmap resource |
*Fixed existing and add missing icons | *Fixed existing and add missing icons | ||
− | * | + | *Reorganized the resource folder structure |
==Components== | ==Components== | ||
===Browseui.dll=== | ===Browseui.dll=== | ||
As of 13.07.2017: | As of 13.07.2017: | ||
− | * | + | *contents of current folder are displayed |
*icon is displayed in the header | *icon is displayed in the header | ||
*buttons are displayed | *buttons are displayed | ||
− | *buttons | + | *buttons have icons |
− | *list mode | + | *list mode has sort arrows |
====Button implementations==== | ====Button implementations==== | ||
The buttons in the file browser toolbar can be subdivided into 4 groups: | The buttons in the file browser toolbar can be subdivided into 4 groups: | ||
*The navigation buttons, with history back/forward and “up”, | *The navigation buttons, with history back/forward and “up”, | ||
*The sidebar buttons, with “folders” and “search”, | *The sidebar buttons, with “folders” and “search”, | ||
− | *The file operations, with “copy to”, “move to”, “delete” and “undo”, | + | *The file operations, with “copy to”, “move to”, “delete” and “undo”, |
*The view mode, which shows a dropdown to select the listview style. | *The view mode, which shows a dropdown to select the listview style. | ||
Line 45: | Line 44: | ||
*folders | *folders | ||
− | + | In progress | |
*copy to/move to ({{JIRA|11132}}) | *copy to/move to ({{JIRA|11132}}) | ||
+ | |||
+ | ===Shdocvw=== | ||
+ | Shdocvw.dll is a library which contains the user interface portions of both Internet Explorer and the file system. In this context, the file system is the Windows Explorer accessory that you use to browse Windows folders and files. The "SHDocVw.dll" library is a COM object, it is not managed. | ||
+ | *[http://www.geoffchappell.com/studies/windows/ie/shdocvw/api/index.htm?tx=17,48 SHDOCVW Functions List] | ||
+ | *[http://github.com/reactos/reactos/blob/master/dll/win32/shdocvw/shdocvw_main.c Implemented functions] | ||
+ | {{JIRA|14172}} - AddUrlToFavorites | ||
+ | |||
+ | {| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em" | ||
+ | !colspan="3"|Implemented functions | ||
+ | |- | ||
+ | !Function || Applicable Versions || Status | ||
+ | |- | ||
+ | |AddUrlToFavorites || 4.71 and higher || | ||
+ | |- | ||
+ | |CallRegisterServer_RunDLL || 4.70 from Internet Explorer 3.00 only || | ||
+ | |- | ||
+ | |CDDEAuto_Navigate (162) || 4.71 and higher || | ||
+ | |- | ||
+ | |ClearAutoSuggestForForms (211) || 5.0 and higher || | ||
+ | |- | ||
+ | |ClearExtensionRecordsBlockReason (234) || 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher || | ||
+ | |- | ||
+ | |CreateFromDesktop (115) || 4.71 and higher || | ||
+ | |- | ||
+ | |CreateShortcutInDirA (102) || 4.70 from Windows 95 OSR2, and higher || | ||
+ | |- | ||
+ | |CreateShortcutInDirW (103) || 4.70 from Windows 95 OSR2, and higher || | ||
+ | |- | ||
+ | |CreateShortcutInDirEx (105) || 5.0 and higher || | ||
+ | |- | ||
+ | |CShellUIHelper_CreateInstance2 (152) || 4.71 and higher || | ||
+ | |- | ||
+ | |DDECreatePostNotify (116) || 5.0 and higher || | ||
+ | |- | ||
+ | |DDEHandleViewFolderNotify (117) || 4.71 and higher || | ||
+ | |- | ||
+ | |_DeletePidlDPA (171) || 5.0 and higher || | ||
+ | |- | ||
+ | |DetectAndFixAssociations (175) || 5.0 and higher || | ||
+ | |- | ||
+ | |DisplayUrlParseError (199) || 5.0 from before Windows 2000; 6.0 from Windows Vista, and higher || | ||
+ | |- | ||
+ | |DllCanUnloadNow || 4.70 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DllGetClassObject || 4.70 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DllGetVersion || 4.70 from Internet Explorer 3.01, and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DllInstall || 4.71 up to but not including 6.0 from Windows Vista || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DllRegisterServer || 4.70 up to but not including 6.0 from Windows Vista || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DllRegisterWindowClasses || 4.71 and higher || | ||
+ | |- | ||
+ | |DllUnregisterServer || 4.70 up to but not including 6.0 from Windows Vista || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DoAddToFavDlg || 4.70 from Windows 95 OSR2, and higher || | ||
+ | |- | ||
+ | |DoAddToFavDlgW || 5.0 and higher || | ||
+ | |- | ||
+ | |DoFileDownload || 4.70 from Windows 95 OSR2, and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |DoFileDownloadEx || 4.70 from Internet Explorer 3.02, and higher || | ||
+ | |- | ||
+ | |DoOrganizeFavDlg || 4.70 from Windows 95 OSR2, and higher || | ||
+ | |- | ||
+ | |DoOrganizeFavDlgW || 5.0 and higher || | ||
+ | |- | ||
+ | |DoPrivacyDlg || 6.0 and higher || | ||
+ | |- | ||
+ | |DragDrop (140) || 5.0 and higher || | ||
+ | |- | ||
+ | |EnsureWebViewRegSettings (176) || 5.0 and higher || | ||
+ | |- | ||
+ | |FireEvent_Quit (185) || 5.0 and higher || | ||
+ | |- | ||
+ | |GetDefaultInternetSearchUrlA (217) || 5.0 and higher || | ||
+ | |- | ||
+ | |GetDefaultInternetSearchUrlW (216) || 5.0 and higher || | ||
+ | |- | ||
+ | |GetExtensionRecordBlockReason (233) || 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher || | ||
+ | |- | ||
+ | |GetExtensionRecords (232) || 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher || | ||
+ | |- | ||
+ | |GetLeakDetectionFunctionTable (161) || 4.71 and higher || | ||
+ | |- | ||
+ | |GetLinkInfo (212) || 5.0 and higher || | ||
+ | |- | ||
+ | |GetSearchAssistantUrlA (215) || 5.0 and higher || | ||
+ | |- | ||
+ | |GetSearchAssistantUrlW (214) || 5.0 and higher || | ||
+ | |- | ||
+ | |_GetStdLocation (150) || 5.0 and higher || | ||
+ | |- | ||
+ | |HlinkFindFrame || 4.71 and higher || | ||
+ | |- | ||
+ | |HlinkFrameNavigate || 4.70 from Windows 95 OSR2 and higher || | ||
+ | |- | ||
+ | |HlinkFrameNavigateNHL || 4.71 and higher || | ||
+ | |- | ||
+ | |IEAboutBox || 4.70 from Windows 95 OSR2 and higher, only || | ||
+ | |- | ||
+ | |IEBindToObject (146) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEBindToObjectEx (149) || 5.0 from Windows 2000, and higher || | ||
+ | |- | ||
+ | |IECleanUpAutomationObject (194) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEDDE_NewWindow (197) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEDDE_WindowDestroyed (196) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEGetAttributesOf (145) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEGetDisplayName (148) (189) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEGetNameAndFlags (147) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEILIsEqual (219) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEInvalidateImageList (141) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEIsLinkSafe (226) || 5.0 from Windows 2000, and higher || | ||
+ | |- | ||
+ | |IEMapPIDLToSystemImageListIndex (142) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEOnFirstBrowserCreation (195) || 5.0 and higher || | ||
+ | |- | ||
+ | |IEParseDisplayNameWithBCW (218) || 5.0 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |IEWinMain (101) || 4.70 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |IEWriteErrorLog || 4.71 up to but not including 6.0 from Windows Vista || | ||
+ | |- | ||
+ | |ILCreateFromPathCPWithBCA (221) || 5.0 and higher || | ||
+ | |- | ||
+ | |ILCreateFromPathCPWithBCW (222) || 5.0 and higher || | ||
+ | |- | ||
+ | |ILIsWeb (143) || 5.0 and higher || | ||
+ | |- | ||
+ | |ImportPrivacySettings || 6.0 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |InstallReg_RunDLL || 4.70 from Windows 95 OSR2 and higher, only || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |IsErrorUrl (198) || 5.0 and higher || | ||
+ | |- | ||
+ | |IsFileUrl (135) || 5.0 and higher || | ||
+ | |- | ||
+ | |IsFileUrlW (136) || 5.0 and higher || | ||
+ | |- | ||
+ | |IsIEDefaultBrowser (167) || 5.0 and higher || | ||
+ | |- | ||
+ | |IsResetWebSettingsRequired (224) || 5.0 and higher || | ||
+ | |- | ||
+ | |IsURLChild (153) || 5.0 and higher || | ||
+ | |- | ||
+ | |IURLQualify (172) || 5.0 and higher || | ||
+ | |- | ||
+ | |JITCoCreateInstance (209) || 5.0 and higher || | ||
+ | |- | ||
+ | |NavToUrlUsingIEA (203) || 5.0 and higher || | ||
+ | |- | ||
+ | |NavToUrlUsingIEW (204) || 5.0 and higher || | ||
+ | |- | ||
+ | |OpenPidlOrderStream (139) || 5.0 and higher || | ||
+ | |- | ||
+ | |OpenURL || 4.71 and higher || | ||
+ | |- | ||
+ | |ParseURLFromOutsideSourceA (169) || 5.0 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |ParseURLFromOutsideSourceW (170) || 5.0 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |PathIsFilePath (137) || 5.0 and higher || | ||
+ | |- | ||
+ | |PrepareURLForDisplayUTF8W (225) || 5.0 from Windows 2000, and higher || | ||
+ | |- | ||
+ | |RecordExtensionCreation (231) || 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher || | ||
+ | |- | ||
+ | |ResetProfileSharing (164) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |ResetWebSettings (223) || 5.0 and higher || | ||
+ | |- | ||
+ | |RunInstallUninstallStubs (125) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |RunInstallUninstallStubs2 (130) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |SafeOpenPromptForPackager (229) || 6.0 from Windows XP SP1, and higher || | ||
+ | |- | ||
+ | |SafeOpenPromptForShellExec (228) || 6.0 from Windows XP SP1, and higher || | ||
+ | |- | ||
+ | |SearchForElementInHead (208) || 5.0 and higher || | ||
+ | |- | ||
+ | |SetQueryNetSessionCount || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |SetShellOfflineState || 5.0 and higher || | ||
+ | |- | ||
+ | |SHAddSubscribeFavorite || 4.71 and higher || | ||
+ | |- | ||
+ | |SHCreateDesktop (119) || 4.71 and higher || | ||
+ | |- | ||
+ | |SHCreateSplashScreen (131) || 4.71 and higher || | ||
+ | |- | ||
+ | |SHDesktopMessageLoop (120) || 4.71 and higher || | ||
+ | |- | ||
+ | |SHDGetPageLocation (187) || 5.0 and higher || | ||
+ | |- | ||
+ | |ShellDDEInit (118) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |SHGetHistoryPIDL (192) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHGetIDispatchForFolder || 4.71 and higher || | ||
+ | |- | ||
+ | |SHGetViewStream (200) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHIEErrorMsgBox (188) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHIsGlobalOffline (174) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHIsRegisteredClient (191) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHIsRestricted (173) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHIsRestricted2W (160) || 5.0 and higher || | ||
+ | |- | ||
+ | |SHMapNbspToSp (183) || 5.0 and higher || | ||
+ | |- | ||
+ | |ShowUrlInNewBrowserInstance (230) || 6.0 from Windows XP SP2, and higher || | ||
+ | |- | ||
+ | |SHRestricted2A (158) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |SHRestricted2W (159) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |SHRunIndirectRegClientCommand (190) || 5.0 from before Windows 2000; 5.50 and higher || | ||
+ | |- | ||
+ | |SHUseClassicToolbarGlyphs (227) || 6.0 and higher || | ||
+ | |- | ||
+ | |SoftwareUpdateMessageBox || 4.71 and higher || | ||
+ | |- | ||
+ | |StopWatch (123) || 4.71 and higher || | ||
+ | |- | ||
+ | |StopWatchFlush (122) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |StopWatchMode (121) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |UrlHitsNetW (210) || 5.0 and higher || | ||
+ | |- | ||
+ | |URLQualifyA || 4.70 and higher || | ||
+ | |- | ||
+ | |URLQualifyW || 4.70 and higher || | ||
+ | |- | ||
+ | |URLSubLoadString (138) || 5.0 and higher || | ||
+ | |- | ||
+ | |URLSubRegQueryA (151) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |URLSubstitution (150) || 4.71 and 4.72 || | ||
+ | |- | ||
+ | |URLSubstitution (165) || 5.0 and higher || | ||
+ | |- | ||
+ | |UseCustomInternetSearch (213) || 5.0 and higher || | ||
+ | |- | ||
+ | |WhichPlatform (104) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |WinList_FindFolderWindow (178) || 5.0 and higher || | ||
+ | |- | ||
+ | |WinList_GetShellWindows (179) || 5.0 and higher || | ||
+ | |- | ||
+ | |WinList_Init (110) || 4.71 and higher || style="background:#a0e75a;"| | ||
+ | |- | ||
+ | |WinList_NotifyNewLocation (177) || 5.0 and higher || | ||
+ | |- | ||
+ | |WinList_RegisterPending (180) || 5.0 and higher || | ||
+ | |- | ||
+ | |WinList_Revoke (181) || 5.0 and higher || | ||
+ | |- | ||
+ | |WinList_Terminate (111) || 4.71 and higher || | ||
+ | |- | ||
+ | |unknown (220) || 5.0 and 5.50 || | ||
+ | |} | ||
===Dynamic Data Exchange=== | ===Dynamic Data Exchange=== | ||
+ | 24.08.2014: DDE base code was imported from trunk. | ||
+ | |||
+ | 29.09.2014: Work on it was started. | ||
+ | |||
+ | After test and debug of component in Windows, Gigaherz added it to Shell32 and test it in ReactOS. | ||
+ | |||
+ | Due to bugs in the win32k, DDE implementation is badly broken and developer set it aside, they needs to be fixed. [http://reactos.org/node/891] | ||
+ | |||
===IPC=== | ===IPC=== | ||
− | IPC mechanism used by browseui to open new windows in the existing process. This function was implemented 28.09.2014[http://reactos.org/node/884]. | + | IPC mechanism is used by browseui to open new windows in the existing process. This function was implemented on 28.09.2014[http://reactos.org/node/884]. |
*{{JIRA|12577}} - disable IPC via registry | *{{JIRA|12577}} - disable IPC via registry | ||
===Sidebar=== | ===Sidebar=== | ||
− | 03.12.2014 | + | 03.12.2014: Implementation of CExplorerBand class was started , which needed for sidebar. Gigaherz added this class to research sidebar implementation in Windows. |
− | 05.02.2016 | + | 05.02.2016: Patch (<s>{{JIRA|10838}}</s>) with initial implementation of classes BaseBar and CBaseBarSite was published . |
− | 19.02.2016 Sylvain Deverre started | + | 19.02.2016: Sylvain Deverre started working on sidebar in github-repo. |
− | 30.05.2016 Results of his work was | + | 30.05.2016: Results of his work was added to trunk. |
− | 01.06.2016 Sidebar was implemented. | + | 01.06.2016: Sidebar was implemented. |
− | 26.07.2016 In the sidebar | + | 26.07.2016: In the sidebar, expanding the tree view to the current folder when a new folder is being browsed and showing the context menu on right click was implemented. |
− | 02.08.2016 In the sidebar | + | 02.08.2016: In the sidebar, displaying of disk name was implemented. |
− | 01.02.2017 In the sidebar | + | 01.02.2017: In the sidebar, rudimentary support for drag icons was implemented. |
===Command line parameters=== | ===Command line parameters=== | ||
− | 08.09.2014 | + | 08.09.2014: Base of parser of [http://support.microsoft.com/en-us/help/152457/windows-explorer-command-line-options command line parameters] was written. |
The report <s>{{JIRA|12163}}</s> was closed 07.11.2016. | The report <s>{{JIRA|12163}}</s> was closed 07.11.2016. | ||
− | Now, explorer supports | + | Now, explorer supports these parameters: |
*/separate | */separate | ||
*/e | */e | ||
Line 82: | Line 367: | ||
===Desktop=== | ===Desktop=== | ||
− | 05.02.2017 | + | 05.02.2017: In the trunk, [http://github.com/reactos/reactos/commit/2ee2be0a07df3fa381065cf6471dea4b82af6c52 auto updating of desktop after its content changed] was implemented. |
====Hide desktop icons==== | ====Hide desktop icons==== | ||
− | *[http://yadi.sk/d/mF_j0Mj73QGnZw reg-files] for parameters | + | *[http://yadi.sk/d/mF_j0Mj73QGnZw reg-files] for changing parameters |
*{{JIRA|8427}} | *{{JIRA|8427}} | ||
===Taskbar=== | ===Taskbar=== | ||
− | 15.05.2014 | + | 15.05.2014: Work on taskbar was started. |
[[File:Taskbar.png|center]] | [[File:Taskbar.png|center]] | ||
As of 31.07.2017: | As of 31.07.2017: | ||
− | *windows list | + | *windows list displays |
− | *you can | + | *you can minimize/restore windows with left-click |
*you can call windows action-list with right-click | *you can call windows action-list with right-click | ||
*taskbar autohide is implemented | *taskbar autohide is implemented | ||
Line 98: | Line 383: | ||
====Taskbar settings==== | ====Taskbar settings==== | ||
− | 14.07.2017 Robert Naumann [http://github.com/reactos/reactos/commit/8bf97b3a3d6b2ad90a8f276d603bc6cf12461bb8 | + | 14.07.2017: Robert Naumann [http://github.com/reactos/reactos/commit/8bf97b3a3d6b2ad90a8f276d603bc6cf12461bb8 started] implementation of taskbar settings saving/loading. ({{JIRA|11498}}) |
+ | |||
+ | 01.11.2017: in revision [http://github.com/reactos/reactos/commit/2ed535da8ab490b53bb496f3ac25fd1fd03f4965 2ed535d] (0.4.8-dev-46) Giannis implemented some taskbar settings (lock, keep on top of other windows, auto-hide, show clock, show seconds). Others will be implemented later. | ||
− | + | *{{JIRA|14318}} - Implement "Show the Desktop" action | |
===The notification area=== | ===The notification area=== | ||
− | The notification area was implemented | + | [[File:Notification balloons.png|right]] |
− | *in the tray | + | The notification area was implemented on 05.07.2014. Now: |
− | *you can | + | *in the tray, apps icons are displayed |
+ | *you can minimize/restore apps with left-click | ||
*you can call app action-list with right-click | *you can call app action-list with right-click | ||
*hiding of inactive icons is not implemented | *hiding of inactive icons is not implemented | ||
+ | |||
+ | ---- | ||
+ | *24-01-2018 David Quintana was implement rudimentary [http://github.com/reactos/reactos/commit/bbca71c4a5604f4919d792c4b414ae84a05c4594 uVersion management], and [http://github.com/reactos/reactos/commit/bc43733e4842f4bcc5ea2d87fa9f69b442a3fcba notification balloons]. | ||
+ | |||
+ | *Managing hiding behavior for tray notification icons- [http://github.com/reactos/reactos/pull/418 PR-418], {{JIRA|10849}} | ||
+ | |||
====Shell service objects==== | ====Shell service objects==== | ||
− | Shell service objects | + | [[File:Sndvol32-tray.png|320px|thumb|Sound setting dialog]] |
+ | Shell service objects is a component, which implements sound, battery, safely remove and other icons in the system tray. Its implementation was started on 23.07.2014. | ||
− | 17.08.2014 basic functions was implemented. | + | 17.08.2014: basic functions was implemented. |
=====Next work===== | =====Next work===== | ||
− | 23-24.03.2017 Eric Kohl implemented: | + | 23-24.03.2017: Eric Kohl implemented: |
*[http://github.com/reactos/reactos/commit/a9265410de5160cdf06bb6f43956321e37bb9dca r74225] - Implement code to show and hide the power and volume icons in the notification area aka systray. | *[http://github.com/reactos/reactos/commit/a9265410de5160cdf06bb6f43956321e37bb9dca r74225] - Implement code to show and hide the power and volume icons in the notification area aka systray. | ||
*[http://github.com/reactos/reactos/commit/3bce3e3e487cc421a886362cc3a5b355a8a4babf r74226] - Show and hide the power systray icon. | *[http://github.com/reactos/reactos/commit/3bce3e3e487cc421a886362cc3a5b355a8a4babf r74226] - Show and hide the power systray icon. | ||
**[http://github.com/reactos/reactos/commit/587b5a7dcc0392bff0a1d96213cba0fc3479e695 r74228] - Implement the power schemes popup menu. | **[http://github.com/reactos/reactos/commit/587b5a7dcc0392bff0a1d96213cba0fc3479e695 r74228] - Implement the power schemes popup menu. | ||
*[http://github.com/reactos/reactos/commit/2a258f8902e23def0b654840aa70e37ab690ee68 r74227] - Show and hide the volume systray icon. | *[http://github.com/reactos/reactos/commit/2a258f8902e23def0b654840aa70e37ab690ee68 r74227] - Show and hide the volume systray icon. | ||
+ | |||
+ | 25-feb-2018 [http://github.com/reactos/reactos/commit/40bd09a2ce78328f709047c420f46e0925978d8b 40bd09a] - Tray volume dialog implementation | ||
===Address bar=== | ===Address bar=== | ||
− | 04.05.2014 | + | 04.05.2014: Work on address bar was started. |
[[File:Shell-adress.png|center]] | [[File:Shell-adress.png|center]] | ||
As of 25.08.2016: | As of 25.08.2016: | ||
*implemented: | *implemented: | ||
− | **current path | + | **displaying current path |
**icon | **icon | ||
**recognition support | **recognition support | ||
− | **system folder name | + | **system folder name is displayed instead GUID/CLSID |
− | ** | + | **when pressing Enter, browsing to adress |
**addressbar autoresizing | **addressbar autoresizing | ||
**addressbar combobox | **addressbar combobox | ||
Line 139: | Line 436: | ||
! Color and value | ! Color and value | ||
|- | |- | ||
− | | style="background:salmon;"| Not | + | | style="background:salmon;"| Not functioning |
|- | |- | ||
| style="background:#a0e75a;"| Implemented | | style="background:#a0e75a;"| Implemented | ||
|- | |- | ||
− | | style="background:# | + | | style="background:#FF8000;"| Missing in Windows XP |
|} | |} | ||
+ | About unimplemented CLSIDs: | ||
+ | *Network Computers - in Windows XP opens "search results of computers" | ||
+ | *Scheduled Tasks - opens the relevant folder | ||
+ | Other CLSIDs are missing in NT5. | ||
{| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em" | {| class="mw-collapsible mw-collapsed wikitable" style="float:center; margin-left:2em" | ||
Line 151: | Line 452: | ||
| style="background:#a0e75a;"|Administrative Tools | | style="background:#a0e75a;"|Administrative Tools | ||
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Briefcase |
|- | |- | ||
| style="background:#a0e75a;"|Control Panel | | style="background:#a0e75a;"|Control Panel | ||
Line 157: | Line 458: | ||
| style="background:#a0e75a;"|Fonts | | style="background:#a0e75a;"|Fonts | ||
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|History |
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Inbox |
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|MS Network |
|- | |- | ||
| style="background:#a0e75a;"|My Computer | | style="background:#a0e75a;"|My Computer | ||
Line 175: | Line 476: | ||
| style="background:#a0e75a;"|Printers and Faxes | | style="background:#a0e75a;"|Printers and Faxes | ||
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Programs Folder |
|- | |- | ||
| style="background:#a0e75a;"|Recycle Bin | | style="background:#a0e75a;"|Recycle Bin | ||
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Scanners and Cameras |
|- | |- | ||
− | | style="background: | + | | style="background:salmon;"|Scheduled Tasks |
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Start Menu Folder |
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Temporary Internet Files |
|- | |- | ||
− | | style="background: | + | | style="background:#FF8000;"|Web Folders |
|} | |} | ||
Line 200: | Line 501: | ||
! Color and value | ! Color and value | ||
|- | |- | ||
− | | style="background:salmon;"| Not | + | | style="background:salmon;"| Not functioning |
|- | |- | ||
| style="background:#a0e75a;"| Implemented | | style="background:#a0e75a;"| Implemented | ||
Line 266: | Line 567: | ||
*{{JIRA|11141}} - FolderOptions are unimplemented | *{{JIRA|11141}} - FolderOptions are unimplemented | ||
*{{JIRA|10800}} - Improvements to Folder Options | *{{JIRA|10800}} - Improvements to Folder Options | ||
− | *{{JIRA| | + | *{{JIRA|12906}} - Changing or creating new file associations in Folder options is missing |
*<del>{{JIRA|12540}}</del> - Implement TreeView of Folder Options | *<del>{{JIRA|12540}}</del> - Implement TreeView of Folder Options | ||
*{{JIRA|12906}} - Folder Options: File Types: Implement | *{{JIRA|12906}} - Folder Options: File Types: Implement | ||
− | 05.02.2017 folder properties dialog was implemented in [http://github.com/reactos/reactos/commit/029cc4a9a1594eaf2358af2512e624162b7694e2 r73703] with all available settings. | + | 05.02.2017: folder properties dialog was implemented in [http://github.com/reactos/reactos/commit/029cc4a9a1594eaf2358af2512e624162b7694e2 r73703] with all available settings. |
=====Copy to / Move to===== | =====Copy to / Move to===== | ||
− | 18.04.2016 Barrett Karish | + | 18.04.2016: Barrett Karish sent a patch with implementation of this function. |
*{{JIRA|11132}} | *{{JIRA|11132}} | ||
=====Connect/disconnect network drive===== | =====Connect/disconnect network drive===== | ||
− | 03.07.2017 Jared Smudde started implementation of ''netplwiz.dll'' library, which | + | 03.07.2017: Jared Smudde started implementation of ''netplwiz.dll'' library, which performs this function. |
*{{JIRA|13518}} | *{{JIRA|13518}} | ||
*[http://youtu.be/NGYQ1CVDmWQ video] | *[http://youtu.be/NGYQ1CVDmWQ video] | ||
Line 284: | Line 585: | ||
====Start setting==== | ====Start setting==== | ||
[[File:classicconf.png|right|300px]] | [[File:classicconf.png|right|300px]] | ||
− | *21.11.2015 in [http://code.reactos.org/changelog/reactos?cs=69992 r69992] | + | *21.11.2015: in [http://code.reactos.org/changelog/reactos?cs=69992 r69992], implementation of setting dialog of classic start menu was started. |
− | *22.11.2015 in [http://code.reactos.org/changelog/reactos?cs=70001 r70001] | + | *22.11.2015: in [http://code.reactos.org/changelog/reactos?cs=70001 r70001], these buttons were implemented: |
**Add > open shortcut wizard | **Add > open shortcut wizard | ||
− | ** | + | **Advanced > open '''''%username%/Start menu''''' |
**Clear > Clears '''''%username%/Recent''''' | **Clear > Clears '''''%username%/Recent''''' | ||
====Shutdown dialog==== | ====Shutdown dialog==== | ||
[[File:Shell-poweroff.png|350px|center]] | [[File:Shell-poweroff.png|350px|center]] | ||
− | 29.09.2014 in shell-experiments | + | 29.09.2014: in shell-experiments, a [http://jira.reactos.org/browse/CORE-7559 patch] with new shutdown dialog was applied. |
+ | |||
+ | ===ShellBag=== | ||
+ | ShellBag information is a set of subkeys in a user registry hive (eg. ntuser.dat and usrclass.dat files) used by the Windows operating system to track user window viewing preferences. It does this by storing various Windows Explorer settings that relates to dimensions, settings, etc. This allows one to reopen the same folder at a later time with the settings from the previous time. Each user will have separate preferences for folders, and therefore, these settings are stored in the appropriate user hive.[http://tzworks.net/prototype_page.php?proto_id=14] | ||
+ | |||
+ | {{JIRA|9283}} | ||
==Additional features== | ==Additional features== | ||
===Copy dialog=== | ===Copy dialog=== | ||
[[File:Copydialog.png|350px|center]] | [[File:Copydialog.png|350px|center]] | ||
− | Work on copy dialog was started in | + | Work on copy dialog was started in November 2014. (<s>{{JIRA|4476}}</s>) |
− | *23 | + | *23.02.2015: It was implemented, but without animation. |
− | *23 | + | *23.04.2015: Animation was implemented. |
===Show of hidden files=== | ===Show of hidden files=== | ||
− | Implementation of this feature was | + | Implementation of this feature was started on 17.02.2015 and finished on 14.03.2015. (<s>{{JIRA|9207}}</s>) |
===Shell extensions=== | ===Shell extensions=== | ||
− | ====Browser of registry | + | ====Browser of registry and NT-objects==== |
− | 15.03.2015 | + | 15.03.2015: Exploring registry and NT objects from explorer was implemented. <s>{{JIRA|9244}}</s> |
<center> | <center> | ||
[[File:Reg_new.png|350px]] | [[File:Reg_new.png|350px]] | ||
Line 313: | Line 619: | ||
====Virtual desktops==== | ====Virtual desktops==== | ||
− | + | This function [http://jira.reactos.org/browse/CORE-8730 may be implemented] as a shell extension. | |
====Improve support for shell extensions==== | ====Improve support for shell extensions==== | ||
*<s>{{JIRA|13695}}</s> | *<s>{{JIRA|13695}}</s> | ||
+ | |||
+ | ====Shell Namespace Extensions==== | ||
+ | *shell32: rewrite shell folders implementation ({{JIRA|7585}}) | ||
+ | [[File:Zipfolders.png|260px|thumb]] | ||
+ | =====Zip folder namespace extension===== | ||
+ | *<s>{{JIRA|7684}}, [http://github.com/reactos/reactos/pull/451 PR-451]</s> | ||
+ | This extension [http://github.com/reactos/reactos/commit/c7e6a9d04b08131fd1bc6b5ed70d1b9e4bf8140a was implemented] 7-apr-2018. | ||
====Taskbar extensions==== | ====Taskbar extensions==== | ||
− | They | + | They were implemented in GSoC. (quick start panel, battery state, and usb-ejecter) |
− | 18.08.2017 USB-ejecter extension [http://code.reactos.org/changelog/reactos?cs=75611 was added] to trunk. | + | 18.08.2017: USB-ejecter extension [http://code.reactos.org/changelog/reactos?cs=75611 was added] to trunk. |
*<s>{{JIRA|13841}}</s> - implementation of eject CD/DVD/USB | *<s>{{JIRA|13841}}</s> - implementation of eject CD/DVD/USB | ||
+ | |||
=====QuickLaunch panel===== | =====QuickLaunch panel===== | ||
− | 20.10.2017 [http://github.com/reactos/reactos/commit/37e6151b40178a2cbea3fc17999eaa35d328666c | + | 20.10.2017: [http://github.com/reactos/reactos/commit/37e6151b40178a2cbea3fc17999eaa35d328666c Quick launch panel extension] was implemented. |
− | For filling panel | + | For filling panel, adding shortcuts to '''C:\Documents and Settings\%username%\Application Data\Microsoft\Internet Explorer\Quick Launch''' folder is needed. |
Also, you can create user bar. | Also, you can create user bar. | ||
− | The panel is created on the right. You can't move it. Shortcuts runs | + | The panel is created on the right. You can't move it. Shortcuts runs You can show/hide text and title, close panel. You can reduce the panel, but hidden icons aren't restored. Bug: you can't swap without errors quickstart panel and taskbar. |
===Sort arrows=== | ===Sort arrows=== | ||
− | 13.07.2017 | + | 13.07.2017: In the shell, [http://code.reactos.org/changelog/reactos?cs=75325 was implemented] [http://jira.reactos.org/browse/CORE-11776 sort arrows] in the list. |
===HotKeys=== | ===HotKeys=== | ||
Line 341: | Line 655: | ||
! Color and value | ! Color and value | ||
|- | |- | ||
− | | style="background:salmon;"| Not | + | | style="background:salmon;"| Not functioning |
|- | |- | ||
| style="background:#a0e75a;"| Implemented | | style="background:#a0e75a;"| Implemented | ||
|- | |- | ||
| style="background:#FCED8D;"| Not tested | | style="background:#FCED8D;"| Not tested | ||
+ | |- | ||
+ | | style="background:#FF8000;"| Missing in Windows XP (or only in programs) | ||
|} | |} | ||
Line 359: | Line 675: | ||
| style="background:salmon;"|CTRL + F | | style="background:salmon;"|CTRL + F | ||
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + G |
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + N |
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + O |
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + P |
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + S |
|- | |- | ||
| style="background:#a0e75a;"|CTRL + V | | style="background:#a0e75a;"|CTRL + V | ||
Line 375: | Line 691: | ||
|style="background:#FCED8D;" |CTRL + Z | |style="background:#FCED8D;" |CTRL + Z | ||
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + F4 |
|- | |- | ||
|style="background:#FCED8D;" |CTRL + while dragging an item | |style="background:#FCED8D;" |CTRL + while dragging an item | ||
Line 383: | Line 699: | ||
| style="background:salmon;"|CTRL + ESC | | style="background:salmon;"|CTRL + ESC | ||
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|CTRL + F6 |
|- | |- | ||
! rowspan="?"| ALT | ! rowspan="?"| ALT | ||
Line 395: | Line 711: | ||
| style="background:#a0e75a;"|ALT+TAB | | style="background:#a0e75a;"|ALT+TAB | ||
|- | |- | ||
− | |style="background:# | + | | style="background:#FF8000;"|ALT+ESC |
|- | |- | ||
! rowspan="?"| FUN | ! rowspan="?"| FUN | ||
Line 480: | Line 796: | ||
| style="background:#a0e75a;"|RIGHT ARROW | | style="background:#a0e75a;"|RIGHT ARROW | ||
|} | |} | ||
+ | |||
+ | === Right click drag menu === | ||
+ | *[http://github.com/reactos/reactos/commit/5bef945cc9ef223f9c85ededcbfa8f5f9410dcb9 5bef945] - Added resources strings | ||
+ | *[http://github.com/reactos/reactos/commit/8f8ab050db7fde50f09995f63d580f70645bece8 8f8ab05] - Implementation of GetItemPosition, SelectAndPositionItems, IsDropOnSource, GetDragPoint | ||
+ | *[http://github.com/reactos/reactos/commit/6d91269edaf26cbea019577b9b14faf7d04a8d33 6d91269] - Initial implementation of right click drag menu | ||
==Other classes== | ==Other classes== | ||
===CMergedFolder=== | ===CMergedFolder=== | ||
− | The CMergedFolder class structure is set of classes, whose primary purpose of the merged folder is the ability to aggregate the contents of multiple shell folders into one virtual folder that includes items from all of the sources, and also merges the child items of the same name into one virtual item. | + | The CMergedFolder class structure is a set of classes, whose primary purpose of the merged folder is the ability to aggregate the contents of multiple shell folders into one virtual folder that includes items from all of the sources, and also merges the child items of the same name into one virtual item. |
− | Implementation was started 28.06.2014 and finished 13.07.2014. | + | Implementation was started on 28.06.2014 and finished on 13.07.2014. |
− | It used in: | + | It is used in: |
====Programs==== | ====Programs==== | ||
− | CMergedFolder allows | + | CMergedFolder allows displaying shortcuts in the start menu from two folders: |
*"Programs" (content of ''%userprofile%/Start menu/Programs'' and ''All Users/Start menu/Programs''). | *"Programs" (content of ''%userprofile%/Start menu/Programs'' and ''All Users/Start menu/Programs''). | ||
*"Start menu" (content of ''%userprofile%/Start menu'' and ''All Users/Start menu'') | *"Start menu" (content of ''%userprofile%/Start menu'' and ''All Users/Start menu'') | ||
====Favourites==== | ====Favourites==== | ||
− | Favourites | + | Favourites displays shortcuts from ''%userprofile%/Favourites''. |
==== Recent documents ==== | ==== Recent documents ==== | ||
− | Recent documents in the | + | Recent documents in the start menu, with using CMergedFolder to show files from ''%userprofile%/Recent''. |
===CFocusManager=== | ===CFocusManager=== | ||
− | + | This class is needed for determination and set focus area and for setting elements, which have focus on menu panel. Its implementation was started together with menu panel. | |
===CShellDispatch=== | ===CShellDispatch=== | ||
− | CShellDispatch implements objects of [http://msdn.microsoft.com/en-us/library/windows/desktop/gg537707(v=vs.85).aspx IShellDispatch] v1-6. Since ReactOS seeks to compatibility with Win2k3, then | + | CShellDispatch implements objects of [http://msdn.microsoft.com/en-us/library/windows/desktop/gg537707(v=vs.85).aspx IShellDispatch] v1-6. Since ReactOS seeks to compatibility with Win2k3, then it will be implemented as v1-4. ({{JIRA|6892}}) |
− | The | + | The IShellDispatch2 is planned to be taken from Wine, converted it to C++, added to ReactOS and finalized. |
− | Also, in shldisp.idl | + | Also, in shldisp.idl, IShellDispatch3 and IShellDispatch4 are missing (and v5 and v6, but they are not included in W2k3). These and tests, which will be written later, will be sent to Wine. |
− | First commits was in | + | First commits was in r71116 and 71117. |
*{{JIRA|12955}} - implementation: | *{{JIRA|12955}} - implementation: | ||
**''ShellExecute'' - performs a specified operation on a specified file[http://msdn.microsoft.com/en-us/library/windows/desktop/bb774148(v=vs.85).aspx] | **''ShellExecute'' - performs a specified operation on a specified file[http://msdn.microsoft.com/en-us/library/windows/desktop/bb774148(v=vs.85).aspx] | ||
**''IsServiceRunning'' - returns a value that indicates whether a particular service is running.[http://msdn.microsoft.com/en-us/library/windows/desktop/bb774142(v=vs.85).aspx] | **''IsServiceRunning'' - returns a value that indicates whether a particular service is running.[http://msdn.microsoft.com/en-us/library/windows/desktop/bb774142(v=vs.85).aspx] | ||
− | *''ShutdownWindows'' was implemented 02.04.2017 in r74268 - | + | *''ShutdownWindows'' was implemented on 02.04.2017 in r74268 - shows shutdown dialog[http://msdn.microsoft.com/en-us/library/windows/desktop/gg537727(v=vs.85).aspx] |
===PaintMenuBar=== | ===PaintMenuBar=== | ||
− | 31.03.2017 Giannis [http://github.com/reactos/reactos/commit/cf6d69d369b6661fc359621996873b18259b77fb | + | 31.03.2017: Giannis [http://github.com/reactos/reactos/commit/cf6d69d369b6661fc359621996873b18259b77fb added] the prototype of function [http://documentation.devexpress.com/#windowsforms/DevExpressXtraBarsPopupMenu_PaintMenuBartopic PaintMenuBar], which draws gradient and text on the side of menu (for example Start). |
+ | |||
+ | ===Task pane=== | ||
+ | DirectUI (from 2k3 and xp) will not be implemented due it's largely undocumented. <s>({{JIRA|11401}})</s> | ||
− | + | Developers planning to implement Vista+ interfaces IExplorerCommand / ExplorerCommandProvider as replacement of the DirectUI. ({{JIRA|14175}}) | |
− | |||
==Themes in new explorer== | ==Themes in new explorer== | ||
− | *27.08.2017 | + | *27.08.2017: Support of alpha-channels in the themes (<s>{{JIRA|13464}}</s> was fixed in [http://code.reactos.org/changelog/reactos?cs=75688 r75688]) |
==Settings via registry== | ==Settings via registry== | ||
Line 527: | Line 850: | ||
'''HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\''' | '''HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\''' | ||
− | *Hidden - | + | *Hidden - shows hidden folders and files |
− | *HideFileExt - | + | *HideFileExt - hides files extensions |
*ListviewShadow - shadows at icons text on the desktop | *ListviewShadow - shadows at icons text on the desktop | ||
*StartMenuLogoff - "Logoff" item in the Start | *StartMenuLogoff - "Logoff" item in the Start | ||
==Links== | ==Links== | ||
+ | *[[Shell Documentation]] | ||
+ | *[[Shell status]] | ||
*[http://docs.google.com/document/d/1O0RXqmm4bZWxrorFBitJvRgJZUrmvD20SG3TZuuP8BA ShellTODO List by Gigaherz] | *[http://docs.google.com/document/d/1O0RXqmm4bZWxrorFBitJvRgJZUrmvD20SG3TZuuP8BA ShellTODO List by Gigaherz] |
Revision as of 18:38, 9 April 2018
Contents
- 1 About Shell
- 1.1 Progress
- 1.2 Shell32 components scheme
- 1.3 Unimplemented features
- 1.4 Reports in the bugtracker
- 1.5 Reorganization of shell resources
- 1.6 Components
- 1.7 Additional features
- 1.8 Other classes
- 1.9 Themes in new explorer
- 1.10 Settings via registry
- 1.11 Links
About Shell
Progress
- 13.07.2014 - CMergedFolder was completed.
- 24.08.2014 - hotkeys Ctrl+C, Ctrl+X, Ctrl+V was implemented.
- 28.09.2014 - IPC was implemented.
Shell32 components scheme
Unimplemented features
- DDE
Reports in the bugtracker
- shell/explorer issues (CORE-5620)
- Major unimplemented features of the shell (CORE-9277)
- shell32: shell icon cache and icon extractors need to be rewritten (CORE-7563)
Reorganization of shell resources
As part of his work (CORE-10030), Robert Naumann:
- Reworked the property dialogs, made them nicer, added missing resources and removed unneeded ones
- Changed the start menu icon from an icon to a bitmap resource
- Fixed existing and add missing icons
- Reorganized the resource folder structure
Components
Browseui.dll
As of 13.07.2017:
- contents of current folder are displayed
- icon is displayed in the header
- buttons are displayed
- buttons have icons
- list mode has sort arrows
Button implementations
The buttons in the file browser toolbar can be subdivided into 4 groups:
- The navigation buttons, with history back/forward and “up”,
- The sidebar buttons, with “folders” and “search”,
- The file operations, with “copy to”, “move to”, “delete” and “undo”,
- The view mode, which shows a dropdown to select the listview style.
Works:
- navigation
- view mode
- folders
In progress
- copy to/move to (CORE-11132)
Shdocvw
Shdocvw.dll is a library which contains the user interface portions of both Internet Explorer and the file system. In this context, the file system is the Windows Explorer accessory that you use to browse Windows folders and files. The "SHDocVw.dll" library is a COM object, it is not managed.
CORE-14172 - AddUrlToFavorites
Implemented functions | ||
---|---|---|
Function | Applicable Versions | Status |
AddUrlToFavorites | 4.71 and higher | |
CallRegisterServer_RunDLL | 4.70 from Internet Explorer 3.00 only | |
CDDEAuto_Navigate (162) | 4.71 and higher | |
ClearAutoSuggestForForms (211) | 5.0 and higher | |
ClearExtensionRecordsBlockReason (234) | 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher | |
CreateFromDesktop (115) | 4.71 and higher | |
CreateShortcutInDirA (102) | 4.70 from Windows 95 OSR2, and higher | |
CreateShortcutInDirW (103) | 4.70 from Windows 95 OSR2, and higher | |
CreateShortcutInDirEx (105) | 5.0 and higher | |
CShellUIHelper_CreateInstance2 (152) | 4.71 and higher | |
DDECreatePostNotify (116) | 5.0 and higher | |
DDEHandleViewFolderNotify (117) | 4.71 and higher | |
_DeletePidlDPA (171) | 5.0 and higher | |
DetectAndFixAssociations (175) | 5.0 and higher | |
DisplayUrlParseError (199) | 5.0 from before Windows 2000; 6.0 from Windows Vista, and higher | |
DllCanUnloadNow | 4.70 and higher | |
DllGetClassObject | 4.70 and higher | |
DllGetVersion | 4.70 from Internet Explorer 3.01, and higher | |
DllInstall | 4.71 up to but not including 6.0 from Windows Vista | |
DllRegisterServer | 4.70 up to but not including 6.0 from Windows Vista | |
DllRegisterWindowClasses | 4.71 and higher | |
DllUnregisterServer | 4.70 up to but not including 6.0 from Windows Vista | |
DoAddToFavDlg | 4.70 from Windows 95 OSR2, and higher | |
DoAddToFavDlgW | 5.0 and higher | |
DoFileDownload | 4.70 from Windows 95 OSR2, and higher | |
DoFileDownloadEx | 4.70 from Internet Explorer 3.02, and higher | |
DoOrganizeFavDlg | 4.70 from Windows 95 OSR2, and higher | |
DoOrganizeFavDlgW | 5.0 and higher | |
DoPrivacyDlg | 6.0 and higher | |
DragDrop (140) | 5.0 and higher | |
EnsureWebViewRegSettings (176) | 5.0 and higher | |
FireEvent_Quit (185) | 5.0 and higher | |
GetDefaultInternetSearchUrlA (217) | 5.0 and higher | |
GetDefaultInternetSearchUrlW (216) | 5.0 and higher | |
GetExtensionRecordBlockReason (233) | 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher | |
GetExtensionRecords (232) | 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher | |
GetLeakDetectionFunctionTable (161) | 4.71 and higher | |
GetLinkInfo (212) | 5.0 and higher | |
GetSearchAssistantUrlA (215) | 5.0 and higher | |
GetSearchAssistantUrlW (214) | 5.0 and higher | |
_GetStdLocation (150) | 5.0 and higher | |
HlinkFindFrame | 4.71 and higher | |
HlinkFrameNavigate | 4.70 from Windows 95 OSR2 and higher | |
HlinkFrameNavigateNHL | 4.71 and higher | |
IEAboutBox | 4.70 from Windows 95 OSR2 and higher, only | |
IEBindToObject (146) | 5.0 and higher | |
IEBindToObjectEx (149) | 5.0 from Windows 2000, and higher | |
IECleanUpAutomationObject (194) | 5.0 and higher | |
IEDDE_NewWindow (197) | 5.0 and higher | |
IEDDE_WindowDestroyed (196) | 5.0 and higher | |
IEGetAttributesOf (145) | 5.0 and higher | |
IEGetDisplayName (148) (189) | 5.0 and higher | |
IEGetNameAndFlags (147) | 5.0 and higher | |
IEILIsEqual (219) | 5.0 and higher | |
IEInvalidateImageList (141) | 5.0 and higher | |
IEIsLinkSafe (226) | 5.0 from Windows 2000, and higher | |
IEMapPIDLToSystemImageListIndex (142) | 5.0 and higher | |
IEOnFirstBrowserCreation (195) | 5.0 and higher | |
IEParseDisplayNameWithBCW (218) | 5.0 and higher | |
IEWinMain (101) | 4.70 and higher | |
IEWriteErrorLog | 4.71 up to but not including 6.0 from Windows Vista | |
ILCreateFromPathCPWithBCA (221) | 5.0 and higher | |
ILCreateFromPathCPWithBCW (222) | 5.0 and higher | |
ILIsWeb (143) | 5.0 and higher | |
ImportPrivacySettings | 6.0 and higher | |
InstallReg_RunDLL | 4.70 from Windows 95 OSR2 and higher, only | |
IsErrorUrl (198) | 5.0 and higher | |
IsFileUrl (135) | 5.0 and higher | |
IsFileUrlW (136) | 5.0 and higher | |
IsIEDefaultBrowser (167) | 5.0 and higher | |
IsResetWebSettingsRequired (224) | 5.0 and higher | |
IsURLChild (153) | 5.0 and higher | |
IURLQualify (172) | 5.0 and higher | |
JITCoCreateInstance (209) | 5.0 and higher | |
NavToUrlUsingIEA (203) | 5.0 and higher | |
NavToUrlUsingIEW (204) | 5.0 and higher | |
OpenPidlOrderStream (139) | 5.0 and higher | |
OpenURL | 4.71 and higher | |
ParseURLFromOutsideSourceA (169) | 5.0 and higher | |
ParseURLFromOutsideSourceW (170) | 5.0 and higher | |
PathIsFilePath (137) | 5.0 and higher | |
PrepareURLForDisplayUTF8W (225) | 5.0 from Windows 2000, and higher | |
RecordExtensionCreation (231) | 6.0 from Windows XP SP2 and Windows Server 2003 SP1, and higher | |
ResetProfileSharing (164) | 4.71 and higher | |
ResetWebSettings (223) | 5.0 and higher | |
RunInstallUninstallStubs (125) | 4.71 and higher | |
RunInstallUninstallStubs2 (130) | 4.71 and higher | |
SafeOpenPromptForPackager (229) | 6.0 from Windows XP SP1, and higher | |
SafeOpenPromptForShellExec (228) | 6.0 from Windows XP SP1, and higher | |
SearchForElementInHead (208) | 5.0 and higher | |
SetQueryNetSessionCount | 4.71 and higher | |
SetShellOfflineState | 5.0 and higher | |
SHAddSubscribeFavorite | 4.71 and higher | |
SHCreateDesktop (119) | 4.71 and higher | |
SHCreateSplashScreen (131) | 4.71 and higher | |
SHDesktopMessageLoop (120) | 4.71 and higher | |
SHDGetPageLocation (187) | 5.0 and higher | |
ShellDDEInit (118) | 4.71 and higher | |
SHGetHistoryPIDL (192) | 5.0 and higher | |
SHGetIDispatchForFolder | 4.71 and higher | |
SHGetViewStream (200) | 5.0 and higher | |
SHIEErrorMsgBox (188) | 5.0 and higher | |
SHIsGlobalOffline (174) | 5.0 and higher | |
SHIsRegisteredClient (191) | 5.0 and higher | |
SHIsRestricted (173) | 5.0 and higher | |
SHIsRestricted2W (160) | 5.0 and higher | |
SHMapNbspToSp (183) | 5.0 and higher | |
ShowUrlInNewBrowserInstance (230) | 6.0 from Windows XP SP2, and higher | |
SHRestricted2A (158) | 4.71 and higher | |
SHRestricted2W (159) | 4.71 and higher | |
SHRunIndirectRegClientCommand (190) | 5.0 from before Windows 2000; 5.50 and higher | |
SHUseClassicToolbarGlyphs (227) | 6.0 and higher | |
SoftwareUpdateMessageBox | 4.71 and higher | |
StopWatch (123) | 4.71 and higher | |
StopWatchFlush (122) | 4.71 and higher | |
StopWatchMode (121) | 4.71 and higher | |
UrlHitsNetW (210) | 5.0 and higher | |
URLQualifyA | 4.70 and higher | |
URLQualifyW | 4.70 and higher | |
URLSubLoadString (138) | 5.0 and higher | |
URLSubRegQueryA (151) | 4.71 and higher | |
URLSubstitution (150) | 4.71 and 4.72 | |
URLSubstitution (165) | 5.0 and higher | |
UseCustomInternetSearch (213) | 5.0 and higher | |
WhichPlatform (104) | 4.71 and higher | |
WinList_FindFolderWindow (178) | 5.0 and higher | |
WinList_GetShellWindows (179) | 5.0 and higher | |
WinList_Init (110) | 4.71 and higher | |
WinList_NotifyNewLocation (177) | 5.0 and higher | |
WinList_RegisterPending (180) | 5.0 and higher | |
WinList_Revoke (181) | 5.0 and higher | |
WinList_Terminate (111) | 4.71 and higher | |
unknown (220) | 5.0 and 5.50 |
Dynamic Data Exchange
24.08.2014: DDE base code was imported from trunk.
29.09.2014: Work on it was started.
After test and debug of component in Windows, Gigaherz added it to Shell32 and test it in ReactOS.
Due to bugs in the win32k, DDE implementation is badly broken and developer set it aside, they needs to be fixed. [1]
IPC
IPC mechanism is used by browseui to open new windows in the existing process. This function was implemented on 28.09.2014[2].
- CORE-12577 - disable IPC via registry
Sidebar
03.12.2014: Implementation of CExplorerBand class was started , which needed for sidebar. Gigaherz added this class to research sidebar implementation in Windows.
05.02.2016: Patch (CORE-10838) with initial implementation of classes BaseBar and CBaseBarSite was published .
19.02.2016: Sylvain Deverre started working on sidebar in github-repo.
30.05.2016: Results of his work was added to trunk.
01.06.2016: Sidebar was implemented.
26.07.2016: In the sidebar, expanding the tree view to the current folder when a new folder is being browsed and showing the context menu on right click was implemented.
02.08.2016: In the sidebar, displaying of disk name was implemented.
01.02.2017: In the sidebar, rudimentary support for drag icons was implemented.
Command line parameters
08.09.2014: Base of parser of command line parameters was written.
The report CORE-12163 was closed 07.11.2016.
Now, explorer supports these parameters:
- /separate
- /e
- /select
Desktop
05.02.2017: In the trunk, auto updating of desktop after its content changed was implemented.
Hide desktop icons
Taskbar
15.05.2014: Work on taskbar was started.
As of 31.07.2017:
- windows list displays
- you can minimize/restore windows with left-click
- you can call windows action-list with right-click
- taskbar autohide is implemented
- taskbar size changing to certain step
Taskbar settings
14.07.2017: Robert Naumann started implementation of taskbar settings saving/loading. (CORE-11498)
01.11.2017: in revision 2ed535d (0.4.8-dev-46) Giannis implemented some taskbar settings (lock, keep on top of other windows, auto-hide, show clock, show seconds). Others will be implemented later.
- CORE-14318 - Implement "Show the Desktop" action
The notification area
The notification area was implemented on 05.07.2014. Now:
- in the tray, apps icons are displayed
- you can minimize/restore apps with left-click
- you can call app action-list with right-click
- hiding of inactive icons is not implemented
- 24-01-2018 David Quintana was implement rudimentary uVersion management, and notification balloons.
- Managing hiding behavior for tray notification icons- PR-418, CORE-10849
Shell service objects
Shell service objects is a component, which implements sound, battery, safely remove and other icons in the system tray. Its implementation was started on 23.07.2014.
17.08.2014: basic functions was implemented.
Next work
23-24.03.2017: Eric Kohl implemented:
- r74225 - Implement code to show and hide the power and volume icons in the notification area aka systray.
- r74226 - Show and hide the power systray icon.
- r74228 - Implement the power schemes popup menu.
- r74227 - Show and hide the volume systray icon.
25-feb-2018 40bd09a - Tray volume dialog implementation
Address bar
04.05.2014: Work on address bar was started.
As of 25.08.2016:
- implemented:
- displaying current path
- icon
- recognition support
- system folder name is displayed instead GUID/CLSID
- when pressing Enter, browsing to adress
- addressbar autoresizing
- addressbar combobox
CLSID
Color and value |
---|
Not functioning |
Implemented |
Missing in Windows XP |
About unimplemented CLSIDs:
- Network Computers - in Windows XP opens "search results of computers"
- Scheduled Tasks - opens the relevant folder
Other CLSIDs are missing in NT5.
CLSID |
---|
Administrative Tools |
Briefcase |
Control Panel |
Fonts |
History |
Inbox |
MS Network |
My Computer |
My Documents |
My Network Places |
Network Computers |
Network Connections |
Printers and Faxes |
Programs Folder |
Recycle Bin |
Scanners and Cameras |
Scheduled Tasks |
Start Menu Folder |
Temporary Internet Files |
Web Folders |
Menu bar
Unimplemented items are displayed as inactive. It works with keyboard control.
Missing
- CORE-11467 - ReactOS logo in menu band
Menu items implementation
Color and value |
---|
Not functioning |
Implemented |
Menu | |
---|---|
File | Close |
Edit | Undo |
Cut | |
Copy | |
Paste | |
Paste Shortcut | |
Copy To Folder... | |
Move To Folder... | |
Select All | |
Invert Selection | |
View | Toolbars |
Status Bar | |
Explorer Bar | |
Icon sizes | |
Go to | |
Refresh | |
Favorites | Add to Favorites |
Organize Favorites | |
Tools | Map Network Drive |
Disconnect Network Drive | |
Synchronize | |
Folder Options | |
Help | About ReactOS |
Folder options
CORE-10837- Unable to launch Folder Options due to missing class- CORE-11141 - FolderOptions are unimplemented
- CORE-10800 - Improvements to Folder Options
- CORE-12906 - Changing or creating new file associations in Folder options is missing
CORE-12540- Implement TreeView of Folder Options- CORE-12906 - Folder Options: File Types: Implement
05.02.2017: folder properties dialog was implemented in r73703 with all available settings.
Copy to / Move to
18.04.2016: Barrett Karish sent a patch with implementation of this function.
Connect/disconnect network drive
03.07.2017: Jared Smudde started implementation of netplwiz.dll library, which performs this function.
"Start"
Start setting
- 21.11.2015: in r69992, implementation of setting dialog of classic start menu was started.
- 22.11.2015: in r70001, these buttons were implemented:
- Add > open shortcut wizard
- Advanced > open %username%/Start menu
- Clear > Clears %username%/Recent
Shutdown dialog
29.09.2014: in shell-experiments, a patch with new shutdown dialog was applied.
ShellBag
ShellBag information is a set of subkeys in a user registry hive (eg. ntuser.dat and usrclass.dat files) used by the Windows operating system to track user window viewing preferences. It does this by storing various Windows Explorer settings that relates to dimensions, settings, etc. This allows one to reopen the same folder at a later time with the settings from the previous time. Each user will have separate preferences for folders, and therefore, these settings are stored in the appropriate user hive.[3]
Additional features
Copy dialog
Work on copy dialog was started in November 2014. (CORE-4476)
- 23.02.2015: It was implemented, but without animation.
- 23.04.2015: Animation was implemented.
Implementation of this feature was started on 17.02.2015 and finished on 14.03.2015. (CORE-9207)
Shell extensions
Browser of registry and NT-objects
15.03.2015: Exploring registry and NT objects from explorer was implemented. CORE-9244
Virtual desktops
This function may be implemented as a shell extension.
Improve support for shell extensions
Shell Namespace Extensions
- shell32: rewrite shell folders implementation (CORE-7585)
Zip folder namespace extension
This extension was implemented 7-apr-2018.
Taskbar extensions
They were implemented in GSoC. (quick start panel, battery state, and usb-ejecter)
18.08.2017: USB-ejecter extension was added to trunk.
CORE-13841- implementation of eject CD/DVD/USB
QuickLaunch panel
20.10.2017: Quick launch panel extension was implemented.
For filling panel, adding shortcuts to C:\Documents and Settings\%username%\Application Data\Microsoft\Internet Explorer\Quick Launch folder is needed.
Also, you can create user bar.
The panel is created on the right. You can't move it. Shortcuts runs You can show/hide text and title, close panel. You can reduce the panel, but hidden icons aren't restored. Bug: you can't swap without errors quickstart panel and taskbar.
Sort arrows
13.07.2017: In the shell, was implemented sort arrows in the list.
HotKeys
Color and value |
---|
Not functioning |
Implemented |
Not tested |
Missing in Windows XP (or only in programs) |
Hotkeys | |
---|---|
CTRL | |
CTRL + A | |
CTRL + C | |
CTRL + F | |
CTRL + G | |
CTRL + N | |
CTRL + O | |
CTRL + P | |
CTRL + S | |
CTRL + V | |
CTRL + X | |
CTRL + Z | |
CTRL + F4 | |
CTRL + while dragging an item | |
CTRL + SHIFT with arrow keys | |
CTRL + ESC | |
CTRL + F6 | |
ALT | |
ALT+ENTER | |
ALT+F4 | |
ALT+SPACEBAR | |
ALT+TAB | |
ALT+ESC | |
FUN | |
F1 | |
F2 | |
F3 | |
F4 | |
F5 | |
F6 | |
F10 | |
WIN | |
Windows Logo | |
Windows Logo+BREAK | |
Windows Logo+D | |
Windows Logo+M | |
Windows Logo+SHIFT+M | |
Windows Logo+E | |
Windows Logo+F | |
CTRL+Windows Logo+F | |
Windows Logo+F1 | |
Windows Logo+ L | |
Windows Logo+R | |
Windows Logo+U | |
dialogue | |
TAB | |
SHIFT+TAB | |
CTRL+TAB | |
CTRL+SHIFT+TAB | |
ALT+Underlined letter | |
ENTER | |
SPACEBAR | |
F1 | |
F4 | |
Arrow keys | |
BACKSPACE | |
Explorer | |
END | |
HOME | |
NUM LOCK+Asterisk sign (*) | |
NUM LOCK+Plus sign (+) | |
NUM LOCK+Minus sign (-) | |
LEFT ARROW | |
RIGHT ARROW |
- 5bef945 - Added resources strings
- 8f8ab05 - Implementation of GetItemPosition, SelectAndPositionItems, IsDropOnSource, GetDragPoint
- 6d91269 - Initial implementation of right click drag menu
Other classes
CMergedFolder
The CMergedFolder class structure is a set of classes, whose primary purpose of the merged folder is the ability to aggregate the contents of multiple shell folders into one virtual folder that includes items from all of the sources, and also merges the child items of the same name into one virtual item.
Implementation was started on 28.06.2014 and finished on 13.07.2014.
It is used in:
Programs
CMergedFolder allows displaying shortcuts in the start menu from two folders:
- "Programs" (content of %userprofile%/Start menu/Programs and All Users/Start menu/Programs).
- "Start menu" (content of %userprofile%/Start menu and All Users/Start menu)
Favourites
Favourites displays shortcuts from %userprofile%/Favourites.
Recent documents
Recent documents in the start menu, with using CMergedFolder to show files from %userprofile%/Recent.
CFocusManager
This class is needed for determination and set focus area and for setting elements, which have focus on menu panel. Its implementation was started together with menu panel.
CShellDispatch
CShellDispatch implements objects of IShellDispatch v1-6. Since ReactOS seeks to compatibility with Win2k3, then it will be implemented as v1-4. (CORE-6892)
The IShellDispatch2 is planned to be taken from Wine, converted it to C++, added to ReactOS and finalized.
Also, in shldisp.idl, IShellDispatch3 and IShellDispatch4 are missing (and v5 and v6, but they are not included in W2k3). These and tests, which will be written later, will be sent to Wine.
First commits was in r71116 and 71117.
- CORE-12955 - implementation:
- ShutdownWindows was implemented on 02.04.2017 in r74268 - shows shutdown dialog[6]
PaintMenuBar
31.03.2017: Giannis added the prototype of function PaintMenuBar, which draws gradient and text on the side of menu (for example Start).
Task pane
DirectUI (from 2k3 and xp) will not be implemented due it's largely undocumented. (CORE-11401)
Developers planning to implement Vista+ interfaces IExplorerCommand / ExplorerCommandProvider as replacement of the DirectUI. (CORE-14175)
Themes in new explorer
- 27.08.2017: Support of alpha-channels in the themes (
CORE-13464was fixed in r75688)
Settings via registry
You can change some parameters in registry.
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\
- Hidden - shows hidden folders and files
- HideFileExt - hides files extensions
- ListviewShadow - shadows at icons text on the desktop
- StartMenuLogoff - "Logoff" item in the Start