ISAPI Extensions: MFC Classes

OverviewHow Do I

This article describes the MFC classes that wrap the Internet Server API (ISAPI). If your Internet server software is ISAPI-compliant, you can create Internet server extensions and filters with MFC. MFC provides five classes that wrap ISAPI to create and handle Internet server extensions and filters:

  •    An object to create and manage a server extension DLL, also known as an Internet server application (ISA). The ISA communicates with the server by means of the EXTENSION_CONTROL_BLOCK structure to handle client commands. Each client command corresponds to a member function of the CHttpServer object. The commands are parsed by the server’s parse map macros. Only one CHttpServer object can exist for each DLL. This object contains the EXTENSION_CONTROL_BLOCK provided by the server. A new object is created for each separate client request.

  •    An object created by the CHttpServer object to handle a single request from a single client to the server object. Because the server may be handling concurrent, multiple requests, more than one active CHttpServerContext object can be associated with a particular CHttpServer instance.

  •    An object created by the CHttpServer object to manage a buffer for responding to the client. CHtmlStream can contain begin, end, and content HTML tags to format the response.

  •    An object you create to manage notification filters for incoming and outgoing client data. Like a CHttpServer object, only one CHttpFilter object can exist per DLL. When the CHttpFilter object is constructed, it creates a object to manage a single notification from a single client. Because the server on which the filter is active may be handling concurrent, multiple requests, more than one active CHttpFilterContext object can be associated with a particular CHttpFilter instance.

  •    An object created by the CHttpFilter object to handle a single notification for a single client.

CHttpServer and CHttpFilter can exist independently of each other; that is, you do not have to use a CHttpFilter with your CHttpServer, and vice versa. It is also possible for one of each to be in a single DLL.

See Also   Internet: Where Is...