Once you are familiar with the benefits of ISAPI filters and how to use them, you can create a filter project using the ISAPI Extension Wizard. For more information about starting a new project using wizards, see Visual C++ Wizards that Help You Begin Your Program. After the project has been created, you add your custom notification handlers. The steps are described below.
To create your project using the ISAPI Extension Wizard
Feature Only in Professional and Enterprise Edition Static linking to MFC is supported only in Visual C++ Professional and Enterprise Editions. For more information, see Visual C++ Editions.
The default notification priority, which is recommended, is Low. Other priority notifications can affect performance and scalability.
The filter can receive notifications from a secured port, a nonsecured port, or both. The ISAPI Extension Wizard sets both as the default.
See CHttpFilter::GetFilterVersion for a description of the notification flags and CHttpFilter Class Members for a list of functions you can override.
The notification filters you choose in the ISAPI Extension Wizard will appear with the default implementation in your project. Choose only the notifications you want your filter to handle. Adding unnecessary notifications will affect the efficiency of your filter.
You can add or delete notification functions manually in the project source files later.
To add your filter processing
dwFlags will already contain the filters for events you specified in the Extension Wizard.
You can remove notification flags and functions as well.
//TODO
s in the wizard-generated code.HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W3SVC/Parameters/FilterDLLs is the registry key where filters are specified. Multiple entries are separated by commas and are loaded in the order specified.
To debug your filter, if running Microsoft Internet Information Server
To load your filter, or to install a new version, if running Microsoft Internet Information Server
See Also CHttpFilter, CHttpFilterContext, Internet: Where Is...