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

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

?? ctrlclass.c

?? 新片介紹
?? C
字號:
/*** $Id: ctrlclass.c,v 1.24 2003/09/04 03:15:07 weiym Exp $**** ctrlclass.c: the Control Class module.**** Copyright (C) 2003 Feynman Software.** Copyright (C) 1999 ~ 2002 Wei Yongming.**** Current maintainer: Wei Yongming.** Create date: 1999/5/21*//*** This program is free software; you can redistribute it and/or modify** it under the terms of the GNU General Public License as published by** the Free Software Foundation; either version 2 of the License, or** (at your option) any later version.**** This program is distributed in the hope that it will be useful,** but WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the** GNU General Public License for more details.**** You should have received a copy of the GNU General Public License** along with this program; if not, write to the Free Software** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*//*** TODO:*/ #include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include "common.h"#include "minigui.h"#include "gdi.h"#include "window.h"#include "control.h"#include "cliprect.h"#include "gal.h"#include "internals.h"#include "ctrlclass.h"#ifdef _CTRL_STATIC#include "control/static.h"#endif#ifdef _CTRL_BUTTON#include "control/button.h"#endif#ifdef _CTRL_SIMEDIT#include "control/simedit.h"#endif#ifdef _CTRL_SLEDIT#include "control/edit.h"#endif#ifdef _CTRL_PROGRESSBAR#include "control/progressbar.h"#endif#ifdef _CTRL_LISTBOX#include "control/listbox.h"#endif#ifdef _CTRL_MLEDIT#include "control/medit.h"#endif#ifdef _CTRL_TOOLBAR#include "control/toolbar.h"#endif#ifdef _CTRL_NEWTOOLBAR#include "control/newtoolbar.h"#endif#ifdef _CTRL_MENUBUTTON#include "control/menubutton.h"#endif#ifdef _CTRL_TRACKBAR#include "control/trackbar.h"#endif#ifdef _CTRL_COMBOBOX#include "control/combobox.h"#endif#ifdef _CTRL_PROPSHEET#include "control/propsheet.h"#endif#define LEN_CCITABLE    26PCTRLCLASSINFO ccitable[LEN_CCITABLE];PCONTROL Control (HWND hWnd){    PCONTROL pCtrl;    pCtrl = (PCONTROL) hWnd;    if (pCtrl && pCtrl->WinType == TYPE_CONTROL)        return pCtrl;    return NULL;}BOOL InitControlClass (){    int i;        for (i=0; i<LEN_CCITABLE; i++)        ccitable[i] = NULL;    // Register system controls here.#ifdef _CTRL_STATIC    if (!RegisterStaticControl ())        return FALSE;#endif#ifdef _CTRL_BUTTON    if (!RegisterButtonControl())        return FALSE;#endif#ifdef _CTRL_SIMEDIT    if (!RegisterSIMEditControl())        return FALSE;#endif#ifdef _CTRL_SLEDIT    if (!RegisterSLEditControl())        return FALSE;#endif#ifdef _CTRL_PROGRESSBAR    if (!RegisterProgressBarControl())        return FALSE;#endif#ifdef _CTRL_LISTBOX    if (!RegisterListboxControl())        return FALSE;#endif#ifdef _CTRL_MLEDIT    if (!RegisterMLEditControl())        return FALSE;#endif#ifdef _CTRL_TOOLBAR    if (!RegisterToolbarControl())        return FALSE;#endif#ifdef _CTRL_NEWTOOLBAR    if (!RegisterNewToolbarControl())        return FALSE;#endif#ifdef _CTRL_MENUBUTTON    if (!RegisterMenuButtonControl())        return FALSE;#endif#ifdef _CTRL_TRACKBAR    if (!RegisterTrackBarControl())        return FALSE;#endif#ifdef _CTRL_COMBOBOX    if (!RegisterComboBoxControl())        return FALSE;#endif#ifdef _CTRL_PROPSHEET    if (!RegisterPropSheetControl())        return FALSE;#endif    return TRUE;}void TerminateControlClass (){#if 0#ifdef _CTRL_STATIC    StaticControlCleanup ();#endif#ifdef _CTRL_BUTTON    ButtonControlCleanup ();#endif#ifdef _CTRL_SIMEDIT    SIMEditControlCleanup ();#endif#ifdef _CTRL_SLEDIT    SLEditControlCleanup ();#endif#ifdef _CTRL_PROGRESSBAR    ProgressBarControlCleanup ();#endif#ifdef _CTRL_LISTBOX    ListboxControlCleanup ();#endif#ifdef _CTRL_MLEDIT    MLEditControlCleanup ();#endif#ifdef _CTRL_TOOLBAR    ToolbarControlCleanup ();#endif#ifdef _CTRL_NEWTOOLBAR    NewToolbarControlCleanup ();#endif#ifdef _CTRL_MENUBUTTON    MenuButtonControlCleanup ();#endif#ifdef _CTRL_TRACKBAR    TrackBarControlCleanup ();#endif#ifdef _CTRL_COMBOBOX    ComboBoxControlCleanup ();#endif#endif    EmptyControlClassInfoTable ();}PCTRLCLASSINFO GetControlClassInfo (const char* szClassName){    PCTRLCLASSINFO cci;    int i=0;    char szName [MAXLEN_CLASSNAME + 1];    if (szClassName == NULL) return NULL;    strncpy (szName, szClassName, MAXLEN_CLASSNAME);    if (!isalpha (szName[0])) return NULL;        while (szName[i]) {        szName[i] = toupper(szName[i]);        i++;    }        cci = ccitable [szName[0] - 'A'];    while (cci) {            if (strcmp (cci->name, szName) == 0)            break;        cci = cci->next;    }        return cci;}int ControlClassDataOp (int Operation, PWNDCLASS pWndClass){    PCTRLCLASSINFO cci;    cci = GetControlClassInfo (pWndClass->spClassName);    if (!cci)        return ERR_CTRLCLASS_INVNAME;    if (Operation ==  CCDOP_GETCCI) {        if (pWndClass->opMask & COP_STYLE) {            pWndClass->dwStyle      = cci->dwStyle;            pWndClass->dwExStyle    = cci->dwExStyle;        }        if (pWndClass->opMask & COP_HCURSOR)            pWndClass->hCursor      = cci->hCursor;        if (pWndClass->opMask & COP_BKCOLOR)            pWndClass->iBkColor     = cci->iBkColor;        if (pWndClass->opMask & COP_WINPROC)            pWndClass->WinProc      = cci->ControlProc;        if (pWndClass->opMask & COP_ADDDATA)            pWndClass->dwAddData    = cci->dwAddData;    }    else {        if (pWndClass->opMask & COP_STYLE) {            cci->dwStyle            = pWndClass->dwStyle;            cci->dwExStyle          = pWndClass->dwExStyle;        }        if (pWndClass->opMask & COP_HCURSOR)            cci->hCursor            = pWndClass->hCursor;        if (pWndClass->opMask & COP_BKCOLOR)            cci->iBkColor           = pWndClass->iBkColor;        if (pWndClass->opMask & COP_WINPROC)            cci->ControlProc        = pWndClass->WinProc;        if (pWndClass->opMask & COP_ADDDATA)            cci->dwAddData          = pWndClass->dwAddData;    }    return ERR_OK;}int GetCtrlClassAddData (const char* szClassName, DWORD* pAddData){    PCTRLCLASSINFO cci;    cci = GetControlClassInfo (szClassName);    if (cci) {        *pAddData = cci->dwAddData;        return ERR_OK;    }        return ERR_CTRLCLASS_INVNAME;}int SetCtrlClassAddData (const char* szClassName, DWORD dwAddData){    PCTRLCLASSINFO cci;    cci = GetControlClassInfo (szClassName);    if (cci) {        cci->dwAddData = dwAddData;        return ERR_OK;    }        return ERR_CTRLCLASS_INVNAME;}int AddNewControlClass (PWNDCLASS pWndClass){    PCTRLCLASSINFO cci, newcci;    char szClassName [MAXLEN_CLASSNAME + 2];    int i=0;    strncpy (szClassName, pWndClass->spClassName, MAXLEN_CLASSNAME + 1);    if (!isalpha (szClassName[0])) return ERR_CTRLCLASS_INVNAME;        while (szClassName[i]) {        szClassName[i] = toupper(szClassName[i]);        i++;        if (i > MAXLEN_CLASSNAME)            return ERR_CTRLCLASS_INVLEN;    }        i = szClassName[0] - 'A';    cci = ccitable [i];    if (cci) {        while (cci) {            if (strcmp (szClassName, cci->name) == 0)                return ERR_CTRLCLASS_INVNAME;            cci = cci->next;        }    }    cci = ccitable[i];    newcci = malloc (sizeof (CTRLCLASSINFO));        if (newcci == NULL) return ERR_CTRLCLASS_MEM;    newcci->next = NULL;    strcpy (newcci->name, szClassName);    newcci->dwStyle     = pWndClass->dwStyle;    newcci->dwExStyle   = pWndClass->dwExStyle;    newcci->hCursor     = pWndClass->hCursor;    newcci->iBkColor    = pWndClass->iBkColor;    newcci->ControlProc = pWndClass->WinProc;    newcci->dwAddData   = pWndClass->dwAddData;    newcci->nUseCount   = 0;    if (cci) {        while (cci->next)            cci = cci->next;        cci->next = newcci;    }    else        ccitable [i] = newcci;        return ERR_OK;}int DeleteControlClass (const char* szClassName){    PCTRLCLASSINFO head, cci, prev;    int i=0;    char szName [MAXLEN_CLASSNAME + 1];    if (szClassName == NULL) return ERR_CTRLCLASS_INVNAME;        strncpy (szName, szClassName, MAXLEN_CLASSNAME);    if (!isalpha (szName[0])) return ERR_CTRLCLASS_INVNAME;        while (szName[i]) {        szName[i] = toupper(szName[i]);        i++;    }        i = szName[0] - 'A';    head = ccitable [i];        cci = head;    prev = head;    while (cci) {            if (strcmp (cci->name, szName) == 0)            break;        prev = cci;        cci = cci->next;    }    if (!cci)        return ERR_CTRLCLASS_INVNAME;    if (cci->nUseCount != 0)        return ERR_CTRLCLASS_INVNAME;    if (cci == head) {        ccitable [i] = cci->next;        free (cci);    }    else {        prev->next = cci->next;        free (cci);    }    return ERR_OK;}void EmptyControlClassInfoTable (){    PCTRLCLASSINFO cci, temp;    int i;    for (i = 0; i<LEN_CCITABLE; i++) {        cci = ccitable [i];        while (cci) {            temp = cci->next;            free (cci);            cci = temp;        }    }}BOOL SetWindowExStyle (HWND hWnd, DWORD dwExStyle){    PMAINWIN pWin;    PCONTROL pCtrl;    pWin = (PMAINWIN)hWnd;    if (pWin->WinType == TYPE_MAINWIN)         pWin->dwExStyle=dwExStyle;    else if (pWin->WinType == TYPE_CONTROL) {        pCtrl = (PCONTROL)hWnd;        pCtrl->dwExStyle=dwExStyle;    }    else        return FALSE;    return TRUE;}#ifdef _DEBUGvoid mnuDumpCtrlClassInfo (PCTRLCLASSINFO cci){    printf ("\tClass Name:             %s\n", cci->name);    printf ("\tClass Cursor:           %x\n", cci->hCursor);    printf ("\tClass Background color: %d\n", cci->iBkColor);    printf ("\tClass Control Proc:     %p\n", cci->ControlProc);    printf ("\tClass Use Count:        %d\n", cci->nUseCount);}void DumpCtrlClassInfoTable(){    PCTRLCLASSINFO cci;    int i;    for (i = 0; i<LEN_CCITABLE; i++) {        cci = ccitable [i];        printf ("CCI Table Element: %d\n", i);        while (cci) {                   mnuDumpCtrlClassInfo (cci);            cci = cci->next;        }    }}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区影院| 一区二区三区欧美视频| 欧美午夜视频网站| 国产精品一区二区你懂的| 一区二区三国产精华液| 久久久久久一二三区| 精品视频在线免费看| 国产成人在线色| 日韩精品亚洲一区二区三区免费| 国产日韩欧美综合在线| 91精品国产综合久久精品图片| 97国产一区二区| 国产美女娇喘av呻吟久久| 日本伊人午夜精品| 一区二区三区中文在线| 国产精品污网站| 精品国产乱码久久久久久久久 | 久久精品国产99国产| 亚洲视频一区二区在线观看| 久久影院视频免费| 日韩一区二区三| 欧美丰满少妇xxxxx高潮对白| 99国产精品久| 本田岬高潮一区二区三区| 精品在线播放免费| 美女被吸乳得到大胸91| 青椒成人免费视频| 日韩综合在线视频| 日韩在线观看一区二区| 亚洲va欧美va人人爽| 亚洲综合激情小说| 又紧又大又爽精品一区二区| 亚洲另类在线制服丝袜| 日韩美女啊v在线免费观看| 欧美激情在线一区二区三区| 久久美女高清视频| 国产性天天综合网| 国产欧美日韩精品一区| 欧美韩国日本不卡| 国产精品不卡一区二区三区| 国产精品久久久久久亚洲伦| 中文字幕在线不卡| 亚洲精品国产精品乱码不99| 亚洲乱码中文字幕综合| 亚洲观看高清完整版在线观看 | 国产精品剧情在线亚洲| 国产精品女主播av| 亚洲女厕所小便bbb| 亚洲欧美乱综合| 亚洲成年人网站在线观看| 五月天精品一区二区三区| 免费观看久久久4p| 国产激情视频一区二区在线观看| 国产乱理伦片在线观看夜一区| 国产乱色国产精品免费视频| 成人午夜视频在线观看| 97久久精品人人澡人人爽| 欧美日韩视频第一区| 91精品国产免费久久综合| 久久午夜羞羞影院免费观看| 国产精品美女久久福利网站 | 亚洲国产另类av| 青草av.久久免费一区| 国产一区二区免费看| 91网站在线观看视频| 欧美三区在线观看| 久久亚洲免费视频| 亚洲精品中文在线观看| 日本va欧美va瓶| 国产成人免费网站| 在线影视一区二区三区| 欧美一区二区三区日韩视频| 国产欧美一区二区精品婷婷| 亚洲品质自拍视频| 另类的小说在线视频另类成人小视频在线| 日韩一区二区三区四区| 99久久99久久综合| 欧美精品色一区二区三区| 精品久久人人做人人爽| 亚洲视频电影在线| 天堂va蜜桃一区二区三区漫画版| 狠狠色综合日日| 91蝌蚪porny成人天涯| 欧美一区二区三区视频在线观看 | 一区二区三区四区亚洲| 日韩1区2区3区| 成人国产精品免费观看动漫| 欧美伦理电影网| 国产精品视频九色porn| 婷婷丁香久久五月婷婷| 99精品在线免费| 欧美刺激脚交jootjob| 亚洲女人****多毛耸耸8| 久久99国内精品| 在线观看国产91| 国产日产欧产精品推荐色 | 亚洲成人激情社区| 国产成人亚洲精品青草天美| 717成人午夜免费福利电影| 亚洲欧洲三级电影| 国产精品一区一区| 欧美一二三区精品| 亚洲成人自拍一区| 色综合一区二区三区| 久久综合色8888| 奇米一区二区三区av| 在线精品视频免费观看| 国产精品国产自产拍在线| 另类人妖一区二区av| 538prom精品视频线放| 亚洲美女少妇撒尿| a4yy欧美一区二区三区| 久久一区二区三区四区| 欧美激情在线一区二区三区| 亚洲色图19p| 国产成人啪免费观看软件 | 亚洲精品va在线观看| 国产高清亚洲一区| 精品国产成人系列| 免费成人在线影院| 欧美日韩你懂的| 一区二区三区中文在线| 色视频一区二区| 亚洲女人****多毛耸耸8| 99精品黄色片免费大全| 欧美激情一区在线| 国产91富婆露脸刺激对白| 久久人人爽人人爽| 国产麻豆精品视频| 久久青草欧美一区二区三区| 国产永久精品大片wwwapp| www国产亚洲精品久久麻豆| 久久99国产精品久久99果冻传媒| 91精品国产aⅴ一区二区| 日韩成人av影视| 91精品一区二区三区久久久久久 | 欧美二区乱c少妇| 午夜久久久影院| 91精品国产综合久久福利 | 色婷婷精品大视频在线蜜桃视频| 久久色.com| 夜夜嗨av一区二区三区中文字幕 | 免费成人av在线| 日韩欧美色综合网站| 激情国产一区二区 | 自拍视频在线观看一区二区| 91丨九色丨国产丨porny| 亚洲免费高清视频在线| 欧美视频第二页| 奇米四色…亚洲| 久久综合av免费| 99精品欧美一区二区三区小说| 亚洲视频免费在线观看| 欧洲av一区二区嗯嗯嗯啊| 日韩激情在线观看| 26uuu国产在线精品一区二区| 国产电影一区在线| 亚洲乱码国产乱码精品精小说| 欧美精品乱码久久久久久| 精品一区二区av| 中文字幕在线观看一区| 欧美影院午夜播放| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品区一区二区三区| 欧美视频日韩视频在线观看| 日本91福利区| 中文字幕免费观看一区| 欧美在线三级电影| 国产尤物一区二区| 樱花草国产18久久久久| 欧美肥妇bbw| 成人午夜碰碰视频| 婷婷成人综合网| 国产精品免费视频观看| 欧美美女直播网站| 成人免费视频网站在线观看| 亚洲国产视频一区二区| 国产日韩欧美麻豆| 欧美日韩免费一区二区三区视频| 国产原创一区二区三区| 亚洲一区二区三区国产| 久久九九全国免费| 欧美日韩精品欧美日韩精品一综合| 国模一区二区三区白浆| 91精品午夜视频| 国产剧情av麻豆香蕉精品| 亚洲自拍偷拍九九九| 亚洲国产精品激情在线观看| 欧美精品乱码久久久久久按摩| 丁香另类激情小说| 奇米色777欧美一区二区| 亚洲色图一区二区| 精品欧美乱码久久久久久 | 国产精品一区二区久激情瑜伽| 亚洲激情欧美激情| 国产亚洲欧美日韩在线一区| 欧美一区日本一区韩国一区| 91视频一区二区| 成人免费视频播放| 国产在线观看一区二区|