[This is preliminary documentation and subject to change.]
Filters are used by Announcement Listener to distinguish between announcements that are of interest to a user and those that are not. Using filters to select what data to receive prevents Broadcast Architecture from wasting computer resources.
Announcement Listener maintains a list of filters. Each filter, when presented with an announcement, can register interest in the receipt of the data associated with the announcement. If a filter registers interest and requests that Announcement Listener schedule future reception, it must also provide the name of an application to receive that data.
A filter is an Automation server that supports a number of interfaces. For more information, see Creating an Announcement Filter. Applications may add, remove, enable, or disable filters in Announcement Listener through Automation, and users may do the same through the Announcement Filter Manager. Filters have persistent states, and multiple instances of a given filter may be running simultaneously with each instance matching different criteria.
Announcement Listener presents announcements sequentially to all the filters. However, once a filter registers interest in an announcement, that announcement and any rebroadcasts of it are not presented to any filter, to reduce the unnecessary overhead of calling filters that are not interested in the announcement. The exception is when the ListenAll property of a filter is set to TRUE; for more information, see the IBroadcastFilter:get_ListenAll method.