![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как зарегистрить ActiveX компонет в runtime? [D3]
anton_private © (2002-06-07 15:57:00)Как зарегистрить ActiveX компонет в runtime?
kig (2002-07-01 12:46:00) [1]В минимальном случае In-Proc сервер содержит всего четыре экспортируемые ф-ции:
DllRegisterServer
DllUnregisterServer
DllCanUnloadNow
DllGetClassObject
В Вашем случае Вас интересует последняя, так функции интерфейсов не экспортируются. Через нее Вы получаете интерфейс фабрики IClassFactory. Через IClassFactory.CreateInstanceВы получаете один из интерфейсов, которые реализует этот объект. Т.е Вы иммитируете работу CoCreateInstance. Далее работаете с этим интерфейсом, примерно так же, как если бы подняли этот объект через COM.
Перед выгрузкой Вам необходимо освободить все интерфейсы, включая IClassFactory, а затем вызвать DllCanUnloadNow.
см. также описание CoGetClassObject.
Сергей2002 (2002-07-01 08:46:00) [2]Подскажите кто знает, как загрузить OCX и использовать его функции. В крайнем случае прилинковать к EXE-файлу. Вариации на тему "REGSVR32" не нужны.
OCX следующий: AMOVIE.OCX; функции для использования что-то вроде FileName, Volume и т.д. и т.п.
За ранее спасибо!
allrussia (2002-06-08 04:27:00) [3]uses Olectl (в папке Lib\Delphi2 лежит)
var
ocx: THandle;
reg: TDllRegisterServer;
begin
ocx:= LoadLibrary("activex.ocx");
reg:= GetProcAddress(ocx,"DllRegisterServer");
if reg = 0 then FreeLibrary(ocx);
end;
Дмитрий Баранов (2002-06-07 16:39:00) [4]1) WinExec("regsvr32.exe mycomp.ocx", 0)
2) Вызвать DllRegisterServer