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

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

?? cechat.c

?? MS-Press book about programming under Windows CE with source-codes of examples
?? C
?? 第 1 頁 / 共 2 頁
字號:
//======================================================================
// CeChat - A Windows CE communication demo
//
// Written for the book Programming Windows CE
// Copyright (C) 1998 Douglas Boling
//======================================================================
#include <windows.h>                 // For all that Windows stuff
#include <commctrl.h>                // Command bar includes
#include "CeChat.h"                  // Program-specific stuff

//----------------------------------------------------------------------
// Global data
//
const TCHAR szAppName[] = TEXT ("CeChat");
HINSTANCE hInst;                     // Program instance handle.

BOOL fContinue = TRUE;
HANDLE hComPort = INVALID_HANDLE_VALUE;
INT nSpeed = CBR_19200;
int nLastDev = -1;

HANDLE g_hSendEvent = INVALID_HANDLE_VALUE;
HANDLE hReadThread = INVALID_HANDLE_VALUE;

// Message dispatch table for MainWindowProc
const struct decodeUINT MainMessages[] = {
    WM_CREATE, DoCreateMain,
    WM_SIZE, DoSizeMain,
    WM_COMMAND, DoCommandMain,
    WM_SETFOCUS, DoSetFocusMain,
    WM_DESTROY, DoDestroyMain,
};
// Command Message dispatch for MainWindowProc
const struct decodeCMD MainCommandItems[] = {
    IDC_COMPORT, DoMainCommandComPort,
    ID_SENDBTN, DoMainCommandSendText,
    IDM_EXIT, DoMainCommandExit,
    IDM_ABOUT, DoMainCommandAbout,
};
//======================================================================
// Program entry point
//
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPWSTR lpCmdLine, int nCmdShow) {
    HWND hwndMain;
    HACCEL hAccel;
    MSG msg;
    int rc = 0;

    // Initialize application.
    rc = InitApp (hInstance);
    if (rc) return rc;

    // Initialize this instance.
    hwndMain = InitInstance (hInstance, lpCmdLine, nCmdShow);
    if (hwndMain == 0)
        return 0x10;

    // Load accelerator table.
    hAccel = LoadAccelerators (hInst, MAKEINTRESOURCE (ID_ACCEL));

    // Application message loop
    while (GetMessage (&msg, NULL, 0, 0)) {
        if (!TranslateAccelerator (hwndMain, hAccel, &msg)) {
            TranslateMessage (&msg);
            DispatchMessage (&msg);
        }
    }
    // Instance cleanup
    return TermInstance (hInstance, msg.wParam);
}
//----------------------------------------------------------------------
// InitApp - Application initialization
//
int InitApp (HINSTANCE hInstance) {
    WNDCLASS wc;
    INITCOMMONCONTROLSEX icex;

    // Register application main window class.
    wc.style = 0;                             // Window style
    wc.lpfnWndProc = MainWndProc;             // Callback function
    wc.cbClsExtra = 0;                        // Extra class data
    wc.cbWndExtra = 0;                        // Extra window data
    wc.hInstance = hInstance;                 // Owner handle
    wc.hIcon = NULL,                          // Application icon
    wc.hCursor = NULL;                        // Default cursor
    wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    wc.lpszMenuName =  NULL;                  // Menu name
    wc.lpszClassName = szAppName;             // Window class name

    if (RegisterClass (&wc) == 0) return 1;

    // Load the command bar common control class.
    icex.dwSize = sizeof (INITCOMMONCONTROLSEX);
    icex.dwICC = ICC_BAR_CLASSES;
    InitCommonControlsEx (&icex);
    return 0;
}
//----------------------------------------------------------------------
// InitInstance - Instance initialization
//
HWND InitInstance (HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow){
    HWND hWnd;
    INT rc;
    HANDLE hThread;

    // Save program instance handle in global variable.
    hInst = hInstance;

    // Create unnamed auto-reset event initially false.
    g_hSendEvent = CreateEvent (NULL, FALSE, FALSE, NULL);

    // Create main window.
    hWnd = CreateWindow (szAppName, TEXT ("CeChat"),
                         WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT,
                         CW_USEDEFAULT, CW_USEDEFAULT, NULL,
                         NULL, hInstance, NULL);
    // Return fail code if window not created.
    if (!IsWindow (hWnd)) return 0;

    // Create write thread. Read thread created when port opened.
    hThread = CreateThread (NULL, 0, SendThread, hWnd, 0, &rc);
    if (hThread)
        CloseHandle (hThread);
    else {
        DestroyWindow (hWnd);
        return 0;
    }
    // Standard show and update calls
    ShowWindow (hWnd, nCmdShow);
    UpdateWindow (hWnd);
    return hWnd;
}
//----------------------------------------------------------------------
// TermInstance - Program cleanup
//
int TermInstance (HINSTANCE hInstance, int nDefRC) {
    HANDLE hPort = hComPort;

    fContinue = FALSE;

    hComPort = INVALID_HANDLE_VALUE;
    if (hPort != INVALID_HANDLE_VALUE)
        CloseHandle (hPort);

    if (g_hSendEvent != INVALID_HANDLE_VALUE) {
        PulseEvent (g_hSendEvent);
        Sleep(100);
        CloseHandle (g_hSendEvent);
    }
    return nDefRC;
}
//======================================================================
// Message handling procedures for MainWindow
//----------------------------------------------------------------------
// MainWndProc - Callback function for application window
//
LRESULT CALLBACK MainWndProc (HWND hWnd, UINT wMsg, WPARAM wParam,
                              LPARAM lParam) {
    INT i;
    //
    // Search message list to see if we need to handle this
    // message.  If in list, call procedure.
    //
    for (i = 0; i < dim(MainMessages); i++) {
        if (wMsg == MainMessages[i].Code)
             return (*MainMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);
    }
    return DefWindowProc (hWnd, wMsg, wParam, lParam);
}
//----------------------------------------------------------------------
// DoCreateMain - Process WM_CREATE message for window.
//
LRESULT DoCreateMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                      LPARAM lParam) {
    HWND hwndCB, hC1, hC2, hC3;
    INT  i, j, nHeight;
    TCHAR szFirstDev[32];
    LPCREATESTRUCT lpcs;

    // Convert lParam into pointer to create structure.
    lpcs = (LPCREATESTRUCT) lParam;

    // Create a command bar.
    hwndCB = CommandBar_Create (hInst, hWnd, IDC_CMDBAR);
    CommandBar_InsertMenubar (hwndCB, hInst, ID_MENU, 0);

    // Insert the com port combo box.
    CommandBar_InsertComboBox (hwndCB, hInst, 140, CBS_DROPDOWNLIST,
                               IDC_COMPORT, 1);
    FillComComboBox (hWnd);

    // Add exit button to command bar.
    CommandBar_AddAdornments (hwndCB, 0, 0);
    nHeight = CommandBar_Height (hwndCB);

    // Create receive text window.
    hC1 = CreateWindowEx (WS_EX_CLIENTEDGE, TEXT ("edit"),
                         TEXT (""), WS_VISIBLE | WS_CHILD |
                         WS_VSCROLL | ES_MULTILINE | ES_AUTOHSCROLL |
                         ES_READONLY, 0, nHeight, lpcs->cx,
                         lpcs->cy - nHeight - 25, hWnd,
                         (HMENU)ID_RCVTEXT, hInst, NULL);
    // Create send text window.
    hC2 = CreateWindowEx (WS_EX_CLIENTEDGE, TEXT ("edit"),
                         TEXT (""), WS_VISIBLE | WS_CHILD,
                         0, lpcs->cy - 25, lpcs->cx-50, 25,
                         hWnd, (HMENU)ID_SENDTEXT, hInst, NULL);
    // Create send text window.
    hC3 = CreateWindowEx (WS_EX_CLIENTEDGE, TEXT ("button"),
                         TEXT ("&Send"), WS_VISIBLE | WS_CHILD |
                         BS_DEFPUSHBUTTON,
                         lpcs->cx-50, lpcs->cy - 25, 50, 25,
                         hWnd, (HMENU)ID_SENDBTN, hInst, NULL);
    // Destroy frame if window not created.
    if (!IsWindow (hC1) || !IsWindow (hC2) || !IsWindow (hC3)) {
        DestroyWindow (hWnd);
        return 0;
    }
    // Open a com port.
    for (i = 0; i < 3; i++) {
        SendDlgItemMessage (hwndCB, IDC_COMPORT, CB_GETLBTEXT, i,
                            (LPARAM)szFirstDev);
        j = lstrlen (szFirstDev);
        // Really bad hack to determine which is the RAW IR port
        if (InitCommunication (hWnd, szFirstDev) !=
            INVALID_HANDLE_VALUE) {
            SendDlgItemMessage (hwndCB, IDC_COMPORT, CB_SETCURSEL, i,
                                (LPARAM)szFirstDev);
            break;
        }
    }
    return 0;
}
//----------------------------------------------------------------------
// DoSizeMain - Process WM_SIZE message for window.
//
LRESULT DoSizeMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam){
    RECT rect;

    // Adjust the size of the client rect to take into account
    // the command bar height.
    GetClientRect (hWnd, &rect);
    rect.top += CommandBar_Height (GetDlgItem (hWnd, IDC_CMDBAR));

    SetWindowPos (GetDlgItem (hWnd, ID_RCVTEXT), NULL, rect.left,
                  rect.top, (rect.right - rect.left),
                  rect.bottom - rect.top - 25, SWP_NOZORDER);
    SetWindowPos (GetDlgItem (hWnd, ID_SENDTEXT), NULL, rect.left,
                  rect.bottom - 25, (rect.right - rect.left) - 50,
                  25, SWP_NOZORDER);
    SetWindowPos (GetDlgItem (hWnd, ID_SENDBTN), NULL,
                  (rect.right - rect.left) - 50, rect.bottom - 25,
                  50, 25, SWP_NOZORDER);
    return 0;
}
//----------------------------------------------------------------------
// DoFocusMain - Process WM_SETFOCUS message for window.
//
LRESULT DoSetFocusMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                        LPARAM lParam) {
    SetFocus (GetDlgItem (hWnd, ID_SENDTEXT));
    return 0;
}
//----------------------------------------------------------------------
// DoCommandMain - Process WM_COMMAND message for window.
//
LRESULT DoCommandMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                       LPARAM lParam) {
    WORD    idItem, wNotifyCode;
    HWND hwndCtl;
    INT  i;

    // Parse the parameters.
    idItem = (WORD) LOWORD (wParam);
    wNotifyCode = (WORD) HIWORD (wParam);
    hwndCtl = (HWND) lParam;

    // Call routine to handle control message.
    for (i = 0; i < dim(MainCommandItems); i++) {
        if (idItem == MainCommandItems[i].Code)
             return (*MainCommandItems[i].Fxn)(hWnd, idItem, hwndCtl,
                                              wNotifyCode);
    }
    return 0;
}
//----------------------------------------------------------------------
// DoDestroyMain - Process WM_DESTROY message for window.
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产资源在线一区| 欧美亚洲国产一区在线观看网站 | 91丝袜国产在线播放| 欧美精彩视频一区二区三区| kk眼镜猥琐国模调教系列一区二区 | 国产精品超碰97尤物18| 成人性生交大片免费| 一区二区三区在线观看欧美| 欧美视频中文一区二区三区在线观看| 日本在线不卡视频| 中文字幕二三区不卡| 欧美日韩免费在线视频| 国产精品自拍在线| 亚洲狠狠爱一区二区三区| 欧美成人r级一区二区三区| 成人国产精品免费观看视频| 亚洲婷婷在线视频| 精品成人在线观看| 欧洲色大大久久| 国产精品一品二品| 石原莉奈一区二区三区在线观看| 26uuu精品一区二区在线观看| 91视视频在线直接观看在线看网页在线看| 亚洲成人黄色影院| 亚洲特黄一级片| 久久久av毛片精品| 制服丝袜日韩国产| 91福利视频网站| a在线播放不卡| 国产一区二区免费视频| 日韩国产在线观看一区| 亚洲欧美另类小说| 久久理论电影网| 666欧美在线视频| 色婷婷亚洲综合| 成人性生交大片免费看中文| 久久99日本精品| 日韩国产高清在线| 亚洲午夜免费福利视频| 国产精品电影一区二区| 日本一区二区综合亚洲| 精品免费日韩av| 日韩免费高清视频| 欧美军同video69gay| 99久久久无码国产精品| 国产尤物一区二区在线| 免费观看久久久4p| 亚洲福中文字幕伊人影院| 中文字幕欧美国产| 欧美激情一区二区三区四区| 久久久久久久综合| 精品日韩一区二区三区免费视频| 欧美在线免费观看视频| 在线免费不卡视频| 欧美视频一区二区| 在线播放91灌醉迷j高跟美女| 欧美做爰猛烈大尺度电影无法无天| 丁香婷婷深情五月亚洲| 成人激情视频网站| 91在线看国产| 欧美午夜精品免费| 欧美日韩在线亚洲一区蜜芽| 欧美日本国产视频| 欧美一区二区三区系列电影| 欧美精品丝袜中出| 日韩精品中文字幕一区二区三区| 日韩欧美中文一区| 久久夜色精品国产噜噜av| 国产欧美久久久精品影院| 亚洲国产精品ⅴa在线观看| 国产欧美日韩综合精品一区二区| 国产精品美女视频| 亚洲精品日日夜夜| 午夜欧美一区二区三区在线播放| 日韩av中文在线观看| 韩国一区二区三区| 成人av网在线| 欧美吻胸吃奶大尺度电影| 日韩欧美成人一区| 国产精品三级av| 午夜精品久久久久影视| 国内精品免费**视频| av欧美精品.com| 欧美男男青年gay1069videost| 91精品国产日韩91久久久久久| 久久免费电影网| 一区二区三区日韩精品视频| 日本欧美韩国一区三区| 国产丶欧美丶日本不卡视频| 色天使色偷偷av一区二区| 欧美妇女性影城| 欧美激情一区二区三区在线| 亚洲成av人**亚洲成av**| 国产成人av电影在线| 欧美丝袜丝nylons| 亚洲国产精品成人久久综合一区| 午夜亚洲福利老司机| 成人黄色av电影| 日韩精品中文字幕在线一区| 最近日韩中文字幕| 国产精品中文有码| 91麻豆精品国产91久久久久久| 国产欧美中文在线| 免费在线观看精品| 欧美影院一区二区| 国产精品无遮挡| 韩国欧美国产1区| 56国语精品自产拍在线观看| 最近日韩中文字幕| 国产成人久久精品77777最新版本| 欧美日韩小视频| 亚洲天堂久久久久久久| 国产精品小仙女| 欧美成人猛片aaaaaaa| 亚洲在线一区二区三区| 成人av在线播放网址| 国产日产欧美一区| 狠狠网亚洲精品| 欧美精品一区二区高清在线观看 | 91精品麻豆日日躁夜夜躁| 亚洲视频在线观看一区| 成人做爰69片免费看网站| www亚洲一区| 九色综合狠狠综合久久| 欧美一区二区在线看| 丝瓜av网站精品一区二区 | 精品少妇一区二区三区日产乱码| 亚洲成av人综合在线观看| 欧美三级在线播放| 亚洲免费观看视频| 色琪琪一区二区三区亚洲区| 亚洲欧美视频一区| 日本高清不卡一区| 亚洲午夜精品在线| 欧美日韩一区二区三区不卡| 一区二区三区国产豹纹内裤在线| 99视频精品免费视频| 最新日韩在线视频| 色综合网色综合| 亚洲国产综合视频在线观看| 欧美日韩免费高清一区色橹橹| 一区二区日韩电影| 欧美高清你懂得| 国产麻豆视频一区| 国产精品高清亚洲| 在线观看不卡一区| 蜜桃一区二区三区在线观看| 精品免费99久久| 精品在线视频一区| 国产精品久久一级| 欧美色综合影院| 日本sm残虐另类| 国产精品三级久久久久三级| 欧美综合天天夜夜久久| 美国av一区二区| 国产精品色在线| 欧美色成人综合| 国产一区二区三区av电影| 亚洲免费在线观看视频| 欧美一区三区四区| 成人激情文学综合网| 亚洲福利一区二区| 久久女同精品一区二区| 91麻豆国产在线观看| 免费欧美在线视频| 成人欧美一区二区三区小说| 欧美日韩在线观看一区二区| 国产精品亚洲一区二区三区在线| 亚洲免费av在线| 日韩免费视频一区| 欧美在线免费视屏| 成人毛片视频在线观看| 视频一区中文字幕国产| 中文字幕一区二区三区在线播放| 精品视频全国免费看| 成人黄色网址在线观看| 久88久久88久久久| 午夜私人影院久久久久| 国产精品免费视频观看| 日韩女优制服丝袜电影| 在线观看不卡一区| av亚洲精华国产精华精华| 激情欧美一区二区| 亚洲国产综合在线| 日韩毛片视频在线看| 国产亚洲女人久久久久毛片| 欧美日韩一区二区三区四区五区 | 日韩一区二区中文字幕| 94色蜜桃网一区二区三区| 男女激情视频一区| 亚洲图片欧美视频| 亚洲人成7777| 国产精品久久久久久久久动漫| 日韩欧美精品在线视频| 欧美亚洲国产一区在线观看网站| av网站免费线看精品| 国产91高潮流白浆在线麻豆| 精品一区二区综合| 老司机免费视频一区二区| 香蕉影视欧美成人|