Udo Richter wrote: > Udo Richter wrote: > >>New patch including docs etc. later this day. > > > ... as promised. Custom plugin services, including PLUGINS.html and > newplugin update. This version still mentions Data=NULL as supported query. > ... > +To send messages to, or request services from some plugin that offers the protocol, the > +plugin can call the function <tt>cPluginManager::CallFirstService</tt>. This function > +will send the request to the first plugin that supports this service protocol. The Actually it sends the call to _every_ plugin and returns as soon as one has processed it. Should this be rephrased, or should the implementation be changed to cPlugin *cPluginManager::CallFirstService(const char *Id, void *Data) { if (pluginManager) { for (cDll *dll = pluginManager->dlls.First(); dll; dll = pluginManager->dlls.Next(dll)) { cPlugin *p = dll->Plugin(); if (p && p->Service(Id, NULL) && p->Service(Id, Data)) return p; } } return NULL; } > +function returns a pointer to the plugin that handled the request, or <tt>NULL</tt> > +if no plugin handles the request. > +<p> > +To send a messages to all plugins, the plugin can call the function > +<tt>cPluginManager::CallAllServices</tt>. This function will send the request to > +all plugins that support this service protocol. Actually it sends the request to _all_ plugins, because it doesn't explicitly check whether a particular plugin supports it. In this case this doesn't make much difference, but I think the description should reflect what actually happens. Klaus