亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
9191久久久久久久久久久| 欧美日韩高清一区二区| 99国产欧美另类久久久精品| 日韩午夜电影av| 香蕉久久夜色精品国产使用方法| 91欧美一区二区| 亚洲国产成人午夜在线一区| 天天色综合天天| 日韩欧美在线观看一区二区三区| 亚洲成人一区二区在线观看| 一本色道久久加勒比精品| 亚洲免费观看高清完整版在线观看熊| www.视频一区| 午夜av一区二区三区| 欧美日韩激情一区二区三区| 亚洲电影一区二区| 欧美日韩美少妇| 日日欢夜夜爽一区| 欧美一区二视频| 久久99国产精品久久99| 精品国产一区二区三区忘忧草 | 日本一区二区免费在线观看视频| 国产91精品在线观看| 国产精品高潮呻吟久久| 91啪九色porn原创视频在线观看| 一区二区三区在线观看视频| 欧美影视一区在线| 麻豆国产欧美日韩综合精品二区| 国产亚洲精品久| 91天堂素人约啪| 国产精品免费丝袜| 免费高清在线视频一区·| 午夜精品久久久| 精品亚洲国内自在自线福利| 国产精品一二三四| 欧美色中文字幕| 欧美日韩夫妻久久| 欧美一级二级三级蜜桃| 亚洲人精品一区| 激情欧美一区二区三区在线观看| 99精品久久久久久| 欧美精品vⅰdeose4hd| 中文字幕不卡的av| 免费看欧美女人艹b| 色又黄又爽网站www久久| 精品久久久久久久久久久久久久久| 亚洲天堂精品在线观看| 日本少妇一区二区| 欧美日韩激情一区二区三区| 欧美午夜影院一区| 久久精品日产第一区二区三区高清版| 亚洲美女视频在线| 91官网在线免费观看| 99久久综合精品| 精品午夜一区二区三区在线观看| 亚洲图片激情小说| 国产视频一区不卡| 日韩一级精品视频在线观看| 色88888久久久久久影院按摩 | 久久99精品国产.久久久久久| 激情久久五月天| 日韩精品一区二区在线| 激情欧美一区二区三区在线观看| 欧美一区二区免费观在线| 免费人成网站在线观看欧美高清| 欧美在线观看一二区| 精品一区二区成人精品| 亚洲精品一区二区三区99| 大白屁股一区二区视频| 午夜视频久久久久久| 日本成人超碰在线观看| 国产午夜精品一区二区| 91视频免费观看| 成人av在线网站| 成人国产精品视频| 成人性生交大片免费| 国产馆精品极品| 丁香激情综合国产| 国产精品99久久久久久似苏梦涵 | 五月婷婷激情综合网| 亚洲激情图片小说视频| 一区二区三区四区在线| 亚洲国产日韩a在线播放| 亚洲第一狼人社区| 视频一区二区中文字幕| 久久99国产精品免费网站| 国产在线日韩欧美| 国产不卡在线播放| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 高清久久久久久| 粉嫩欧美一区二区三区高清影视| 成人av资源站| 色综合天天综合网天天狠天天| 一本在线高清不卡dvd| 欧美日韩精品福利| 欧美大片在线观看一区| 欧美激情一区二区在线| 一区二区三区四区蜜桃| 午夜久久久久久久久久一区二区| 免费在线成人网| 国产乱码精品一区二区三区av| 成人av资源网站| 欧美精品丝袜中出| 久久久久99精品国产片| 国产精品午夜电影| 亚洲二区视频在线| 国产乱妇无码大片在线观看| 99久久99久久精品国产片果冻| 色狠狠av一区二区三区| 欧美喷水一区二区| 精品国产一区二区亚洲人成毛片| 色综合久久中文综合久久97 | 亚洲妇熟xx妇色黄| 香蕉影视欧美成人| 日韩中文字幕1| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区二区视频在线播放| 色94色欧美sute亚洲线路二| 欧美日韩激情一区| 久久综合精品国产一区二区三区 | 亚洲视频免费在线观看| 亚洲二区在线观看| 日本不卡在线视频| 国产毛片一区二区| 色诱视频网站一区| 日韩欧美中文字幕精品| 国产欧美日韩综合| 秋霞午夜av一区二区三区| 91免费小视频| 欧美变态tickling挠脚心| 久久久久久影视| 亚洲人成精品久久久久久 | 欧美一三区三区四区免费在线看 | 亚洲天堂福利av| 国产欧美日韩另类一区| 自拍偷自拍亚洲精品播放| 婷婷国产在线综合| 国内精品国产成人国产三级粉色| 精品国内片67194| 国产一区二区福利视频| 欧美日韩一卡二卡| 日韩精品最新网址| 亚洲丰满少妇videoshd| 99精品视频在线观看| 欧美变态tickling挠脚心| 亚洲va欧美va人人爽| 成人一区二区视频| 久久这里只有精品6| 亚洲一区在线观看网站| 91亚洲精品一区二区乱码| 26uuu精品一区二区| 日本最新不卡在线| 在线精品国精品国产尤物884a| 中文乱码免费一区二区| 国产精品一区在线观看你懂的| 欧美理论片在线| 亚洲黄色片在线观看| 国产91精品在线观看| 国产亚洲美州欧州综合国| 日韩成人一级大片| av亚洲精华国产精华精华| 国产亚洲成aⅴ人片在线观看| 亚洲va中文字幕| 欧美影视一区在线| 日韩一区精品视频| 欧美一级国产精品| 成人免费视频一区| 久久久高清一区二区三区| 国产伦理精品不卡| 国产欧美1区2区3区| 91久色porny | 麻豆精品视频在线观看视频| 91精品国产入口| 激情综合网最新| 国产精品久久久久久久久久免费看 | 久久66热偷产精品| 精品国产91乱码一区二区三区 | 亚洲.国产.中文慕字在线| 91丨九色丨尤物| 亚洲天堂成人在线观看| 欧洲精品在线观看| 国产麻豆午夜三级精品| 婷婷丁香激情综合| 国产精品一区二区在线看| 在线观看av一区二区| 五月综合激情婷婷六月色窝| 成人av午夜影院| 欧美精品一区在线观看| 久久丁香综合五月国产三级网站| 久久色在线观看| 粉嫩高潮美女一区二区三区| 亚洲美女偷拍久久| 在线一区二区视频| 免费的成人av| 久久综合国产精品| 色综合天天性综合| 亚洲欧美日韩成人高清在线一区| 午夜国产不卡在线观看视频| ...xxx性欧美| 国产精品第四页|