CHMlib Logo Leading Translation Management System for Translation Agencies, Top Translation Management Software for Freelance Translators, Time Tracking Software, Word Count, Character Count and Line Count Software, Computer Assisted Translation Tool for Easy Word Count, Clipboard Character Count Software, User-Friendly Translation Memory Software, Terminology Management Software, Terminology Management Server, Microsoft Glossary Software, Dictionary of Acronyms, Social Network for Translators and Translation Agencies, Acronyms and Abbreviations Search Engine, Russian Translation Lab, Ukrainian Translation Lab.
You are reading help file online using chmlib.com
CrisisHelper - First Aid in Tough Times of World Economic Crisis


The Microsoft.com Speech website Microsoft Speech SDK

SAPI 5.1

ISpGrammarBuilder::GetRule

ISpGrammarBuilder::GetRule retrieves grammar rule's initial state.

HRESULT GetRule(
   const WCHAR    *pszRuleName,
   DWORD           dwRuleId,
   DWORD           dwAttributes,
   BOOL            fCreateIfNotExist,
   SPSTATEHANDLE   *phInitialState
);

Parameters

pszRuleName
[in] Address of the null-terminated string containing the grammar rule name. If NULL, no search is made for the name.
dwRuleId
[in] Grammar rule identifier. If zero, no search is made for the rule ID.
dwAttributes
[in] Grammar rule attributes for the new rule created.  Ignored if the rule already exists.  Must be of type SPCFGRULEATTRIBUTES. Values may be combined to allow for multiple attributes.
fCreateIfNotExist
[in] Boolean indicating that the grammar rule is to be created if one does not currently exist. TRUE allows the creation; FALSE does not.
phInitialState
[out] The initial state of the rule. May be NULL.

Return values

Value Description
S_OK Function completed successfully.
SPERR_RULE_NOT_FOUND No rule matching the specified criteria can be found and a new rule is not created.
SPERR_RULE_NAME_ID_CONFLICT One of the name and ID matches an existing rule but the other does not match the same rule.
E_INVALIDARG At least one parameter is invalid. Also returned when both pszRuleName and dwRuleId are NULL.
E_OUTOFMEMORY Not enough memory to complete operation.

Remarks

Either the rule name or ID must be provided (the other unused parameter can either be NULL or zero). If both a grammar rule name and identifier are provided, they both must match in order for this call to succeed. If the grammar rule does not already exist and fCreateIfNotExists is true, the grammar rule is defined. Otherwise this call will return an error.


Example

The following code snippet illustrates the use of GetRule.


    HRESULT hr = S_OK;
    SPSTATEHANDLE hState;

//======================================================================
//  Create a rule with name and ID
    hr = pGrammarBuilder->GetRule(L"rule1", 1, SPRAF_Dynamic, TRUE, &hState);
    //Check return value

//======================================================================
//  Create a rule with name only
    hr = pGrammarBuilder->GetRule(L"rule", 0, SPRAF_Dynamic, TRUE, &hState);
    //Check return value

//======================================================================
//  Create a rule with ID only
    hr = pGrammarBuilder->GetRule(NULL, 2, SPRAF_Dynamic, TRUE, &hState);
    //Check return value

//======================================================================
//  Get an existing rule by ID
    hr = pGrammarBuilder->GetRule(L"rule1", 1, SPRAF_Dynamic, FALSE, &hState);
    //Check return value
    hr = pGrammarBuilder->GetRule(NULL, 1, SPRAF_Dynamic, FALSE, &hState);
    //Check return value

//======================================================================
//  Get an existing rule by name
    hr = pGrammarBuilder->GetRule(L"rule1", 0, SPRAF_Dynamic, FALSE, &hState);
    //Check return value
	
//======================================================================
//  Get rule references to other grammars
//  Compose the name of the rule as follows
//  Please note the double back-slash before the rule name.
//  OBJECT --> pszRuleName = L"SAPI5OBJECT:MyApp.ClassId\\\\RuleName"
//  URL --> pszRuleName = L"URL:http://myserver.com\\\\RuleName"

    hr = pBackend->GetRule(pszRuleName, 0 , SPRAF_Import, TRUE, phTarget) 
    //Check return value
  
// phTarget contains a valid rule handle that can be used to reference the rule.	


You are reading help file online using chmlib.com

If you want your help file to be removed or added please send e-mail to chmlibcom@gmail.com
Partner sites: Logo Design, Simple Anti-Crisis Accounting Software, Voice Search for Web