int CIMEWnd::StartIME () { icon.LoadFile ("comm/ime.gif",8); logo.LoadFile ("comm/imelogo.bmp",1); imeInstance = this; SetRect (&imeRect,IMERECT_LEFT,IMERECT_TOP,IMERECT_LEFT+IME_WIDTH,IMERECT_TOP+IME_HEIGHT); SetRect (&subimeRect,SUBIMERECT_LEFT,SUBIMERECT_TOP,SUBIMERECT_LEFT+IME_WIDTH,SUBIMERECT_TOP+IME_HEIGHT); SetRect(&refRect,IMERECT_LEFT,IMERECT_TOP,IMERECT_LEFT+2*IME_WIDTH+5,IMERECT_TOP+IME_HEIGHT); m_hWnd=create_container_win (); if(m_hWnd != HWND_INVALID) { int ret = InitIME(); if(ret != 0) return ret; RegisterKeyMsgHook(this,keyboardHook); return 0; } return -1; }
SDL_bool SDL_IME_Init(void) { InitIME(); if (SDL_IME_Init_Real) { if (SDL_IME_Init_Real()) { return SDL_TRUE; } /* uhoh, the IME implementation's init failed! Disable IME support. */ SDL_IME_Init_Real = NULL; SDL_IME_Quit_Real = NULL; SDL_IME_SetFocus_Real = NULL; SDL_IME_Reset_Real = NULL; SDL_IME_ProcessKeyEvent_Real = NULL; SDL_IME_UpdateTextRect_Real = NULL; SDL_IME_PumpEvents_Real = NULL; } return SDL_FALSE; }