Read Editor's Note and ReviewI wrote this little ditty one afternoon after, for the 101st time, I became frustrated that I needed to add a form to my project just to support a timer. After passing it along to my friends at the Common Controls Replacement Project, they convinced me to release it as part of their (totally free) toolset.

The ccrpTimers library is an axDLL that currently exposes Timer, Countdown, and Stopwatch objects. You can sink fired events, using either the classic WithEvents method or via (non-blocking) implemented interfaces, into any form or class module. All objects use the multimedia timer, thus enabling true 1 millisecond resolution and intervals. Swing on over to the CCRP site for all the latest details.As designated by ACTIVEX.COM,
	a division of C|NET, April 10, 1998

I've now fully converted over to HtmlHelp. If you'd like to try this online documentation, or download it, I'd be most interested in your feedback! Note that the downloaded version (124K) requires IE4 to be installed. The online version works best with IE4, but will work with IE3 if you allow a small OCX from Microsoft to be installed. The VB6 build of this library uses CHM exclusively for help, since all VB6 developers have IE4 installed.



Download, Version 2.00 for VB6, 197Kb, Last Updated: 23-Nov-1998
Download, Version 1.23 for VB5, 153Kb, Last Updated: 24-Nov-1998

From the CCRP Website:

CCRP High Performance Timer Objects, created by CCRP member Karl E. Peterson, provide much more robust options than Visual Basic's intrinsic Timer control ever has. For years, the only option available to VB developers was to add a form to their project if they wanted to use a timer. This had the effect of totally destroying any hope of encapsulation if, for example, a class module needed periodic timer events.

No more superfluous forms!

CCRP High Performance Timer Objects: One of three included demos

This library provides ccrpTimer, ccrpStopWatch, and ccrpCountdown objects that may be instantiated anywhere, at any time. All three objects use the multimedia timer, thus providing true 1ms resolution (if supported by the hardware). Taking advantage of the WithEvents method of declaring an object instance, Timer and Tick events may be sunk in either forms or class modules. Alternatively, use Implements for more efficient notification and non-blocking event notification.

Release Updates

November 24, 1998
Version 2.00 (build 171)

Important Note: An initial VB6 build of the CCRP High Performance Timer Objects (version 2.0 Build 167) was mistakenly made available prematurely. Issues affecting the ability to install (and even use from the same project) both VB5 and VB6 builds of the library hadn't been thoroughly worked out at the time this archive was placed on the web site.

If you have already downloaded Build 167 -- Please unregister this build immediately, and replace it with build 171 which was made available late yesterday. I urge you to download the new library from the CCRP download page at your earliest convenience. Build 167 is incompatible with the current, and all future, VB6 versions of this library.

November 23, 1998
Version 2.00 (build 171)

*** These fixes were also applied to Version 1.23 for VB5.

Past Release History

October 26, 1998

August 19, 1998

August 6, 1998

April 30, 1998

April 11, 1998

March 29, 1998

High Resolution Timer Objects - Alpha Edition Notes

The CCRP High Resolution Timer Objects download zip (for VB5 only) now contains an additional folder with a version of the Timer Objects library that was built on and for the DEC Alpha platform.


Please see the help for support policies regarding the Alpha platform. From all reports received to date, it appears this DLL functions just fine, however the author doesn't have direct access to such a machine so is unable to independently confirm these reports.


This build shares the same version information, and is binary-compatible, with the i386 build. The only way to determine which is which is by size (the Alpha build is larger) and the "Product Name" version resource.

All demos reportedly work fine when run from the VB IDE, however the EXEs must be rebuilt (recompiled from the supplied source) as they originated on i386 machines.

While support for this build is virtually non-existent, your reports of success or failure using it would be appreciated. This cumulative knowledge can then be summarized for succeeding updates to the documentation, and to foster Alpha releases of other CCRP controls.

Service Pack Issues for the ccrpTimer Objects
The VB6 Timer DLL was compiled under VB6 Service Pack 1, but has been reported successfully run on 'original' VB6 systems.

The VB5 Timer DLL requires that either VB5 Service Pack 2 or 3 be installed. A non-service pack version of the Timer Objects is not currently available. This amends previous information for this library which stated that separate zip files were available for SP0 and SP2/3 machines.

About Multimedia Timers
Multimedia timer raise a number of interesting issues. Some of them are dealt with in more detail in the About Multimedia Timers section of this help file.

Installing and Registering the Library
Understanding that the great bulk of CCRP's users will be sophisticated developers themselves, it has been decided that you're quite capable of manual installation of these components. See the Installation topic for complete details.

The CCRP High Performance Timer Objects library will function without regard to what version of the common controls you have installed, since it uses system multimedia timer services and does not use any features of comctl32.dll.

Included Demos
Three demos are included with the ccrpTimers library. Their files may be placed anywhere you find convenient.

Videosoft kindly provided CCRP with a copy of their VSDOCX software for documenting ActiveX controls. The bundled help file was created using VSDOCX. CCRP would like to extend their sincere thanks to Videosoft for their generosity.

VB Common Controls Replacement Project Timer Objects
Copyright ©1995-2005, Karl E. Peterson, CCRP