procedure RegisterServer(const Is64Bit: Boolean; const Filename: String; const Reserved: Boolean);
Registers the DLL/OCX with the specified filename. Raises an exception if not successful.
Is64Bit specifies whether the DLL/OCX is 64-bit (True) or 32-bit (False).
Parameter Reserved is ignored, but must be specified anyway.
Filename must be reachable in the current process. This means, for example, that a 32-bit installer wanting to register a DLL in the native 64-bit {sys} directory must pass a Sysnative path. Use ApplyPathRedirRules as shown in the example below to make that adjustment automatically. (Calling ApplyPathRedirRules for DLLs outside of {sys} isn't necessary, but it doesn't hurt.)
var
File64Bit: Boolean;
begin
// Register hhctrl.ocx located in the System directory.
// Setting File64Bit to...
// - False will register the 32-bit OCX in the 32-bit System directory
// - True will register the 64-bit OCX in the 64-bit System directory
// - Is64BitInstallMode will use Setup's install mode to determine which one to register
File64Bit := Is64BitInstallMode;
RegisterServer(File64Bit,
ApplyPathRedirRules(File64Bit, ExpandConstant('{sys}\hhctrl.ocx'), tpCurrent),
False);
end;