Wintertree Software Inc.

Sentry Spelling Checker Engine - Technical Support

Home Site index Contact us Catalog Shopping Cart Products Support Search

You are here: Home > Support > Sentry Spelling Checker Engine

How to prevent conflicts with other applications which use the Sentry DLL

Product: Sentry Spelling Checker Engine Windows SDK

Version: any

If your application is installed on the same computer as another application which also uses the Sentry DLL, conflicts can result that may disable spell checking in either or both applications, or which may cause other problems. Fortunately, there are some steps your application can take to prevent this from occurring.

The Sentry DLL is named to prevent incompatibilities caused by changes to the Sentry API. Each time the Sentry API is changed, the Sentry DLL name is changed. Thus, you can be assured that if you link your application with SSCE5232.DLL, for example, all instances of SSCE5232.DLL will contain the functions and parameters your application expects. Thus, if another application installs a copy of SSCE5232.DLL but with a different version, your application will continue to operate normally. Sentry DLLs with other names (e.g., SSCE5332.DLL) have a different API version, and may not work correctly with your application, but that's not a problem since your application will use only the DLL appropriate for your version of the Sentry Windows SDK.

Similarly, the compressed lexicons (dictionaries) used by Sentry have different names depending on the file-format version. (The naming convention used for compressed lexicons is documented in the Sentry Programmer's Guide under "About Sentry's lexicons.") Two or more applications can share the same compressed lexicon without conflict, provided each application uses a version of Sentry which is compatible with the lexicon's file format. You can determine which lexicon version is right for your Sentry version by examining the names of the American or British English lexicons included with the Sentry Windows SDK. If the American English lexicon in your version of Sentry is named SSCEAM2.CLX, then you should use only lexicons with that file-format version (2) and not other versions, such as SSCEAM1.CLX.

The Sentry DLL provides built-in dialog boxes and other convenience functions to simplify operation in the Windows environment. To implement this, the DLL automatically opens lexicons and sets user options. All applications which share the same Sentry DLL and use the built-in dialog functions (e.g., SSCE_CheckCtrlDlg, SSCE_CheckBlockDlg) also share the open lexicons and options. If one application changes an option, all sharing applications will be affected. In practice, this is not as bad as it sounds, because option settings are usually made on behalf of the user, and the same user is operating all sharing applications, so the chances are good that the user wants the option setting to apply to all spelling checks he or she performs. Nevertheless, in some cases you may want to insulate your application from the effects of changes made by other applications, and techniques for doing so are described below.

The Sentry DLL obtains information about which lexicons to open automatically and which options to set from either the system registry or an INI file. Starting with version 5.13, the 32-bit SSCE DLL can be instructed to obtain settings from either the registry or an INI file. (In versions 5.12 and earlier, the 32-bit DLL always obtains settings from the registry.) The use of each is described in the following paragraphs.

By default, the 32-bit Sentry DLL obtains its settings from the Software\Wintertree\SSCE tree under HKEY_CURRENT_USER (versions of Sentry prior to 5.11 also obtained some settings from the HKEY_LOCAL_MACHINE tree). If two applications which use the 32-bit Sentry DLL are installed on the same machine, and both let the Sentry DLL use the default registry tree, and each have incompatible settings, then problems could arise. Typically, the last application installed will get the settings it needs, and the previously installed application may encounter problems. To prevent this from happening to your application, configure Sentry settings under your application's registry tree when it is installed, and call the SSCE_SetRegTreeName API function before you call other Sentry Windows API functions, such as SSCE_CheckCtrlDlg. This will cause the Sentry DLL to get its settings from your application's registry tree, which settings should be appropriate for your application.

Other information related to incompatibility problems:

Home Site index Contact us Catalog Shopping Cart Products Support Search

Copyright © 2015 Wintertree Software Inc.