library SimplWiz;

uses
  ShareMem, // You must use this unit first.
  ToolsAPI,
  Simple in 'Simple.pas';

var
  Index: Integer = -1;  // wizard index

// Remove the wizard when terminating.
procedure Terminate;
var
  Services: IOTAWizardServices;
begin
  Services := BorlandIDEServices as IOTAWizardServices;
  Services.RemoveWizard(Index);
end;

function Initialize(const Services: IBorlandIDEServices;
    RegisterProc: TWizardRegisterProc;
    var TerminateProc: TWizardTerminateProc): Boolean; stdcall;
var
  WizardServices: IOTAWizardServices;
begin
  // Unless you use VCL40.BPL, save the services interface.
  BorlandIDEServices := Services;

  // Use wizard services to register the wizard.
  WizardServices := BorlandIDEServices as IOTAWizardServices;
  Index := WizardServices.AddWizard(TSimpleWizard.Create);

  // Save the Terminate procedure, to remove the wizard.
  TerminateProc := Terminate;  

  // Return True for success or False for an error.
  Result := True;
end;

exports
  Initialize name WizardEntryPoint;
end.