In a host program I maintain,
initialize is called directly on the IComponent after loading it. Later, the corresponding IEditController is located, and then
initialize is called on that object too.
The problem is that one plugin I’ve tested crashes during the call to
IEditController::initialize. It looks like this plugin is implemented using a combined
IEditController, so the
initialize function is the “same” in both calls, and the plugin can’t handle the same
initialize function being called twice in a row.
The documentation does not make it clear whether
initialize may be called on the IEditController if it was already called on the IComponent, so I’m not sure if the bug is in the plugin or in the host. Is this allowed, or should the host always check for this case and avoid calling
initialize multiple times on combined components?
I note that the creation example on this page avoids calling initialize twice, but does not make it clear whether or not this is a requirement. It might be beneficial to other developers to make the documentation here (and also the class documentation for IPluginBase) a bit more explicit about allowed call sequences.
It would also be useful to know whether
IPluginBase::terminate has any special requirements regarding the number of times it may be called.