///////////////////////////////////////////////////////////////////////////// // // Copyright (C) 1997, Microsoft Corporation. All Rights Reserved. // ///////////////////////////////////////////////////////////////////////////// //#include "stdafx.h" #include "pch.cxx" #include #include "ReadHeosaDict.h" // Ssi-Ggut, Tossi, AuxVerb, AuxAdj dictionary static CFSADict *heosaDicts[NUM_OF_HEOSA_DICT]; static CFSAIrrDict *irrDicts[NUM_OF_IRR_DICT]; BOOL OpenHeosaDict(HANDLE hDict, DWORD offset) { DWORD readBytes; //HANDLE hDict; int i; _HeosaDictHeader dictHeader; //hDict = CreateFile(lpFileName, GENERIC_READ, 0, 0, // OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, 0); //if (hDict==INVALID_HANDLE_VALUE) return FALSE; // Read Header SetFilePointer(hDict, offset, 0, FILE_BEGIN); ReadFile(hDict, &dictHeader, sizeof(_HeosaDictHeader), &readBytes, 0); //if (strcmp(COPYRIGHT_STR, dictHeader.COPYRIGHT_HEADER)!=0) return FALSE; SetFilePointer(hDict, offset + dictHeader.iStart, 0, FILE_BEGIN); // Open 4 Heosa dicts for (i=0; iFind(lpWord, actCode)); } int FindIrrWord(LPCSTR lpWord, int irrCode) { return irrDicts[irrCode]->Find(lpWord); } /* int FindHeosaWord(LPCSTR lpWord, BYTE heosaPumsa, BYTE *actCode) { char invInternal[256]; int ret; #ifdef _MBCS WCHAR uni[256]; MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, (LPCTSTR)lpWord, -1, uni, 256); UniToInvInternal(uni, invInternal, wcslen(uni)); #elif _UNICODE UniToInvInternal(lpWord, invInternal, wcslen(uni)); #endif ret = heosaDicts[heosaPumsa]->Find(invInternal, actCode); //*actCode = BYTE((ret & 0xFF00)>>8); return ret; } ///////////////////////////////////////////////////////////////////////////// // Find word from Irregular dict. int FindIrrWord(LPCSTR lpWord, int irrCode) { char internal[256]; #ifdef _MBCS WCHAR uni[256]; MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, (LPCTSTR)lpWord, -1, uni, 256); UniToInternal(uni, internal, wcslen(uni)); #elif _UNICODE UniToInternal(lpWord, internal, wcslen(uni)); #endif return irrDicts[irrCode]->Find(internal); } */