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

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

?? msg.cpp

?? ril source code for Windows CE
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle || !lpMsgServiceInfo)
    {
        hr = E_FAIL;
        goto Error;
    }

    // Add "AT"
    (void)strncpyz(szWalk, "AT", MAX_PATH - (szWalk - szCmd));
    szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
    DEBUGCHK(NULL != szWalk);

    if (lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_SERVICE)
    {
        if (RIL_MSGSVCTYPE_PHASE2 == lpMsgServiceInfo->dwService)
        {
            nValue = 0;
        }
        else if (RIL_MSGSVCTYPE_PHASE2PLUS == lpMsgServiceInfo->dwService)
        {
            nValue = 1;
        }
        else
        {
            DEBUGCHK(FALSE);
        }

        // Add "+CSMS=<service>"
        (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), "+CSMS=%u", nValue);
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);
    }

    if ((lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_READLOCATION) ||
        (lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_WRITELOCATION) ||
        (lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_STORELOCATION))
    {
        // At least one location is specified

        // Add ";", if needed
        if (szWalk != szCmd + 2)
        {  // NO_TYPO: 30
            (void)strncpyz(szWalk, ";", MAX_PATH - (szWalk - szCmd));
            szWalk++;
        }

        // Add "+CPMS="
        (void)strncpyz(szWalk, "+CPMS=", MAX_PATH - (szWalk - szCmd));
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);

        if (lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_READLOCATION)
        {
            nValue = lpMsgServiceInfo->dwReadLocation;
            DEBUGCHK(NUM_MSGLOCS > nValue);
            if ( RIL_MSGLOC_UNKNOWN == nValue || nValue >= NUM_MSGLOCS )
            {
                hr = E_INVALIDARG;
                goto Error;
            }

            // Add "<read_storage>"
            (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), "\"%s\"", g_rgszMsgLocations[nValue]);
            szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
            DEBUGCHK(NULL != szWalk);

            rmsi.dwReadLocation = nValue;
            rmsi.dwParams |= RIL_PARAM_MSTI_READLOCATION;
        }

        // Add ","
        (void)strncpyz(szWalk, ",", MAX_PATH - (szWalk - szCmd));
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);

        if (lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_WRITELOCATION)
        {
            nValue = lpMsgServiceInfo->dwWriteLocation;
            DEBUGCHK(NUM_MSGLOCS > nValue);
            if ( RIL_MSGLOC_UNKNOWN == nValue || nValue >= NUM_MSGLOCS )
            {
                hr = E_INVALIDARG;
                goto Error;
            }

            // Add "<write_storage>"
            (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), "\"%s\"", g_rgszMsgLocations[nValue]);
            szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
            DEBUGCHK(NULL != szWalk);

            rmsi.dwWriteLocation = nValue;
            rmsi.dwParams |= RIL_PARAM_MSTI_WRITELOCATION;
        }

        // Add ","
        (void)strncpyz(szWalk, ",", MAX_PATH - (szWalk - szCmd));
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);

        if (lpMsgServiceInfo->dwParams & RIL_PARAM_MSI_STORELOCATION)
        {
            nValue = lpMsgServiceInfo->dwStoreLocation;
            DEBUGCHK(NUM_MSGLOCS > nValue);
            if ( RIL_MSGLOC_UNKNOWN == nValue || nValue >= NUM_MSGLOCS )
            {
                hr = E_INVALIDARG;
                goto Error;
            }

            // Add "<store_storage>"
            (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), "\"%s\"", g_rgszMsgLocations[nValue]);
            szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
            DEBUGCHK(NULL != szWalk);

            rmsi.dwStoreLocation = nValue;
            rmsi.dwParams |= RIL_PARAM_MSTI_STORELOCATION;
        }
    }

    // Add "<CR>"
    (void)strncpyz(szWalk, "\r", MAX_PATH - (szWalk - szCmd));  // NO_TYPO: 30

    if (rmsi.dwParams)
    {
        pnd = new CNotificationData;
        if (pnd)
        {
            rmsi.cbSize = sizeof(RILMSGSTORAGEINFO);
            if (!pnd->InitFromRealBlob(RIL_NOTIFY_MSGSTORAGECHANGED, &rmsi, sizeof(RILMSGSTORAGEINFO)))
            {
                delete pnd;
                pnd = NULL;
            }
        }
    }
    if (!QueueCmd(pHandle, szCmd, CMDOPT_NONE, APIID_SETMSGSERVICEOPTIONS, NULL, pnd, hr))
    {
        hr = E_FAIL;
        goto Error;
    }
    pnd = NULL;

    Error:
    return hr;
}


//
//
//
static HRESULT ParseGetMsgConfigRsp(LPCSTR szRsp, void*& pBlob, UINT& cbBlob)
{
    FUNCTION_TRACE(ParseGetMsgConfigRsp);
    UINT nValue;
    char szAddress[MAX_PATH];
    //    char szLanguageRange[MAX_PATH];
    RILMSGCONFIG* prmc = NULL;
    HRESULT hr = S_OK;
    ENCODING_TYPE etEncoding = ENCODING_GSMDEFAULT_HEX;

    pBlob = NULL;
    cbBlob = 0;

    prmc = (RILMSGCONFIG*)AllocBlob(sizeof(RILMSGCONFIG));
    if (!prmc)
    {
        hr = E_OUTOFMEMORY;
        goto Error;
    }
    memset(prmc, 0x00, sizeof(RILMSGCONFIG));
    prmc->cbSize = sizeof(RILMSGCONFIG);

    // Parse "<prefix>+CSCA: <svcctr_addr>,<type_of_addr><postfix>"
    if (!ParseRspPrefix(szRsp, szRsp)                               ||
        !MatchStringBeginning(szRsp, "+CSCA: ", szRsp)              ||
        !ParseString(szRsp, szAddress, MAX_PATH, szRsp)             ||
        !MatchStringBeginning(szRsp, ",", szRsp)                    ||
        !ParseUIntAndVerifyAbove(szRsp, TRUE, 0x100, nValue, szRsp) ||
        !ParseRspPostfix(szRsp, szRsp))
    {
        hr = E_FAIL;
        goto Error;
    }

    etEncoding = g_rppPDDParams->etMessageEncodingType;

    // Convert data to address structure
    if (!StringToRILAddress(szAddress, (BYTE)nValue, prmc->raSvcCtrAddress, etEncoding))
    {
        hr = E_FAIL;
        goto Error;
    }
    prmc->dwParams |= RIL_PARAM_MC_SVCCTRADDRESS;

    pBlob = (void*)prmc;
    cbBlob = sizeof(RILMSGCONFIG);

    Error:
    if (FAILED(hr))
    {
        FreeBlob(prmc);
    }
    return hr;

}


//
//
//
HRESULT RILDrv_GetMsgConfig(DWORD dwParam)
{
    FUNCTION_TRACE(RILDrv_GetMsgConfig);
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle)
    {
        hr = E_FAIL;
        goto Error;
    }

    if (!QueueCmd(pHandle, "AT+CSCA?\r", CMDOPT_NONE, APIID_GETMSGCONFIG, ParseGetMsgConfigRsp, NULL, hr))
    {
        hr = E_FAIL;
        goto Error;
    }

    Error:
    return hr;
}


//
//
//
HRESULT RILDrv_SetMsgConfig(DWORD dwParam, const RILMSGCONFIG* lpMsgConfigInfo)
{
    FUNCTION_TRACE(RILDrv_SetMsgConfig);
    char szCmd[MAXLENGTH_MSGIDS + MAX_PATH * 3];
    LPSTR szWalk = szCmd;
    char szSvcCtrAddress[MAX_PATH];
    BYTE bTypeOfAddress;
    HRESULT hr = S_OK;
    ENCODING_TYPE etEncoding = ENCODING_GSMDEFAULT_HEX;
    
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle || !lpMsgConfigInfo)
    {
        hr = E_FAIL;
        goto Error;
    }

    (void)strncpyz(szWalk, "AT", MAX_PATH - (szWalk - szCmd));
    szWalk += 2;

    if (lpMsgConfigInfo->dwParams & RIL_PARAM_MC_SVCCTRADDRESS)
    {

        etEncoding = g_rppPDDParams->etMessageEncodingType;
        
        hr = RILAddressToString(lpMsgConfigInfo->raSvcCtrAddress, szSvcCtrAddress, MAX_PATH, bTypeOfAddress, etEncoding);
        if (FAILED(hr))
        {
            goto Error;
        }
        (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), "+CSCA=\"%s\",%u", szSvcCtrAddress, bTypeOfAddress);
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);
    }

    (void)strncpyz(szWalk, ";+CSAS\r", MAX_PATH - (szWalk - szCmd));  // NO_TYPO: 30

    if (!QueueCmd(pHandle, szCmd, CMDOPT_NONE, APIID_SETMSGCONFIG, NULL, NULL, hr))
    {
        hr = E_FAIL;
        goto Error;
    }

    Error:
    return hr;
}

static RILCBMSGCONFIG * AllocCbMsgConfig(DWORD dwNumRanges)
{
    UINT Size = 0;
    if ( !safeIntUMul( dwNumRanges, sizeof(RILRANGE), &Size ) ||
         !safeIntUAdd( sizeof(RILCBMSGCONFIG), Size, &Size ) )
    {
        ASSERT( FALSE );
        return NULL;
    }

    RILCBMSGCONFIG* prmc = (RILCBMSGCONFIG*)AllocBlob(Size);
    if (NULL != prmc)
    {
        memset(prmc, 0x00, Size);
        prmc->cbSize = Size;
    }

    return prmc;
}

//
//
//
static HRESULT ParseBroadcastMsgIDs(const LPCSTR szBroadcastMsgIDs,
                                    RILCBMSGCONFIG ** pprCbMsgConfig)
{
    DEBUGCHK(NULL != szBroadcastMsgIDs);

    HRESULT hr = S_OK;
    DWORD dwNumRanges;
    LPCSTR szDummy;
    DWORD dwNumIDs = 0;

    if (*szBroadcastMsgIDs)
    {
        dwNumIDs++;

        for (LPCSTR szPtr = szBroadcastMsgIDs; '\0' != *szPtr; szPtr++)
        {
            if (',' == *szPtr)
                dwNumIDs++;
        }
    }

    *pprCbMsgConfig = AllocCbMsgConfig(dwNumIDs);
    if (NULL == *pprCbMsgConfig)
    {
        hr = E_OUTOFMEMORY;
        goto Error;
    }

    if (!ParseRangesFromString(szBroadcastMsgIDs,
                               (*pprCbMsgConfig)->rgrrBroadcastMsgIDs,
                               dwNumRanges,
                               dwNumIDs,
                               szDummy))
    {
        hr = E_FAIL;
        goto Error;
    }

    DEBUGCHK(dwNumRanges == dwNumIDs);

Error:
    return hr;
}

//
//
//
static HRESULT ParseGetCellBroadcastMsgConfigRsp(LPCSTR szRsp, void*& pBlob, UINT& cbBlob)
{
    FUNCTION_TRACE(ParseGetCellBroadcastMsgConfigRsp);
    UINT nValue;
    BOOL fAccept = FALSE;
    char szLanguageRange[MAX_PATH];
    char szBroadcastMsgIDs[MAXLENGTH_MSGIDS];
    RILCBMSGCONFIG* prmc = NULL;
    HRESULT hr = S_OK;

    pBlob = NULL;
    cbBlob = 0;

    // Parse "<prefix>+CSCB: <mode>"
    if (!ParseRspPrefix(szRsp, szRsp)                  ||
        !MatchStringBeginning(szRsp, "+CSCB: ", szRsp) ||
        !ParseUIntAndVerifyAbove(szRsp, TRUE, 2, nValue, szRsp)) {
        hr = E_FAIL;
        goto Error;
    }

    // Cache accept value for when we have a structure allocated
    fAccept = (nValue == 0);

    // Parse ",<msg_ids>,<msg_langs><postfix>"
    if (!MatchStringBeginning(szRsp, ",", szRsp)                              ||
        !ParseString(szRsp, szBroadcastMsgIDs, MAXLENGTH_MSGIDS, szRsp))
    {
        hr = E_FAIL;
        goto Error;
    }

    // Parse broadcast message IDs
    // This also allocates the blob
    hr = ParseBroadcastMsgIDs(szBroadcastMsgIDs, &prmc);
    if (FAILED(hr))
    {
        goto Error;
    }

    prmc->fAccept = fAccept;
    prmc->dwParams |= (RIL_PARAM_CBMC_BROADCASTMSGIDS | RIL_PARAM_CBMC_ACCEPTIDS);

    if (MatchStringBeginning(szRsp, ",", szRsp))
    {
        if (!ParseString(szRsp, szLanguageRange, MAX_PATH, szRsp))
        {
            hr = E_FAIL;
            goto Error;
        }

        // Parse accepted languages
        if (!ParseBroadcastLangRange(szLanguageRange, prmc->dwBroadcastMsgLangs)) {
            hr = E_FAIL;
            goto Error;
        }

        prmc->dwParams |= RIL_PARAM_CBMC_BROADCASTMSGLANGS;
    }

    if (!ParseRspPostfix(szRsp, szRsp))
    {
        hr = E_FAIL;
        goto Error;
    }

    pBlob = (void*)prmc;
    cbBlob = prmc->cbSize;

    Error:
    if (FAILED(hr))
    {
        FreeBlob(prmc);
    }
    return hr;

}

//
//
//
HRESULT RILDrv_GetCellBroadcastMsgConfig(DWORD dwParam)
{
    FUNCTION_TRACE(RILDrv_GetCellBroadcastMsgConfig);
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle)
    {
        hr = E_FAIL;
        goto Error;
    }

    if (!QueueCmd(pHandle, "AT+CSCB?\r", CMDOPT_NONE, APIID_GETCBMSGCONFIG,
                  ParseGetCellBroadcastMsgConfigRsp, NULL, hr))
    {
        hr = E_FAIL;
        goto Error;
    }

    Error:
    return hr;
}

//
//
//
HRESULT RILDrv_SetCellBroadcastMsgConfig(DWORD dwParam, const RILCBMSGCONFIG* lpMsgConfigInfo)
{
    FUNCTION_TRACE(RILDrv_SetCellBroadcastMsgConfig);
    char szCmd[MAXLENGTH_MSGIDS + MAX_PATH * 3];
    LPSTR szWalk = szCmd;
    char szCBMsgLangs[MAX_PATH];
    char szBroadcastMsgIDs[MAX_PATH];
    HRESULT hr = S_OK;
    CRilInstanceHandle* pHandle = ExtractHandle(dwParam);
    if (!pHandle || !lpMsgConfigInfo)
    {
        hr = E_FAIL;
        goto Error;
    }

    if (!(lpMsgConfigInfo->dwParams & RIL_PARAM_CBMC_ACCEPTIDS))
    {
        hr = E_INVALIDARG;
        goto Error;
    }

    (void)_snprintfz(szCmd, MAX_PATH, "AT+CSCB=%d", (lpMsgConfigInfo->fAccept?0:1));
    szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
    DEBUGCHK(NULL != szWalk);

    if ((lpMsgConfigInfo->dwParams & RIL_PARAM_CBMC_BROADCASTMSGIDS))
    {
        MakeBroadcastMsgIDs(lpMsgConfigInfo->rgrrBroadcastMsgIDs,
                            (lpMsgConfigInfo->cbSize - sizeof(RILCBMSGCONFIG)) / sizeof(RILRANGE),
                            szBroadcastMsgIDs,
                            MAX_PATH);

        (void)_snprintfz(szWalk, MAX_PATH, ",\"%s\"", szBroadcastMsgIDs);
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);

    }

    if (lpMsgConfigInfo->dwParams & RIL_PARAM_CBMC_BROADCASTMSGLANGS)
    {
        MakeBroadcastLangRange(lpMsgConfigInfo->dwBroadcastMsgLangs, szCBMsgLangs, MAX_PATH);

        (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), "%s,\"%s\"", (lpMsgConfigInfo->dwParams & RIL_PARAM_CBMC_BROADCASTMSGIDS)?"":",", szCBMsgLangs);
        szWalk = strchr(szWalk, '\0');  // NO_TYPO: 27
        DEBUGCHK(NULL != szWalk);
    }

    (void)_snprintfz(szWalk, MAX_PATH - (szWalk - szCmd), ";+CSAS\r");

    if (!QueueCmd(pHandle, szCmd, CMDOPT_NONE, APIID_SETCBMSGCONFIG, NULL, NULL, hr))
    {
        hr = E_FAIL;
        goto Error;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线免费播放| 日韩精品亚洲专区| 成人深夜福利app| 日韩一区中文字幕| 色欧美88888久久久久久影院| 国产精品午夜在线观看| 91视频你懂的| 午夜精品久久久久久不卡8050| 欧美一区二区视频免费观看| 久久er99精品| 亚洲日本护士毛茸茸| 欧美日韩专区在线| 国产自产2019最新不卡| 国产精品嫩草影院av蜜臀| 91国偷自产一区二区三区观看| 婷婷激情综合网| 久久久九九九九| 一本大道av伊人久久综合| 亚洲国产一区在线观看| 欧美成人一区二区三区| 成人激情免费网站| 日韩福利视频导航| 国产精品国产自产拍高清av王其 | 中文字幕一区在线观看视频| 91一区一区三区| 麻豆国产精品官网| 亚洲人精品一区| 欧美mv和日韩mv的网站| 不卡电影一区二区三区| 日韩精品成人一区二区三区| 久久久99久久| 777xxx欧美| 99久久免费国产| 精品一区二区三区视频在线观看| 国产精品电影一区二区三区| 欧美久久高跟鞋激| gogo大胆日本视频一区| 久久精品国产澳门| 亚洲国产精品久久久久婷婷884| 久久久综合精品| 欧美精品vⅰdeose4hd| 成人高清免费在线播放| 日本aⅴ精品一区二区三区| 亚洲视频电影在线| 国产日本亚洲高清| 日韩视频在线一区二区| 91福利在线播放| 成人精品小蝌蚪| 国产成人免费av在线| 日韩成人一区二区| 亚洲一区视频在线| 亚洲欧美区自拍先锋| 国产日韩影视精品| 精品久久久久久久久久久久久久久久久| 色综合久久综合网97色综合 | 成人爽a毛片一区二区免费| 日韩—二三区免费观看av| 亚洲精品日日夜夜| 中文子幕无线码一区tr| 精品人伦一区二区色婷婷| 3d动漫精品啪啪1区2区免费| 欧美做爰猛烈大尺度电影无法无天| 成人成人成人在线视频| 国产91丝袜在线播放| 久久99精品国产91久久来源| 青青草国产精品亚洲专区无| 亚洲一区视频在线观看视频| 亚洲精品免费播放| 亚洲免费成人av| 亚洲精品视频免费观看| 一区二区三区在线高清| 伊人夜夜躁av伊人久久| 一区二区在线免费| 亚洲午夜成aⅴ人片| 亚洲综合一区二区三区| 亚洲一线二线三线久久久| 一区二区在线观看视频 | 亚洲一区二区三区四区在线观看| 日韩一区在线播放| 亚洲精品第1页| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲天堂成人网| 一区二区三区蜜桃网| 亚洲美女少妇撒尿| 亚洲成在线观看| 日韩福利视频导航| 激情综合网最新| 国产一区二区免费在线| 国产精品一区二区在线观看网站 | 日韩一区二区免费在线观看| 欧美一区二区视频在线观看2020| 日韩一区国产二区欧美三区| 精品国产露脸精彩对白| 中文字幕精品三区| 亚洲日本在线天堂| 午夜av区久久| 久久99久国产精品黄毛片色诱| 国产精品一区二区免费不卡| 国产一区二区久久| 99精品桃花视频在线观看| 欧美午夜电影一区| 欧美成人a∨高清免费观看| 国产亚洲精品资源在线26u| 17c精品麻豆一区二区免费| 亚洲成人1区2区| 国产一区二区不卡老阿姨| 99精品久久久久久| 日韩一级黄色大片| 国产精品动漫网站| 日本不卡在线视频| 成人性生交大片免费看中文| 一本色道a无线码一区v| 日韩午夜激情视频| 国产精品久久777777| 天堂久久一区二区三区| 岛国精品在线播放| 欧美日韩精品一区视频| 国产亚洲精久久久久久| 亚洲一区二区三区四区在线免费观看| 精品影视av免费| 在线观看日韩国产| 日本一区二区综合亚洲| 午夜精品久久久久久久蜜桃app| 国产精品996| 欧美日产在线观看| 中文字幕一区二区视频| 免费在线观看精品| 色老汉av一区二区三区| 久久色在线视频| 亚洲第一狼人社区| caoporn国产精品| 日韩欧美一二区| 香蕉成人啪国产精品视频综合网| 福利91精品一区二区三区| 日韩写真欧美这视频| 亚洲一区在线免费观看| 成人免费毛片a| 久久久精品免费网站| 日韩高清不卡一区二区| 91色婷婷久久久久合中文| 久久人人爽人人爽| 久久草av在线| 欧美日韩三级在线| 亚洲综合av网| 色成人在线视频| 综合激情成人伊人| 成+人+亚洲+综合天堂| 久久综合国产精品| 蜜桃久久av一区| 欧美一级理论片| 天天影视涩香欲综合网| 欧美在线观看视频一区二区三区| 国产精品国产自产拍高清av王其| 国产精品一区二区不卡| 日韩午夜av一区| 久久精品国产精品青草| 日韩女优制服丝袜电影| 天天av天天翘天天综合网| 欧美视频一区在线观看| 一区二区三区四区高清精品免费观看 | 欧美色区777第一页| 一区二区三区欧美久久| 一本一道综合狠狠老| 亚洲素人一区二区| 99久久精品国产麻豆演员表| ...xxx性欧美| 97久久超碰国产精品| 亚洲欧美另类在线| 一本大道久久a久久综合婷婷| 亚洲色欲色欲www| 在线观看视频91| 五月婷婷激情综合| 欧美一二三区在线观看| 国内精品在线播放| 欧美国产成人在线| 91蜜桃传媒精品久久久一区二区| 亚洲黄色免费电影| 欧美日韩视频专区在线播放| 婷婷久久综合九色综合伊人色| 91精品欧美福利在线观看| 久久国产精品免费| 中文字幕av一区二区三区免费看 | 中文乱码免费一区二区 | 91麻豆免费看片| 亚洲国产aⅴ天堂久久| 91精品国产美女浴室洗澡无遮挡| 秋霞成人午夜伦在线观看| 精品久久人人做人人爱| 懂色av一区二区三区蜜臀| 日韩毛片精品高清免费| 欧美日韩一二区| 国产一级精品在线| 亚洲欧美日韩国产综合在线| 欧美日韩成人一区| 国产精品系列在线播放| 亚洲卡通欧美制服中文| 日韩精品一区二区三区在线| 粉嫩13p一区二区三区| 亚洲第一二三四区| 久久久精品欧美丰满|