INFO: Limitations of Internet Transfer Control

ID: Q233037


The information in this article applies to:


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:

Q195653 Using FTP WinInet APIs in Visual Basic with SimpleFtp
Please note that 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:
Q185519 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:
Q188956 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:
Q195650 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
The Internet Transfer Control can be used on Active Server Pages (ASP) pages and with Windows Script Host. See the following articles in the Microsoft Knowledge Base for more information:
Q216288 PRB: Using the Internet Transfer Control on an Active Server Page (ASP)

Q188955 Use Internet Transfer Control in ASP or in WSH Script


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:

Q193625 WinInet Error Codes (12001 through 12156)

Additional query words:


Keywords          : kbGrpInetServer 
Version           : WINDOWS:4.0,5.0
Platform          : WINDOWS 
Issue type        : kbinfo 

Last Reviewed: July 16, 1999