Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Speech API 5.3
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.
}