Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Асинхронный ФТП-клиент - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Размер символьного массива http://www.cyberforum.ru/cpp-beginners/thread605296.html
Всех приветствую! Прошу простить, что тревожу столь банальными вопросами, но сам додумать не могу... Задан массив: char *a = new char; a="qwnsjfnsdjfnsfsf;ajsdnf"; Необходимо узнать не...
C++ Инициализация массива внутри структурированнного типа Добрый день! Прошу помочь разобраться. Компилятор ругается " Unit1.cpp(204): E2188 Expression syntax" при присвоении значений массиву внутри структурированной переменной. Программу компилирую в... http://www.cyberforum.ru/cpp-beginners/thread605291.html
C++ Почему выдает такой результат?
#include <iostream> #include <conio.h> using namespace std; class X { int a; long b; public: void set() { a = b = 0; }
Скажите пожалуста чем отличается массив целого числа от массива строк? C++
чем отличается массив целого числа от МАССИВа строк?
C++ Верно ли, что наибольший член последовательности a1, …, an по модулю больше единицы? http://www.cyberforum.ru/cpp-beginners/thread605228.html
#include <iostream> #include <cmath> using namespace std; int main() { int i; double max; const int n = 10; double x, k; cout<<"Input "<<n<<"number:\n";
C++ Дана последовательность ненулевых целых чисел, оканчивающаяся нулем. С++ Дана последовательность ненулевых целых чисел, оканчивающаяся нулем. Определить, сколько раз в этой последовательности меняется знак (Например: 10, -4, 12, 56, -4 знак меняется 3 раза) подробнее

Показать сообщение отдельно
tytus
0 / 0 / 0
Регистрация: 29.04.2012
Сообщений: 15

Асинхронный ФТП-клиент - C++

14.06.2012, 17:05. Просмотров 340. Ответов 0
Метки (Все метки)

Хочу разобраться с асинхронным режимом FTP.
Вот колбек процедура: (неполная)
C++
1
2
3
4
5
6
7
8
9
void WINAPI TFtpClient::CallBack(
    __in HINTERNET hInternet,
    __in DWORD_PTR dwContext,
    __in DWORD dwInternetStatus,
    __in LPVOID lpvStatusInformation,
    __in DWORD dwStatusInformationLength)
{   
    UNREFERENCED_PARAMETER(dwStatusInformationLength);
    TFtpClient* ftpClient = (TFtpClient*)dwContext;
....
Вот статус, который устанавливается при завершении асинхронной операции:
C++
1
2
3
4
5
6
7
8
9
switch (dwInternetStatus)
{
case INTERNET_STATUS_REQUEST_COMPLETE:
    {
        INTERNET_ASYNC_RESULT *pRes = (INTERNET_ASYNC_RESULT *)lpvStatusInformation;
        ftpClient->OnStatus(dwInternetStatus, L"request complete.");                    SetEvent(ftpClient->RequestContext->CompletionEvent);
    }
    break;
}
А вот статус ответа, в котором указывается - сколько байт принято:
C++
1
2
3
4
5
6
7
8
9
10
case INTERNET_STATUS_RESPONSE_RECEIVED:
    {
        DWORD *dwBytesReceived = (DWORD*)lpvStatusInformation;
        ftpClient->RequestContext->dwDownloadedBytes = *dwBytesReceived;
        LPTSTR buf = (LPTSTR)LocalAlloc(LPTR, 255);
        StringCchPrintf(buf, 255, TEXT("response received: %d bytes."), *dwBytesReceived);
            ftpClient->OnStatus(dwInternetStatus, buf);
        LocalFree(buf);
    }
    break;
Так вот - я и хочу узнать - как прочитать ( получить доступ)
к принятым байтам? Что-же там пишеться?

Добавлено через 6 часов 21 минуту
ну вот ... никто так и не помог...
а ларчик открывался просто)))
нужно читать InternetGetLastResponseInfo
причем вызывать сию функцию нужно в
колбек-процедуре.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru