ISpGrammarBuilder::AddResource (SAPI 5.4)
Microsoft Speech API 5.4
ISpGrammarBuilder::AddResource
ISpGrammarBuilder::AddResource adds a resource (name and string value) to the grammar rule specified in hRuleState. The resource can be queried by a rule interpreter using ISpCFGInterpreterSite::GetResourceValue().
HRESULT AddResource(
SPSTATEHANDLE hRuleState,
LPCWSTR *pszResourceName,
LPCWSTR *pszResourceValue
);
Parameters
- hRuleState
[in] Handle of a state in the rule to which the resource is to be added. - pszResourceName
[in] Address of a null-terminated string specifying the resource name. - pszResourceValue
[in] Address of a null-terminated string specifying the resource value.
Return values
Value |
S_OK |
E_INVALIDARG |
SPERR_DUPLICATE_RESOURCE_NAME |
E_OUTOFMEMORY |
FAILED(hr) |
Example
The following code snippet illustrates the use of AddResource.
// Declare local identifiers:
HRESULT hr = S_OK;
CComPtr<ISpGrammarBuilder> cpGrammarBuilder;
SPSTATEHANDLE hInit;
SPSTATEHANDLE hState;
hr = cpGrammarBuilder->GetRule(L"rule1", 1, 0, TRUE, &hInit;);
if (SUCCEEDED (hr))
{
hr = cpGrammarBuilder->CreateNewState(hInit, &hState;);
}
if (SUCCEEDED (hr))
{
// Call AddResource using the hInitState.
hr = cpGrammarBuilder->AddResource(hInit, L"ResName1", L"ResValue1");
}
if (SUCCEEDED(hr))
{
// Call AddResource using hState != hInit.
hr = cpGrammarBuilder->AddResource(hState, L"ResName2", L"ResValue2");
}
if (SUCCEEDED(hr))
{
// Do something here.
}