xlpfunctionfilter.h contains classes which allow the developer to control which add-in functions are made available to users and which are not. Filtering can be managed on an opt-in basis or an opt-out basis. Filtering can be controlled at development-time (by using a function extension to make entries in the source code) or at run-time (by supplying a configuration file that is loaded by the add-in).
The main class, CXllFunctionFilter, maintains a list of functions and a flag which determines whether or not they are to be published.
A pair of simple helper classes, CXllFunctionFilterOptIn and CXllFunctionFilterOptOut, can be used to statically register functions to be published (under an opt-out policy) or suppressed (under an opt-in policy). These classes are used by the code generator of the function extension.
Two function extensions are supplied: FunctionFilterOptIn and FunctionFilterOptOut. These can be used to include and exclude functions via the XLL+ Function Wizard, either singly or en-masse.
A utility class CXllFunctionFilterLoader is used to load and read the configuration file, if a run-time strategy is used.
Finally, three event handling classes provide the wiring that lets all this processing happen without the use of any additional developer-supplied code.
The table below lists the classes declared in the header file.
|CXllFunctionFilter||A registry of add-in functions, and instructions as to whether they should be published or suppressed.|
|CXllFunctionFilterOptIn||Statically registers a single function to be published.|
|CXllFunctionFilterOptOut||Statically registers a single function to be suppressed.|
|CXllFunctionFilterLoader||Loads a configuration file, and applies the contents to the registry.|
|CXllFunctionFilterEventHandlerOptIn||A static event handler which implements an opt-in policy by running CXllFunctionFilter::Apply(true) during the RegisterFunctions event.|
|CXllFunctionFilterEventHandlerOptOut||A static event handler which implements an opt-out policy by running CXllFunctionFilter::Apply(false) during the RegisterFunctions event.|
|CXllFunctionFilterEventHandlerFromFile||A static event handler that loads and intereprets a configuration file at run-time and applies it during the RegisterFunctions event.|