
The functionality of Camera Controller can be extended using a feature called SnapIns. Programmers can build SnapIns using Microsoft Visual Basic 6.0. Many types of SnapIns are very easy and quick to build for the average programmer.
Pine Tree Computing, LLC has a number of SnapIns available for an additional donation. To make donations and receive these snapins, please email us at CochranMA@PineTreeComputing.com. Click the following links to view descriptions of the available SnapIns.
WebCam SnapIn
AutoSequencer SnapIn
Focus Bracketing SnapIn
Aperture Bracketing SnapIn
Shutter Bracketing SnapIn
PicName SnapIn
FindOly SnapIn
The webcam snapin automatically timestamps, copyrights, and compresses pictures before they are uploaded to your website while Camera Controller is running in webcam mode. JPEG compression amounts, timestamp and copyright strings, are all configurable. Depending upon your requirements, the webcam snapin will reduce the filesize of the images uploaded to your website by up to 50% while still maintaining good image quality. Reduced files sizes mean faster uploads, less disk space utilization on your website, less bandwidth utilization upon viewing, and most importantly, faster downloads for your viewers.

The autosequencer snapin allows you to predefine a series of exposures using different ISO, aperture, and shutter settings, and then play them back on command. This snapin is targeted at astro photographers who take pictures of eclipses. There are a number of special occurences during a solar eclipse where only the prepared photographer will be able to capture the moment. This snapin allows you to pre-program the necessary exposures and then use a single mouse click to have camera controller take all the pictures while you enjoy the show.
This snapin also has uses for those photographers who combine photographs taken at different exposure settings into a single wide dynamic range photograph.
The focus bracketing snapin automatically takes several pictures using different manual focus positions. This allows rapid review and selection of different focus positions and helps to quickly "zoom-in" to the best focus position. Configurable step sizes, number of plus/minus steps, thumbnail strips, and full-size previews zoomable to 2000% assist in rapid selection of the sharpest focus position.

The aperture bracketing snapin automatically takes several pictures using different aperture settings.
The shutter bracketing snapin automatically takes several pictures using different shutter settings.
The picname snapin prompts user for a filename after every picture. This snapin is used by photographs taking product shots, or those copying slides, anytime you want to give each captured picture a unique filename when it's saved. This SnapIn is included with camera controller.
The findoly snapin assists users with new camera models in adding strings required by the Olympus SDK to the registry. This SnapIn is included with camera controller.
SnapIns make themselves known to camera controller during their installation process. Users enable/disable installed snapins using the camera controller Tools/Options window's SnapIns tab. Any enabled snapins are automatically initialized whenever camera controller starts. During initialization, snapins can add menu items to the camera controller main window menu. The user can use these menu items to display snapin windows and invoke snapin commands. Of course, snapin windows can also contain controls to allow user interaction directly.
SnapIns are ActiveX dlls built using Microsoft Visual Basic 6.0. Programmers can create SnapIns by by creating an ActiveX dll that implements the ICC_SnapIn interface found in ICCCam.dll. SnapIns are notified of important events that occur in camera controller and can control camera controller using an ICC_Command object passed during initialization. Events include BeforeFileSave, AfterDownload, AfterCapture, and many others. SnapIns can change event parameters to control how the events are handled in camera controller. For example, altering the filename parameter during the BeforeFileSave event will cause the picture to be saved with the new filename. Commands include setting exposure settings and capturing pictures.
SnapIns make themselves known to camera controller by adding an identifying string value to the HKEY_LOCAL_MACHINE\SOFTWARE\Pine Tree Computing\Camera Controller\1.5\SnapIns registry key. The name of the key is the identifying name in camera controller, e.g., "PicName SnapIn", and the value of the string value is the ProgId of the snapin class implementing the ICC_SnapIn interface, e.g., "PicName1.CICC_SnapIn".