The conversion is not automatic, but takes just a few minutes for a project.
Only a minimal conversion is required when upgrading from SftMask/OCX 7.0 to SftMask/OCX 8.0. SftMask/OCX 8.0 is virtually 100% source compatible with older releases of SftMask/OCX. Your application(s) must be recompiled to use SftMask/OCX 8.0.
Make sure to back up your current projects, before converting your projects. Please read the conversion process specific to your language carefully BEFORE converting your project. After converting, once the control saves updated property settings, you will not be able to return to SftMask/OCX 7.0.
.NET (Managed Languages)
Visual C++ (Unmanaged C/C++)
HTML
Other Development Tools
While most other languages offer a fairly easy conversion, .NET and its languages require a bit more effort, but in most cases it is limited to the steps documented below.
Existing Forms (.cs, .vb Files):
Updating the forms to use SftMask/OCX 8.0 is quite straightforward:
The forms can now be opened and the project uses SftMask/OCX 8.0 exclusively. You will not be able to return to SftMask/OCX 7.0.
After installing SftMask/OCX 8.0, all your projects will continue to use SftMask/OCX 7.0 until you make the following change in each dialog resource that defines a SftMask/OCX control. Before opening the resource script (RC file), make sure to close the project in Visual C++, then edit the RC file using a text editor and make the following changes:
IDD_MFC_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "MFC"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "OK",IDOK,260,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,260,23,50,14
CONTROL "",IDC_SFTMASKPHONE,"{{3BB14704-AC40-4737-B5A6-920366D254FE}}",
WS_TABSTOP,7,33,121,12
ENDThe ClassID in the CONTROL line describing SftMask/OCX 7.0 should be replaced with the following:
CONTROL "",IDC_SFTMASKPHONE,"{{68AD7894-0187-4683-8951-D9D867DCFDB4}}",Only change the ClassID (i.e., 3BB14704-AC40-4737-B5A6-920366D254FE), do not change the rest of the line.
You can copy this information directly from this page. The ClassID must be copied as-is, without any modifications.
Once the RC file has been saved, you can open the project in Visual C++ and the project is now using SftMask/OCX 8.0. The controls will save updated property settings, so you will not be able to return to SftMask/OCX 7.0.
Make sure to change ALL occurrences of SftMask/OCX to version 8.0, otherwise you will not be able to open the resource script (RC file).
The #import statement used with SftMask/OCX 7.0 must be replaced with an #import statement for the new version:
Version 7.0:
#import <msdatsrc.tlb> no_namespace
#pragma warning(disable : 4192) // automatically excluding 'Ixxx' while importing type library 'stdole2.tlb'
// For information about the following construct, please see Microsoft's
// KnowledgeBase entry Q224610
#import <SftMask_IX86_U_70.ocx> rename_namespace("SftMaskNameSpace") rename("LoadImage", "LoadImageSftMask")
#if _MSC_VER >= 1400 // need at least Visual Studio 2005
# pragma comment(lib, "comsuppw.lib") // avoid link error in VS2005
#endif
#pragma warning(default : 4192)
using namespace SftMaskNameSpace;New for SftMask/OCX 8.0:
#import <msdatsrc.tlb> no_namespace
#pragma warning(disable : 4192) // automatically excluding 'Ixxx' while importing type library 'stdole2.tlb'
// For information about the following construct, please see Microsoft's
// KnowledgeBase entry Q224610
#ifdef _WIN64
#import <SftMask_x64_U_80.ocx> rename_namespace("SftMaskNameSpace") rename("LoadImage", "LoadImageSftMask")
#else
#import <SftMask_IX86_U_80.ocx> rename_namespace("SftMaskNameSpace") rename("LoadImage", "LoadImageSftMask")
#endif
#if _MSC_VER >= 1400 // need at least Visual Studio 2005
# pragma comment(lib, "comsuppw.lib") // avoid link error in VS2005
#endif
#pragma warning(default : 4192)
using namespace SftMaskNameSpace;SftMask/OCX 8.0 does not include a control for use with Internet Explorer or cabinet files. Web pages that use SftMask/OCX 7.0 (or older) cannot be upgraded to SftMask/OCX 8.0.
Most development tools allow access to the ClassID used for controls on a form or dialog. Sometimes this may be accomplished by using a text editor and editing a configuration file, or possibly the development tool allows direct modification of the ClassID.
Generally, the ClassID used for the prior release 3BB14704-AC40-4737-B5A6-920366D254FE must be replaced with the new ClassID 68AD7894-0187-4683-8951-D9D867DCFDB4. Once this step is completed, opening the project is sufficient to allow SftMask/OCX to convert the stored property settings.
For specific instructions or help, please see your development tool's documentation.