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

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

?? wk_basefunc.cpp

?? 聯通手機的寶典畫面.用brew 平臺編輯而成.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// wk_BaseFunc.cpp
//////////////////////////////////////////////////////////////////////

#include "wk_BaseFunc.h"
#include "AEEHeap.h"
//////////////////////////////////////////////////////////////////////

//***********************************************************************
//	Function:
//	Purpose:
//		- Loads a text string from the resource file as AECHAR.
//	Parameters (in):
//		- pIShell: Pointer to IShell interface
//		- iResourceID: ID of the text string in the resource file
//		- pBuf: Pointer to an AECHAR buffer to hold the string
//      - szResFile: the resource file name
//	Returns:
//		- TRUE: String successfully loaded
//		- FALSE: Failed to load string
//***********************************************************************
boolean LoadTextMessage(IShell * pIShell, int16 iResourceID, AECHAR * * pBuf, char * szResFile) {
    AECHAR * wszMsg = NULL;
    int iTextLength = 0;

    // validate parameter(s)
    if (!pIShell) {
        return FALSE;
    }

    if (pBuf) {
        // Using ISHELL_LoadResData to query the length of the string before we
        // allocate the buffer and read it in.
        wszMsg = (AECHAR *) ISHELL_LoadResData(pIShell, szResFile, iResourceID, RESTYPE_STRING);
        if (wszMsg) {
            iTextLength = WSTRLEN((AECHAR *) wszMsg);
            ISHELL_FreeResData(pIShell, wszMsg);
            wszMsg = NULL;

            // if it was allocated before, release it
            if (* pBuf) {
                FREEIF(* pBuf);
            }

            * pBuf = (AECHAR *) MALLOC(sizeof(AECHAR) * (iTextLength + 1));
            if (* pBuf) {
                MEMSET(* pBuf, 0, sizeof(AECHAR) * (iTextLength + 1));

                if (ISHELL_LoadResString(pIShell, szResFile, iResourceID, * pBuf, sizeof(AECHAR) * (iTextLength + 1))) {
                    return TRUE;
                }
            }
        }
    }

    // couldn't load string from resource file - unrecoverable error, clean up & bail out
    if (wszMsg) {
        FREEIF(wszMsg);
    }
    if (pBuf && * pBuf) {
        FREEIF(* pBuf);
    }

    return FALSE;
} // End of function


//***********************************************************************
//	Function:
//	Purpose:
//		- Loads a text string from the resource file and converts it
//			to a single-byte character format.
//	Parameters (in):
//		- pThis: Application data structure pointer
//		- iResourceID: ID of the text string in the resource file
//		- pBuf: Pointer to a character buffer to hold the string
//	Returns:
//		- TRUE: String successfully loaded
//		- FALSE: Failed to load string or store it in app's data struct.
//***********************************************************************
boolean LoadTextMessageSingleByte(IShell * pIShell, int16 iResourceID, char * * pBuf, char * szResFile) {
    AECHAR * wszText = NULL;
    int iTextLength = 0;

    // validate parameter(s)
    if (!pIShell) {
        return FALSE;
    }

    if (pBuf && LoadTextMessage(pIShell, iResourceID, & wszText, szResFile)) {
        iTextLength = WSTRLEN(wszText);
        // if it was allocated before, release it
        if (* pBuf) {
            FREEIF(* pBuf);
        }

        * pBuf = (char *) MALLOC(sizeof(char) * (iTextLength + 1));
        if (* pBuf) {
            MEMSET(* pBuf, 0, sizeof(char) * (iTextLength + 1));
            WSTRTOSTR(wszText, * pBuf, iTextLength + 1);
            FREEIF(wszText);
            return TRUE;
        }
    }

    // couldn't load string from resource file - unrecoverable error, clean up & bail out
    if (wszText) {
        FREEIF(wszText);
    }
    if (pBuf && * pBuf) {
        FREEIF(* pBuf);
    }

    return FALSE;
} // End function

/*===========================================================================
FUNCTION GetMobileID
DESCRIPTION
	獲取手機的ID
===========================================================================*/

boolean GetMobileID(IShell * pIShell, char * * pBuf) {
    ITAPI * pITAPI = NULL;
    boolean bRet = FALSE;

	/* Test code /
	if (* pBuf) { FREEIF(* pBuf); }
	*pBuf = STRDUP("555555555"); 
	return TRUE;
	// End of Test code  */
    int i = ISHELL_CreateInstance(pIShell, AEECLSID_TAPI, (void * *) & pITAPI);

    if (pBuf && i == SUCCESS) 
	{
        TAPIStatus * ps = MALLOCREC(TAPIStatus);
        if (ITAPI_GetStatus(pITAPI, ps) == SUCCESS)
		{
            if (* pBuf) FREEIF(* pBuf);
            i = STRLEN(ps->szMobileID) + 1;
            * pBuf = (char *) MALLOC(sizeof(char) * i);
            if (* pBuf) 
			{
                MEMCPY(* pBuf, ps->szMobileID, i);
                bRet = TRUE;
            }
        }
		else
		{
			if (* pBuf)  FREEIF(* pBuf); 
			*pBuf = (char *)MALLOC(1);
			MEMSET(pBuf, 0, 1);
		}
        if (ps) FREEIF(ps);
    }
	else
	{
		if (* pBuf)  FREEIF(* pBuf); 
		*pBuf = (char *)MALLOC(1);
		MEMSET(pBuf, 0, 1);
	}

    if (pITAPI) 
	{ // 釋放資源
        ITAPI_Release(pITAPI);
        pITAPI = NULL;
    }

    return bRet;

 }


/*===========================================================================
FUNCTION GetMobileType
DESCRIPTION
	獲取手機的型號
===========================================================================*/

boolean GetMobileType(IShell * pIShell, char * * pBuf) 
{
	AEEDeviceInfo device;
	char szBuf[128];
	long nLen;
	
	device.wStructSize = sizeof(AEEDeviceInfo);
    ISHELL_GetDeviceInfo(pIShell, &device);
	SPRINTF(szBuf, "%d", device.dwPlatformID);
	nLen = (STRLEN(szBuf) + 1) * sizeof(char);
	
	if (* pBuf)  FREEIF(* pBuf); 
	*pBuf = (char *)MALLOC(nLen);
	MEMCPY(*pBuf, szBuf, nLen);
	return TRUE;
	

}

/*===========================================================================
FUNCTION PrependStr
DESCRIPTION
	insert the src to the begin of dest
===========================================================================*/

void PrependStr(char * * dest, char * src) 
{
    if (* dest && src) {
        int lenDest = STRLEN(* dest);
        int lenSrc = STRLEN(src);
        char * temp = (char *) STRDUP(* dest);

        FREEIF(* dest);
        * dest = (char *) MALLOC(sizeof(char) * (lenDest + lenSrc + 1));
        STRCAT(* dest, src);
        STRCAT(* dest, temp);

        FREEIF(temp);
    }
}


/*===========================================================================
FUNCTION ReplaceChar
DESCRIPTION
	Replace a char with another in a string
===========================================================================*/

void ReplaceChar( char * szSource, char cSrc, char cDes )
{
    if ( szSource ) {
        int size = STRLEN(szSource);
		int i;
        for ( i = 0; i < size; i++ )
        {
            if ( *szSource == cSrc )
                *szSource = cDes;
            szSource++;
        }
    }
}

/*===========================================================================
FUNCTION: ReleaseObj

DESCRIPTION:
  Release an object if it is not NULL, and set it to NULL.
  如果ppObj不為NULL,則釋放它,并將之置為NULL。
===========================================================================*/

void ReleaseObj(void * * ppObj)
{
    if (ppObj && * ppObj)
    {
        (void)IBASE_Release(((IBase *) * ppObj));
        * ppObj = NULL;
    }
}

/*===========================================================================
FUNCTION: LoadWideText

DESCRIPTION:
  Loads a text string from the resource file as AECHAR.
  從資源文件中讀取一個寬字符串(AECHAR)。
===========================================================================*/

boolean LoadWideText (IShell * pIShell,    // 指向IShell對象的指針
                      int16 iResourceID,   // 字符串資源ID
                      AECHAR ** pBuf,      // (輸出)保存字符串的緩沖,需要使用FREEIF()來釋放
                      char * szResFile     // 資源文件名
                      )
{
    AECHAR * wszMsg = NULL;
    int iLength = 0;

    if (!pIShell) return FALSE;

    if (pBuf) {
        // 首先使用ISHELL_LoadResData方法以獲取字符串的長度
        wszMsg = (AECHAR *) ISHELL_LoadResData(pIShell, szResFile, iResourceID, RESTYPE_STRING);
        if (wszMsg)
        {
            // 得到字符串的長度
            iLength = WSTRLEN((AECHAR *) wszMsg);
            ISHELL_FreeResData(pIShell, wszMsg);
            wszMsg = NULL;

            // 如果已經為pBuf分配過內存,則釋放它
            if (* pBuf)
                FREEIF(* pBuf);
            
            // 為pBuf分配內存
            * pBuf = (AECHAR *) MALLOC(sizeof(AECHAR) * (iLength + 1));
            if (* pBuf)
            {
                // 將已分配的內存置零
                MEMSET(* pBuf, 0, sizeof(AECHAR) * (iLength + 1));

                if (ISHELL_LoadResString(pIShell, szResFile, iResourceID, * pBuf, sizeof(AECHAR) * (iLength + 1)))
                {
                    // 成功讀取字符串,返回TRUE
                    return TRUE;
                }
            }
        }
    }

    // 釋放已分配的內存
    if (wszMsg) 
        FREEIF(wszMsg);
    if (pBuf && * pBuf) 
        FREEIF(* pBuf);

    // 讀取字符串失敗,返回FALSE
    return FALSE;
}

/*===========================================================================
FUNCTION: LoadText

DESCRIPTION:
  Loads a text string from the resource file as char.
  從資源文件中讀取一個單字節字符串(char)。
===========================================================================*/
boolean LoadText (IShell * pIShell,     // 指向IShell對象的指針
                  int16 iResourceID,    // 字符串資源ID
                  char * * pBuf,        // (輸出)保存字符串的緩沖,需要使用FREEIF()來釋放
                  char * szResFile      // 資源文件名
                  )
{
    AECHAR * wszText = NULL;
    int iLength = 0;

    if (!pIShell) return FALSE;

    // 先將字符串從資源文件中作為AECHAR讀出,再轉換為char
    if (pBuf && LoadWideText(pIShell, iResourceID, & wszText, szResFile))
    {
        iLength = WSTRLEN(wszText);
        
        // 如果已經為pBuf分配過內存,則釋放它
        if (* pBuf)
            FREEIF(* pBuf);

        // 為pBuf分配內存
        * pBuf = (char *) MALLOC(sizeof(char) * (iLength + 1));
        if (* pBuf)
        {
            // 將已分配的內存置零
            MEMSET(* pBuf, 0, sizeof(char) * (iLength + 1));
            // 將寬字符串轉為單字節字符串
            WSTRTOSTR(wszText, * pBuf, iLength + 1);
            // 釋放內存
            FREEIF(wszText);
            
            // 成功讀取字符串,返回TRUE
            return TRUE;
        }
    }

    // 釋放已分配的內存
    if (wszText) 
        FREEIF(wszText);
    if (pBuf && * pBuf) 
        FREEIF(* pBuf);

    // 讀取字符串失敗,返回FALSE
    return FALSE;
}

void PrintString(IStatic * pIStatic, AECHAR * szTitle, char * szText, boolean bAppend)
{

    if (pIStatic) {
        if (szTitle) ISTATIC_SetText(pIStatic, szTitle, NULL, AEE_FONT_BOLD, AEE_FONT_NORMAL);
        if (szText) ISTATIC_SetTextEx(pIStatic, (byte *) szText, NULL, bAppend); // the last TRUE means APPEND text
        ISTATIC_SetActive(pIStatic, TRUE);
        ISTATIC_Redraw(pIStatic);
    }
}


void PrintString2(IStatic * pIStatic, AECHAR * szTitle, AECHAR * szText, boolean bAppend)
{
    if (pIStatic) {
        if (szTitle) ISTATIC_SetText(pIStatic, szTitle, NULL, AEE_FONT_BOLD, AEE_FONT_NORMAL);
        if (szText) ISTATIC_SetTextEx(pIStatic, (byte *) szText, NULL, bAppend); // the last TRUE means APPEND text
        ISTATIC_SetActive(pIStatic, TRUE);
        ISTATIC_Redraw(pIStatic);
    }
	
}


boolean AddMenuItem(IMenuCtl * pMenu, uint16 wTextID, AECHAR * pText, uint16 wImageID, uint16 wItemID, uint32 dwData)
{
   CtlAddItem  ai;

   if (pMenu == NULL) return FALSE;
   
   // Fill in the CtlAddItem structure values
   ai.pText = pText;
   ai.pImage = NULL;
   ai.pszResImage = RES_FILE;
   ai.pszResText = RES_FILE;
   ai.wText = wTextID;
   ai.wFont = AEE_FONT_NORMAL;
   ai.wImage = wImageID;
   ai.wItemID = wItemID;
   ai.dwData = dwData;

   // Add the item to the menu control
   return IMENUCTL_AddItemEx( pMenu, &ai );
}

// 保存文件
boolean SaveFile(IShell * pIShell, IFileMgr **ppFile, char * szFile, char * szData, char * szTmpFile, long nLength)
{
    IFile *f;
	if (pIShell == NULL || ppFile == NULL) return FALSE;

	// 先刪除文件,避免重復
	DeleteFile(pIShell, ppFile, szFile);

	if(szData)
	{
		ISHELL_CreateInstance(pIShell, AEECLSID_FILEMGR, (void **)ppFile);
		f = IFILEMGR_OpenFile (*ppFile, szFile, _OFM_CREATE);
		
		if (f)
		{
/*
			//判斷空間
			if(GetFileSpace(pIShell)<(uint32)nLength)
			{
				IFILE_Release(f);
				IFILEMGR_Release(*ppFile);
				*ppFile = NULL;
				return FALSE;
			}
*/
			// 以1024字節為單位,逐步寫入文件信息
			long cstLength = 1024;
			long nLen = nLength;
			long i = 0, nBuffer = cstLength;
			char szBuffer[1024];
			
			//IFILE_Release(f);
			//f = IFILEMGR_OpenFile (*ppFile, szFile, _OFM_APPEND);
			
			while (i < nLen)
			{
				if ((nLen - i) > cstLength)
					nBuffer = cstLength;
				else
					nBuffer = nLen - i;
				
				MEMCPY(szBuffer, szData + i, nBuffer);
				IFILE_Write (f, szBuffer, nBuffer);
				
				i += nBuffer;
			}
			
			IFILE_Release(f);
		}
		else
		{
			IFILEMGR_Release(*ppFile);
			*ppFile = NULL;
			return FALSE;
		}
		
		IFILEMGR_Release(*ppFile);
		*ppFile = NULL;
	}
	else		//將臨時文件里的內容保存
	{
		ISHELL_CreateInstance(pIShell, AEECLSID_FILEMGR, (void **)ppFile);
		f = IFILEMGR_OpenFile (*ppFile, szTmpFile, _OFM_READ);
		if (f)
		{
			IFile* f1;
			FileInfo pInfo;
			IFILE_GetInfo(f,&pInfo);
			nLength = pInfo.dwSize;
			
			f1 = IFILEMGR_OpenFile (*ppFile, szFile, _OFM_CREATE);
			if(f1)
			{
/*
				//判斷空間
				if(GetFileSpace(pIShell)<(uint32)nLength)
				{
					IFILE_Release(f);
					IFILEMGR_Release(*ppFile);
					*ppFile = NULL;
					return FALSE;
				}
*/
				// 以1024字節為單位,逐步寫入文件信息
				long cstLength = 1024;
				long nLen = nLength;
				long i = 0, nBuffer = cstLength;
				char szBuffer[1024];
				
				//IFILE_Release(f);
				//f = IFILEMGR_OpenFile (*ppFile, szFile, _OFM_APPEND);
				
				while (i < nLen)
				{
					if ((nLen - i) > cstLength)
						nBuffer = cstLength;
					else
						nBuffer = nLen - i;
					IFILE_Read(f,szBuffer,nBuffer);						
					IFILE_Write (f1, szBuffer, nBuffer);
					
					i += nBuffer;
				}
				IFILE_Release(f);
				IFILE_Release(f1);
			}
			else
			{
				IFILE_Release(f);
				IFILEMGR_Release(*ppFile);
				*ppFile = NULL;
				return FALSE;
			}
		
		}
		else
		{
			IFILEMGR_Release(*ppFile);
			*ppFile = NULL;
			return FALSE;
		}
		IFILEMGR_Release(*ppFile);
		*ppFile = NULL;
	}
	return TRUE;
}

// 刪除指定文件
boolean DeleteFile(IShell * pIShell, IFileMgr **ppFile, char * szFile)
{
	boolean bResult = FALSE;
	if (pIShell == NULL || ppFile == NULL) return FALSE;

    ISHELL_CreateInstance(pIShell, AEECLSID_FILEMGR, (void **)ppFile);
	bResult = (IFILEMGR_Remove(*ppFile, szFile) == SUCCESS);

    IFILEMGR_Release(*ppFile);
    *ppFile = NULL;
	return bResult;		
}

// 保存文本信息至文件
int SaveContent(IShell * pIShell, IFileMgr **ppFile, char * szTempFile, AECHAR* szName, long nType, long nID)
{
	char szFile[256];
	char szExt[4];
   	boolean bTemp;
	if (pIShell == NULL || ppFile == NULL) return SAVEFILE_ERROR;
	// 獲取文件名稱
	switch (nType & 0xffff0000)
	{
	case SOUND_MID:
		STRCPY(szExt, "mid");
		break;
	case SOUND_MMF:
		STRCPY(szExt, "mmf");
		break;
	case SOUND_PMD:
		STRCPY(szExt, "pmd");
		break;
	case SOUND_MP3:
		STRCPY(szExt, "mp3");
		break;
	case SOUND_QCP:
		STRCPY(szExt, "qcp");
		break;
	case SOUND_WAV:
		STRCPY(szExt, "wav");
		break;
	case PIC_PNG:
		STRCPY(szExt, "png");
		break;
	case PIC_BMP:
		STRCPY(szExt, "bmp");
		break;
	case PIC_GIF:
		STRCPY(szExt, "gif");
		break;
	case PIC_JPG:
		STRCPY(szExt, "jpg");
		break;
	case PIC_BCI:
		STRCPY(szExt, "bci");
		break;
	default:
		STRCPY(szExt, "txt");
		break;
	}

	bTemp = CheckFileName(pIShell,ppFile, szFile, szExt, nID);
	if (!bTemp)
	{// 錯誤提示
	/*	AECHAR * str = NULL;
		LoadWideText(pIShell, IDS_ERR_OVERMAXFILES, &str, RES_FILE);
		PrintString2(pWebData->m_pIStatic, szName, str, FALSE);
		FREEIF(str);*/
		
		return SAVEFILE_EXIST;
	}
	
	// 保存文件
	bTemp = SaveFile(pIShell, ppFile, szFile, NULL,szTempFile, 0);
	if (!bTemp)
	{// 錯誤提示
	/*	AECHAR * str = NULL;
		LoadWideText(pMe->app.m_pIShell, IDS_ERR_WRITEFILE, &str, RES_FILE);
		PrintString2(pWebData->m_pIStatic, pWebData->szCategory, str, FALSE);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区日韩av| 不卡电影一区二区三区| 国内精品在线播放| 色综合久久99| 久久先锋资源网| 肉丝袜脚交视频一区二区| 成人97人人超碰人人99| 精品国产乱码久久| 亚洲一区二区av在线| 成人精品免费视频| 欧美r级电影在线观看| 亚洲国产精品久久人人爱| 99国产精品久久久久久久久久久| 日韩西西人体444www| 性感美女久久精品| 色婷婷精品大在线视频| 亚洲欧洲精品一区二区精品久久久| 九色综合狠狠综合久久| 欧美一区三区二区| 亚洲第一搞黄网站| 欧美综合亚洲图片综合区| 国产精品久久久久久久久图文区| 国产精品一区二区免费不卡 | 国产欧美精品国产国产专区| 免费在线欧美视频| 欧美日韩精品一区二区三区蜜桃 | 自拍av一区二区三区| 国产精品香蕉一区二区三区| 亚洲精品一区二区三区香蕉 | 粉嫩13p一区二区三区| 国产亚洲欧美激情| 国产成人免费视频网站高清观看视频 | www.亚洲色图.com| 国产欧美精品一区二区色综合| 久久99国内精品| 久久免费的精品国产v∧| 国产综合色在线视频区| 国产日产欧美一区二区视频| 国产成人啪免费观看软件| 久久久久久99久久久精品网站| 国产精品一色哟哟哟| 国产精品久久久久久久久久免费看| 丁香一区二区三区| 综合久久综合久久| 精品婷婷伊人一区三区三| 午夜久久久久久久久| 日韩久久久久久| 国产白丝网站精品污在线入口| 国产日韩成人精品| 一本到不卡精品视频在线观看| 亚洲免费色视频| 欧美日韩成人在线| 久久国产精品99久久人人澡| 欧美国产精品一区二区三区| av电影在线观看一区| 亚洲午夜视频在线观看| 日韩视频在线观看一区二区| 国产精品123区| 亚洲一区中文日韩| 精品国产乱码久久久久久影片| 国产麻豆视频一区二区| 一区二区三区不卡在线观看| 91精品在线麻豆| 高清视频一区二区| 午夜精品福利在线| 国产日产欧美一区二区三区| 在线观看视频91| 国产一区在线精品| 亚洲电影一级黄| 欧美激情自拍偷拍| 91精品国产品国语在线不卡| 成人中文字幕合集| 日韩成人一区二区三区在线观看| 中文字幕免费一区| 欧美电影免费观看高清完整版在线 | 色婷婷av一区| 国产精品亚洲专一区二区三区| 一卡二卡三卡日韩欧美| 久久麻豆一区二区| 欧美一级黄色录像| 欧美日韩综合在线| av电影天堂一区二区在线| 久久国产剧场电影| 亚洲国产毛片aaaaa无费看 | 久久人人97超碰com| 欧美日韩精品欧美日韩精品一| 国产不卡在线播放| 精品一区二区三区在线观看国产 | 国产精品一区一区| 蜜臀精品一区二区三区在线观看| 亚洲欧洲色图综合| 国产精品人成在线观看免费| 精品剧情在线观看| 日韩你懂的在线播放| 欧美色综合久久| 色偷偷成人一区二区三区91| 国产91精品入口| 麻豆精品视频在线观看| 日本中文在线一区| 视频在线观看一区| 婷婷综合五月天| 偷窥少妇高潮呻吟av久久免费| 亚洲午夜国产一区99re久久| 亚洲男人的天堂在线aⅴ视频| 国产精品超碰97尤物18| 国产精品亲子乱子伦xxxx裸| 国产亚洲精品bt天堂精选| 精品国产三级电影在线观看| 欧美变态tickling挠脚心| 日韩欧美在线123| 欧美成人女星排名| ww亚洲ww在线观看国产| 精品国产一区二区三区久久久蜜月| 欧美日本乱大交xxxxx| 欧美视频一区在线观看| 欧美日韩高清在线| 69堂精品视频| 欧美电影免费提供在线观看| 精品久久久久久久久久久久久久久 | 九色|91porny| 国产麻豆欧美日韩一区| 国产sm精品调教视频网站| av在线不卡观看免费观看| av在线这里只有精品| 日本精品一级二级| 欧美丰满少妇xxxxx高潮对白| 3d成人动漫网站| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 丝袜国产日韩另类美女| 免费av成人在线| 国产一区二区久久| 成人动漫视频在线| 欧美亚洲综合色| 日韩欧美中文字幕制服| 国产亚洲欧美一级| 亚洲一区二区视频在线观看| 美女被吸乳得到大胸91| 成人免费视频caoporn| 欧美亚一区二区| 精品国产伦一区二区三区观看方式| 国产校园另类小说区| 亚洲综合偷拍欧美一区色| 日本成人在线网站| 国产成人精品三级| 欧美日韩视频第一区| 久久婷婷国产综合精品青草 | 91蝌蚪porny| 欧美肥妇毛茸茸| 久久精品亚洲精品国产欧美| 一区2区3区在线看| 狠狠色丁香婷综合久久| 91官网在线观看| 国产网站一区二区三区| 午夜视频久久久久久| 国产激情一区二区三区| 欧美女孩性生活视频| 欧美高清在线视频| 天天影视网天天综合色在线播放 | 欧美最猛性xxxxx直播| 精品欧美一区二区久久| 亚洲欧美另类图片小说| 国内精品自线一区二区三区视频| 欧美午夜一区二区三区免费大片| 久久久精品综合| 日本麻豆一区二区三区视频| 色哦色哦哦色天天综合| 国产视频911| 麻豆成人在线观看| 欧美日韩久久久一区| 国产精品久久久久久久久果冻传媒| 捆绑紧缚一区二区三区视频| 欧洲精品在线观看| 日韩一区欧美小说| 国产精品 日产精品 欧美精品| 欧美精品久久天天躁| 亚洲品质自拍视频| 成人国产亚洲欧美成人综合网| 欧美xxx久久| 日韩av电影天堂| 欧美午夜在线一二页| 一区二区三区精密机械公司| 国产xxx精品视频大全| 日韩一区二区三区四区| 性做久久久久久| 欧美伊人久久大香线蕉综合69| 亚洲视频电影在线| kk眼镜猥琐国模调教系列一区二区| 久久精品一区二区三区不卡| 精品一区二区在线视频| 精品国内片67194| 国产在线播放一区| 久久久久久夜精品精品免费| 精品在线播放午夜| 久久人人97超碰com| 国产精品一区二区男女羞羞无遮挡| 精品免费日韩av| 国产精品自在欧美一区| 国产精品网站导航| 91视频观看免费| 亚洲成人三级小说|