CHMlib Logo Leading Translation Management System for Translation Agencies, Top Translation Management Software for Freelance Translators, Time Tracking Software, Word Count, Character Count and Line Count Software, Computer Assisted Translation Tool for Easy Word Count, Clipboard Character Count Software, User-Friendly Translation Memory Software, Terminology Management Software, Terminology Management Server, Microsoft Glossary Software, Dictionary of Acronyms, Social Network for Translators and Translation Agencies, Acronyms and Abbreviations Search Engine, Russian Translation Lab, Ukrainian Translation Lab.
You are reading help file online using chmlib.com
CrisisHelper - First Aid in Tough Times of World Economic Crisis


The Microsoft.com Speech website Microsoft Speech SDK

SAPI 5.1

ISpLexicon::GetWords

ISpLexicon::GetWords gets a list of all words in the lexicon.

HRESULT GetWords(
   DWORD         dwFlags,
   DWORD        *pdwGeneration,
   DWORD        *pdwCookie,
   SPWORDLIST   *pWordList
);

Parameters

dwFlags
[in] Bitwise flags of type SPLEXICONTYPE from which words are to be retrieved.
pdwGeneration
[out] The current generation ID of the custom lexicon.
pdwCookie
[in, out] Cookie passed back by this call. It should subsequently be passed back in to get more data. If the call returns S_FALSE, data is remaining and GetWords should be called again. The initial value of the cookie passed in must be zero or pdwCookie will be a NULL pointer. NULL pdwCookie indicates the method should return all words contained in the lexicon at once. If it cannot, SP_LEX_REQUIRES_COOKIE is returned instead.
pWordList
[in, out] The buffer containing the word list and its related information. If pWordList is successfully returned, CoTaskMemFree must be used to free the list (pWordList->pvBuffer) when no longer needed.

Return values

Value Description
S_OK Function completed successfully.
S_FALSE Additional words are left in the lexicon(s) to process.
SPERR_LEX_REQUIRES_COOKIE A complete list of words cannot be returned at once from the container lexicon. pdwCookie must not be NULL.
E_POINTER At least one of pdwGeneration, pdwCookie, pWordList is not valid. Alternatively, the block of memory is too small or is not writable.
E_INVALIDARG At least one of the parameters is not valid.
E_OUTOFMEMORY Exceeded available memory.
SPERR_UNINITIALIZED Interface not initialized.
FAILED(hr) Appropriate error message.

Remarks

This method is called repeatedly with the cookie (set to zero before the first time) until S_OK is returned. S_FALSE is returned indicating additional information is left. Optionally, the cookie pointer passed in may be NULL, which specifies the application wants all of the words at once. However, the lexicon is not required to support this and may return the error SP_LEX_REQUIRES_COOKIE. The SpLexicon object (container lexicon) requires a cookie currently.

Example

The following is an example of using GetWords.


    SPWORDLIST spwordlist;
    memset(&spwordlist, 0, sizeof(spwordlist));
    dwCookie = 0;
    
    while (SUCCEEDED(hr = pISpLexicon->GetWords(eLEXTYPE_USER | eLEXTYPE_APP, &dwGeneration, &dwCookie, &spwordlist)))
    {
        for (SPWORD *pword = spwordlist.pFirstWord;
            pword != NULL;
            pword = pword->pNextWord)
        {
            for (SPWORDPRONUNCIATION *pwordpron = pword->pFirstWordPronunciation;
                pwordpron != NULL;
                pwordpron = pwordpron->pNextWordPronunciation)
            {
                DoSomethingWith(pwordpron->ePartOfSpeech, pwordpron->pszPronIPA);
            }
        }
 
        if (hr == S_OK)
               break;  // nothing more to retrieve
    }
      
    //free all the buffers
    CoTaskMemFree(spwordlist.pvBuffer);


You are reading help file online using chmlib.com

If you want your help file to be removed or added please send e-mail to chmlibcom@gmail.com
Partner sites: Logo Design, Simple Anti-Crisis Accounting Software, Voice Search for Web