Программирование: RegisterServer

Прототип

procedure RegisterServer(const Is64Bit: Boolean; const Filename: String; const Reserved: Boolean);

Описание

Регистрирует библиотеку DLL/OCX с указанным именем файла Filename. В случае неудачи будет вызвано исключение.

Параметр Is64Bit указывает разрядность DLL/OCX. Если 64-разрядная, то True, если же 32-разрядная — то False.

Параметр Reserved игнорируется, но его все равно необходимо указать.

Комментарии

Имя файла в параметре Filename должно быть доступно в текущем процессе. Это означает, например, что 32-разрядный установщик, который хочет зарегистрировать DLL в нативном 64-разрядном каталоге {sys}, должен передать путь Sysnative. Используйте функцию ApplyPathRedirRules, как показано в примере ниже, чтобы выполнить эту настройку автоматически. (Вызов ApplyPathRedirRules для DLL, которые находятся вне {sys}, не является обязательным, но в любом случае не повредит.)

Пример

var
  File64Bit: Boolean;
begin
  // Регистрация hhctrl.ocx, находящейся в каталоге System.

  // Укажите для File64Bit...
  // - False, если хотите зарегистрировать 32-разрядную OCX в 32-разрядном каталоге System
  // - True, если хотите зарегистрировать 64-разрядную OCX в 64-разрядном каталоге System
  // - Значение Is64BitInstallMode укажет установщику зарегистрировать соответствующую разрядность
  File64Bit := Is64BitInstallMode;

  RegisterServer(File64Bit,
    ApplyPathRedirRules(File64Bit, ExpandConstant('{sys}\hhctrl.ocx'), tpCurrent),
    False);
end;