This documentation is archived and is not being maintained.

Internet Server API (ISAPI) Extensions 


ATL Server provides a more efficient, configurable way of writing Web applications and XML Web services using C++ and ISAPI. For more information, see the documentation on ATL Server.

This family of articles provides an overview on the Internet server extensions and filters you can write using MFC. ISAPI, the Internet Server Application Programming Interface, is a set of APIs used to write OLE Server extensions and filters for Web servers like Internet Information Services. MFC provides five classes that wrap ISAPI. Topics included in this article are:

What Is an Internet Server Extension?

An ISAPI server extension is a DLL that can be loaded and called by an HTTP server. Internet server extensions, also known as Internet server applications (ISAs), are used to enhance the capabilities of an Internet Server API (ISAPI)-compliant server. An ISA is invoked from a browser application and provides similar functionality to a Common Gateway Interface (CGI) application. For more information, see the articles Extending Web Servers with ISAPI and ISAPI Server Extensions.

Advantages of ISAPI Server Extensions

Users can fill out forms and click a submit button to send data to a Web server and invoke your ISA, which can process the information to provide custom content or store it in a database. Web server extensions can use information in a database to build Web pages dynamically, and then send them to the client computers to be displayed. Your application can add other custom functionality and provide data to the client using HTTP and HTML.

Both server extensions and filters run in the process space of the Web server, providing an efficient way to extend the server's capabilities.

What Is an ISAPI Filter?

An ISAPI filter is a DLL that runs on an ISAPI-enabled HTTP server to filter data traveling to and from the server. The filter registers for notification of events, such as logging on or URL mapping. When the selected events occur, the filter is called, and you can monitor and change the data (on its way from the server to the client or vice versa). ISAPI filters can be used to provide enhanced logging of HTTP requests (for example, to track who is logging on to your server), custom encryption, custom compression, or additional authentication methods. For more information, see ISAPI Filters.

What Kind of HTTP Server Is Needed to Run ISAPI?

To host Web sites, you must have an Internet server that supports the Hypertext Transfer Protocol (HTTP). If you have chosen an ISAPI-compliant Web server (for example, Microsoft Internet Information Services), you can take advantage of server extension DLLs to create small, fast Internet server applications.

Further Reading

For general information about ISAPI programming, see:

For more information about ISAPI server extensions, see:

For information about ISAPI filters, see:

For tips about ISAPI programming, see:

For information about Internet Information Services, see the following:

See Also