Так ведь этот SCM управляет COMами
А упомянул я его , так , к слову :=))
Тут у меня непонятки с функцией GetActiveObject , и клиент виснет по окончанию
работы.
Ведь для начала надо вроде бы зарегить серверный объект в таблице ROT
Тут у меня например (НЕ ATL) server.EXE
вот как он регится у меня.
DWORD regID = 0 , regActive = 0;
IClassFactory* Share_Factory_Obj = new Share_ClassFactory ;
//регистрирурую (где-то) фабрику
CoRegisterClassObject(
CLSID_ShareMem,
(IClassFactory*)Share_Factory_Obj,
CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE,®ID);
//опять что ли регистрирую фабрику (в таблице ROT)
RegisterActiveObject (
Share_Factory_Obj,
CLSID_ShareMem,
0 ,
®Active );
WHILE .......цикл сообщений
// Разрегистрация
RevokeActiveObject(regActive , NULL);
CoRevokeClassObject(regID);
=============================================
Клиент делает тоже просто
IStatus * shareMem=0 ;
CoCreateInstance(CLSID_CoShareMemory ,
NULL ,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER ,
IID_IStatus,
(void**)&shareMem
);
IUnknown * punk;
GetActiveObject(CLSID_CoShareMemory , NULL , & punk);
Может я неправильно регистрирую ?