Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

com без регистрации в реестре [Delphi, Windows]


Oleg_ ©   (2005-07-25 17:27:00) 

Подскажите, реально ли задействовать com без реесстра. У меня есть dll и clsid. А вот доступа к соответствующим ветвям реестра нет.
Спасибо


Opuhshii   (2005-08-12 11:33:00) [1]

"А вот доступа к соответствующим ветвям реестра нет"


isasa   (2005-08-12 11:31:00) [2]

зачем так извращаться. Или COM, или обычные библиотеки.
А если вызвать

ADllGetClassObject:=GetProcAddress(DllHandle,'DllRegisterServer');
OleCheck(ADllGetClassObject(...));

то получим, те-же яйца, только вид сбоку.


Opuhshii   (2005-08-12 00:47:00) [3]

ещё как можно!

реестр нужен для того чтоб определить местонахождение сервера,
а зная его нахождение можно руками его загрузить, получить нужную фабрику и наплодить объектов.

типа так,..


procedure TForm1.Button1Click(Sender: TObject);
var
 ClassFactory:IClassFactory2;
 DllHandle:THandle;
 ADllGetClassObject:TDllGetClassObject;
 AObject:INoRegister;
begin
 DllHandle:=LoadLibrary('C:\Program Files\Borland\Delphi6\Projects\DelphiMaster\ComHelo2\noregister.dll');
 ADllGetClassObject:=GetProcAddress(DllHandle,'DllGetClassObject');
 OleCheck(ADllGetClassObject(CLASS_NoRegister_,IClassFactory2,ClassFactory));
 ClassFactory.CreateInstance(nil,INoRegister,AObject);
 OleCheck(AObject.Method1);
end;


+ нужно добавить выгрузку DllHandle в нужный момент,..
DllCanUnloadNow

сервер создавался Internal т.е. без регистрации в реестре.


initialization
 TTypedComObjectFactory.Create(ComServer, TNoRegister, Class_NoRegister,
   ciInternal, tmApartment);


итог:доступ к соответствующим ветвям реестра ваще нафиг никому на локальной машине не нужен  8)


just_me   (2005-07-25 19:06:00) [4]

"без реесстра" не реально, исполняющей среде СОМ нужно из него извлечь необходимые для загрузки СОМ-сервера данные.
Что же касается "доступа к соответствующим ветвям реестра", то они нужны не вам, среде СОМ


Наверх

Титульная страница Поиск, карта сайта Написать письмо