I will now try to explain in simple language how the system for sending messages in 3DS MAX is arranged using the example of a plugin.
The plugin creates an object that can send messages to all other objects that depend on it. It should be provided by the plugin developer.
One of these objects is ParamBlock.
ParamBlock already decides for itself how to pass this message and whom. Such objects including are elements UI (controls).
Thus, to receive messages from an object, you have to be either an object dependent on it, or to become the one to whom the ParamBlock sends messages.
Am I explaining clearly yet? …