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

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

?? icontact.cpp

?? This code is Address book code for Windows Mobile. This source code support windows mobile 5.0 over.
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// iContact.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "iContact.h"
#include "Settings.h"
#include "ListData.h"
#include "ListDataCallLog.h"
#include "ListDataPoom.h"
#include "GraphicFunctions.h"
#include "PhoneUtils.h"
#include "Titlebar.h"

//TODO: fix memory leak when updating contact pictures

//-----------------------------------------------------------------------------
// Global data
//
HINSTANCE   hInst;                     // Program instance handle

Settings *  pSettings = NULL;
ListData *  pListData = NULL;

ScreenType  stScreenType = stList;
int         nCurrentTab = 2;

int		    ListHeight = 0;
int         AverageItemHeight = DEFAULT_ITEM_HEIGHT;
int         StartPosition[MAX_LIST_ITEMS];
int         GroupPosition[ALPHABET_MAX_SIZE];
POINT       ptMouseDown = { -1, -1 };

// Graphic
RECT		rScreen;
int         nScreenHeight;
RECT        rTitlebar;
RECT        rHeader;
RECT		rMenubar;
RECT		rList;
RECT        rContent;
int         rListHeight;

// UI Element Sizes. These can't be static because
// of different DPI devices
int         TitlebarHeight = TITLEBAR_HEIGHT;
int         DefaultItemHeight = DEFAULT_ITEM_HEIGHT;
int         DefaultGroupHeight = DEFAULT_GROUP_HEIGHT;
int         HeaderHeight = HEADER_HEIGHT;
int         HeaderClickHeight = HEADER_CLICK_HEIGHT;
int         MenuBarHeight = MENU_BAR_HEIGHT;
int         MenuBarIconWidth = MENU_BAR_ICON_WIDTH;

int         TitlebarFontSize = TITLEBAR_FONT_SIZE;
int	        ItemFontSize = ITEM_FONT_SIZE;
int	        ItemSecondaryFontSize = ITEM_SECONDARY_FONT_SIZE;
int	        KeyboardFontSize = KEYBOARD_FONT_SIZE;
int	        ItemDetailsFontSize = ITEM_DETAILS_FONT_SIZE;
int         ItemDetailsPictureSize = ITEM_DETAILS_PICTURE_SIZE;
int         ItemDetailsPadding = ITEM_DETAILS_PADDING;
int	        GroupItemFontSize = GROUP_ITEM_FONT_SIZE;
int	        ListIndicatorFontSize = LIST_INDICATOR_FONT_SIZE;

int	        ListItemIndent = LIST_ITEM_INDENT;
int	        ListGroupItemIndent = LIST_GROUP_ITEM_INDENT;
int	        ListSeparatorHeight = LIST_SEPARATOR_HEIGHT;

// Fonts
HFONT       TitlebarFont;
HFONT		PrimaryListFont;
HFONT		SecondaryListFont;
HFONT		GroupFont;
HFONT		ItemDetailsFont;
HFONT		ListIndicatorFont;
HFONT		KeyboardFont;

// Screen buffers
HDC         hdcMem = NULL;
HBITMAP		hbmMem = NULL;
HDC         hdcTmp = NULL;
HBITMAP		hbmTmp = NULL;
HDC			hdcSkin = NULL;
HBITMAP		hbmSkin = NULL;
HDC         hdcPage1 = NULL;
HBITMAP     hbmPage1 = NULL;
HDC         hdcPage2 = NULL;
HBITMAP     hbmPage2 = NULL;

// Scrolling
bool		bDragging = false;
bool		bScrolling = false;
int			Scrolled = 0;
int         ListScrolled = 0;
int			LastX;
int			LastY;
int			tStartTime;
int			tEndTime;
double		Velocity = 0;
int         nKeyRepeatCount = 0;

// Scroll To
DWORD       Scroll_StartTime = 0;
double		Scroll_TimeCounter = 0.0;
int 		Scroll_StartPosition = 0;
int 		Scroll_Change = 0;
double		Scroll_Duration = 0.0;

// Screen Transition
DWORD       dwTransitionStart = 0;
double      dTransitionPct = 0.0;
int         nTransitionDuration = 0;
bool        bTransitioning = false;
TransitionType trTransitionType = ttSlideLeft;

// Popup window
bool        bDisplayingPopup = false;
PopupType   ptPopupType = ptKeyboard;

// Keyboard Rows/Columns
TCHAR       alphabet[ALPHABET_MAX_SIZE];
int         nKeyboardLetters = 26;
int         nKeyboardRows = 0;
int         nKeyboardCols = 0;
int		    GroupWidth = 0;     // Keyboard group width
int		    GroupHeight = 0;    // Keyboard group height



// Message dispatch table for MainWindowProc
const struct decodeUINT MainMessages[] = {
    WM_PAINT, DoPaintMain,
    WM_DESTROY, DoDestroyMain,
    WM_ACTIVATE, DoActivate,
    WM_SIZE, DoSize,
    WM_LBUTTONDOWN, DoLButtonDown,
    WM_MOUSEMOVE, DoMouseMove,
    WM_LBUTTONUP, DoLButtonUp,
    WM_TIMER, DoTimer,
    WM_KEYDOWN, DoKeyDown,
    WM_COMMAND, DoCommand,
    WM_TITLEBAR, DoTitlebarCallback,
};


//=============================================================================
//
// Program entry point
//
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPWSTR lpCmdLine, int nCmdShow) {
    MSG msg;
    HWND hwndMain;

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

    // Application message loop
    while (GetMessage (&msg, NULL, 0, 0)) {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
    // Instance cleanup
    return TermInstance (hInstance, msg.wParam);
}
//-----------------------------------------------------------------------------
// InitInstance - Instance initialization
//
HWND InitInstance (HINSTANCE hInstance, LPWSTR lpCmdLine, int nCmdShow){
    WNDCLASS wc;
    HWND hWnd;

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

#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
    // If Windows Mobile, allow only one instance of the application.
    hWnd = FindWindow (SZ_APP_NAME, NULL);
    if (hWnd) {
        SetForegroundWindow ((HWND)(((DWORD)hWnd) | 0x01));   
        ParseCommandLine(hWnd, lpCmdLine);
        return 0;
    }
#endif

    // 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 = LoadCursor (NULL, IDC_ARROW);// Default cursor
    wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
    wc.lpszMenuName =  NULL;                  // Menu name
    wc.lpszClassName = SZ_APP_NAME;         // Window class name

    if (RegisterClass (&wc) == 0) return 0;
    // Create main window.
    hWnd = CreateWindowEx(WS_EX_NODRAG,       // Ex Style
                         SZ_APP_NAME,         // Window class
                         SZ_APP_NAME,         // Window title
                         WS_SYSMENU,          // Style flags
                                              // don't use WS_VISIBLE.
                                              // Why not? It causes an "error report"
                                              // Why? I don't know.
                         CW_USEDEFAULT,       // x position
                         CW_USEDEFAULT,       // y position
                         CW_USEDEFAULT,       // Initial width
                         CW_USEDEFAULT,       // Initial height
                         NULL,                // Parent
                         NULL,                // Menu, must be null
                         hInstance,           // Application instance
                         NULL);               // Pointer to create
                                              // parameters
    // Return fail code if window not created.
    if (!IsWindow (hWnd)) return 0;

    // Initialize COM libraries (for POOM)
    if (FAILED(CoInitializeEx(NULL, 0)))
        return 0;

    // Additional initialization

    // Perform DPI adjustments
    HDC hdc = GetDC(hWnd);
    int dpi = ::GetDeviceCaps(hdc, LOGPIXELSX);
    if (dpi > DEFAULT_DPI) {
        TitlebarHeight = MulDiv(TitlebarHeight, dpi, DEFAULT_DPI);
        DefaultItemHeight = MulDiv(DefaultItemHeight, dpi, DEFAULT_DPI);
        DefaultGroupHeight = MulDiv(DefaultGroupHeight, dpi, DEFAULT_DPI);
        HeaderHeight = MulDiv(HeaderHeight, dpi, DEFAULT_DPI);
        HeaderClickHeight = MulDiv(HeaderClickHeight, dpi, DEFAULT_DPI);
        MenuBarHeight = MulDiv(MenuBarHeight, dpi, DEFAULT_DPI);
        MenuBarIconWidth = MulDiv(MenuBarIconWidth, dpi, DEFAULT_DPI);

        TitlebarFontSize = MulDiv(TitlebarFontSize, dpi, DEFAULT_DPI);
        ItemFontSize = MulDiv(ItemFontSize, dpi, DEFAULT_DPI);
        ItemSecondaryFontSize = MulDiv(ItemSecondaryFontSize, dpi, DEFAULT_DPI);
        KeyboardFontSize = MulDiv(KeyboardFontSize, dpi, DEFAULT_DPI);
        ItemDetailsFontSize = MulDiv(ItemDetailsFontSize, dpi, DEFAULT_DPI);
        ItemDetailsPictureSize = MulDiv(ItemDetailsPictureSize, dpi, DEFAULT_DPI);
        ItemDetailsPadding = MulDiv(ItemDetailsPadding, dpi, DEFAULT_DPI);
        GroupItemFontSize = MulDiv(GroupItemFontSize, dpi, DEFAULT_DPI);
        ListIndicatorFontSize = MulDiv(ListIndicatorFontSize, dpi, DEFAULT_DPI);

        ListItemIndent = MulDiv(ListItemIndent, dpi, DEFAULT_DPI);
        ListGroupItemIndent = MulDiv(ListGroupItemIndent, dpi, DEFAULT_DPI);
        ListSeparatorHeight = MulDiv(ListSeparatorHeight, dpi, DEFAULT_DPI);
    }

    // Initialize titlebar callbacks
    InitTitlebar(hWnd);

    // Create fonts
    TitlebarFont = BuildFont(TitlebarFontSize, FALSE, FALSE);
	PrimaryListFont = BuildFont(ItemFontSize, FALSE, FALSE);
	SecondaryListFont = BuildFont(ItemSecondaryFontSize, TRUE, FALSE);
	ItemDetailsFont = BuildFont(ItemDetailsFontSize, FALSE, FALSE);
	GroupFont = BuildFont(GroupItemFontSize, TRUE, FALSE);
    ListIndicatorFont = BuildFont(ListIndicatorFontSize, TRUE, FALSE);
	KeyboardFont = BuildFont(KeyboardFontSize, TRUE, FALSE);

    // Create data lists
    pSettings = new Settings();
    SwitchTab(hWnd, 2);
    InitSurface(hWnd);

    // Standard show and update calls
    ShowWindow (hWnd, nCmdShow);
    UpdateWindow (hWnd);

    ParseCommandLine(hWnd, lpCmdLine);

    return hWnd;
}

//-----------------------------------------------------------------------------
// TermInstance - Program cleanup
//
int TermInstance (HINSTANCE hInstance, int nDefRC) {

    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 < ARRAYSIZE(MainMessages); i++) {
        if (wMsg == MainMessages[i].Code)
            return (*MainMessages[i].Fxn)(hWnd, wMsg, wParam, lParam);
    }
    return DefWindowProc (hWnd, wMsg, wParam, lParam);
}

//-----------------------------------------------------------------------------
// DoPaintMain - Process WM_PAINT message for window.
//
LRESULT DoPaintMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
                     LPARAM lParam) {

    PAINTSTRUCT ps;
    RECT rect;
    HDC hdc;
    
    int rScreenWidth = rScreen.right - rScreen.left;
    int rScreenHeight = rScreen.bottom - rScreen.top;   

    hdc = BeginPaint (hWnd, &ps); 

    // rect is the region that needs to be painted
    rect = ps.rcPaint;

    if (bTransitioning) {
        RECT rContent = rScreen;

        if (trTransitionType == ttSlideRight 
            || trTransitionType == ttSlideLeft) {

            rContent.top = rTitlebar.bottom;
            int rHeight = rContent.bottom - rContent.top;
            int width1 = (int)(rScreenWidth * dTransitionPct);
            if (trTransitionType == ttSlideLeft)
                width1 = rScreenWidth - width1;
            int width2 = rScreenWidth - width1;

            BitBlt(hdcMem, rContent.left, rContent.top, width1, rHeight, 
                hdcPage1, width2, rContent.top, SRCCOPY);

            BitBlt(hdcMem, width1, rContent.top, width2, rHeight,
                hdcPage2, rContent.left, rContent.top, SRCCOPY);

            BitBlt(hdcMem, rTitlebar.left, rTitlebar.top, 
                rScreenWidth, rTitlebar.bottom - rTitlebar.top,
                hdcPage1, rTitlebar.left, rTitlebar.top, SRCCOPY);
        }

        else if (trTransitionType == ttKeyboardExpand 
            || trTransitionType == ttKeyboardShrink) {

            double cubic = pow(dTransitionPct - 1, 3) + 1;
            if (trTransitionType == ttKeyboardShrink)
                cubic = 1 - cubic;

            int nKbWidth = (int)(rScreenWidth * cubic);
            int nKbHeight = (int)(rScreenHeight * cubic);

            BitBlt(hdcMem, rScreen.left, rScreen.top, 
                rScreenWidth, rScreenHeight, 
                hdcPage1, rScreen.left, rScreen.top, SRCCOPY);

            // for faster rendering, don't stretch or alpha-ize the keyboard
            if (pSettings->doFastGraphics) {
                BitBlt(hdcMem, rScreen.right - nKbWidth, 
                    rScreen.bottom - nKbHeight, nKbWidth, nKbHeight,
                    hdcPage2, 0, 0, SRCCOPY);
            }
            else {
                BltAlpha(hdcMem, rScreen.right - nKbWidth, 
                    rScreen.bottom - nKbHeight, nKbWidth, nKbHeight,
                    hdcPage2, 0, 0, rScreenWidth, rScreenHeight, 220);
            }
        }
    }

    // not transitioning
    else {
        DrawScreenOn(hdcMem, stScreenType, hdcTmp, rect, Scrolled);

        if (bDisplayingPopup) {
            switch (ptPopupType) {
                case ptKeyboard:
	                // draw the keyboard
	                DrawKeyboardOn(hdcTmp, rScreen);
                    BltAlpha(hdcMem, rScreen.left, rScreen.top, rScreenWidth, rScreenHeight,
	                    hdcTmp, 0, 0, rScreenWidth, rScreenHeight, 220);
                    break;
            }
        }
    }

    // Transfer everything to the actual screen
    BitBlt(hdc, rect.left, rect.top, rect.right - rect.left,
        rect.bottom - rect.top, hdcMem, rect.left, rect.top, SRCCOPY);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产人成亚洲区| 日韩欧美三级在线| 男女性色大片免费观看一区二区 | 精品处破学生在线二十三| 韩国成人在线视频| 亚洲私人影院在线观看| 91精品国产欧美一区二区成人 | 综合中文字幕亚洲| 成人性生交大合| 亚洲国产日韩av| 久久久噜噜噜久噜久久综合| 99视频精品在线| 美女性感视频久久| 欧美激情一区二区在线| 欧美日韩亚洲综合在线 | 99re这里都是精品| 午夜精品在线视频一区| 日韩精品一区二区三区老鸭窝| 国产成人av电影在线播放| 亚洲成人福利片| 国产欧美日韩不卡| 日韩欧美一级特黄在线播放| 久久国产精品色| 亚洲一区中文日韩| 久久毛片高清国产| 4438x成人网最大色成网站| 国产精品一区二区三区网站| 亚洲成人av电影在线| 欧美国产日本视频| 欧美va亚洲va| 欧美中文字幕不卡| 久久66热偷产精品| 亚洲成人一区在线| 伊人开心综合网| 中文一区二区完整视频在线观看| 日韩一区二区三| 欧美日韩一区二区三区高清 | 亚洲h在线观看| 国产精品久久久久久久久搜平片| 日韩欧美激情在线| 欧美日韩国产小视频在线观看| 成人午夜视频网站| 成人免费视频视频在线观看免费| 免费成人深夜小野草| 五月天婷婷综合| 一区二区免费看| 一区二区三区精品视频在线| 国产欧美日韩亚州综合| 久久亚洲精品小早川怜子| 91精品国产综合久久蜜臀 | 成人av网址在线观看| 激情综合五月婷婷| 久久精品国产亚洲高清剧情介绍 | 国产一区二区三区美女| 蜜桃视频在线观看一区二区| 青娱乐精品在线视频| 性做久久久久久久久| 亚洲综合在线五月| 亚洲一区电影777| 中文字幕日韩欧美一区二区三区| 国产日本欧美一区二区| 久久久久久免费毛片精品| 久久综合九色综合欧美亚洲| 精品三级av在线| 精品国产精品一区二区夜夜嗨| 日韩精品一区二| 国产亚洲一区二区三区四区| 久久综合久久综合久久综合| 日韩欧美一级精品久久| 日韩精品成人一区二区在线| 婷婷开心激情综合| 一区二区三区日韩欧美| 亚洲线精品一区二区三区| 亚洲一区二区三区影院| 免费在线欧美视频| 五月婷婷久久丁香| 激情综合色综合久久综合| 蜜臀久久99精品久久久久宅男| 精品在线免费视频| 国产一区二区91| 成人国产一区二区三区精品| 欧美日韩一区二区电影| 精品国产91亚洲一区二区三区婷婷| 国产亚洲美州欧州综合国| 一区二区三区丝袜| 国产成人精品影视| 欧美日韩一区二区电影| 国产精品乱码一区二区三区软件| 亚洲成人在线网站| 懂色av一区二区三区免费看| 欧美一区二区网站| 亚洲视频在线观看一区| 久久99精品网久久| 91国产丝袜在线播放| 久久久精品2019中文字幕之3| 亚洲一区二区四区蜜桃| 成人激情黄色小说| 欧美精品一区二区三区在线播放| 亚洲一区二区三区四区在线免费观看| 久久99国内精品| 欧美狂野另类xxxxoooo| 国产精品电影一区二区| 精品一区二区三区免费播放| 欧美在线影院一区二区| 国产精品免费看片| 国产在线一区二区| 欧美精品v国产精品v日韩精品| 1000精品久久久久久久久| 国产一区欧美二区| 精品少妇一区二区三区在线播放| 亚洲在线免费播放| 色婷婷亚洲婷婷| 中文字幕日本不卡| 成人激情黄色小说| 国产日韩精品一区二区三区| 麻豆国产精品777777在线| 欧美精品一级二级三级| 一区二区在线观看免费| 丁香婷婷综合激情五月色| 2欧美一区二区三区在线观看视频| 亚洲第一av色| 欧美日精品一区视频| 亚洲欧美日本韩国| 91麻豆免费观看| 中文字幕日韩一区| 91丨porny丨最新| 国产精品久久一级| 成人av资源在线| 中文字幕亚洲在| 成人激情校园春色| 综合色中文字幕| 91网址在线看| 亚洲摸摸操操av| 色综合久久中文综合久久97 | 久久国产乱子精品免费女| 制服丝袜中文字幕一区| 亚洲第一激情av| 欧美人成免费网站| 日本女优在线视频一区二区| 7777精品伊人久久久大香线蕉的| 欧美午夜一区二区三区免费大片| 日韩理论片网站| 日本高清成人免费播放| 一个色妞综合视频在线观看| 欧美日韩国产天堂| 日韩电影免费一区| 欧美精品一区在线观看| 国产福利一区二区三区视频 | 国产91清纯白嫩初高中在线观看| 国产视频在线观看一区二区三区| 夫妻av一区二区| 亚洲美女区一区| 这里只有精品免费| 国产一区二区在线观看免费| 国产视频一区在线播放| 成人av免费网站| 亚洲主播在线观看| 欧美一级国产精品| 国产99一区视频免费| 亚洲色图视频网| 欧美二区乱c少妇| 国产中文字幕精品| 亚洲免费伊人电影| 欧美一区二区视频在线观看2022| 激情都市一区二区| 亚洲美腿欧美偷拍| 91精品国产综合久久蜜臀| 国产精品99精品久久免费| 亚洲精品国产a久久久久久| 在线播放国产精品二区一二区四区| 久久激情综合网| 成人免费在线视频| 欧美一区二区三区精品| 高清不卡一区二区在线| 亚洲国产aⅴ天堂久久| 日韩精品中文字幕一区二区三区 | 日韩精品乱码av一区二区| 日本一区二区三区在线观看| 欧日韩精品视频| 精品久久久久久无| 99re亚洲国产精品| 久久99最新地址| 亚洲精品伦理在线| 精品国产凹凸成av人导航| 91蜜桃视频在线| 国内久久精品视频| 亚洲午夜久久久久久久久久久| 2021中文字幕一区亚洲| 91久久精品国产91性色tv| 激情欧美日韩一区二区| 亚洲综合色自拍一区| 久久久久9999亚洲精品| 欧美系列在线观看| 国产成人99久久亚洲综合精品| 视频一区视频二区中文| 亚洲女人****多毛耸耸8| 久久久精品国产免费观看同学| 欧美日韩国产一区二区三区地区| 丁香五精品蜜臀久久久久99网站| 日韩影院精彩在线|