[This is preliminary documentation and subject to change.]
IBroadcastFilter::ShowProperties is a method by which the Announcement Filter Manager may request a filter to display its properties with a dialog box. This method must be implemented by all filters, but the method need not necessarily display a dialog box.
Filters that contain properties that can be set by the user but cannot otherwise be edited can use this feature to display a dialog box through the Announcement Filter Manager. Hidden filters, and those filters with no editable properties, may implement this method with no action.
Filters that use this method to display a user interface should create a modal dialog box with the owner window set to the HWND parameter to the call. The filter must continue to service Automation requests, particularly calls to Match while the dialog box is displayed. This requirement implies that the call to ShowPropertiesDialog must return before the dialog box is displayed, because calling OleBlockServer is not acceptable.
This may be accomplished either by using a modeless dialog box or by spawning another thread which creates a modal dialog box.
The following code must be included in all filters, at a minimum:
// In the class definition of your IBroadcastFilter implementation
STDMETHOD(ShowProperties)(OLE_HANDLE Window);
// In the implementation file.
STDMETHODIMP
CGenericFilter::XFilter::ShowProperties(OLE_HANDLE Window)
{
METHOD_PROLOGUE(CGenericFilter, Filter)
try
{
return E_NOTIMPL;
}
CATCH_DUAL_EXCEPT()
}