This project has moved. For the latest updates, please go here.

Architecture Overview

Interfaces for Plugins to Implement

IPlugin (required)

Each class publicly exposed by a plugin must implement this interface for it to be used by System Verifier; it provides a name, description and list of authors. A plugin may contain as many classes - in as many namespaces - as desired. Each publicly exposed class must implement this and can implement one or more of the other interfaces (a plugin class could implement them all at once, or have separate classes for some/all).

IPluginWithHost (optional)

Each class publicly exposed by a plugin which implements this will get called with an IPluginHost argument; this provides plugins with access to some information from the host and access to a number of utility functions.

IPluginWithSections (optional)

Each class publicly exposed by a plugin which implements this will get called by the host to fetch its list of sections and to set which of them the user has selected. Sections are a tree of tickboxes that appear underneath the plugin entry on the "Configuration" tab in System Verifier.

IScanner (required)

Contract between System Verifier and any object that performs a scan; communicates the progress (as current and total counts) and returns IScanItem results.

IScanItem (optional)

Defines a single item found by one of the scanners; each scan item has a type (string) and some properties (hashtable). There is a default implementation of this available to plugins.

IDisplay (optional)

Allows each IScanItem to be converted into an IDisplayItem; plugins may wish to provide their own implementation for this, as it allows them to set the visual aspects of the IDisplayItem according to properties found on the IScanItem. There is a default implementation which reads the "Description" and "Severity" properties.

IDisplayItem (optional)

Defines a single item for display in the results GUI; has a severity (critical, error, warning, information, verbose), a name and a description.

Interfaces used by System Verifier host


Any plugin class which implements IPluginWithHost will get given an implementation of this interface, from which it can query the OS name (string) and version (major and minor, each long) and the host bitness (32 or 64). It can also use this interface to verify a COM class ID for a given bitness and, optionally, a list of interfaces (it returns the result of creating the class ID and QueryInterface for each interface).

Default Implementations provided by System Verifier




Last edited Dec 7, 2008 at 12:38 PM by JamesRoss, version 3


No comments yet.