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

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

?? scriptengine.cpp

?? VB Script腳本引擎及例子程序
?? CPP
字號:
#include "stdafx.h"
#include "ScriptEngine.h"
#include "Utils.h"

IMPLEMENT_DYNAMIC(CScriptEngine, CCmdTarget)

/////////////////////////////////////////////////////////////////////////////
// CScriptEngine interface maps

BEGIN_INTERFACE_MAP(CScriptEngine, CCmdTarget)
  INTERFACE_PART(CScriptEngine, IID_IActiveScriptSite, ActiveScriptSite)
  INTERFACE_PART(CScriptEngine, IID_IActiveScriptSiteWindow, ActiveScriptSiteWindow)
END_INTERFACE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CScriptEngine methods

CScriptEngine::CScriptEngine() :
  m_hrScriptError(S_OK),
  m_pActiveScript(NULL),
	m_pActiveScriptParse(NULL)
{
	TRACE_IN("CScriptEngine::CScriptEngine");
}

CScriptEngine::CScriptEngine(REFCLSID clsidScriptEngine) :
  m_hrScriptError(S_OK),
  m_pActiveScript(NULL),
	m_pActiveScriptParse(NULL)
{
	TRACE_IN("CScriptEngine::CScriptEngine");

	// create the engine
	Create(clsidScriptEngine);
}

void CScriptEngine::ReleaseEngine()
{
	TRACE_IN("CScriptEngine::ReleaseEngine");

	// release engine interfaces
	RELEASE(m_pActiveScript);
	RELEASE(m_pActiveScriptParse);
}

CScriptEngine::~CScriptEngine()
{
	TRACE_IN("CScriptEngine::~CScriptEngine");

	ReleaseEngine();
}

HRESULT CScriptEngine::Create(REFCLSID clsidScriptEngine)
{
	TRACE_IN("CScriptEngine::Create");

	// release the current engine (if any)
	ReleaseEngine();

	// create script engine
	HRESULT hr = CoCreateInstance(clsidScriptEngine,
    NULL, // no aggregation
    CLSCTX_INPROC_SERVER,
		IID_IActiveScript,
    (LPVOID*)&m_pActiveScript);

	// if success ...
	if (SUCCEEDED(hr)) {
		// set the script engine's script site
		hr = STDCOMCALL(m_pActiveScript, SetScriptSite(&m_xActiveScriptSite));

		// if success ...
		if (SUCCEEDED(hr)) {
			// get the engine's IActiveScriptParse interface
			hr = STDCOMCALL(m_pActiveScript, QueryInterface(IID_IActiveScriptParse,
				(void**)&m_pActiveScriptParse));
			
			// if success ...
			if (SUCCEEDED(hr)) {
				// initialize the engine
				hr = STDCOMCALL(m_pActiveScriptParse, InitNew());

				// if failure ..
				if (FAILED(hr)) {
					AfxMessageBox("Failed to initialize script engine.");
					ASSERT(FALSE);
					ReleaseEngine();
				}
			} else {
				AfxMessageBox("Failed to obtain script engine's IActiveScriptParse interface.");
				ASSERT(FALSE);
				ReleaseEngine();
			}
		} else {
			AfxMessageBox("Failed to set script engine's site.");
			ASSERT(FALSE);
			ReleaseEngine();
		}
	} else {
		AfxMessageBox("Failed to create script engine.");
		ASSERT(FALSE);
	}

	return SUCCEEDED(hr);
}

SCRIPTSTATE CScriptEngine::GetScriptState()
{
	TRACE_IN("CScriptEngine::GetScriptState");

	// this is what we'll return
	SCRIPTSTATE ss = SCRIPTSTATE_UNINITIALIZED;

	// call the script's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, GetScriptState(&ss));
	ASSERT(SUCCEEDED(hr));

	return ss;
}

HRESULT CScriptEngine::AddNamedItem(
		/* [in] */ LPCOLESTR pstrName,
		/* [in] */ DWORD     dwFlags)
{
	TRACE_IN("CScriptEngine::AddNamedItem");

	ASSERT(pstrName != NULL);

	// call the engine's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, AddNamedItem(pstrName, dwFlags));
	ASSERT(SUCCEEDED(hr));

	return hr;
}

HRESULT CScriptEngine::AddTypeLib(
	/* [in] */ REFGUID guidTypeLib,
	/* [in] */ DWORD   dwMaj,
	/* [in] */ DWORD   dwMin,
	/* [in] */ DWORD   dwFlags)
{
	TRACE_IN("CScriptEngine::AddTypeLib");

	// call the engine's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, AddTypeLib(guidTypeLib, dwMaj, dwMin, dwFlags));
	ASSERT(SUCCEEDED(hr));

	return hr;
}

IDispatch* CScriptEngine::GetScriptDispatch(LPCOLESTR pstrItemName)
{
	TRACE_IN("CScriptEngine::GetScriptDispatch");

	ASSERT(pstrItemName != NULL);

	// this is what we'll return
	IDispatch* pDispatch = NULL;

	// call the engine's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, GetScriptDispatch(pstrItemName, &pDispatch));
	ASSERT(SUCCEEDED(hr));
	ASSERT(pDispatch != NULL);

	return pDispatch;
}

HRESULT CScriptEngine::ParseScriptText(
		/* [in] */ LPCOLESTR pstrCode,
		/* [in] */ LPCOLESTR pstrItemName,
		/* [in] */ IUnknown* punkContext,
		/* [in] */ LPCOLESTR pstrEndDelimiter,
		/* [in] */ DWORD dwSourceContextCookie,
    /* [in] */ ULONG ulStartingLineNumber,
		/* [in] */ DWORD dwFlags,
		/* [out]*/ VARIANT* pvarResult,
		/* [out]*/ EXCEPINFO* pexcepinfo)
{
	TRACE_IN("CScriptEngine::ParseScriptText");

	ASSERT(pstrCode != NULL);

	HRESULT hr = STDCOMCALL(m_pActiveScriptParse, ParseScriptText(
		pstrCode,
		pstrItemName,
		punkContext,
		pstrEndDelimiter,
		dwSourceContextCookie,
		ulStartingLineNumber,
		dwFlags,
		pvarResult,
		pexcepinfo));

	return hr;
}

HRESULT CScriptEngine::Connect()
{
	TRACE_IN("CScriptEngine::Connect");

	// reset the HRESULT used in OnScriptError
	m_hrScriptError = S_OK;

	// call the script's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, SetScriptState(SCRIPTSTATE_CONNECTED));
	ASSERT(SUCCEEDED(hr));

	// if success ...
	if (SUCCEEDED(hr)) {
		// return any script error caught by OnScriptError()
		hr = m_hrScriptError;
	}

	return hr;
}

HRESULT CScriptEngine::Disconnect()
{
	TRACE_IN("CScriptEngine::Disconnect");

	// call the script's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, SetScriptState(SCRIPTSTATE_DISCONNECTED));
	ASSERT(SUCCEEDED(hr));

	return hr;
}

HRESULT CScriptEngine::Close()
{
	TRACE_IN("CScriptEngine::Close");

	// call the script's method
	HRESULT hr = STDCOMCALL(m_pActiveScript, Close());
	ASSERT(SUCCEEDED(hr));

	return hr;
}

HRESULT CScriptEngine::OnGetLCID(LCID* pLCID)
{
	TRACE_IN("CScriptEngine::OnGetLCID");
	return E_NOTIMPL;
}

HRESULT CScriptEngine::OnGetItemInfo(
		/* [in] */ LPCOLESTR   pstrName,
		/* [in] */ DWORD       dwReturnMask,
		/* [out]*/ IUnknown**  ppUnknownItem,
		/* [out]*/ ITypeInfo** ppTypeInfo)
{
	TRACE_IN("CScriptEngine::OnGetItemInfo");
	return E_NOTIMPL;
}

BSTR CScriptEngine::OnGetDocVersionString()
{
	TRACE_IN("CScriptEngine::OnGetDocVersionString");
	return NULL;
}

void CScriptEngine::OnScriptTerminate(
		/* [in] */ const VARIANT*   pvarResult,
		/* [in] */ const EXCEPINFO* pexcepinfo)
{
	TRACE_IN("CScriptEngine::OnScriptTerminate");
}

void CScriptEngine::OnStateChange(/* [in] */ SCRIPTSTATE ss)
{
	TRACE_IN("CScriptEngine::OnStateChange");

	switch (ss) {
		case SCRIPTSTATE_UNINITIALIZED:
			TRACE_MSG(("State -> Uninitialized"));
			break;
		case SCRIPTSTATE_INITIALIZED:
			TRACE_MSG(("State -> Initialized"));
			break;
		case SCRIPTSTATE_STARTED:
			TRACE_MSG(("State -> Started"));
			break;
    case SCRIPTSTATE_CONNECTED:
			TRACE_MSG(("State -> Connected"));
			break;
    case SCRIPTSTATE_DISCONNECTED:
			TRACE_MSG(("State -> Disonnected"));
			break;
    case SCRIPTSTATE_CLOSED:
			TRACE_MSG(("State -> Closed"));
			break;
		default:
			TRACE_ERR(("State -> Invalid"));
			ASSERT(FALSE);
			break;
	}
}

void CScriptEngine::OnScriptError(/* [in] */ IActiveScriptError* pASE)
{
	TRACE_IN("CScriptEngine::OnScriptError");

	DWORD dwSourceContext = 0;
	ULONG nLineNumber = 0;
	LONG  nCharPosition = 0;

	// get source line info
	HRESULT hr = STDCOMCALL(pASE, GetSourcePosition(
    &dwSourceContext,
    &nLineNumber,
    &nCharPosition));
	ASSERT(SUCCEEDED(hr));

	// get the source line
	BSTR bstrSourceLine;
	hr = STDCOMCALL(pASE, GetSourceLineText(&bstrSourceLine));
	// ASSERT(SUCCEEDED(hr));

	// get the exception info
	EXCEPINFO excepinfo;
	memset(&excepinfo, 0, sizeof(excepinfo));
	hr = STDCOMCALL(pASE, GetExceptionInfo(&excepinfo));
	ASSERT(SUCCEEDED(hr));

	// format error message
	CString strMsg;
	strMsg.Format("Script error detected at line %d.", nLineNumber);

	if (bstrSourceLine != NULL) {
		strMsg += "\nSource line: ";
		strMsg += bstrSourceLine;
		::SysFreeString(bstrSourceLine);
	}

	if (excepinfo.bstrDescription != NULL) {
		strMsg += "\nDescription: ";
		strMsg += excepinfo.bstrDescription;
	}

	// issue error message
  AfxMessageBox(strMsg, MB_OK | MB_ICONEXCLAMATION);

	// script failed
	m_hrScriptError = E_FAIL;
}

void CScriptEngine::OnEnterScript()
{
	TRACE_IN("CScriptEngine::OnEnterScript");
}

void CScriptEngine::OnLeaveScript()
{
	TRACE_IN("CScriptEngine::OnLeaveScript");
}

HRESULT CScriptEngine::OnGetWindow(HWND* phwnd)
{
	TRACE_IN("CScriptEngine::OnGetWindow");

	// get the app's main window
	*phwnd = AfxGetApp()->m_pMainWnd->m_hWnd;
	
	return E_NOTIMPL;
}

HRESULT CScriptEngine::OnEnableModeless(/* [in] */ BOOL bEnable)
{	
	TRACE_IN("CScriptEngine::OnEnableModeless");
	return E_NOTIMPL;
}

/////////////////////////////////////////////////////////////////////////////
// CScriptEngine::XActiveScriptSite methods

STDMETHODIMP_(ULONG) CScriptEngine::XActiveScriptSite::AddRef()
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::AddRef");

	METHOD_PROLOGUE_EX_(CScriptEngine, ActiveScriptSite)

	ULONG nResult = (ULONG)pThis->ExternalAddRef();

	return nResult;
}

STDMETHODIMP_(ULONG) CScriptEngine::XActiveScriptSite::Release()
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::Release");

	METHOD_PROLOGUE_EX_(CScriptEngine, ActiveScriptSite)

	ULONG nResult = (ULONG)pThis->ExternalRelease();

	return nResult;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::QueryInterface(
	REFIID iid, LPVOID* ppvObj)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::QueryInterface");

	METHOD_PROLOGUE_EX_(CScriptEngine, ActiveScriptSite)

	HRESULT hr = (HRESULT)pThis->ExternalQueryInterface(&iid, ppvObj);

	return hr;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::GetLCID(LCID* pLCID)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::GetLCID");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	HRESULT hr = pThis->OnGetLCID(pLCID);

	return hr;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::GetItemInfo(
      /* [in]  */ LPCOLESTR   pstrName,
      /* [in]  */ DWORD       dwReturnMask,
      /* [out] */ IUnknown  **ppunkItem, 
      /* [out] */ ITypeInfo **ppTypeInfo)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::GetItemInfo");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	HRESULT hr = pThis->OnGetItemInfo(pstrName, dwReturnMask, ppunkItem, ppTypeInfo);

	return hr;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::GetDocVersionString(BSTR* pbstr)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::GetDocVersionString");

	ASSERT(pbstr != NULL);

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	*pbstr = pThis->OnGetDocVersionString();

	return S_OK;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::OnScriptTerminate(
	/* [in] */ const VARIANT* pvarResult,
	/* [in] */ const EXCEPINFO* pexcepinfo)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::OnScriptTerminate");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	pThis->OnScriptTerminate(pvarResult, pexcepinfo);

	return S_OK;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::OnStateChange(/* [in] */ SCRIPTSTATE ssScriptState)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::OnStateChange");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	pThis->OnStateChange(ssScriptState);

	return S_OK;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::OnScriptError(/* [in] */ IActiveScriptError *pASE)
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::OnScriptError");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	pThis->OnScriptError(pASE);

	return S_OK;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::OnEnterScript()
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::OnEnterScript");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	pThis->OnEnterScript();

	return S_OK;
}

STDMETHODIMP CScriptEngine::XActiveScriptSite::OnLeaveScript()
{
	TRACE_IN("CScriptEngine::XActiveScriptSite::OnLeaveScript");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSite)
	
	pThis->OnLeaveScript();

	return S_OK;
}

/////////////////////////////////////////////////////////////////////////////
// CScriptEngine::XActiveScriptSiteWindow methods

STDMETHODIMP_(ULONG) CScriptEngine::XActiveScriptSiteWindow::AddRef()
{
	TRACE_IN("CScriptEngine::XActiveScriptSiteWindow::AddRef");

	METHOD_PROLOGUE_EX_(CScriptEngine, ActiveScriptSiteWindow)

	ULONG nResult = (ULONG)pThis->ExternalAddRef();

	return nResult;
}

STDMETHODIMP_(ULONG) CScriptEngine::XActiveScriptSiteWindow::Release()
{
	TRACE_IN("CScriptEngine::XActiveScriptSiteWindow::Release");

	METHOD_PROLOGUE_EX_(CScriptEngine, ActiveScriptSiteWindow)

	ULONG nResult = (ULONG)pThis->ExternalRelease();

	return nResult;
}

STDMETHODIMP CScriptEngine::XActiveScriptSiteWindow::QueryInterface(
	REFIID iid, LPVOID* ppvObj)
{
	TRACE_IN("CScriptEngine::XActiveScriptSiteWindow::QueryInterface");

	METHOD_PROLOGUE_EX_(CScriptEngine, ActiveScriptSiteWindow)

	HRESULT hr = (HRESULT)pThis->ExternalQueryInterface(&iid, ppvObj);

	return hr;
}

STDMETHODIMP CScriptEngine::XActiveScriptSiteWindow::GetWindow(/* [out] */ HWND *phwnd)
{
	TRACE_IN("CScriptEngine::XActiveScriptSiteWindow::GetWindow");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSiteWindow)
	
	HRESULT hr = pThis->OnGetWindow(phwnd);

	return hr;
}

STDMETHODIMP CScriptEngine::XActiveScriptSiteWindow::EnableModeless(/* [in] */ BOOL bEnable)
{
	TRACE_IN("CScriptEngine::XActiveScriptSiteWindow::EnableModeless");

	METHOD_PROLOGUE_EX(CScriptEngine, ActiveScriptSiteWindow)
	
	HRESULT hr = pThis->OnEnableModeless(bEnable);

	return hr;
}

/////////////////////////////////////////////////////////////////////////////
// CScriptEngine diagnostics

#ifdef _DEBUG
void CScriptEngine::AssertValid() const
{
	CCmdTarget::AssertValid();
}

void CScriptEngine::Dump(CDumpContext& dc) const
{
	CCmdTarget::Dump(dc);

	dc << "IActiveScript pointer = " << m_pActiveScript << "\n";
	dc << "IActiveScriptParse pointer = " << m_pActiveScriptParse;
}
#endif //_DEBUG

void CScriptEngine::Serialize(CArchive& ar)
{
	CCmdTarget::Serialize(ar);

	// TODO:  Need to QI for one of the script engine's IPersist* interfaces
	// and then call that interface to serialize the engine's peristent data.

  if (ar.IsStoring()) {
    // TODO:  add storing code here
  } else {
		// TODO:  add loading code here
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
寂寞少妇一区二区三区| 国产日韩欧美精品在线| 91麻豆免费看| eeuss国产一区二区三区| 国产成人精品亚洲777人妖| 秋霞午夜鲁丝一区二区老狼| 亚洲二区在线视频| 日韩精品欧美成人高清一区二区| 午夜视频在线观看一区| 午夜在线成人av| 久久国产精品99久久人人澡| 国产91富婆露脸刺激对白| 亚洲成年人网站在线观看| 日本不卡中文字幕| 国产乱色国产精品免费视频| 不卡视频在线观看| 一道本成人在线| 在线不卡a资源高清| 久久精品亚洲麻豆av一区二区| 国产精品久久三区| 久久精品国产一区二区三区免费看| 老司机免费视频一区二区| av成人老司机| 337p日本欧洲亚洲大胆精品| 亚洲精品视频一区二区| 久久99久久精品| 欧美精品少妇一区二区三区| 精品久久久久久综合日本欧美| 一区二区三区影院| 国产激情视频一区二区三区欧美| 菠萝蜜视频在线观看一区| 日韩精品一区二区三区中文精品| 亚洲视频免费看| 麻豆精品久久久| 欧美色电影在线| 一区二区三区蜜桃网| 成人av网站大全| 欧美高清一级片在线观看| 日本亚洲天堂网| 91精品国产91热久久久做人人| 亚洲一区二区三区三| 色婷婷久久一区二区三区麻豆| 国产精品系列在线| 国产精品一卡二卡| 国产精品全国免费观看高清 | 亚洲精品伦理在线| 欧美色精品在线视频| 午夜影院久久久| 欧美色涩在线第一页| 日韩高清在线不卡| 国产精品嫩草影院com| 在线影视一区二区三区| 五月天欧美精品| 国产精品美女视频| 日韩一区二区三区在线视频| 丰满岳乱妇一区二区三区| 玉足女爽爽91| 欧美高清在线视频| 欧美一三区三区四区免费在线看| 成人一区二区视频| 日日噜噜夜夜狠狠视频欧美人| 久久久久久免费毛片精品| 欧美日韩日日摸| 91丝袜美女网| 99久久er热在这里只有精品15| 美女一区二区视频| 亚洲成av人片一区二区三区| 日本亚洲天堂网| 亚洲第一搞黄网站| 一区二区三区自拍| 亚洲乱码国产乱码精品精小说 | 日韩av一区二区在线影视| 欧美经典三级视频一区二区三区| 日韩三级视频在线观看| 91 com成人网| 欧美一区二区人人喊爽| 欧美一区二区三区免费| 精品久久久久99| 国产日韩精品一区二区三区 | 成人av在线影院| 成人丝袜视频网| 色久优优欧美色久优优| 欧美影院精品一区| 欧美精品电影在线播放| 精品美女一区二区| 久久先锋影音av鲁色资源| 中文字幕不卡在线观看| 亚洲图片另类小说| 亚洲电影第三页| 国产在线观看免费一区| 99麻豆久久久国产精品免费| 欧美另类z0zxhd电影| 久久久久久久久99精品| 日本一二三四高清不卡| 亚洲一区二区欧美| 国产精品亚洲а∨天堂免在线| av中文一区二区三区| 日韩一区二区免费视频| 综合久久国产九一剧情麻豆| 日韩精品电影在线| 色一区在线观看| 日本一区二区综合亚洲| 水野朝阳av一区二区三区| 国产乱码精品一区二区三区忘忧草 | 国产精品综合网| 欧美一区三区二区| 亚洲综合丁香婷婷六月香| 成熟亚洲日本毛茸茸凸凹| 欧美一区二区三区性视频| 国产精品狼人久久影院观看方式| 日韩一区精品视频| 欧美色图在线观看| 樱花影视一区二区| 色94色欧美sute亚洲线路一久 | 国产一区999| 欧美大片在线观看一区二区| 午夜精品在线视频一区| 在线看不卡av| 一区二区国产盗摄色噜噜| 不卡电影免费在线播放一区| 亚洲国产精品精华液网站| 国产成人精品亚洲日本在线桃色| 日韩欧美国产1| 狠狠色综合播放一区二区| 精品日韩在线一区| 精品无码三级在线观看视频| 日韩欧美一二三| 久久不见久久见中文字幕免费| 日韩欧美美女一区二区三区| 久久成人综合网| www久久精品| 国产成人啪午夜精品网站男同| 国产欧美日韩综合| 欧美中文字幕久久| 日韩—二三区免费观看av| 精品国产自在久精品国产| 国产综合色产在线精品| 久久久精品日韩欧美| 91免费视频观看| 美女任你摸久久| 国产精品久久久久三级| 在线视频综合导航| 久久精品国产亚洲a| 中文字幕一区二区三区色视频| 欧美日韩一区二区三区在线看 | 日韩欧美国产精品一区| 国产91精品一区二区麻豆亚洲| 一色桃子久久精品亚洲| 69堂精品视频| 色哟哟一区二区| 成人一区二区视频| 国产在线播放一区| 日韩黄色免费电影| 亚洲精品视频在线观看免费| 欧美精品一区二区三区在线| 欧美三级视频在线| 国产成人综合网| 免费一区二区视频| 日韩精品欧美精品| 亚洲国产精品尤物yw在线观看| 国产精品家庭影院| 亚洲国产精品成人综合色在线婷婷| 日韩免费一区二区| 91麻豆精品国产自产在线观看一区| 91麻豆自制传媒国产之光| 成人黄色大片在线观看| 国产九九视频一区二区三区| 久久成人免费日本黄色| 99精品热视频| 国产91丝袜在线播放九色| 麻豆精品视频在线观看视频| 老汉av免费一区二区三区| 日本成人在线电影网| 精品亚洲国内自在自线福利| 美女网站色91| 成人小视频在线| 91蜜桃免费观看视频| 色综合久久天天| 欧美一二三四在线| 国产精品久久久久四虎| 亚洲激情网站免费观看| 人禽交欧美网站| 成人18精品视频| 91精品在线免费观看| 久久久久久综合| 日日夜夜精品免费视频| 国产福利精品一区| 欧美日韩在线精品一区二区三区激情| 日韩一区二区影院| 国产精品少妇自拍| 久久国产精品99精品国产| 白白色亚洲国产精品| 日韩一区二区免费在线观看| ...av二区三区久久精品| 麻豆91在线观看| 欧美亚洲图片小说| 久久精品亚洲一区二区三区浴池| 中文字幕一区二区在线播放| 久久国产精品色婷婷| 777精品伊人久久久久大香线蕉|