Как зарегистрировать OCX

Вы правы, прежде чем использовать OCX, его необходимо зарегистрировать в системном регистре.

Предположим вы создали OCX с именем "test.ocx".

Теперь его необходимо зарегистрировать в системе:

var
OCXHand: THandle;
RegFunc: TDllRegisterServer;   //добавьте OLECtl в список используемых модулей
begin
OCXHand:= LoadLibrary('c:\windows\system\test.ocx');
RegFunc:= GetProcAddress(OCXHand, 'DllRegisterServer');  //чуствительность к регистру?
if RegFunc <> 0 then ShowMessage('Ошибка!');
FreeLibrary(OCXHand);
end;

Для обратной процедуры, "отрегистрации" OCX, вам необходимо всего лишь заменить 'DllRegisterServer' на 'DllUnregisterServer'.

Также для полноты картины вы можете добавить код, извещающий пользователя о процессе регистрации, например так: "Does the file exist" (файл не найден), "Was the call to LoadLibrary successful?" (был ли вызов LoadLibrary успешным?), ...

Некоторые пояснения:

OCX - специфический форма dll, поэтому вы можете загрузить ее в память, используя знакомую уже API функцию LoadLibrary(). OCX экспортирует две функции, осуществляющие ее регистрацию и "отрегистрацию". Для получения адреса этих функций используется соответствующая функция GetProcAddress. После этого остается только вызвать необходимую функцию. И это все! После этого для успокоения души с помощью редактора регистров (regedit.exe) вы можете проверить регистрацию вашего OCX.

 
« Предыдущая статья   Следующая статья »