Приходит жена программиста с работы, а муж весь расстроенный.
- Миша, что случилось?
- Мама умерла... да погоди радоваться, не моя - у компа..
{1.}type
TDllRegisterServer = function: HResult; stdcall;
function RegisterOCX(FileName: string): Boolean;
var
OCXHand: THandle;
RegFunc: TDllRegisterServer;
begin
OCXHand := LoadLibrary(PChar(FileName));
RegFunc := GetProcAddress(OCXHand, 'DllRegisterServer');
if @RegFunc <> nilthen
Result := RegFunc = S_OK
else
Result := False;
FreeLibrary(OCXHand);
end;
function UnRegisterOCX(FileName: string): Boolean;
var
OCXHand: THandle;
RegFunc: TDllRegisterServer;
begin
OCXHand := LoadLibrary(PChar(FileName));
RegFunc := GetProcAddress(OCXHand, 'DllUnregisterServer');
if @RegFunc <> nilthen
Result := RegFunc = S_OK
else
Result := False;
FreeLibrary(OCXHand);
end;
{**********}{2.}function RegisterServer(const aDllFileName: string; aRegister: Boolean): Boolean;
type
TRegProc = function: HResult;
stdcall;
const
cRegFuncNameArr: array [Boolean] of PChar =
('DllUnregisterServer', 'DllRegisterServer');
var
vLibHandle: THandle;
vRegProc: TRegProc;
begin
Result := False;
vLibHandle := LoadLibrary(PChar(aDllFileName));
if vLibHandle = 0 then Exit;
@vRegProc := GetProcAddress(vLibHandle, cRegFuncNameArr[aRegister]);
if @vRegProc <> nilthen
Result := vRegProc = S_OK;
FreeLibrary(vLibHandle);
end;
Рассмотрены примеры регистрации и удаления OCX-компонентов с помощью функций RegisterOCX и UnRegisterOCX, а также реализована более универсальная функция RegisterServer для регистрации или.unregistering OCX-компонента.
Комментарии и вопросы
:: 2010-09-17 17:33:01 :: re:Зарегистрировать или удалить OCX, ActiveX
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.