Share via


ISpSREngine::RuleNotify

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

This method informs the SR engine when CFG rules are added, changed, or removed.

Syntax

HRESULT RuleNotify(
  SPCFGNOTIFY Action,
  ULONG cRules,
  const SPRULEENTRY* pRules
);

Parameters

  • Action
    [in] The action that is occurring. Possible values are defined for the SPCFGNOTIFY enumeration.
  • cRules
    [in] Number of rules specified in pRules.
  • pRules
    [in] Pointer to an array of SPRULEENTRY structures containing information on each rule.

Return Value

The following table shows the possible return values.

Value Description

S_OK

Function completed successfully.

FAILED(hr)

Appropriate error message.

Remarks

The engine sees each CFG as containing one or more rules, with top-level rules activated for recognition. Each rule is defined as an SPRULEENTRY structure.

Each rule has an initial state and additional states, connected by transitions. A transition can be: a word transition indicating a word to be recognized, a rule transition indicating a reference to a sub-rule, an epsilon (null) transition, or a special transition for such features as embedding dictation in a CFG.

References to sub-rules can be recursive, that is, rules can reference themselves, either directly or indirectly. Left recursion is not supported and SAPI will reject grammars using it when loading. Inside a grammar, transitions can have semantic properties, although the engine does not typically need to see these.

SAPI takes full control of loading a grammar upon a request from an application. The grammar is loaded from a file, a URL, a resource, or memory. A load operation involves the loading of either binary or XML forms of the grammar, and the resolving of imports. When the grammar is loaded, SAPI notifies the SR engine about the contents of the grammar through various DDI methods.

For the SR engine to find out the full contents of a rule, it can use the ISpSREngineSite::GetStateInfo method. This gives information about all the subsequent transitions and states following from any given state (starting with the initial state of the rule).

Requirements

Header sapiddk.h, sapiddk.idl
Library sapilib.lib
Windows Embedded CE Windows CE .NET 4.1 and later

See Also

Reference

ISpSREngine
SAPI Interfaces