title | description | ms.date | ms.assetid |
---|---|---|---|
ICustomNotificationProvider Interface |
Describes the ICustomNotificationProvider interface and provides the interface's syntax, methods, remarks, inheritance hierarchy, and requirements. |
10/07/2016 |
c5128143-054d-e2a2-f839-2a1231e1f31e |
Provides an interface for creating custom notifications.
class ICustomNotificationProvider : public IHttpEventProvider
The following table lists the methods exposed by the ICustomNotificationProvider
interface.
Name | Description |
---|---|
QueryNotificationType | Returns the unique identifier for a custom notification provider. |
SetErrorStatus | (Inherited from IHttpEventProvider.) |
This interface contains no derived classes.
[!INCLUDEiisver] provides the ICustomNotificationProvider
interface to allow developers to create custom notifications. To implement a custom notification, you will need to create an instance of an ICustomNotificationProvider
interface that provides QueryNotificationType and SetErrorStatus methods.
Your custom notification will use the QueryNotificationType
method to identify itself to modules that have registered for the RQ_CUSTOM_NOTIFICATION or GL_CUSTOM_NOTIFICATION notification.
When a custom notification is raised, IIS will call a module's CHttpModule::OnCustomRequestNotification or CGlobalModule::OnGlobalCustomNotification method to process the custom notification. IIS will pass a pointer to the ICustomNotificationProvider
interface for the custom notification that was raised, and the module should call the custom notification's QueryNotificationType
method to verify that it is processing the correct notification.
The following code example demonstrates how to create an HTTP module that does the following:
-
Registers for the RQ_BEGIN_REQUEST and
RQ_CUSTOM_NOTIFICATION
notifications. -
Creates a CHttpModule class that contains OnBeginRequest and OnCustomRequestNotification methods.
-
The
OnBeginRequest
method writes an event to the Event Viewer that specifies the current notification. The method then creates an instance of anICustomNotificationProvider
interface and raises the custom notification by using the IHttpContext::NotifyCustomNotification method. -
The
OnCustomRequestNotification
method uses theQueryNotificationType
method to retrieve the unique identifier for the custom notification. If the unique identifier matches, theOnCustomRequestNotification
method writes an event to the Event Viewer that specifies that the custom notification was raised.
-
-
Removes the
CHttpModule
class from memory and exits.
[!code-cppIHttpContextNotifyCustomNotification#1]
Your module must export the RegisterModule function. You can export this function by creating a module definition (.def) file for your project, or you can compile the module by using the /EXPORT:RegisterModule
switch. For more information, see Walkthrough: Creating a Request-Level HTTP Module By Using Native Code.
You can optionally compile the code by using the __stdcall (/Gz)
calling convention instead of explicitly declaring the calling convention for each function.
ICustomNotificationProvider
Type | Description |
---|---|
Client | - IIS 7.0 on [!INCLUDEwinvista] - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 |
Server | - IIS 7.0 on [!INCLUDEwinsrv2008] - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 |
Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 - [!INCLUDEiisexp75], [!INCLUDEiisexp80], [!INCLUDEiisexp100] |
Header | Httpserv.h |