IME에 대해서 찾아 보는 중인데...
IME를 직접 구현하는 것에 대해 자료를 찾아보는 중인데
DDK에서도 이 부분이 그렇게 상세하게는 안 나온 것 같아서 질문합니다.
DDK에서 일본어 IME 예제에 나온 함수들하고 새나루 입력기 소스에 공통적으로 나온 함수들을 추려보니 다음과 같군요.
BOOL WINAPI ImeConfigure(IN HKL, IN HWND, IN DWORD, IN LPVOID);
BOOL WINAPI ImeDestroy(UINT);
BOOL WINAPI ImeInquire(IN LPIMEINFO, OUT LPTSTR, IN DWORD);
BOOL WINAPI ImeProcessKey(IN HIMC, IN UINT, IN LPARAM, IN CONST LPBYTE);
BOOL WINAPI ImeRegisterWord(IN LPCTSTR, IN DWORD, IN LPCTSTR);
BOOL WINAPI ImeSelect(IN HIMC, IN BOOL);
BOOL WINAPI ImeSetActiveContext(IN HIMC, IN BOOL);
BOOL WINAPI ImeSetCompositionString(IN HIMC, IN DWORD, IN LPVOID, IN DWORD, IN LPVOID, IN DWORD);
BOOL WINAPI ImeUnregisterWord(IN LPCTSTR, IN DWORD, IN LPCTSTR);
BOOL WINAPI NotifyIME(IN HIMC, IN DWORD, IN DWORD, IN DWORD);
DWORD WINAPI ImeConversionList(HIMC, LPCTSTR, LPCANDIDATELIST, DWORD, UINT);
LRESULT WINAPI ImeEscape(HIMC, UINT, LPVOID);
UINT WINAPI ImeEnumRegisterWord(IN REGISTERWORDENUMPROC, IN LPCTSTR, IN DWORD, IN LPCTSTR, IN LPVOID);
UINT WINAPI ImeGetRegisterWordStyle(IN UINT, OUT LPSTYLEBUF);
UINT WINAPI ImeToAsciiEx(IN UINT, IN UINT, IN CONST LPBYTE, OUT LPTRANSMSGLIST, IN UINT, IN HIMC);
먼저 이 함수'만' 구현하면 운영체제에서 제대로 된 입력기로 인식을 하는지 궁금합니다.
그리고 이 함수들이 어떤 역할을 하고 어떤 값을 반환해야 하는지에 대한 내용이
imeimes.doc라는 DDK 문서에 있다고 하던데 이 문서 어디서 구할 수 있나요? 구글에 찾아봐도 전혀 검색이 안되네요.
댓글 달기