Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

imefull.c File Reference

#include "precomp.h"

Go to the source code of this file.

Functions

VOID ImeOpenClose (HWND hWnd, BOOL fFlag)
VOID CharHandlerFromConsole (HWND hWnd, UINT Message, ULONG wParam, ULONG lParam)
VOID CharHandlerToConsole (HWND hWnd, UINT Message, ULONG wParam, ULONG lParam)


Function Documentation

VOID CharHandlerFromConsole HWND  hWnd,
UINT  Message,
ULONG  wParam,
ULONG  lParam
 

Definition at line 208 of file imefull.c.

References BOOL, CharHandlerToConsole(), CONIME_KEYDATA, DWORD, hWnd, ImmCallImeConsoleIME(), ImmTranslateMessage(), IPHK_CHECKCTRL, IPHK_HOTKEY, IPHK_PROCESSBYIME, NULL, Status, UINT, and VOID().

Referenced by WndProc().

00209 { 00210 UINT TmpMessage ; 00211 DWORD dwImmRet ; 00212 UINT uVKey ; 00213 UINT wParamSave ; 00214 00215 if (HIWORD(wParam) == 0){ 00216 wParamSave = wParam ; 00217 } 00218 else { 00219 if (Message == WM_KEYDOWN +CONIME_KEYDATA || Message == WM_KEYUP +CONIME_KEYDATA || 00220 Message == WM_SYSKEYDOWN+CONIME_KEYDATA || Message == WM_SYSKEYUP+CONIME_KEYDATA){ 00221 wParamSave = 0 ; 00222 } 00223 else if(HIWORD(wParam) > 0x00ff){ 00224 WCHAR WideChar ; 00225 UCHAR MultiChar ; 00226 WideChar = HIWORD(wParam) ; 00227 WideCharToMultiByte(CP_OEMCP, 0, &WideChar, 1, &MultiChar, 1, NULL, NULL) ; 00228 wParamSave = MultiChar ; 00229 } 00230 else { 00231 wParamSave = HIWORD(wParam) ; 00232 } 00233 } 00234 00235 if (HIWORD(lParam) & KF_UP) // KEY_TRANSITION_UP 00236 TmpMessage = WM_KEYUP ; 00237 else 00238 TmpMessage = WM_KEYDOWN ; 00239 00240 00241 // Return Value of ClientImmProcessKeyConsoleIME 00242 // IPHK_HOTKEY 1 - the vkey is IME hotkey 00243 // IPHK_PROCESSBYIME 2 - the vkey is the one that the IME is waiting for 00244 // IPHK_CHECKCTRL 4 - not used by NT IME 00245 dwImmRet = ImmCallImeConsoleIME(hWnd, TmpMessage, wParam, lParam, &uVKey) ; 00246 00247 if ( dwImmRet & IPHK_HOTKEY ) { 00248 // 00249 // if this vkey is the IME hotkey, we won't pass 00250 // it to application or hook procedure. 00251 // This is what Win95 does. [takaok] 00252 // 00253 return ; 00254 } 00255 else if (dwImmRet & IPHK_PROCESSBYIME) { 00256 BOOL Status ; 00257 00258 //3.51 00259 // uVKey = (wParamSave<<8) | uVKey ; 00260 // Status = ClientImmTranslateMessageMain( hWnd,uVKey,lParam); 00261 00262 Status = ImmTranslateMessage(hWnd, TmpMessage, wParam, lParam); 00263 00264 00265 } 00266 else if (dwImmRet & IPHK_CHECKCTRL) { 00267 CharHandlerToConsole( hWnd, Message-CONIME_KEYDATA, wParamSave, lParam); 00268 } 00269 else 00270 { 00271 if ((Message == WM_CHAR +CONIME_KEYDATA)|| 00272 (Message == WM_SYSCHAR+CONIME_KEYDATA)) { 00273 CharHandlerToConsole( hWnd, Message-CONIME_KEYDATA, wParamSave, lParam); 00274 } 00275 else 00276 CharHandlerToConsole( hWnd, Message-CONIME_KEYDATA, wParam, lParam); 00277 } 00278 00279 }

VOID CharHandlerToConsole HWND  hWnd,
UINT  Message,
ULONG  wParam,
ULONG  lParam
 

Definition at line 281 of file imefull.c.

References CONIME_KEYDATA, DBGPRINT, hWnd, _CONSOLE_TABLE::hWndCon, LastConsole, NULL, PostMessage(), SearchConsole(), UNICODE_SPACE, VirtualKeyHandler(), and VOID().

Referenced by CharHandlerFromConsole(), and WndProc().

00282 { 00283 PCONSOLE_TABLE ConTbl; 00284 WORD ch ; 00285 int NumByte = 0 ; 00286 00287 ConTbl = SearchConsole(LastConsole); 00288 if (ConTbl == NULL) { 00289 DBGPRINT(("CONIME: Error! Cannot found registed Console\n")); 00290 return; 00291 } 00292 00293 if (HIWORD(lParam) & KF_UP ) { 00294 PostMessage( ConTbl->hWndCon, 00295 Message+CONIME_KEYDATA, 00296 wParam, 00297 lParam) ; 00298 return ; 00299 } 00300 00301 ch = LOWORD(wParam) ; 00302 if ((ch < UNICODE_SPACE) || 00303 ((ch >= UNICODE_SPACE) && 00304 ((Message == WM_KEYDOWN) || (Message == WM_SYSKEYDOWN) ))) { 00305 #ifdef DEBUG_MODE 00306 VirtualKeyHandler( hWnd, wParam ,lParam) ; 00307 #endif 00308 PostMessage( ConTbl->hWndCon, 00309 Message+CONIME_KEYDATA, 00310 wParam, 00311 lParam) ; 00312 return ; 00313 } 00314 00315 #ifdef DEBUG_MODE 00316 StoreChar( hWnd, ch, 0); 00317 #endif 00318 00319 PostMessage( ConTbl->hWndCon, 00320 Message+CONIME_KEYDATA, 00321 wParam, //*Dest, 00322 lParam) ; 00323 }

VOID ImeOpenClose HWND  hWnd,
BOOL  fFlag
 

Definition at line 30 of file imefull.c.

References hWnd, ImmGetContext(), ImmReleaseContext(), ImmSetOpenStatus(), and VOID().

00031 { 00032 HIMC hIMC; 00033 00034 // 00035 // If fFlag is true then open IME; otherwise close it. 00036 // 00037 00038 if ( !( hIMC = ImmGetContext( hWnd ) ) ) 00039 return; 00040 00041 ImmSetOpenStatus( hIMC, fFlag ); 00042 00043 ImmReleaseContext( hWnd, hIMC ); 00044 00045 }


Generated on Sat May 15 19:44:09 2004 for test by doxygen 1.3.7