Service with a built-in "interface".

The more I read and experiment with COM, the less I know I understand ..
I've been trying to make a service which, when active, has an interface
"available for others to connect to" controlling the service while it is
running (preferrably from another machine). I can expose an interface easily
enough - in *another* process, and that still doesn't "talk to the service"
the way I want.

I know how to, for example, use regular COM objects, but I want to expose a
"live" object from the service, preferrably a build-in class, so when a
connection/call comes in, the main service thread/program knows about it.
About as if a call on the COM interface on the running service would
generate an "event" in the main service code. And yes, I have been looking
into COM+ Events which may be a solution, but there must be a simpler way?

The mere fact of overriding the classfactory for an .exe server has me
looking for information, I can find nothing in Borland documentation, and
precious little in MSDN. If I could get the class factory for my little
object return a class in my program, I thought I could do it.

Anyway - a way to enable creation of (preferrably COM+) objects, but only if
the service is running at the exact time - is done how? I have a central
program talking to the DB's and I want that to control one or more
"transmission" modules, each with a serial modem attached. The central
program (a service, say) find things that needs to be sent out and signals
each xmission service (they need to monitor modems for incoming data as
well, so they cannot be JIT activated). *can* it be done using COM or do I
have to write true .EXE programs and use raw MSMQ messages instead ?