Initial commit: Complete open-source Decal rebuild
All 5 phases of the open-source Decal rebuild: Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil) Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters - Decal.Core, DecalControls, DecalRender, D3DService Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL Phase 4: DenAgent WinForms tray application Phase 5: WiX installer and build script 25 C# projects building with 0 errors. Native C++ projects require VS 2022 + Windows SDK (x86). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
commit
d1442e3747
1382 changed files with 170725 additions and 0 deletions
11
Installer/Attic/Decal 2.sln
Normal file
11
Installer/Attic/Decal 2.sln
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 1.00
|
||||
Project("{73393D18-DAC4-11D1-88FC-0000F8064EBB}") = "Decal 2", "Decal 2.wip", "{3606BE98-3576-4296-9CF6-23746B25EA4E}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(LocalDeployment) = postSolution
|
||||
StartupProject = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
GlobalSection(BuildOrder) = postSolution
|
||||
0 = {3606BE98-3576-4296-9CF6-23746B25EA4E}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
Installer/Attic/Decal 2.wip
Normal file
BIN
Installer/Attic/Decal 2.wip
Normal file
Binary file not shown.
6
Installer/Decal.Installer.wixproj
Normal file
6
Installer/Decal.Installer.wixproj
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<Project Sdk="WixToolset.Sdk/5.0.0">
|
||||
<PropertyGroup>
|
||||
<OutputType>Package</OutputType>
|
||||
<InstallerPlatform>x86</InstallerPlatform>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
13
Installer/DecalInstaller.sln
Normal file
13
Installer/DecalInstaller.sln
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 1.00
|
||||
Project("{73393D18-DAC4-11D1-88FC-0000F8064EBB}") = "Decal", "DecalInstaller.wip", "{3606BE98-3576-4296-9CF6-23746B25EA4E}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(LocalDeployment) = postSolution
|
||||
StartupProject = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
GlobalSection(BuildOrder) = postSolution
|
||||
0 = {3606BE98-3576-4296-9CF6-23746B25EA4E}
|
||||
EndGlobalSection
|
||||
GlobalSection(DeploymentRoot) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
2213
Installer/DecalInstaller.vdproj
Normal file
2213
Installer/DecalInstaller.vdproj
Normal file
File diff suppressed because it is too large
Load diff
BIN
Installer/DecalInstaller.wip
Normal file
BIN
Installer/DecalInstaller.wip
Normal file
Binary file not shown.
13
Installer/DecalInstallerVC7.sln
Normal file
13
Installer/DecalInstallerVC7.sln
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 1.00
|
||||
Project("{73393D18-DAC4-11D1-88FC-0000F8064EBB}") = "Decal", "DecalInstallerVC7.wip", "{3606BE98-3576-4296-9CF6-23746B25EA4E}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(LocalDeployment) = postSolution
|
||||
StartupProject = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
GlobalSection(BuildOrder) = postSolution
|
||||
0 = {3606BE98-3576-4296-9CF6-23746B25EA4E}
|
||||
EndGlobalSection
|
||||
GlobalSection(DeploymentRoot) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
Installer/DecalInstallerVC7.wip
Normal file
BIN
Installer/DecalInstallerVC7.wip
Normal file
Binary file not shown.
161
Installer/Installer.nsi
Normal file
161
Installer/Installer.nsi
Normal file
|
|
@ -0,0 +1,161 @@
|
|||
; Script generated with the Venis Install Wizard
|
||||
|
||||
; Define your application name
|
||||
!define APPNAME "Decal"
|
||||
!define APPNAMEANDVERSION "Decal 2.6.1.0"
|
||||
|
||||
; Main Install settings
|
||||
Name "${APPNAMEANDVERSION}"
|
||||
InstallDir "$PROGRAMFILES\Decal"
|
||||
InstallDirRegKey HKLM "Software\${APPNAME}" ""
|
||||
OutFile "Decal2610.exe"
|
||||
|
||||
; Use compression
|
||||
SetCompressor LZMA
|
||||
|
||||
; Modern interface settings
|
||||
!include "MUI.nsh"
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
; Set languages (first is default language)
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
|
||||
Section "" DecalCoreSection
|
||||
|
||||
; Set Section properties
|
||||
SetOverwrite on
|
||||
|
||||
; Set Section Files and Shortcuts
|
||||
SetOutPath "$INSTDIR\"
|
||||
|
||||
File "Release\Switch-Active.bmp"
|
||||
File "Release\Switch-Inactive.bmp"
|
||||
File "Release\Switchbar Disabled.bmp"
|
||||
File "Release\Switchbar Template.bmp"
|
||||
File "Release\Tab-Active.bmp"
|
||||
File "Release\Tab-Inactive.bmp"
|
||||
|
||||
File "Release\Decal.dll"
|
||||
File "Release\DecalControls.dll"
|
||||
File "Release\DecalDat.dll"
|
||||
File "Release\DecalFilters.dll"
|
||||
File "Release\DecalInput.dll"
|
||||
File "Release\DecalNet.dll"
|
||||
File "Release\DenAgent.exe"
|
||||
File "Release\ForceLibrary.dll"
|
||||
File "Release\Inject.dll"
|
||||
File "Release\LobbyHook.dll"
|
||||
File "Release\MapObject.bmp"
|
||||
File "Release\PlainText.dll"
|
||||
|
||||
SetOutPath "$SYSDIR\"
|
||||
File "Release\LobbyHook.dll"
|
||||
|
||||
RegDLL "$INSTDIR\Decal.dll"
|
||||
RegDLL "$INSTDIR\Inject.dll"
|
||||
RegDLL "$INSTDIR\DecalControls.dll"
|
||||
RegDLL "$INSTDIR\DecalDat.dll"
|
||||
RegDLL "$INSTDIR\DecalNet.dll"
|
||||
RegDLL "$INSTDIR\DecalFilters.dll"
|
||||
RegDLL "$INSTDIR\DecalInput.dll"
|
||||
RegDLL "$INSTDIR\PlainText.dll"
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Desktop Shortcut" DesktopSection
|
||||
|
||||
CreateShortCut "$DESKTOP\Decal Agent.lnk" "$INSTDIR\DenAgent.exe"
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Start Menu Entry" SMSection
|
||||
|
||||
CreateDirectory "$SMPROGRAMS\Decal"
|
||||
CreateShortCut "$SMPROGRAMS\Decal\Decal Agent.lnk" "$INSTDIR\DenAgent.exe"
|
||||
CreateShortCut "$SMPROGRAMS\Decal\Uninstall.lnk" "$INSTDIR\uninstall.exe"
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section "Quick Launch Shortcut" QLSection
|
||||
|
||||
CreateShortCut "$QUICKLAUNCH\Decal Agent.lnk" "$INSTDIR\DenAgent.exe"
|
||||
|
||||
SectionEnd
|
||||
|
||||
Section -FinishSection
|
||||
|
||||
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
SectionEnd
|
||||
|
||||
; Modern install component descriptions
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} ""
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
;Uninstall section
|
||||
Section Uninstall
|
||||
|
||||
;Remove from registry...
|
||||
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
|
||||
DeleteRegKey HKLM "SOFTWARE\${APPNAME}"
|
||||
|
||||
; Delete self
|
||||
Delete "$INSTDIR\uninstall.exe"
|
||||
|
||||
; Delete Shortcuts
|
||||
Delete "$DESKTOP\Decal.lnk"
|
||||
Delete "$SMPROGRAMS\Decal\Decal.lnk"
|
||||
Delete "$SMPROGRAMS\Decal\Uninstall.lnk"
|
||||
|
||||
; Unregister DLLS
|
||||
UnRegDLL "$INSTDIR\Decal.dll"
|
||||
UnRegDLL "$INSTDIR\Inject.dll"
|
||||
UnRegDLL "$INSTDIR\DecalControls.dll"
|
||||
UnRegDLL "$INSTDIR\DecalDat.dll"
|
||||
UnRegDLL "$INSTDIR\DecalNet.dll"
|
||||
UnRegDLL "$INSTDIR\DecalFilters.dll"
|
||||
UnRegDLL "$INSTDIR\DecalInput.dll"
|
||||
UnRegDLL "$INSTDIR\PlainText.dll"
|
||||
|
||||
; Clean up Decal
|
||||
Delete "$INSTDIR\Decal.dll"
|
||||
Delete "$INSTDIR\DecalControls.dll"
|
||||
Delete "$INSTDIR\DecalDat.dll"
|
||||
Delete "$INSTDIR\DecalFilters.dll"
|
||||
Delete "$INSTDIR\DecalInput.dll"
|
||||
Delete "$INSTDIR\DecalNet.dll"
|
||||
Delete "$INSTDIR\DenAgent.exe"
|
||||
Delete "$INSTDIR\ForceLibrary.dll"
|
||||
Delete "$INSTDIR\Inject.dll"
|
||||
Delete "$INSTDIR\LobbyHook.dll"
|
||||
Delete "$INSTDIR\MapObject.bmp"
|
||||
Delete "$INSTDIR\PlainText.dll"
|
||||
Delete "$INSTDIR\Switch-Active.bmp"
|
||||
Delete "$INSTDIR\Switch-Inactive.bmp"
|
||||
Delete "$INSTDIR\Switchbar Disabled.bmp"
|
||||
Delete "$INSTDIR\Switchbar Template.bmp"
|
||||
Delete "$INSTDIR\Tab-Active.bmp"
|
||||
Delete "$INSTDIR\Tab-Inactive.bmp"
|
||||
|
||||
; Remove remaining directories
|
||||
RMDir "$SMPROGRAMS\Decal"
|
||||
RMDir "$INSTDIR\"
|
||||
|
||||
SectionEnd
|
||||
|
||||
; eof
|
||||
198
Installer/Package.wxs
Normal file
198
Installer/Package.wxs
Normal file
|
|
@ -0,0 +1,198 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
Decal Installer - WiX v4/5 MSI package
|
||||
Installs all Decal components to Program Files\Decal\
|
||||
Registers COM servers, creates registry entries, and sets up shortcuts.
|
||||
-->
|
||||
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
|
||||
<Package
|
||||
Name="Decal"
|
||||
Version="2.9.9.0"
|
||||
Manufacturer="Decal Open Source Project"
|
||||
UpgradeCode="A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
|
||||
Scope="perMachine"
|
||||
InstallerVersion="200">
|
||||
|
||||
<MajorUpgrade
|
||||
DowngradeErrorMessage="A newer version of Decal is already installed."
|
||||
AllowSameVersionUpgrades="yes" />
|
||||
|
||||
<MediaTemplate EmbedCab="yes" />
|
||||
|
||||
<!-- Installation directory structure -->
|
||||
<StandardDirectory Id="ProgramFilesFolder">
|
||||
<Directory Id="INSTALLFOLDER" Name="Decal" />
|
||||
</StandardDirectory>
|
||||
|
||||
<!-- Start Menu -->
|
||||
<StandardDirectory Id="ProgramMenuFolder">
|
||||
<Directory Id="DecalMenuFolder" Name="Decal" />
|
||||
</StandardDirectory>
|
||||
|
||||
<!-- Feature: Core (always installed) -->
|
||||
<Feature Id="CoreFeature" Title="Decal Core" Level="1" Absent="disallow">
|
||||
<ComponentGroupRef Id="ManagedAssemblies" />
|
||||
<ComponentGroupRef Id="COMServers" />
|
||||
<ComponentGroupRef Id="NativeDLLs" />
|
||||
<ComponentGroupRef Id="Executables" />
|
||||
<ComponentGroupRef Id="RegistryEntries" />
|
||||
<ComponentGroupRef Id="Shortcuts" />
|
||||
</Feature>
|
||||
</Package>
|
||||
|
||||
<!-- ================================================================ -->
|
||||
<!-- Component Groups -->
|
||||
<!-- ================================================================ -->
|
||||
|
||||
<!-- Managed (.NET) Interop Assemblies -->
|
||||
<Fragment>
|
||||
<ComponentGroup Id="ManagedAssemblies" Directory="INSTALLFOLDER">
|
||||
<!-- Interop assemblies (COM interface definitions) -->
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Core.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Inject.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Controls.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.D3DService.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.DHS.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Dat.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Filters.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Input.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Net.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.Render.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Interop.SpellFilter.dll" />
|
||||
</Component>
|
||||
|
||||
<!-- Adapter and FileService -->
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Adapter.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.FileService.dll" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<!-- COM Server DLLs (C# implementations of native DLLs) -->
|
||||
<Fragment>
|
||||
<ComponentGroup Id="COMServers" Directory="INSTALLFOLDER">
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.Core.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DecalDat.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DHS.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.SpellFilter.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DecalInput.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DecalNet.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DecalFilters.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DecalControls.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.DecalRender.dll" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\Decal.D3DService.dll" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<!-- Native C++ DLLs -->
|
||||
<Fragment>
|
||||
<ComponentGroup Id="NativeDLLs" Directory="INSTALLFOLDER">
|
||||
<Component>
|
||||
<File Source="$(var.NativeOutput)\Inject.DLL" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.NativeOutput)\LauncherHook.DLL" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<!-- Executables -->
|
||||
<Fragment>
|
||||
<ComponentGroup Id="Executables" Directory="INSTALLFOLDER">
|
||||
<Component>
|
||||
<File Id="DenAgentEXE" Source="$(var.BuildOutput)\Decal.DenAgent.exe" Name="DenAgent.EXE" />
|
||||
</Component>
|
||||
<Component>
|
||||
<File Source="$(var.BuildOutput)\DecalUtil.exe" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<!-- Registry entries -->
|
||||
<Fragment>
|
||||
<ComponentGroup Id="RegistryEntries" Directory="INSTALLFOLDER">
|
||||
<Component Id="DecalRegistryBase">
|
||||
<RegistryKey Root="HKLM" Key="SOFTWARE\Decal">
|
||||
<RegistryValue Name="Version" Type="string" Value="2.9.9.0" />
|
||||
</RegistryKey>
|
||||
<RegistryKey Root="HKLM" Key="SOFTWARE\Decal\Agent">
|
||||
<RegistryValue Name="AgentPath" Type="string" Value="[INSTALLFOLDER]" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<!-- Service registrations -->
|
||||
<Component Id="DecalServices">
|
||||
<RegistryKey Root="HKLM" Key="SOFTWARE\Decal\Services">
|
||||
<!-- Services are registered by their CLSIDs -->
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
|
||||
<!-- Plugin registrations -->
|
||||
<Component Id="DecalPlugins">
|
||||
<RegistryKey Root="HKLM" Key="SOFTWARE\Decal\Plugins">
|
||||
<!-- Plugins register themselves at install time -->
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<!-- Shortcuts -->
|
||||
<Fragment>
|
||||
<ComponentGroup Id="Shortcuts" Directory="DecalMenuFolder">
|
||||
<Component Id="DenAgentShortcut">
|
||||
<Shortcut Id="DenAgentStartMenu"
|
||||
Name="Decal Agent"
|
||||
Target="[INSTALLFOLDER]DenAgent.EXE"
|
||||
WorkingDirectory="INSTALLFOLDER" />
|
||||
<RemoveFolder Id="RemoveDecalMenu" On="uninstall" />
|
||||
<RegistryValue Root="HKCU" Key="SOFTWARE\Decal" Name="Installed" Type="integer" Value="1" KeyPath="yes" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
BIN
Installer/Res/Attic/HRESULTHookSrv.dll
Normal file
BIN
Installer/Res/Attic/HRESULTHookSrv.dll
Normal file
Binary file not shown.
44
Installer/Res/Attic/Install.bat
Normal file
44
Installer/Res/Attic/Install.bat
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
@echo off
|
||||
|
||||
title Decal Installer
|
||||
|
||||
del %systemdrive%\DecalInstaller.log > nul 2>&1
|
||||
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
echo.
|
||||
|
||||
|
||||
echo Removing Decal 1.0.1.0
|
||||
msiexec /x {4AFA7857-D10F-4A74-A504-9C10320A6DB9} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo Removing Decal 1.0.2.0
|
||||
msiexec /x {840FA8EC-CA4D-46BE-94E6-2C85F4E29EDD} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo Removing Decal 1.0.2.2
|
||||
msiexec /x {DBBE8C7F-F27D-48D7-BBC1-5BFA30485980} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo Removing Decal 1.1.0.0
|
||||
msiexec /x {DFB254B2-F9B4-42F1-8B16-C045B18C8DBE} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo Removing Decal 2.0.0.0 RC1
|
||||
msiexec /x {3CFF0D79-376D-4557-8376-A9B48E50F775} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo Removing Decal 2.0.0.0 RC2
|
||||
msiexec /x {701F72C7-421E-4DBE-B8C7-0A8B5258D539} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo Removing Decal 2.0.0.0 RC3
|
||||
msiexec /x {D6E309A7-290D-48E0-9992-0DAB18EA4CE4} /q /lem+! %systemdrive%\DecalInstaller.log
|
||||
|
||||
echo.
|
||||
echo.
|
||||
echo -------Previous Decal Versions Removed-------
|
||||
echo.
|
||||
echo.
|
||||
|
||||
|
||||
echo Installing Decal 2.0.0.0 RC3
|
||||
start msiexec /i Decal.msi /lem+! %systemdrive%\DecalInstaller.log
|
||||
BIN
Installer/Res/Attic/delegate.dll
Normal file
BIN
Installer/Res/Attic/delegate.dll
Normal file
Binary file not shown.
4
Installer/Res/Decal Homepage.url
Normal file
4
Installer/Res/Decal Homepage.url
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
[DEFAULT]
|
||||
BASEURL=http://decaldev.sourceforge.net/
|
||||
[InternetShortcut]
|
||||
URL=http://decaldev.sourceforge.net/
|
||||
BIN
Installer/Res/Decal.ico
Normal file
BIN
Installer/Res/Decal.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
338
Installer/Res/Install.vbs
Normal file
338
Installer/Res/Install.vbs
Normal file
|
|
@ -0,0 +1,338 @@
|
|||
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Decal Installer Library <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
Option Explicit
|
||||
|
||||
|
||||
'FSO Constants
|
||||
Private Const WindowsFolder = 0
|
||||
Private Const SystemFolder = 1
|
||||
Private Const TemporaryFolder = 2
|
||||
|
||||
'WindowsInstaller Constants
|
||||
Private Const msiInstallStateUnknown = -1
|
||||
Private Const msiInstallStateAbsent = 2
|
||||
Private Const msiUILevelFull = 5
|
||||
|
||||
'Minimum versions
|
||||
Private Const MIN_WSH_VERSION = "5.1"
|
||||
Private Const MIN_WI_VERSION = "1.11.2405.0"
|
||||
|
||||
'Global Objects
|
||||
Private WshShell, WI, FSO, AllProducts
|
||||
'prevent premature errors if objects don't exist
|
||||
On Error Resume Next
|
||||
Set WshShell = WScript.CreateObject("WScript.Shell") 'needed for reg access and file execution
|
||||
Set WI = CreateObject("WindowsInstaller.Installer") 'the MSI related functions need this object
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject") 'can never have too many of these around
|
||||
Set AllProducts = CreateObject("Scripting.Dictionary") 'All of the product IDs that this should remove before installing
|
||||
On Error GoTo 0
|
||||
'Now make sure we got them all
|
||||
'There is some error checking deeper in, but I've seen a lot of errors so I'm not removing any of it :)
|
||||
If Not IsObject(WshShell) Then
|
||||
MsgBox "Internal error creating Windows Scripting Host object (WshShell). Please make sure you have IE6+ installed", _
|
||||
vbOKOnly, _
|
||||
"Decal Installer Library"
|
||||
WScript.Quit
|
||||
End If
|
||||
If Not IsObject(FSO) Then
|
||||
MsgBox "Internal error creating Windows Scripting Host object (FSO). Please make sure you have IE6+ installed", _
|
||||
vbOKOnly, _
|
||||
"Decal Installer Library"
|
||||
WScript.Quit
|
||||
End If
|
||||
If Not IsObject(AllProducts) Then
|
||||
MsgBox "Internal error creating Windows Scripting Host object (Dictionary). Please make sure you have IE6+ installed", _
|
||||
vbOKOnly, _
|
||||
"Decal Installer Library"
|
||||
WScript.Quit
|
||||
End If
|
||||
If Not IsObject(WI) Then
|
||||
MsgBox "Internal error creating Windows Installer object. Please make sure you have Windows Installer installed", _
|
||||
vbOKOnly, _
|
||||
"Decal Installer Library"
|
||||
WScript.Quit
|
||||
End If
|
||||
|
||||
'YOU MUST EDIT THESE FOR YOUR PARTICULAR INSTALLER!!!!!!
|
||||
|
||||
'All of these -must- be specified
|
||||
Private Const ThisProduct = "Decal" ' The name of your product, used it dialogs and such
|
||||
Private Const ThisVersion = "2.6.0.1" ' The version of your product, used in dialogs and such
|
||||
Private Const MSIFileName = "Decal.msi" ' The name of the MSI file that will be excuted
|
||||
'Add all of your previous product IDs to the dictionary for removal by the installer
|
||||
AllProducts.Add "1.0.1.0", "{4AFA7857-D10F-4A74-A504-9C10320A6DB9}"
|
||||
AllProducts.Add "1.0.2.0", "{840FA8EC-CA4D-46BE-94E6-2C85F4E29EDD}"
|
||||
AllProducts.Add "1.0.2.2", "{DBBE8C7F-F27D-48D7-BBC1-5BFA30485980}"
|
||||
AllProducts.Add "1.1.0.0", "{DFB254B2-F9B4-42F1-8B16-C045B18C8DBE}"
|
||||
AllProducts.Add "2.0.0.0 RC1", "{3CFF0D79-376D-4557-8376-A9B48E50F775}"
|
||||
AllProducts.Add "2.0.0.0 RC2", "{701F72C7-421E-4DBE-B8C7-0A8B5258D539}"
|
||||
AllProducts.Add "2.0.0.0 RC3 ", "{D6E309A7-290D-48E0-9992-0DAB18EA4CE4}"
|
||||
AllProducts.Add "2.0.0.0 RC4", "{3C2F8BE2-2B35-402F-9BAE-F9FDCA9C22A9}"
|
||||
AllProducts.Add "2.0.0.0", "{F7DC5688-E3A0-432B-A5DF-F7CB4B02DE03}"
|
||||
AllProducts.Add "2.1.0.2", "{6C6B886C-66E0-41C9-AF1A-1B02372D5E77}"
|
||||
AllProducts.Add "2.1.0.4", "{83CE1E0E-E441-4764-A3CC-DBF1A53C40F0}"
|
||||
AllProducts.Add "2.1.0.5", "{B388C87C-F59D-457F-A839-B6F3A2642CE7}"
|
||||
AllProducts.Add "2.2.0.0", "{9FB34BE5-A2A3-4509-8A21-133FC27387F7}"
|
||||
AllProducts.Add "2.2.0.1", "{BE7BB776-FE47-41B7-AACE-1F958A7CE214}"
|
||||
AllProducts.Add "2.2.2.0", "{92A0F954-9A9D-4FCC-B874-F0A8DBD8BF1B}"
|
||||
AllProducts.Add "2.2.3.0", "{775AB855-075F-462B-A482-D555569E2C03}"
|
||||
AllProducts.Add "2.2.4.0", "{0C844C18-2021-4660-AD25-7922653E1A16}"
|
||||
AllProducts.Add "2.3.0.0", "{DE512CE7-2417-41E5-9C7F-5C091F171785}"
|
||||
AllProducts.Add "2.3.1.0", "{660E1D69-140D-437E-9D23-9137DA6F0162}"
|
||||
AllProducts.Add "2.3.1.1", "{A0ACDD8E-3730-4007-926A-55D7B1A5A7B7}"
|
||||
AllProducts.Add "2.3.1.2", "{E6E77F45-0B35-4F92-9CD3-4B70A821158D}"
|
||||
AllProducts.Add "2.3.1.3", "{92872CC7-2722-4534-81BE-E99B4D472A95}"
|
||||
AllProducts.Add "2.3.1.4", "{8186889F-BF27-4F79-9D94-4DD7CB9956F2}"
|
||||
AllProducts.Add "2.3.1.5", "{09A9F4AE-C043-43CF-85D1-6F14BCAAEB11}"
|
||||
AllProducts.Add "2.3.1.6", "{A6749A61-B1E5-4FFB-BA4D-AE93E5443EC8}"
|
||||
AllProducts.Add "2.3.1.7", "{C667B179-E270-4BE5-9C73-0533C1D2B758}"
|
||||
AllProducts.Add "2.3.1.8", "{88947320-85FC-4327-908D-7801365AD4D9}"
|
||||
AllProducts.Add "2.3.1.9", "{1CF52690-D209-47C7-97EF-F38D64463AD5}"
|
||||
AllProducts.Add "2.4.0.0", "{4D7BE8B5-6B0A-4135-8C75-BE8E4BB2E351}"
|
||||
AllProducts.Add "2.4.1.0", "{E6E9AB9D-812C-40D7-A57C-ED298B48557F}"
|
||||
AllProducts.Add "2.4.1.2", "{09C6E670-D686-11D6-BFDA-009027B6A4F1}"
|
||||
AllProducts.Add "2.4.1.3", "{E62F700A-E214-11D6-B2DA-009027B6A4F1}"
|
||||
AllProducts.Add "2.5.0.0 RC1", "{940240A5-39C7-496A-B2FB-21D87220FCFE}"
|
||||
AllProducts.Add "2.5.0.0 RC2", "{F685D7CA-12EB-11D7-B2DA-009027B6A4F1}"
|
||||
AllProducts.Add "2.5.0.0 RC3", "{F15D5960-13C9-11D7-B2DA-009027B6A4F1}"
|
||||
AllProducts.Add "2.5.0.1 RC1", "{B5B0E8D6-FE22-467C-B09E-1AB5CC837942}"
|
||||
AllProducts.Add "2.5.0.1", "{CE4276BF-04AE-41C9-B7C2-3DD65B4DAEDD}"
|
||||
AllProducts.Add "2.5.0.2", "{F794642A-63D5-11D7-B2DA-009027B6A4F1}"
|
||||
AllProducts.Add "2.5.0.4", "{29E8FB17-4C4E-4F5D-8C5D-F3826ECE2CF6}"
|
||||
AllProducts.Add "2.5.0.5", "{35012CC1-DC9F-49C3-9593-2B246AE68D3A}"
|
||||
AllProducts.Add "2.5.2.0 RC1", "{ED4744B7-3F12-453B-9908-D192E0F5477A}"
|
||||
AllProducts.Add "2.5.2.0 RC2", "{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}"
|
||||
AllProducts.Add "2.5.2.0 RC3", "{B04617E3-2AFF-4650-84AF-10BE73B22A15}"
|
||||
AllProducts.Add "2.6.0.0 RC1", "{6E766A51-09A9-4571-B55A-EE2E4E74B8BC}"
|
||||
AllProducts.Add "2.6.0.0 RC2", "{4C22590F-22B8-4413-B91D-0403B2F84979}"
|
||||
AllProducts.Add "2.6.0.0 RC3", "{E86FBB39-9061-475A-B575-F8F9AC12DB74}"
|
||||
AllProducts.Add "2.6.0.0 RC4", "{16673809-CA94-4E31-9E0B-B2FCA0CBDFAB}"
|
||||
AllProducts.Add "2.6.0.0 RC5", "{67E0D07C-8A6A-4357-B44F-CCA1A513DFE7}"
|
||||
AllProducts.Add "2.6.0.0", "{B0DC3DCD-44BD-47C7-AB9D-CC68FB63F4C3}"
|
||||
AllProducts.Add "2.6.0.1", "{32767F66-7F62-4C0B-81F7-C42B4C7C0148}"
|
||||
|
||||
|
||||
' These are optional
|
||||
' The features they provide will be ignored if they are left as empty strings
|
||||
Private Const PathRegValue = "HKLM\SOFTWARE\Decal\Agent\AgentPath" ' Path to a registry key containing the install location of your product
|
||||
Private Const FavoriteName = "Decal Homepage" ' Name of the Favorite to add at the end of the install
|
||||
Private Const FavoriteURL = "http://decaldev.sourceforge.net/" ' URL for the Favorite to point to
|
||||
Private Const FavoriteIconFile = "Denagent.exe" ' File to get the icon for the favorite from (default IE icon if blank)
|
||||
Private Const FavoriteIconID = "0" ' Icon ID to use from the above file (default IE icon if blank)
|
||||
|
||||
' END OF EDITABLE OPTIONS
|
||||
|
||||
Private Function IsVersionAgreeable(pActualVersion, pMinumumVersion)
|
||||
Dim actual, expected, i
|
||||
IsVersionAgreeable = True
|
||||
'msgbox "pActualVersion: " & pActualVersion & vbCRLF & "pMinumumVersion: " & pMinumumVersion
|
||||
actual = split (pActualVersion, ".")
|
||||
expected = split (pMinumumVersion, ".")
|
||||
|
||||
For i = 0 To UBound(expected)
|
||||
'msgbox cstr(i & " : " & actual(i) & " : " & expected(i))
|
||||
If CInt(actual(i)) > CInt(expected(i)) Then
|
||||
'msgbox("greater")
|
||||
Exit For
|
||||
ElseIf CInt(actual(i)) < CInt(expected(i)) Then
|
||||
'msgbox("less")
|
||||
IsVersionAgreeable = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End Function
|
||||
|
||||
Private Sub WSHVersionCheck()
|
||||
'Function: Check the Windows Scripting Host version, give URL for updating if not good enough,
|
||||
' then kill the script.
|
||||
'Args: N/A
|
||||
'Returns: N/A
|
||||
'
|
||||
'Requirements: WshShell = WScript.Shell
|
||||
'
|
||||
Dim actualVersion, rc
|
||||
|
||||
On Error Resume Next
|
||||
actualVersion = WScript.Version
|
||||
On Error GoTo 0
|
||||
|
||||
'Bail here if things are ok
|
||||
If IsVersionAgreeable(actualVersion, MIN_WSH_VERSION) Then Exit Sub
|
||||
|
||||
'Didn't bail, so need to prompt for an upgrade
|
||||
rc = MsgBox ("The " & ThisProduct & " Installer has determined that you do not have a new enough version of Windows Scripting Host to use this installer." & _
|
||||
String(2, vbCRLF) & _
|
||||
"The newest version is available with Windows Scripting Host 5.6 which you can download at: " & _
|
||||
String(2, vbCRLF) & _
|
||||
"http://download.microsoft.com/download/winscript56/Install/5.6/W9XNT4Me/EN-US/scr56en.exe" & _
|
||||
String(2, vbCRLF) & _
|
||||
"Would you like to go there now?", _
|
||||
vbYesNo + vbQuestion, _
|
||||
ThisProduct & " Installer")
|
||||
If rc = vbYes Then WshShell.Run "http://download.microsoft.com/download/winscript56/Install/5.6/W9XNT4Me/EN-US/scr56en.exe"
|
||||
WScript.Quit
|
||||
End Sub
|
||||
|
||||
Private Sub WIVersionCheck()
|
||||
'Function: Check the windows installer version, give URL for updating if not good enough,
|
||||
' then kill the script.
|
||||
'Args: N/A
|
||||
'Returns: N/A
|
||||
'
|
||||
'Requirements: WI = WindowsInstaller.Installer
|
||||
' WshShell = WScript.Shell
|
||||
|
||||
Dim actualVersion, rc, fileInSysFolder, fileInWinFolder, windowsVersion, strURL, strFailMsg
|
||||
|
||||
On Error Resume Next
|
||||
actualVersion = WI.Version
|
||||
On Error GoTo 0
|
||||
|
||||
'Bail here if things are ok
|
||||
If IsVersionAgreeable(actualVersion, MIN_WI_VERSION) Then Exit Sub
|
||||
|
||||
'Didn't bail, so need to prompt for an upgrade
|
||||
With FSO
|
||||
fileInSysFolder = .BuildPath(.GetSpecialFolder(SystemFolder), "winver.exe")
|
||||
fileInWinFolder = .BuildPath(.GetSpecialFolder(WindowsFolder), "winver.exe")
|
||||
If .FileExists(fileInSysFolder) Then
|
||||
windowsVersion = split(.GetFileVersion(fileInSysFolder),".")
|
||||
ElseIf .FileExists(fileInWinFolder) Then
|
||||
windowsVersion = split(.GetFileVersion(fileInWinFolder),".")
|
||||
Else
|
||||
rc = MsgBox("The Decal Installer was unable to determine your Windows version. Are you using Windows 2000 or Windows XP?", _
|
||||
vbYesNo + vbQuestion, _
|
||||
ThisProduct & " Installer")
|
||||
If rc = vbYes Then
|
||||
windowsVersion = split("5.0.0.0", ".")
|
||||
ElseIf rc = vbNo Then
|
||||
windowsVersion = split("4.0.0.0", ".")
|
||||
Else
|
||||
MsgBox "An unknown error occured in Windows Version detection. Please make sure you have Windows Installer properly installed and try again.", _
|
||||
vbOKOnly, _
|
||||
ThisProduct & " Installer"
|
||||
WScript.Quit
|
||||
End If
|
||||
End If
|
||||
End With 'With FSO
|
||||
|
||||
If CInt(windowsVersion(1)) < 5 Then
|
||||
strURL = "http://www.microsoft.com/downloads/release.asp?releaseid=32831"
|
||||
strFailMsg = "Windows 98/ME users can upgrade at: " & strURL
|
||||
Else 'If work(0) < 5 Then
|
||||
strURL = "http://www.microsoft.com/downloads/release.asp?releaseid=32832"
|
||||
strFailMsg = "Windows 2000 users can upgrade at: " & strURL
|
||||
End If 'If work(0) < 5 Then
|
||||
|
||||
rc = MsgBox ("The " & ThisProduct & " Installer has determined that you do not have a new enough version of Windows Installer to use this installer. " & _
|
||||
String(2,vbCRLF) & _
|
||||
strFailMsg & _
|
||||
String(2,vbCRLF) & _
|
||||
"Would you like to go there now?", _
|
||||
vbYesNo + vbQuestion, _
|
||||
ThisProduct & " Installer")
|
||||
If rc = vbYes Then
|
||||
'open the browser and exit
|
||||
WshShell.Run strURL
|
||||
End If
|
||||
WScript.Quit
|
||||
End Sub
|
||||
|
||||
Private Sub WipeProduct(pProdID)
|
||||
'Function: Check for the product ID. If it exists, silently and forcefully uninstall.
|
||||
'
|
||||
'Args: pProdID = a string of the MSI Product ID to be wiped
|
||||
'Returns: N/A
|
||||
'
|
||||
'Requirements: WI = WindowsInstaller.Installer
|
||||
|
||||
Dim rc
|
||||
|
||||
rc = WI.ProductState(pProdID)
|
||||
'FIXME
|
||||
'something about this check is not as precise as it should be. Need to find info
|
||||
'about different install states and find ways to handle them all
|
||||
'TEMP FIX ONLY
|
||||
On Error Resume Next
|
||||
'END OF TEMP FIX
|
||||
If rc <> msiInstallStateUnknown Then
|
||||
'remove it
|
||||
WI.ConfigureProduct pProdID, 0, msiInstallStateAbsent 'second param is ignored
|
||||
End If
|
||||
End Sub
|
||||
|
||||
' VERSION CHECKING
|
||||
WSHVersionCheck
|
||||
WIVersionCheck
|
||||
|
||||
'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> End of Decal Installer Library <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
'>>>>>>>>>>>>>>>>>>>>>>>>>>>START SCRIPT<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
|
||||
|
||||
|
||||
|
||||
'variables
|
||||
Dim retval, strProductFolder, strProp, strUninstaller, strPathToFavIcon, TXT, i, ProductsToRemove
|
||||
|
||||
'make sure they really want to do this
|
||||
retval = MsgBox("You are about to remove all old " & ThisProduct & " versions and install " & ThisProduct & " v" & ThisVersion & " ", _
|
||||
vbOkCancel + vbQuestion, _
|
||||
ThisProduct &" Installer")
|
||||
|
||||
If retval = vbCancel Then WScript.Quit
|
||||
|
||||
'Before starting, lookup and store the Decal path if it exists
|
||||
On Error Resume Next 'will fail if not found, leaving an empty string
|
||||
strDecalFolder = WshShell.RegRead(PathRegValue)
|
||||
On Error GoTo 0
|
||||
|
||||
'>>>>>>>>>>>>>>>UNINSTALLING OLD VERSIONS<<<<<<<<<<<<<<<<<
|
||||
|
||||
'Remove MSIs by product code
|
||||
ProductsToRemove = AllProducts.Items
|
||||
For i = 0 To UBound(ProductsToRemove)
|
||||
WipeProduct ProductsToRemove(i)
|
||||
Next
|
||||
|
||||
|
||||
'>>>>>>>>>>>>>>>>>>>>INSTALLING PDODUCT<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
'install .msi with remembered install path if it exists
|
||||
|
||||
strProp = "DISABLEADVTSHORTCUTS=True"
|
||||
If Len(strProductFolder) > 0 Then strProp = strProp & " TARGETDIR=""" & strProductFolder & """"
|
||||
WI.UILevel = msiUILevelFull
|
||||
On Error Resume Next
|
||||
WI.InstallProduct MSIFileName, strProp
|
||||
On Error GoTo 0
|
||||
If Err.Number <> 0 Then WScript.Quit
|
||||
'The old command line:
|
||||
'WshShell.Run "msiexec /i Decal.msi " & strProp
|
||||
|
||||
'Favorites icon?
|
||||
If Len(FavoriteName) > 0 And Len(FavoriteURL) > 0 Then
|
||||
strPathToFavIcon = FSO.BuildPath(WshShell.SpecialFolders("Favorites"), FavoriteName & ".url")
|
||||
'is is there already?
|
||||
If Not FSO.FileExists(strPathToFavIcon) Then
|
||||
retval = MsgBox("Would you like a shortcut to the " & ThisProduct & " Homepage placed in your Favorites menu?", _
|
||||
vbYesNo + vbQuestion, _
|
||||
ThisProduct & " Installer")
|
||||
If retval = vbYes Then
|
||||
|
||||
Set TXT = FSO.CreateTextFile(strPathToFavIcon)
|
||||
TXT.WriteLine "[InternetShortcut]"
|
||||
TXT.WriteLine "URL=" & FavoriteURL
|
||||
On Error Resume Next
|
||||
strProductFolder = WshShell.RegRead(PathRegValue)
|
||||
On Error GoTo 0
|
||||
If Len(FavoriteIconFile) > 0 And Len(FavoriteIconID) > 0 And Len(strProductFolder) > 0 Then
|
||||
TXT.WriteLine "IconFile=" & FSO.BuildPath(strProductFolder, FavoriteIconFile)
|
||||
TXT.WriteLine "IconIndex=" & FavoriteIconID
|
||||
End If
|
||||
TXT.Close
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
MsgBox ThisProduct & " Installation Completed", _
|
||||
vbOkOnly + vbInformation, _
|
||||
ThisProduct & " Installer"
|
||||
BIN
Installer/Res/decalbar.jpg
Normal file
BIN
Installer/Res/decalbar.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.9 KiB |
BIN
Installer/Res/gdiplus.dll
Normal file
BIN
Installer/Res/gdiplus.dll
Normal file
Binary file not shown.
78
Installer/Res/howto.txt
Normal file
78
Installer/Res/howto.txt
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
How to make a new Decal installer:
|
||||
|
||||
Update from CVS (or make sure you have the version of the code you want to release)
|
||||
|
||||
Update readme.rtf to reflect the current state of Decal
|
||||
|
||||
Open the provided VSI project files (DecalInstaller.sln and DecalInstaller.wip)
|
||||
|
||||
Change the Product Name, Product Code, Version, Version string in the registry, and whatever else needs to be changed in the installer (but NOT the filename)
|
||||
|
||||
Build a new installer
|
||||
|
||||
Open Install.vbs
|
||||
|
||||
Add a new uninstall entry for the current Product code using the others as an example (AllProducts.Add "<version>", "<GUID>")
|
||||
|
||||
Change the ThisVersion constant to reflect the new version number
|
||||
|
||||
Save and Close Install.vbs and VSI
|
||||
|
||||
Open EnZip 3.00 ( freeware: http://www.cpam.freeserve.co.uk/ )
|
||||
|
||||
Choose File, New Archive... (or hit Ctrl-N)
|
||||
|
||||
Give a filename such as "Decal_2000.zip" for Decal 2.0.0.0
|
||||
|
||||
Add Decal.msi and Install.vbs to the files, using maximum compression (available on the Options tab)
|
||||
|
||||
Choose Tools, Create Self-Extractor... (or hit Shift-X)
|
||||
|
||||
Click Next to customize the extractor
|
||||
|
||||
Click Next to NOT have a message box
|
||||
|
||||
Click Next to have it extract to the TEMP folder
|
||||
|
||||
Change the Tile Caption to "Decal Installer" and Click Next
|
||||
|
||||
Type "Install.vbs" in the Command box, leave the Parameters box empty, then hit Next
|
||||
|
||||
Click the Change Icon... button and select the Decal.ico from the source/Installer/Res folder
|
||||
|
||||
Select the first icon and Click Ok, then Click Next
|
||||
|
||||
Uncheck Display Run Command Checkbox
|
||||
|
||||
Check Unzip Automaticly
|
||||
|
||||
Make sure Default to overwrite files without prompting is selected
|
||||
|
||||
Click Next, then Click Yes to bypass the warning
|
||||
|
||||
Verify your options in the displayed listbox and then hit Create (this may look like it's not doing anything, but it is)
|
||||
|
||||
When it completes, hit Test Self-Extracting ZIP file now
|
||||
|
||||
If everything went ok, it should display a command prompt window while previous Decal versions are uninstalled, then close and start the Decal installer MSI
|
||||
|
||||
Click Close, then close EnZip
|
||||
|
||||
|
||||
VERIFY!!!!!!!!
|
||||
Make sure there is only ONE add/remove entry for Decal
|
||||
Make sure there is only ONE Decal group in the Start Menu
|
||||
Make sure there is only ONE Decal icon on the Desktop
|
||||
Make sure ALL the file versions are correct
|
||||
Load up Decal and make sure it runs properly (to verify things such as registry values)
|
||||
Attempt to delete all of the shortcuts, then open IE. If the installer starts and repairs the shortcuts something is wrong.
|
||||
Test the FavIcon creation
|
||||
Generally kick it around and attempt to break it
|
||||
|
||||
COMMIT!!!!
|
||||
Commit your new changes with a tag (so that the installer can be rebuilt in it's current state at any time)
|
||||
If this is a release version (not BETA), create a branch for bugfixes
|
||||
Upload the binary to SourceForge (see sf.net instructions)
|
||||
Test the download and verify you get the same file you uploaded
|
||||
Change the homepage of decaldev.sf.net to point to the new download
|
||||
|
||||
132
Installer/Res/readme.rtf
Normal file
132
Installer/Res/readme.rtf
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
{\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
|
||||
{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f37\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Georgia;}
|
||||
{\f38\froman\fcharset238\fprq2 Times New Roman CE;}{\f39\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f41\froman\fcharset161\fprq2 Times New Roman Greek;}{\f42\froman\fcharset162\fprq2 Times New Roman Tur;}
|
||||
{\f43\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f44\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f45\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f46\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
|
||||
{\f58\fmodern\fcharset238\fprq1 Courier New CE;}{\f59\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f61\fmodern\fcharset161\fprq1 Courier New Greek;}{\f62\fmodern\fcharset162\fprq1 Courier New Tur;}{\f63\fmodern\fcharset177\fprq1 Courier New (Hebrew);}
|
||||
{\f64\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f65\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f66\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f408\froman\fcharset238\fprq2 Georgia CE;}{\f409\froman\fcharset204\fprq2 Georgia Cyr;}
|
||||
{\f411\froman\fcharset161\fprq2 Georgia Greek;}{\f412\froman\fcharset162\fprq2 Georgia Tur;}{\f415\froman\fcharset186\fprq2 Georgia Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
|
||||
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
|
||||
\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\*
|
||||
\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv
|
||||
\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}{\*\cs15 \additive \ul\cf2 \sbasedon10 \styrsid13959554 Hyperlink;}}{\*\listtable
|
||||
{\list\listtemplateid409371626\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid1512880686\listsimple{\listlevel
|
||||
\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid190145115}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255
|
||||
\levelnfcn255\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid204221188}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255
|
||||
\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid399254398}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0
|
||||
\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid462045303}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0
|
||||
\levelfollow0\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid543324763}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid561211173}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid583338098}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid590091954}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid771126764}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid855463441}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1214316582}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1300184623}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1403941801}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1538081160}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1551961698}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1734812107}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1813057095}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid1889994174}{\list\listtemplateid1512880686\listsimple{\listlevel\levelnfc255\levelnfcn255\leveljc0\leveljcn0\levelfollow0
|
||||
\levelstartat0\levelold\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }{\listname ;}\listid2028016505}}{\*\listoverridetable{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat{\listlevel\levelnfc23
|
||||
\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0\levelindent283{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 \fi-283\li283\lin283 }}\ls1}{\listoverride\listid543324763\listoverridecount0\ls2}
|
||||
{\listoverride\listid2028016505\listoverridecount0\ls3}{\listoverride\listid190145115\listoverridecount0\ls4}{\listoverride\listid1403941801\listoverridecount0\ls5}{\listoverride\listid1889994174\listoverridecount0\ls6}{\listoverride\listid204221188
|
||||
\listoverridecount0\ls7}{\listoverride\listid583338098\listoverridecount0\ls8}{\listoverride\listid561211173\listoverridecount0\ls9}{\listoverride\listid1214316582\listoverridecount0\ls10}{\listoverride\listid771126764\listoverridecount0\ls11}
|
||||
{\listoverride\listid462045303\listoverridecount0\ls12}{\listoverride\listid1538081160\listoverridecount0\ls13}{\listoverride\listid590091954\listoverridecount0\ls14}{\listoverride\listid1734812107\listoverridecount0\ls15}{\listoverride\listid1300184623
|
||||
\listoverridecount0\ls16}{\listoverride\listid855463441\listoverridecount0\ls17}{\listoverride\listid399254398\listoverridecount0\ls18}{\listoverride\listid1551961698\listoverridecount0\ls19}{\listoverride\listid1813057095\listoverridecount0\ls20}}
|
||||
{\*\rsidtbl \rsid1721752\rsid1909948\rsid11889854\rsid13959554}{\*\generator Microsoft Word 10.0.2627;}{\info{\title Decal README}{\author Adam Wright}{\operator Jeffrey Dodge}{\creatim\yr2002\mo10\dy3\hr3\min43}{\revtim\yr2003\mo6\dy23\hr3\min4}
|
||||
{\version4}{\edmins9}{\nofpages2}{\nofwords407}{\nofchars2321}{\*\company The Anarchs}{\nofcharsws2723}{\vern16437}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701
|
||||
\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot13959554 \fet0\sectd \linex0\headery709\footery709\colsx709\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
|
||||
\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
|
||||
\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
|
||||
{\pntxtb (}{\pntxta )}}\pard\plain \qc \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f37\fs28\cf1\insrsid13959554 Decal README
|
||||
\par }{\f2\fs20\cf1\insrsid13959554
|
||||
\par }{\fs20\cf1\insrsid11889854 This is the 2}{\fs20\cf1\super\insrsid11889854\charrsid11889854 nd}{\fs20\cf1\insrsid11889854 release candidate of Decal version 2.5.2.0}{\fs20\cf1\insrsid13959554 .
|
||||
\par
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\cf1\insrsid11889854 This is Decal 2.5.2.0 Release Candidate 2 -- a }{\fs22\cf1\insrsid13959554 supported release. We hope that our release}{\fs22\cf1\insrsid11889854 candidates}{
|
||||
\fs22\cf1\insrsid13959554 are bug free, but if you run into problems, please report them at }{\field{\*\fldinst {\fs22\cf1\insrsid13959554 HYPERLINK "http://forums.acdev.org/phpBB2/viewforum.php" }{\fs22\cf1\insrsid1909948\charrsid1721752 {\*\datafield
|
||||
00d0c9ea79f9bace118c8200aa004ba90b02000000170000002d00000068007400740070003a002f002f0066006f00720075006d0073002e00610063006400650076002e006f00720067002f007000680070004200420032002f00760069006500770066006f00720075006d002e007000680070000000e0c9ea79f9bace11
|
||||
8c8200aa004ba90b5a00000068007400740070003a002f002f0066006f00720075006d0073002e00610063006400650076002e006f00720067002f007000680070004200420032002f00760069006500770066006f00720075006d002e00700068007000000000}}}{\fldrslt {
|
||||
\cs15\fs22\ul\cf2\insrsid13959554\charrsid1721752 http://forums.acdev.org/phpBB2/viewforum.php}}}{\fs22\cf1\insrsid13959554 .
|
||||
\par This way we can keep track of what the current issues are and work to fix them for the }{\fs22\cf1\insrsid11889854 final release of Decal 2.5.2.0.}{\fs22\cf1\insrsid13959554
|
||||
\par
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid11889854 {\b\fs22\cf1\insrsid11889854 Changes since Release 2.5.2.0 RC1
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854
|
||||
{\fs22\cf1\insrsid11889854 Fixed DenAgent inject dependency. Inject.dll may now reside anywhere on your system.}{\b\fs22\cf1\insrsid11889854\charrsid11889854
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854
|
||||
{\fs22\cf1\insrsid11889854 Fixed several DenAgent crashes.}{\b\fs22\cf1\insrsid11889854\charrsid11889854
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid11889854 {\fs22\cf1\insrsid11889854
|
||||
\par }{\b\fs22\cf1\insrsid11889854 Changes since Beta 2.5.0.5
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854
|
||||
{\fs22\cf1\insrsid11889854 Lots of bugfixes}{\b\fs22\cf1\insrsid11889854\charrsid11889854
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854
|
||||
{\fs22\cf1\insrsid11889854 The identify queue no longer fights with the client over whether or not the id panel is closed or open.}{\b\fs22\cf1\insrsid11889854\charrsid11889854
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854
|
||||
{\fs22\cf1\insrsid11889854 Manually identifying an item sends it to the top of the identify queue \endash you should notice that it is far easier to identify items manually now if a plugin is requesting several items to be identified.}{
|
||||
\b\fs22\cf1\insrsid11889854
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0 {\fs22\cf1\insrsid11889854
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 Changes since Release 2.5.0.1 RC1
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554
|
||||
{\fs22\cf1\insrsid13959554 Far too many to list \endash most signifigant is the id queue}{\b\fs22\cf1\insrsid13959554
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.5.0.1 RC1
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554
|
||||
{\fs22\cf1\insrsid13959554 Install now enters correct version into the registry}{\b\fs22\cf1\insrsid13959554
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.5.0.0 RC3
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554
|
||||
{\fs22\cf1\insrsid13959554 .Net plugins will now show their version in the agent, rather than the version of the .Net COM proxy.}{\b\fs22\cf1\insrsid13959554
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554
|
||||
{\fs22\cf1\insrsid13959554 ACHooks slightly cleaned up, should now behave as it did in 2.5.0.0 RC1.}{\b\fs22\cf1\insrsid13959554
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.5.0.0 RC1
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls2\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
CharStats will no longer crash if you switch characters too quickly
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls3\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
IPluginSink fix \endash if Decal never accepted your command line input, it should now
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls4\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
Much ACHooks cleanup and many fixes as well as new hooks for developers to use
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.4.1.4
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls5\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 ?
|
||||
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.4.1.3
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls6\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
CharStats fixes (enchantments should be far more reliable now)
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls7\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
Changes to the way controls track focus events
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls8\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
DenAgent no longer deletes XML files if there were problems updating
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls9\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554
|
||||
Add 'mask' option for vectors to handle animation packet
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.4.1.2
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls10\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 Compiled in VC6 (works on windows 9x again)
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls11\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls11\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 CharacterStats fixes
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls12\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls12\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 WorldFilter fixes
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554
|
||||
\par Changes since Release 2.4.1.0
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls13\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls13\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 ACHooks: QueryMemLoc added to the IDL (it should have always been there).
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls14\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 ACHooks->QueryMemLoc now returns NULL if there is a client and memlocs.xml version mismatch.
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls15\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls15\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 ACHooks is created by the Decal object rather than IPluginSite. As a result Services can obtain a reference to it now.
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls16\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls16\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 ACHooks: SendTellEx Hook
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls17\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls17\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 DecalNet: Uses client hooks for a quicker and more stable parsing method. If the memory locations are not there, it falls back to the previous parser.
|
||||
\par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554
|
||||
\par
|
||||
\par Changes since Release 2.4
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls18\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls18\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 ACHooks: Added hook for SetAutoRun
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls19\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls19\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 ACHooks: Added hood for SendTell
|
||||
\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls20\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls20\rin0\lin360\itap0\pararsid13959554 {
|
||||
\fs22\cf1\insrsid13959554 WorldFilter: Now uses DestroyedObject hook, this should result in less lag and better memory usage
|
||||
\par }}
|
||||
Loading…
Add table
Add a link
Reference in a new issue