ISpSREngine::RuleNotify (Windows CE 5.0)
This method informs the SR engine when CFG rules are added, changed, or removed.
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 Values
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
OS Versions: Windows CE .NET 4.1 and later.
Header: Sapiddk.h, Sapiddk.idl.
Link Library: Sapilib.lib.
See Also
Send Feedback on this topic to the authors