У нас есть исполняемый файл, на котором размещен COM-сервер, скажем, x.exe
. COM-объект создается на вызывающем сайте следующим образом:
hRes = CoCreateInstance(CLSID_InterceptX, NULL, CLSCTX_SERVER,
IID_IInterceptX, (void**)&pInterceptX);
Это все works fine when x runs as an regular application
.
У нас есть инструмент, который инкапсулирует x.exe so that it runs as a service
под Windows. В этом случае мы никогда не получаем COM-вызов в x.exe (подтверждено протоколированием). Вот странная часть: из журнала вызывающего сайта я могу сказать, что экземпляр COM-объекта был успешно создан, а также вызов функции интерфейса не приводит к ошибке (SUCEEDED(hres)
верно).
Любые идеи?