TigerLogic.com
Products    |    Solutions    |    Support & Services    |    Education    |    Partners    |    Corporate    |    Events    |    Contact Us
mvBase Tech Tip: # mv140
Pertinent Release(s): 1.3.01 and later
Pertinent Windows O/S: Win 9X and NT 4.0

When a new version of the mvBase OCX is required

Component and API Versioning

Several mvBase components have had, and still do have an internal version number associated with them.

This component version number now refers to the particular version of the API that it offers for use by other components (both the Pick supplied ones and - in the case of the mvBase 'C/C++ API' - user developer written ones). This is now referred to in the SDK documentation as the WS_API_VERSION manifest constant.

This API version number required by components using the API must be supported by the component supplying the API.

If the component requiring a specific API version number requests a number equal to or less than the highest API version number supported by the component offering the API, then all is well. If not then an error will occur, which is usually specifically detectable. (see the documentation for the InitClient() function in the 1.3.02 SDK documentation).

In the case of the mvBase OCX, it requests a certain API revision level of the mvBase Workstation Dynamic Linked Library (mvworkst.dll).

How Component Version has been, and is now being, used

  • Prior to mvBase release 1.3.01

    The OCX was required to be exactly the same component version as the component version of mvworkst.dll. The mvBase Build Number was used as the component version number. This meant that even if no functionality exposed in the API's had changed, then a new version of the mvBase OCX was required for every release.

  • mvBase release 1.3.01 and all subsequent releases

    The tight coupling between component versions using the mvBase Build Number was replaced with a coupling of an API version number.

So, when IS a new version of the OCX required?

What the forgoing means is that, beginning with 1.3.01, a new version of the OCX is never required just because a new version of mvBase has been installed. E.g. the 1.3.01 version (build 79, API Revision Level 1) of the OCX will work correctly with the 1.3.02 version (build 85, API Revision Level 2) of mvBase and later.

The only time a newer version of the OCX may need to be downloaded and used is when we have made enhancements to OCX functionality which are exposed for use by other components, AND if you wish to use those enhancements in your Visual Basic applications (or other applications in other languages which use the OCX). In this case we will have incremented the API version number which the OCX requires of the mvBase Workstation DLL.

If you make no changes to your application when you upgrade your mvBase release to a new one, then you will not need a new version of the OCX.

Note

The above discussion is also true when an application developer is using the mvBase C/C++ API directly from C/C++ programs. The application developer will only need to modify the requested API version in their InitClient() call, and recompile and redistribute their application if and only if any of the new functionally in the C/C++ API is used.

If no application changes are made, and mvBase is upgraded, then the request for the API version number from a previous release will still be honored by the component which supports the mvBase API in the current release.


Information
Product Information
2.1 Documentation
2.0 Documentation
1.x Documentation
Product Status Sheets
Updates
Patches
Copyright 2008. TigerLogic. All Rights Reserved