Vanara/Windows.Shell
David Hall 55512c732e Tons of fixes and updates to IDataObject and Clipboard methods and wrapper classes. 2023-01-05 10:28:15 -07:00
..
ShellObjects Converted ShellView items returning PIDLs to return ShellItems 2022-01-22 15:32:50 -07:00
TaskBar More tweaks to allow for Shell.Common and Shell.Windows to work along with unit tests 2022-01-11 18:13:44 -07:00
ShellDataObject.cs Tons of fixes and updates to IDataObject and Clipboard methods and wrapper classes. 2023-01-05 10:28:15 -07:00
Vanara.Windows.Shell.csproj Aligned targets in high-level projects 2022-12-21 20:31:06 -07:00
pkgreadme.md Updated package readme files 2022-06-14 16:55:29 -06:00
readme.md Renamed all project report files to 'readme.md' so they show in GitHub 2022-09-01 14:43:04 -06:00

readme.md

Assembly report for Vanara.Windows.Shell.dll

Classes for Windows Shell items derived from the Vanara PInvoke libraries. Includes shell items, files, icons, links, and taskbar lists.

Enumerations

Enum Description Values
Vanara.Windows.Shell.NavigationLogDirection The direction argument for NavigateFromHistory() Forward, Backward
Vanara.Windows.Shell.SFVMUD Undocumented Flags used by Vanara.PInvoke.Shell32.IShellFolderViewCB.MessageSFVCB(Vanara.PInvoke.Shell32.SFVM,System.IntPtr,System.IntPtr,System.IntPtr@) Callback Handler. SFVM_SELECTIONCHANGED, SFVM_DRAWMENUITEM, SFVM_MEASUREMENUITEM, SFVM_EXITMENULOOP, SFVM_VIEWRELEASE, SFVM_GETNAMELENGTH, SFVM_WINDOWCLOSING, SFVM_LISTREFRESHED, SFVM_WINDOWFOCUSED, SFVM_REGISTERCOPYHOOK, SFVM_COPYHOOKCALLBACK, SFVM_ADDINGOBJECT, SFVM_REMOVINGOBJECT, SFVM_GETCOMMANDDIR, SFVM_GETCOLUMNSTREAM, SFVM_CANSELECTALL, SFVM_ISSTRICTREFRESH, SFVM_ISCHILDOBJECT, SFVM_GETEXTVIEWS, SFVM_GET_CUSTOMVIEWINFO, SFVM_ENUMERATEDITEMS, SFVM_GET_VIEW_DATA, SFVM_GET_WEBVIEW_LAYOUT, SFVM_GET_WEBVIEW_CONTENT, SFVM_GET_WEBVIEW_TASKS, SFVM_GET_WEBVIEW_THEME, SFVM_GETDEFERREDVIEWSETTINGS
Vanara.Windows.Shell.ShellBrowserViewMode Indicates the viewing mode of the ShellBrowser Icon, SmallIcon, List, Details, Thumbnail, Tile, ThumbStrip, Content, Auto
Vanara.Windows.Shell.TaskbarItemTabThumbnailOption Specifies taskbar button thumbnail tab properties. TabWindow, MainWindow, MainWindowWhenActive
Vanara.Windows.Shell.Visibility Visible, Hidden, Collapsed

Classes

Class Description
Vanara.Windows.Shell.FilterShellItemEventArgs Event argument for FilterItem event
Vanara.Windows.Shell.NavigatedEventArgs Event argument for The Navigated event
Vanara.Windows.Shell.NavigatingEventArgs Event argument for The Navigating event
Vanara.Windows.Shell.NavigationFailedEventArgs Event argument for the NavigatinoFailed event
Vanara.Windows.Shell.ShellBrowser Encapsulates a Vanara.PInvoke.Shell32.IShellBrowser-Implementation within an System.Windows.Forms.UserControl.

Implements the following Interfaces:
-
-
-

For more Information on used techniques see:
-


Known Issues:
- Using windows 10, the virtual Quick-Access folder doesn't get displayed properly. It has to be grouped by "Group" (as shown in Windows Explorer UI), but I couldn't find the OLE-Property for this. Also, if using Groups, the Frequent Files List doesn't have its Icons. Maybe we have to bind to another version of ComCtrls to get this rendered properly - That's just an idea though, cause the Collapse-/Expand-Icons of the Groups have the Windows Vista / Windows 7-Theme, not the Windows 10 Theme as I can see.
- DONE: Keyboard input doesn't work so far.
- DONE: Only Details-Mode should have column headers: (Using Shell32.FOLDERFLAGS.FWF_NOHEADERINALLVIEWS)
https://stackoverflow.com/questions/11776266/ishellview-columnheaders-not-hidden-if-autoview-does-not-choose-details - TODO: CustomDraw, when currently no shellView available
- DONE: Network folder: E_FAIL => DONE: Returning HRESULT.E_NOTIMPL from MessageSFVCB fixes this
- DONE: Disk Drive (empty): E_CANCELLED_BY_USER
- DONE: Disable header in Details view when grouping is enabled - DONE: Creating ViewWindow using '.CreateViewWindow()' fails on Zip-Folders; => Fixed again by returning HRESULT.E_NOTIMPL from MessageSFVCB - TODO: internal static readonly bool IsMinVista = Environment.OSVersion.Version.Major >= 6; // TODO: We use one interface, afaik, that only works in vista and above: IFolderView2 - TODO: Windows 10' Quick Access folder has a special type of grouping, can't find out how this works yet. As soon as we would be able to get all the available properties for an particular item, we would be able found out how this grouping works. However, it seems to be a special group, since folders are Tiles, whereas files are shown in Details mode. - NOTE: The grouping is done by 'Group'. Activate it using "Group by->More->Group", and then do the grouping. However, the Icons for 'Recent Files'-Group get lost. - TODO: ViewMode-Property, Thumbnailsize => Set ThumbnailSize for Large, ExtraLarge, etc. - DONE: Keyboard-Handling - DONE: BrowseObject ->Parent -> Relative - TODO: Properties in design editor!!! - TODO: Write History correctly! - TODO: Check getting / losing Focus! again - TODO: Context-Menu -> "Open File Location" doesn't work on folder "Quick Access" - TODO: When columns get reordered in details mode, then navigate to another folder, then back => column content gets messed NOTE: https://stackoverflow.com/questions/7698602/how-to-get-embedded-explorer-ishellview-to-be-browsable-i-e-trigger-browseobje NOTE: https://stackoverflow.com/questions/54390268/getting-the-current-ishellview-user-is-interacting-with NOTE: https://www.codeproject.com/Articles/35197/Undocumented-List-View-Features // IMPORTANT! NOTE: https://answers.microsoft.com/en-us/windows/forum/windows_10-files-winpc/windows-10-quick-access-folders-grouped-separately/ecd4be4a-1847-4327-8c44-5aa96e0120b8
Vanara.Windows.Shell.ShellBrowserNavigatedEventArgs Event argument for The Navigated event.
Vanara.Windows.Shell.ShellBrowserViewHandler Encapsulates an Vanara.PInvoke.Shell32.IShellFolderViewCB">IShellFolderViewCB</see>-Implementation within an <see cref="T:System.IDisposable-Object. Beside that it's implemented as a Wrapper-Object that is responsible for creating and disposing the following objects aka Interface-Instances:
-
-
-

While doing that, it also handles some common error cases:
- When there's no disk in a disk drive

Implements the following Interfaces:
-

This class make use of some undocumented Messages in its Vanara.PInvoke.Shell32.IShellFolderViewCB.MessageSFVCB(Vanara.PInvoke.Shell32.SFVM,System.IntPtr,System.IntPtr,System.IntPtr@) Callback Handler.

For more Information on these see:
- Google Drive Shell Extension: ShellFolderViewCBHandler.cpp
- ReactOS: IShellFolderViewCB.cpp File Reference , IShellFolderViewCB.cpp
Vanara.Windows.Shell.ShellBrowserViewHandlerExtension Extension methods for Vanara.Windows.Shell.ShellBrowserViewHandler.
Vanara.Windows.Shell.ShellDataObject Shell extended System.Windows.Forms.DataObject.
Vanara.Windows.Shell.ShellFileDescriptor Describes the properties of a file that is being copied by means of the clipboard during a Microsoft ActiveX drag-and-drop operation.
Vanara.Windows.Shell.TaskbarButton Provides access to the functionality of the taskbar button.
Vanara.Windows.Shell.TaskbarButtonThumbnail
Vanara.Windows.Shell.TaskbarButtonThumbnails The list of thumbnails to be displayed on the taskbar button.
Vanara.Windows.Shell.ThumbnailToolbar The toolbar associated with thumbnails shown when hovering over an application's taskbar button.
Vanara.Windows.Shell.ThumbnailToolbarButton A button in the toolbar associated with thumbnails displayed on a taskbar button.
Vanara.Windows.Shell.ThumbnailToolbarButtonCollection A collection of thumbnail toolbar buttons.