This project is read-only.

MetaClip Clipboard Management Utility (Pre-Alpha)

The current build of the MetaClip project includes a basic implementation of the core Clip Manager class library within a loosely MVVM-patterned GUI application written in C#, using WPF with the Prism and Unity frameworks. 

The application's main view provides a portable gadget-style interface that offers quick access to collected clips and commands for capturing and restoring clipboard contents encapsulated in a ".clpx" file format and stored in a file system based library.

Figure 1. Main View

The Main View of the MetaClip GUI is intended to act as a convenient utility that can be accessed from within any common Windows application that offers clipboard support, providing streamlined access to stored clips so that they can easily be retrieved into working environments and documents. 


Figure 2. Main View with Context Menu

The Main View also provides context menu access to commonly-used functions and tool bar access to other application features.  


Figure 3: MetaClip Capture View

The Capture View allows clipboards content to be quickly and conveniently named and categorized for later restoration and reuse.


Figure 4. Category Management View

The Category Management View provides the ability to create and delete categories of clips and to set a default filter for the main clip view. 


Figure 5. Library Management View

The Library Management View allows users to view and modify current MetaClip library settings and to export an existing clip library to another location for backup archiving or sharing. 


MetaClip Application Object Domain

The following class diagram depicts the classes that currently make up the MetaClip object domain. 


Figure 1. MetaClip Application Domain


Clip Manager Core Library (Pre-Alpha)

The Clip Manager Library (ClipMgrLibrary namespace) provides three interrelated objects for working with the contents of the Windows clipboard:

  • An instance of ClipFormats encapsulates object format metadata and object data for each of the individual data objects that make up the contents of the clipboard.
  • An instance of Clip encapsulates a collection of ClipFormat objects and related metadata required to preserve and store the clipboard contents.
  • An instance of ClipManager provides public methods for storing, restoring and working with ClipFormat and Clip objects.

Figure 2. Clip Manager Class Library





Default constructor (no parameters). Creates a new instance of the ClipFormats class.


Public Properties


Property that contains object data conforming to the IDataObject interface from the System.Windows.Forms.Clipboard.


String property that contains the name of the corresponding format of the IDataObject.




Clip Constructor()

Default constructor (no parameters). Creates a new instance of the Clip class.


Public Properties


Stores category metadata associated with the clip.


A collection of ClipFormat objects containing the formatting metadata and clipboard object data needed to preserve and restore clipboard contents.


A string representing the name of the clip.





Default constructor (no parameters). Creates a new instance of the ClipManager class.


Public Methods

FetchClip(string filePath)

Deserializes a clip object containing stored clipboard content from the specified file path, if the file exists. Uses binary serialization.

MakeClip(string name, [string category])

Makes a serializable Clip object from the current contents of the             System.Windows.Forms.Clipboard and returns it to the caller.

RestoreClip(ClipMgrLibrary.Clip clip)

Restores the Clip object passed into the method to the System.Windows.Forms.Clipboard.

StoreClip(string filePath, ClipMgrLibrary.Clip clip)

Serializes the Clip object passed into it to the specified file path. Uses binary serialization.


Tests to see if the System.Windows.Forms.Clipboard contains at least one valid data format for storage and returns true if it does.

Last edited Dec 14, 2011 at 4:14 AM by saulgoodman, version 4


No comments yet.