Microsoft Speech SDK
SAPI 5.1
ISpRecoGrammar::LoadCmdFromResource
ISpRecoGrammar::LoadCmdFromResource loads a command and control grammar from a Win32 resource.
HRESULT LoadCmdFromResource(
HMODULE hModule,
const WCHAR *pszResourceName,
const WCHAR *pszResourceType,
WORD wLanguage,
SPLOADOPTIONS Options
);
Parameters
- hModule
- [in] Handle to the module whose file name is being requested. If this parameter is NULL, it passes back the path for the file containing the current process.
- pszResourceName
- [in, string] The name of the resource.
- pszResourceType
- [in, string] The type of the resource.
- wLanguage
- [in] The language ID.
- Options
- [in] Flag of type SPLOADOPTIONS indicating whether the file should be loaded statically or dynamically.
Return values
Value | Description |
---|---|
S_OK | Function completed successfully. |
E_INVALIDARG | Either pszResourceName or pszResourceType is invalid or bad. It may also indicate hModule could not be found. Alternatively, Options is neither SPLO_STATIC nor SPLO_DYNAMIC. |
FAILED(hr) | Appropriate error message. |
Remarks
When an application calls ::LoadCmdFromResource, the currently loaded context-free grammar or proprietary grammar will be unloaded.
The CFG resource must be a compiled SAPI 5 binary version of a context-free grammar (see ISpGrammarCompiler::CompileStream).
Example
HRESULT hr = S_OK;
// create a new grammar object
hr = cpRecoContext->CreateGrammar(GRAM_ID, &cpRecoGrammar);
// Check hr
// load a CFG resource from the current module, named SRGRAMMAR
hr = cpRecoGrammar->LoadCmdFromResource(hModule,
(const WCHAR*)MAKEINTRESOURCE(IDR_GRAMMAR),
L"SRGRAMMAR",
::SpGetUserDefaultUILanguage()
, SPLO_STATIC);
// Check hr