Asynchronous Pluggable Protocols

Asynchronous pluggable protocols provide the capability to create custom URL protocols. This section covers the pluggable protocol functionality exported by the Urlmon.dll DLL.

Overviews/Tutorials

About Asynchronous Pluggable Protocols

Asynchronous pluggable protocols enable developers to create pluggable protocol handlers, MIME filters, and namespace handlers that work with Microsoft Internet Explorer 4.0 and later and a URL moniker. This article covers the pluggable protocol functionality exported by the Urlmon.dll DLL.

Asynchronous Pluggable Protocol Functions

This section lists the functions for Asynchronous Pluggable Protocols.

Asynchronous Pluggable Protocol Interfaces

Lists the interfaces for Asynchronous Pluggable Protocols.

Asynchronous Pluggable Protocol Overviews and Tutorials

This section contains overviews and tutorials for Asynchronous Pluggable Protocols.

Asynchronous Pluggable Protocol Reference

This section contains reference information for Asynchronous Pluggable Protocols.

Asynchronous Pluggable Protocol Structures

This section describes the structures that are exposed by Urlmon.dll.

Asynchronous Pluggable Protocol Enumerations

This section lists the enumerations for Asynchronous Pluggable Protocols.

Debugging Tips

This article provides tips for handling exceptions and understanding HRESULT error codes generated by pluggable protocols.

Predefined Protocols

Windows Internet Explorer implements various protocols that can be used to identify certain information. A protocol is a set of rules and standards that enables two or more computers to communicate.

Registering an Application to a URL Protocol

The About Asynchronous Pluggable Protocols article describes how to develop handlers for URL protocols. In some cases, it may be desirable to invoke another application to handle a custom protocol. To do so, register the existing application as a URL Protocol handler. After the application has successfully launched, it can use command-line parameters to retrieve the URL that launched it. These settings apply to protocol handlers launched from within Internet Explorer and from Windows Explorer using the Run... command (Windows logo key+R).

Interfaces

ITargetFrame

Provides methods that are used to compress and uncompress data in a pluggable protocol.

IEncodingFilterFactory

Not implemented.

IInternet

Provides an implementation of the IUnknown interface, which enables client programs to determine if asynchronous pluggable protocols are supported. No additional methods are supported by this interface.

IInternetBindInfo

Implemented by the system; provides data that the protocol might require to bind successfully.

IInternetBindInfoEx

Extends IInternetBindInfo by providing additional data that the protocol might require.

IInternetPriority

Enables an application to set the priority of the requests that are sent to a pluggable protocol handler.

IInternetProtocol

Exposed by an asynchronous pluggable protocol; communicates with the IInternetProtocolSink interface during download operations.

IInternetProtocolEx

Exposes a method that communicates closely with the IInternetProtocolSink interface during download operations. This interface extends IInternetProtocol to add support for IUri

IInternetProtocolInfo

Provides information about the URL being handled by the protocol handler.

IInternetProtocolRoot

Controls the operation of an asynchronous pluggable protocol handler.

IInternetProtocolSink

Receives the reports and binding data from the asynchronous pluggable protocol.

IInternetProtocolSinkStackable

Enables a pluggable MIME filter to be added to an existing filter at run time.

IInternetSession

Implemented by the client application to create temporary pluggable protocol handlers.

IInternetThreadSwitch

Notifies the protocol handler that the moniker is being switched from one UI thread to another.

IWrappedProtocol

Not implemented.

Functions

CoInternetGetProtocolFlags

Not implemented.

CoInternetGetSession

Creates a session that allows temporary asynchronous pluggable protocols to be implemented and returns the IInternetSession interface of the session.

Structures

PROTOCOLDATA

Contains state information about the protocol that is transparent to the transaction handler.

PROTOCOLFILTERDATA

Contains the IInternetProtocolSink and IInternetProtocol interfaces of the application calling a pluggable MIME filter.

Enumerations

BINDSTRING

Contains the values for the bind string types available for IInternetBindInfo::GetBindString.

OIBDG_FLAGS

Not supported.

PI_FLAGS

Contains the flags that control the asynchronous pluggable protocol handler.