ISpLexicon::GetPronunciations (SAPI 5.3)

Speech API 5.3
Microsoft Speech API 5.3

ISpLexicon::GetPronunciations

ISpLexicon::GetPronunciations gets pronunciations and parts of speech for a word.

HRESULT GetPronunciations(
   LPCWSTR                  *pszWord,
   LANGID                    LangID,
   DWORD                     dwFlags,
   SPWORDPRONUNCIATIONLIST  *pWordPronunciationList
);

Parameters

pszWord
[in] Pointer to a null-terminated text string as a search keyword. Length must be equal to less than SP_MAX_WORD_LENGTH.
LangID
[in] The language ID of the word. May be zero to indicate that the word can be of any LANGID.
dwFlags
[in] Bitwise flags of type SPLEXICONTYPE indicating that the lexicons searched for this word.
pWordPronunciationList
[in, out] Pointer to SPWORDPRONUNCIATIONLIST structure in which the pronunciations and parts of speech are returned.

Return values

ValueDescription
S_OKFunction completed successfully.
SP_WORD_EXISTS_WITHOUT_PRONUNCIATIONThe word exists but does not have a pronunciation.
E_POINTER pWordPronunciationList is not a valid write pointer.
E_INVALIDARGAt least one of the parameters is invalid or bad.
E_OUTOFMEMORYExceeded available memory.
SPERR_UNINITIALIZEDThe interface has not been initialized.
SPERR_NOT_IN_LEXWord is not found in the lexicon.
FAILED(hr)Appropriate error message.

Example

The following example is a code fragment demonstrating the use of GetPronunciations.


// Declare local identifiers:
HRESULT                      hr = S_OK;
CComPtr<ISpLexicon>          cpLexicon;
SPWORDPRONUNCIATIONLIST      *pwordpronlist;
SPWORDPRONUNCIATION          *pwordpron;

memset(pwordpronlist, 0, sizeof(pwordpronlist));

hr = cpLexicon->GetPronunciations(L"resume", 409, eLEXTYPE_USER | eLEXTYPE_APP, pwordpronlist);

if( SUCCEEDED(hr))
{
   for (pwordpron = pwordpronlist->pFirstWordPronunciation;
      pwordpron != NULL;
      pwordpron = pwordpron->pNextWordPronunciation)
      {
         // Do something with the SPWORDPRONUNCIATION structure's
         // members (for example, ePartOfSpeech and szPronunciation).
      }
}

// Free all the buffers.
CoTaskMemFree(pwordpronlist.pvBuffer);
Show: