Есть некий COM объект Х, который инкапсулирует интерфейс IMap(для делегирования).
В одном из интерфейсов объекта есть функция Init, которая вызывает CoCreateInstance для CMap, с запросом на интерфейс IMap.
CoCreateInstance возвращает ноль, интерфейс из нулл становится не нулл... все окей... но как только я эту функцию (в смысле Init) покидаю... интерфейс опять становится нулл.
Сервер реалзован как сервис NT.
Объект Х реализует фабрику классов с помощью макроса DECLARE_CLASSFACTORY_SINGLETON(Х).
Ни с тем ни с другим мне ранее работать не приходилось... подозреваю что в это-то все и дело =)...
Если у кого-нибудь есть соображения на счет того в чем собственно бага... буду весьма благодарна... заранее спасибо всем откликнувшимся
И еще забыла сказать...
При входе в конструктор СMap() должно вываливаться сообщение что туда зашли (для трейса)... так вот не! вываливается оно после вызова CoCreateInstance(CLSID_Map, ...).
Пробовала все то же самое сделать с просто классом (не интерфейс инкапсулировать а указатель на объект) в функцию Init запихала соответственно оператор new CMap()...и тоже не попадает в конструктор (или месага не вываливается... поди пойми =))... Разрешение на взаимодействие с десктопом у сервиса есть и другие месаги я вижу.
Может быть есть какой-то запрет на инициализацию объектов вне, к примеру, FinalConstruct()???
Кстати, была бы очень благодарна за советы по отладке такого типа приложений (в смысле локальных КОМ серверов), а то я раньше только DLL писала.