青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Cpper
C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
#include <Windows.h>   
#include 
<wininet.h>   
#include 
<stdio.h>   
#include 
<string>   
#include 
<io.h>

using namespace std;

#pragma comment(lib, 
"wininet.lib")

const DWORD DWORD_MAX_CCH_OF_TEST_URL = 256;
const DWORD DWORD_MAX_CCH_OF_HOST_NAME = 128;
const DWORD DWORD_MAX_CCH_OF_URL_PATH = 256;

int breakpointDownload(const std::wstring& url, const std::wstring& folder, void(*cb)(double),std::wstring& name)
{
    
int index = url.find_last_of(L'/');
    std::wstring filename 
= url.substr(index + 1);
    index 
= filename.find_first_of(L'?');
    
if (index != std::wstring::npos)
        filename 
= filename.substr(0,index);

    
if (!folder.empty())
        filename 
= folder + L"\\" + filename;

    std::wstring tempfile 
= filename + L".dl";

    _wremove(filename.c_str());

    HINTERNET hInetOpen 
= NULL;
    HINTERNET hInetConnect 
= NULL;
    HINTERNET hInetRequest 
= NULL;
    HANDLE lhFile 
= NULL;
    
    URL_COMPONENTS ldCrackedURL;
    ZeroMemory(
&ldCrackedURL, sizeof(URL_COMPONENTS));
    ldCrackedURL.dwStructSize 
= sizeof(URL_COMPONENTS);                

    TCHAR szHostName[DWORD_MAX_CCH_OF_HOST_NAME] 
= { 0 };
    ldCrackedURL.lpszHostName 
= szHostName;
    ldCrackedURL.dwHostNameLength 
= DWORD_MAX_CCH_OF_HOST_NAME;         
    
    wchar_t szUrlPath[DWORD_MAX_CCH_OF_URL_PATH] 
= { 0 };
    ldCrackedURL.lpszUrlPath 
= szUrlPath;
    ldCrackedURL.dwUrlPathLength 
= DWORD_MAX_CCH_OF_URL_PATH;        

    
if (FALSE == InternetCrackUrl(url.c_str(),url.size(), 0&ldCrackedURL))
    {
        
return 0;
    }

    hInetOpen 
= InternetOpen(L"MSIE/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    
if (NULL == hInetOpen)
    {
        
return 0;
    }

    hInetConnect 
= InternetConnect(hInetOpen, ldCrackedURL.lpszHostName, ldCrackedURL.nPort, NULL, NULL, INTERNET_SERVICE_HTTP, 00);
    
if (NULL == hInetConnect)
    {
        
return 0;
    }
 
    lhFile 
= CreateFile(tempfile.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    
if (lhFile == INVALID_HANDLE_VALUE)
    {
        
return 0;
    }

    LARGE_INTEGER ldFileSize;
    
if (FALSE == GetFileSizeEx(lhFile, &ldFileSize))
    {
        
return 0;
    }

    LONGLONG lllStartPos 
= 0;
    
if(0 == ldFileSize.QuadPart)
    {
    }
    
else
    {
        
if (INVALID_SET_FILE_POINTER == SetFilePointer(lhFile, 0, NULL, FILE_END))
        {
            
return 0;
        }

        lllStartPos 
= ldFileSize.QuadPart;
    }

    wchar_t lscRangeStartPosition[
30= { 0 };
    
if (0 != _i64tow_s((__int64)(lllStartPos), lscRangeStartPosition, sizeof(lscRangeStartPosition), 10))
    {
        
return 0;
    }

    wstring loAdditionalHeader 
= L"Range: bytes=";
    loAdditionalHeader 
+= lscRangeStartPosition;            
    loAdditionalHeader 
+= L"-\r\n";

    
const wchar_t* lplpszAcceptTypes[] = { L"*/*", NULL };
    hInetRequest 
= HttpOpenRequest(hInetConnect,L"GET", ldCrackedURL.lpszUrlPath,L"HTTP/1.1", NULL,lplpszAcceptTypes, 00);
    
if (NULL == hInetConnect)
    {
        
return 0;
    }

    
if (FALSE == HttpSendRequest(hInetRequest, loAdditionalHeader.c_str(), loAdditionalHeader.size(), NULL, 0))
    {
        
return 0;
    }

    DWORD ldwStatusCode;
    DWORD ldwCbOfStatusCode 
= sizeof(ldwStatusCode);
    
if (FALSE == HttpQueryInfo(hInetRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &ldwStatusCode, &ldwCbOfStatusCode, 0))
    {
        
return 0;
    }

    
if (416 == ldwStatusCode)        
    {
        _wrename(tempfile.c_str(), filename.c_str());
        name 
= filename;
        
return 1;
    }
    
else if (200 != ldwStatusCode && 206 != ldwStatusCode)  
    {
        
return 0;
    }

    DWORD dwFile 
= 10000;
    DWORD dwSize 
= sizeof(DWORD);
    
if (FALSE == HttpQueryInfo(hInetRequest, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &dwFile, &dwSize, 0))
    {
    }
    
else
        dwFile 
+= lllStartPos;

    BYTE lpbBufferToReceiveData[
2048];   
    DWORD ldwCbBuffer 
= 2048;
    DWORD ldwCrtCbReaded;            
    DWORD ldwCbWritten 
= 0;              
    
bool lbIsOk = false;

    LONGLONG lllCbAllRead 
= lllStartPos;
    
do
    {
        
if (FALSE == InternetReadFile(hInetRequest, lpbBufferToReceiveData, ldwCbBuffer, &ldwCrtCbReaded))
        {
            
break;
        }

        
if (ldwCrtCbReaded == 0)           
        {
            
break;
        }

        
if (FALSE == WriteFile(lhFile, lpbBufferToReceiveData, ldwCrtCbReaded, &ldwCbWritten, NULL) || ldwCbWritten != ldwCrtCbReaded)
        {
            
break;
        }

        ZeroMemory(lpbBufferToReceiveData, ldwCrtCbReaded);

        lllCbAllRead 
+= ldwCrtCbReaded;

        
double p = lllCbAllRead * 100.0 / dwFile;
        
if (p > 100)
            p 
= 100;
        
if (cb)
            cb(p);
    } 
while (true);

    
if (NULL != lhFile)
    {
        CloseHandle(lhFile);
    }

    
if (NULL != hInetRequest)
    {
        InternetCloseHandle(hInetRequest);
    }
    
if (NULL != hInetConnect)
    {
        InternetCloseHandle(hInetConnect);
    }
    
if (NULL != hInetOpen)
    {
        InternetCloseHandle(hInetOpen);
    }

    _wrename(tempfile.c_str(), filename.c_str());
    name 
= filename;
    
return 1;
}
posted on 2019-03-14 16:31 ccsdu2009 閱讀(243) 評論(0)  編輯 收藏 引用 所屬分類: 編程基礎
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲日本aⅴ片在线观看香蕉| 国产精品va| 欧美日韩一区免费| 狠狠色综合一区二区| 久久国产视频网| 在线亚洲美日韩| 欧美韩国日本综合| 久久精品人人做人人综合| 欧美激情精品久久久久久久变态| 久久精品国产欧美激情| 欧美性jizz18性欧美| 亚洲欧美一区二区原创| 欧美高清视频在线观看| 欧美专区在线观看一区| 亚洲欧洲在线播放| 久久久国产精品亚洲一区 | 亚洲国产欧美一区二区三区久久 | 香蕉av777xxx色综合一区| 欧美成人小视频| 亚洲精品小视频在线观看| 国语自产精品视频在线看一大j8 | 欧美激情一区二区| 在线不卡免费欧美| 久久久久久夜| 欧美一级淫片播放口| 久久露脸国产精品| 国产亚洲一级高清| 亚洲国产色一区| 久久久久久久久久久成人| 国产一区二区三区四区五区美女| 亚洲欧美综合国产精品一区| 久久国产精品亚洲va麻豆| 国产欧美一区二区三区在线看蜜臀| 欧美激情1区2区| 欧美一级免费视频| 国产欧美日韩视频一区二区三区| 欧美激情一区二区三区蜜桃视频| 99re8这里有精品热视频免费| 国产精品成人免费| 亚洲女ⅴideoshd黑人| 亚洲美女啪啪| 亚洲精品一区在线| 国产中文一区二区三区| 欧美亚洲成人精品| 亚洲天堂免费观看| 亚洲在线视频观看| 欧美一区二区精品在线| 国产精品视频免费观看| 久久国产精品久久久久久久久久| 一区二区免费在线播放| 国产日韩欧美综合在线| 欧美极品影院| 久久精品成人一区二区三区| 亚洲免费在线视频| 亚洲一区二区三区四区中文| 欧美色欧美亚洲另类七区| 欧美mv日韩mv亚洲| 欧美精品日韩综合在线| 亚洲一区亚洲| 久久频这里精品99香蕉| 欧美日韩色婷婷| 亚洲国产天堂久久国产91| 一区二区三区日韩欧美| 久久精品一区四区| 国产精品视频导航| 亚洲精品免费电影| 狠狠久久婷婷| 亚洲三级网站| 欧美在线观看网址综合| 亚洲欧美日韩精品综合在线观看| 欧美日韩裸体免费视频| 国产精品午夜久久| 亚洲大胆av| 亚洲欧美日韩视频一区| 美女被久久久| 久久国产日韩| 在线一区二区三区四区| 久久精品一区蜜桃臀影院| 久久9热精品视频| 亚洲国产清纯| 欧美韩国日本一区| 欧美高清在线| 国产精品高精视频免费| 欧美日韩综合久久| 一区二区久久| 在线视频欧美日韩精品| 久久久欧美一区二区| 久久99伊人| 美乳少妇欧美精品| 欧美日韩精品免费看 | 国产日本欧美在线观看 | 亚洲人成网在线播放| 香蕉乱码成人久久天堂爱免费 | 国产精品综合| 亚洲在线视频观看| 亚洲一区二区在线免费观看| 亚洲欧洲中文日韩久久av乱码| 亚洲女优在线| 国语自产在线不卡| 欧美bbbxxxxx| 欧美三级特黄| 欧美影院在线播放| 亚洲美女视频网| 国产精品久久久久国产a级| 亚洲国产精品精华液2区45| 免费观看国产成人| 久久最新视频| 欧美在线不卡| 久久久亚洲国产天美传媒修理工| 黄色欧美成人| 欧美一区日本一区韩国一区| 午夜久久久久久久久久一区二区| 国产精品国产三级国产专播品爱网 | 亚洲欧美日韩精品久久| 欧美国产欧美综合| 国产精品乱码妇女bbbb| 久久久久久亚洲精品中文字幕 | 亚洲少妇自拍| 你懂的国产精品| 欧美一区二区高清| 欧美激情精品久久久久久| 久久麻豆一区二区| 欧美承认网站| 亚洲福利av| 久久天天躁夜夜躁狠狠躁2022| 国产精品久久久久久久久搜平片| 久久一区二区精品| 久久黄金**| 亚洲精品日韩在线| 国产视频观看一区| 欧美日韩少妇| 亚洲国产精品99久久久久久久久| 日韩午夜av在线| 韩国一区电影| 欧美日韩亚洲一区| 欧美性淫爽ww久久久久无| 国内外成人在线| 国产日本欧美在线观看| 国产精品―色哟哟| 性欧美8khd高清极品| 一区二区三区免费观看| 亚洲欧美999| 亚洲国产精品va在线看黑人动漫| 午夜激情综合网| 亚洲欧美视频在线观看视频| 精品不卡一区| 国产精品视频福利| 欧美精品一卡| 久久成人免费视频| 欧美成人精品一区| 欧美1级日本1级| 久久精品首页| 在线色欧美三级视频| 久久国产夜色精品鲁鲁99| 欧美成人免费全部| 亚洲午夜在线观看| 国产日韩欧美高清| 欧美三区不卡| 欧美久久九九| 亚洲欧美日韩第一区| 亚洲欧美经典视频| 国产精品一区一区| 欧美日韩国产三级| 欧美一区二区三区免费视| 欧美黄色一区二区| 欧美一区二区视频网站| 欧美一区二区大片| 久久深夜福利免费观看| 欧美一区二区三区在线观看视频| 亚洲最新视频在线| 亚洲激情一区| 99国产精品自拍| 日韩午夜激情电影| 久久久久中文| 久久性天堂网| 亚洲伊人伊色伊影伊综合网| 亚洲美女av黄| 欧美激情在线| 亚洲欧美日韩精品| 国产精品国产三级国产专区53 | 亚洲区国产区| 国产日韩精品一区二区| 国产日韩三区| 狠狠色丁香婷婷综合| 亚洲精品视频一区| 99v久久综合狠狠综合久久| 久久国产天堂福利天堂| 国产精品国产馆在线真实露脸| 国产精品推荐精品| 中文日韩在线视频| 免费日韩成人| 欧美一级理论性理论a| 久久全球大尺度高清视频| 久久久久久久久久久久久女国产乱| 欧美大胆成人| 国产精品激情电影| 亚洲国产精品va在线看黑人动漫| 一区二区三区|亚洲午夜| 免费在线观看日韩欧美| 一本色道久久综合亚洲精品按摩|