ISpRecoGrammar::LoadCmdFromProprietaryGrammar (SAPI 5.4)
Microsoft Speech API 5.4
ISpRecoGrammar::LoadCmdFromProprietaryGrammar
ISpRecoGrammar::LoadCmdFromProprietaryGrammar loads a proprietary grammar.
HRESULT LoadCmdFromProprietaryGrammar(
REFGUID rguidParam,
LPCWSTR *pszStringParam,
const void *pvDataParam,
ULONG cbDataSize,
SPLOADOPTIONS Options
);
Parameters
- rguidParam
[in] Unique identifier of the grammar. The GUID will be used by the application and the SR engine to uniquely identify the SR engine for verifying support. - pszStringParam
[in, string] The null-terminated string command. The string can be used by the application and the SR engine to specify which part of a grammar to utilize. - pvDataParam
[in] Additional information for the process. SAPI will handle the marshaling of the data to the SR engine. - cbDataSize
[in] The size, in bytes, of pvDataParam. SAPI will handle the marshaling of the data to the SR engine. - Options
[in] Flag of type SPLOADOPTIONS indicating whether the file should be loaded statically or dynamically. This value must be SPLO_STATIC.
Return values
Value |
S_OK |
E_INVALIDARG |
FAILED(hr) |
Remarks
When an application calls ::LoadCmdFromProprietaryGrammar, the currently loaded CFG or proprietary will be unloaded.
Applications should use ::LoadCmdFromProprietaryGrammar when using a proprietary grammar format that the SR engine supports (see ISpSREngine::LoadProprietaryGrammar). If the current SR engine does not support the proprietary grammar format (specified using rguidParam and pszStringParam), the SR engine may return E_NOTIMPL.
Example
// Declare local identifiers:
HRESULT hr = S_OK;
CComPtr<ISpRecoGrammar> cpRecoGrammar;
CComPtr<ISpRecoContext> cpRecoContext;
ULONGLONG ullGramId = 1;
GUID rguidParam;
// Create a new grammar object.
hr = cpRecoContext->CreateGrammar(ullGramId, &cpRecoGrammar;);
if (SUCCEEDED(hr))
{
// Load a proprietary grammar.
hr = cpRecoGrammar->LoadCmdFromProprietaryGrammar(rguidParam, L"Rule1", NULL, NULL, SPLO_STATIC);
}
if (SUCCEEDED(hr))
{
// Do stuff here.
}