ISAPI Extensions: MFC Classes
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...