Microsoft Speech SDK
SAPI 5.1
ISpGrammarBuilder::ClearRule
ISpGrammarBuilder::ClearRule removes all of the grammar rule information except for the rule's initial state handle.
HRESULT ClearRule(
SPSTATEHANDLE hState
);
Parameters
- hState
- [in] Handle to the any of the states in the grammar rule to be cleared. Only the rule's initial state handle is still valid.
Return values
Value | Description |
---|---|
S_OK | Function completed successfully. |
E_INVALIDARG | Value specified in hState is not valid. |
Example
The following code snippet illustrates the use of ClearRule.
HRESULT hr = S_OK; SPSTATEHANDLE hInit; SPSTATEHANDLE hState; hr = pGrammarBuilder->GetRule(L"rule1", 1, 0, TRUE, &hInit); // ClearRule using hInitState hr = pGrammarBuilder->CreateNewState(hInit, &hState); hr = pGrammarBuilder->AddWordTransition(hInit, hState, L"word", NULL, SPWT_LEXICAL, 1, NULL); hr = pGrammarBuilder->ClearRule(hInit); // Check hr hr = pGrammarBuilder->AddWordTransition(hInit, hState, L"word", NULL, SPWT_LEXICAL, 1, NULL); // E_INVALIDARG because hState in no longer valid // ClearRule using hState != hInit hr = pGrammarBuilder->CreateNewState(hInit, &hState); hr = pGrammarBuilder->AddWordTransition(hInit, hState, L"word", NULL, SPWT_LEXICAL, 1, NULL); hr = pGrammarBuilder->ClearRule(hState); // Check hr hr = pGrammarBuilder->AddWordTransition(hInit, hState, L"word", NULL, SPWT_LEXICAL, 1, NULL);
// E_INVALIDARG because hState in no longer valid