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

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

?? toascii.c

?? This folder includes IME sample source code for Simplified Chinese IMEs
?? C
?? 第 1 頁 / 共 4 頁
字號:

/*++

Copyright (c) 1990-1999 Microsoft Corporation, All Rights Reserved

Module Name:

    toascii.c


++*/


#include <windows.h>
#include <imm.h>
#include <imedefs.h>

/**********************************************************************/
/* IsUsedCode()                                                       */
/* Return Value:                                                      */
/*      TURE: is UsedCode;  FALSE: is'nt UsedCode;                    */
/**********************************************************************/
BOOL IsUsedCode(
    WORD wCharCode)
{
          WORD wFlg;

          for(wFlg=0; wFlg<sImeG.wNumCodes; wFlg++)
                if (wCharCode == sImeG.UsedCodes[wFlg])
                    break;
          if(wFlg < sImeG.wNumCodes)
                return (TRUE);
      return (FALSE);
}

/**********************************************************************/
/* GBProcessKey()                                                       */
/* Return Value:                                                      */
/*      different state which input key will change IME to (CST_      */
/**********************************************************************/
UINT PASCAL GBProcessKey(     // this key will cause the IME go to what state
    WORD           wCharCode,
    LPPRIVCONTEXT  lpImcP)
{
    if (!lpImcP) {
        return (CST_INVALID);
    }

    // check space 
     if (wCharCode == TEXT(' ')) {
        if (lpImcP->bSeq[0] && lpImcP->bSeq[1]) {
                        return (CST_INPUT);
                } else if (!lpImcP->bSeq[0]) {
            return (CST_ALPHANUMERIC);
                } else {
            return (CST_INVALID_INPUT);
                }
         }
    // check finalize char
      if ((wCharCode >= TEXT('0') && wCharCode <= TEXT('9'))
       ||(wCharCode >= TEXT('a') && wCharCode <= TEXT('f'))
       ||(wCharCode == TEXT('?'))) {

      if (!lpImcP->bSeq[0]) {
        if (wCharCode == TEXT('?')){
            // 0x0??? - 0xF??? is OK
            return (CST_ALPHANUMERIC);
        } else {
            // there is no 0x0??? - 0x7???
                        lpImcP->bSeq[1] = TEXT('\0');
            return (CST_INPUT);
        }

      } else if (!lpImcP->bSeq[1]) {

         if (lpImcP->bSeq[0] >=TEXT('0') && lpImcP->bSeq[0] <= TEXT('9')){ //Area
           if ((lpImcP->bSeq[0] == TEXT('0') && wCharCode == TEXT('0'))
               ||(lpImcP->bSeq[0] == TEXT('9') && wCharCode >= TEXT('5'))
               ||(wCharCode >= TEXT('a') && wCharCode <= TEXT('f'))
               ||(wCharCode == TEXT('?'))) {
               // there is less than 95 area and bigger than 0 area
                  return (CST_INVALID_INPUT);
           }
           else {
                                  lpImcP->bSeq[2] = TEXT('\0');
                  return (CST_INPUT);
           }
         }

         if (lpImcP->bSeq[0] >= TEXT('a') && lpImcP->bSeq[0] <= TEXT('f')) { //GB
           if ((lpImcP->bSeq[0] == TEXT('a') && wCharCode == TEXT('0'))
               ||(lpImcP->bSeq[0] == TEXT('f') && wCharCode == TEXT('f'))
               ||(wCharCode == TEXT('?'))) {
                  // there is less than 95 area and bigger than 0 area
                  return (CST_INVALID_INPUT);
           }
           else {
                                  lpImcP->bSeq[2] = TEXT('\0');
                  return (CST_INPUT);
           }
         }

      } else if (!lpImcP->bSeq[2]) {

         if (wCharCode == TEXT('?')){
                  return (CST_INPUT);
         }
         if (lpImcP->bSeq[0] >= TEXT('0') && lpImcP->bSeq[0] <= TEXT('9')){ //Area
           if (wCharCode >= TEXT('0') && wCharCode <= TEXT('9')) {
                          lpImcP->bSeq[3] = TEXT('\0');
              return (CST_INPUT);
           } else {
              return (CST_INVALID_INPUT);
           }

         }
     
         if (lpImcP->bSeq[0] >= TEXT('a') && lpImcP->bSeq[0] <= TEXT('f')) { //GB
           if (wCharCode >= TEXT('a') && wCharCode <= TEXT('f')) {
                          lpImcP->bSeq[3] = TEXT('\0');
              return (CST_INPUT);
           } else {
              return (CST_INVALID_INPUT);
           }
         }
      } else if (!lpImcP->bSeq[3]) {

         if (lpImcP->bSeq[2] == TEXT('?')) {
           if (wCharCode == TEXT('?')) {
              return (CST_INPUT);
           }else{
              return (CST_INVALID_INPUT);
           }
         }
         if (lpImcP->bSeq[0] >= TEXT('0') && lpImcP->bSeq[0] <= TEXT('9')) { //Area
           if ((lpImcP->bSeq[2] == TEXT('0') && wCharCode == TEXT('0'))
               ||(lpImcP->bSeq[2] == TEXT('9') && wCharCode >= TEXT('5'))
               ||(wCharCode >= TEXT('a') && wCharCode <= TEXT('f'))
               ||(wCharCode == TEXT('?'))) {
                  // there is less than 95 area and bigger than 0 area
                  return (CST_INVALID_INPUT);
           }
           else {
                  return (CST_INPUT);
           }
         }
         if (lpImcP->bSeq[0] >= TEXT('a') && lpImcP->bSeq[0] <= TEXT('f')) { //GB
           if ((lpImcP->bSeq[2] == TEXT('a') && wCharCode == TEXT('0'))
               ||(lpImcP->bSeq[2] == TEXT('f') && wCharCode == TEXT('f'))
               ||(wCharCode == TEXT('?'))){
                  // there is less than 95 area and bigger than 0 area
                  return (CST_INVALID_INPUT);
           }
           else {
                  return (CST_INPUT);
           }
         }
      } else {
              return (CST_INVALID_INPUT);
          }

    } else if (wCharCode >= TEXT(' ') && wCharCode <= TEXT('~')) {
        return (CST_ALPHANUMERIC);
        } else {
                return (CST_INVALID_INPUT);
        }

        return (CST_INVALID_INPUT);
}

#if defined(COMBO_IME)
/**********************************************************************/
/* UnicodeProcessKey()                                                       */
/* Return Value:                                                      */
/*      different state which input key will change IME to (CST_      */
/**********************************************************************/
UINT PASCAL UnicodeProcessKey(     // this key will cause the IME go to what state
    WORD           wCharCode,
    LPPRIVCONTEXT  lpImcP)
{
    if (!lpImcP) {
        return (CST_INVALID);
    }

    if (wCharCode == TEXT(' ')) {
        if (lpImcP->bSeq[0] && lpImcP->bSeq[1]) {
                        return (CST_INPUT);
                } else if (!lpImcP->bSeq[0]) {
            return (CST_ALPHANUMERIC);
                } else {
            return (CST_INVALID_INPUT);
                }
        }

     // check finalize char
         // 0000 -- ffff

    if ((wCharCode >= TEXT('0') && wCharCode <= TEXT('9'))
       ||(wCharCode >= TEXT('a') && wCharCode <= TEXT('f'))
       ||(wCharCode == TEXT('?'))) {

         if (wCharCode == TEXT('?')){
                        if (!lpImcP->bSeq[2]) {
                  return (CST_INPUT);
                 }else
                                 return(CST_INVALID_INPUT);
                 }else{
                  return (CST_INPUT);
         }
        } else if(lpImcP->bSeq[0]){
              return (CST_INVALID_INPUT);
        } else 
                return (CST_ALPHANUMERIC);

}
#endif //COMBO_IME

/**********************************************************************/
/* XGBProcessKey()                                                       */
/* Return Value:                                                      */
/*      different state which input key will change IME to (CST_      */
/**********************************************************************/
UINT PASCAL XGBProcessKey(     // this key will cause the IME go to what state
    WORD           wCharCode,
    LPPRIVCONTEXT  lpImcP)
{
    if (!lpImcP) {
        return (CST_INVALID);
    }

     if (wCharCode == TEXT(' ')) {
        if (lpImcP->bSeq[0] && lpImcP->bSeq[1]) {
                        return (CST_INPUT);
                } else if (!lpImcP->bSeq[0]) {
            return (CST_ALPHANUMERIC);
                } else {
            return (CST_INVALID_INPUT);
                }
         }

     // check finalize char
     //lead  byte 81 - fe
     //trail byte 40 - 7e, 80 - fe

     if ((wCharCode >= TEXT('0') && wCharCode <= TEXT('9'))
       ||(wCharCode >= TEXT('a') && wCharCode <= TEXT('f'))
       ||(wCharCode == TEXT('?'))) {

      if (!lpImcP->bSeq[0]) {
        if (wCharCode == TEXT('?')) {
            // 0x0??? - 0xF??? is OK
            // : - @ was filted
            return (CST_ALPHANUMERIC);

        }else if (wCharCode >=TEXT('8') && wCharCode <= TEXT('f')){
            // 0x0??? - 0xF??? is OK
                        lpImcP->bSeq[1] = TEXT('\0');
            return (CST_INPUT);
            
        } else {
            // there is no 0x0??? - 0x7???
            return (CST_INVALID_INPUT);
        }

      } else if (!lpImcP->bSeq[1]) {

           if ((lpImcP->bSeq[0] == TEXT('f') && wCharCode == TEXT('f'))
             ||(lpImcP->bSeq[0] == TEXT('8') && wCharCode == TEXT('0'))
             ||(wCharCode == TEXT('?'))) {
               //XGB is 81 - fe
                  return (CST_INVALID_INPUT);
           }
           else {
                                  lpImcP->bSeq[2] = TEXT('\0');
                  return (CST_INPUT);
           }

      } else if (!lpImcP->bSeq[2]) {

         if (wCharCode == TEXT('?')){
                                lpImcP->bSeq[3] = TEXT('\0');
                return (CST_INPUT);
         }

           if (wCharCode >= TEXT('4') && wCharCode <= TEXT('f')) {
                          lpImcP->bSeq[3] = TEXT('\0');
              return (CST_INPUT);
           } else {
              return (CST_INVALID_INPUT);
           }

      } else if (!lpImcP->bSeq[3]) {

         if (lpImcP->bSeq[2] == TEXT('?')) {
           if (wCharCode == TEXT('?')) {
              return (CST_INPUT);
           }else{
              return (CST_INVALID_INPUT);
           }
         }
           if ((lpImcP->bSeq[2] == TEXT('7') && wCharCode == TEXT('f'))
             ||(lpImcP->bSeq[2] == TEXT('f') && wCharCode == TEXT('f'))
             ||(wCharCode == TEXT('?'))) {
                  //trail byte
                  //40 - 7e, 80 - fe

                  return (CST_INVALID_INPUT);
           }
           else {
                  return (CST_INPUT);
           }
      } else {
              return (CST_INVALID_INPUT);
          }

    } else if (wCharCode >= TEXT(' ') && wCharCode <= TEXT('~')) {
        return (CST_ALPHANUMERIC);
        } else {
                return (CST_INVALID_INPUT);
        }

}

/**********************************************************************/
/* ProcessKey()                                                       */
/* Return Value:                                                      */
/*      different state which input key will change IME to (CST_      */
/**********************************************************************/
UINT PASCAL ProcessKey(     // this key will cause the IME go to what state
    WORD           wCharCode,
    UINT           uVirtKey,
    UINT           uScanCode,
    LPBYTE         lpbKeyState,
    LPINPUTCONTEXT lpIMC,
    LPPRIVCONTEXT  lpImcP)
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
水蜜桃久久夜色精品一区的特点| 成人一级视频在线观看| 在线不卡欧美精品一区二区三区| 日韩av午夜在线观看| 精品99久久久久久| 在线一区二区观看| 麻豆91在线看| 一区二区三区日韩精品视频| 久久免费看少妇高潮| 在线看一区二区| av中文字幕不卡| 国产一区二区精品久久| 婷婷综合五月天| 亚洲三级电影全部在线观看高清| 欧美一区二区在线看| 欧美午夜片在线看| 91亚洲国产成人精品一区二三 | www亚洲一区| 91.xcao| 欧美私模裸体表演在线观看| 国产一区二区在线观看视频| 午夜精品久久久久久久久久 | 欧美一区二区视频网站| 99精品久久久久久| 国产成人精品午夜视频免费| 国产中文字幕精品| 亚洲精品视频一区| 国产精品欧美一级免费| 久久综合色播五月| 精品精品国产高清a毛片牛牛 | 日韩av一区二| 蜜臀精品一区二区三区在线观看| 日韩国产精品久久久久久亚洲| 亚洲电影一级片| 麻豆一区二区三区| 成人自拍视频在线| 日本精品一级二级| 日韩精品一区二区三区蜜臀 | 成人免费高清视频在线观看| 成人的网站免费观看| 91黄色免费版| 欧美成人精品福利| 亚洲欧美一区二区三区国产精品 | 欧美一区二区精品| 国产精品天干天干在线综合| 一区二区三区不卡视频在线观看| 51久久夜色精品国产麻豆| 久久一夜天堂av一区二区三区| 亚洲欧美日本韩国| 国产精品自在在线| 日韩一卡二卡三卡| 香蕉久久一区二区不卡无毒影院| 国产麻豆视频精品| 久久久亚洲精华液精华液精华液| 亚洲图片有声小说| 日本韩国欧美三级| 自拍av一区二区三区| 夫妻av一区二区| 久久久亚洲精品一区二区三区| 亚洲第一成年网| 不卡电影一区二区三区| 国产欧美精品一区二区三区四区| 麻豆精品视频在线观看| 欧美福利视频一区| 美脚の诱脚舐め脚责91| 欧美一级生活片| 免费成人美女在线观看.| 欧美一区中文字幕| 久久www免费人成看片高清| 91麻豆精品国产91久久久使用方法| 亚洲区小说区图片区qvod| zzijzzij亚洲日本少妇熟睡| 欧美国产综合一区二区| 91在线国产福利| 亚洲国产色一区| 久久综合色天天久久综合图片| 美国欧美日韩国产在线播放| 精品国产乱码久久久久久牛牛| 人人精品人人爱| 久久精品在这里| 欧美美女一区二区在线观看| 国产一区二区在线免费观看| 国产精品麻豆一区二区| 这里只有精品电影| 成人国产精品视频| 久久激情综合网| 亚洲高清免费一级二级三级| 欧美成人在线直播| 在线观看www91| 国产69精品久久久久毛片| 日日摸夜夜添夜夜添亚洲女人| 国产区在线观看成人精品| 91麻豆精品久久久久蜜臀| 成人av网在线| 国产精品18久久久久久久久| 天天色图综合网| 亚洲成av人片在线观看| 中文字幕一区二区在线播放| 欧美大肚乱孕交hd孕妇| 在线观看日韩国产| 99精品国产99久久久久久白柏| 国产精品一区免费在线观看| 蜜臀a∨国产成人精品| 天天射综合影视| 免费视频最近日韩| 久久99精品久久久久婷婷| 午夜激情综合网| 蜜臀av性久久久久av蜜臀妖精 | 亚洲欧美日韩一区| 最新日韩av在线| 有坂深雪av一区二区精品| 99re66热这里只有精品3直播 | 欧美日韩激情一区| 欧美日韩在线播放| 欧美一级理论片| 久久久夜色精品亚洲| 中文字幕在线观看一区二区| 中文字幕亚洲电影| 亚洲最新视频在线观看| 亚洲国产综合视频在线观看| 免费av网站大全久久| 麻豆精品国产91久久久久久| 国产精品一区二区久久不卡| 99re在线精品| 欧美蜜桃一区二区三区| 欧美mv日韩mv| 亚洲欧美另类小说| 免费三级欧美电影| jlzzjlzz欧美大全| 日韩一区二区三区电影在线观看 | 不卡av在线免费观看| 欧美色图免费看| 中文字幕第一页久久| 日韩avvvv在线播放| 91在线观看高清| 久久久精品国产免大香伊| 亚洲成人你懂的| 色诱亚洲精品久久久久久| 国产午夜三级一区二区三| 免费国产亚洲视频| 欧美少妇一区二区| 亚洲综合久久av| 不卡在线视频中文字幕| 久久综合色天天久久综合图片| 天堂va蜜桃一区二区三区| 91丨porny丨在线| 中文在线免费一区三区高中清不卡| 香港成人在线视频| 在线看日韩精品电影| 亚洲一级二级三级在线免费观看| 99久久精品免费精品国产| 一色桃子久久精品亚洲| 97精品电影院| 亚洲福利视频一区二区| 欧美性猛交一区二区三区精品| 1024国产精品| 精品视频在线看| 精品无人区卡一卡二卡三乱码免费卡| 欧美二区在线观看| 国产资源在线一区| 国产精品美女www爽爽爽| 成人av在线网| 亚洲成av人**亚洲成av**| 欧美videossexotv100| 成人动漫精品一区二区| 视频一区二区欧美| 欧美国产精品久久| 欧美日韩一级黄| 国产精品一级黄| 午夜国产不卡在线观看视频| 欧美一级夜夜爽| 91麻豆自制传媒国产之光| 婷婷一区二区三区| 成人免费在线视频| 精品少妇一区二区三区免费观看| 波多野结衣中文字幕一区| 五月天视频一区| 亚洲视频精选在线| 久久综合狠狠综合久久综合88| 在线视频一区二区三| 国内精品国产成人国产三级粉色 | 欧美日韩电影在线播放| 一区二区三区中文免费| 国产日韩在线不卡| 精品日韩av一区二区| 欧美三级电影精品| 91丝袜呻吟高潮美腿白嫩在线观看| 极品尤物av久久免费看| 日韩电影在线免费观看| 亚洲丶国产丶欧美一区二区三区| 国产精品国产自产拍高清av| 久久精品视频免费| 久久久久久久久久看片| 精品粉嫩超白一线天av| 久久―日本道色综合久久| 国产午夜精品在线观看| 亚洲国产精品99久久久久久久久| 中文在线免费一区三区高中清不卡| 精品少妇一区二区三区免费观看| 欧美精品一区二区三区很污很色的 |