- SharpShell_Core_Library.zip
- SharpShell_Source_Code.zip
- SharpShell Source Code
- Dependencies
- Apex
- Apex.WinForms.dll
- SharpShell
- Info.txt
- packages
- Apex.1.5.0
- Apex.1.5.0.nupkg
- lib
- net35
- Apex.dll
- net40
- Apex.dll
- sl30
- Apex.Silverlight.dll
- sl3-wp
- Apex.WP7.dll
- sl40
- Apex.Silverlight4.dll
- sl4-wp71
- Apex.WP7.dll
- sl50
- Apex.Silverlight.dll
- ILMerge.2.12.0803
- ILMerge.2.12.0803.nupkg
- ILMerge.doc
- ILMerge.exe
- NUnit.2.6.2
- repositories.config
- Samples
- ContextMenu
- ContextMenuComponent
- Properties
- ContextMenuSample
- Properties
- CountLinesExtension
- DllContextMenuExtension
- IsolatedContextMenuComponent
- Diagnostics
- Interop
- Properties
- ServerRegistration
- SharpContextMenu
- DropHandler
- XsdDropHandler
- IconHandler
- DllIconHandler
- IconOverlayHandler
- ReadOnlyFileIconOverlayHandler
- InfoTipHandler
- FolderInfoTipHandler
- PreviewHandler
- IconPreviewHandler
- PropertySheet
- DrivePropertySheet
- ResourcesPropertySheet
- TextFilePropertySheet
- SharedAssemblyInfo.cs
- SharpShell.sln
- SharpShell
- SharpShellNativeBridge
- Todo.txt
- Tools
- ExtensionManager
- Properties
- Resources
- xsd.ico
- ServerInspector
- ServerManager
- ShellExtensionManager
- SharpShell_Tools.zip
- Apex.dll
- Apex.WinForms.dll
- ServerInspector.exe
- ServerManager.exe
- SharpShell.dll
|
using System;
using System.Runtime.InteropServices.ComTypes;
namespace SharpShell
{
/// <summary>
/// PersistFileServer provides a base for SharpShell Servers that must implement
/// IPersistFile (icon handlers, info tip handlers, etc).
/// </summary>
public abstract class PersistFileServer : SharpShellServer, IPersistFile
{
#region Implementation of IPersistFile
/// <summary>
/// Retrieves the class identifier (CLSID) of an object.
/// </summary>
/// <param name="pClassID">When this method returns, contains a reference to the CLSID. This parameter is passed uninitialized.</param>
void IPersistFile.GetClassID(out Guid pClassID)
{
// The shell is asking for the CLSID of the COM server - this is the
// GUID of the object, and typically defined as a GUID attribute on
// the derived class.
pClassID = GetType().GUID;
}
/// <summary>
/// Checks an object for changes since it was last saved to its current file.
/// </summary>
/// <returns>
/// S_OK if the file has changed since it was last saved; S_FALSE if the file has not changed since it was last saved.
/// </returns>
int IPersistFile.IsDirty()
{
// Not needed for shell extensions.
return 0;
}
/// <summary>
/// Opens the specified file and initializes an object from the file contents.
/// </summary>
/// <param name="pszFileName">A zero-terminated string containing the absolute path of the file to open.</param>
/// <param name="dwMode">A combination of values from the STGM enumeration to indicate the access mode in which to open <paramref name="pszFileName"/>.</param>
void IPersistFile.Load(string pszFileName, int dwMode)
{
// Store the file path.
SelectedItemPath = pszFileName;
}
/// <summary>
/// Saves a copy of the object into the specified file.
/// </summary>
/// <param name="pszFileName">A zero-terminated string containing the absolute path of the file to which the object is saved.</param>
/// <param name="fRemember">true to used the <paramref name="pszFileName"/> parameter as the current working file; otherwise false.</param>
void IPersistFile.Save(string pszFileName, bool fRemember)
{
// Not needed for shell extensions.
}
/// <summary>
/// Notifies the object that it can write to its file.
/// </summary>
/// <param name="pszFileName">The absolute path of the file where the object was previously saved.</param>
void IPersistFile.SaveCompleted(string pszFileName)
{
// Not needed for shell extensions.
}
/// <summary>
/// Retrieves either the absolute path to the current working file of the object or, if there is no current working file, the default file name prompt of the object.
/// </summary>
/// <param name="ppszFileName">When this method returns, contains the address of a pointer to a zero-terminated string containing the path for the current file, or the default file name prompt (such as *.txt). This parameter is passed uninitialized.</param>
void IPersistFile.GetCurFile(out string ppszFileName)
{
// Not needed for shell extensions.
ppszFileName = null;
}
#endregion
/// <summary>
/// Gets the selected item path.
/// </summary>
public string SelectedItemPath { get; private set; }
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.