Microsoft KB Archive/233037

= INFO: Limitations of Internet Transfer Control =

Article ID: 233037

Article Last Modified on 6/24/2004

-

APPLIES TO


 * Microsoft Visual Basic 4.0 Professional Edition
 * Microsoft Visual Basic 5.0 Professional Edition
 * Microsoft Visual Basic 6.0 Professional Edition
 * Microsoft Visual Basic 4.0 Enterprise Edition
 * Microsoft Visual Basic 5.0 Enterprise Edition
 * Microsoft Visual Basic 6.0 Enterprise Edition

-



This article was previously published under Q233037



SUMMARY
The Microsoft Internet Transfer Control (ITC) is a wrapper of WinInet APIs. Developers can write HTTP or FTP applications using ITC. However ITC doesn't expose all of the functionality available in WinInet. Developers should understand the limitations of ITC before deciding to use it. If a limitation is unacceptable, you can circumvent it by using WinInet APIs directly in Visual Basic. ITC itself cannot be changed by Visual Basic programmers.

Because ITC is a wrapper of WinInet, ITC almost always inherits problems existing in WinInet. In contrast WinInet could provide a possible workaround to a problem only appearing in ITC.

The following article in the Microsoft Knowledge Base includes a sample application that demonstrates how to use FTP APIs:

195653 Using FTP WinInet APIs in Visual Basic with SimpleFtp

NOTE: All constants and functions are declared in the Wininet.h file that ships either with the Internet Client SDK or with Visual C++ 4.2 and later. This file does not come with Visual Basic. And all declarations are made in C. However, the following Knowledge Base article may help you to get all declarations you need:

185519 FILE: Vbinet.exe WinInet API Declarations for Visual Basic



MORE INFORMATION
This article lists some of the important limitations in ITC that can be overcome by using WinInet directly. It's not an exhaustive listing, so you may encounter additional limitations not listed here.

Transfer Type
ITC does not offer the option of an ASCII-type FTP file transfer even though WinInet offers the option of either a binary or ASCII transfer (INTERNET_FLAG_TRANSFER_BINARY or INTERNET_FLAG_TRANSFER_ASCII). This can make it impossible to transfer text files to or from certain servers using this control. The following article in the Microsoft Knowledge Base provides more information on this topic:

188956 PRB: ITC Cannot Perform ASCII-type FTP Transfer

Proxy Authentication (HTTP)
The WinInet version of Internet Explorer 3.0 is HTTP1.0 compliant, which doesn't support proxy authentication. Internet Explorer 4.0 or later does. ITC however doesn't expose the properties to support the proxy authentication. You can use the WinInet API InternetErrorDlg or InternetSetOption to handle HTTP proxy authentication. For more information on handling proxy authentication with WinInet, please see the following Knowledge Base article:

195650 HOWTO: How to Handle Proxy Authorization with WinInet

Option Control
ITC doesn't provide many options available in WinInet such as INTERNET_FLAG_NO_CACHE_WRITE, INTERNET_FLAG_RELOAD, and INTERNET_FLAG_NO_AUTO_REDIRECT. If you want to have complete control on these corresponding properties, use WinInet directly. Please read the WinInet documentation for more information.

Please note that the Internet Transfer Control is a licensed control. The following Knowledge Base article explains how to use such controls in Internet Explorer.

Q159923 Using Licensed ActiveX Controls in Internet Explorer

