I have existing code in which FtpOpenFile and InternetWriteFile worked in IE9 and IE10 but is broken in IE11.
Under Windows 8.1 InternetWriteFile() appears to work correctly, but after the file transfer is completed (no error messages), the file on the FTP server is too small. Running the same code on Windows 8 (with IE10), Windows 7, & Windows XP works properly. The file is sent in chunks via multiple calls to InternetWriteFile(), which always returns successfully.
Under Windows 8.1 FtpOpenFile appears to work for an upload, but subsequent calls to FtpOpenFile on the same session handle return NULL (GetLastError() returns 12003, InternetGetLastResponseInfo() then returns some FTP status messages). The same code works fine under Windows 8.