Ошибка скачивания файла

149
16 марта 2019, 10:40

Для скачивания файла, я пытался использовать функциию URLDownloadToFile(), текстовый документ и фото, она скивает нормально, но при скачивании .exe файлов или архивов, скачивает лишь ~39 кб. В чём может быть проблема?

Вот код:

 #include <string>
#include <WinInet.h>
#include <urlmon.h>
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#pragma comment(lib, "urlmon.lib")
#pragma comment(lib,"Wininet.lib")
#define CURL_STATICLIB
using namespace std;
class DownloadProgress : public IBindStatusCallback {
public:
    HRESULT __stdcall QueryInterface(const IID &, void **) {
        return E_NOINTERFACE;
    }
    ULONG STDMETHODCALLTYPE AddRef(void) {
        return 1;
    }
    ULONG STDMETHODCALLTYPE Release(void) {
        return 1;
    }
    HRESULT STDMETHODCALLTYPE OnStartBinding(DWORD dwReserved, IBinding *pib) {
        return E_NOTIMPL;
    }
    virtual HRESULT STDMETHODCALLTYPE GetPriority(LONG *pnPriority) {
        return E_NOTIMPL;
    }
    virtual HRESULT STDMETHODCALLTYPE OnLowResource(DWORD reserved) {
        return S_OK;
    }
    virtual HRESULT STDMETHODCALLTYPE OnStopBinding(HRESULT hresult, LPCWSTR szError) {
        return E_NOTIMPL;
    }
    virtual HRESULT STDMETHODCALLTYPE GetBindInfo(DWORD *grfBINDF, BINDINFO *pbindinfo) {
        return E_NOTIMPL;
    }
    virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(DWORD grfBSCF, DWORD dwSize, FORMATETC *pformatetc, STGMEDIUM *pstgmed) {
        return E_NOTIMPL;
    }
    virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(REFIID riid, IUnknown *punk) {
        return E_NOTIMPL;
    }
    virtual HRESULT __stdcall OnProgress(ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText)
    {
        wcout << ulProgress << L" of " << ulProgressMax;
        if (szStatusText) wcout << " " << szStatusText;
        wcout << endl;
        return S_OK;
    }
};

int main(int argc, CHAR* argv[])
{
    DownloadProgress progress;
    DeleteUrlCacheEntry("http://rgho.st/download/8ttl8H2QN/04f41ad9cdf0e7ebb733475286c589e6de018bb3/04f41ad9cdf0e7ebb733475286c589e6de018bb3/Sdf23sq232.rar");
    HRESULT hr = URLDownloadToFile(0,"http://rgho.st/download/8ttl8H2QN/04f41ad9cdf0e7ebb733475286c589e6de018bb3/04f41ad9cdf0e7ebb733475286c589e6de018bb3/Sdf23sq232.rar","src.rar", 0,static_cast<IBindStatusCallback*>(&progress));
    system("pause");
}
READ ALSO
Узнать загрузился ли процесс

Узнать загрузился ли процесс

Возможно ли средствами WinApi узнать, что запущенный процесс полностью загрузился?

132
Сравнение элементов массива и ArrayLIst-a

Сравнение элементов массива и ArrayLIst-a

У меня имеется класс Gene, который трансформирует математическое выражение вида ( x + 3 ) в ,например, массив array={"+","x","3",null,null,

172
API запросы в Java и OAuth 2.0

API запросы в Java и OAuth 2.0

Добрый день, нужно написать то, что позволит подключиться к https://apihh

151
Передача парамметров в paint JFrame

Передача парамметров в paint JFrame

Есть массив значений(координат), как передать его в метод paint, чтобы он отрисовывал по этим координатам? Обычной передачей параметров нельзя...

156