精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

探秘Visual Studio 2010中的災難恢復功能

開發 后端
作為軟件的最終用戶,在使用各種各樣的軟件的時候,特別是在使用軟件進行工作的時候,最害怕的事情就是軟件突然崩潰,自己的工作成果化為烏有。本文將詳解Visual Studio 2010中的災難恢復功能

為了提高用戶體驗,Microsoft在Windows Vista系統中首先引入了重啟管理器(Restart Manager)。它可以幫助應用程序維護其當前運行狀態,當軟件更新后需要重新啟動,或者是遇到非常嚴重的問題崩潰后,可以重新啟動軟件并且恢復到軟件的當前工作狀態。更重要的是,它還可以恢復自動保存的軟件數據狀態,盡量保證用戶數據的安全。有了重啟管理器,軟件就可以很快地從災難中恢復過來,實現快速“災后重建”。

圖1 Visual Studio 2010的重啟管理

重啟管理器主要應用在下面兩個方面:

◆軟件更新

很多時候,軟件或者操作系統升級后,需要重新啟動才可以生效。在這種情況下,我們就可以使用重啟管理器自動關閉真正運行的軟件,然后進行更新,更新完成后自動重新啟動軟件,并且恢復到軟件當前的工作狀態。這將使得軟件的更新更加流暢和智能。

◆軟件災難恢復

當軟件遇到嚴重錯誤,進程崩潰的時候,可以使用重啟管理器重新啟動軟件,恢復軟件自動保持的數據,讓軟件可以快速地從災難中恢復過來。

為了支持重啟管理器,微軟提供了一套Restart Manassas API函數來完成這些工作。這些函數定義在頭文件中,如果你的應用程序想使用這套API,需要引用rstrtmgr.lib和rstrtmgr.dll。其中,我們常用的函數有:

◆RMStartSession

創建一個新的重啟任務。

◆RMGetList

這個函數可供安裝程序使用,它可以得到所有被影響的應用程序及其當前狀態。

◆RMRegisterResources

注冊重啟任務的資源,例如文件名,服務或者是RM_UNIQUE_PROCESS結構體。

◆RMRestart

重新啟動被RmShutdown關閉的應用程序或者服務,當然,這些應用程序或者服務都需要通過RegisterApplicationRestart事先進行注冊。

◆RMShutDown

關閉應用程序或者服務。

◆RMEndSession

結束重啟任務。

添加對重啟管理器的支持

雖然Windows Vista系統本身提供了對重啟管理器的支持,但是對于應用程序本身,也同樣需要一些額外的工作,以完成對重啟管理器的支持。

對于新創建的MFC應用程序,我們可以簡單地在“MFC應用程序向導”中設置是否需要支持重啟管理器。

 圖2 MFC應用程序向導

在“MFC應用程序向導”的高級特性選項卡中有關于重啟管理器的選項。其中,如果僅僅選中“Support Restart Manager”選項,表示你的應用程序將僅僅支持重新啟動。換句話說,你的應用程序可以在升級或者崩潰之后重新啟動,但是無法自動打開未關閉的文檔,無法對數據進行恢復。

如果同時選中“Reopen previously open documents”選項,它表示你的應用程序可以在重啟之后重新打開之前打開的文檔,也就是自動恢復到當前的工作狀態。

如果選中了“Support application recover”選項,它表示你的應用程序在重新啟動后,不僅可以重新打開之前打開的文檔,還會嘗試恢復自動保存的文檔。它將彈出一個任務對話框(Unicode版本)或者消息框(非Unicode版本),詢問用戶是否需要恢復自動保持的文檔。如果用戶選擇“Yes”,那么自動保持的文檔將被打開作為當前文檔。如果用戶選擇“No”,那么用戶***保存的文檔將被打開作為當前文檔,同時自動保存的文檔將被刪除。

這里需要注意的是,只有文檔視圖類型的應用程序才支持“Reopen previously open documents”選項和“Support application recover”選項,對話框類型的應用程序只支持“Support Restart Manager”選項。

對于Visual Studio 2010中新創建的MFC應用程序,可以在應用程序向導中進行設置,添加對重啟管理器的支持。那么對于很多已有的MFC應用程序,如果同樣想獲得重啟管理器的支持,應該怎么辦呢?實際上,對于已有的MFC應用程序,要想獲得重啟管理器的支持很簡單。在新版本的MFC中,CWinApp類增加了一個新的成員變量,用于控制應用程序對重啟管理器的支持,我們只需要在應用程序的構造函數中,添加幾行代碼,按照我們的需求對其合理的初始化就可以了。

#p#

跟我們在上面所介紹的“MFC應用程序向導”中的選項相一致,如果你選擇的是“Support Restart Manager”,你可以在初始化函數中添加如下的代碼:

m_dwRestartManagerSupportFlags = 
AFX_RESTART_MANAGER_SUPPORT_RESTART;

如果你想選擇“Reopen previously open documents”,可以添加如下的代碼:

m_dwRestartManagerSupportFlags = 
AFX_RESTART_MANAGER_SUPPORT_RESTART_ASPECTS;
 
如果你想選擇“Support application recover”,可以添加下面這行代碼:

m_dwRestartManagerSupportFlags =
        AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS;
 

例如,我只想支持重啟管理器,讓軟件可以在更新后重新啟動,則可以這樣進行應用程序的初始化:

CRestartManagerDemoApp::CRestartManagerDemoApp()
{
m_bHiColorIcons = TRUE;
// support Restart Manager
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}

實例:創建支持重啟管理器的MFC應用程序

下面我們以一個實際的例子,來看看如何在我們的MFC應用程序中添加對重啟管理器的支持。

首先,啟動Visual Studio 2010 CTP,創建一個單文檔的應用程序RestartManagerDemo。按照我們前面的介紹,在“MFC應用程序向導”中選擇“Support Restart Manager”和“Reopen previously open documents”選項,以支持應用程序的重新啟動和文檔的重新打開。

為了驗證重啟管理器重新打開文檔的功能,我們在文檔中添加一些數據,這些數據將在程序重新啟動后自動被加載進來。

// 泡泡類,用于在視圖中顯示圓圈泡泡
class CBubble
{
public:
     CBubble(CPoint cp, double fR)
{
          m_nCenterPoint = cp;
          m_fR = fR;
};
     CBubble()
{};
// 圓心
CPoint m_nCenterPoint;
// 半徑   
double m_fR;
};

class CRestartManagerDemoDoc : public CDocument
{
protected: // create from serialization only
CRestartManagerDemoDoc();
DECLARE_DYNCREATE(CRestartManagerDemoDoc)

// Attributes
public:
// 保存數據的數組
    CArray m_Array;
// Operations
public:
CArray& GetBubbleArray()
{
                        return m_Array;
};
//…
};

然后,我們需要實現文檔的序列化函數,使得我們的文檔數據能夠保存和重新加載:

// CRestartManagerDemoDoc serialization

void CRestartManagerDemoDoc::Serialize(CArchive& ar)
{
// 保存數據
if (ar.IsStoring())
{
  // TODO: add storing code here
          int nSize = m_Array.GetSize();
          ar<          for(int nIndex = 0; nIndex < nSize; ++nIndex )
  {
   CBubble tempBubble = m_Array.GetAt( nIndex );
               ar<               ar<  }
}
else // 加載數據
{
  // TODO: add loading code here
  int nSize = 0;
          ar>>nSize;
  for(int nIndex = 0; nIndex < nSize; ++nIndex )
  {
   //CBubble tempBubble = m_Array.GetAt( nIndex );
               CPoint tempPoint;
               double tempR;
              ar>>tempPoint;
               ar>>tempR;
   m_Array.Add( CBubble( tempPoint, tempR) );
            
  }
}
}

完成文檔類的工作后,我們就有了保存數據的容器,現在我們需要對數據進行修改和顯示。在視圖類中,我們通過鼠標點擊,修改文檔中的數據,向其中添加CBubble對象。

void CRestartManagerDemoView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
     CRestartManagerDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
  return;
CArray& m_Array = pDoc->GetBubbleArray();
// 以當前鼠標點擊點為圓心,隨機半徑構造一個CBubble對象,并添加到文檔中
m_Array.Add( CBubble( point, rand()%30 ));

// 更新視圖顯示
     Invalidate();

CView::OnLButtonDown(nFlags, point);
}

然后,我們將這些數據在視圖中顯示出來:

void CRestartManagerDemoView::OnDraw(CDC* pDC)
{
CRestartManagerDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
  return;

// TODO: add draw code for native data here
// 從文檔中得到數據
     CArray& m_Array = pDoc->GetBubbleArray();

// 顯示數據
for(int nIndex = 0; nIndex < m_Array.GetSize(); ++nIndex )
{
  CBubble tempBubble = m_Array.GetAt( nIndex );
  pDC->Ellipse(tempBubble.m_nCenterPoint.x - tempBubble.m_fR,
               tempBubble.m_nCenterPoint.y - tempBubble.m_fR,
               tempBubble.m_nCenterPoint.x + tempBubble.m_fR,
               tempBubble.m_nCenterPoint.y + tempBubble.m_fR);
}
}

這樣,我們就實現了一個簡單的支持重啟管理器的文檔視圖類型的MFC應用程序。這個程序可以通過鼠標在視圖中點擊向文檔中添加數據,然后這些數據可以保存和重新打開。void CRestartManagerDemoView::OnLButtonDown(UINT nFlags, CPoint point)

{
// TODO: 在此添加消息處理程序代碼和/或調用默認值
     CRestartManagerDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
  return;
CArray& m_Array = pDoc->GetBubbleArray();
// 以當前鼠標點擊點為圓心,隨機半徑構造一個CBubble對象,并添加到文檔中
m_Array.Add( CBubble( point, rand()%30 ));

// 更新視圖顯示
     Invalidate();

CView::OnLButtonDown(nFlags, point);
}

  然后,我們將這些數據在視圖中顯示出來:
void CRestartManagerDemoView::OnDraw(CDC* pDC)
{
CRestartManagerDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
  return;

// TODO: add draw code for native data here
// 從文檔中得到數據
     CArray& m_Array = pDoc->GetBubbleArray();

// 顯示數據
for(int nIndex = 0; nIndex < m_Array.GetSize(); ++nIndex )
{
  CBubble tempBubble = m_Array.GetAt( nIndex );
  pDC->Ellipse(tempBubble.m_nCenterPoint.x - tempBubble.m_fR,
               tempBubble.m_nCenterPoint.y - tempBubble.m_fR,
               tempBubble.m_nCenterPoint.x + tempBubble.m_fR,
               tempBubble.m_nCenterPoint.y + tempBubble.m_fR);
}
}

這樣,我們就實現了一個簡單的支持重啟管理器的文檔視圖類型的MFC應用程序。這個程序可以通過鼠標在視圖中點擊向文檔中添加數據,然后這些數據可以保存和重新打開。

使用Restart Manassas API測試重啟管理器

接下來,我們可以編寫一個測試程序,使用Restart Manassas API模擬軟件的更新后重啟,以驗證其重啟管理器是否正常工作。
用Visual Studio 2010 CTP創建一個控制臺應用程序TestRM,然后將其實現如下:

//

#include "stdafx.h"
#include
#include

int _tmain(int argc, _TCHAR* argv[])
{
     DWORD dwSessionHandle = 0;
WCHAR wszSessionKey[CCH_RM_SESSION_KEY+1];

// 設定需要重啟的資源
  LPCWSTR pwzResourcesToRestart[] =
  {L"C:\\Users\\TFSSETUP\\Documents\\Visual Studio 10\\Projects\\
  RestartManagerDemo\\Debug\\RestartManagerDemo.exe" };

// 創建一個重啟任務
if (RmStartSession(&dwSessionHandle, 0, wszSessionKey) == ERROR_SUCCESS)
{
  // 注冊資源
  if (RmRegisterResources(dwSessionHandle, 1,
   pwzResourcesToRestart, 0, NULL, 0, NULL) == ERROR_SUCCESS)
  {
   // 關閉應用程序
   if (RmShutdown(dwSessionHandle,
    RmShutdownOnlyRegistered, NULL) == ERROR_SUCCESS)
   {
    // 重新啟動應用程序
    if (RmRestart(dwSessionHandle, 0, NULL) == ERROR_SUCCESS)
    {
     return 0;
    }
   }
  }
}
return 0;
}

我們首先運行RestartManagerDemo,在視圖中用鼠標點擊向文檔中添加數據,然后保持文檔為demo.bub。

 

圖3 支持重啟管理器的MFC應用程序

現在,我們就可以運行TestRM重啟這個應用程序了。運行TestRM后,我們會看到RestartManagerDemo會被關閉然后重新打開。同時,我們之前打開的文檔demo.bub也被重新加載,整個應用程序很快恢復到了我們之前的工作狀態。

【編輯推薦】

  1. Visual Studio中的SQL Server CLR代碼調試
  2. 在Visual Studio 2010中自定義開始頁
  3. Visual Studio 歷代開發環境演變史
責任編輯:彭凡 來源: ITPUB
相關推薦

2009-11-19 09:59:47

Visual Stud

2010-11-29 08:57:20

Visual Stud.NET 4

2010-04-15 08:40:00

UML建模Visual Stud

2009-04-23 14:05:28

Visual Stud歷史調試功能

2010-04-12 08:43:45

Visual Stud

2010-02-04 09:17:26

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-10-22 09:47:33

Visual Stud

2009-12-02 10:44:30

Visual Stud

2009-10-19 09:48:24

Visual Stud

2009-08-21 13:29:20

Visual Stud

2009-11-19 10:55:33

Visual Stud

2009-09-07 09:22:17

Visual Stud代碼片段

2009-11-04 09:16:00

Visual Stud

2010-07-15 08:50:09

SharePointVisual Stud

2010-03-19 13:17:26

Parallel

2010-07-20 08:43:00

Visual Stud

2009-11-24 09:00:02

Visual Stud

2009-11-10 13:43:37

Visual Stud

2010-04-16 13:33:54

Visual Stud
點贊
收藏

51CTO技術棧公眾號

男人的天堂影院| 正在播放精油久久| 亚洲午夜无码久久久久| 天天做天天爱天天爽综合网| 日韩一区二区在线看| www.成年人视频| 九色视频在线播放| 麻豆成人综合网| 久久久久久久久中文字幕| 日本高清www| 国产精品一区免费在线| 欧美日韩中国免费专区在线看| 亚欧洲精品在线视频免费观看| 精品人妻一区二区三区浪潮在线| 久久精品日韩欧美| 久久6免费高清热精品| 国产高潮呻吟久久| ccyy激情综合| 欧美人与性动xxxx| 逼特逼视频在线| 欧美高清另类hdvideosexjaⅴ| 国产午夜精品一区二区| 91精品免费久久久久久久久| 国产区在线观看视频| 亚洲午夜精品一区二区国产| 亚洲色图偷窥自拍| 动漫美女无遮挡免费| 四虎影视国产精品| 欧美系列亚洲系列| 免费无码av片在线观看| 麻豆蜜桃在线| 亚洲人成亚洲人成在线观看图片| 日韩尤物视频| 免费成人av电影| 成人国产精品免费网站| 成人一区二区电影| 伊人久久一区二区| 日韩精品欧美精品| 日本不卡高字幕在线2019| 日本少妇在线观看| 在线欧美日韩| 欧美精品videosex极品1| 中文字幕av免费在线观看| 93在线视频精品免费观看| 日韩精品丝袜在线| 97中文字幕在线观看| 精品久久亚洲| 日韩一级片网址| 51自拍视频在线观看| 欧美国产视频| 欧美乱熟臀69xxxxxx| 粉色视频免费看| 欧美成人家庭影院| 在线播放亚洲一区| 99热这里只有精品2| 成人在线视频国产| 日韩欧美视频在线| 国产在线观看免费播放| av日韩精品| 亚洲黄在线观看| www.超碰97| 国产一区二区三区日韩精品| 亚洲少妇中文在线| 亚洲图片第一页| 一区二区三区中文| 久久久亚洲精选| 五月天综合激情网| 日韩高清在线观看| 成人精品网站在线观看| 亚洲精品一区二区三区四区| eeuss国产一区二区三区| 精品卡一卡二| 99久久综合国产精品| 亚洲最新视频在线观看| 91网站在线观看免费| 日韩精品分区| 欧美性xxxx18| 最新中文字幕免费视频| 99视频这里有精品| 亚洲成年人影院在线| 一级黄色片大全| 99久久久国产精品美女| 国产成人无遮挡在线视频| 91国产成人在线| 亚洲精品性视频| 成人福利一区| 国产一区二区三区在线播放免费观看 | 日韩福利在线视频| 一区二区在线影院| 18一19gay欧美视频网站| 做爰视频毛片视频| 国产99久久久精品| 日韩美女一区| 男女视频在线| 欧美在线小视频| 亚洲高清无码久久| 色婷婷色综合| 性欧美在线看片a免费观看| 欧美性受xxx黑人xyx性爽| 成人小视频在线观看| 午夜精品电影在线观看| 久久99亚洲网美利坚合众国| 在线看一区二区| 人妻换人妻a片爽麻豆| 成人亚洲一区| 欧美亚洲激情在线| www.五月婷| 国产精品亲子伦对白| 青青青免费在线| 午夜不卡一区| 亚洲全黄一级网站| 久久精品免费av| 麻豆精品久久精品色综合| 精品欧美日韩在线| 日本三级在线观看网站| 欧美日韩精品是欧美日韩精品| 69亚洲乱人伦| 最新国产精品| 91精品久久久久久久久久 | 久久久久久久久免费| www.avtt| 日韩一区二区三区色| 丝袜亚洲欧美日韩综合| www.久久久久久久| proumb性欧美在线观看| 日韩精品一区二区在线视频| 亚洲激情av在线| 久久久视频精品| 91精品在线视频观看| 97久久人人超碰| 日韩亚洲欧美一区二区| 欧美一级做a| 亚洲日本成人网| 一级特黄录像免费播放全99| av在线中出| 精品国产青草久久久久福利| 成人免费精品动漫网站| 久热成人在线视频| 四虎精品一区二区| 天堂国产一区二区三区| 亚洲桃色在线一区| 日本高清一区二区视频| 日韩欧美二区| 国产精品亚发布| h网站在线免费观看| 色噜噜夜夜夜综合网| 久久无码人妻精品一区二区三区| 在线成人黄色| 国产区二精品视| 忘忧草在线日韩www影院| 亚洲成人av中文字幕| 国产一级片免费观看| 国产精品羞羞答答xxdd| 50度灰在线观看| 亚洲网一区二区三区| 久久99国产精品自在自在app| 99精品在线视频观看| 亚洲乱码中文字幕| av电影中文字幕| 一区二区三区国产在线| 麻豆久久久av免费| 日本在线中文字幕一区二区三区| 亚洲欧美日韩在线一区| 夜夜躁日日躁狠狠久久av| 欧美激情一区二区三区四区| 九九热免费在线观看| 欧美福利一区| 精品乱色一区二区中文字幕| 欧洲一级精品| 一区二区三区四区精品| 91 中文字幕| 亚洲综合视频在线| 最新中文字幕视频| 看片的网站亚洲| 成年人深夜视频| 日韩三级av| 国产精品久久久久久久久久小说 | 国产a精品视频| 一本大道久久a久久精品综合| 国产精品成人99一区无码 | 中文字幕av专区| 欧美xxxx中国| 国内精品久久国产| 精品这里只有精品| caoporn国产精品免费视频| 欧美二区三区的天堂| 国产亚洲精品码| 国产欧美一区二区精品性色| 永久免费黄色片| 欧美综合二区| 成人午夜视频免费观看| 国产欧美日韩在线观看视频| 亚洲精品免费在线视频| 不卡一二三区| 欧美另类极品videosbest最新版本| 天堂a√在线| 欧美在线小视频| 中文字幕第15页| 亚洲视频 欧洲视频| 国产特级黄色录像| 国产99一区视频免费| 第四色婷婷基地| 亚洲在线视频| 国产情侣第一页| 99久久夜色精品国产亚洲1000部| 欧美日本韩国国产| 9国产精品午夜| 91精品久久久久久久久不口人| 一区二区三区电影大全| 欧美激情一区二区三区高清视频| av影片在线看| 日韩精品在线观看一区| 蜜桃av噜噜一区二区三区麻豆| 91精品91久久久中77777| 日本少妇做爰全过程毛片| 亚洲精品高清视频在线观看| 欧美日韩中文字幕视频| 久久亚洲一区二区三区明星换脸 | 久久精品99国产精品酒店日本| 视频在线观看你懂的| 精品国产不卡一区二区三区| 国产精品乱码一区二区| 欧洲色大大久久| 五月婷婷激情视频| 岛国av一区二区三区| 久草视频手机在线观看| 亚洲人成网站在线| 三级在线观看免费大全| 国产精品嫩草久久久久| 亚洲精品国产精品国自| 国产日韩欧美高清| 欧美 日韩 国产 成人 在线观看 | 欧美精品久久久| 亚洲人亚洲人色久| 久久综合婷婷综合| 妖精视频一区二区三区免费观看| 精品一卡二卡三卡四卡日本乱码 | 2欧美一区二区三区在线观看视频| 日批视频免费看| 成人一区二区三区视频| 娇妻高潮浓精白浆xxⅹ| av在线免费不卡| 一区二区三区少妇| 2020国产成人综合网| 在线免费看黄视频| 国产视频一区在线观看| 青娱乐国产视频| 国产精品三级av| www欧美com| 一区二区久久久久久| 国产五月天婷婷| 欧美日韩国产页| 黄色av网站免费观看| 欧美在线观看你懂的| 中文字字幕在线中文乱码| 欧美日本在线看| 国产激情无套内精对白视频| 精品成人免费观看| 深夜福利视频在线免费观看| 亚洲人线精品午夜| 拍真实国产伦偷精品| 欧美另类高清videos| 天堂√8在线中文| 国产精品久久久久久久久久小说| 偷拍自拍亚洲| 韩国成人av| 精品视频免费| 日韩精品福利片午夜免费观看| 国产综合网站| 欧美少妇性生活视频| 激情五月激情综合网| 人妻 丝袜美腿 中文字幕| 91在线云播放| 欧美视频一区二区在线| 亚洲一区二区三区免费视频| 三级黄色在线视频| 欧美视频在线播放| 亚洲第一天堂影院| 国产午夜精品视频| 在线网址91| 日韩免费在线看| 久久综合给合| 欧美另类一区| 欧美日韩国产成人精品| 精品第一国产综合精品aⅴ| 性爱在线免费视频| 伊人夜夜躁av伊人久久| 在线观看国产亚洲| 欧美女孩性生活视频| 蜜桃久久一区二区三区| 一色桃子一区二区| 黄色大片在线| 国产精品专区h在线观看| 91精品啪在线观看国产手机| 免费成人看片网址| 欧美.www| 欧美日韩亚洲自拍| 波多野结衣中文字幕一区| 成人免费视频入口| 精品久久久久久久久久国产| 国产免费黄色大片| 亚洲丝袜一区在线| 国产美女高潮在线| 亚洲精品欧美日韩专区| 奇米狠狠一区二区三区| 国产传媒久久久| 国产一区二区日韩精品| 三区四区在线观看| 日韩欧美在线字幕| 国产91免费看| 欧美麻豆久久久久久中文| 激情亚洲小说| 欧美日韩在线精品一区二区三区| 精品二区久久| 能看毛片的网站| 亚洲欧洲性图库| 做爰视频毛片视频| 亚洲色图美腿丝袜| 成人欧美magnet| 精品欧美一区二区久久久伦 | 妞干网在线播放| 久久99热国产| 粉嫩精品久久99综合一区| 色狠狠色噜噜噜综合网| 日本一区高清| 欧美在线中文字幕| 欧洲精品一区| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 成人视屏免费看| 国产福利久久久| 精品久久久久一区| 里番在线播放| 高清不卡一区二区三区| 欧美午夜a级限制福利片| 黄页网站在线看| 亚洲精品综合在线| 国产高潮在线观看| 色综合久久悠悠| 日韩视频1区| 福利视频免费在线观看| 夫妻av一区二区| 日本一区二区三区免费视频| 亚洲成人久久电影| 精精国产xxx在线视频app| 国产精品乱子乱xxxx| 亚洲国产一区二区精品专区| 欧美极品jizzhd欧美仙踪林| 亚洲午夜一区二区三区| 日本波多野结衣在线| 午夜精品久久久久久99热| 色婷婷久久久| 日韩无套无码精品| 国产精品视频线看| 国产情侣自拍小视频| 欧美国产日韩一区| 美日韩黄色大片| 日韩中文字幕二区| 中文字幕乱码一区二区免费| 亚洲一区二区影视| 欧美刺激性大交免费视频| 第四色中文综合网| 99久久久无码国产精品6| 久久久久久99精品| 一级黄色大片免费| 九九视频这里只有精品| 欧美日韩破处| 污版视频在线观看| 亚洲精品老司机| 日韩精品系列| 国产在线不卡精品| 最新日韩av| 国产毛片欧美毛片久久久| 7777精品伊人久久久大香线蕉的| 日本无删减在线| 日本最新一区二区三区视频观看| 久久99精品久久久久| 国产精品成人久久| 一区二区三区动漫| 亚洲无线观看| 亚洲黄色a v| 一区二区欧美精品| 黄色国产在线| 成人蜜桃视频| 视频精品一区二区| 免费人成年激情视频在线观看| 亚洲精品网站在线播放gif| 婷婷成人av| 日av中文字幕| 亚洲已满18点击进入久久| 酒色婷婷桃色成人免费av网| 亚洲www永久成人夜色| 欧美一级播放| 中文字幕手机在线观看| 亚洲天堂免费视频| 51亚洲精品| 在线观看免费不卡av| 欧美性开放视频| 欧洲一区二区三区| 一本一道久久a久久综合精品| 99久久99久久精品国产片果冻|