亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? toascii.c

?? This folder includes IME sample source code for Simplified Chinese IMEs
?? C
?? 第 1 頁 / 共 4 頁
字號:
    if (!lpIMC) {
        return (CST_INVALID);
    }

    if (!lpImcP) {
        return (CST_INVALID);
    }


    // filter system key (alt,alt+,ctrl,shift)
    // and fOpen, IME_CMODE_NOCONVERSION
    if (uVirtKey == VK_MENU) {                  // ALT key
        return (CST_INVALID);
    } else if (uScanCode & KF_ALTDOWN) {    // ALT-xx key
        return (CST_INVALID);
    } else if (uVirtKey == VK_CONTROL) {    // CTRL key
        return (CST_INVALID);
    } else if (uVirtKey == VK_SHIFT) {      // SHIFT key
        return (CST_INVALID);
    } else if (!lpIMC->fOpen) {             // don't compose in 
                                            // close status
        return (CST_INVALID);
    } else if (lpIMC->fdwConversion & IME_CMODE_NOCONVERSION) {
                // Caps on/off
                if(uVirtKey == VK_CAPITAL) {
                        return (CST_CAPITAL);
                }else           
                        return (CST_INVALID);
        
    } else if (uVirtKey >= VK_NUMPAD0 && uVirtKey <= VK_DIVIDE) {
        return (CST_INVALID);
    } else {
    }

    // Caps on/off
    if(uVirtKey == VK_CAPITAL) {
        return (CST_CAPITAL);
        }

    if ((lpIMC->fdwConversion & IME_CMODE_SOFTKBD)
       && (lpImeL->dwSKWant != 0)){
        if (wCharCode >= TEXT(' ') && wCharCode <= TEXT('~')) {
          return (CST_SOFTKB);
                } else {
          return (CST_INVALID);
                }
    }
        
    // candidate alaredy open,  <,>,pageup,pagedown,?,ECS,key
    if (lpImcP->fdwImeMsg & MSG_ALREADY_OPEN) {
        if (uVirtKey == VK_PRIOR) {                     // PageUp
            return (CST_CHOOSE);
        } else if (uVirtKey == VK_NEXT) {       // PageDown
            return (CST_CHOOSE);
        } else if (wCharCode == TEXT('-')) {
            return (CST_CHOOSE);
        } else if (wCharCode == TEXT('=')) {
            return (CST_CHOOSE);
        } else if (uVirtKey == VK_HOME) {
            return (CST_CHOOSE);
        } else if (uVirtKey == VK_END) {
            return (CST_CHOOSE);
        } else if (uVirtKey == VK_ESCAPE) {     // Esc
            return (CST_CHOOSE);
        } else if (wCharCode == TEXT(' ')) {
            return (CST_CHOOSE);
        } else {
        }
    }


    // candidate alaredy open, shift + num key
    if (lpImcP->fdwImeMsg & MSG_ALREADY_OPEN) {
            if ((wCharCode >= TEXT('0')) && wCharCode <= TEXT('9')) {
                return (CST_CHOOSE);
            }
    }

    // IME_CMODE_CHARCODE
    if (lpIMC->fdwConversion & IME_CMODE_CHARCODE) {    //Code Input Mode
            return (CST_INVALID);
    }

    if (!(lpIMC->fdwConversion & IME_CMODE_NATIVE)) {
        // alphanumeric mode
        if (wCharCode >= TEXT(' ') && wCharCode <= TEXT('~')) {
            return (CST_ALPHANUMERIC);
        } else {
            return (CST_INVALID);
        }
    } else if (wCharCode == TEXT('?')) {
    } else if (wCharCode == TEXT(' ')) {
        } else if(wCharCode >= TEXT(' ') && wCharCode <= TEXT('~')) {
                if(!IsUsedCode(wCharCode)
                && lpImcP->iImeState != CST_INIT)
            return (CST_INVALID_INPUT);
    }

    // Esc key
    if (uVirtKey == VK_ESCAPE) {
        register LPGUIDELINE lpGuideLine;
        register UINT        iImeState;

        lpGuideLine = ImmLockIMCC(lpIMC->hGuideLine);
                if(!lpGuideLine){
            return (CST_INVALID);
                }
        if (lpImcP->fdwImeMsg & MSG_ALREADY_START) {
            iImeState = CST_INPUT;
        } else if (!lpGuideLine) {
            iImeState = CST_INVALID;
        } else if (lpGuideLine->dwLevel == GL_LEVEL_NOGUIDELINE) {
            iImeState = CST_INVALID;
        } else {
            // need this key to clean information string or guideline state
            iImeState = CST_INPUT;
        }

        ImmUnlockIMCC(lpIMC->hGuideLine);

        return (iImeState);
    } 
    
    // BackSpace Key
    else if (uVirtKey == VK_BACK) {
        if (lpImcP->fdwImeMsg & MSG_ALREADY_START) {
            return (CST_INPUT);
        } else {
            return (CST_INVALID);
        }
    }
    
    // NumPad key and Other Input vailid key
    else if (uVirtKey >= VK_NUMPAD0 && uVirtKey <= VK_DIVIDE) {
        return (CST_ALPHANUMERIC);
    } else if (wCharCode > TEXT('~')) {
        return (CST_INVALID);
    } else if (wCharCode < TEXT(' ')) {
        return (CST_INVALID);
    } else if (lpIMC->fdwConversion & IME_CMODE_EUDC) {
    } 
    else {
    }
    if (lpIMC->fdwConversion & IME_CMODE_NATIVE) {      

//        if (lpImcP->fdwGB & IME_SELECT_GB) {
#if defined(COMBO_IME)
                switch(sImeL.dwRegImeIndex){
                case INDEX_GB:
                        return (GBProcessKey(wCharCode,lpImcP));
                case INDEX_GBK:
                        return (XGBProcessKey (wCharCode,lpImcP));
                case INDEX_UNICODE:
                        return(UnicodeProcessKey(wCharCode, lpImcP));
                }
#else //COMBO_IME
#ifdef GB
          return (GBProcessKey(wCharCode,lpImcP));

//        } else {
#else
          return (XGBProcessKey (wCharCode,lpImcP));
//          }
#endif //GB
#endif //COMBO_IME
     }

  return (CST_INVALID);
}

/**********************************************************************/
/* ImeProcessKey()                                                    */
/* Return Value:                                                      */
/*      TRUE - successful, FALSE - failure                            */
/**********************************************************************/
BOOL WINAPI ImeProcessKey(   // if this key is need by IME?
    HIMC   hIMC,
    UINT   uVirtKey,
    LPARAM lParam,
    CONST LPBYTE lpbKeyState)
{
    LPINPUTCONTEXT lpIMC;
    LPPRIVCONTEXT  lpImcP;
    BYTE           szAscii[4];
    int            nChars;
    int            iRet;
    BOOL           fRet;

    // can't compose in NULL hIMC
    if (!hIMC) {
        return (FALSE);
    }

    lpIMC = (LPINPUTCONTEXT)ImmLockIMC(hIMC);
    if (!lpIMC) {
        return (FALSE);
    }

    lpImcP = (LPPRIVCONTEXT)ImmLockIMCC(lpIMC->hPrivate);
    if (!lpImcP) {
        ImmUnlockIMC(hIMC);
        return (FALSE);
    }

    nChars = ToAscii(uVirtKey, HIWORD(lParam), lpbKeyState,
                (LPVOID)szAscii, 0);

    if (!nChars) {
        szAscii[0] = 0;
    }

    iRet = ProcessKey((WORD)szAscii[0], uVirtKey, HIWORD(lParam), lpbKeyState, lpIMC, lpImcP);
    if(iRet == CST_INVALID) {
        fRet = FALSE;
    } else if((iRet == CST_INPUT) && (uVirtKey == TEXT('\b'))
             && (lpImcP->iImeState == CST_INIT)) {
        lpImcP->fdwImeMsg = ((lpImcP->fdwImeMsg | MSG_END_COMPOSITION)
                            & ~(MSG_START_COMPOSITION)) & ~(MSG_IN_IMETOASCIIEX);

        if (lpImcP->fdwImeMsg & MSG_ALREADY_OPEN) {
            ClearCand(lpIMC);
            lpImcP->fdwImeMsg = (lpImcP->fdwImeMsg | MSG_CLOSE_CANDIDATE) &
                ~(MSG_OPEN_CANDIDATE);
        }

            GenerateMessage(hIMC, lpIMC, lpImcP);
        fRet = FALSE;
    } else if(uVirtKey == VK_CAPITAL) {
        DWORD fdwConversion;
#ifdef LATER
            if (lpbKeyState[VK_CAPITAL] & 0x01) {
            // change to native mode
            fdwConversion = (lpIMC->fdwConversion | IME_CMODE_NATIVE) &
                ~(IME_CMODE_CHARCODE | IME_CMODE_EUDC);
                        uCaps = 0;
                } else {
            // change to alphanumeric mode
            fdwConversion = lpIMC->fdwConversion & ~(IME_CMODE_CHARCODE |
                IME_CMODE_NATIVE | IME_CMODE_EUDC);
                        uCaps = 1;
                }
#else
                if (lpbKeyState[VK_CAPITAL] & 0x01) {
            // change to alphanumeric mode
            fdwConversion = lpIMC->fdwConversion & ~(IME_CMODE_CHARCODE |
                IME_CMODE_NATIVE | IME_CMODE_EUDC);
                        uCaps = 1;
                } else {
            // change to native mode
            fdwConversion = (lpIMC->fdwConversion | IME_CMODE_NATIVE)&
                ~(IME_CMODE_CHARCODE | IME_CMODE_EUDC); 
                        uCaps = 0;
        }
#endif //LATER
        ImmSetConversionStatus(hIMC, fdwConversion, lpIMC->fdwSentence);
        fRet = FALSE;
    } else if((iRet == CST_ALPHANUMERIC)
              && !(lpIMC->fdwConversion & IME_CMODE_FULLSHAPE)
                          && (uVirtKey == VK_SPACE)) {
        fRet = FALSE;
    } else {
        fRet = TRUE;
    }

    ImmUnlockIMCC(lpIMC->hPrivate);
    ImmUnlockIMC(hIMC);

    return (fRet);
}

/**********************************************************************/
/* TranslateSymbolChar()                                              */
/* Return Value:                                                      */
/*      the number of translated chars                                */
/**********************************************************************/
UINT PASCAL TranslateSymbolChar(
    LPTRANSMSGLIST lpTransBuf,
    WORD    wSymbolCharCode,
    BOOL    SymbolMode)
{
    UINT uRet;
    LPTRANSMSG lpTransMsg;

    uRet = 0;
    lpTransMsg = lpTransBuf->TransMsg;

    // NT need to modify this!
#ifdef UNICODE
    lpTransMsg->message = WM_CHAR;
    lpTransMsg->wParam  = (DWORD)wSymbolCharCode;
    lpTransMsg->lParam  = 1UL;
    lpTransMsg++;
    uRet++;
#else
    lpTransMsg->message = WM_CHAR;
    lpTransMsg->wParam  = (DWORD)HIBYTE(wSymbolCharCode);
    lpTransMsg->lParam  = 1UL;
    lpTransMsg++;
    uRet++;

    lpTransMsg->message = WM_CHAR;
    lpTransMsg->wParam  = (DWORD)LOBYTE(wSymbolCharCode);
    lpTransMsg->lParam 1UL;
    uRet++;
#endif

    if(SymbolMode) {
        lpTransMsg = lpTransBuf->TransMsg;

#ifdef UNICODE
        lpTransMsg->message = WM_CHAR;
        lpTransMsg->wParam  = (DWORD)wSymbolCharCode;
        lpTransMsg->lParam  = 1UL;
        lpTransMsg++;
        uRet++;
#else
        lpTransMsg->message = WM_CHAR;
        lpTransMsg->wParam  = (DWORD)HIBYTE(wSymbolCharCode);
        lpTransMsg->lParam  = 1UL;
        lpTransMsg++;
        uRet++;

        lpTransMsg->message = WM_CHAR;
        lpTransMsg->wParam  = (DWORD)LOBYTE(wSymbolCharCode);
        lpTransMsg->lParam  = 1UL;
        uRet++;
#endif
    }

    return (uRet);         // generate two messages
}

/**********************************************************************/
/* TranslateFullChar()                                                */
/* Return Value:                                                      */
/*      the number of translated chars                                */
/**********************************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩激情视频在线观看| 亚洲mv大片欧洲mv大片精品| 亚洲一级二级在线| 国产在线视频一区二区| 色播五月激情综合网| 精品国产露脸精彩对白 | 91小视频在线免费看| 91.com视频| 亚洲精选视频免费看| 激情五月激情综合网| 欧美日韩一区二区三区在线看 | 午夜精品久久久久久久久久| 国产精品99久久久久| 欧美日韩一区视频| 国产精品第五页| 国产乱码精品一区二区三区av| 欧美亚洲国产怡红院影院| 国产精品国产馆在线真实露脸| 精品在线播放免费| 欧美军同video69gay| 亚洲乱码国产乱码精品精小说 | 91精品国产综合久久福利| 亚洲美腿欧美偷拍| 国产美女精品在线| 在线综合视频播放| 亚洲国产精品久久久久婷婷884 | 久久精品国产亚洲高清剧情介绍 | 日韩欧美一区二区久久婷婷| 亚洲一级二级在线| 日本久久电影网| 一区视频在线播放| 成人国产精品免费观看| 久久久久久久久久电影| 久久99久久99小草精品免视看| 欧美精品日日鲁夜夜添| 亚洲国产一区视频| 色国产精品一区在线观看| 亚洲视频一区二区免费在线观看| 国产东北露脸精品视频| 久久蜜桃av一区精品变态类天堂 | 午夜视频在线观看一区二区 | 久久精品99久久久| 日韩久久久精品| 精品中文字幕一区二区| 日韩精品中文字幕一区二区三区 | 美女在线一区二区| 91麻豆精品久久久久蜜臀| 视频一区在线播放| 欧美日韩成人综合在线一区二区 | 国产精品久久久久三级| 高清av一区二区| 国产精品视频免费看| 成人黄动漫网站免费app| 国产精品久久久久三级| 色综合久久天天| 亚洲一级二级三级在线免费观看| 欧美在线一二三| 丝袜诱惑制服诱惑色一区在线观看| 欧美精品自拍偷拍| 蜜臀久久99精品久久久久久9| 精品久久久久久久久久久久久久久| 久久国产剧场电影| 国产丝袜欧美中文另类| 成人在线视频一区| 亚洲欧美日韩国产手机在线| 欧美日韩一区二区欧美激情| 日韩国产精品久久久| 欧美va亚洲va| 大白屁股一区二区视频| 亚洲美女视频在线| 在线不卡欧美精品一区二区三区| 麻豆免费精品视频| 国产女主播一区| 日本久久一区二区三区| 日韩激情一二三区| 久久久99精品免费观看| 99精品国产视频| 午夜不卡在线视频| 精品福利一区二区三区免费视频| 粉嫩嫩av羞羞动漫久久久| 一个色妞综合视频在线观看| 欧美精品v国产精品v日韩精品 | 亚洲裸体xxx| 在线不卡一区二区| 国产精品一级片| 亚洲欧美电影一区二区| 91精品国产全国免费观看| 国产精品18久久久久久vr| 亚洲欧美日韩久久精品| 欧美一区二区网站| 成人午夜又粗又硬又大| 亚洲成人动漫av| 久久影院午夜论| 欧美性色欧美a在线播放| 久久精品免费观看| 亚洲男人电影天堂| 日韩免费在线观看| 色婷婷激情久久| 久久国产视频网| 亚洲自拍偷拍九九九| 久久久久青草大香线综合精品| 91国偷自产一区二区三区成为亚洲经典 | 欧美日韩在线精品一区二区三区激情| 久久精品国产99国产| 亚洲人亚洲人成电影网站色| 欧美一区二区国产| 99久久婷婷国产综合精品电影| 免费看精品久久片| 亚洲乱码中文字幕| 国产亚洲婷婷免费| 欧美精品一二三| 99久久777色| 国产又黄又大久久| 亚洲国产欧美在线人成| 国产精品美女一区二区| 日韩欧美国产不卡| 欧洲亚洲国产日韩| 成人高清视频免费观看| 美女脱光内衣内裤视频久久影院| 亚洲女人的天堂| 中文字幕欧美激情一区| 日韩一区二区三| 欧美视频完全免费看| 丰满岳乱妇一区二区三区| 蜜臀国产一区二区三区在线播放 | 中文字幕亚洲在| 欧美精品一区二| 欧美一区二区三区四区高清| 在线视频中文字幕一区二区| 成人a级免费电影| 国产福利电影一区二区三区| 麻豆国产91在线播放| 香蕉久久一区二区不卡无毒影院| 中文字幕中文字幕一区二区| 久久综合色播五月| 91精品婷婷国产综合久久性色| 91久久精品一区二区三| 成人av资源站| 国产精品一区三区| 久久激情五月婷婷| 日本麻豆一区二区三区视频| 亚洲一区二区三区免费视频| 亚洲欧美日韩在线播放| 国产精品毛片高清在线完整版 | 欧美日韩中字一区| 91免费版在线| 91原创在线视频| av一区二区不卡| 播五月开心婷婷综合| 国产91丝袜在线播放| 精品一区二区三区蜜桃| 久久97超碰色| 国产一区在线看| 国产一区二区三区不卡在线观看| 另类小说一区二区三区| 美女mm1313爽爽久久久蜜臀| 美女视频免费一区| 蜜芽一区二区三区| 青青草原综合久久大伊人精品优势| 偷拍自拍另类欧美| 视频一区国产视频| 日韩av午夜在线观看| 日本亚洲天堂网| 蜜桃视频在线观看一区| 久久精品国产澳门| 国产在线播精品第三| 国产精品一二一区| 国产99久久久国产精品免费看| 高清在线观看日韩| av高清不卡在线| 色综合色狠狠天天综合色| 91免费国产在线观看| 91精品1区2区| 欧美一区二区三区播放老司机| 日韩一区二区在线观看视频 | 欧美一区二区三区婷婷月色| 日韩一区二区三区电影| 精品国产91九色蝌蚪| 欧美国产日韩在线观看| 中文字幕欧美一区| 亚洲永久精品大片| 日韩精品高清不卡| 麻豆传媒一区二区三区| 国产在线精品一区二区夜色| 高清国产一区二区三区| 99re8在线精品视频免费播放| 欧美伊人久久久久久久久影院 | 国产精品毛片久久久久久| 综合久久久久久| 天堂影院一区二区| 久久成人免费网| 成人sese在线| 欧美私模裸体表演在线观看| 日韩色视频在线观看| 久久久午夜精品| 亚洲精品国产第一综合99久久| 天堂蜜桃一区二区三区| 国产剧情一区二区三区| 91亚洲男人天堂| 日韩一区二区精品在线观看|