Namespace Extensions Extend Windows Explorer with IShellFolder2, IEnumIDList, IContextMenu3, IDataObject On the Windows Desktop, s hell extensions enable There are a number of custom sources of hierarchical independent software vendors to extend the Windows data that would nicely extend the “system” namespace. Shell and its namespace with their own functionality. By programmatically extending we may The Windows shell namespace is an extensible provide integrated browsing capabilities for these. hierarchical collection of naming and other info related to directories, files, printers and networks. The Windows Shell namespace extensions are an ideal solution where Shell, including the Desktop, File Explorer and the there is a requirement to list items and attributes in a common file open/save dialogs used by most apps, hierarchical manner, or when data files should be provides extensible graphical browsers / editors for the managed on a medium other than file systems (e.g. in a shell namespace. All users of Windows are familiar with database, cloud backup or on remote devices). Other the File Explorer tool, which lets them browse the forms of shell extensions provide access to extended content of the hard disk/LAN/. functionality such as context menus or property pages. Contents of One-Day Training Course Shell Namespace Data Transfer A PC’s rooted shell namespace is a How data transfer works hierarchical collection of: The IDataObject, IDropSource • System components such as file and IDropTarget interfaces systems, printers, the control panel Data Flow Target Audience • Optional system extensions The crux of the problem is how to enable This training course • Third-party namespace extensions data to flow to all parts of the code in a targets experienced C++ COM DLL Refresher namespace extension which requires it - and COM developers who Quick review and comparison of how to • IEnumIDList for foldering want to create shell create COM DLLs in C++ using a • IDataObject for drag & drop and for namespace extensions. variety of techniques the common file dialogs Explorer & Emulating File Systems Common File Dialogs To a certain extent, though not fully, a System tools for browsing the shell namespace extension may emulate a file namespace. Writing your own browsers system Architecture We examine what does and does not work Prerequisites Examination of how a shell namespace Importance of SFGAO_FILESYSTEM attr Detailed experience of extension may be structured. Registry Example of editing files on a remote FTP C++ and COM settings. Creating a simple non-foldering development. example. The IShellFolder2 interface Special requirements for Microsoft Office Foldering file dialogs (Note: Shell extensions Develop single level foldering example Other Types of Shell should not be written Item ID Lists & the IEnumIDList interface Extensions in .NET). Cloning and non-cloning varieties of Context menu handler multi-level foldering / Node providers • Drag and Drop Handler Important registry settings • Icon Handler GUI • Property Sheet Extending Explorer’s toolbar, menubar and Designing a custom context menu handler status bar. The IExtractIcon interface Project Examination of how a shell namespace Full sample project showing how to create extension should be structured all parts of a custom Windows Shell Develop single level foldering example namespace extension; Item ID Lists & the IEnumIDList interface Architecture deep dive multi-level foldering