Поскольку вам необходим некоторый уровень контроля над процессом передачи, вы не можете использовать высокоуровневый подход PutFile
, и вам придется играть более непосредственную роль.
Откройте удаленный файл с помощью CFtpConnection::OpenFile
для записи, что даст вам CInternetFile*
. Затем вы бы сами записали данные, используя CInternetFile::Write
; это также даст вам возможность прекратить отправку данных и закрыть соединение в любое время.
На этой странице документации WinInet упоминается HOWTO и пример базы знаний MS, которые могут быть полезны для реализации.