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

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

?? smstalk.cpp

?? 建立一個傳送和接收SMS訊息的應用程式。SMSTalk是一個對話方塊導向的、多執行緒應用程式
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

#include <windows.h>                 // For all that Windows stuff
#include <aygshell.h>                // Extended shell defines
#include <tpcshell.h>
#include <sms.h>                     // SMS functions
#include "SMSTalk.h"                 // Program-specific stuff

#define MY_MSGWAITING_STRING  TEXT("SMSMsgReadEvent")
#define EMPTY_MSG_LIST        TEXT("<No new messages>")
#define MAXMESSAGELEN         4096
//----------------------------------------------------------------------
// Global data
//
const TCHAR szAppName[] = TEXT ("SMSTalk");
const TCHAR szOtherApp[] = TEXT("Another application already \
has the SMS system open.\n\nPlease close the (email?) application");
HINSTANCE hInst;                     // Program instance handle
HWND g_hMain = 0;
HANDLE g_hReadEvent = 0; 
HANDLE g_hQuitEvent = 0;
BOOL g_fContinue = TRUE;
BOOL g_fOnSPhone = FALSE;
PMYMSG_DBASE g_pMsgDB = 0;

// Message dispatch table for MainWindowProc
const struct decodeUINT MainMessages[] = {
    WM_CREATE, DoCreateDialogMain,
    WM_INITDIALOG, DoInitDialogMain,
    WM_COMMAND, DoCommandMain,
    WM_HOTKEY, DoHotKeyMain,
    MYMSG_TELLNOTIFY, DoTellNotifyMain,
};
// Command Message dispatch for MainWindowProc
const struct decodeCMD MainCommandItems[] = {
    IDD_MSGLIST, DoMainCommandMsgList,
    IDOK, DoMainCommandExit,
    IDCANCEL, DoMainCommandExit,
    ID_CMDREPLY, DoMainCommandReplyMessage,
    ID_CMDNEW, DoMainCommandNewMessage,
    ID_CMDDEL, DoMainCommandDelMessage,
    IDM_ABOUT, DoMainCommandAbout,
};
//======================================================================
// Program entry point
// 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPWSTR lpCmdLine, int nCmdShow) {
    INT i;
    HWND hWnd;
    HANDLE hThread;
    TCHAR szDlgTemplate[32];
    SMS_HANDLE smshHandle;

    hInst = hInstance;

    // Look to see if another instance of the app is running.
    hWnd = FindWindow (NULL, szAppName);
    // See if we were launched with a command line
    if (*lpCmdLine) {
        // Check to see if app started due to notification.
        if (lstrcmp (lpCmdLine, MY_MSGWAITING_STRING) == 0) {
            if (hWnd) {
                SendMessage (hWnd, MYMSG_TELLNOTIFY, 0, 0);
            }
        } 
    } 
    // Set first instance to the foreground and exit
    if (hWnd) {
        SetForegroundWindow ((HWND)(((DWORD)hWnd) | 0x01));    
        return 0;
    }
    // See if we're running on a smartphone.
    g_fOnSPhone = OnSmartPhone ();

    // Allocate message array
    g_pMsgDB = (PMYMSG_DBASE)LocalAlloc (LPTR, sizeof (MYMSG_DBASE));
    if (g_pMsgDB == 0) {
        ErrorBox (NULL, TEXT("Out of memory"));
        return -1;
    }
    g_pMsgDB->nMsgCnt = 0;

    // Create secondary thread for timer event notification.
    // then try to open an SMS Handle for reading messages.
    g_hQuitEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
    g_hReadEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
    HRESULT hr = SmsOpen (SMS_MSGTYPE_TEXT, SMS_MODE_RECEIVE, 
                          &smshHandle, &g_hReadEvent);
    if (hr == SMS_E_RECEIVEHANDLEALREADYOPEN) {
        ErrorBox (hWnd, (LPCTSTR)szOtherApp);
        return 0;
    } else if (hr != ERROR_SUCCESS) {
        ErrorBox (hWnd, TEXT("SmsOpen fail %x %d"), hr, GetLastError());
        return 0;
    }
    hThread = CreateThread (NULL, 0, MonitorThread, (PVOID)smshHandle, 
                            0, (DWORD *)&i);
    if (hThread == 0)
        return -1;

    // Display dialog box as main window. Use different template if
    // running on the smartphone
    if (g_fOnSPhone)
        _tcscpy (szDlgTemplate, TEXT("SMSTalk_SP"));
    else
        _tcscpy (szDlgTemplate, TEXT("SMSTalk_PPC"));

    DialogBoxParam (hInstance, szDlgTemplate, NULL, MainDlgProc, 
                    (LPARAM)lpCmdLine);
    // Signal notification thread to terminate
    g_fContinue = FALSE;
    SetEvent (g_hQuitEvent);
    WaitForSingleObject (hThread, 1000);
    CloseHandle (hThread);
    CloseHandle (g_hQuitEvent);  // Don't close ReadEvent, SMS does that
    if (g_pMsgDB) LocalFree (g_pMsgDB);
    return 0;
}
//======================================================================
// Message handling procedures for main window
//----------------------------------------------------------------------
// MainDlgProc - Callback function for application window
//
BOOL CALLBACK MainDlgProc (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 FALSE;
}
//----------------------------------------------------------------------
// DoCreateDialogMain - Process WM_CREATE message for window.
//
BOOL DoCreateDialogMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                       LPARAM lParam) {

    if (!g_fOnSPhone) {
        // set up Menu bar for Pocket PC
        SHMENUBARINFO mbi;
    
        memset (&mbi, 0, sizeof(SHMENUBARINFO));
        mbi.cbSize = sizeof(SHMENUBARINFO);
        mbi.hwndParent = hWnd;
        mbi.nToolBarId = ID_MENU_PPC; // IDM_MENU; 
        mbi.hInstRes = hInst;

        // If we could not initialize the dialog box, return an error
        if (!SHCreateMenuBar(&mbi)) {
            ErrorBox (hWnd, TEXT("Menubar failed"));
            DestroyWindow (hWnd);
            return FALSE;
        }
    }
    return TRUE;
}
//----------------------------------------------------------------------
// DoInitDialogMain - Process WM_INITDIALOG message for window.
//
BOOL DoInitDialogMain (HWND hWnd, UINT wMsg, WPARAM wParam,
                       LPARAM lParam) {
    // Save the window handle
    g_hMain = hWnd;

    // Specify that the dialog box should stretch full screen
    SHINITDLGINFO shidi;
    memset (&shidi, 0, sizeof(shidi));
    shidi.dwMask = SHIDIM_FLAGS;
    shidi.dwFlags = SHIDIF_SIZEDLG ;//SHIDIF_SIZEDLGFULLSCREEN 
    shidi.hDlg = hWnd;
    if(!SHInitDialog(&shidi))
        return FALSE;

    // Create menubar
    SHMENUBARINFO mbi;
    memset (&mbi, 0, sizeof(SHMENUBARINFO));
    mbi.cbSize = sizeof(SHMENUBARINFO);
    mbi.hwndParent = hWnd;
    if (g_fOnSPhone) 
        mbi.nToolBarId = ID_MENU_SP;
    else
        mbi.nToolBarId = ID_MENU_PPC; 
    mbi.hInstRes = hInst;

    // If we could not initialize the dialog box, return an error
    if (!SHCreateMenuBar(&mbi)) {
        ErrorBox (hWnd, TEXT("Menubar failed"));
        DestroyWindow (hWnd);
        return FALSE;
    }

    // This is only needed on the smartphone
    if (g_fOnSPhone) {
        // Override back key since we have an edit control 
        SendMessage (SHFindMenuBar (hWnd), SHCMBM_OVERRIDEKEY, VK_TBACK,
                     MAKELPARAM (SHMBOF_NODEFAULT | SHMBOF_NOTIFY, 
                                 SHMBOF_NODEFAULT | SHMBOF_NOTIFY));
    }
    // set the title bar
    SHSetNavBarText (hWnd, TEXT("SMS Talk"));

    SendDlgItemMessage (hWnd, IDD_MSGLIST, LB_ADDSTRING, 0, 
                        (LPARAM)EMPTY_MSG_LIST);
    SetButtons (hWnd);
    return TRUE;
}
//----------------------------------------------------------------------
// DoCommandMain - Process WM_COMMAND message for window.
//
BOOL 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) {
            (*MainCommandItems[i].Fxn)(hWnd, idItem, hwndCtl, 
                                       wNotifyCode);
            return TRUE;
        }
    }
    return FALSE;
}
//----------------------------------------------------------------------
// DoHotKeyMain - Process WM_HOTKEY message for window.
//
BOOL DoHotKeyMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam) {

    SHSendBackToFocusWindow (wMsg, wParam, lParam); 
    return 0;
}
//----------------------------------------------------------------------
// DoTellNotifyMain - Process MYMSG_TELLNOTIFY message for window.
//
BOOL DoTellNotifyMain (HWND hWnd, UINT wMsg, WPARAM wParam, 
                       LPARAM lParam) {
    RefreshMessageList (hWnd, lParam);
    SetButtons (hWnd);
    return 0;
}
//======================================================================
// Command handler routines
//----------------------------------------------------------------------
// DoMainCommandExit - Process Program Exit command.
//
LPARAM DoMainCommandExit (HWND hWnd, WORD idItem, HWND hwndCtl, 
                          WORD wNotifyCode) {
    EndDialog (hWnd, 0);
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandDelMessage - Process Read message button.
//
LPARAM DoMainCommandDelMessage (HWND hWnd, WORD idItem, HWND hwndCtl, 
                                 WORD wNotifyCode) {
    int i, nSel;
    nSel = SendDlgItemMessage (hWnd, IDD_MSGLIST, LB_GETCURSEL,0,0);
    if (nSel != LB_ERR) {
        for (i = nSel; i < g_pMsgDB->nMsgCnt-1; i++) 
            g_pMsgDB->pMsgs[i] = g_pMsgDB->pMsgs[i+1];
        g_pMsgDB->nMsgCnt--;
        RefreshMessageList (hWnd, -1);
    }
    SetButtons (hWnd);
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandReplyMessage - Process Reply message button.
//
LPARAM DoMainCommandReplyMessage (HWND hWnd, WORD idItem, HWND hwndCtl, 
                                  WORD wNotifyCode) {
    int nSel;
    LPCTSTR lpTemplate;
    LPARAM lp = 0;
    nSel = SendDlgItemMessage (hWnd, IDD_MSGLIST, LB_GETCURSEL,0,0);
    if (nSel != LB_ERR)
        lp = (LPARAM)&g_pMsgDB->pMsgs[nSel].smsAddr;

    // Display reply dialog box.
    if (g_fOnSPhone) 
        lpTemplate = TEXT("WriteMsgDlg_SP");
    else
        lpTemplate = TEXT("WriteMsgDlg_PPC");

    DialogBoxParam (hInst, lpTemplate, NULL, WriteDlgProc, lp);
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandNewMessage - Process New message button.
//
LPARAM DoMainCommandNewMessage (HWND hWnd, WORD idItem, HWND hwndCtl, 
                                WORD wNotifyCode) {
    LPCTSTR lpTemplate;
    // Display reply dialog box.
    if (g_fOnSPhone) 
        lpTemplate = TEXT("WriteMsgDlg_SP");
    else
        lpTemplate = TEXT("WriteMsgDlg_PPC");

    DialogBoxParam (hInst, lpTemplate, NULL, WriteDlgProc, 0);
    return 0;
}
//----------------------------------------------------------------------
// DoMainCommandAbout - Process About menu item.
//

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区欧美日韩| 日韩一区二区精品在线观看| 国产综合成人久久大片91| 午夜精品123| 亚洲成a人片在线不卡一二三区| 一区二区在线观看免费视频播放 | 国产亚洲一二三区| 欧美v日韩v国产v| 精品国产人成亚洲区| 精品电影一区二区| 日韩午夜在线影院| 精品成人一区二区三区| 久久综合999| 中文成人综合网| 亚洲日本在线a| 亚洲国产精品久久人人爱| 亚洲高清一区二区三区| 日韩在线a电影| 久久99最新地址| 国产69精品久久777的优势| 成人免费毛片aaaaa**| 91小视频在线免费看| 欧美日免费三级在线| 日韩一区二区电影在线| 欧美精品一区二区蜜臀亚洲| 国产清纯白嫩初高生在线观看91 | 亚洲欧美日韩久久| 亚洲人xxxx| 色拍拍在线精品视频8848| 日本黄色一区二区| 在线不卡免费欧美| 欧美精品一区二区三区很污很色的| 久久品道一品道久久精品| 国产精品你懂的| 亚洲一区在线视频观看| 蜜臀精品一区二区三区在线观看| 国产麻豆精品95视频| av成人动漫在线观看| 欧美日韩卡一卡二| 久久一区二区三区国产精品| 日韩伦理av电影| 免费一级欧美片在线观看| 国产高清久久久| 91福利国产成人精品照片| 日韩欧美第一区| 成人免费在线观看入口| 日韩国产欧美视频| 成人av免费在线| 欧美人体做爰大胆视频| 国产色91在线| 天天影视涩香欲综合网| 成人一区二区视频| 欧美日韩国产精选| 久久久久久电影| 婷婷六月综合亚洲| a在线播放不卡| 精品国产一区二区三区av性色| 国产精品国产三级国产aⅴ入口| 日韩中文字幕区一区有砖一区| 国产xxx精品视频大全| 欧美日韩免费一区二区三区视频| 国产视频一区二区在线观看| 亚洲已满18点击进入久久| 国产成人亚洲综合a∨婷婷| 欧美精品粉嫩高潮一区二区| 中文字幕av资源一区| 免费观看成人鲁鲁鲁鲁鲁视频| 91一区二区在线| 国产亚洲午夜高清国产拍精品| 亚洲成人一二三| 91亚洲永久精品| 国产日韩欧美精品电影三级在线 | 欧美精品久久久久久久久老牛影院| 国产日产欧美一区二区视频| 免费高清成人在线| 欧美视频中文一区二区三区在线观看| 国产亚洲精久久久久久| 日本人妖一区二区| 欧洲av在线精品| 亚洲视频香蕉人妖| 成人听书哪个软件好| 精品国产乱码久久久久久夜甘婷婷 | 2022国产精品视频| 日韩精品一级二级| 欧洲精品一区二区三区在线观看| 国产女同性恋一区二区| 精品一区二区免费在线观看| 欧美日韩国产综合一区二区 | 亚洲国产日韩在线一区模特| 99久久国产综合精品女不卡| 国产校园另类小说区| 精品无码三级在线观看视频| 欧美一三区三区四区免费在线看| 亚洲最大色网站| 91久久精品网| 亚洲精品五月天| 色域天天综合网| 亚洲欧美日韩系列| 一本久道久久综合中文字幕| 亚洲欧洲日韩在线| 99视频精品全部免费在线| 国产精品国产三级国产有无不卡| 国产999精品久久久久久绿帽| 久久久久久亚洲综合| 国产乱码精品一区二区三区五月婷 | 日韩欧美国产不卡| 美腿丝袜亚洲三区| 欧美成人高清电影在线| 九九**精品视频免费播放| 日韩欧美中文字幕一区| 久久精品久久综合| 欧美电影免费观看高清完整版在线| 蜜臀精品一区二区三区在线观看| 欧美成人午夜电影| 国精产品一区一区三区mba视频 | 日韩欧美综合一区| 激情小说欧美图片| 久久精品在线观看| 成人国产精品免费观看| 亚洲免费av网站| 欧美性受xxxx| 日韩精品亚洲专区| 51久久夜色精品国产麻豆| 老鸭窝一区二区久久精品| 久久先锋影音av鲁色资源网| 国产黑丝在线一区二区三区| 国产精品成人一区二区艾草| 色婷婷一区二区三区四区| 亚洲第一精品在线| 日韩欧美在线网站| 粉嫩av一区二区三区| 亚洲免费观看高清完整版在线| 欧美日韩国产一级二级| 老司机免费视频一区二区三区| 精品国产不卡一区二区三区| 成人一级视频在线观看| 夜夜揉揉日日人人青青一国产精品| 欧美日韩三级一区二区| 蜜桃av一区二区在线观看| 国产欧美视频在线观看| 在线这里只有精品| 麻豆国产精品官网| 国产精品二三区| 正在播放一区二区| 国产成人免费视| 性久久久久久久| 久久久国产一区二区三区四区小说 | 国产精品久久久久久久久免费樱桃| 色综合天天综合网天天狠天天| 日韩国产欧美在线播放| 欧美激情综合在线| 欧美日韩高清一区| 国产伦精品一区二区三区在线观看| 亚洲视频一区二区免费在线观看| 欧美精品vⅰdeose4hd| 粉嫩av一区二区三区粉嫩| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲国产一区二区视频| 日韩av在线播放中文字幕| 国产欧美一区二区三区在线老狼| 在线视频你懂得一区二区三区| 久久国产精品免费| 亚洲一级二级在线| 国产视频一区在线观看| 欧美人与禽zozo性伦| 丁香天五香天堂综合| 蜜臀久久99精品久久久画质超高清| 国产精品人成在线观看免费| 91精品在线一区二区| 91丨九色丨尤物| 国产精品18久久久久久久久| 亚洲成人综合在线| 国产精品不卡在线| 久久综合久久99| 欧美日韩精品一区二区三区四区| 成人网在线免费视频| 久久99精品久久久久久| 亚洲国产精品久久艾草纯爱| 国产精品网站在线观看| 精品久久免费看| 在线播放国产精品二区一二区四区| 成人av免费网站| 国产盗摄视频一区二区三区| 秋霞午夜鲁丝一区二区老狼| 亚洲精品乱码久久久久久| 亚洲国产精品成人综合色在线婷婷 | 亚洲成人黄色影院| 亚洲人成伊人成综合网小说| 国产日产欧美一区| 精品久久99ma| 欧美一区二区三区日韩视频| 欧美最猛黑人xxxxx猛交| 99精品视频在线观看免费| 国产+成+人+亚洲欧洲自线| 韩国精品久久久| 精品影视av免费| 秋霞电影网一区二区| 午夜电影网一区| 午夜精品久久久久久久久久| 亚洲一区二区在线免费看|