ISpeechRecoGrammar Rules property

Microsoft Speech SDK

Intelligent Interface Technologies Home Page Microsoft Speech SDK

Speech Automation 5.1

Interface: ISpeechRecoGrammar

Rules Property


The Rules property returns the collection of grammar rules contained in the RecoGrammar.

Syntax

Set: Not available.
Get: ISpeechGrammarRules = ISpeechRecoGrammar.Rules

Parts

ISpeechRecoGrammar
The owning object.
ISpeechGrammarRules
Set: (This property is read-only).
Get: An ISpeechGrammarRules variable which contains the grammar's rules.

Example

The following Visual Basic form code demonstrates the use of the Rules method, the CmdSetRuleState method and the CmdSetRuleIdState method. To run this code, create a form with the following control:

  • A command button called Command1
  • Paste this code into the Declarations section of the form.

    The Form1_Load procedure creates a grammar and loads it with the solitaire grammar sol.xml, and uses the Rules method to create a collection of the rules contained in the grammar. The Command1_Click procedure creates an ISpeechGrammarRule object for the first rule contained in the grammar, and deactivates this rule using the CmdSetRuleState method and the rule's Name property. The procedure then creates an ISpeechGrammarRule object for the second rule, and deactivates that rule using the CmdSetRuleIdState method and the rule's Id property.
    Option Explicit
    
    Dim C As SpeechLib.SpSharedRecoContext
    Dim G As SpeechLib.ISpeechRecoGrammar
    Dim R As SpeechLib.ISpeechGrammarRules
    
    Dim Rule As SpeechLib.ISpeechGrammarRule
    
    Private Sub Command1_Click()
        
        'Get first rule in rules collection and set it inactive
        'Use CmdSetRuleState method and the rule NAME
        
        Set Rule = R.Item(0)
        G.CmdSetRuleState Rule.Name, SGDSInactive
        
        'Get next rule in rules collection and set it inactive, too
        'Use CmdSetRuleIdState method and the rule ID
    
        Set Rule = R.Item(1)
        G.CmdSetRuleIdState Rule.Id, SGDSInactive
    
    End Sub
    
    Private Sub Form_Load()
    
        Set C = New SpSharedRecoContext
        Set G = C.CreateGrammar
        
        'Load the Solitaire grammar so it can be changed
        
        Call G.CmdLoadFromFile("c:\sol.xml", SLODynamic)
        
        Set R = G.Rules     'Get the collection of rules
    
    End Sub