• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養(yǎng)德,非澹薄無以明志,非寧靜無以致遠(yuǎn)。
            隨筆 - 397, 文章 - 0, 評(píng)論 - 196, 引用 - 0
            數(shù)據(jù)加載中……

            WINCE及MOBILE常用代碼

            對(duì)話框全屏代碼 -----在OnInitDialog函數(shù)中加入以下代碼
            m_bFullScreen = FALSE;

            // Call SHInitDialog with flags for full screen.
             SHINITDLGINFO shidi;
             
             shidi.dwMask = SHIDIM_FLAGS;
             shidi.dwFlags = SHIDIF_FULLSCREENNOMENUBAR;
             shidi.hDlg = m_hWnd;
             SHInitDialog(&shidi);
             
             // SHFullScreen fails if dialog box is not foreground.
             SetForegroundWindow();
             SHFullScreen(m_hWnd, SHFS_HIDETASKBAR | SHFS_HIDESIPBUTTON|SHFS_HIDESTARTICON);
             
             // Resize the window over the taskbar area.
             nX = GetSystemMetrics(SM_CXSCREEN);
             nY = GetSystemMetrics(SM_CYSCREEN);


            MoveWindow(0,0,nX,nY, TRUE);

            調(diào)用輸入法面板:SHSipPreference(AfxGetMainWnd()->m_hWnd, SIP_UP);      //SipShowIM(SIPF_ON);
            隱藏輸入法面板:SHSipPreference(AfxGetMainWnd()->m_hWnd, SIP_DOWN);    //SipShowIM(SIPF_OFF);


            /隱藏窗口右上角的OK按鈕和X按鈕
             ModifyStyleEx(WS_EX_CAPTIONOKBTN,WS_EX_TOPMOST,SWP_NOMOVE);//窗口右上角的OK按鈕改為X按鈕
             ModifyStyle(0,   WS_NONAVDONEBUTTON,   SWP_NOSIZE); //將X按鈕隱藏

            使用unload.exe卸載程序
            PROCESS_INFORMATION stProgressInfo;
            CreateProcess(_T("\\Windows\\unload.exe"), szUninstallBuf, NULL, NULL, NULL, 0, NULL, NULL, NULL, &stProgressInfo) ;
            szUninstallBuf這個(gè)參數(shù)必須和注冊(cè)表 HLM\SOFTWARE\APPS\下的對(duì)應(yīng)應(yīng)用的名稱一致。
            有個(gè)前提,使用這個(gè)必須是在cab中沒有指定 nouninstall這個(gè)參數(shù) 


            /*  
              #define   EWX_LOGOFF       0  
              #define   EWX_SHUTDOWN   1  
              #define   EWX_REBOOT       2           重啟  
              #define   EWX_FORCE         4  
              #define   EWX_POWEROFF   8           關(guān)機(jī)  
              */  
              extern   "C"   BOOL   ExitWindowsEx(UINT   uFlags,   DWORD   dwReason);  
              ExitWindowsEx(EWX_REBOOT,   0);   //重啟(軟重啟)  
              ExitWindowsEx(EWX_POWEROFF,   0);   //關(guān)機(jī)   


            顯示或者隱藏等待圖標(biāo) 
            //   Set   the   cursor   as   the   wait   cursor.  
              SetCursor   (LoadCursor   (NULL,   IDC_WAIT));   
              //   Hide   the   cursor.  
              SetCursor   (0);


            //獲取當(dāng)前剩余物理內(nèi)存:
             #include <windows.h>
              MEMORYSTATUS Status;
             Status.dwLength = sizeof(MEMORYSTATUS);
             GlobalMemoryStatus(&Status);
             //return Status.dwAvailPhys;

            獲取電池電量剩余百分比:
            SYSTEM_POWER_STATUS_EX stat;
            GetSystemPowerStatusEx(&stat, TRUE);
            if (stat.BatteryLifePercent > 100)
            return -1;
            else
            return stat.BatteryLifePercent;


            獲取磁盤剩余空間:
            GetDiskFreeSpaceEx(NULL,
            (PULARGE_INTEGER)&i64FreeBytesToCaller,
            (PULARGE_INTEGER)&i64TotalBytes,
            (PULARGE_INTEGER)&i64FreeBytes);

            通過GPRS連接WAP的代碼:

            HANDLE m_hConnection;

                
            // 得到正確的連接信息
                CONNMGR_DESTINATION_INFO networkDestInfo = {0};
                
            // 得到網(wǎng)絡(luò)列表
                DWORD dwEnumIndex=0;
                
            for (; ; dwEnumIndex++ )
                {
                    memset ( 
            &networkDestInfo, 0sizeof(CONNMGR_DESTINATION_INFO) );
                    
            if ( ConnMgrEnumDestinations ( dwEnumIndex, &networkDestInfo ) == E_FAIL )
                        
            break;
                    
            if(!_tcscmp(networkDestInfo.szDescription, _T("WAP")))
                        
            break;
                }

                CONNMGR_DESTINATION_INFO DestInfo 
            = {0};
                HRESULT hResult 
            = ConnMgrEnumDestinations(dwEnumIndex, &DestInfo);
                BOOL bRet 
            = FALSE;
                
            if(SUCCEEDED(hResult))
                {
                    
            // 初始化連接結(jié)構(gòu)
                    CONNMGR_CONNECTIONINFO ConnInfo;

                    ZeroMemory(
            &ConnInfo, sizeof(ConnInfo));
                    ConnInfo.cbSize 
            = sizeof(ConnInfo);
                    ConnInfo.dwParams 
            = CONNMGR_PARAM_GUIDDESTNET;
                    ConnInfo.dwFlags 
            = CONNMGR_FLAG_PROXY_HTTP | CONNMGR_FLAG_PROXY_WAP | CONNMGR_FLAG_PROXY_SOCKS4 | CONNMGR_FLAG_PROXY_SOCKS5;
                    ConnInfo.dwPriority 
            = CONNMGR_PRIORITY_HIPRIBKGND;//CONNMGR_PRIORITY_USERINTERACTIVE;
                    ConnInfo.guidDestNet = /*IID_DestNetInternet*/DestInfo.guid;
                    ConnInfo.bExclusive    
            = FALSE; 
                    ConnInfo.bDisabled 
            = FALSE;

                    DWORD dwStatus 
            = 0;
                    hResult 
            = ConnMgrEstablishConnectionSync(&ConnInfo, &m_hConnection, 100*1000&dwStatus );
                    DWORD err 
            = GetLastError();
                    
            if (SUCCEEDED(hResult))
                    {
                        
            //MessageBox(NULL,L"網(wǎng)絡(luò)連接成功",L"信息",MB_OK);
                        return TRUE;
                    }
                    
            else
                    {
                        
            //MessageBox(NULL,L"網(wǎng)絡(luò)連接失敗!!請(qǐng)檢查網(wǎng)絡(luò)狀況。",L"錯(cuò)誤",MB_OK);
                        return FALSE;
                    }
                }

            下面是封裝的一個(gè)socket類,可用在wince和wm上

             1 // TCPClient_CE.h: interface for the CTCPClient_CE class.
             2 //
             3 //////////////////////////////////////////////////////////////////////
             4 
             5 #if !defined(AFX_TCPCLIENT_CE_H__B7856B99_69E7_4868_9BA3_96152245C65E__INCLUDED_)
             6 #define AFX_TCPCLIENT_CE_H__B7856B99_69E7_4868_9BA3_96152245C65E__INCLUDED_
             7 
             8 #if _MSC_VER > 1000
             9 #pragma once
            10 #endif // _MSC_VER > 1000
            11 
            12 #include <winsock2.h>
            13 #include "yourProject.h"
            14 
            15 
            16 //定義連接斷開事件
            17 typedef void (CALLBACK* ONDISCONNECT)(CWnd*);
            18 //定義當(dāng)有數(shù)據(jù)接收事件
            19 typedef void (CALLBACK* ONREAD)(CWnd*,const char * buf,int len );
            20 //定義Socket錯(cuò)誤事件
            21 typedef void (CALLBACK* ONERROR)(CWnd*,int nErrorCode);
            22 
            23 class CTCPClient_CE  
            24 {
            25 public:
            26     CTCPClient_CE();
            27     virtual ~CTCPClient_CE();
            28 public:
            29     friend class YourApp;
            30     //打開客戶端socket
            31     bool Open(CWnd * pWnd);
            32     //關(guān)閉客戶端socket
            33     bool Close();
            34     //與服務(wù)器端建立連接
            35     bool Connect();
            36     //向服務(wù)器端發(fā)送數(shù)據(jù)
            37     bool SendDate(const char * buf , int len);
            38     bool SendData(const char * buf , int len);
            39 public:
            40     //遠(yuǎn)程主機(jī)IP地址
            41     CString     m_remoteHost;  
            42     //遠(yuǎn)程主機(jī)端口
            43     int      m_port;
            44     
            45     /*--以下客戶端通訊事件--*/
            46     //連接斷開事件,回調(diào)函數(shù)
            47     ONDISCONNECT OnDisConnect;
            48     //接收數(shù)據(jù)事件,回調(diào)函數(shù)
            49     ONREAD       OnRead;
            50     //發(fā)生錯(cuò)誤事件,回調(diào)函數(shù)
            51     ONERROR      OnError;
            52     HANDLE m_hSynMutex; //同步互斥句柄
            53 private:
            54     //通訊Socket句柄
            55     SOCKET m_socket;      
            56     //通訊線程退出事件句柄
            57     HANDLE m_exitThreadEvent; 
            58     //通訊線程句柄
            59     HANDLE m_tcpThreadHandle;
            60     //父窗口句柄
            61     CWnd * m_pOwnerWnd;   
            62 private:
            63     //通訊線程函數(shù)
            64     static DWORD SocketThreadFunc(LPVOID lparam);
            65 };
            66 
            67 #endif // !defined(AFX_TCPCLIENT_CE_H__B7856B99_69E7_4868_9BA3_96152245C65E__INCLUDED_)
            68 
            // TCPClient_CE.cpp: implementation of the CTCPClient_CE class.
            //
            //////////////////////////////////////////////////////////////////////

            #include 
            "stdafx.h"
            #include 
            "yourProject.h"
            #include 
            "TCPClient_CE.h"



            #ifdef _DEBUG
            #undef THIS_FILE
            static char THIS_FILE[]=__FILE__;
            #define new DEBUG_NEW
            #endif

            //////////////////////////////////////////////////////////////////////
            // Construction/Destruction
            //////////////////////////////////////////////////////////////////////

            //構(gòu)造函數(shù)
            CTCPClient_CE::CTCPClient_CE()
            {
                INT iRet 
            = 0;
                
            //初始化socket環(huán)境
                WSADATA wsd;

                iRet 
            = WSAStartup(MAKEWORD(2,2),&wsd);

                
            int nNetTimeout=1000;//1秒

                
            //創(chuàng)建互斥對(duì)象,默認(rèn)狀態(tài)為“未被線程擁有”
                m_hSynMutex = CreateMutex(NULL,FALSE,NULL);

               
            //創(chuàng)建線程退出事件句柄
               m_exitThreadEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
            }

            //析構(gòu)函數(shù)
            CTCPClient_CE::~CTCPClient_CE()
            {
               
            //釋放socket資源
               WSACleanup();
               
            //關(guān)閉線程退出事件句柄
               CloseHandle(m_exitThreadEvent);
               
            //關(guān)閉互斥對(duì)象
                CloseHandle(m_hSynMutex);
            }

            /*--------------------------------------------------------------------
            【函數(shù)介紹】:  此線程用于監(jiān)聽TCP客戶端通訊的事件,例如當(dāng)接收到數(shù)據(jù)、
                           連接斷開和通訊過程發(fā)生錯(cuò)誤等事件
            【入口參數(shù)】:  lparam:無類型指針,可以通過此參數(shù),向線程中傳入需要用到的資源。
                           在這里我們將CTCPClient_CE類實(shí)例指針傳進(jìn)來
            【出口參數(shù)】:  (無)
            【返回  值】:  返回值沒有特別的意義,在此我們將返回值設(shè)為0。
            ---------------------------------------------------------------------
            */
            DWORD CTCPClient_CE::SocketThreadFunc(LPVOID lparam)
            {
                CTCPClient_CE 
            *pSocket;
                
            //得到CTCPClient_CE實(shí)例指針
                pSocket = (CTCPClient_CE*)lparam;
                
            //定義讀事件集合
                fd_set fdRead;
                
            int ret;
                
            //定義事件等待時(shí)間
                TIMEVAL    aTime;
                aTime.tv_sec 
            = 1;
                aTime.tv_usec 
            = 0;
                
            while (TRUE)
                {
                    
            //收到退出事件,結(jié)束線程
                    if (WaitForSingleObject(pSocket->m_exitThreadEvent,0== WAIT_OBJECT_0)
                    {
                        
            break;
                    }
                    
            //置空fdRead事件為空
                    FD_ZERO(&fdRead);
                    
            //給客戶端socket設(shè)置讀事件
                    FD_SET(pSocket->m_socket,&fdRead);
                    
            //調(diào)用select函數(shù),判斷是否有讀事件發(fā)生
                    ret = select(0,&fdRead,NULL,NULL,&aTime);
                    
                    
            if (ret == SOCKET_ERROR)
                    {
                        
            //觸發(fā)錯(cuò)誤事件
                        pSocket->OnError(pSocket->m_pOwnerWnd,1);
                        
            //觸發(fā)連接斷開事件
                        pSocket->OnDisConnect(pSocket->m_pOwnerWnd);
                        
            //關(guān)閉客戶端socket
                        closesocket(pSocket->m_socket);
                        
            break;
                    }
                
                    
            if (ret > 0)
                    {
                        
            if (FD_ISSET(pSocket->m_socket,&fdRead))
                        {
                            
            //發(fā)生讀事件
                            char recvBuf[1024];
                            
            int recvLen;
                            ZeroMemory(recvBuf,
            1024);
                            
            //接收數(shù)據(jù)
                            recvLen = recv(pSocket->m_socket,recvBuf, 1024,0); 
                            
            if (recvLen == SOCKET_ERROR)
                            {
                                
            int iError = WSAGetLastError();
                                
            //觸發(fā)socket錯(cuò)誤事件
                                pSocket->OnError(pSocket->m_pOwnerWnd,iError);
                                
            //觸發(fā)與服務(wù)器斷開事件
                                pSocket->OnDisConnect(pSocket->m_pOwnerWnd);
                                
            //關(guān)閉客戶端socket
                                closesocket(pSocket->m_socket);
                                
            break;
                            }
                            
            else if (recvLen == 0)
                            {
                                
            //觸發(fā)與服務(wù)器端斷開事件
                                pSocket->OnDisConnect(pSocket->m_pOwnerWnd);
                                
            //關(guān)閉客戶端socket
                                closesocket(pSocket->m_socket);
                                
            break;
                            }
                            
            else
                            {
                               
            //觸發(fā)數(shù)據(jù)接收事件
                               pSocket->OnRead(pSocket->m_pOwnerWnd,recvBuf,recvLen);
                            }
                        }
                    }
                }
                
            return 0;
            }

            /*--------------------------------------------------------------------
            【函數(shù)介紹】: 用于打開客戶端socket
            【入口參數(shù)】: pWnd用于指定父窗口句柄
            【出口參數(shù)】: (無)
            【返回  值】: TRUE:打開成功;FALSE:打開失敗
            ---------------------------------------------------------------------
            */
            bool CTCPClient_CE::Open(CWnd * pWnd)
            {
               
            //復(fù)位線程退出事件
               ResetEvent(m_exitThreadEvent);
               
            //存儲(chǔ)父窗口句柄
               m_pOwnerWnd = pWnd;
               
            //創(chuàng)建TCP套接字 
               m_socket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
               
            if (m_socket == SOCKET_ERROR)
               {
                   
            return FALSE;
               }
               
            //創(chuàng)建通訊線程
               m_tcpThreadHandle = CreateThread(NULL,0,SocketThreadFunc,this,0,NULL);
               
            if (m_tcpThreadHandle == NULL)
               {
                   closesocket(m_socket);
                   
            return FALSE;
               }
               
            return TRUE;
            }


            /*--------------------------------------------------------------------
            【函數(shù)介紹】: 用于關(guān)閉客戶端socket
            【入口參數(shù)】:  (無)
            【出口參數(shù)】:  (無)
            【返回  值】: TRUE:關(guān)閉成功;FALSE:關(guān)閉失敗
            ---------------------------------------------------------------------
            */
            bool CTCPClient_CE::Close()
            {
               
            //發(fā)送通訊線程結(jié)束事件
               SetEvent(m_exitThreadEvent);
               Sleep(
            1000);
               
            //關(guān)閉Socket,釋放資源
               int err = closesocket(m_socket);
               
            if (err == SOCKET_ERROR)
               {
                   
            return FALSE;
               }
               
            return TRUE;
            }


            /*--------------------------------------------------------------------
            【函數(shù)介紹】: 用于建立與TCP服務(wù)器連接
            【入口參數(shù)】: (無)
            【出口參數(shù)】: (無)
            【返回  值】: TRUE:建立連接成功;FALSE:建立連接失敗
            ---------------------------------------------------------------------
            */
            bool CTCPClient_CE::Connect()
            {
               
            struct sockaddr_in addr;
               
            int err;

               addr.sin_family 
            = AF_INET;
               addr.sin_port 
            = htons(m_port);
               
            //此處要將雙字節(jié)轉(zhuǎn)換成單字節(jié)
               char ansiRemoteHost[255];
                ZeroMemory(ansiRemoteHost,
            255);
                WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,m_remoteHost,wcslen(m_remoteHost)
                    ,ansiRemoteHost,wcslen(m_remoteHost),NULL,NULL);

              addr.sin_addr.s_addr
            =inet_addr(ansiRemoteHost);
               
            //此時(shí)采用同步連接方式,connect直接返回成功或是失敗
               err = connect(m_socket,(struct sockaddr *)&addr,sizeof(addr));
               
            if (err == SOCKET_ERROR) 
               {
                   
            return FALSE;
               }
               DWORD Result 
            = GetLastError();
               
            //select 模型,即設(shè)置超時(shí)
            /*
               struct   timeval   timeout;  
               fd_set r; 
               FD_ZERO(&r);   
               FD_SET(m_socket, &r);   
               timeout.tv_sec = 15;   //連接超時(shí)15秒   
               timeout.tv_usec = 0;   
               int ret = select(0, 0, &r, 0, &timeout);   
               if(ret <= 0)   
               {   
                   ::closesocket(m_socket); 
                   return FALSE;   
               }  
            */

               
            //設(shè)置通訊模式為異步模式(阻塞模式)
               DWORD ul= 1;
               ioctlsocket(m_socket,FIONBIO,
            &ul);

               
            return TRUE;
            }

            /*--------------------------------------------------------------------
            【函數(shù)介紹】: 向服務(wù)器端發(fā)送數(shù)據(jù)
            【入口參數(shù)】: buf:待發(fā)送的數(shù)據(jù)
                          len:待發(fā)送的數(shù)據(jù)長度
            【出口參數(shù)】: (無)
            【返回  值】: TRUE:發(fā)送數(shù)據(jù)成功;FALSE:發(fā)送數(shù)據(jù)失敗
            ---------------------------------------------------------------------
            */
            bool CTCPClient_CE::SendDate(const char * buf , int len)
            {
                
            int nBytes = 0;
                
            int nSendBytes=0;
                
            static int Count = 0;
                Count 
            += 1;

                
            while (nSendBytes < len)
                {
                    nBytes 
            = send(m_socket,buf+nSendBytes,len-nSendBytes,0);
                    
            if (nBytes==SOCKET_ERROR )
                    {
                        DWORD Err 
            = GetLastError();
                        
            int iErrorCode = WSAGetLastError();
                    
            //    CString cs;
                    
            //    cs.Format(L"%ld",Err);
                    
            //    CString cs1;
                    
            //    cs1.Format(L"%d",Count);
                    
            //    MessageBox(NULL,cs,cs1,MB_OK);
                        
            //觸發(fā)socket的Error事件
                        OnError(m_pOwnerWnd,iErrorCode);
                        
            //觸發(fā)與服務(wù)器端斷開連接事件
                        OnDisConnect(m_pOwnerWnd);
                        
            //關(guān)閉socket
                        Close();
                        
            return FALSE;
                    }

                    nSendBytes 
            = nSendBytes + nBytes;
                    
                    
            if (nSendBytes < len)
                    {
                        Sleep(
            2000);
                    }
                } 
                
            return TRUE; 
            }
            bool CTCPClient_CE::SendData(const char * buf , int len)
            {
                
            //請(qǐng)求互斥對(duì)象
                if (WaitForSingleObject(m_hSynMutex,INFINITE) == WAIT_OBJECT_0)
                {
                    SendDate(buf,len);
                }
                
            //釋放對(duì)互斥對(duì)象的擁有權(quán)
                ReleaseMutex(m_hSynMutex);
                
            return TRUE;
            }

            上面就是封裝的socket類,類中的友元類是應(yīng)用程序類,我們?cè)赼pp中引入這個(gè)類,并在app類中實(shí)現(xiàn)它的void CALLBACK OnDisConnect(CWnd* pWnd);      //連接斷開事件處理函數(shù);void CALLBACK OnError(CWnd* pWnd,int nErrorCode);   //Socket錯(cuò)誤事件處理函數(shù);void CALLBACK OnRead(CWnd* pWnd,const char * buf,int len); //數(shù)據(jù)接收事件;上面三個(gè)方法最好都做成static方法,方便在程序中任意地方引用它。

            在Windows Mobile中最小化,顯示圖標(biāo)在任務(wù)欄上

            BOOL SampleDlg::OnCommand(WPARAM wParam, LPARAM lParam)
            {
                UINT nID = LOWORD( wParam );
                switch(nID)
                {
                    case 20:
                        {
                            this->ShowWindow(SW_SHOW);
                            return true;
                        }
                        break;
                }
                return CWnd::OnCommand(wParam,lParam);
            }

             

            當(dāng)然如果是再Windows程序中也可以用如下的方式寫:

            在WinMain函數(shù)中設(shè)置回調(diào)函數(shù)。


            int WINAPI WinMain(
                HINSTANCE hInstance,
                HINSTANCE hPrevInstance,
                LPTSTR lpCmdLine,   
                int nCmdShow
                )
            {
                g_hInst = hInstance;

                SHInitExtraControls();

                // just call a dialog box, system will handle messaging, painting, etc...
                DialogBox(hInstance,(LPCTSTR)IDD_NOTIFYMAIN, NULL,(DLGPROC)NotifyMain );
                return 0;
            }

             

            在回調(diào)函數(shù)中處理:

            LRESULT CALLBACK NotifyMain(
                HWND hDlg,
                UINT message,
                WPARAM wParam,
                LPARAM lParam
                )
            {

                  switch(message)

                {

                      case WM_COMMAND:

                        {

                             switch(LOWORD(wParam))

                             {

                                  case 10:

                                   {Your operation}

                                   Break;

                             }

                        }

                 }

            }

             

             



            不斷更新中..........................

            posted on 2009-06-26 16:00 Benjamin 閱讀(3417) 評(píng)論(4)  編輯 收藏 引用 所屬分類: PDA/PPC開發(fā)

            評(píng)論

            # re: WINCE及MOBILE常用代碼  回復(fù)  更多評(píng)論   

            請(qǐng)問一下我想系統(tǒng)掛起后10分鐘,自動(dòng)關(guān)機(jī),有什么好辦法
            2009-09-03 09:37 | yudong

            # re: WINCE及MOBILE常用代碼  回復(fù)  更多評(píng)論   

            做個(gè)記號(hào)
            2009-11-27 11:17 | jungzhang

            # re: WINCE及MOBILE常用代碼  回復(fù)  更多評(píng)論   

            @yudong
            這個(gè)需要用CeRunAppAtTime,還需要監(jiān)聽電源狀態(tài).
            拿到快待機(jī)的單元狀態(tài)后,設(shè)置10分鐘后運(yùn)行某一個(gè)程序就OK.

            不過可惜的是,WM不能實(shí)現(xiàn)關(guān)機(jī),除非你是OEM,或者你只針對(duì)某一機(jī)器開發(fā)而且那個(gè)廠商愿意給你這樣的API.
            2010-02-20 11:49 | egmkang.wang

            # re: WINCE及MOBILE常用代碼  回復(fù)  更多評(píng)論   

            標(biāo)記。

            cabmail.
            2012-06-05 22:42 | cabmail
            亚洲综合熟女久久久30p| 一本大道久久东京热无码AV| 久久国产精品国产自线拍免费| 国产精品久久久久久| 国产精品成人无码久久久久久| 热RE99久久精品国产66热| 久久精品日日躁夜夜躁欧美| 91精品国产综合久久精品| 99久久精品国产一区二区| 亚洲欧美日韩精品久久亚洲区 | 午夜天堂av天堂久久久| 精品国产一区二区三区久久| 亚洲精品WWW久久久久久| 久久成人国产精品| 久久综合精品国产一区二区三区 | 久久青青草原精品影院| 亚洲精品无码久久久| 久久91精品国产91久久小草| 亚洲国产日韩欧美综合久久| 国产精品久久久久久久久| 国产精品一区二区久久精品涩爱| 久久国产成人精品麻豆| 久久亚洲精品无码aⅴ大香| 夜夜亚洲天天久久| 日韩久久久久久中文人妻| 久久国产三级无码一区二区| 久久夜色精品国产噜噜亚洲AV | 精品久久久久久久久午夜福利| 日韩AV毛片精品久久久| 国产精品久久久久久影院| 国内精品综合久久久40p| 理论片午午伦夜理片久久| 欧美精品一区二区精品久久 | 亚洲国产成人久久一区WWW| 国产成人精品久久免费动漫| 久久人人青草97香蕉| 办公室久久精品| 婷婷久久综合九色综合98| 久久精品国产亚洲av日韩| 免费精品久久天干天干| 亚洲国产小视频精品久久久三级 |