Word List

An application can select a word list from any number of lists to attach to an HRC. A word list, referenced by a handle, consists of words the recognizer should consider when translating a handwritten word or phrase. For example, Figure 5.1 shows a case in which the recognizer must decide between the valid interpretations of "boy" and "looy".

By consulting a word list that contains the entry "boy" but not "looy", the recognizer can select the first choice with more confidence.

An application must call the CreateHWL function to create a word list. The function accepts a pointer to a word list already in memory. Alternatively, an application can fill the word list from an existing file through the ReadHWL function. The SetWordlistHRC function attaches the word list to a particular HRC, and DestroyHWL returns the memory occupied by the list to the operating system.

The function SetWordlistCoercionHRC allows an application to establish the word list's influence over the recognizer's interpretations. The function accepts the following values to set the degree of coercion:

Coercion value
The recognizer should use the word list only for hints; results are not strongly coerced to match the word list. This is the default coercion value.
If the recognizer does not find an exact match in the word list, it should return the best fit. For example, if the recognizer interprets a handwritten word as "swoden," it will return "Sweden," given a word list of country names.
Cancels any coercion currently in effect.

The following code fragment illustrates all these steps by reading a list of country names from the fictitious file COUNTRY.LST and attaching the list to the HRC identified by the handle hrc1. It calls SetWordlistCoercionHRC to force the recognizer to return only names found in the COUNTRY.LST file. The code assumes vhwl is a global variable, visible in all parts of the program.

HWL vhwl; // Handle to word list

HFILE hfile; // File handle

OFSTRUCT OFstruct; // Receives info about open file

int iRet; // Return code




// In intialization procedure, open and read the word list

hfile = OpenFile( "COUNTRY.LST", (LPOFSTRUCT) &OFstruct, OF_READ );

if (hfile != HFILE_ERROR)


  • hwl = CreateHWL( hrec1, NULL, WLT_EMPTY ); // Create empty list

iRet = ReadHWL( vhwl, hfile ); // Read list from file





// After creating hrc1, attach word list vhwl to it

SetWordlistHRC( hrc1, vhwl ); // Attach list to hrc1

SetWordlistCoercionHRC( hrc1, SCH_FORCE ); // Establish coercion




//Before terminating, destroy word list

DestroyHWL( vhwl );

Note that an application must first set the word list with SetWordlistHRC before calling SetWordlistCoercionHRC.

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples