diff --git a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
index 8d79c6701d..4d1f1800d2 100644
--- a/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
+++ b/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
@@ -66,6 +66,9 @@
true
+
+ ..\References\GongShell.dll
+
..\References\ICSharpCode.SharpZipLib.dll
diff --git a/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs b/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs
index 9f911e7766..b10bdc3d6f 100644
--- a/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs
+++ b/BizHawk.Client.EmuHawk/Extensions/ToolExtensions.cs
@@ -37,7 +37,8 @@ namespace BizHawk.Client.EmuHawk.ToolExtensions
};
//TODO - use standard methods to split filename (hawkfile acquire?)
- var hf = new HawkFile(temp);
+ var hf = new HawkFile();
+ hf.Parse(temp);
bool canExplore = true;
if (!File.Exists(hf.FullPathWithoutMember))
canExplore = false;
@@ -50,31 +51,56 @@ namespace BizHawk.Client.EmuHawk.ToolExtensions
var timestamp = File.GetLastWriteTime(hf.FullPathWithoutMember);
var tsmiTimestamp = new ToolStripLabel { Text = timestamp.ToString() };
- //make a menuitem to let you explore to it
- var tsmiExplore = new ToolStripMenuItem { Text = "&Explore" };
- tsmiExplore.Click += (o, ev) => { System.Diagnostics.Process.Start("explorer.exe", "/select, " + hf.FullPathWithoutMember); };
-
- //make a menuitem to let you copy the path
- var tsmiCopyPath = new ToolStripMenuItem { Text = "&Copy Canonical Path" };
- tsmiCopyPath.Click += (o, ev) => { System.Windows.Forms.Clipboard.SetText(temp); };
-
tsdd.Items.Add(tsmiTimestamp);
- var sep = new ToolStripSeparator();
- tsdd.Items.Add(sep);
- tsdd.Items.Add(tsmiExplore);
- tsdd.Items.Add(tsmiCopyPath);
-
- //make a special action to open archive in default archiver
+ tsdd.Items.Add(new ToolStripSeparator());
+
+
+
if (hf.IsArchive)
{
- var tsmiOpenArchive = new ToolStripMenuItem { Text = "Open &Archive" };
- tsmiOpenArchive.Click += (o, ev) => { System.Diagnostics.Process.Start(hf.FullPathWithoutMember); };
- tsdd.Items.Add(tsmiOpenArchive);
+ //make a menuitem to let you copy the path
+ var tsmiCopyCanonicalPath = new ToolStripMenuItem { Text = "&Copy Canonical Path" };
+ tsmiCopyCanonicalPath.Click += (o, ev) => { System.Windows.Forms.Clipboard.SetText(temp); };
+ tsdd.Items.Add(tsmiCopyCanonicalPath);
var tsmiCopyArchivePath = new ToolStripMenuItem { Text = "Copy Archive Path" };
tsmiCopyArchivePath.Click += (o, ev) => { System.Windows.Forms.Clipboard.SetText(hf.FullPathWithoutMember); };
tsdd.Items.Add(tsmiCopyArchivePath);
+
+ var tsmiOpenArchive = new ToolStripMenuItem { Text = "Open &Archive" };
+ tsmiOpenArchive.Click += (o, ev) => { System.Diagnostics.Process.Start(hf.FullPathWithoutMember); };
+ tsdd.Items.Add(tsmiOpenArchive);
}
+ else
+ {
+ //make a menuitem to let you copy the path
+ var tsmiCopyPath = new ToolStripMenuItem { Text = "&Copy Path" };
+ tsmiCopyPath.Click += (o, ev) => { System.Windows.Forms.Clipboard.SetText(temp); };
+ tsdd.Items.Add(tsmiCopyPath);
+ }
+
+ tsdd.Items.Add(new ToolStripSeparator());
+
+ //make a menuitem to let you explore to it
+ var tsmiExplore = new ToolStripMenuItem { Text = "&Explore" };
+ tsmiExplore.Click += (o, ev) => { System.Diagnostics.Process.Start("explorer.exe", "/select, " + hf.FullPathWithoutMember); };
+ tsdd.Items.Add(tsmiExplore);
+
+ var tsmiCopyFile = new ToolStripMenuItem { Text = "Copy &File" };
+ var lame = new System.Collections.Specialized.StringCollection();
+ lame.Add(hf.FullPathWithoutMember);
+ tsmiCopyFile.Click += (o, ev) => { System.Windows.Forms.Clipboard.SetFileDropList(lame); };
+ tsdd.Items.Add(tsmiCopyFile);
+
+ var tsmiTest = new ToolStripMenuItem { Text = "&Shell Context Menu" };
+ tsmiTest.Click += (o, ev) => {
+ var si = new GongSolutions.Shell.ShellItem(hf.FullPathWithoutMember);
+ var scm = new GongSolutions.Shell.ShellContextMenu(si);
+ var tsddi = o as ToolStripDropDownItem;
+ tsddi.Owner.Update();
+ scm.ShowContextMenu(tsddi.Owner, new System.Drawing.Point(0, 0));
+ };
+ tsdd.Items.Add(tsmiTest);
tsdd.Items.Add(new ToolStripSeparator());
}
diff --git a/BizHawk.Common/HawkFile.cs b/BizHawk.Common/HawkFile.cs
index 8a48801380..fc307b0d6d 100644
--- a/BizHawk.Common/HawkFile.cs
+++ b/BizHawk.Common/HawkFile.cs
@@ -43,6 +43,7 @@ namespace BizHawk.Common
private string _memberPath;
private Stream _rootStream, _boundStream;
private IHawkFileArchiveHandler _extractor;
+ private bool _isArchive;
private List _archiveItems;
private int? _boundIndex;
@@ -89,6 +90,11 @@ namespace BizHawk.Common
///
public string FullPathWithoutMember { get { return _rootPath; } }
+ ///
+ /// returns the member path part of the bound file
+ ///
+ public string ArchiveMemberPath { get { return _memberPath; } }
+
///
/// returns the extension of Name
///
@@ -97,7 +103,7 @@ namespace BizHawk.Common
///
/// Indicates whether this file is an archive
///
- public bool IsArchive { get { return _extractor != null; } }
+ public bool IsArchive { get { return _isArchive; } }
public IList ArchiveItems
{
@@ -167,6 +173,26 @@ namespace BizHawk.Common
///
public string[] NonArchiveExtensions = { };
+ ///
+ /// Parses the given filename to create an un-opened HawkFile with some information available about its path constitution
+ ///
+ public void Parse(string path)
+ {
+ bool isArchivePath = IsCanonicalArchivePath(path);
+ if (isArchivePath)
+ {
+ var parts = path.Split('|');
+ path = parts[0];
+ _memberPath = parts[1];
+ //we're gonna assume, on parsing, that this is
+ _isArchive = true;
+ }
+ _rootPath = path;
+ }
+
+ ///
+ /// Parses the given filename and then opens it. This may take a while (the archive may be accessed and scanned).
+ ///
public void Open(string path)
{
if (_rootPath != null)
@@ -419,6 +445,7 @@ namespace BizHawk.Common
try
{
ScanArchive();
+ _isArchive = true;
}
catch
{
diff --git a/References/GongShell.XML b/References/GongShell.XML
new file mode 100644
index 0000000000..4b8bb16660
--- /dev/null
+++ b/References/GongShell.XML
@@ -0,0 +1,1795 @@
+
+
+
+ GongShell
+
+
+
+
+ Provides a toolbar showing common places in the computer's
+ filesystem.
+
+
+
+ Use the control to display a
+ toolbar listing common places in the computer's filesystem,
+ similar to that on the far left-side of the standard file
+ open/save dialogs.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Adds a new folder to the toolbar.
+
+
+
+ A representing the folder to be added.
+
+
+
+ true if the item was sucessfully added, false otherwise.
+
+
+
+
+ Overrides the method.
+
+
+
+
+
+ A that should be automatically
+ navigated when the user clicks on an entry in the toolbar.
+
+
+
+
+ Occurs when the control wants to
+ know if it should include an item.
+
+
+
+ This event allows the items displayed in the
+ control to be filtered.
+
+
+
+
+ This property does not apply to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ This property is not relevant to the
+ class.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ A filename combo box suitable for use in file Open/Save dialogs.
+
+
+
+
+ This control extends the class to provide
+ auto-completion of filenames based on the folder selected in a
+ . The control also automatically navigates
+ the ShellView control when the user types a folder path.
+
+
+
+
+
+ Determines whether the specified key is a regular input key or a
+ special key that requires preprocessing.
+
+
+
+ One of the values.
+
+
+
+ true if the specified key is a regular input key; otherwise, false.
+
+
+
+
+ Raises the event.
+
+
+
+ A that contains the event data.
+
+
+
+
+ Raises the event.
+
+
+
+ A that contains the event data.
+
+
+
+
+ Raises the event.
+
+
+
+ An that contains the event data.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Gets/sets the control that the
+ should look for auto-completion
+ hints.
+
+
+
+
+ Occurs when a file name is entered into the
+ and the Return key pressed.
+
+
+
+
+ Provides a drop-down list displaying the Windows Shell namespace.
+
+
+
+ The class displays a view of the Windows
+ Shell namespace in a drop-down list similar to that displayed in
+ a file open/save dialog.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets/sets a value indicating whether the combo box is editable.
+
+
+
+
+ Gets/sets a value indicating whether the full file system path
+ should be displayed in the main portion of the control.
+
+
+
+
+ Gets/sets the folder that the should
+ display as the root folder.
+
+
+
+
+ Gets/sets the folder currently selected in the
+ .
+
+
+
+
+ Gets/sets a whose navigation should be
+ controlled by the combo box.
+
+
+
+
+ Occurs when the 's
+ property changes.
+
+
+
+
+ Occurs when the control wants to know
+ if it should include a folder in its view.
+
+
+
+ This event allows the folders displayed in the
+ control to be filtered.
+
+
+
+
+ Represents an item in the Windows Shell namespace.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Takes a containing the location of the ShellItem.
+ This constructor accepts URIs using two schemes:
+
+ - file: A file or folder in the computer's filesystem, e.g.
+ file:///D:/Folder
+ - shell: A virtual folder, or a file or folder referenced from
+ a virtual folder, e.g. shell:///Personal/file.txt
+
+
+
+ A containing the location of the ShellItem.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Takes a containing the location of the ShellItem.
+ This constructor accepts URIs using two schemes:
+
+ - file: A file or folder in the computer's filesystem, e.g.
+ file:///D:/Folder
+ - shell: A virtual folder, or a file or folder referenced from
+ a virtual folder, e.g. shell:///Personal/file.txt
+
+
+
+ A string containing a Uri with the location of the ShellItem.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Takes an containing the
+ location of the folder.
+
+
+
+ An containing the
+ location of the folder.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Creates a ShellItem which is a named child of .
+
+
+
+ The parent folder of the item.
+
+
+
+ The name of the child item.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ An representing the folder.
+
+
+
+
+ Compares two s. The comparison is carried
+ out by display order.
+
+
+
+ The item to compare.
+
+
+
+ 0 if the two items are equal. A negative number if
+ is before in
+ display order. A positive number if
+ comes after in
+ display order.
+
+
+
+
+ Determines whether two s refer to
+ the same shell folder.
+
+
+
+ The item to compare.
+
+
+
+ if the two objects refer to the same
+ folder, otherwise.
+
+
+
+
+ Returns the name of the item in the specified style.
+
+
+
+ The style of display name to return.
+
+
+
+ A string containing the display name of the item.
+
+
+
+
+ Returns an enumerator detailing the child items of the
+ .
+
+
+
+ This method returns all child item including hidden
+ items.
+
+
+
+ An enumerator over all child items.
+
+
+
+
+ Returns an enumerator detailing the child items of the
+ .
+
+
+
+ A filter describing the types of child items to be included.
+
+
+
+ An enumerator over all child items.
+
+
+
+
+ Returns an enumerator detailing the child items of the
+ .
+
+
+
+ This method returns all child item including hidden
+ items.
+
+
+
+ An enumerator over all child items.
+
+
+
+
+ Returns an representing the
+ item. This object is used in drag and drop operations.
+
+
+
+
+ Returns an representing the
+ item. This object is used in drag and drop operations.
+
+
+
+
+ Returns an representing the
+ item.
+
+
+
+
+ Gets the index in the system image list of the icon representing
+ the item.
+
+
+
+ The type of icon to retrieve.
+
+
+
+ Flags detailing additional information to be conveyed by the icon.
+
+
+
+
+
+
+ Tests whether the is the immediate parent
+ of another item.
+
+
+
+ The potential child item.
+
+
+
+
+ Tests whether the is the parent of
+ another item.
+
+
+
+ The potential child item.
+
+
+
+
+ Returns a string representation of the .
+
+
+
+
+ Returns a URI representation of the .
+
+
+
+
+ Tests if two s refer to the same folder.
+
+
+
+ The first folder.
+
+
+
+ The second folder.
+
+
+
+
+ Tests if two s refer to the same folder.
+
+
+
+ The first folder.
+
+
+
+ The second folder.
+
+
+
+
+ Gets a child item.
+
+
+
+ The name of the child item.
+
+
+
+
+ Gets the underlying COM interface.
+
+
+
+
+ Gets the normal display name of the item.
+
+
+
+
+ Gets the file system path of the item.
+
+
+
+
+ Gets a value indicating whether the item has subfolders.
+
+
+
+
+ Gets a value indicating whether the item is a file system item.
+
+
+
+
+ Gets a value indicating whether the item is a file system item
+ or the child of a file system item.
+
+
+
+
+ Gets a value indicating whether the item is a folder.
+
+
+
+
+ Gets a value indicating whether the item is read-only.
+
+
+
+
+ Gets the item's parent.
+
+
+
+
+ Gets the item's parsing name.
+
+
+
+
+ Gets a PIDL representing the item.
+
+
+
+
+ Gets the item's shell icon.
+
+
+
+
+ Gets the item's tooltip text.
+
+
+
+
+ Gets the Desktop folder.
+
+
+
+
+ Enumerates the types of shell icons.
+
+
+
+ The system large icon type
+
+
+ The system shell icon type
+
+
+ The system small icon type
+
+
+
+ Enumerates the optional styles that can be applied to shell icons.
+
+
+
+ The icon is displayed opened.
+
+
+ Get the overlay for the icon as well.
+
+
+
+ Provides support for displaying the context menu of a shell item.
+
+
+
+
+ Use this class to display a context menu for a shell item, either
+ as a popup menu, or as a main menu.
+
+
+
+ To display a popup menu, simply call
+ with the parent control and the position at which the menu should
+ be shown.
+
+
+
+ To display a shell context menu in a Form's main menu, call the
+ method to populate the menu. In addition,
+ you must intercept a number of special messages that will be sent
+ to the menu's parent form. To do this, you must override
+ like so:
+
+
+
+ protected override void WndProc(ref Message m) {
+ if ((m_ContextMenu == null) || (!m_ContextMenu.HandleMenuMessage(ref m))) {
+ base.WndProc(ref m);
+ }
+ }
+
+
+
+ Where m_ContextMenu is the being shown.
+
+
+ Standard menu commands can also be invoked from this class, for
+ example and .
+
+
+
+
+ Initialises a new instance of the
+ class.
+
+
+
+ The item to which the context menu should refer.
+
+
+
+
+ Initialises a new instance of the
+ class.
+
+
+
+ The items to which the context menu should refer.
+
+
+
+
+ Handles context menu messages when the
+ is displayed on a Form's main menu bar.
+
+
+
+
+ To display a shell context menu in a Form's main menu, call the
+ method to populate the menu with the shell
+ item's menu items. In addition, you must intercept a number of
+ special messages that will be sent to the menu's parent form. To
+ do this, you must override like so:
+
+
+
+ protected override void WndProc(ref Message m) {
+ if ((m_ContextMenu == null) || (!m_ContextMenu.HandleMenuMessage(ref m))) {
+ base.WndProc(ref m);
+ }
+ }
+
+
+
+ Where m_ContextMenu is the being shown.
+
+
+
+
+ The message to handle.
+
+
+
+ if the message was a Shell Context Menu
+ message, if not. If the method returns false,
+ then the message should be passed down to the base class's
+ method.
+
+
+
+
+ Invokes the Delete command on the shell item.
+
+
+
+
+ Invokes the Rename command on the shell item.
+
+
+
+
+ Populates a with the context menu items for
+ a shell item.
+
+
+
+ If this method is being used to populate a Form's main menu
+ then you need to call in the
+ Form's message handler.
+
+
+
+ The menu to populate.
+
+
+
+
+ Shows a context menu for a shell item.
+
+
+
+ The parent control.
+
+
+
+ The position on that the menu
+ should be displayed at.
+
+
+
+
+ Gets the underlying COM interface.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Provides a toolbar suitable for use in file Open/Save dialogs.
+
+
+
+ This control provides a toolbar containing a
+ and the various navigation buttons as
+ found in a standard file dialog. By setting the
+ property, the toolbar will automatically
+ control the navigation of a ShellView> control in response to the
+ user's actions.
+
+
+
+
+ Required designer variable.
+
+
+
+
+ Clean up any resources being used.
+
+ true if managed resources should be disposed; otherwise, false.
+
+
+
+ Required method for Designer support - do not modify
+ the contents of this method with the code editor.
+
+
+
+
+ Initializes a new instance of the FileDialogToolbar control.
+
+
+
+
+ Gets/sets the root folder displayed in the toolbar's drop-down
+ folder list.
+
+
+
+
+ Gets/sets the folder currently selected in the toolbar's combo box.
+
+
+
+
+ Gets/sets a whose navigation should be
+ controlled by the toolbar.
+
+
+
+
+ Occurs when the needs to know
+ what items it should display in its drop-down list.
+
+
+
+
+ A file-filter combo box suitable for use in open/save file dialogs.
+
+
+
+
+ This control extends the class to provide
+ automatic filtering of shell items according to wildcard patterns.
+ By setting the control's property, the control
+ will automatically filter items in a ShellView.
+
+
+
+ The property accepts a filter string
+ similar to that accepted by the standard
+ class, for example:
+ "Text files (*.txt)|*.txt|All files (*.*)|*.*"
+
+
+
+ The currently selected filter is selected by the
+ property. This should be set to one of the filter patterns specified
+ in , e.g. "*.txt".
+
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Generates a object equivalent to the
+ provided wildcard.
+
+
+
+ The wildcard to generate a regex for.
+
+
+
+ A regex equivalent to the wildcard.
+
+
+
+
+ Raises the event.
+
+
+
+ An EventArgs that contains the event data.
+
+
+
+
+ Gets or sets the current filter string, which determines the
+ items that appear in the control's .
+
+
+
+
+ This property does not apply to .
+
+
+
+
+ Gets/sets the filter string which determines the choices that
+ appear in the control's drop-down list.
+
+
+
+
+ For each filtering option, the filter string contains a
+ description of the filter, followed by the vertical bar (|) and
+ the filter pattern. The strings for different filtering options
+ are separated by the vertical bar.
+
+
+
+ If the filter itself does not appear in the description then
+ it will be automatically added when the control is displayed.
+ For example, in the example below the "Video files" entry will
+ be displayed as "Video files (*.avi, *.wmv)". Beacuse the "All
+ files" entry already has the filter string present in its
+ description, it will not be added again.
+
+
+
+
+ "Video files|*.avi, *.wmv|All files (*.*)|*.*"
+
+
+
+
+
+
+ This property does not apply to .
+
+
+
+
+ Gets/sets the control that the
+ should filter the items of.
+
+
+
+
+ Provides a tree view of a computer's folders.
+
+
+
+
+ The control allows you to embed Windows
+ Explorer functionality in your Windows Forms applications. The
+ control provides a tree view of the computer's folders, as it would
+ appear in the left-hand pane in Explorer.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Refreses the contents of the .
+
+
+
+
+ Gets/sets a value indicating whether drag/drop operations are
+ allowed on the control.
+
+
+
+
+ Gets or sets a value indicating whether a tree node label takes on
+ the appearance of a hyperlink as the mouse pointer passes over it.
+
+
+
+
+ Gets or sets the root folder that is displayed in the
+ .
+
+
+
+
+ Gets/sets a whose navigation should be
+ controlled by the treeview.
+
+
+
+
+ Gets or sets the selected folder in the
+ .
+
+
+
+
+ Gets or sets a value indicating whether hidden folders should
+ be displayed in the tree.
+
+
+
+
+ Occurs when the property changes.
+
+
+
+
+ This property does not apply to the
+ class.
+
+
+
+ Describes whether hidden files/folders should be displayed in a
+ control.
+
+
+
+ Hidden files/folders should not be displayed.
+
+
+
+
+ Hidden files/folders should be displayed.
+
+
+
+
+ The Windows Explorer "Show hidden files" setting should be used
+ to determine whether to show hidden files/folders.
+
+
+
+
+ Listens for notifications of changes in the Windows Shell Namespace.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+
+ Overrides the method.
+
+
+
+
+
+ Occurs when a drive is added.
+
+
+
+
+ Occurs when a drive is removed.
+
+
+
+
+ Occurs when a folder is created.
+
+
+
+
+ Occurs when a folder is deleted.
+
+
+
+
+ Occurs when a folder is renamed.
+
+
+
+
+ Occurs when a folder's contents are updated.
+
+
+
+
+ Occurs when a non-folder item is created.
+
+
+
+
+ Occurs when a non-folder item is deleted.
+
+
+
+
+ Occurs when a non-folder item is renamed.
+
+
+
+
+ Occurs when a non-folder item is updated.
+
+
+
+
+ Occurs when the shared state for a folder changes.
+
+
+
+
+ Provides information of changes in the Windows Shell Namespace.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+ The ShellItem that has changed.
+
+
+
+
+ The ShellItem that has changed.
+
+
+
+
+ Provides information of changes in the Windows Shell Namespace.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+ The ShellItem before the change
+
+
+
+ The ShellItem after the change
+
+
+
+
+ The ShellItem before the change.
+
+
+
+
+ The ShellItem after the change.
+
+
+
+
+ Represents the method that handles change notifications from
+
+
+
+
+ The source of the event.
+
+
+
+ A that contains the data
+ for the event.
+
+
+
+
+ Represents the method that handles change notifications from
+
+
+
+
+ The source of the event.
+
+
+
+ A that contains the data
+ for the event.
+
+
+
+
+ Specifies how list items are displayed in a
+ control.
+
+
+
+
+ Each item appears as a full-sized icon with a label below it.
+
+
+
+
+ Each item appears as a small icon with a label to its right.
+
+
+
+
+ Each item appears as a small icon with a label to its right.
+ Items are arranged in columns with no column headers.
+
+
+
+
+ Each item appears on a separate line with further information
+ about each item arranged in columns. The left-most column
+ contains a small icon and label.
+
+
+
+
+ Each item appears with a thumbnail picture of the file's content.
+
+
+
+
+ Each item appears as a full-sized icon with the item label and
+ file information to the right of it.
+
+
+
+
+ Each item appears in a thumbstrip at the bottom of the control,
+ with a large preview of the seleted item appearing above.
+
+
+
+
+ Provides a view of a computer's files and folders.
+
+
+
+
+ The control allows you to embed Windows
+ Explorer functionality in your Windows Forms applications. The
+ control provides a view of a single folder's contents, as it would
+ appear in the right-hand pane in Explorer.
+
+
+
+ When a new control is added to a form,
+ it displays the contents of the Desktop folder. Other folders
+ can be displayed by calling one of the Navigate methods or setting
+ the property.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates a new folder in the folder currently being browsed.
+
+
+
+
+ Deletes the item currently selected in the .
+
+
+
+
+ Navigates to the specified .
+
+
+
+ The folder to navigate to.
+
+
+
+
+ Navigates to the specified filesystem directory.
+
+
+
+ The path of the directory to navigate to.
+
+
+
+ is not a valid folder.
+
+
+
+
+ Navigates to the specified standard location.
+
+
+
+ The to which to navigate.
+
+
+
+ Standard locations are virtual folders which may be located in
+ different places in different versions of Windows. For example
+ the "My Documents" folder is normally located at C:\My Documents
+ on Windows 98, but is located in the user's "Documents and
+ Settings" folder in Windows XP. Using a standard
+ to refer to such folders
+ ensures that your application will behave correctly on all
+ versions of Windows.
+
+
+
+
+ Navigates the control to the previous folder
+ in the navigation history.
+
+
+
+
+ The WebBrowser control maintains a history list of all the folders
+ visited during a session. You can use the
+ method to implement a Back button similar to the one in
+ Windows Explorer, which will allow your users to return to a
+ previous folder in the navigation history.
+
+
+
+ Use the property to determine whether
+ the navigation history is available and contains a previous page.
+ This property is useful, for example, to change the enabled state
+ of a Back button when the ShellView control navigates to or leaves
+ the beginning of the navigation history.
+
+
+
+
+ There is no history to navigate backwards through.
+
+
+
+
+ Navigates the control backwards to the
+ requested folder in the navigation history.
+
+
+
+ The WebBrowser control maintains a history list of all the folders
+ visited during a session. You can use the
+ method to implement a drop-down menu on a Back button similar
+ to the one in Windows Explorer, which will allow your users to return
+ to a previous folder in the navigation history.
+
+
+
+ The folder to navigate to.
+
+
+
+ The requested folder is not present in the
+ 's 'back' history.
+
+
+
+
+ Navigates the control to the next folder
+ in the navigation history.
+
+
+
+
+ The WebBrowser control maintains a history list of all the folders
+ visited during a session. You can use the
+ method to implement a Forward button similar to the one
+ in Windows Explorer, allowing your users to return to the next
+ folder in the navigation history after navigating backward.
+
+
+
+ Use the property to determine
+ whether the navigation history is available and contains a folder
+ located after the current one. This property is useful, for
+ example, to change the enabled state of a Forward button
+ when the ShellView control navigates to or leaves the end of the
+ navigation history.
+
+
+
+
+ There is no history to navigate forwards through.
+
+
+
+
+ Navigates the control forwards to the
+ requested folder in the navigation history.
+
+
+
+ The WebBrowser control maintains a history list of all the folders
+ visited during a session. You can use the
+ method to implement a drop-down menu
+ on a Forward button similar to the one in Windows Explorer,
+ which will allow your users to return to a folder in the 'forward'
+ navigation history.
+
+
+
+ The folder to navigate to.
+
+
+
+ The requested folder is not present in the
+ 's 'forward' history.
+
+
+
+
+ Navigates to the parent of the currently displayed folder.
+
+
+
+
+ Navigates to the folder currently selected in the
+ .
+
+
+
+ If the 's
+ property is set, and more than one item is selected in the
+ ShellView, the first Folder found will be navigated to.
+
+
+
+ if a selected folder could be
+ navigated to, otherwise.
+
+
+
+
+ Refreshes the contents of the .
+
+
+
+
+ Begins a rename on the item currently selected in the
+ .
+
+
+
+
+ Selects all items in the .
+
+
+
+
+ Overrides
+
+
+
+
+
+
+ Creates the actual shell view control.
+
+
+
+
+ Overrides .
+
+
+
+
+
+
+
+ Overrides .
+
+
+
+
+
+
+ Overrides
+
+
+
+
+
+
+
+ Overrides
+
+
+
+
+
+ Gets a value indicating whether a new folder can be created in
+ the folder currently being browsed by th .
+
+
+
+
+ Gets a value indicating whether a previous page in navigation
+ history is available, which allows the
+ method to succeed.
+
+
+
+
+ Gets a value indicating whether a subsequent page in navigation
+ history is available, which allows the
+ method to succeed.
+
+
+
+
+ Gets a value indicating whether the folder currently being browsed
+ by the has parent folder which can be
+ navigated to by calling .
+
+
+
+
+ Gets the control's underlying COM IShellView interface.
+
+
+
+
+ Gets/sets a describing the folder
+ currently being browsed by the .
+
+
+
+
+ Gets the 's navigation history.
+
+
+
+
+ Gets a list of the items currently selected in the
+
+
+
+
+ A array detailing the items currently
+ selected in the control. If no items are currently selected,
+ an empty array is returned.
+
+
+
+
+ Gets/sets a value indicating whether multiple items can be selected
+ by the user.
+
+
+
+
+ Gets/sets a value indicating whether a "WebView" is displayed on
+ the left of the control.
+
+
+
+ The WebView is a strip of HTML that appears to the left of a
+ Windows Explorer window when the window has no Explorer Bar.
+ It displays general system tasks and locations, as well as
+ information about the items selected in the window.
+
+
+ Important: When is set to
+ , the
+ event will not occur. This is due to a limitation in the
+ underlying windows control.
+
+
+
+
+
+ Gets/sets a control that the
+ should use to display folder details.
+
+
+
+
+ Gets or sets how items are displayed in the control.
+
+
+
+
+ Occurs when the control wants to know
+ if it should include an item in its view.
+
+
+
+ This event allows the items displayed in the
+ control to be filtered. You may want to to only list files with
+ a certain extension, for example.
+
+
+
+
+ Occurs when the control navigates to a
+ new folder.
+
+
+
+
+ Occurs when the control is about to
+ navigate to a new folder.
+
+
+
+
+ Occurs when the 's current selection
+ changes.
+
+
+
+ Important: When is set to
+ , this event will not occur. This is due to
+ a limitation in the underlying windows control.
+
+
+
+
+ This property does not apply to .
+
+
+
+
+ This property does not apply to .
+
+
+
+
+ This property does not apply to .
+
+
+
+
+ Provides information for FilterItem events.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+ The item to be filtered.
+
+
+
+
+ Gets/sets a value which will determine whether the item will be
+ included in the .
+
+
+
+
+ The item to be filtered.
+
+
+
+
+ Provides information for the
+ event.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+ The folder being navigated to.
+
+
+
+
+ Gets/sets a value indicating whether the navigation should be
+ cancelled.
+
+
+
+
+ The folder being navigated to.
+
+
+
+
+ Exception raised when a user aborts a Shell operation.
+
+
+
+
+ Initializes a new instance of the
+ class.
+
+
+
+ The inner exception.
+
+
+
+
+ Represents the method that will handle FilterItem events.
+
+
+
+
+ Represents the method that will handle the
+ event.
+
+
+
+
+ Holds a 's navigation history.
+
+
+
+
+ Clears the shell history.
+
+
+
+
+ Gets the list of folders in the 's
+ Back history.
+
+
+
+
+ Gets the list of folders in the 's
+ Forward history.
+
+
+
+
diff --git a/References/GongShell.dll b/References/GongShell.dll
new file mode 100644
index 0000000000..ee48480b75
Binary files /dev/null and b/References/GongShell.dll differ