ISpRecoGrammar::LoadCmdFromResource

Microsoft Speech SDK

The Microsoft.com Speech website 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