Click or drag to resize

ShellFilePreview Class

Use this component to display a preview of a file. Depending on the installed PreviewHandlers not all files types support a preview. If no preview is registered, a thumbnail of the file is shown. You may either use the Path property to set a path to a file to load the preview or you may synchronize it to a ShellListView or ShellTreeView component using the ShellControlConnector property.
Inheritance Hierarchy
SystemObject
  SystemMarshalByRefObject
    System.ComponentModelComponent
      System.Windows.FormsControl
        Jam.ShellShellFilePreview

Namespace: Jam.Shell
Assembly: ShellBrowser (in ShellBrowser.dll) Version: 7.2
Syntax
public class ShellFilePreview : Control, 
	IShellControl, IShellControlConnectorTarget, ISupportInitialize, ISupportInitializeNotification, ICommonPreviewHandlerHost

The ShellFilePreview type exposes the following members.

Constructors
 NameDescription
Public methodShellFilePreview Initialialises a new instance of the ShellFilePreview class.
Top
Properties
 NameDescription
Public propertyAutomaticRefresh Controls whether the component automatically reloads the preview when the file is changed. "
Public propertyDisplayMsgGets or sets a message that is displayed in the component if no preview is currently being displayed.
Public propertyIsInitialized Indicates whether the component is initialized.
Public propertyCode exampleItemIdList Gets or sets the absolute ItemIdList that is previewed.
Public propertyNoPreviewAvailableMessageGets or sets a message to be displayed if the item to be previewed is not supported.
Public propertyPath Gets or sets the path of the file that is displayed.
Public propertyPreviewNotPossibleMessageGets or sets a message to be displayed if loading the preview failed.
Public propertySelectFileMessageGets or sets a message to be displayed when no item is active.
Public propertyShellControlConnector ShellControlConnector for this class. Set this property to the same ShellControlConnector instance of a ShellListView, ShellTreeView or ShellSystemList to keep the ShellFilePreview in sync with these components. It will then always preview the selected file.
Public propertyVersion The current version of the ShellBrowser.
Top
Methods
 NameDescription
Public methodBeginInit Signals the object that initialization is starting.
Public methodClear Clears the preview
Protected methodDispose Disposal method for the object that also cleans up resources that are used.
(Overrides ControlDispose(Boolean))
Public methodEndInit Signals the object that initialization is complete.
Public methodFolderChanged Called by ShellControlConnector when the current folder has changed.
Public methodFullRefresh Forces the reload of the current file.
Public methodGetDisplayRectGets display rectangle.
Public methodGetSynchronizationContext PreviewHost must provide its SynchronizationContext to be used by async events.
Public methodGetWindowHandleGets window handle.
Public methodGoUp Not supported.
Protected methodOnAfterPreviewLoadedCalls the AfterPreviewLoaded event.
Public methodOnCommonPreviewHandlerLoaded Controls implementing this interface must implement this eventhandler, which is called after the preview has been loaded.
Protected methodOnCreateControlRaises the CreateControl method.
(Overrides ControlOnCreateControl)
Protected methodOnEnabledChanged While disabled the control only stored the current filename. On enabling a FullRefresh is triggered.
(Overrides ControlOnEnabledChanged(EventArgs))
Protected methodOnHandleDestroyed Raises the HandleDestroyed event.
(Overrides ControlOnHandleDestroyed(EventArgs))
Protected methodOnLoadPreview Calls the LoadPreview event.
Protected methodOnPaint Paints the error message text on the ShellFilePreview control.
(Overrides ControlOnPaint(PaintEventArgs))
Protected methodOnResize Passes the resize event to the current PreviewHandler
(Overrides ControlOnResize(EventArgs))
Protected methodOpen Opens the path that is passed with the matching preview handler.
Public methodRefresh(RefreshLevel) Refreshes the control.
Public methodRefresh(RefreshLevel, ItemIdList) Refreshes the control.
Public methodSelectedFileChange Called by ShellControlConnector when the selected file has changed.
Public methodSmartRefresh Forces the reload of the current file. There is no difference compared to FullRefresh.
Top
Events
 NameDescription
Public eventAfterPreviewLoadedEvent that occurs after the preview has been loaded.
Public eventInitialized Occurs when initialization of the component is completed.
Public eventCode exampleLoadPreview Event is thrown when a file is previewed. It can be implemented to set a custom preview control.
Top
Fields
 NameDescription
Public fieldStatic memberWebPreviewHandlerThe GUID of the WebPreviewHandler class.
Top
Extension Methods
 NameDescription
Public Extension MethodGetSelfAndDescendants Returns a flattened collection of a control and all of its descendant controls.
(Defined by ExtensionMethods)
Public Extension MethodHandleNeededA Control extension method that ensures that the handle for a control is created.
(Defined by ExtensionMethods)
Public Extension MethodScaledPixelsAn extension method for controls: It scales the passed pixels according to the current dpi the control is displayed with.
(Defined by ExtensionMethods)
Public Extension MethodScaleFontA Control extension method that scales font according to the passed factor.
(Defined by ExtensionMethods)
Top
Remarks
The component is using the Preview Handlers registered in the system to display the files, so that normally the same files that Windows Explorer can preview should be supported. There are occasional problems concerning the bitness of the application using the ShellFilePreview vs. the bitness of the PreviewHandler registered for a filetype. With the LoadPreview event it is also possible to use existing PreviewHandlers to display other file extensions. If you want to preview Microsoft Outlook .msg files and only the header is displayed, make sure to have Visual Styles enabled for your application. Call "Application.EnableVisualStyles()" or change your application manifest accordingly.
See Also