Shell status

From ReactOS Wiki
Revision as of 01:59, 2 January 2018 by Smiley (talk | contribs)
Jump to: navigation, search

This is WIP. For now I tried to list as many parts of shell32 as possible. Note that I'm comparing ros shell with windows 2003 one here.

Current Status and Roadmap

Legend: Symbol support vote.png means only bugfixes needed. Symbol oppose vote.png means unimplemented. Symbol neutral vote.png means that it needs lots of work, either it is too buggy or implemented in a hacky/wrong way.

Core services

Core functions of the shell
Symbol neutral vote.png ShellExecuteExW
Symbol neutral vote.png SHChangeNotifyRegister, SHChangeNotifyDeregister, SHChangeNotify
Symbol neutral vote.png SHFileOperationW
Symbol support vote.png Shell_NotifyIconW (this is a mere forwarder of the notifications to explorer. The forwarder is complete but a lot of stuff in explorer's end need work for this to seem to work properly)
Symbol support vote.png SHBrowseForFolderW
Symbol neutral vote.png Control_RunDLLW
Symbol neutral vote.png SHMapPIDLToSystemImageListIndex
Symbol oppose vote.png SHMapIDListToImageListIndexAsync
Symbol oppose vote.png DAD_* functions
Symbol support vote.png CShellItem
Symbol neutral vote.png CQueryAssociations
Symbol oppose vote.png CDragDropHelper
Symbol oppose vote.png SHAppBarMessage
Symbol oppose vote.png OpenAs_RunDLL

Def namespace objects

Core objects that are used by the namespace components
Symbol support vote.png CDefaultContextMenu (called CDefFolderMenu in windows)
Symbol support vote.png CDefView
Symbol neutral vote.png CExtractIcon


The components that constitute the shell namespace
Symbol support vote.png CRegFolder
Symbol support vote.png CDesktopFolder
Symbol support vote.png CDrivesFolder
Symbol support vote.png CFSFolder
Symbol support vote.png CControlPanelFolder
Symbol support vote.png CRecycleBinFolder
Symbol neutral vote.png CNetFolder
Symbol neutral vote.png CMergedFolder
Symbol neutral vote.png CPrintersFolder
Symbol oppose vote.png CCDBurnFolder

Shell menus

Components that implement the menu like toolbars of the shell
Symbol support vote.png CMenuBand
Symbol support vote.png CMenuDeskBar
Symbol support vote.png CMenuSite
Symbol support vote.png CStartMenu
Symbol oppose vote.png CPersonalStartMenu: Used by the modern start menu. It implements the all programs popup menu.
Symbol oppose vote.png CTrackShellMenu: Find out that this is for

Built in shell extensions

Components that aren't part of the core and are mostly instantiated in the same way shell extensions are
Symbol support vote.png CShellLink
Symbol support vote.png CNewMenu
Symbol support vote.png COpenWithMenu
Symbol support vote.png CExeDropHandler
Symbol support vote.png CFileDefExt
Symbol support vote.png CDrvDefExt
Symbol support vote.png CFolderOptions
Symbol oppose vote.png CFileSearchBand
Symbol oppose vote.png CFolderShortcut
Symbol oppose vote.png CSendToMenu
Symbol oppose vote.png CCDBurn
Symbol oppose vote.png CCopyMoveToMenu
Symbol oppose vote.png CStartMenuPin
Symbol oppose vote.png CBurnAudioCDExtension

Shell automation

Components exposing shell functionality with the IDispatch interface. As of now these are barely implemented
Symbol neutral vote.png CShellDispatch
Symbol neutral vote.png CFolder
Symbol neutral vote.png CFolderItem, CFolderItems
Symbol neutral vote.png CFolderItemVerb, CFolderItemVerbs
Symbol neutral vote.png CDefViewDual (called CShellFolderView in windows)
Symbol oppose vote.png CShellFolderViewOC: Find out what this is for

Shell desktop

Components used by explorer that implement most of the desktop
Symbol support vote.png SHCreateDesktop Symbol support vote.png SHDesktopMessageLoop Symbol support vote.png ShellDDEInit

Components intentionally ignored

Misc components with 0 chance to get implemented
Symbol oppose vote.png CActiveDesktop Symbol oppose vote.png CBriefcase Symbol oppose vote.png CDUIView Symbol oppose vote.png DirectUI:: Symbol oppose vote.png Expando

Uncategorized components

Misc components that I don't know what they are for
Symbol oppose vote.png CDeskMovr Symbol oppose vote.png CFolderViewHost Symbol oppose vote.png CQuickLinks Symbol oppose vote.png CThumbnail