Sentry Spelling Checker Engine - Technical Support
You are here: Home > Support > Sentry Spelling Checker Engine
Product: Sentry Spelling Checker Engine Windows SDK
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:
Under Windows, DLLs are located by module name, not file name. Placing a private copy of the Sentry DLL in your application's folder does not guarantee your application won't share the DLL with other applications, because Windows will use the loaded copy of the DLL if the module names match.
If your application calls SSCE_OpenSession, then any settings made within that application will be private to your application, so there is no need to worry about incompatibility problems.
Sentry Windows API functions which begin with SSCE_Set usually save the settings in the current registry tree or INI file. Call SSCE_SetRegTreeName or SSCE_SetIniFile before calling a SSCE_Set function to ensure the settings are saved where you expect them to be saved.
If your application calls SSCE_GetSid to share the session automatically opened by the Sentry DLL, it should not save the session id. Instead, call SSCE_GetSid each time you need the session id (e.g., call SSCE_CheckWord(SSCE_GetSid(), ...)).
Copyright © 2015 Wintertree Software Inc.