13# define WIN32_LEAN_AND_MEAN
23# define W32_ISO639_LEN 9
82struct ImeComposition {
103 std::wstring ime_string;
104 std::vector<char> utf8_buf;
105 std::vector<unsigned char>
format;
124class GHOST_ImeWin32 {
130 bool is_composing()
const
132 return is_composing_;
136 void UpdateInputLanguage();
138 BOOL IsLanguage(
const char name[W32_ISO639_LEN]);
141 void UpdateConversionStatus(HWND window_handle);
144 bool IsEnglishMode();
147 bool IsImeKeyEvent(
char ascii,
GHOST_TKey key);
155 void CreateImeWindow(HWND window_handle);
177 void SetImeWindowStyle(
178 HWND window_handle, UINT message, WPARAM wparam, LPARAM lparam, BOOL *handled);
186 void DestroyImeWindow(HWND window_handle);
194 void UpdateImeWindow(HWND window_handle);
203 void CleanupComposition(HWND window_handle);
213 void ResetComposition(HWND window_handle);
236 bool GetResult(HWND window_handle, LPARAM lparam, ImeComposition *composition);
259 bool GetComposition(HWND window_handle, LPARAM lparam, ImeComposition *composition);
283 void BeginIME(HWND window_handle,
const GHOST_Rect &caret_rect,
bool complete);
294 void EndIME(HWND window_handle);
297 void UpdateInfo(HWND window_handle);
300 void CheckFirst(HWND window_handle);
302 ImeComposition resultInfo, compInfo;
307 bool IsTargetAttribute(
char attribute)
const
309 return (attribute == ATTR_TARGET_CONVERTED || attribute == ATTR_TARGET_NOTCONVERTED);
313 void GetCaret(HIMC imm_context, LPARAM lparam, ImeComposition *composition);
316 void MoveImeWindow(HWND window_handle, HIMC imm_context);
319 void CompleteComposition(HWND window_handle, HIMC imm_context);
322 bool GetString(HIMC imm_context, WPARAM lparam,
int type, ImeComposition *composition);
332 char language_[W32_ISO639_LEN];
335 DWORD conversion_modes_;
338 DWORD sentence_mode_;
352 bool is_first, is_enable;
btAlignedObjectArray< btScalar > m_data
unsigned __int64 uint64_t