diff options
Diffstat (limited to 'build/xchat-wdk-x86.skel.iss')
-rw-r--r-- | build/xchat-wdk-x86.skel.iss | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/build/xchat-wdk-x86.skel.iss b/build/xchat-wdk-x86.skel.iss index 7786dc23..75f92a59 100644 --- a/build/xchat-wdk-x86.skel.iss +++ b/build/xchat-wdk-x86.skel.iss @@ -64,6 +64,13 @@ Root: HKCR; Subkey: "irc\shell\open\command"; ValueType: string; ValueName: ""; Filename: "{app}\xchat.exe"; Description: "Run XChat-WDK after closing the Wizard"; Flags: nowait postinstall skipifsilent [Files] +; Add the ISSkin DLL used for skinning Inno Setup installations. +Source: ISSkinU.dll; DestDir: {app}; Flags: dontcopy + +; Add the Visual Style resource contains resources used for skinning, +; you can also use Microsoft Visual Styles (*.msstyles) resources. +Source: watercolorlite-green.cjstyles; DestDir: {tmp}; Flags: dontcopy + Source: "portable-mode"; DestDir: "{app}"; Tasks: portable Source: "cert.pem"; DestDir: "{app}"; Components: libs @@ -204,3 +211,31 @@ begin end; end; end; + +///////////////////////////////////////////////////////////////////// +// Importing LoadSkin API from ISSkin.DLL +procedure LoadSkin(lpszPath: String; lpszIniFileName: String); +external 'LoadSkin@files:isskinu.dll stdcall'; + +// Importing UnloadSkin API from ISSkin.DLL +procedure UnloadSkin(); +external 'UnloadSkin@files:isskinu.dll stdcall'; + +// Importing ShowWindow Windows API from User32.DLL +function ShowWindow(hWnd: Integer; uType: Integer): Integer; +external 'ShowWindow@user32.dll stdcall'; + +function InitializeSetup(): Boolean; +begin + ExtractTemporaryFile('watercolorlite-green.cjstyles'); + LoadSkin(ExpandConstant('{tmp}\watercolorlite-green.cjstyles'), ''); + Result := True; +end; + +procedure DeinitializeSetup(); +begin + // Hide Window before unloading skin so user does not get + // a glimpse of an unskinned window before it is closed. + ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); + UnloadSkin(); +end; |