First commit.
This commit is contained in:
commit
7b83802bb2
103 files changed
+19016
No files matched your search
@@ -0,0 +1,120 @@
|
||||
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
||||
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
||||
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
||||
// PARTICULAR PURPOSE.
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved
|
||||
|
||||
#include "Private.h"
|
||||
#include "TableDictionaryEngine.h"
|
||||
#include "DictionarySearch.h"
|
||||
|
||||
//+---------------------------------------------------------------------------
|
||||
//
|
||||
// CollectWord
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
VOID CTableDictionaryEngine::CollectWord(_In_ CStringRange *pKeyCode, _Inout_ CSampleImeArray<CStringRange> *pWordStrings)
|
||||
{
|
||||
CDictionaryResult* pdret = nullptr;
|
||||
CDictionarySearch dshSearch(_locale, _pDictionaryFile, pKeyCode);
|
||||
|
||||
while (dshSearch.FindPhrase(&pdret))
|
||||
{
|
||||
for (UINT index = 0; index < pdret->_FindPhraseList.Count(); index++)
|
||||
{
|
||||
CStringRange* pPhrase = nullptr;
|
||||
pPhrase = pWordStrings->Append();
|
||||
if (pPhrase)
|
||||
{
|
||||
*pPhrase = *pdret->_FindPhraseList.GetAt(index);
|
||||
}
|
||||
}
|
||||
|
||||
delete pdret;
|
||||
pdret = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
VOID CTableDictionaryEngine::CollectWord(_In_ CStringRange *pKeyCode, _Inout_ CSampleImeArray<CCandidateListItem> *pItemList)
|
||||
{
|
||||
CDictionaryResult* pdret = nullptr;
|
||||
CDictionarySearch dshSearch(_locale, _pDictionaryFile, pKeyCode);
|
||||
|
||||
while (dshSearch.FindPhrase(&pdret))
|
||||
{
|
||||
for (UINT iIndex = 0; iIndex < pdret->_FindPhraseList.Count(); iIndex++)
|
||||
{
|
||||
CCandidateListItem* pLI = nullptr;
|
||||
pLI = pItemList->Append();
|
||||
if (pLI)
|
||||
{
|
||||
pLI->_ItemString.Set(*pdret->_FindPhraseList.GetAt(iIndex));
|
||||
pLI->_FindKeyCode.Set(pdret->_FindKeyCode.Get(), pdret->_FindKeyCode.GetLength());
|
||||
}
|
||||
}
|
||||
|
||||
delete pdret;
|
||||
pdret = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//+---------------------------------------------------------------------------
|
||||
//
|
||||
// CollectWordForWildcard
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
VOID CTableDictionaryEngine::CollectWordForWildcard(_In_ CStringRange *pKeyCode, _Inout_ CSampleImeArray<CCandidateListItem> *pItemList)
|
||||
{
|
||||
CDictionaryResult* pdret = nullptr;
|
||||
CDictionarySearch dshSearch(_locale, _pDictionaryFile, pKeyCode);
|
||||
|
||||
while (dshSearch.FindPhraseForWildcard(&pdret))
|
||||
{
|
||||
for (UINT iIndex = 0; iIndex < pdret->_FindPhraseList.Count(); iIndex++)
|
||||
{
|
||||
CCandidateListItem* pLI = nullptr;
|
||||
pLI = pItemList->Append();
|
||||
if (pLI)
|
||||
{
|
||||
pLI->_ItemString.Set(*pdret->_FindPhraseList.GetAt(iIndex));
|
||||
pLI->_FindKeyCode.Set(pdret->_FindKeyCode.Get(), pdret->_FindKeyCode.GetLength());
|
||||
}
|
||||
}
|
||||
|
||||
delete pdret;
|
||||
pdret = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//+---------------------------------------------------------------------------
|
||||
//
|
||||
// CollectWordFromConvertedStringForWildcard
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
VOID CTableDictionaryEngine::CollectWordFromConvertedStringForWildcard(_In_ CStringRange *pString, _Inout_ CSampleImeArray<CCandidateListItem> *pItemList)
|
||||
{
|
||||
CDictionaryResult* pdret = nullptr;
|
||||
CDictionarySearch dshSearch(_locale, _pDictionaryFile, pString);
|
||||
|
||||
while (dshSearch.FindConvertedStringForWildcard(&pdret)) // TAIL ALL CHAR MATCH
|
||||
{
|
||||
for (UINT index = 0; index < pdret->_FindPhraseList.Count(); index++)
|
||||
{
|
||||
CCandidateListItem* pLI = nullptr;
|
||||
pLI = pItemList->Append();
|
||||
if (pLI)
|
||||
{
|
||||
pLI->_ItemString.Set(*pdret->_FindPhraseList.GetAt(index));
|
||||
pLI->_FindKeyCode.Set(pdret->_FindKeyCode.Get(), pdret->_FindKeyCode.GetLength());
|
||||
}
|
||||
}
|
||||
|
||||
delete pdret;
|
||||
pdret = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user