| 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.
|