Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.16;
Скачать: CL | DM;

Вниз

Delphi & COM: How to Do Singleton Com-server?   Найти похожие ветки 

 
Timego   (2004-03-30 18:46) [0]

Подскажите, пожалуйста, как создать out-process COM-сервер (exe) и COM-клиента для него (на одной машине), чтобы COM-клиенты обращались к единственному экземпляру сервера?

Создаю COM-сервер:

TTypedComObjectFactory.Create(ComServer, TasRemoteApp, Class_asRemoteApp,
ciMultiInstance, tmApartment);

как написано в справке (EXE object applications should call RegisterClassObject on startup)вызываю RegisterClassObject

procedure TasRemoteApp.Initialize;
begin
inherited Initialize;
FStartTime := Now();
Self.Factory.RegisterClassObject;
end;

На клиенте создаю экземпляр сервера, вызываю его метод, который отображает запомненное время:

var
ARemoteApp: IasRemoteApp;
begin
ARemoteApp := CoasRemoteApp.Create;
ARemoteApp.ShowStartTime;

получаю каждый раз новое значение времени. Стало быть мой клиент каждый раз создает новый экземпляр сервера, а не коннектится к старому?

Помогите, пожалуйста, как сделать правильно?


 
Asdor ©   (2004-03-31 09:40) [1]

Если я правильно понял задачу, то тебе следует переписать фабрику классов так, чтобы она создавала COM-объект только один раз, а потом только передавала ссылки на этот объект.


 
art-east   (2004-04-03 16:00) [2]

на клиенте:
if GetActiveObject(Class_asRemoteApp, nil, pUnknown) = S_OK then ARemoteApp:= pUnknown as IasRemoteApp
else ARemoteApp := CoasRemoteApp.Create;
ARemoteApp.ShowStartTime;



Страницы: 1 вся ветка

Текущий архив: 2005.01.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
1-1104106961
dima hlevin
2004-12-27 03:22
2005.01.16
Как сохранит в exe файл моей программы строку а потом если надо е


14-1103982756
OneFragLeft
2004-12-25 16:52
2005.01.16
Войти на другой комп


6-1097940975
Луарвик
2004-10-16 19:36
2005.01.16
idTCPClient: отсылка запроса через проксю?


1-1104653006
speed
2005-01-02 11:03
2005.01.16
ссылки в Delphi


3-1102939925
Aleksandr.
2004-12-13 15:12
2005.01.16
Как совместить файловые форматы ADO и ClientDataSet?