ScriptFunc.pas 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. unit ScriptFunc;
  2. {
  3. Inno Setup
  4. Copyright (C) 1997-2020 Jordan Russell
  5. Portions by Martijn Laan
  6. For conditions of distribution and use, see LICENSE.TXT.
  7. Script support functions
  8. }
  9. interface
  10. const
  11. { ScriptDlg }
  12. {$IFNDEF PS_NOINT64}
  13. ScriptDlgTable: array [0..14] of AnsiString =
  14. {$ELSE}
  15. ScriptDlgTable: array [0..13] of AnsiString =
  16. {$ENDIF}
  17. (
  18. 'function PageFromID(const ID: Integer): TWizardPage;',
  19. 'function PageIndexFromID(const ID: Integer): Integer;',
  20. 'function CreateCustomPage(const AfterID: Integer; const ACaption, ADescription: String): TWizardPage;',
  21. 'function CreateInputQueryPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputQueryWizardPage;',
  22. 'function CreateInputOptionPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; Exclusive, ListBox: Boolean): TInputOptionWizardPage;',
  23. 'function CreateInputDirPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; AAppendDir: Boolean; ANewFolderName: String): TInputDirWizardPage;',
  24. 'function CreateInputFilePage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String): TInputFileWizardPage;',
  25. 'function CreateOutputMsgPage(const AfterID: Integer; const ACaption, ADescription, AMsg: String): TOutputMsgWizardPage;',
  26. 'function CreateOutputMsgMemoPage(const AfterID: Integer; const ACaption, ADescription, ASubCaption: String; const AMsg: AnsiString): TOutputMsgMemoWizardPage;',
  27. 'function CreateOutputProgressPage(const ACaption, ADescription: String): TOutputProgressWizardPage;',
  28. 'function CreateOutputMarqueeProgressPage(const ACaption, ADescription: String): TOutputMarqueeProgressWizardPage;',
  29. {$IFNDEF PS_NOINT64}
  30. 'function CreateDownloadPage(const ACaption, ADescription: String; const OnDownloadProgress: TOnDownloadProgress): TDownloadWizardPage;',
  31. {$ENDIF}
  32. 'function ScaleX(X: Integer): Integer;',
  33. 'function ScaleY(Y: Integer): Integer;',
  34. 'function CreateCustomForm: TSetupForm;'
  35. );
  36. { NewDisk }
  37. NewDiskTable: array [0..0] of AnsiString =
  38. (
  39. 'function SelectDisk(const DiskNumber: Integer; const AFilename: String; var Path: String): Boolean;'
  40. );
  41. { BrowseFunc }
  42. BrowseFuncTable: array [0..3] of AnsiString =
  43. (
  44. 'function BrowseForFolder(const Prompt: String; var Directory: String; const NewFolderButton: Boolean): Boolean;',
  45. 'function GetOpenFileName(const Prompt: String; var FileName: String; const InitialDirectory, Filter, DefaultExtension: String): Boolean;',
  46. 'function GetOpenFileNameMulti(const Prompt: String; const FileNameList: TStrings; const InitialDirectory, Filter, DefaultExtension: String): Boolean;',
  47. 'function GetSaveFileName(const Prompt: String; var FileName: String; const InitialDirectory, Filter, DefaultExtension: String): Boolean;'
  48. );
  49. { CmnFunc }
  50. CmnFuncTable: array [0..0] of AnsiString =
  51. (
  52. 'function MinimizePathName(const Filename: String; const Font: TFont; MaxLen: Integer): String;'
  53. );
  54. { CmnFunc2 }
  55. CmnFunc2Table: array [0..59] of AnsiString =
  56. (
  57. 'function FileExists(const Name: String): Boolean;',
  58. 'function DirExists(const Name: String): Boolean;',
  59. 'function FileOrDirExists(const Name: String): Boolean;',
  60. 'function GetIniString(const Section, Key, Default, Filename: String): String;',
  61. 'function GetIniInt(const Section, Key: String; const Default, Min, Max: Longint; const Filename: String): Longint;',
  62. 'function GetIniBool(const Section, Key: String; const Default: Boolean; const Filename: String): Boolean;',
  63. 'function IniKeyExists(const Section, Key, Filename: String): Boolean;',
  64. 'function IsIniSectionEmpty(const Section, Filename: String): Boolean;',
  65. 'function SetIniString(const Section, Key, Value, Filename: String): Boolean;',
  66. 'function SetIniInt(const Section, Key: String; const Value: Longint; const Filename: String): Boolean;',
  67. 'function SetIniBool(const Section, Key: String; const Value: Boolean; const Filename: String): Boolean;',
  68. 'procedure DeleteIniEntry(const Section, Key, Filename: String);',
  69. 'procedure DeleteIniSection(const Section, Filename: String);',
  70. 'function GetEnv(const EnvVar: String): String;',
  71. 'function GetCmdTail: String;',
  72. 'function ParamCount: Integer;',
  73. 'function ParamStr(Index: Integer): string;',
  74. 'function AddBackslash(const S: String): String;',
  75. 'function RemoveBackslash(const S: String): String;',
  76. 'function RemoveBackslashUnlessRoot(const S: String): String;',
  77. 'function AddQuotes(const S: String): String;',
  78. 'function RemoveQuotes(const S: String): String;',
  79. 'function GetShortName(const LongName: String): String;',
  80. 'function GetWinDir: String;',
  81. 'function GetSystemDir: String;',
  82. 'function GetSysWow64Dir: String;',
  83. 'function GetSysNativeDir: String;',
  84. 'function GetTempDir: String;',
  85. 'function StringChange(var S: String; const FromStr, ToStr: String): Integer;',
  86. 'function StringChangeEx(var S: String; const FromStr, ToStr: String; const SupportDBCS: Boolean): Integer;',
  87. 'function UsingWinNT: Boolean;',
  88. 'function FileCopy(const ExistingFile, NewFile: String; const FailIfExists: Boolean): Boolean;',
  89. 'function ConvertPercentStr(var S: String): Boolean;',
  90. 'function RegValueExists(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;',
  91. 'function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;',
  92. 'function RegQueryMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;',
  93. 'function RegDeleteKeyIncludingSubkeys(const RootKey: Integer; const SubkeyName: String): Boolean;',
  94. 'function RegDeleteKeyIfEmpty(const RootKey: Integer; const SubkeyName: String): Boolean;',
  95. //not really in CmnFunc2
  96. 'function RegKeyExists(const RootKey: Integer; const SubKeyName: String): Boolean;',
  97. 'function RegDeleteValue(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;',
  98. 'function RegGetSubkeyNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean;',
  99. 'function RegGetValueNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean;',
  100. 'function RegQueryDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultDWord: Cardinal): Boolean;',
  101. 'function RegQueryBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: AnsiString): Boolean;',
  102. 'function RegWriteStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;',
  103. 'function RegWriteExpandStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;',
  104. 'function RegWriteMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;',
  105. 'function RegWriteDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: Cardinal): Boolean;',
  106. 'function RegWriteBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: AnsiString): Boolean;',
  107. //
  108. 'function IsAdmin: Boolean;',
  109. 'function IsAdminLoggedOn: Boolean;', { old name of IsAdmin }
  110. 'function IsPowerUserLoggedOn: Boolean;',
  111. 'function IsAdminInstallMode: Boolean;',
  112. 'function FontExists(const FaceName: String): Boolean;',
  113. 'function GetUILanguage: Integer;',
  114. 'function AddPeriod(const S: String): String;',
  115. 'function CharLength(const S: String; const Index: Integer): Integer;',
  116. 'function SetNTFSCompression(const FileOrDir: String; Compress: Boolean): Boolean;',
  117. 'function IsWildcard(const Pattern: String): Boolean;',
  118. 'function WildcardMatch(const Text, Pattern: String): Boolean;'
  119. );
  120. { Install }
  121. {$IFNDEF PS_NOINT64}
  122. InstallTable: array [0..5] of AnsiString =
  123. {$ELSE}
  124. InstallTable: array [0..2] of AnsiString =
  125. {$ENDIF}
  126. (
  127. 'procedure ExtractTemporaryFile(const FileName: String);',
  128. 'function ExtractTemporaryFiles(const Pattern: String): Integer;',
  129. {$IFNDEF PS_NOINT64}
  130. 'function DownloadTemporaryFile(const Url, FileName, RequiredSHA256OfFile: String; const OnDownloadProgress: TOnDownloadProgress): Int64;',
  131. 'function DownloadTemporaryFileSize(const Url: String): Int64;',
  132. 'function DownloadTemporaryFileDate(const Url: String): String;',
  133. 'procedure SetDownloadCredentials(const User, Pass: String);'
  134. {$ENDIF}
  135. );
  136. { InstFunc }
  137. {$IFNDEF PS_NOINT64}
  138. InstFuncTable: array [0..30] of AnsiString =
  139. {$ELSE}
  140. InstFuncTable: array [0..29] of AnsiString =
  141. {$ENDIF}
  142. (
  143. 'function CheckForMutexes(Mutexes: String): Boolean;',
  144. 'function DecrementSharedCount(const Is64Bit: Boolean; const Filename: String): Boolean;',
  145. 'procedure DelayDeleteFile(const Filename: String; const Tries: Integer);',
  146. 'function DelTree(const Path: String; const IsDir, DeleteFiles, DeleteSubdirsAlso: Boolean): Boolean;',
  147. 'function GenerateUniqueName(Path: String; const Extension: String): String;',
  148. 'function GetComputerNameString: String;',
  149. //function GetFileDateTime(const Filename: string; var DateTime: TFileTime): Boolean;
  150. 'function GetMD5OfFile(const Filename: String): String;',
  151. 'function GetMD5OfString(const S: AnsiString): String;',
  152. 'function GetMD5OfUnicodeString(const S: String): String;',
  153. 'function GetSHA1OfFile(const Filename: String): String;',
  154. 'function GetSHA1OfString(const S: AnsiString): String;',
  155. 'function GetSHA1OfUnicodeString(const S: String): String;',
  156. 'function GetSHA256OfFile(const Filename: String): String;',
  157. 'function GetSHA256OfString(const S: AnsiString): String;',
  158. 'function GetSHA256OfUnicodeString(const S: String): String;',
  159. 'function GetSpaceOnDisk(const DriveRoot: String; const InMegabytes: Boolean; var Free, Total: Cardinal): Boolean;',
  160. {$IFNDEF PS_NOINT64}
  161. 'function GetSpaceOnDisk64(const DriveRoot: String; var Free, Total: Int64): Boolean;',
  162. {$ENDIF}
  163. 'function GetUserNameString: String;',
  164. //function GrantPermissionOnFile(const Filename: String; const Entries: TGrantPermissionEntry; const EntryCount: Integer): Boolean;
  165. //function GrantPermissionOnKey(const RootKey: HKEY; const Subkey: String; const Entries: TGrantPermissionEntry; const EntryCount: Integer): Boolean;
  166. 'procedure IncrementSharedCount(const Is64Bit: Boolean; const Filename: String; const AlreadyExisted: Boolean);',
  167. 'function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;',
  168. 'function ExecAsOriginalUser(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;',
  169. 'function ShellExec(const Verb, Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ErrorCode: Integer): Boolean;',
  170. 'function ShellExecAsOriginalUser(const Verb, Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ErrorCode: Integer): Boolean;',
  171. 'function IsProtectedSystemFile(const Filename: String): Boolean;',
  172. 'function MakePendingFileRenameOperationsChecksum: String;',
  173. 'function ModifyPifFile(const Filename: String; const CloseOnExit: Boolean): Boolean;',
  174. 'procedure RegisterServer(const Is64Bit: Boolean; const Filename: String; const FailCriticalErrors: Boolean);',
  175. 'function UnregisterServer(const Is64Bit: Boolean; const Filename: String; const FailCriticalErrors: Boolean): Boolean;',
  176. 'procedure UnregisterFont(const FontName, FontFilename: String; const PerUserFont: Boolean);',
  177. //procedure RestartComputer;
  178. 'procedure RestartReplace(const TempFile, DestFile: String);',
  179. //procedure Win32ErrorMsg(const FunctionName: String);
  180. 'function ForceDirectories(Dir: string): Boolean;'
  181. );
  182. { InstFnc2 }
  183. InstFnc2Table: array [0..3] of AnsiString =
  184. (
  185. 'function CreateShellLink(const Filename, Description, ShortcutTo, Parameters, WorkingDir, IconFilename: String; const IconIndex, ShowCmd: Integer): String;',
  186. 'procedure RegisterTypeLibrary(const Is64Bit: Boolean; const Filename: String);',
  187. 'function UnregisterTypeLibrary(const Is64Bit: Boolean; const Filename: String): Boolean;',
  188. 'function UnpinShellLink(const Filename: String): Boolean;'
  189. );
  190. { Main }
  191. MainTable: array [0..28] of AnsiString =
  192. (
  193. 'function GetWizardForm: TWizardForm;',
  194. 'function GetMainForm: TMainForm;',
  195. 'function ActiveLanguage: String;',
  196. 'function WizardIsComponentSelected(const Components: String): Boolean;',
  197. 'function IsComponentSelected(const Components: String): Boolean;', { old name of WizardIsComponentSelected }
  198. 'function WizardIsTaskSelected(const Tasks: String): Boolean;',
  199. 'function IsTaskSelected(const Tasks: String): Boolean;', { old name of WizardIsTaskSelected }
  200. 'function ExpandConstant(const S: String): String;',
  201. 'function ExpandConstantEx(const S: String; const CustomConst, CustomValue: String): String;',
  202. 'function ExitSetupMsgBox: Boolean;',
  203. 'function GetShellFolderByCSIDL(const Folder: Integer; const Create: Boolean): String;',
  204. 'function InstallOnThisVersion(const MinVersion, OnlyBelowVersion: String): Boolean;',
  205. 'function GetWindowsVersion: Cardinal;',
  206. 'procedure GetWindowsVersionEx(var Version: TWindowsVersion);',
  207. 'function GetWindowsVersionString: String;',
  208. 'function MsgBox(const Text: String; const Typ: TMsgBoxType; const Buttons: Integer): Integer;',
  209. 'function SuppressibleMsgBox(const Text: String; const Typ: TMsgBoxType; const Buttons, Default: Integer): Integer;',
  210. 'function TaskDialogMsgBox(const Instruction, Text: String; const Typ: TMsgBoxType; const Buttons: Cardinal; const ButtonLabels: TArrayOfString; const ShieldButton: Integer): Integer;',
  211. 'function SuppressibleTaskDialogMsgBox(const Instruction, Text: String; const Typ: TMsgBoxType; const Buttons: Cardinal; const ButtonLabels: TArrayOfString; const ShieldButton: Integer;'+' const Default: Integer): Integer;',
  212. 'function IsWin64: Boolean;',
  213. 'function Is64BitInstallMode: Boolean;',
  214. 'function ProcessorArchitecture: TSetupProcessorArchitecture;',
  215. 'function IsX86: Boolean;',
  216. 'function IsX64: Boolean;',
  217. 'function IsIA64: Boolean;',
  218. 'function IsARM64: Boolean;',
  219. 'function CustomMessage(const MsgName: String): String;',
  220. 'function RmSessionStarted: Boolean;',
  221. 'function RegisterExtraCloseApplicationsResource(const DisableFsRedir: Boolean; const AFilename: String): Boolean;'
  222. );
  223. { Msgs }
  224. MsgsTable: array[0..0] of AnsiString =
  225. (
  226. 'function SetupMessage(const ID: TSetupMessageID): String;'
  227. );
  228. MsgsDelphiTable: array[0..0] of AnsiString =
  229. (
  230. 'function FmtMessage(const S: String; const Args: array of String): String;'
  231. );
  232. { System }
  233. {$IFNDEF PS_NOINT64}
  234. SystemTable: array [0..4] of AnsiString =
  235. {$ELSE}
  236. SystemTable: array [0..3] of AnsiString =
  237. {$ENDIF}
  238. (
  239. 'function Random(const Range: Integer): Integer;',
  240. 'function FileSize(const Name: String; var Size: Integer): Boolean;',
  241. {$IFNDEF PS_NOINT64}
  242. 'function FileSize64(const Name: String; var Size: Int64): Boolean;',
  243. {$ENDIF}
  244. 'procedure Set8087CW(NewCW: Word);',
  245. 'function Get8087CW: Word;'
  246. );
  247. { SysUtils }
  248. SysUtilsTable: array [0..25] of AnsiString =
  249. (
  250. 'procedure Beep;',
  251. 'function Trim(const S: string): string;',
  252. 'function TrimLeft(const S: string): string;',
  253. 'function TrimRight(const S: string): string;',
  254. 'function GetCurrentDir: string;',
  255. 'function SetCurrentDir(const Dir: string): Boolean;',
  256. 'function ExpandFileName(const FileName: string): string;',
  257. 'function ExpandUNCFileName(const FileName: string): string;',
  258. 'function ExtractRelativePath(const BaseName, DestName: string): string;',
  259. 'function ExtractFileDir(const FileName: string): string;',
  260. 'function ExtractFileDrive(const FileName: string): string;',
  261. 'function ExtractFileExt(const FileName: string): string;',
  262. 'function ExtractFileName(const FileName: string): string;',
  263. 'function ExtractFilePath(const FileName: string): string;',
  264. 'function ChangeFileExt(const FileName, Extension: string): string;',
  265. 'function FileSearch(const Name, DirList: string): string;',
  266. 'function RenameFile(const OldName, NewName: string): Boolean;',
  267. 'function DeleteFile(const FileName: string): Boolean;',
  268. 'function CreateDir(const Dir: string): Boolean;',
  269. 'function RemoveDir(const Dir: string): Boolean;',
  270. 'function CompareStr(const S1, S2: string): Integer;',
  271. 'function CompareText(const S1, S2: string): Integer;',
  272. 'function SameStr(const S1, S2: string): Boolean;',
  273. 'function SameText(const S1, S2: string): Boolean;',
  274. 'function GetDateTimeString(const DateTimeFormat: String; const DateSeparator, TimeSeparator: Char): String;',
  275. 'function SysErrorMessage(ErrorCode: Integer): String;'
  276. );
  277. SysUtilsDelphiTable: array [0..3] of AnsiString =
  278. (
  279. 'function FindFirst(const FileName: String; var FindRec: TFindRec): Boolean;',
  280. 'function FindNext(var FindRec: TFindRec): Boolean;',
  281. 'procedure FindClose(var FindRec: TFindRec);',
  282. 'function Format(const Format: string; const Args: array of const): string;'
  283. );
  284. { VerInfo }
  285. VerInfoTable: array [0..11] of AnsiString =
  286. (
  287. 'function GetVersionNumbers(const Filename: String; var VersionMS, VersionLS: Cardinal): Boolean;',
  288. 'function GetVersionComponents(const Filename: String; var Major, Minor, Revision, Build: Word): Boolean;',
  289. 'function GetVersionNumbersString(const Filename: String; var Version: String): Boolean;',
  290. 'function GetPackedVersion(const Filename: String; var Version: Int64): Boolean;',
  291. 'function PackVersionNumbers(const VersionMS, VersionLS: Cardinal): Int64;',
  292. 'function PackVersionComponents(const Major, Minor, Revision, Build: Word): Int64;',
  293. 'function ComparePackedVersion(const Version1, Version2: Int64): Integer;',
  294. 'function SamePackedVersion(const Version1, Version2: Int64): Boolean;',
  295. 'procedure UnpackVersionNumbers(const Version: Int64; var VersionMS, VersionLS: Cardinal);',
  296. 'procedure UnpackVersionComponents(const Version: Int64; var Major, Minor, Revision, Build: Word);',
  297. 'function VersionToStr(const Version: Int64): String;',
  298. 'function StrToVersion(const VersionString: String; var Version: Int64): Boolean;'
  299. );
  300. { Windows }
  301. WindowsTable: array [0..15] of AnsiString =
  302. (
  303. 'procedure Sleep(const Milliseconds: LongInt);',
  304. 'function FindWindowByClassName(const ClassName: String): HWND;',
  305. 'function FindWindowByWindowName(const WindowName: String): HWND;',
  306. 'function SendMessage(const Wnd: HWND; const Msg, WParam, LParam: Longint): Longint;',
  307. 'function PostMessage(const Wnd: HWND; const Msg, WParam, LParam: Longint): Boolean;',
  308. 'function SendNotifyMessage(const Wnd: HWND; const Msg, WParam, LParam: Longint): Boolean;',
  309. 'function RegisterWindowMessage(const Name: String): Longint;',
  310. 'function SendBroadcastMessage(const Msg, WParam, LParam: Longint): Longint;',
  311. 'function PostBroadcastMessage(const Msg, WParam, LParam: Longint): Boolean;',
  312. 'function SendBroadcastNotifyMessage(const Msg, WParam, LParam: Longint): Boolean;',
  313. 'function LoadDLL(const DLLName: String; var ErrorCode: Integer): Longint;',
  314. 'function CallDLLProc(const DLLHandle: Longint; const ProcName: String; const Param1, Param2: Longint; var Result: Longint): Boolean;',
  315. 'function FreeDLL(const DLLHandle: Longint): Boolean;',
  316. 'procedure CreateMutex(const Name: String);',
  317. 'procedure OemToCharBuff(var S: AnsiString);',
  318. 'procedure CharToOemBuff(var S: AnsiString);'
  319. );
  320. { Ole2 }
  321. Ole2Table: array [0..0] of AnsiString =
  322. (
  323. 'procedure CoFreeUnusedLibraries;'
  324. );
  325. { Logging }
  326. LoggingTable: array [0..0] of AnsiString =
  327. (
  328. 'procedure Log(const S: String);'
  329. );
  330. { Other }
  331. OtherTable: array [0..34] of AnsiString =
  332. (
  333. 'procedure BringToFrontAndRestore;',
  334. 'function WizardDirValue: String;',
  335. 'function WizardGroupValue: String;',
  336. 'function WizardNoIcons: Boolean;',
  337. 'function WizardSetupType(const Description: Boolean): String;',
  338. 'function WizardSelectedComponents(const Descriptions: Boolean): String;',
  339. 'function WizardSelectedTasks(const Descriptions: Boolean): String;',
  340. 'procedure WizardSelectComponents(const Components: String);',
  341. 'procedure WizardSelectTasks(const Tasks: String);',
  342. 'function WizardSilent: Boolean;',
  343. 'function IsUninstaller: Boolean;',
  344. 'function UninstallSilent: Boolean;',
  345. 'function CurrentFilename: String;',
  346. 'function CurrentSourceFilename: String;',
  347. 'function CastStringToInteger(var S: String): Longint;',
  348. 'function CastIntegerToString(const L: Longint): String;',
  349. 'procedure Abort;',
  350. 'function GetExceptionMessage: String;',
  351. 'procedure RaiseException(const Msg: String);',
  352. 'procedure ShowExceptionMessage;',
  353. 'function Terminated: Boolean;',
  354. 'function GetPreviousData(const ValueName, DefaultValueData: String): String;',
  355. 'function SetPreviousData(const PreviousDataKey: Integer; const ValueName, ValueData: String): Boolean;',
  356. 'function LoadStringFromFile(const FileName: String; var S: AnsiString): Boolean;',
  357. 'function LoadStringsFromFile(const FileName: String; var S: TArrayOfString): Boolean;',
  358. 'function SaveStringToFile(const FileName: String; const S: AnsiString; const Append: Boolean): Boolean;',
  359. 'function SaveStringsToFile(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;',
  360. 'function SaveStringsToUTF8File(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;',
  361. 'function SaveStringsToUTF8FileNoPreamble(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;',
  362. 'function EnableFsRedirection(const Enable: Boolean): Boolean;',
  363. 'function GetUninstallProgressForm: TUninstallProgressForm;',
  364. 'function CreateCallback(Method: AnyMethod): Longword;',
  365. 'function IsDotNetInstalled(const MinVersion: TDotNetVersion; const MinServicePack: Cardinal): Boolean;',
  366. 'function IsMsiProductInstalled(const UpgradeCode: String; const PackedMinVersion: Int64): Boolean;',
  367. 'function InitializeBitmapImageFromIcon(const BitmapImage: TBitmapImage; const IconFilename: String; const BkColor: TColor; const AscendingTrySizes: TArrayOfInteger): Boolean;'
  368. );
  369. implementation
  370. end.