Как зарегистрировать 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.
|