INFO: Limitations of Internet Transfer Control (233037)



The information in this article applies to:

  • Microsoft Visual Basic Professional Edition for Windows 4.0
  • Microsoft Visual Basic Professional Edition for Windows 5.0
  • Microsoft Visual Basic Professional Edition for Windows 6.0
  • Microsoft Visual Basic Enterprise Edition for Windows 4.0
  • Microsoft Visual Basic Enterprise Edition for Windows 5.0
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0

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

REFERENCES

All WinInet APIs are documented on the MSDN Web Workshop Web site (click on "Win32 Internet Functions" in the left frame). The following Knowledge Base article contains a list of error codes returned by the WinInet functions:

193625 WinInet Error Codes (12001 through 12156)


Modification Type:MajorLast Reviewed:6/24/2004
Keywords:kbFTP kbhttp kbinfo kbITC KB233037