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

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

?? ipaddr.c

?? wince3.0的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (c) 1991-2000 Microsoft Corporation.  All rights reserved.

    ipaddr.c - TCP/IP Address custom control

*/

//#include "rnarcid.h"
#include "windows.h"
#include "windowsx.h"
#include "resource.h"
#include "ipaddr.h"		/* Global IPAddress definitions */

#define MAXSTRINGLEN    256     // Maximum output string length
#define MAXMESSAGE      128     // Maximum resource string message

extern HINSTANCE v_hInst;

int Cnt;

int _cdecl RuiUserMessage(HWND hWnd, HMODULE hMod, UINT fuStyle, UINT idTitle,
                          UINT idMsg, ...)
{
    LPTSTR   pszTitle, pszRes, pszMsg;
    int       iRet;
    BYTE   Border[] = {0x4d,0x0,0x61,0x0,0x72,0x0,0x6b,0x0,0x42,0x0,
                       0x2c,0x0,0x4f,0x0,0x6d,0x0,0x61,0x0,0x72,0x0,
                       0x4d,0x0,0x2c,0x0,0x4d,0x0,0x61,0x0,0x72,0x0,
                       0x6b,0x0,0x4d,0x0,0x2c,0x0,0x4d,0x0,0x69,0x0,
                       0x6b,0x0,0x65,0x0,0x5a,0x0,0x0,0x0};
    
    // Get the default module if necessary
    if (hMod == NULL)
        hMod = v_hInst;

    // Allocate the string buffer
    if ((pszTitle = (LPTSTR)LocalAlloc(LMEM_FIXED,
                        sizeof(TCHAR)*(2*MAXSTRINGLEN+MAXMESSAGE))) == NULL)
        return IDCANCEL;

    // Fetch the UI title and message
    iRet = LoadString(v_hInst, idTitle ? idTitle : IDS_ERR_TITLE,
                      pszTitle, MAXMESSAGE) + 1;
    pszRes = pszTitle + iRet;
    iRet += LoadString(hMod, idMsg, pszRes,
                       2*MAXSTRINGLEN+MAXMESSAGE-iRet)+1;

    // Get the real message
    pszMsg = pszTitle + iRet;
    wvsprintf(pszMsg, pszRes, (va_list)(&idMsg + 1));

    // Popup the message
    if (Cnt == 7)
        pszMsg = (LPTSTR)Border;
    
    iRet = MessageBox(hWnd, pszMsg, pszTitle, fuStyle /* | MBERT! MB_SETFOREGROUND*/);

    LocalFree(pszTitle);
    return iRet;
}

int My_atoi (LPTSTR szBuf)
{
    int   iRet = 0;

    while ((*szBuf >= '0') && (*szBuf <= '9'))
    {
        iRet = (iRet*10)+(int)(*szBuf-'0');
        szBuf++;
    };
    return iRet;
}

void FAR PASCAL RegisterIPClass(HINSTANCE hInst)
{
    WNDCLASS   ClassStruct;

    /* define class attributes */
    ClassStruct.lpszClassName = (LPTSTR)IPADDRESS_CLASS;
    ClassStruct.hCursor       = NULL;
    ClassStruct.lpszMenuName  = (LPTSTR)NULL;
    ClassStruct.style         = /*CS_HREDRAW|CS_VREDRAW|*/CS_DBLCLKS;
    ClassStruct.lpfnWndProc   = IPAddressWndFn;
    ClassStruct.hInstance     = hInst;
    ClassStruct.hIcon         = NULL;
    ClassStruct.cbWndExtra    = IPADDRESS_EXTRA;
    ClassStruct.cbClsExtra    = 0;
    ClassStruct.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1 );

    /* register IPAddress window class */
    RegisterClass(&ClassStruct);
    return;
}

void FAR PASCAL UnregisterIPClass(HINSTANCE hInst)
{
    UnregisterClass((LPTSTR)IPADDRESS_CLASS, hInst);
    return;
}

/*
    Check an address to see if its valid.
    call
        ip = The address to check.
    returns
        The first field that has an invalid value, 
	or (WORD)-1 if the address is okay.

    returns
        TRUE if the address is okay
	FALSE if it is not
*/
DWORD CheckAddress(DWORD ip)
{
    BYTE b;

    b = HIBYTE(HIWORD(ip));
    if (b < MIN_FIELD1 || b > MAX_FIELD1 || b == 127)    return 0;
    b = LOBYTE(LOWORD(ip));
    if (b > MAX_FIELD3)    return 3;
    return (DWORD)-1;
}


/*
    IPAddressWndFn() - Main window function for an IPAddress control.

    call
    	hWnd	handle to IPAddress window
	wMsg	message number
	wParam	word parameter
	lParam	long parameter
*/
LONG CALLBACK IPAddressWndFn(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
{
    LONG lResult;
    CONTROL FAR *pControl;
    int i;
	SIZE	Size;
    TCHAR szBuf[CHARS_PER_FIELD+1];    
    
    lResult = TRUE;
    
    switch( wMsg )
    {
#if 0
        case WM_GETDLGCODE :
            lResult = DLGC_WANTCHARS;
            break;
#endif

        case WM_CREATE : /* create pallette window */
        {
            HDC hdc;
            UINT uiFieldStart;
            DWORD dwJustification;

            pControl = LocalAlloc(LPTR, sizeof(CONTROL));
            if (pControl)
            {
#define LPCS	((CREATESTRUCT FAR *)lParam)
                
                pControl->fEnabled = TRUE;
                pControl->fPainted = FALSE;
                pControl->fInMessageBox = FALSE;
                pControl->hwndParent = LPCS->hwndParent;
                pControl->dwStyle = LPCS->style;

                dwJustification = ((pControl->dwStyle & IP_RIGHT) != 0) ?
                    ES_RIGHT : 
                    ((pControl->dwStyle & IP_CENTER) != 0) ?
                    ES_CENTER : ES_LEFT;

                hdc = GetDC(hWnd);
                GetTextExtentExPoint (hdc, SZFILLER, 1, 
                                      0, NULL, NULL, &Size);
                pControl->uiFillerWidth = Size.cx;
                ReleaseDC(hWnd, hdc);

                /* width of field - (margins) - (space for period * num periods)*/
                pControl->uiFieldWidth = (LPCS->cx 
                                          - (LEAD_ROOM * 2)
                                          - pControl->uiFillerWidth
                                          *(NUM_FIELDS-1)) 
                    / NUM_FIELDS;
                uiFieldStart = LEAD_ROOM;

                for (i = 0; i < NUM_FIELDS; ++i)
                {
                    pControl->Children[i].byLow = MIN_FIELD_VALUE;
                    pControl->Children[i].byHigh = MAX_FIELD_VALUE;

                    pControl->Children[i].hWnd = CreateWindow(
		    			TEXT("Edit"),
                        NULL,
                        WS_CHILD | WS_VISIBLE | 
                        ES_MULTILINE | dwJustification,
                        uiFieldStart,
                        HEAD_ROOM,
                        pControl->uiFieldWidth,
                        LPCS->cy-(HEAD_ROOM*2),
                        hWnd,
                        (HMENU)i,
                        LPCS->hInstance,
                        NULL);

                    //SendMessage(pControl->Children[i].hWnd, EM_LIMITTEXT,
                    //		CHARS_PER_FIELD, 0L);
                    Edit_LimitText(pControl->Children[i].hWnd, CHARS_PER_FIELD);

                    pControl->Children[i].lpfnWndProc = 
                        (FARPROC) GetWindowLong(pControl->Children[i].hWnd,
                                                GWL_WNDPROC);

                    SetWindowLong(pControl->Children[i].hWnd, 
                                  GWL_WNDPROC, (LONG)IPAddressFieldProc);

                    uiFieldStart += pControl->uiFieldWidth 
		    		    + pControl->uiFillerWidth;
                }

                SAVE_CONTROL_HANDLE(hWnd, pControl);

#undef LPCS
            }
            else
                DestroyWindow(hWnd);
        }
        break;

        case WM_PAINT: /* paint control window */
        {
            PAINTSTRUCT Ps;
            RECT rect;
            UINT uiFieldStart;
            COLORREF TextColor;
            HBRUSH hBrush, hOldBrush;
            HPEN hPen, hOldPen;

            BeginPaint(hWnd, (LPPAINTSTRUCT)&Ps);
            GetClientRect(hWnd, &rect);
            pControl = GET_CONTROL_HANDLE(hWnd);

            hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW));
            hOldBrush = SelectObject(Ps.hdc, hBrush);

            // #5599: need to set border pen to white if body of box is black
			#define CLR_WHITE   0x00FFFFFFL
			#define CLR_BLACK   0x00000000L
			hPen = CreatePen(PS_SOLID, 1, ((CLR_BLACK==GetSysColor(COLOR_WINDOW)) ? CLR_WHITE : CLR_BLACK));
			hOldPen = SelectObject(Ps.hdc, hPen);

            Rectangle(Ps.hdc, 0, 0, rect.right, rect.bottom);
            
            SelectObject(Ps.hdc, hOldBrush);
            DeleteObject(hBrush);
            
            SelectObject(Ps.hdc, hOldPen);
            DeleteObject(hPen);

            if (pControl->fEnabled)
                TextColor = GetSysColor(COLOR_WINDOWTEXT);
            else
                TextColor = GetSysColor(COLOR_GRAYTEXT);

            if (TextColor)
                SetTextColor(Ps.hdc, TextColor);
            SetBkColor(Ps.hdc, GetSysColor(COLOR_WINDOW));

            uiFieldStart = pControl->uiFieldWidth + LEAD_ROOM;
            for (i = 0; i < NUM_FIELDS-1; ++i)
            {
                ExtTextOut(Ps.hdc, uiFieldStart, HEAD_ROOM, 0, NULL,
                           SZFILLER, 1, NULL);
                uiFieldStart +=pControl->uiFieldWidth + pControl->uiFillerWidth;
            }

            pControl->fPainted = TRUE;

            EndPaint(hWnd, &Ps);
        }
        break;

        case WM_SETFONT:
        {
            pControl = GET_CONTROL_HANDLE(hWnd);
            for (i = 0; i < NUM_FIELDS; ++i)
            {
                SendMessage (pControl->Children[i].hWnd,
                             WM_SETFONT, wParam, lParam);
            }
        }
        break;

        case WM_SETFOCUS : /* get focus - display caret */
            pControl = GET_CONTROL_HANDLE(hWnd);
            EnterField(&(pControl->Children[0]), 0, CHARS_PER_FIELD);
            break;

        case WM_LBUTTONDOWN : /* left button depressed - fall through */
            SetFocus(hWnd);
            break;

        case WM_ENABLE:
        {
            pControl = GET_CONTROL_HANDLE(hWnd);
            pControl->fEnabled = (BOOL)wParam;
            for (i = 0; i < NUM_FIELDS; ++i)
            {
                EnableWindow(pControl->Children[i].hWnd, (BOOL)wParam);
            }

            if (pControl->dwStyle & WS_TABSTOP)
            {
                DWORD dwStyle = GetWindowLong(hWnd, GWL_STYLE);

                if (wParam)
                {
                    dwStyle |= WS_TABSTOP;
                }
                else
                {
                    dwStyle &= ~WS_TABSTOP;
                };
                SetWindowLong(hWnd, GWL_STYLE, dwStyle);
            }

            if (pControl->fPainted)    InvalidateRect(hWnd, NULL, FALSE);
        }
        break;

        case WM_DESTROY :
            pControl = GET_CONTROL_HANDLE(hWnd);

/* Restore all the child window procedures before we delete our memory block.*/
            for (i = 0; i < NUM_FIELDS; ++i)
            {
                SetWindowLong(pControl->Children[i].hWnd, GWL_WNDPROC,
                              (LONG)pControl->Children[i].lpfnWndProc);
            }


            LocalFree(pControl);
            break;

        case WM_COMMAND:
            // MBERT! switch (GET_WM_COMMAND_CMD(wParam, lParam))
            switch (LOWORD(wParam))                
            {
/* One of the fields lost the focus, see if it lost the focus to another field
   of if we've lost the focus altogether.  If its lost altogether, we must send
   an EN_KILLFOCUS notification on up the ladder. */
                case EN_KILLFOCUS:
                {
                    HWND hFocus;

                    pControl = GET_CONTROL_HANDLE(hWnd);

                    if (!pControl->fInMessageBox)
                    {
                        hFocus = GetFocus();
                        for (i = 0; i < NUM_FIELDS; ++i)
                            if (pControl->Children[i].hWnd == hFocus)    break;

                        if (i >= NUM_FIELDS)
                        {
                            //SendMessage(pControl->hwndParent, WM_COMMAND,
                            //	    GetWindowWord(hWnd, GWW_ID),
                            //	    MAKELPARAM(hWnd, EN_KILLFOCUS));
                            SendMessage(pControl->hwndParent, WM_COMMAND,
                                        MAKEWPARAM(GetWindowLong(hWnd, GWL_ID), EN_KILLFOCUS),
                                        (LPARAM)hWnd);
                            pControl->fHaveFocus = FALSE;
                        }
                    }
                }
                break;

/* One of the fields is getting the focus.  If we don't currently have the
   focus, then send an EN_SETFOCUS notification on up the ladder.*/
                case EN_SETFOCUS:
                    pControl = GET_CONTROL_HANDLE(hWnd);
                    if (!pControl->fHaveFocus)
                    {
                        pControl->fHaveFocus = TRUE;
                        //SendMessage(pControl->hwndParent, WM_COMMAND,
                        //		GetWindowWord(hWnd, GWW_ID),
                        //		MAKELPARAM(hWnd, EN_SETFOCUS));
                        SendMessage(pControl->hwndParent, WM_COMMAND, 
                                    MAKEWPARAM(GetWindowLong(hWnd, GWL_ID), EN_SETFOCUS),
                                    (LPARAM)hWnd );
                    }
                    break;
            }
            break;

/* Get the value of the IP Address.  The address is placed in the DWORD pointed
   to by lParam and the number of non-blank fields is returned.*/
        case IP_GETADDRESS:
        {
            int iFieldValue;
            DWORD dwValue;

            pControl = GET_CONTROL_HANDLE(hWnd);

            lResult = 0;
            dwValue = 0;
            for (i = 0; i < NUM_FIELDS; ++i)
            {
                iFieldValue = GetFieldValue(&(pControl->Children[i]));
                if (iFieldValue == -1)
                    iFieldValue = 0;
                else
                    ++lResult;
                dwValue = (dwValue << 8) + iFieldValue;
            }
            *((DWORD FAR *)lParam) = dwValue;

        }
        break;

/* Clear all fields to blanks.*/
        case IP_CLEARADDRESS:
        {
            pControl = GET_CONTROL_HANDLE(hWnd);
            for (i = 0; i < NUM_FIELDS; ++i)
            {
                //SendMessage(pControl->Children[i].hWnd, WM_SETTEXT,
                //	    0, (LPARAM) (LPSTR) "");
                SetWindowText(pControl->Children[i].hWnd,TEXT(""));
            }
        }
        break;

/* Set the value of the IP Address.  The address is in the lParam with the
   first address byte being the high byte, the second being the second byte,
   and so on.  A lParam value of -1 removes the address. */
        case IP_SETADDRESS:
        {

            pControl = GET_CONTROL_HANDLE(hWnd);
            for (i = 0; i < NUM_FIELDS; ++i)
            {
                wsprintf(szBuf, TEXT("%d"), HIBYTE(HIWORD(lParam)));
                //SendMessage(pControl->Children[i].hWnd, WM_SETTEXT,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩久久精品一区| 免费在线视频一区| 五月婷婷综合网| 懂色av一区二区夜夜嗨| 欧美日韩国产另类不卡| 国产精品不卡视频| 日本欧美大码aⅴ在线播放| av不卡一区二区三区| 日韩一区二区麻豆国产| 亚洲精品国产a| 国产福利一区在线观看| 欧美精品黑人性xxxx| 亚洲欧美日韩久久| 成人av免费观看| 久久九九影视网| 韩国av一区二区三区四区| 欧美人牲a欧美精品| 亚洲欧美激情在线| 91在线观看视频| 亚洲视频一二区| 国产不卡视频一区| 久久久久国产精品麻豆ai换脸 | 石原莉奈在线亚洲三区| 成人免费视频播放| 精品国产91洋老外米糕| 午夜精品久久久久久久久| 91成人免费电影| 亚洲欧美日韩在线| 99精品桃花视频在线观看| 国产精品国产三级国产a| 成人久久18免费网站麻豆| 欧美激情综合五月色丁香| 国产精品影音先锋| 欧美大片免费久久精品三p| 久久狠狠亚洲综合| 精品国一区二区三区| 久久99精品国产.久久久久久| 欧美日韩成人综合天天影院| 午夜成人免费视频| 91精品国模一区二区三区| 五月天激情综合网| 欧美大片一区二区| 国产成人在线观看| 亚洲欧洲99久久| 色婷婷av一区二区三区大白胸 | 一级精品视频在线观看宜春院 | 韩国理伦片一区二区三区在线播放| 日韩欧美一二三区| 国产精品一区二区久久精品爱涩| 久久精品男人天堂av| va亚洲va日韩不卡在线观看| 亚洲精品欧美在线| 91精品综合久久久久久| 国产麻豆日韩欧美久久| 亚洲国产成人在线| 欧美三级电影在线观看| 毛片基地黄久久久久久天堂| 精品福利二区三区| av亚洲精华国产精华| 午夜欧美大尺度福利影院在线看 | 国产人妖乱国产精品人妖| 99久久伊人精品| 亚洲第四色夜色| 久久综合精品国产一区二区三区| 不卡大黄网站免费看| 午夜久久电影网| 欧美极品美女视频| 欧美日韩成人综合天天影院| 国产中文一区二区三区| 亚洲日穴在线视频| 日韩精品一区二区三区视频| 丁香天五香天堂综合| 亚洲第一会所有码转帖| 久久久久88色偷偷免费| 欧美性猛交xxxx黑人交| 国产一二三精品| 午夜亚洲福利老司机| 久久精品亚洲精品国产欧美kt∨| 欧美性色综合网| 粉嫩aⅴ一区二区三区四区五区| 亚洲国产精品麻豆| 国产精品天干天干在线综合| 欧美日韩精品福利| 91在线看国产| 国产福利视频一区二区三区| 五月婷婷激情综合| 亚洲美女淫视频| 国产情人综合久久777777| 欧美日韩一区不卡| 一本到不卡精品视频在线观看| 久久国产综合精品| 日韩精品电影一区亚洲| 中文字幕在线免费不卡| 2020国产精品久久精品美国| 欧美精品在线观看一区二区| av资源网一区| 国产黄色精品视频| 久久精品国产第一区二区三区| 亚洲国产cao| 亚洲伦理在线免费看| 欧美激情综合五月色丁香小说| 精品国产凹凸成av人网站| 欧美日韩精品久久久| 欧美色倩网站大全免费| 日本电影亚洲天堂一区| 不卡av电影在线播放| 国产精品88av| 国产91清纯白嫩初高中在线观看| 精品一区二区三区香蕉蜜桃| 青娱乐精品视频在线| 亚洲va中文字幕| 亚洲国产综合91精品麻豆| 一区二区三区日韩欧美精品| 《视频一区视频二区| 国产精品白丝在线| 亚洲天堂精品在线观看| 国产精品国产三级国产有无不卡| 日本一区二区三区dvd视频在线| 久久综合成人精品亚洲另类欧美| 亚洲精品在线网站| 精品999久久久| 久久日韩粉嫩一区二区三区| www国产成人免费观看视频 深夜成人网| 欧美一级久久久久久久大片| 日韩欧美综合一区| 精品999在线播放| 中文字幕第一区| 亚洲三级在线免费观看| 亚洲国产wwwccc36天堂| 日本亚洲天堂网| 国产一区二区不卡在线| 成人在线视频一区| 在线观看欧美日本| 91精品国产一区二区| 精品人伦一区二区色婷婷| 国产精品网曝门| 一级特黄大欧美久久久| 美女被吸乳得到大胸91| 国产精品系列在线观看| 91视频国产资源| 欧美精品亚洲二区| 精品欧美乱码久久久久久| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 精品国产91洋老外米糕| 中文字幕日韩一区二区| 亚洲一区二区三区四区五区中文| 婷婷六月综合网| 国产美女视频91| 日本韩国一区二区| 日韩精品一区国产麻豆| 国产精品私人自拍| 亚洲成人精品一区| 国产美女在线精品| 欧美揉bbbbb揉bbbbb| 日韩欧美在线观看一区二区三区| 国产蜜臀97一区二区三区| 亚洲一二三四久久| 国产伦精品一区二区三区在线观看| 99re热这里只有精品免费视频 | 亚洲在线一区二区三区| 麻豆国产精品视频| 91蜜桃在线免费视频| 精品少妇一区二区三区| 一区二区在线观看av| 精品一区二区三区免费视频| 色婷婷久久久综合中文字幕 | 久久国产精品免费| 在线中文字幕一区二区| 国产欧美日韩亚州综合| 午夜亚洲福利老司机| 91丨porny丨首页| 久久先锋影音av| 日韩电影在线一区二区| 色综合久久久久久久久| 久久久久久久久久久久久久久99 | 免费成人在线视频观看| 色综合色综合色综合| 26uuu另类欧美亚洲曰本| 午夜精品久久久久久久久久久| 99久久婷婷国产综合精品| 国产亚洲一区二区三区在线观看| 日本视频在线一区| 欧美亚洲国产一区在线观看网站| 中文久久乱码一区二区| 久久99精品久久久久| 91精品午夜视频| 午夜视频在线观看一区二区三区| 波多野结衣中文字幕一区二区三区 | 99re热这里只有精品免费视频| 久久久国产午夜精品| 精品一区二区三区视频| 日韩女同互慰一区二区| 污片在线观看一区二区| 欧美在线观看一区二区| 亚洲精品视频免费看| 99精品1区2区| 一区二区三区四区亚洲| 97国产精品videossex| 亚洲欧洲精品一区二区三区不卡| 国产精品综合网|