CCRP FAQ Index
|CCRP Standards Document
23rd January 1998
The CCRP Team
Copyright © 1998-2004 Common Controls Replacement Project
(The CCRP Standards document is provided as information to indicate the stringent policies
that CCRP developers adhere to during the creation of their controls.)
The following are standards that have been agreed upon by
the CCRP members.
All CCRP controls should follow these standards unless
there are exceptional circumstances (such as breaking binary compatibility for controls
that have already been released), and in these cases you should consult the group.
- Each control is assigned a three letter abbreviation
referred to as xxx for the remainder of this document.
- Filename in the form 'ccrpxxx.ocx' for SP2 version and
'ccrpxxxs.ocx' for SP0 version. (Note: SP0 versions no longer provided. See
CCRP Policy: Development for Non-Service Pack Visual Basic above.)
- The UserControl name should be in the form 'ccrpAnimation'
- The Project Description should be in the form: 'CCRP
Animation Control' to ensure that our controls are listed together in the Components
- The Project Name should be in the form 'CCRAnimation'
- Versioning: Use 0 to indicate a beta with the beta in the
minor field and build in the revision field. So, 0.6.83 indicates beta 6, build 83
- All DLL Base Addresses are obtained from the project
- At least one demo should be included with in the release zip
and should demonstrate the main features of the control. Further advanced demos may also
be included to demonstrate specific functionality (such as loading an AVI resource).
- The demos should be installed in subdirectories
- A help file should be provided. The help file should be
created using Videosoft VSDOCX. Several standard pages should be provided in the help file
which are provided in the template help project file.
- Regsvr32.exe and a batch file that runs it should be
included within the ZIP.
- Readme.txt should be in a format similar to those that have
already been released.
- The ZIP should be called 'ccrpxxx.zip' or 'ccrpxxxs.zip'. In
addition, for ActiveX.com distribution of controls which are made available in both SP and
SP0 versions (ActiveX.com does not support downloads of multiple versions), it is
necessary to provide a third zip called 'ccrpxxxX.zip' that includes both SP and SP0 zips,
and an explanatory readme file.
- All controls should implement a ComCtlVer property that
returns the version of comctl32.dll in the form x.xx.
- Controls should expose a hWnd property that returns the hWnd
of the common control.
- Enums and their values should be prefixed with the
three-digit abbreviation of the control ID, e.g.
aniFlat = 0
ani3D = 1
- For all controls that implement (expose) the same property,
the same names *and* values should be used across controls. This minimizes user learning
curves, reduces variable mix-up and possible coding errors.
For controls that only implement a subset of a larger grouping, then a mechanism to assure
the same values are used is needed. For example, if controlA has property of xxxFlat as 1,
xxxRaised as 2, and xxxSunken as 3, and controlB only implements raised and sunken,
controlB's values should remain constant with controlA's. In other words. controlB's
properties show the options 2 - xxxRaised and 3 - xxxSunken. The user only needs to learn
one set of variables for a property and use it confidently across controls.
The current list of standard Enums is:
xxxFlat = 0
xxx3D = 1
xxx3DRaised = 2
xxxNone = 0
xxxFixedSingle = 1
xxxRaised3D = 2
Public Enum aniBackStyleConstants
xxxTransparent = 0
xxxOpaque = 1
Public Enum hkyDropModeConstants
xxxNone = 0
xxxManual = 1