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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? hzinput.c

?? 這是針對(duì) Linux (i386)平臺(tái)的 minigui 3.6.2 開(kāi)發(fā)包(MiniGUI-Processes 運(yùn)行模式)。
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/************************************************************************* *                        extern function                                * *************************************************************************/void __mg_ime_writemsg (BYTE *buffer, int len, LPARAM lParam, BOOL bDByte){    WORD wDByte;    int i;    if (bDByte) {    	for (i=0; i<len; i+=2) {            wDByte = MAKEWORD (buffer[i], buffer[i+1]);            if (sg_hTargetWnd)	            PostMessage (sg_hTargetWnd, MSG_CHAR, wDByte, 0);#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)            else			    Send2ActiveClient (MSG_CHAR, wDByte, 0);#endif        }    }    else {    	for (i=0; i<len; i++) {            if (sg_hTargetWnd)	            PostMessage (sg_hTargetWnd, MSG_CHAR, buffer[i], 0);#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)            else			    Send2ActiveClient (MSG_CHAR, buffer[i], 0);#endif        }    }}void __mg_ime_outchar (unsigned char c, LPARAM lParam){    int scancode = 0;    switch (c) {    case '\010':    case '\177':  /* BackSpace */        scancode = SCANCODE_BACKSPACE;        break;    case '\033':        scancode = SCANCODE_ESCAPE;        break;    case '\t':        scancode = SCANCODE_TAB;        break;    }            if (scancode) {#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)        if (!sg_hTargetWnd) {		    Send2ActiveClient (MSG_KEYDOWN, scancode, (LPARAM)KS_IMEPOST);		    Send2ActiveClient (MSG_KEYUP, scancode, (LPARAM)KS_IMEPOST);            return;        }#endif	    PostMessage (sg_hTargetWnd, MSG_KEYDOWN, scancode, (LPARAM)KS_IMEPOST);	    PostMessage (sg_hTargetWnd, MSG_KEYUP, scancode, (LPARAM)KS_IMEPOST);    }    else        __mg_ime_writemsg (&c, 1, lParam, FALSE);}/* this is the ime window proc */int GBIMEWinProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam){    HDC hdc;    static BOOL fCaptured = FALSE;    static int oldx, oldy;    int x, y;    int maxx, maxy;    RECT rcWindow;    RECT *prcExpect, *prcResult;#if defined(_LITE_VERSION) && !defined(_STAND_ALONE)    if (message == MSG_KEYDOWN || message == MSG_KEYUP) {        if (IsOpened && IsHanziInput) {            MSG Msg = {hWnd, message, wParam, lParam};            TranslateMessage (&Msg);        }    }    else if (message == MSG_SYSKEYDOWN) {        if (sg_hTargetWnd)            PostMessage (sg_hTargetWnd, message, wParam, lParam);        else            Send2ActiveClient (MSG_KEYDOWN, wParam, lParam);    }    else if (message == MSG_SYSKEYUP) {        if (sg_hTargetWnd)            PostMessage (sg_hTargetWnd, message, wParam, lParam);        else            Send2ActiveClient (MSG_KEYUP, wParam, lParam);    }#endif    switch (message) {        case MSG_NCCREATE:            if (hz_input_init())                /* Register before show the window. */                SendMessage (HWND_DESKTOP, MSG_IME_REGISTER, (WPARAM)hWnd, 0);            else                return -1;        break;        case MSG_IME_OPEN:            if (!IsOpened) {                ShowWindow(hWnd, SW_SHOW);                IsOpened = 1;            }        break;        case MSG_IME_CLOSE:            if (IsOpened) {                ShowWindow(hWnd, SW_HIDE);                IsOpened = 0;            }        break;                case MSG_IME_SETSTATUS:            imeSetStatus ((int)wParam, (int)lParam);        break;        case MSG_IME_GETSTATUS:            return imeGetStatus ((int)wParam);        break;        case MSG_IME_SETTARGET:            if (sg_hTargetWnd != hWnd)                sg_hTargetWnd = (HWND)wParam;        break;        case MSG_IME_GETTARGET:            return (int)sg_hTargetWnd;        break;        case MSG_SETFOCUS:        case MSG_KILLFOCUS:            return 0;        case MSG_CHAR:            if (IsOpened && !imeIsSpecialChar (wParam)) {                if (hz_filter ((BYTE)wParam, lParam))                    InvalidateRect (hWnd, NULL, TRUE);            }        return 0;        case MSG_KEYDOWN:            if (wParam != SCANCODE_LEFTCONTROL)                clean_left_ctrl = 0;            else                clean_left_ctrl = 1;            if (IsOpened) {                if (wParam == SCANCODE_SPACE && (lParam & KS_CTRL)) {                    toggle_half_full ();                    InvalidateRect (hWnd, NULL, TRUE);                    return 0;                }                else if (wParam == SCANCODE_PERIOD && (lParam & KS_CTRL)) {                    toggle_punc ();                    InvalidateRect (hWnd, NULL, TRUE);                    return 0;                }                else if ((wParam == SCANCODE_LEFTSHIFT) && (lParam & KS_CTRL)) {                    imeSetStatus (IS_METHOD, -1);                    InvalidateRect (hWnd, NULL, TRUE);                    return 0;                }		#ifndef _LITE_VERSION                if (sg_hTargetWnd && imeIsEffectiveIME () && imeIsSpecialKey (wParam))                    PostMessage (sg_hTargetWnd, MSG_KEYDOWN, wParam, lParam);#else                if (!IsHanziInput || (imeIsEffectiveIME () && imeIsSpecialKey (wParam))) {                    if (sg_hTargetWnd)                        PostMessage (sg_hTargetWnd, MSG_KEYDOWN, wParam, lParam);#ifndef _STAND_ALONE                    else                        Send2ActiveClient (MSG_KEYDOWN, wParam, lParam);#endif                }#endif            }#ifdef _LITE_VERSION            else {                if (sg_hTargetWnd)                    PostMessage (sg_hTargetWnd, MSG_KEYDOWN, wParam, lParam);#ifndef _STAND_ALONE                else                    Send2ActiveClient (MSG_KEYDOWN, wParam, lParam);#endif            }#endif        return 0;        case MSG_KEYUP:            if (IsOpened) {                if (wParam == SCANCODE_LEFTCONTROL && clean_left_ctrl ) {                    toggle_input_method ();                    InvalidateRect (hWnd, NULL, TRUE);                }#ifndef _LITE_VERSION                if (sg_hTargetWnd && imeIsEffectiveIME () && imeIsSpecialKey (wParam))                    PostMessage (sg_hTargetWnd, MSG_KEYUP, wParam, lParam);#else                if (!IsHanziInput || (imeIsEffectiveIME () && imeIsSpecialKey (wParam))) {                    if (sg_hTargetWnd)                        PostMessage (sg_hTargetWnd, MSG_KEYUP, wParam, lParam);#ifndef _STAND_ALONE                    else                        Send2ActiveClient (MSG_KEYUP, wParam, lParam);#endif                }#endif            }#ifdef _LITE_VERSION            else {                if (sg_hTargetWnd)                    PostMessage (sg_hTargetWnd, MSG_KEYUP, wParam, lParam);#ifndef _STAND_ALONE                else                    Send2ActiveClient (MSG_KEYUP, wParam, lParam);#endif            }#endif        return 0;                case MSG_PAINT:            hdc = BeginPaint (hWnd);            SetBkColor (hdc, GetWindowElementColor (BKC_CONTROL_DEF));            refresh_input_method_area (hWnd, hdc);            EndPaint (hWnd, hdc);        return 0;        case MSG_LBUTTONDOWN:        {            RECT rc;            int zwidth = GetSysCCharWidth();            int zheight = GetSysCharHeight();            GetClientRect (hWnd, &rc);            oldx = LOWORD (lParam);            oldy = HIWORD (lParam);                        if (IsHanziInput && oldx > 0 && oldx < 4*zwidth && oldy > 2 && oldy < zheight+2){                 imeSetStatus (IS_METHOD, -1);                InvalidateRect (hWnd, NULL, TRUE);                return 0;            }            if (oldx > rc.right - 4 - 32 && oldx < rc.right - 4 - 16 && oldy > 2 && oldy < 16+2){                toggle_half_full ();                InvalidateRect (hWnd, NULL, TRUE);                return 0;            }            if (oldx > rc.right - 4 - 16 && oldx < rc.right - 4 && oldy > 2 && oldy < 16+2){                toggle_punc ();                InvalidateRect (hWnd, NULL, TRUE);                return 0;            }                        SetCapture (hWnd);            ClientToScreen (hWnd, &oldx, &oldy);            fCaptured = TRUE;        }        break;        case MSG_LBUTTONUP:            ReleaseCapture ();            fCaptured = FALSE;        break;                case MSG_MOUSEMOVE:            if (fCaptured) {                GetWindowRect (hWnd, &rcWindow);                x = LOSWORD (lParam);                y = HISWORD (lParam);                OffsetRect (&rcWindow, x - oldx, y - oldy);#ifndef _LITE_VERSION                MoveWindow (hWnd, rcWindow.left, rcWindow.top,                              RECTW (rcWindow), RECTH (rcWindow), FALSE);#endif                oldx = x;                oldy = y;            }        break;        case MSG_SIZECHANGING:            prcExpect = (PRECT)wParam;            prcResult = (PRECT)lParam;            *prcResult = *prcExpect;            if (prcExpect->left < 0) {                prcResult->left = 0;                prcResult->right = RECTWP (prcExpect);            }            if (prcExpect->top < 0) {                prcResult->top  = 0;                prcResult->bottom = RECTHP (prcExpect);            }            maxx = GetGDCapability (HDC_SCREEN, GDCAP_HPIXEL);            maxy = GetGDCapability (HDC_SCREEN, GDCAP_VPIXEL);            if (prcExpect->right > maxx) {                prcResult->right = maxx;                prcResult->left = maxx - RECTWP (prcExpect);            }            if (prcExpect->bottom > maxy) {                prcResult->bottom = maxy;                prcResult->top = maxy - RECTHP (prcExpect);            }        return 0;                case MSG_CLOSE:            SendMessage (HWND_DESKTOP, MSG_IME_UNREGISTER, (WPARAM)hWnd, 0);            hz_input_done ();            DestroyMainWindow (hWnd);#ifndef _LITE_VERSION            PostQuitMessage (hWnd);#endif        return 0;    }    return DefaultMainWinProc(hWnd, message, wParam, lParam);}static void InitIMEWinCreateInfo (PMAINWINCREATE pCreateInfo){    pCreateInfo->dwStyle = WS_ABSSCRPOS | WS_BORDER | WS_VISIBLE;    pCreateInfo->dwExStyle = WS_EX_TOPMOST;    pCreateInfo->spCaption = "The IME Window" ;    pCreateInfo->hMenu = 0;    pCreateInfo->hCursor = GetSystemCursor(0);    pCreateInfo->hIcon = 0;    pCreateInfo->MainWindowProc = GBIMEWinProc;    pCreateInfo->lx = GetGDCapability (HDC_SCREEN, GDCAP_MAXX) - 400;     pCreateInfo->ty = GetGDCapability (HDC_SCREEN, GDCAP_MAXY) - 80;     pCreateInfo->rx = GetGDCapability (HDC_SCREEN, GDCAP_MAXX);    pCreateInfo->by = GetGDCapability (HDC_SCREEN, GDCAP_MAXY) - 40;    pCreateInfo->iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);     pCreateInfo->dwAddData = 0;    pCreateInfo->hHosting = 0;}#ifdef _LITE_VERSIONHWND GBIMEWindowEx (HWND hosting, int lx, int ty, int rx, int by, BOOL two_lines){    MAINWINCREATE CreateInfo;    HWND hMainWnd;    InitIMEWinCreateInfo (&CreateInfo);    CreateInfo.hHosting = hosting;    if (lx != 0 || ty != 0 || rx != 0 || by != 0) {        CreateInfo.lx = lx;        CreateInfo.ty = ty;        CreateInfo.rx = rx;        CreateInfo.by = by;        bTwoLines = two_lines;    }    else        bTwoLines = TRUE;    hMainWnd = CreateMainWindow(&CreateInfo);    if (hMainWnd == HWND_INVALID)        return HWND_INVALID;    ShowWindow (hMainWnd, SW_SHOWNORMAL); 	return hMainWnd;}#elsetypedef struct ime_info{    sem_t wait;    HWND hwnd;} IME_INFO;static void* start_gb_ime (void* data){    MSG Msg;    MAINWINCREATE CreateInfo;    IME_INFO* ime_info = (IME_INFO*) data;    HWND ime_hwnd;    InitIMEWinCreateInfo (&CreateInfo);    bTwoLines = TRUE;    ime_hwnd = ime_info->hwnd = CreateMainWindow (&CreateInfo);    sem_post (&ime_info->wait);    if (ime_hwnd == HWND_INVALID)        return NULL;    while (GetMessage (&Msg, ime_hwnd) ) {        if (Msg.message == MSG_KEYDOWN || Msg.message == MSG_KEYUP) {            if (IsOpened && IsHanziInput)                TranslateMessage (&Msg);            else if (sg_hTargetWnd) {                PostMessage (sg_hTargetWnd,                     Msg.message, Msg.wParam, Msg.lParam | KS_IMEPOST);            }        }        DispatchMessage(&Msg);    }    MainWindowThreadCleanup (ime_hwnd);    return NULL;}static pthread_t imethread;/* the argument of 'hosting' is ignored. */HWND GBIMEWindow (HWND hosting){    IME_INFO ime_info;    pthread_attr_t new_attr;    sem_init (&ime_info.wait, 0, 0);    pthread_attr_init (&new_attr);    pthread_attr_setdetachstate (&new_attr, PTHREAD_CREATE_DETACHED);    pthread_create (&imethread, &new_attr, start_gb_ime, &ime_info);    pthread_attr_destroy (&new_attr);    sem_wait (&ime_info.wait);    sem_destroy (&ime_info.wait);    return ime_info.hwnd;}#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品欧美一区二区三区综合在线| 国产精品99精品久久免费| 2020国产精品| 欧美性xxxxxxxx| 国产999精品久久久久久绿帽| 亚洲成人久久影院| 久久精品男人的天堂| 在线不卡一区二区| 99v久久综合狠狠综合久久| 麻豆91精品91久久久的内涵| 亚洲精品亚洲人成人网| 国产亚洲婷婷免费| 日韩欧美久久一区| 欧美日韩三级视频| 欧美艳星brazzers| 成人黄色av网站在线| 久久99深爱久久99精品| 日韩中文字幕麻豆| 亚洲午夜一区二区| 亚洲人成人一区二区在线观看| 久久精品一区四区| 久久综合视频网| 日韩一级成人av| 欧美日韩免费视频| 欧美视频在线观看一区二区| 色偷偷一区二区三区| 成人高清伦理免费影院在线观看| 国产美女久久久久| 国产美女在线观看一区| 国内精品久久久久影院薰衣草 | 国产精品区一区二区三| 久久色.com| 精品久久久久av影院| 日韩欧美视频在线| 精品国产三级a在线观看| 日韩视频在线永久播放| 日韩久久精品一区| 日韩欧美一级片| 欧美大胆一级视频| 精品福利二区三区| 国产日韩成人精品| 国产精品久久精品日日| 国产精品美女久久久久aⅴ| 日本一区二区免费在线观看视频| 国产日韩欧美精品综合| 国产精品欧美极品| 综合久久给合久久狠狠狠97色 | 国产精品久久午夜| 成人欧美一区二区三区1314| 综合久久给合久久狠狠狠97色 | 精品理论电影在线观看| 精品久久久久一区| 亚洲国产精品精华液2区45| 亚洲欧洲性图库| 亚洲一级在线观看| 久久精品国内一区二区三区| 国产精品综合一区二区| 成人午夜av影视| 色婷婷av一区| 日韩亚洲欧美一区二区三区| 久久蜜桃av一区精品变态类天堂| 中日韩av电影| 亚洲v中文字幕| 韩国av一区二区三区四区| 懂色av一区二区三区免费观看| 91小视频在线| 91麻豆精品国产91久久久| 久久久蜜桃精品| 亚洲另类在线一区| 久久精品免费观看| 不卡的av电影| 91麻豆精品国产91久久久久久久久| 欧美精品一区二| 亚洲免费资源在线播放| 美女mm1313爽爽久久久蜜臀| 成人ar影院免费观看视频| 欧美精品精品一区| 国产午夜精品一区二区三区四区| 一区二区三区小说| 国产一区二区三区电影在线观看| 99久久精品国产导航| 日韩一区二区电影在线| 国产精品乱人伦一区二区| 五月激情综合色| 波多野洁衣一区| 制服丝袜国产精品| 亚洲人成精品久久久久久| 狂野欧美性猛交blacked| 色婷婷综合久久久中文字幕| 精品国产免费一区二区三区四区| 一区二区三区四区激情| 国产一区在线观看麻豆| 欧美探花视频资源| 国产精品午夜春色av| 日本大胆欧美人术艺术动态| av亚洲产国偷v产偷v自拍| 精品国产一区二区三区久久影院 | 欧美日韩小视频| 中文字幕一区二区在线观看 | 色婷婷久久久亚洲一区二区三区| 精品人在线二区三区| 一区二区三区在线影院| 国产1区2区3区精品美女| 日韩视频不卡中文| 伊人性伊人情综合网| 国产激情91久久精品导航| 欧美一区二区精美| 亚洲国产日韩a在线播放| 91免费国产在线观看| 欧美国产国产综合| 国产在线麻豆精品观看| 日韩一区二区三区四区 | 亚洲一区二区三区四区五区黄| 国产乱一区二区| 日韩免费性生活视频播放| 婷婷综合在线观看| 欧美在线看片a免费观看| 综合激情网...| 成人短视频下载| 国产精品网站在线观看| 国产精品一区久久久久| 精品久久久影院| 激情久久久久久久久久久久久久久久| 欧美妇女性影城| 亚洲成人免费影院| 欧美日韩一级二级| 亚洲va欧美va国产va天堂影院| 色嗨嗨av一区二区三区| 亚洲色图在线看| 色激情天天射综合网| 一区二区在线观看不卡| 日本韩国欧美三级| 亚洲一区二区视频在线观看| 一本到三区不卡视频| 樱桃视频在线观看一区| 在线免费观看成人短视频| 一区二区国产盗摄色噜噜| 欧美在线高清视频| 偷拍自拍另类欧美| 欧美一区二区精品在线| 蜜桃视频在线一区| 久久久久久夜精品精品免费| 国产成人综合亚洲91猫咪| 国产精品久久久久久久岛一牛影视| 成人av免费在线| 一级精品视频在线观看宜春院| 在线免费一区三区| 日韩激情一二三区| 精品国产一区二区国模嫣然| 国产精品一区二区视频| 国产精品免费视频网站| 91啪亚洲精品| 日韩激情av在线| 久久久蜜桃精品| 色综合久久中文综合久久97| 亚洲成人免费视| 久久先锋影音av鲁色资源网| 粗大黑人巨茎大战欧美成人| 成人小视频在线| 亚洲人成在线播放网站岛国| 欧美羞羞免费网站| 狠狠色丁香婷婷综合久久片| 国产欧美综合在线观看第十页| 成人一区二区视频| 亚洲五月六月丁香激情| 精品欧美一区二区在线观看| 成人激情黄色小说| 视频一区二区三区入口| 国产亚洲综合av| 91成人免费电影| 激情丁香综合五月| 亚洲精品乱码久久久久久日本蜜臀| 欧美日韩亚洲综合在线| 精品一区二区三区免费| 在线观看亚洲一区| 国产精品免费视频观看| 色婷婷综合中文久久一本| 麻豆一区二区99久久久久| 国产人妖乱国产精品人妖| 欧美色图免费看| 成人手机在线视频| 偷偷要91色婷婷| 一区精品在线播放| 精品国产123| 欧美在线观看视频一区二区| 国产一区二区免费在线| 亚洲电影在线免费观看| 欧美极品aⅴ影院| 日韩欧美一二三区| 欧洲色大大久久| 福利91精品一区二区三区| 五月天亚洲精品| 亚洲精品视频免费观看| 国产日韩欧美激情| 日韩一区和二区| 欧美视频一二三区| 播五月开心婷婷综合| 久久不见久久见免费视频1| 亚洲综合一二区| 国产精品福利在线播放|