Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Flea Гость
|
Добавлено: Пт Май 31 2002 17:36 Заголовок сообщения: Services |
|
|
В сервисе создаю CInternetSession. На CInternetSession::OpenURL() исключение. GetLastError() возвращает код ошибки 997 - Overlapped I/O operation is in progress. ERROR_IO_PENDING. Не знаю, как побороть... |
|
Вернуться к началу |
|
|
Valera Гость
|
Добавлено: Пн Июн 03 2002 03:33 Заголовок сообщения: Надо дождаться пока действие закончится (+) |
|
|
GetOverlappedResult. Поищи тут. |
|
Вернуться к началу |
|
|
Flea Гость
|
Добавлено: Пн Июн 03 2002 15:34 Заголовок сообщения: Re: Надо дождаться пока действие закончится (+) |
|
|
Ждать с помощью Sleep()? |
|
Вернуться к началу |
|
|
Valera Гость
|
Добавлено: Вт Июн 04 2002 03:36 Заголовок сообщения: Re: Надо дождаться пока действие закончится (+) |
|
|
Есть много вариантов. sleepex(), waitforsingleobject(), getoverlappedresult() почитай про асинхронное чтение-запись. ЧТо-нибудь найдешь. Но смысл в том, что после вызова твоей функции она сразу же возвращает управление в программу, но не результат. Поэтому надо дождаться получения результата каким либо способом. Хотя попутно можно например в другом потоке делать что-нибудь полезное. |
|
Вернуться к началу |
|
|
Flea Гость
|
Добавлено: Чт Июн 06 2002 16:26 Заголовок сообщения: Re: Надо дождаться пока действие закончится (+) |
|
|
Попробовал через WinHttp с использованием callback функции. Та же ошибка на InternetOpenUrl. Примечательно, что InternetOpenUrl не закачивает файл, а возвращает HINTERNET, т.е. он не читает файл, а только связывает HINTERNET с урлом. CALLBACK не вызывается со статусом INTERNET_STATUS_HANDLE_CREATED, а вызывается со статусом INTERNET_STATUS_REQUEST_COMPLETE. Следовательно, я не могу в CALLBACK сохранить дескриптор файла и подождать, когда он закачается. |
|
Вернуться к началу |
|
|
|