скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Зарегистрировать или удалить OCX, ActiveX



Приходит жена программиста с работы, а муж весь расстроенный.
- Миша, что случилось?
- Мама умерла... да погоди радоваться, не моя - у компа..


{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 <> nil then 
    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 <> nil then 
    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 <> nil then 
    Result := vRegProc = S_OK; 
  FreeLibrary(vLibHandle); 
end;






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook