Some branding and licensing work (#22)

* Fix stdafx include

* Fix basic handling of "Games" folder on Windows10 RS4 (#10)
This does the following:
- Sets the default state to hidden
- Skips the Games folder when searching

This does not:
- Hide the dead menu entry.

I do not currently know how to actively change the user preference setting to forcefully hide it.

* Add basic Visual Studio gitignore

* Add specific entries to gitignore

* Do not set default menu to Win7 on RS4 (#10)

* Rename "PC Settings" to "Settings" (#12)

* Create distinction between modern and legacy settings in search results

* Add more build artifacts to gitignore

* Add default paths for toolset and build all languages

* Fix several memsize, memtype and nullpointer issues

* create trunk branch containing all changes

* set fallback and next version to 4.3.2, set resource fallback value to allow loading in IDE

* add generated en-US.dll to gitignore

* Don't echo script contents, add disabled "git clean -dfx" to build fresh

* Initial re-branding work (#21)

* Create copy of __MakeFinal to build all languages (Use this file when releasing new versions)

* Move the registry key IvoSoft->Passionate-Coder (#21)

* Change company/mfg name IvoSoft->Passionate-Coder (#21)

* Update some leftover copyright dates (#21)

* Fix accidental copy-paste breaking MakeFinal scripts

* Fix invalid company name for Wix and change registry keys to match the new string (#21)

* Update more copyright and legal text (#21)

* Update RTF files format (Wordpad generated those) (#21)

* update license text in RTF files (#21)
We lost the blue link text in the installer page. Will have to manually re-color all the links later.
This commit is contained in:
Xenhat
2018-06-25 01:42:52 -04:00
committed by GitHub
parent e0d1c72b0b
commit 0adcd693e4
1296 changed files with 7476 additions and 27790 deletions

View File

@@ -0,0 +1,22 @@
REM ***** Collect PDBs
del Final\ClassicStartPDB_%CS_VERSION_STR%.zip
cd Output
7z a ..\Final\ClassicStartPDB_%CS_VERSION_STR%.zip PDB32 PDB64
cd ..
cd ..
REM ***** Collect Sources
del ClassicStartSetup\Final\ClassicStartSrc_%CS_VERSION_STR%.zip
7z a -r -x!*.intermediate.manifest -x!*.embed.manifest -x!*_i.h -x!Website\ ClassicStartSetup\Final\ClassicStartSrc_%CS_VERSION_STR%.zip *.h *.cpp *.rc *.vcproj *.ini *.def *.ico *.idl *.rgs *.jpg *.manifest *.wxl *.wxs *.sln *.bat *.bmp *.txt *.html *.rtf *.gif *.png *.hhp *.hhc ??-??.dll
REM ***** Collect Localization files
del ClassicStartSetup\Final\ClassicStartLoc.zip
cd Localization
7z a -r -x!en-US -x!*WixUI_en-us.wxl -x!*.adml -x!*.admx -x!*LocComments.txt ..\ClassicStartSetup\Final\ClassicStartLoc.zip English ..\ClassicExplorer\ExplorerL10N.ini ..\ClassicStartMenu\StartMenuL10N.ini ..\ClassicStartMenu\StartMenuHelper\StartMenuHelperL10N.ini English\ClassicStartText-en-US.wxl English\ClassicStartEULA.rtf
cd ..
cd ClassicStartSetup

View File

@@ -0,0 +1,125 @@
md Output
del /Q /S Output\*.*
md Output\x64
md Output\PDB32
md Output\PDB64
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do set MSBuildDir=%%i\MSBuild\15.0\Bin\
REM ********* Build 64-bit solution
"%MSBuildDir%MSBuild.exe" ..\ClassicStart.sln /m /t:Rebuild /p:Configuration="Setup" /p:Platform="x64" /verbosity:minimal
@if ERRORLEVEL 1 exit /b 1
REM ********* Build 32-bit solution (must be after 64-bit)
"%MSBuildDir%MSBuild.exe" ..\ClassicStart.sln /m /t:Rebuild /p:Configuration="Setup" /p:Platform="Win32" /verbosity:minimal
@if ERRORLEVEL 1 exit /b 1
REM ********* Make en-US.dll
cd ..
start /wait ClassicStartSetup\ClassicStartUtility\Release\ClassicStartUtility.exe makeEN ClassicExplorer\Setup\ClassicExplorer32.dll ClassicStartMenu\Setup\ClassicStartMenuDLL.dll ClassicIE\Setup\ClassicIEDLL_32.dll ClassicStartUpdate\Release\ClassicStartUpdate.exe
@if ERRORLEVEL 1 exit /b 1
start /wait ClassicStartSetup\ClassicStartUtility\Release\ClassicStartUtility.exe extract en-US.dll en-US.csv
copy en-US.dll Localization\English
move en-US.csv Localization\English
cd ClassicStartSetup
REM ********* Copy binaries
copy /B ..\ClassicExplorer\Setup\ClassicExplorer32.dll Output
copy /B ..\ClassicExplorer\Setup\ClassicExplorerSettings.exe Output
copy /B ..\ClassicIE\Setup\ClassicIEDLL_32.dll Output
copy /B ..\ClassicIE\Setup\ClassicIE_32.exe Output
copy /B ..\ClassicStartMenu\Setup\ClassicStartMenu.exe Output
copy /B ..\ClassicStartMenu\Setup\ClassicStartMenuDLL.dll Output
copy /B ..\ClassicStartUpdate\Release\ClassicStartUpdate.exe Output
copy /B ..\ClassicStartMenu\StartMenuHelper\Setup\StartMenuHelper32.dll Output
copy /B ..\ClassicStartSetup\SetupHelper\Release\SetupHelper.exe Output
copy /B ..\ClassicExplorer\Setup64\ClassicExplorer64.dll Output\x64
copy /B ..\ClassicIE\Setup64\ClassicIEDLL_64.dll Output\x64
copy /B ..\ClassicIE\Setup64\ClassicIE_64.exe Output\x64
copy /B ..\ClassicStartMenu\Setup64\ClassicStartMenu.exe Output\x64
copy /B ..\ClassicStartMenu\Setup64\ClassicStartMenuDLL.dll Output\x64
copy /B ..\ClassicStartMenu\StartMenuHelper\Setup64\StartMenuHelper64.dll Output\x64
copy /B "..\ClassicStartMenu\Skins\Classic Skin.skin" Output
copy /B "..\ClassicStartMenu\Skins\Full Glass.skin" Output
copy /B "..\ClassicStartMenu\Skins\Smoked Glass.skin" Output
copy /B "..\ClassicStartMenu\Skins\Windows Aero.skin" Output
copy /B "..\ClassicStartMenu\Skins\Windows Basic.skin" Output
copy /B "..\ClassicStartMenu\Skins\Windows XP Luna.skin" Output
copy /B "..\ClassicStartMenu\Skins\Windows 8.skin" Output
copy /B "..\ClassicStartMenu\Skins\Metro.skin" Output
copy /B "..\ClassicStartMenu\Skins\Classic Skin.skin7" Output
copy /B "..\ClassicStartMenu\Skins\Windows Aero.skin7" Output
copy /B "..\ClassicStartMenu\Skins\Windows 8.skin7" Output
copy /B "..\ClassicStartMenu\Skins\Midnight.skin7" Output
copy /B "..\ClassicStartMenu\Skins\Metro.skin7" Output
copy /B "..\ClassicStartMenu\Skins\Metallic.skin7" Output
REM ********* Collect debug info
REM Explorer 32
copy /B ..\ClassicExplorer\Setup\ClassicExplorer32.pdb Output\PDB32
copy /B Output\ClassicExplorer32.dll Output\PDB32
copy /B ..\ClassicExplorer\Setup\ClassicExplorerSettings.pdb Output\PDB32
copy /B Output\ClassicExplorerSettings.exe Output\PDB32
REM Explorer 64
copy /B ..\ClassicExplorer\Setup64\ClassicExplorer64.pdb Output\PDB64
copy /B Output\x64\ClassicExplorer64.dll Output\PDB64
REM IE 32
copy /B ..\ClassicIE\Setup\ClassicIEDLL_32.pdb Output\PDB32
copy /B Output\ClassicIEDLL_32.dll Output\PDB32
copy /B ..\ClassicIE\Setup\ClassicIE_32.exe Output\PDB32
copy /B Output\ClassicIE_32.exe Output\PDB32
REM IE 64
copy /B ..\ClassicIE\Setup64\ClassicIEDLL_64.pdb Output\PDB64
copy /B Output\x64\ClassicIEDLL_64.dll Output\PDB64
copy /B ..\ClassicIE\Setup64\ClassicIE_64.exe Output\PDB64
copy /B Output\x64\ClassicIE_64.exe Output\PDB64
REM Menu 32
copy /B ..\ClassicStartMenu\Setup\ClassicStartMenu.pdb Output\PDB32
copy /B Output\ClassicStartMenu.exe Output\PDB32
copy /B ..\ClassicStartMenu\Setup\ClassicStartMenuDLL.pdb Output\PDB32
copy /B Output\ClassicStartMenuDLL.dll Output\PDB32
copy /B ..\ClassicStartMenu\StartMenuHelper\Setup\StartMenuHelper32.pdb Output\PDB32
copy /B Output\StartMenuHelper32.dll Output\PDB32
copy /B ..\ClassicStartUpdate\Release\ClassicStartUpdate.pdb Output\PDB32
copy /B Output\ClassicStartUpdate.exe Output\PDB32
REM Menu 64
copy /B ..\ClassicStartMenu\Setup64\ClassicStartMenu.pdb Output\PDB64
copy /B Output\x64\ClassicStartMenu.exe Output\PDB64
copy /B ..\ClassicStartMenu\Setup64\ClassicStartMenuDLL.pdb Output\PDB64
copy /B Output\x64\ClassicStartMenuDLL.dll Output\PDB64
copy /B ..\ClassicStartMenu\StartMenuHelper\Setup64\StartMenuHelper64.pdb Output\PDB64
copy /B Output\x64\StartMenuHelper64.dll Output\PDB64
REM ********* Build ADMX
if exist Output\PolicyDefinitions.zip (
del Output\PolicyDefinitions.zip
)
cd ..\Localization\English
..\..\ClassicStartMenu\Setup\ClassicStartMenu.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
..\..\ClassicExplorer\Setup\ClassicExplorerSettings.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
..\..\ClassicIE\Setup\ClassicIE_32.exe -saveadmx en-US
@if ERRORLEVEL 1 exit /b 1
md en-US
copy /B *.adml en-US
7z a ..\..\ClassicStartSetup\Output\PolicyDefinitions.zip *.admx en-US\*.adml PolicyDefinitions.rtf
rd /Q /S en-US
cd ..\..\ClassicStartSetup
exit /b 0

View File

@@ -0,0 +1,85 @@
REM ********* Build Help
echo "Building Installers"
@setlocal EnableDelayedExpansion
@if %CS_HAS_HELP%==1 (
SET CS_ERROR=0
if NOT %CS_LANG_FOLDER%==English mklink /J ..\Localization\%CS_LANG_FOLDER%\images ..\Localization\English\images
hhc ..\Localization\%CS_LANG_FOLDER%\ClassicStart.hhp
@REM looks like hhc returns 0 for error, >0 for success
@if NOT ERRORLEVEL 1 @SET CS_ERROR=1
if NOT %CS_LANG_FOLDER%==English rmdir ..\Localization\%CS_LANG_FOLDER%\images
@if !CS_ERROR!==1 exit /b 1
)
@endlocal
@if %CS_HAS_HELP%==0 (
copy /Y ..\Localization\English\ClassicStart.chm ..\Localization\%CS_LANG_FOLDER%\ClassicStart.chm
)
@if %CS_HAS_EULA%==0 copy /Y ..\Localization\English\ClassicStartEULA.rtf ..\Localization\%CS_LANG_FOLDER%
@if %CS_HAS_README%==0 copy /Y ..\Localization\English\ClassicStartReadme.rtf ..\Localization\%CS_LANG_FOLDER%
@if _%CS_LANG_NAME%==_ echo Unrecognized language '%CS_LANG_FOLDER%'
@if _%CS_LANG_NAME%==_ exit /b 1
SET CS_INSTALLER_NAME=ClassicStartSetup_%CS_VERSION_STR%-%CS_LANG_NAME_SHORT%
if %CS_LANG_NAME_SHORT%==en SET CS_INSTALLER_NAME=ClassicStartSetup_%CS_VERSION_STR%
md Temp
del /Q Temp\*.*
@if not exist ..\Localization\%CS_LANG_FOLDER%\ClassicStartText-%CS_LANG_NAME%.wxl exit /b 1
@REM Convvert CS_VERSION (X.Y.Z) into number (XXYYZZZZ)
@set CS_VERSION_NUM=0
@for /f "tokens=1,2,3 delims=." %%A in ("%CS_VERSION%") do (
@set /a "CS_VERSION_NUM=%%A<<24|%%B<<16|%%C"
)
REM ********* Build 32-bit MSI
candle ClassicStartSetup.wxs -out Temp\ClassicStartSetup32.wixobj -ext WixUIExtension -ext WixUtilExtension -dx64=0 -dCS_LANG_FOLDER=%CS_LANG_FOLDER% -dCS_LANG_NAME=%CS_LANG_NAME%
@if ERRORLEVEL 1 exit /b 1
@REM We need to suppress ICE38 and ICE43 because they apply only to per-user installation. We only support per-machine installs
@REM We need to suppress ICE09 because the helper DLLs need to go into the system directory (for safety reasons)
light Temp\ClassicStartSetup32.wixobj -out Temp\ClassicStartSetup32.msi -ext WixUIExtension -ext WixUtilExtension -loc ..\Localization\%CS_LANG_FOLDER%\ClassicStartText-%CS_LANG_NAME%.wxl -loc ..\Localization\%CS_LANG_FOLDER%\WixUI_%CS_LANG_NAME%.wxl -sice:ICE38 -sice:ICE43 -sice:ICE09
@if ERRORLEVEL 1 exit /b 1
REM ********* Build 64-bit MSI
candle ClassicStartSetup.wxs -out Temp\ClassicStartSetup64.wixobj -ext WixUIExtension -ext WixUtilExtension -dx64=1 -dCS_LANG_FOLDER=%CS_LANG_FOLDER% -dCS_LANG_NAME=%CS_LANG_NAME%
@if ERRORLEVEL 1 exit /b 1
@REM We need to suppress ICE38 and ICE43 because they apply only to per-user installation. We only support per-machine installs
@REM We need to suppress ICE09 because the helper DLLs need to go into the system directory (for safety reasons)
light Temp\ClassicStartSetup64.wixobj -out Temp\ClassicStartSetup64.msi -ext WixUIExtension -ext WixUtilExtension -loc ..\Localization\%CS_LANG_FOLDER%\ClassicStartText-%CS_LANG_NAME%.wxl -loc ..\Localization\%CS_LANG_FOLDER%\WixUI_%CS_LANG_NAME%.wxl -sice:ICE38 -sice:ICE43 -sice:ICE09
@if ERRORLEVEL 1 exit /b 1
REM ********* Build MSI Checksums
start /wait ClassicStartUtility\Release\ClassicStartUtility.exe crcmsi Temp
@if ERRORLEVEL 1 exit /b 1
REM ********* Build bootstrapper
for /f "usebackq tokens=*" %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do set MSBuildDir=%%i\MSBuild\15.0\Bin\
"%MSBuildDir%MSBuild.exe" ClassicStartSetup.sln /m /t:Rebuild /p:Configuration="Release" /p:Platform="Win32" /verbosity:minimal
@if ERRORLEVEL 1 exit /b 1
md Final
del Final\%CS_INSTALLER_NAME%.exe
copy /B Release\ClassicStartSetup.exe Final\%CS_INSTALLER_NAME%.exe
if defined APPVEYOR (
appveyor PushArtifact Release\ClassicStartSetup.exe -FileName %CS_INSTALLER_NAME%.exe
)
md Output\Releases
copy /B Final\%CS_INSTALLER_NAME%.exe Output\Releases\%CS_INSTALLER_NAME%.exe
SET CS_LANG_FOLDER=
SET CS_LANG_NAME=
SET CS_LANG_NAME_SHORT=
exit /b 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,439 @@
// Classic Shell (c) 2009-2017, Ivo Beltchev
// Classic Start (c) 2017-2018, The Passionate-Coder Team
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
#define _WIN32_WINNT 0x0600
#include <windows.h>
#include <shlwapi.h>
#include <stdio.h>
#include <commctrl.h>
#include <vector>
#include "resource.h"
#include "StringUtils.h"
#include "FNVHash.h"
// ClassicStartSetup.exe is a bootstrap application that contains installers for 32-bit and 64-bit.
// It unpacks the right installer into the temp directory and executes it.
typedef BOOL (WINAPI *FIsWow64Process)( HANDLE hProcess, PBOOL Wow64Process );
typedef BOOL (WINAPI *FQueryFullProcessImageName)( HANDLE hProcess, DWORD dwFlags, LPTSTR lpExeName, PDWORD lpdwSize );
enum
{
ERR_WRONG_OS=101, // the OS is too old, Windows 7 or up is required
ERR_OLD_VERSION, // detected version older than 1.0.0
ERR_HASH_NOTFOUND, // the HASH resource is missing
ERR_MSIRES_NOTFOUND, // missing MSI resource
ERR_HASH_ERROR,
ERR_VERRES_NOTFOUND, // missing version resource
ERR_MSI_EXTRACTFAIL, // failed to extract the MSI file
ERR_MSIEXEC, // msiexec failed to start
};
struct Chunk
{
int start1, start2, len;
};
static void WriteFileXOR( HANDLE hFile, const unsigned char *buf, int size )
{
if (size>0)
{
std::vector<unsigned char> buf2;
buf2.reserve(size);
for (int i=0;i<size;i++)
buf2.push_back(buf[i]^0xFF);
DWORD q;
WriteFile(hFile,&buf2[0],size,&q,NULL);
}
}
static int ExtractMsi( HINSTANCE hInstance, const wchar_t *msiName, bool b64, bool bQuiet )
{
void *pRes=NULL;
HRSRC hResInfo=FindResource(hInstance,MAKEINTRESOURCE(IDR_MSI_CHECKSUM),L"MSI_FILE");
if (hResInfo)
{
HGLOBAL hRes=LoadResource(hInstance,hResInfo);
pRes=LockResource(hRes);
}
if (!pRes)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_INTERNAL,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_HASH_NOTFOUND;
}
unsigned int hash0=((unsigned int*)pRes)[b64?1:0];
const Chunk *pChunks=NULL;
int chunkCount=0;
if (b64)
{
chunkCount=((unsigned int*)pRes)[2];
pChunks=(Chunk*)((unsigned int*)pRes+3);
}
// extract the installer
const unsigned char *pRes32=NULL;
hResInfo=FindResource(hInstance,MAKEINTRESOURCE(IDR_MSI_FILE32),L"MSI_FILE");
if (hResInfo)
{
HGLOBAL hRes=LoadResource(hInstance,hResInfo);
pRes32=(unsigned char*)LockResource(hRes);
}
if (!pRes32)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_INTERNAL,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_MSIRES_NOTFOUND;
}
const unsigned char *pRes64=NULL;
int size32=SizeofResource(hInstance,hResInfo);
unsigned int hash;
int size64=0;
if (b64)
{
HRSRC hResInfo=FindResource(hInstance,MAKEINTRESOURCE(IDR_MSI_FILE64),L"MSI_FILE");
if (hResInfo)
{
HGLOBAL hRes=LoadResource(hInstance,hResInfo);
pRes64=(unsigned char*)LockResource(hRes);
}
if (!pRes64)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_INTERNAL,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_MSIRES_NOTFOUND;
}
size64=SizeofResource(hInstance,hResInfo);
hash=FNV_HASH0;
int start=0;
int pos=0;
for (int i=0;i<chunkCount;i++)
{
const Chunk &chunk=pChunks[i];
if (start<chunk.start2)
hash=CalcFNVHash(pRes64+pos,chunk.start2-start,hash);
hash=CalcFNVHash(pRes32+chunk.start1,chunk.len,hash);
pos+=chunk.start2-start;
start=chunk.start2+chunk.len;
}
if (pos<size64)
hash=CalcFNVHash(pRes64+pos,size64-pos,hash);
}
else
hash=CalcFNVHash(pRes32,size32);
if (hash!=hash0)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_CORRUPTED,strText,_countof(strText))) strText[0]=0;
wchar_t message[1024];
Sprintf(message,_countof(message),strText,msiName);
MessageBox(NULL,message,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_HASH_ERROR;
}
HANDLE hFile=CreateFile(msiName,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==INVALID_HANDLE_VALUE)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_EXTRACT,strText,_countof(strText))) strText[0]=0;
wchar_t message[1024];
Sprintf(message,_countof(message),strText,msiName);
if (!bQuiet)
{
MessageBox(NULL,message,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_MSI_EXTRACTFAIL;
}
if (b64)
{
int start=0;
int pos=0;
for (int i=0;i<chunkCount;i++)
{
const Chunk &chunk=pChunks[i];
if (start<chunk.start2)
WriteFileXOR(hFile,pRes64+pos,chunk.start2-start);
WriteFileXOR(hFile,pRes32+chunk.start1,chunk.len);
pos+=chunk.start2-start;
start=chunk.start2+chunk.len;
}
if (pos<size64)
WriteFileXOR(hFile,pRes64+pos,size64-pos);
}
else
{
WriteFileXOR(hFile,pRes32,size32);
}
CloseHandle(hFile);
return 0;
}
INT_PTR CALLBACK DialogProc( HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
if (uMsg==WM_COMMAND && wParam==IDOK)
{
wchar_t text[256];
GetDlgItemText(hwndDlg,IDC_EDITPWD,text,_countof(text));
CharUpper(text);
if (CalcFNVHash(text)==0xdd7faf06)
EndDialog(hwndDlg,IDOK);
else
MessageBox(hwndDlg,L"Wrong password.",L"Error",MB_OK|MB_ICONERROR);
return TRUE;
}
if (uMsg==WM_COMMAND && wParam==IDCANCEL)
{
EndDialog(hwndDlg,IDCANCEL);
return TRUE;
}
return FALSE;
}
int APIENTRY wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
INITCOMMONCONTROLSEX init={sizeof(init),ICC_STANDARD_CLASSES};
InitCommonControlsEx(&init);
// get installer version
VS_FIXEDFILEINFO *pVer=NULL;
{
void *pRes=NULL;
HRSRC hResInfo=FindResource(hInstance,MAKEINTRESOURCE(VS_VERSION_INFO),RT_VERSION);
if (hResInfo)
{
HGLOBAL hRes=LoadResource(hInstance,hResInfo);
pRes=LockResource(hRes);
}
if (pRes)
pVer=(VS_FIXEDFILEINFO*)((char*)pRes+40);
}
if (pVer && pVer->dwProductVersionMS==0x20008 && pVer->dwProductVersionLS==0 && DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOGPWD),NULL,DialogProc)!=IDOK)
return 0;
int count;
wchar_t *const *params=CommandLineToArgvW(lpCmdLine,&count);
if (!params) count=0;
int extract=0;
bool bQuiet=false;
for (;count>0;count--,params++)
{
if (_wcsicmp(params[0],L"help")==0 || _wcsicmp(params[0],L"/?")==0)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[4096];
if (!LoadString(hInstance,IDS_HELP,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK);
return 0;
}
if (_wcsicmp(params[0],L"extract32")==0)
extract=32;
if (_wcsicmp(params[0],L"extract64")==0)
extract=64;
if (_wcsicmp(params[0],L"/qn")==0 || _wcsicmp(params[0],L"/q")==0 || _wcsicmp(params[0],L"/quiet")==0 || _wcsicmp(params[0],L"/passive")==0)
{
bQuiet=true;
}
}
if (!pVer)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_INTERNAL,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_VERRES_NOTFOUND;
}
if (extract)
{
wchar_t msiName[_MAX_PATH];
Sprintf(msiName,_countof(msiName),L"ClassicStartSetup%d_%d_%d_%d.msi",extract,HIWORD(pVer->dwProductVersionMS),LOWORD(pVer->dwProductVersionMS),HIWORD(pVer->dwProductVersionLS));
return ExtractMsi(hInstance,msiName,extract==64,bQuiet);
}
// check Windows version
#pragma warning(suppress:4996)
WORD winVer=LOWORD(GetVersion());
winVer=MAKEWORD(HIBYTE(winVer),LOBYTE(winVer));
if (winVer<0x601)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_WIN7,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_WRONG_OS;
}
// dynamically link to IsWow64Process because it is not available for Windows 2000
HMODULE hKernel32=GetModuleHandle(L"kernel32.dll");
FIsWow64Process isWow64Process=(FIsWow64Process)GetProcAddress(hKernel32,"IsWow64Process");
if (!isWow64Process)
{
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_WIN7,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_WRONG_OS;
}
BOOL b64=FALSE;
isWow64Process(GetCurrentProcess(),&b64);
// look for an old version the start menu (2.0.0 or older) and show a warning if it is still running. the uninstaller for such old versions doesn't close the start menu
HWND hwnd=FindWindow(L"ClassicStartMenu.CStartHookWindow",L"StartHookWindow");
if (hwnd)
{
bool bStartMenu=false;
DWORD id;
GetWindowThreadProcessId(hwnd,&id);
HANDLE process=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,id);
if (process)
{
bStartMenu=true;
wchar_t path[_MAX_PATH];
DWORD size=_countof(path);
FQueryFullProcessImageName queryFullProcessImageName=(FQueryFullProcessImageName)GetProcAddress(hKernel32,"QueryFullProcessImageNameW");
if (queryFullProcessImageName && queryFullProcessImageName(process,0,path,&size))
{
DWORD q;
DWORD size=GetFileVersionInfoSize(path,&q);
if (size)
{
std::vector<char> buf(size);
if (GetFileVersionInfo(path,0,size,&buf[0]))
{
VS_FIXEDFILEINFO *pVer;
UINT len;
if (VerQueryValue(&buf[0],L"\\",(void**)&pVer,&len) && pVer->dwProductVersionMS>0x20000)
bStartMenu=false;
}
}
}
CloseHandle(process);
}
if (bStartMenu)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[1024];
if (!LoadString(hInstance,IDS_OLDSTARTMENU,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONWARNING);
}
}
/*
// warning about being beta
if (!bQuiet)
{
if (MessageBox(NULL,L"Warning!\nThis is a beta version of Classic Start. It contains features that are not fully tested. Please report any problems in the Classic Start forums. If you prefer a stable build over the latest features, you can download one of the \"general release\" versions like 3.6.8.\nDo you want to continue with the installation?",L"Classic Start Setup",MB_YESNO|MB_ICONWARNING)==IDNO)
return 99;
}
*/
DWORD version;
{
HKEY hKey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\PassionateCoder\\ClassicStart",0,KEY_READ|(b64?KEY_WOW64_64KEY:0),&hKey)==ERROR_SUCCESS)
{
DWORD size=sizeof(version);
if (RegQueryValueEx(hKey,L"Version",0,NULL,(BYTE*)&version,&size)!=ERROR_SUCCESS)
version=0;
RegCloseKey(hKey);
}
}
wchar_t msiName[_MAX_PATH];
Sprintf(msiName,_countof(msiName),L"%%ALLUSERSPROFILE%%\\ClassicStartSetup%d_%d_%d_%d.msi",b64?64:32,HIWORD(pVer->dwProductVersionMS),LOWORD(pVer->dwProductVersionMS),HIWORD(pVer->dwProductVersionLS));
DoEnvironmentSubst(msiName,_countof(msiName));
int ex=ExtractMsi(hInstance,msiName,b64!=FALSE,bQuiet);
if (ex) return ex;
wchar_t cmdLine[2048];
if (wcsstr(lpCmdLine,L"%MSI%") || wcsstr(lpCmdLine,L"%msi%"))
{
SetEnvironmentVariable(L"MSI",msiName);
Sprintf(cmdLine,_countof(cmdLine),L"msiexec.exe %s",lpCmdLine);
DoEnvironmentSubst(cmdLine,_countof(cmdLine));
}
else
{
Sprintf(cmdLine,_countof(cmdLine),L"msiexec.exe /i \"%s\" %s",msiName,lpCmdLine);
}
// start the installer
STARTUPINFO startupInfo={sizeof(startupInfo)};
PROCESS_INFORMATION processInfo;
memset(&processInfo,0,sizeof(processInfo));
if (!CreateProcess(NULL,cmdLine,NULL,NULL,TRUE,0,NULL,NULL,&startupInfo,&processInfo))
{
DeleteFile(msiName);
if (!bQuiet)
{
wchar_t strTitle[256];
if (!LoadString(hInstance,IDS_APP_TITLE,strTitle,_countof(strTitle))) strTitle[0]=0;
wchar_t strText[256];
if (!LoadString(hInstance,IDS_ERR_MSIEXEC,strText,_countof(strText))) strText[0]=0;
MessageBox(NULL,strText,strTitle,MB_OK|MB_ICONERROR);
}
return ERR_MSIEXEC;
}
else
{
CloseHandle(processInfo.hThread);
// wait for the installer to finish
WaitForSingleObject(processInfo.hProcess,INFINITE);
DWORD code;
GetExitCodeProcess(processInfo.hProcess,&code);
CloseHandle(processInfo.hProcess);
DeleteFile(msiName);
return code;
}
}

View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Passionate-Coder.ClassicStartSetup"
type="win32"
/>
<description>Classic Start Setup</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

View File

@@ -0,0 +1,182 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_APPICON ICON "ClassicStart.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION _PRODUCT_VERSION
PRODUCTVERSION _PRODUCT_VERSION
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Passionate-Coder"
VALUE "FileDescription", "Adds classic shell features to Windows 7 and Windows 8"
VALUE "FileVersion", _PRODUCT_VERSION_STR
VALUE "InternalName", "ClassicStartSetup"
VALUE "LegalCopyright", "Copyright (C) 2017-2018, The Passionate-Coder Team"
VALUE "OriginalFilename", "ClassicStartSetup.exe"
VALUE "ProductName", "Classic Start"
VALUE "ProductVersion", _PRODUCT_VERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// MSI_FILE
//
IDR_MSI_FILE32 MSI_FILE "Temp\\ClassicStartSetup32.msi_"
IDR_MSI_FILE64 MSI_FILE "Temp\\ClassicStartSetup64.msi_"
IDR_MSI_CHECKSUM MSI_FILE "msichecksum.bin"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_DIALOGPWD DIALOGEX 0, 0, 154, 75
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Classic Start 2.8.0 (closed beta)"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "This beta version is password-protected. Please enter the password:",IDC_STATIC,7,7,140,17
EDITTEXT IDC_EDITPWD,7,32,140,14,ES_AUTOHSCROLL
DEFPUSHBUTTON "OK",IDOK,43,54,50,14
PUSHBUTTON "Cancel",IDCANCEL,97,54,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_DIALOGPWD, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 147
TOPMARGIN, 7
BOTTOMMARGIN, 68
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_APP_TITLE "Classic Start Setup"
IDS_OLDSTARTMENU "Warning!\nAn old version of the classic start menu is still running. Please close it before installing the new version to avoid crashing Explorer. Right click on the start button and select ""Exit""."
IDS_ERR_CORRUPTED "Failed to extract setup file '%s'. The MSI resource is corrupted."
END
STRINGTABLE
BEGIN
IDS_ERR_INTERNAL "Internal Setup Error"
IDS_ERR_EXTRACT "Failed to extract setup file '%s'."
IDS_ERR_WIN7 "Classic Start requires Windows 7 or later."
IDS_ERR_MSIEXEC "Failed to run msiexec.exe."
END
STRINGTABLE
BEGIN
IDS_HELP "Classic Start Setup will install Classic Start on your computer. Possible command lines:\n <no command line> - runs the installer normally\n extract32 - extracts the 32-bit MSI\n extract64 - extracts the 64-bit MSI\n help, /? - shows the command line help\n <some msiexec options> - the options are passed to msiexec\n * if the options contain %MSI% (all caps) the token is replaced by the name of the extracted MSI file\n * if %MSI% is not found, the setup runs ""msiexec /i <MSI file> <some msiexec options>""\n * run msiexec with no parameters to see the full list of msiexec options\n\nExamples:\n /qn - runs the installer in quiet mode\n /x %MSI% /qb - uninstalls the product in basic UI level\n /f %MSI% - repairs the product\n /l* log.txt - runs the installer and logs the process in the log.txt file\n /qn ADDLOCAL=ClassicExplorer - installs only Classic Explorer in quiet mode\n /qn ADDLOCAL=ClassicStartMenu APPLICATIONFOLDER=C:\\ClassicStart - installs only Classic Start Menu in quiet mode in the folder C:\\ClassicStart\n ADDLOCAL=ClassicStartMenu,ClassicIE - runs the installer in full UI mode with Classic Start Menu and Classic IE checked by default"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,39 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2010
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassicStartSetup", "ClassicStartSetup.vcxproj", "{A4A4D3B1-24E7-401E-A37C-72141D7603DC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassicStartLib", "..\ClassicStartLib\ClassicStartLib.vcxproj", "{D42FE717-485B-492D-884A-1999F6D51154}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Debug|Win32.ActiveCfg = Debug|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Debug|Win32.Build.0 = Debug|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Debug|x64.ActiveCfg = Debug|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Release|Win32.ActiveCfg = Release|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Release|Win32.Build.0 = Release|Win32
{A4A4D3B1-24E7-401E-A37C-72141D7603DC}.Release|x64.ActiveCfg = Release|Win32
{D42FE717-485B-492D-884A-1999F6D51154}.Debug|Win32.ActiveCfg = Debug|Win32
{D42FE717-485B-492D-884A-1999F6D51154}.Debug|Win32.Build.0 = Debug|Win32
{D42FE717-485B-492D-884A-1999F6D51154}.Debug|x64.ActiveCfg = Debug|x64
{D42FE717-485B-492D-884A-1999F6D51154}.Debug|x64.Build.0 = Debug|x64
{D42FE717-485B-492D-884A-1999F6D51154}.Release|Win32.ActiveCfg = Release|Win32
{D42FE717-485B-492D-884A-1999F6D51154}.Release|Win32.Build.0 = Release|Win32
{D42FE717-485B-492D-884A-1999F6D51154}.Release|x64.ActiveCfg = Release|x64
{D42FE717-485B-492D-884A-1999F6D51154}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E16503A7-2270-43F6-B312-98FBCB237FA4}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A4A4D3B1-24E7-401E-A37C-72141D7603DC}</ProjectGuid>
<RootNamespace>ClassicStartSetup</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\Version.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>comctl32.lib;Psapi.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>comctl32.lib;Psapi.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Image Include="banner.jpg" />
<Image Include="ClassicStart.ico" />
<Image Include="dialog.jpg" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="ClassicStartSetup.cpp" />
</ItemGroup>
<ItemGroup>
<Manifest Include="ClassicStartSetup.manifest" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ClassicStartSetup.rc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\Localization\English\ClassicStartText-en-US.wxl" />
<None Include="BuildArchives.bat" />
<None Include="BuildBinaries.bat" />
<None Include="BuildInstaller.bat" />
<None Include="ClassicStartSetup.wxs" />
<None Include="msichecksum.bin" />
<None Include="SetEnvironment.bat" />
<None Include="Temp\ClassicStartSetup32.msi_" />
<None Include="Temp\ClassicStartSetup64.msi_" />
<None Include="__MakeFinal.bat" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ClassicStartLib\ClassicStartLib.vcxproj">
<Project>{d42fe717-485b-492d-884a-1999f6d51154}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Bootstrapper">
<UniqueIdentifier>{554caf03-9189-4f7c-955b-7407887d81f2}</UniqueIdentifier>
</Filter>
<Filter Include="Setup Files">
<UniqueIdentifier>{dfc73fe3-75a1-4823-b7c6-090157a15da7}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<Image Include="ClassicStart.ico">
<Filter>Bootstrapper</Filter>
</Image>
<Image Include="banner.jpg">
<Filter>Setup Files</Filter>
</Image>
<Image Include="dialog.jpg">
<Filter>Setup Files</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ClassicStartSetup.cpp">
<Filter>Bootstrapper</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Manifest Include="ClassicStartSetup.manifest">
<Filter>Bootstrapper</Filter>
</Manifest>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ClassicStartSetup.rc">
<Filter>Bootstrapper</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h">
<Filter>Bootstrapper</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="__MakeFinal.bat">
<Filter>Setup Files</Filter>
</None>
<None Include="BuildArchives.bat">
<Filter>Setup Files</Filter>
</None>
<None Include="BuildBinaries.bat">
<Filter>Setup Files</Filter>
</None>
<None Include="BuildInstaller.bat">
<Filter>Setup Files</Filter>
</None>
<None Include="ClassicStartSetup.wxs">
<Filter>Setup Files</Filter>
</None>
<None Include="..\Localization\English\ClassicStartText-en-US.wxl">
<Filter>Setup Files</Filter>
</None>
<None Include="SetEnvironment.bat">
<Filter>Setup Files</Filter>
</None>
<None Include="Temp\ClassicStartSetup32.msi_" />
<None Include="Temp\ClassicStartSetup64.msi_" />
<None Include="msichecksum.bin" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,667 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
# This comment is generated by WixEdit, the specific commandline
# arguments for the WiX Toolset are stored here.
candleArgs: "<projectfile>" -out "<projectname>.wixobj" -ext WixUIExtension -ext WixUtilExtension -dx64=0
lightArgs: "<projectname>.wixobj" -out "<projectname>.msi" -ext WixUIExtension -ext WixUtilExtension -loc ClassicStartText-en-US.wxl
-->
<?if $(var.x64)=1 ?>
<?define CS_UPGRADE = "779A74EF-23DE-4C71-AC12-2EE5A542ED34"?>
<?define CS_PLATFORM = "x64"?>
<?define CS_PROGRAM_FILES = "ProgramFiles64Folder"?>
<?define CS_WIN64 = "yes"?>
<?else ?>
<?define CS_UPGRADE = "EB7DA1D9-44EA-43BF-8A08-0B103007D4F2"?>
<?define CS_PLATFORM = "x86"?>
<?define CS_PROGRAM_FILES = "ProgramFilesFolder"?>
<?define CS_WIN64 = "no"?>
<?endif ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="Classic Start" Language="1033" Version="$(env.CS_VERSION)" Manufacturer="PassionateCoder" UpgradeCode="$(var.CS_UPGRADE)">
<Package Description="Classic Start" Comments="Classic Start" InstallerVersion="500" Compressed="yes" Platform="$(var.CS_PLATFORM)" />
<Media Id="1" Cabinet="cshell.cab" EmbedCab="yes" CompressionLevel="high"/>
<Media Id="2" Cabinet="simple.cab" EmbedCab="yes" CompressionLevel="high"/>
<?if $(var.x64)=0 ?>
<Condition Message="!(loc.Error32bit)">not Msix64</Condition>
<?endif ?>
<Condition Message="!(loc.ErrorWin7)">VersionNT&gt;=601</Condition>
<Condition Message="!(loc.ErrorNewVersion)">NOT NEWERPRODUCTFOUND OR Installed</Condition>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.CS_PROGRAM_FILES)" Name="PFiles">
<Directory Id="APPLICATIONFOLDER" Name="Classic Start">
<Directory Id="Skins" Name="Skins" />
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="StartMenuDir" Name="Classic Start">
<Component Id="StartMenuDir" Guid="42AA415A-5E61-4238-96B2-A997D1EE5521">
<RemoveFolder Id="StartMenuDir" On="uninstall" />
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
</Directory>
</Directory>
<Directory Id="SystemFolder" />
<Directory Id="System64Folder" />
</Directory>
<Feature Id="ClassicStart" Level="1" Title="Classic Start" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Absent="disallow" Display="expand" Description="!(loc.ClassicStartDesc)">
<ComponentRef Id="ClassicStart.chm" />
<ComponentRef Id="ClassicStartReadme.rtf" />
<ComponentRef Id="HISTORY.txt" />
<ComponentRef Id="PassionateCoder" />
<ComponentRef Id="TreatAs" />
<ComponentRef Id="HelpLink" />
<ComponentRef Id="ReadmeLink" />
<ComponentRef Id="StartMenuDir" />
<ComponentRef Id="PolicyDefinitions.zip" />
<?if $(var.CS_LANG_NAME)!="en-US" ?>
<ComponentRef Id="LanguageDll" />
<?endif ?>
<Feature Id="ClassicExplorer" Level="1" Title="!(loc.ExplorerTitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.ExplorerDesc)">
<ComponentRef Id="ClassicExplorer32.dll" />
<?if $(var.x64)=1 ?>
<ComponentRef Id="ClassicExplorer64.dll" />
<?endif ?>
<ComponentRef Id="ExplorerL10N.ini" />
<ComponentRef Id="ClassicExplorerSettings.exe" />
<ComponentRef Id="ExplorerSettingsLink" />
</Feature>
<Feature Id="ClassicStartMenu" Level="1" Title="!(loc.StartMenuTitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.StartMenuDesc)">
<ComponentRef Id="ClassicStartMenu.exe" />
<ComponentRef Id="ClassicStartMenuDLL.dll" />
<ComponentRef Id="StartMenuL10N.ini" />
<ComponentRef Id="StartMenuHelper32.dll" />
<?if $(var.x64)=1 ?>
<ComponentRef Id="StartMenuHelper64.dll" />
<?endif ?>
<ComponentRef Id="StartScreenLink" />
<ComponentRef Id="StartMenuHelperL10N.ini" />
<ComponentRef Id="ClassicSkin.skin" />
<ComponentRef Id="FullGlass.skin" />
<ComponentRef Id="SmokedGlass.skin" />
<ComponentRef Id="WindowsAero.skin" />
<ComponentRef Id="WindowsBasic.skin" />
<ComponentRef Id="WindowsXPLuna.skin" />
<ComponentRef Id="Windows8.skin" />
<ComponentRef Id="Metro.skin" />
<ComponentRef Id="ClassicSkin.skin7" />
<ComponentRef Id="WindowsAero.skin7" />
<ComponentRef Id="Windows8.skin7" />
<ComponentRef Id="Midnight.skin7" />
<ComponentRef Id="Metro.skin7" />
<ComponentRef Id="Metallic.skin7" />
<ComponentRef Id="AutoRun" />
<ComponentRef Id="MenuSettingsLink" />
</Feature>
<Feature Id="ClassicIE" Level="2" Title="!(loc.IETitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.IEDesc)">
<ComponentRef Id="ClassicIEDLL_32.dll" />
<ComponentRef Id="ClassicIE_32.exe" />
<?if $(var.x64)=1 ?>
<ComponentRef Id="ClassicIEDLL_64.dll" />
<ComponentRef Id="ClassicIE_64.exe" />
<?endif ?>
<ComponentRef Id="IESettingsLink" />
<Condition Level="1">IE_BUILD&gt;=90000</Condition>
</Feature>
<Feature Id="ClassicStartUpdate" Level="1" Title="!(loc.UpdateTitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.UpdateDesc)">
<ComponentRef Id="ClassicStartUpdate.exe" />
<ComponentRef Id="UpdateSettingsLink" />
</Feature>
</Feature>
<UI>
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="FeatureTree" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="ExitDialog2" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="WelcomeDlg2" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg2">1</Publish>
<Publish Dialog="LicenseAgreementDlg2" Control="Back" Event="NewDialog" Value="WelcomeDlg2">1</Publish>
<Publish Dialog="LicenseAgreementDlg2" Control="Next" Event="NewDialog" Value="CustomizeDlg2">LicenseAccepted = "1"</Publish>
<Publish Dialog="CustomizeDlg2" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg2" Order="1">Installed</Publish>
<Publish Dialog="CustomizeDlg2" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg2" Order="2">NOT Installed</Publish>
<Publish Dialog="CustomizeDlg2" Control="Next" Event="NewDialog" Value="VerifyReadyDlg2">1</Publish>
<Publish Dialog="VerifyReadyDlg2" Control="Back" Event="NewDialog" Value="CustomizeDlg2" Order="1">NOT Installed OR WixUI_InstallMode = "Change"</Publish>
<Publish Dialog="VerifyReadyDlg2" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg2" Order="2">Installed</Publish>
<Publish Dialog="MaintenanceWelcomeDlg2" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg2">1</Publish>
<Publish Dialog="MaintenanceTypeDlg2" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg2">1</Publish>
<Publish Dialog="MaintenanceTypeDlg2" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg2">1</Publish>
<Publish Dialog="MaintenanceTypeDlg2" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg2">1</Publish>
<Publish Dialog="MaintenanceTypeDlg2" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg2">1</Publish>
<Dialog Id="WelcomeDlg2" Width="370" Height="270" Title="!(loc.WelcomeDlg_Title)">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" />
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" />
</Dialog>
<InstallUISequence>
<Show Dialog="WelcomeDlg2" Before="ProgressDlg">NOT Installed</Show>
</InstallUISequence>
<Dialog Id="LicenseAgreementDlg2" Width="370" Height="270" Title="!(loc.LicenseAgreementDlg_Title)">
<Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="207" Width="330" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.LicenseAgreementDlgLicenseAcceptedCheckBox)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish>
<Condition Action="disable"><![CDATA[LicenseAccepted <> "1"]]></Condition>
<Condition Action="enable">LicenseAccepted = "1"</Condition>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.LicenseAgreementDlgBannerBitmap)" />
<Control Id="LicenseText" Type="ScrollableText" X="20" Y="60" Width="330" Height="140" Sunken="yes" TabSkip="no">
<Text SourceFile="..\Localization\$(var.CS_LANG_FOLDER)\ClassicStartEULA.rtf" />
</Control>
<Control Id="Print" Type="PushButton" X="100" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)">
<Publish Event="DoAction" Value="WixUIPrintEula">1</Publish>
</Control>
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgDescription)" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgTitle)" />
</Dialog>
<Dialog Id="CustomizeDlg2" Width="370" Height="270" Title="!(loc.CustomizeDlg_Title)" TrackDiskSpace="yes">
<Control Id="Tree" Type="SelectionTree" X="25" Y="85" Width="175" Height="92" Property="_BrowseProperty" Sunken="yes" TabSkip="no" Text="!(loc.CustomizeDlgTree)" />
<Control Id="Browse" Type="PushButton" X="294" Y="212" Width="66" Height="17" Text="!(loc.CustomizeDlgBrowse)">
<Publish Event="SelectionBrowse" Value="BrowseDlg">1</Publish>
<Condition Action="hide">Installed</Condition>
<Condition Action="disable">Installed</Condition>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Subscribe Event="SelectionNoItems" Attribute="Enabled" />
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.CustomizeDlgBannerBitmap)" />
<Control Id="Text" Type="Text" X="25" Y="55" Width="320" Height="20" Text="!(loc.CustomizeDlgText)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.CustomizeDlgDescription)" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="210" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.CustomizeDlgTitle)" />
<Control Id="Box" Type="GroupBox" X="210" Y="81" Width="150" Height="118" />
<Control Id="ItemDescription" Type="Text" X="215" Y="90" Width="131" Height="50" Text="!(loc.CustomizeDlgItemDescription)">
<Subscribe Event="SelectionDescription" Attribute="Text" />
</Control>
<Control Id="ItemSize" Type="Text" X="215" Y="140" Width="131" Height="50" Text="!(loc.CustomizeDlgItemSize)">
<Subscribe Event="SelectionSize" Attribute="Text" />
</Control>
<Control Id="Location" Type="Text" X="90" Y="214" Width="200" Height="20" Text="!(loc.CustomizeDlgLocation)">
<Subscribe Event="SelectionPath" Attribute="Text" />
<Subscribe Event="SelectionPathOn" Attribute="Visible" />
<Condition Action="hide">Installed</Condition>
</Control>
<Control Id="LocationLabel" Type="Text" X="25" Y="214" Width="65" Height="10" Text="!(loc.CustomizeDlgLocationLabel)">
<Subscribe Event="SelectionPathOn" Attribute="Visible" />
<Condition Action="hide">Installed</Condition>
</Control>
<Control Type="CheckBox" Id="StartMenu" Width="172" Height="17" X="25" Y="181" Text="!(loc.StartMenuFolder)" Property="START_MENU_FOLDER" CheckBoxValue="1">
<Condition Action="hide">Installed</Condition>
</Control>
<Control Type="Line" Id="MiddleLine" Width="370" Height="17" X="0" Y="205">
<Condition Action="hide">Installed</Condition>
</Control>
</Dialog>
<Dialog Id="VerifyReadyDlg2" Width="370" Height="270" Title="!(loc.VerifyReadyDlg_Title)" TrackDiskSpace="yes">
<Control Id="Install" Type="PushButton" ElevationShield="yes" X="236" Y="243" Width="66" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
<Condition Action="show">NOT Installed AND ALLUSERS</Condition>
<Condition Action="enable">NOT Installed</Condition>
<Condition Action="default">NOT Installed</Condition>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="InstallNoShield" Type="PushButton" ElevationShield="no" X="236" Y="243" Width="66" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
<Condition Action="show">NOT Installed AND NOT ALLUSERS</Condition>
<Condition Action="enable">NOT Installed</Condition>
<Condition Action="default">NOT Installed</Condition>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="Change" Type="PushButton" ElevationShield="yes" X="236" Y="243" Width="66" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgChange)">
<Condition Action="show">WixUI_InstallMode = "Change" AND ALLUSERS AND (ADDLOCAL OR REMOVE)</Condition>
<Condition Action="enable">WixUI_InstallMode = "Change"</Condition>
<Condition Action="default">WixUI_InstallMode = "Change"</Condition>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="ChangeNoShield" Type="PushButton" ElevationShield="no" X="236" Y="243" Width="66" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgChange)">
<Condition Action="show">WixUI_InstallMode = "Change" AND (NOT ALLUSERS OR (NOT ADDLOCAL AND NOT REMOVE))</Condition>
<Condition Action="enable">WixUI_InstallMode = "Change"</Condition>
<Condition Action="default">WixUI_InstallMode = "Change"</Condition>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="Repair" Type="PushButton" X="236" Y="243" Width="66" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgRepair)">
<Condition Action="show">WixUI_InstallMode = "Repair"</Condition>
<Condition Action="enable">WixUI_InstallMode = "Repair"</Condition>
<Condition Action="default">WixUI_InstallMode = "Repair"</Condition>
<Publish Event="ReinstallMode" Value="ecmus"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="Reinstall" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="Remove" Type="PushButton" ElevationShield="yes" X="236" Y="243" Width="66" Height="17" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgRemove)">
<Condition Action="show">WixUI_InstallMode = "Remove" AND ALLUSERS</Condition>
<Condition Action="enable">WixUI_InstallMode = "Remove"</Condition>
<Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="RemoveNoShield" Type="PushButton" ElevationShield="no" X="236" Y="243" Width="66" Height="17" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgRemove)">
<Condition Action="show">WixUI_InstallMode = "Remove" AND NOT ALLUSERS</Condition>
<Condition Action="enable">WixUI_InstallMode = "Remove"</Condition>
<Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
</Control>
<Control Id="InstallTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallTitle)">
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Id="InstallText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallText)">
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Id="ChangeTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgChangeTitle)">
<Condition Action="show">WixUI_InstallMode = "Change"</Condition>
</Control>
<Control Id="ChangeText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgChangeText)">
<Condition Action="show">WixUI_InstallMode = "Change"</Condition>
</Control>
<Control Id="RepairTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgRepairTitle)">
<Condition Action="show">WixUI_InstallMode = "Repair"</Condition>
</Control>
<Control Id="RepairText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgRepairText)">
<Condition Action="show">WixUI_InstallMode = "Repair"</Condition>
</Control>
<Control Id="RemoveTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgRemoveTitle)">
<Condition Action="show">WixUI_InstallMode = "Remove"</Condition>
</Control>
<Control Id="RemoveText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgRemoveText)">
<Condition Action="show">WixUI_InstallMode = "Remove"</Condition>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)">
<Condition Action="default">WixUI_InstallMode = "Remove"</Condition>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.VerifyReadyDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
</Dialog>
<Dialog Id="MaintenanceWelcomeDlg2" Width="370" Height="270" Title="!(loc.MaintenanceWelcomeDlg_Title)">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)">
<Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg">CostingComplete = 1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.MaintenanceWelcomeDlgBitmap)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.MaintenanceWelcomeDlgTitle)" />
<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.MaintenanceWelcomeDlgDescription)" />
</Dialog>
<InstallUISequence>
<Show Dialog="MaintenanceWelcomeDlg2" Before="ProgressDlg">Installed AND NOT RESUME AND NOT Preselected</Show>
</InstallUISequence>
<Dialog Id="MaintenanceTypeDlg2" Width="370" Height="270" Title="!(loc.MaintenanceTypeDlg_Title)">
<Control Id="ChangeButton" Type="PushButton" X="40" Y="65" Width="80" Height="17" ToolTip="!(loc.MaintenanceTypeDlgChangeButtonTooltip)" Default="yes" Text="!(loc.MaintenanceTypeDlgChangeButton)">
<Publish Property="WixUI_InstallMode" Value="Change">1</Publish>
</Control>
<Control Id="ChangeText" Type="Text" X="60" Y="85" Width="280" Height="20" Text="!(loc.MaintenanceTypeDlgChangeText)" />
<Control Id="RepairButton" Type="PushButton" X="40" Y="118" Width="80" Height="17" ToolTip="!(loc.MaintenanceTypeDlgRepairButtonTooltip)" Text="!(loc.MaintenanceTypeDlgRepairButton)">
<Publish Property="WixUI_InstallMode" Value="Repair">1</Publish>
</Control>
<Control Id="RepairText" Type="Text" X="60" Y="138" Width="280" Height="30" Text="!(loc.MaintenanceTypeDlgRepairText)" />
<Control Id="RemoveButton" Type="PushButton" X="40" Y="171" Width="80" Height="17" ToolTip="!(loc.MaintenanceTypeDlgRemoveButtonTooltip)" Text="!(loc.MaintenanceTypeDlgRemoveButton)">
<Publish Property="WixUI_InstallMode" Value="Remove">1</Publish>
<Condition Action="disable">ARPNOREMOVE</Condition>
</Control>
<Control Id="RemoveText" Type="Text" X="60" Y="191" Width="280" Height="20" NoPrefix="yes" Text="!(loc.MaintenanceTypeDlgRemoveText)">
<Condition Action="hide">ARPNOREMOVE</Condition>
</Control>
<Control Id="RemoveDisabledText" Type="Text" X="60" Y="191" Width="280" Height="20" NoPrefix="yes" Text="!(loc.MaintenanceTypeDlgRemoveDisabledText)" Hidden="yes">
<Condition Action="show">ARPNOREMOVE</Condition>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUINext)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.MaintenanceTypeDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Title" Type="Text" X="15" Y="6" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.MaintenanceTypeDlgTitle)" />
<Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="20" Transparent="yes" NoPrefix="yes" Text="!(loc.MaintenanceTypeDlgDescription)" />
</Dialog>
<Dialog Id="ExitDialog2" Width="370" Height="270" Title="!(loc.ExitDialog_Title)">
<Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
<Control Id="Bitmap1" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Hidden="yes" Text="!(loc.ExitDialogBitmap)">
<Condition Action="show">Installed</Condition>
</Control>
<Control Id="Bitmap2" Type="Bitmap" X="0" Y="0" Width="370" Height="197" TabSkip="no" Hidden="yes" Text="dialog2.jpg">
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogDescription)" />
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
<Control Id="OptionalText" Type="Text" X="135" Y="110" Width="220" Height="80" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="[WIXUI_EXITDIALOGOPTIONALTEXT]">
<Condition Action="show">WIXUI_EXITDIALOGOPTIONALTEXT AND NOT Installed</Condition>
</Control>
<Control Type="Icon" Id="Icon1" Width="12" Height="12" X="7" Y="203" Hidden="yes" Text="web.ico">
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Type="Hyperlink" Id="Link1" Width="131" Height="10" X="22" Y="204" Hidden="yes" ToolTip="www.classicshell.net">
<Text><![CDATA[<a href="http://www.classicshell.net">!(loc.WebLink)</a>]]></Text>
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Type="Icon" Id="Icon2" Width="12" Height="12" X="7" Y="220" Hidden="yes" Text="donate.ico">
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Type="Hyperlink" Id="Link2" Width="112" Height="10" X="22" Y="221" Hidden="yes" ToolTip="www.paypal.com">
<Text><![CDATA[<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=5N8TPRAQJWX8G&lc=US&item_name=Classic%20Shell&no_note=1&no_shipping=1&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted">!(loc.DonateLink)</a>]]></Text>
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Type="Icon" Id="Icon3" Width="12" Height="12" X="185" Y="203" Hidden="yes" Text="facebook.ico">
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Type="Hyperlink" Id="Link3" Width="140" Height="10" X="200" Y="204" Hidden="yes" ToolTip="www.facebook.com">
<Text><![CDATA[<a href="https://www.facebook.com/classicshell">!(loc.FacebookLink)</a>]]></Text>
<Condition Action="show">NOT Installed</Condition>
</Control>
<Control Id="OptionalCheckBox" Type="CheckBox" X="188" Y="220" Width="130" Height="12" Hidden="yes" Property="WIXUI_EXITDIALOGOPTIONALCHECKBOX" CheckBoxValue="1" Text="!(loc.ViewReadme)">
<Condition Action="show">NOT Installed</Condition>
</Control>
</Dialog>
<Publish Dialog="ExitDialog2" Control="Finish" Event="DoAction" Value="ViewReadme">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<InstallUISequence>
<Show Dialog="ExitDialog2" OnExit="success" />
</InstallUISequence>
<AdminUISequence>
<Show Dialog="ExitDialog2" OnExit="success" />
</AdminUISequence>
</UI>
<UIRef Id="WixUI_Common" />
<UIRef Id="WixUI_ErrorProgressText"/>
<DirectoryRef Id="APPLICATIONFOLDER">
<Component Id="ClassicStart.chm" Guid="29AB35F9-D611-4B34-BCE3-517C10C839AF" Win64="$(var.CS_WIN64)">
<File Id="ClassicStart.chm" KeyPath="yes" Source="..\Localization\$(var.CS_LANG_FOLDER)\ClassicStart.chm" Vital="yes" />
</Component>
<Component Id="ClassicExplorer32.dll" Guid="21833BA5-3F17-4237-BA0C-2D01D273A27F" Win64="$(var.CS_WIN64)">
<File Id="ClassicExplorer32.dll" KeyPath="yes" Source="Output\ClassicExplorer32.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
</Component>
<Component Id="ClassicExplorerSettings.exe" Guid="CBD00200-FAED-48F6-B8C1-F033BDB00A28" Win64="$(var.CS_WIN64)">
<File Id="ClassicExplorerSettings.exe" KeyPath="yes" Source="Output\ClassicExplorerSettings.exe" Checksum="yes" Vital="yes" />
</Component>
<Component Id="ClassicIEDLL_32.dll" Guid="C85DEB7F-FB76-42E9-B1F4-7A7C7DCBD482" Win64="$(var.CS_WIN64)">
<File Id="ClassicIEDLL_32.dll" KeyPath="yes" Source="Output\ClassicIEDLL_32.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
</Component>
<Component Id="ClassicIE_32.exe" Guid="0D0BF4CF-9753-4867-9DE5-69D3DA19DC41" Win64="$(var.CS_WIN64)">
<File Id="ClassicIE_32.exe" KeyPath="yes" Source="Output\ClassicIE_32.exe" Checksum="yes" Vital="yes" />
<Shortcut Id="IESettings" Name="IE Settings" Advertise="no" Description="!(loc.IESettingsDesc)" Target="[APPLICATIONFOLDER]ClassicIE_32.exe" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicIE.Settings" />
</Shortcut>
</Component>
<?if $(var.x64)=1 ?>
<Component Id="ClassicExplorer64.dll" Guid="A82DBFC3-E19B-4E02-AF50-50363C2B0714" Win64="yes" DiskId="2">
<File Id="ClassicExplorer64.dll" KeyPath="yes" Source="Output\x64\ClassicExplorer64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
</Component>
<Component Id="ClassicIEDLL_64.dll" Guid="6EC7C9A0-BB8E-4B4F-9F63-D03EFEB65B41" Win64="yes" DiskId="2">
<File Id="ClassicIEDLL_64.dll" KeyPath="yes" Source="Output\x64\ClassicIEDLL_64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
</Component>
<Component Id="ClassicIE_64.exe" Guid="89BDF7B9-D8F4-46BE-9F29-344B384D753C" Win64="yes" DiskId="2">
<File Id="ClassicIE_64.exe" KeyPath="yes" Source="Output\x64\ClassicIE_64.exe" Checksum="yes" Vital="yes" />
</Component>
<Component Id="ClassicStartMenu.exe" Guid="F74C0FF3-A8C0-4B6E-AFD2-F9467DE4D90B" Win64="yes" DiskId="2">
<File Id="ClassicStartMenu.exe" KeyPath="yes" Checksum="yes" Source="Output\x64\ClassicStartMenu.exe" Vital="yes" />
<Shortcut Id="StartMenuSettings" Name="Start Menu Settings" Advertise="no" Arguments="-settings" Description="!(loc.StartSettingsDesc)" Target="[APPLICATIONFOLDER]ClassicStartMenu.exe" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicStartMenu.Settings" />
</Shortcut>
</Component>
<Component Id="ClassicStartMenuDLL.dll" Guid="C5226061-17DE-4DF6-A088-CC84F6A7BE84" Win64="yes" DiskId="2">
<File Id="ClassicStartMenuDLL.dll" Checksum="yes" KeyPath="yes" Source="Output\x64\ClassicStartMenuDLL.dll" Vital="yes" />
</Component>
<?else ?>
<Component Id="ClassicStartMenu.exe" Guid="F74C0FF3-A8C0-4B6E-AFD2-F9467DE4D90B" Win64="no" DiskId="2">
<File Id="ClassicStartMenu.exe" KeyPath="yes" Checksum="yes" Source="Output\ClassicStartMenu.exe" Vital="yes" />
<Shortcut Id="StartMenuSettings" Name="Start Menu Settings" Advertise="no" Arguments="-settings" Description="!(loc.StartSettingsDesc)" Target="[APPLICATIONFOLDER]ClassicStartMenu.exe" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicStartMenu.Settings" />
</Shortcut>
</Component>
<Component Id="ClassicStartMenuDLL.dll" Guid="C5226061-17DE-4DF6-A088-CC84F6A7BE84" Win64="no" DiskId="2">
<File Id="ClassicStartMenuDLL.dll" Checksum="yes" KeyPath="yes" Source="Output\ClassicStartMenuDLL.dll" Vital="yes" />
</Component>
<?endif ?>
<Component Id="StartScreenLink" Guid="5C71165B-5451-417b-ADF5-86983ED2489A" Win64="$(var.CS_WIN64)">
<Shortcut Id="StartScreen" Name="Start Screen" Advertise="no" Arguments="-togglenew" Description="!(loc.StartScreenDesc)" Target="[APPLICATIONFOLDER]ClassicStartMenu.exe" WorkingDirectory="APPLICATIONFOLDER" Icon="StartScreen.exe">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicStartMenu.StartScreen" />
<ShortcutProperty Key="System.AppUserModel.StartPinOption" Value="1" />
<ShortcutProperty Key="System.AppUserModel.ExcludeFromShowInNewInstall" Value="1" />
<Icon Id="StartScreen.exe" SourceFile="..\ClassicStartMenu\ClassicStartMenuDLL\startb.ico"/>
</Shortcut>
<CreateFolder />
<Condition>VersionNT&gt;601</Condition>
</Component>
<Component Id="ClassicStartReadme.rtf" Guid="A6B815ED-91BD-4F61-83B3-F98041026BB9" Win64="$(var.CS_WIN64)">
<File Id="ClassicStartReadme.rtf" KeyPath="yes" Source="..\Localization\$(var.CS_LANG_FOLDER)\ClassicStartReadme.rtf" Vital="yes" />
</Component>
<Component Id="ExplorerL10N.ini" Guid="660F2112-3133-4022-9F1E-BC3AED2EB475" Win64="$(var.CS_WIN64)">
<File Id="ExplorerL10N.ini" KeyPath="yes" Source="..\ClassicExplorer\ExplorerL10N.ini" Vital="yes" />
</Component>
<Component Id="StartMenuL10N.ini" Guid="3F784CD2-63B8-46db-888E-5AC20852601E" Win64="$(var.CS_WIN64)">
<File Id="StartMenuL10N.ini" KeyPath="yes" Source="..\ClassicStartMenu\StartMenuL10N.ini" Vital="yes" />
</Component>
<Component Id="StartMenuHelperL10N.ini" Guid="144CE4DC-0C77-4793-B79A-A32E48A90E64" Win64="$(var.CS_WIN64)">
<File Id="StartMenuHelperL10N.ini" KeyPath="yes" Source="..\ClassicStartMenu\StartMenuHelper\StartMenuHelperL10N.ini" Vital="yes" />
</Component>
<Component Id="HISTORY.txt" Guid="5264FC00-E363-45EE-B185-84AA048CD559" Win64="$(var.CS_WIN64)">
<File Id="HISTORY.txt" KeyPath="yes" Source="..\HISTORY.txt" Vital="yes" />
</Component>
<Component Id="ClassicStartUpdate.exe" Guid="FB6C213F-B670-4888-8B2C-12E807E335A7" Win64="$(var.CS_WIN64)">
<File Id="ClassicStartUpdate" KeyPath="yes" Source="Output\ClassicStartUpdate.exe" Checksum="yes" Vital="yes" />
</Component>
<Component Id="PolicyDefinitions.zip" Guid="580A15D0-4023-471d-9D82-9D63FBA42B5D" Win64="$(var.CS_WIN64)">
<File Id="PolicyDefinitions.zip" KeyPath="yes" Source="Output\PolicyDefinitions.zip" Vital="yes" />
</Component>
<?if $(var.CS_LANG_NAME)!="en-US" ?>
<Component Id="LanguageDll" Guid="A709B553-FBFA-4863-A9E5-CCD79CAF1560" Win64="$(var.CS_WIN64)">
<File Id="LanguageDll" KeyPath="yes" Source="..\Localization\$(var.CS_LANG_FOLDER)\$(var.CS_LANG_NAME).dll" Checksum="yes" Vital="yes" />
</Component>
<?endif ?>
</DirectoryRef>
<DirectoryRef Id="Skins">
<Component Id="ClassicSkin.skin" Guid="301CA0BC-1DD4-4A25-8E1E-FA1A0134A814" Win64="$(var.CS_WIN64)">
<File Id="ClassicSkin.skin" KeyPath="yes" Checksum="yes" Source="Output\Classic Skin.skin" Vital="yes" />
</Component>
<Component Id="FullGlass.skin" Guid="B71131E1-ED7C-4EED-9289-528B50E2C8EE" Win64="$(var.CS_WIN64)">
<File Id="FullGlass.skin" KeyPath="yes" Checksum="yes" Source="Output\Full Glass.skin" Vital="yes" />
</Component>
<Component Id="SmokedGlass.skin" Guid="19BF925A-85C0-4EFC-8F0C-091BFE5355FA" Win64="$(var.CS_WIN64)">
<File Id="SmokedGlass.skin" KeyPath="yes" Checksum="yes" Source="Output\Smoked Glass.skin" Vital="yes" />
</Component>
<Component Id="WindowsAero.skin" Guid="31F56072-143D-4483-9590-E928CA6A4C5B" Win64="$(var.CS_WIN64)">
<File Id="WindowsAero.skin" KeyPath="yes" Checksum="yes" Source="Output\Windows Aero.skin" Vital="yes" />
</Component>
<Component Id="WindowsBasic.skin" Guid="64F8BA21-1A66-45f8-9BA6-E27156DCAAAE" Win64="$(var.CS_WIN64)">
<File Id="WindowsBasic.skin" KeyPath="yes" Checksum="yes" Source="Output\Windows Basic.skin" Vital="yes" />
</Component>
<Component Id="WindowsXPLuna.skin" Guid="FBC71683-D1B5-4F6C-A14C-AD9B555D10BB" Win64="$(var.CS_WIN64)">
<File Id="WindowsXPLuna.skin" KeyPath="yes" Checksum="yes" Source="Output\Windows XP Luna.skin" Vital="yes" />
</Component>
<Component Id="Windows8.skin" Guid="3787BF83-4910-4008-8C0A-C82602AE80B7" Win64="$(var.CS_WIN64)">
<File Id="Windows8.skin" KeyPath="yes" Checksum="yes" Source="Output\Windows 8.skin" Vital="yes" />
</Component>
<Component Id="Metro.skin" Guid="E7ADDABB-E019-4893-B0C8-200367EEEBAC" Win64="$(var.CS_WIN64)">
<File Id="Metro.skin" KeyPath="yes" Checksum="yes" Source="Output\Metro.skin" Vital="yes" />
<Condition>VersionNT&gt;601</Condition>
</Component>
<Component Id="ClassicSkin.skin7" Guid="24A14A38-B51B-4F6E-8922-95F868F78934" Win64="$(var.CS_WIN64)">
<File Id="ClassicSkin.skin7" KeyPath="yes" Checksum="yes" Source="Output\Classic Skin.skin7" Vital="yes" />
</Component>
<Component Id="WindowsAero.skin7" Guid="4D2ED9E7-825A-4BC6-8EF9-ED142F6FE15F" Win64="$(var.CS_WIN64)">
<File Id="WindowsAero.skin7" KeyPath="yes" Checksum="yes" Source="Output\Windows Aero.skin7" Vital="yes" />
</Component>
<Component Id="Windows8.skin7" Guid="BF69351E-763F-4A31-8180-7A39AA4541B9" Win64="$(var.CS_WIN64)">
<File Id="Windows8.skin7" KeyPath="yes" Checksum="yes" Source="Output\Windows 8.skin7" Vital="yes" />
</Component>
<Component Id="Midnight.skin7" Guid="CE36C4AD-F3CB-4ae0-AC0A-845F5C7B3ED5" Win64="$(var.CS_WIN64)">
<File Id="Midnight.skin7" KeyPath="yes" Checksum="yes" Source="Output\Midnight.skin7" Vital="yes" />
</Component>
<Component Id="Metro.skin7" Guid="4CA9B157-C098-4137-BD17-107C79CBCF44" Win64="$(var.CS_WIN64)">
<File Id="Metro.skin7" KeyPath="yes" Checksum="yes" Source="Output\Metro.skin7" Vital="yes" />
<Condition>VersionNT&gt;601</Condition>
</Component>
<Component Id="Metallic.skin7" Guid="2167BBCA-FD42-4285-AE00-9CDDDF436B30" Win64="$(var.CS_WIN64)">
<File Id="Metallic.skin7" KeyPath="yes" Checksum="yes" Source="Output\Metallic.skin7" Vital="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="TARGETDIR">
<Component Id="PassionateCoder" Guid="19EC9EFC-B901-4EAB-B800-6E98D2261077" Win64="$(var.CS_WIN64)">
<RegistryKey Root="HKLM" Key="Software\PassionateCoder\ClassicStart">
<RegistryValue Type="integer" Name="Version" KeyPath="yes" Value="$(env.CS_VERSION_NUM)" />
<RegistryValue Type="string" Name="Path" Value="[APPLICATIONFOLDER]" />
<?if $(var.CS_LANG_NAME)!="en-US" ?>
<RegistryValue Type="string" Name="DefaultLanguage" Value="$(var.CS_LANG_NAME)" />
<?else ?>
<RegistryValue Type="string" Name="DefaultLanguage" Value="" />
<?endif ?>
</RegistryKey>
</Component>
<Component Id="AutoRun" Guid="64987C22-72C7-419D-B5A5-D2E6CB4865B6" Win64="$(var.CS_WIN64)">
<RegistryKey Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Run">
<RegistryValue Value="&quot;[APPLICATIONFOLDER]ClassicStartMenu.exe&quot; -autorun" Type="string" Name="Classic Start Menu" />
</RegistryKey>
</Component>
<Component Id="TreatAs" Guid="B1E7462A-E1E2-47eb-A42C-7BD272D738AA" Win64="$(var.CS_WIN64)">
<RegistryKey Root="HKCR" Key="CLSID\{ECD4FC4D-521C-11D0-B792-00A0C90312E1}\TreatAs" ForceDeleteOnUninstall="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="StartMenuDir">
<Component Id="HelpLink" Guid="D631C351-7BD4-42CE-813C-5D46347068AF">
<Shortcut Id="HelpLink" Name="!(loc.HelpItem)" Advertise="no" Description="!(loc.HelpDesc)" Target="[APPLICATIONFOLDER]ClassicStart.chm" WorkingDirectory="APPLICATIONFOLDER" />
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
<Component Id="ReadmeLink" Guid="A54415C8-412E-4768-8829-8898122E4AED">
<Shortcut Id="ReadmeLink" Name="!(loc.ReadmeItem)" Advertise="no" Description="!(loc.ReadmeDesc)" Target="[APPLICATIONFOLDER]ClassicStartReadme.rtf" WorkingDirectory="APPLICATIONFOLDER" />
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
<Component Id="UpdateSettingsLink" Guid="10B5A082-6C92-4EA7-AFF8-21AE3D2D7FE0">
<Shortcut Id="UpdateSettingsLink" Name="!(loc.UpdateItem)" Advertise="no" Description="!(loc.UpdateSettingsDesc)" Target="[APPLICATIONFOLDER]ClassicStartUpdate.exe" WorkingDirectory="APPLICATIONFOLDER" />
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
<Component Id="ExplorerSettingsLink" Guid="6EC027F2-115D-4110-8189-DDAFC78169EC">
<Shortcut Id="ExplorerSettingsLink" Name="!(loc.ExplorerItem)" Advertise="no" Description="!(loc.ExplorerSettingsDesc)" Target="[APPLICATIONFOLDER]ClassicExplorerSettings.exe" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicExplorer.Settings" />
</Shortcut>
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
<Component Id="MenuSettingsLink" Guid="F2B638D3-EBE1-4C8F-9C53-08A4F21ACFA3">
<Shortcut Id="MenuSettingsLink" Name="!(loc.StartMenuItem)" Advertise="no" Description="!(loc.StartSettingsDesc)" Target="[APPLICATIONFOLDER]ClassicStartMenu.exe" WorkingDirectory="APPLICATIONFOLDER" Arguments="-settings">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicStartMenu.Settings" />
</Shortcut>
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
<Component Id="IESettingsLink" Guid="10C0226C-22A9-49E4-AA65-C96AD7A504CC">
<Shortcut Id="IESettingsLink" Name="!(loc.IEItem)" Advertise="no" Description="!(loc.IESettingsDesc)" Target="[APPLICATIONFOLDER]ClassicIE_32.exe" WorkingDirectory="APPLICATIONFOLDER">
<ShortcutProperty Key="System.AppUserModel.ID" Value="ClassicStart.ClassicIE.Settings" />
</Shortcut>
<CreateFolder />
<Condition>START_MENU_FOLDER=1</Condition>
</Component>
</DirectoryRef>
<DirectoryRef Id="SystemFolder">
<Component Id="StartMenuHelper32.dll" Guid="3B06791F-61E6-4008-9869-A47AE617D809" Win64="no">
<File Id="StartMenuHelper32.dll" KeyPath="yes" Source="Output\StartMenuHelper32.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
</Component>
</DirectoryRef>
<DirectoryRef Id="System64Folder">
<?if $(var.x64)=1 ?>
<Component Id="StartMenuHelper64.dll" Guid="D103AD49-2C58-4109-9D26-AF1FAD0F556B" Win64="yes" DiskId="2">
<File Id="StartMenuHelper64.dll" KeyPath="yes" Source="Output\x64\StartMenuHelper64.dll" Checksum="yes" SelfRegCost="0" Vital="yes" />
</Component>
<?endif ?>
</DirectoryRef>
<Icon Id="icon.ico" SourceFile="..\ClassicStartSetup\ClassicStart.ico" />
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
<Property Id="ApplicationFolderName" Value="Classic Start" />
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<Property Id="ALLUSERS" Value="1" />
<Property Id="WixShellExecTarget" Value="[#ClassicStartReadme.rtf]" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<Property Id="ARPHELPLINK" Value="http://www.classicshell.net/forum/" />
<Property Id="ARPSIZE" Value="9000" />
<Property Id="ARPURLINFOABOUT" Value="http://www.classicshell.net/" />
<Property Id="ARPNOMODIFY" Value="1" />
<Property Id="ARPNOREPAIR" Value="1" />
<Property Id="START_MENU_FOLDER" Value="1" />
<Property Id="NOSTART" Value="0" />
<Property Id="IE_BUILD" Value="0">
<RegistrySearch Id="IEBuild" Root="HKLM" Key="Software\Microsoft\Internet Explorer" Name="Build" Type="raw" />
</Property>
<Property Id="APPLICATIONFOLDER">
<RegistrySearch Id="Path" Root="HKLM" Key="Software\PassionateCoder\ClassicStart" Name="Path" Type="raw" Win64="$(var.CS_WIN64)" />
</Property>
<CustomAction Id="ViewReadme" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
<CustomAction Id="LaunchStartMenu" Impersonate="yes" ExeCommand="" FileKey="ClassicStartMenu.exe" Return="asyncNoWait" />
<CustomAction Id="CloseStartMenu" Impersonate="yes" BinaryKey="SetupHelper.exe" Return="ignore" ExeCommand="exitSM" />
<WixVariable Id="WixUIBannerBmp" Value="..\ClassicStartSetup\banner.jpg" />
<WixVariable Id="WixUIDialogBmp" Value="..\ClassicStartSetup\dialog.jpg" />
<Upgrade Id="$(var.CS_UPGRADE)">
<UpgradeVersion Property="PREVIOUSVERSIONSINSTALLED" Maximum="$(env.CS_VERSION)" MigrateFeatures="yes"/>
<UpgradeVersion Property="NEWERPRODUCTFOUND" Minimum="$(env.CS_VERSION)" IncludeMinimum="yes" OnlyDetect="yes" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize" />
<Custom Action="CloseStartMenu" Before="InstallValidate"><![CDATA[((!ClassicStartMenu=3) AND (&ClassicStartMenu=2)) OR PREVIOUSVERSIONSINSTALLED OR REINSTALL]]></Custom>
<Custom Action="LaunchStartMenu" After="InstallFinalize"><![CDATA[(!ClassicStartMenu=3 OR &ClassicStartMenu=3) AND NOT REMOVE AND NOSTART<>1]]></Custom>
</InstallExecuteSequence>
<Binary Id="SetupHelper.exe" SourceFile="Output\SetupHelper.exe" />
<Binary Id="dialog2.jpg" SourceFile="..\ClassicStartSetup\dialog2.jpg" />
<Binary Id="donate.ico" SourceFile="..\ClassicStartSetup\donate.ico" />
<Binary Id="web.ico" SourceFile="..\ClassicStartSetup\web.ico" />
<Binary Id="facebook.ico" SourceFile="..\ClassicStartSetup\facebook.ico" />
</Product>
</Wix>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Passionate-Coder.ClassicStartSetup"
type="win32"
/>
<description>Classic Start Setup</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

View File

@@ -0,0 +1,224 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// FILE
//
1 FILE "Release64\\ClassicStartUtility.exe"
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_ICON1 ICON "tool.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_COLORS DIALOGEX 0, 0, 407, 281
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU
CAPTION "Metro Colors"
FONT 9, "Segoe UI", 400, 0, 0x0
BEGIN
LTEXT "Color set:",IDC_STATIC,7,7,31,14,SS_CENTERIMAGE
EDITTEXT IDC_EDIT1,39,7,47,14,ES_AUTOHSCROLL
CONTROL "",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS,79,7,10,14
LTEXT "use -1 for the current set",IDC_STATIC,90,7,79,14,SS_CENTERIMAGE
LTEXT "Search:",IDC_STATIC,215,7,24,14,SS_CENTERIMAGE
EDITTEXT IDC_EDIT2,240,7,160,14,ES_AUTOHSCROLL
CONTROL "",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_EDITLABELS | LVS_ALIGNLEFT | WS_BORDER | WS_TABSTOP,7,23,393,251
END
IDD_UNINSTALL DIALOGEX 0, 0, 315, 201
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Remove Classic Start"
FONT 9, "Segoe UI", 400, 0, 0x0
BEGIN
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,67,301,1
LTEXT "The tool has determined that Classic Start is installed in the following folder. If this is incorrect, use the Browse button to pick another location.",IDC_STATICPATH,7,72,301,19
EDITTEXT IDC_EDITPATH,7,93,262,14,ES_AUTOHSCROLL | ES_READONLY
PUSHBUTTON "Browse",IDC_BUTTONBROWSEPATH,270,93,38,14
LTEXT "Select which settings to remove:\n (it is safe to keep the settings - they will not affect the operation of your computer)",IDC_STATIC,7,113,277,17
CONTROL "Remove admin settings - will remove the settings from the Local Machine registry",IDC_CHECKADMIN,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,132,274,10
CONTROL "Remove user settings - will remove the settings for the current user",IDC_CHECKSETTINGS,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,144,233,10
CONTROL "Remove settings for all users - will remove the user settings for all users",IDC_CHECKALLUSERS,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,156,236,10
LTEXT "Please, make sure that no other users are currently signed in",IDC_STATICALLUSERS,41,167,203,8,NOT WS_VISIBLE
DEFPUSHBUTTON "OK",IDOK,205,180,50,14
PUSHBUTTON "Cancel",IDCANCEL,258,180,50,14
LTEXT "Warning: This tool will remove Classic Start from your system by directly accessing the registry and the file system. A reboot may be required.\nUse it only if you have tried the conventional methods for uinstalling Classic Start and they were unsuccessful.",IDC_STATICWARNING,7,7,301,35
CONTROL "The preferred method for uninstallation is to use the <a>Programs and Features</a> page in the Control Panel.",IDC_SYSLINK1,
"SysLink",WS_TABSTOP,7,44,301,18
END
IDD_UNINSTALL_RESULTS DIALOGEX 0, 0, 471, 302
STYLE DS_SETFONT | DS_CENTER | WS_POPUP | WS_CAPTION | WS_THICKFRAME
CAPTION "Remove Classic Start"
FONT 9, "Segoe UI", 400, 0, 0x0
BEGIN
LTEXT "Static",IDC_STATICRESULT,7,7,457,25
EDITTEXT IDC_EDITRESULT,7,39,457,238,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL
PUSHBUTTON "Restart Now",IDC_BUTTONREBOOT,319,281,70,14
PUSHBUTTON "Close",IDC_BUTTONCLOSE,394,281,70,14
END
IDD_UNINSTALL_PROGRESS DIALOGEX 0, 0, 240, 75
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "Removing Classic Start"
FONT 9, "Segoe UI", 400, 0, 0x0
BEGIN
CONTROL "",IDC_PROGRESS1,"msctls_progress32",WS_BORDER,7,27,226,14
LTEXT "Please, wait...",IDC_STATICWAIT,7,7,83,8
END
IDD_LOGSETTINGS DIALOGEX 0, 0, 201, 245
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Classic Start Logging"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "Warning: Turning on the logging options may negatively affect the performance of Classic Start.",IDC_STATIC,7,7,187,17
LTEXT "Log start menu",IDC_STATIC,7,31,52,12,SS_CENTERIMAGE
CONTROL "Open/close menus",IDC_CHECKOPEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,44,75,10
CONTROL "Menu contents",IDC_CHECKITEMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,44,63,10
CONTROL "Executed items",IDC_CHECKEXECUTE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,58,65,10
CONTROL "MFU items",IDC_CHECKMFU,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,58,49,10
CONTROL "New programs",IDC_CHECKNEW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,72,62,10
CONTROL "Metro apps",IDC_CHECKAPPS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,72,52,10
CONTROL "Search results",IDC_CHECKSEARCH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,86,61,10
CONTROL "SQL commands",IDC_CHECKSEARCH_SQL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,86,64,10
CONTROL "Mouse events",IDC_CHECKMOUSE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,100,61,10
CONTROL "Data cache",IDC_CHECKCACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,107,100,52,10
CONTROL "<a>Start menu log file</a>",IDC_SYSLINKSTART,"SysLink",WS_TABSTOP,22,113,80,10
CONTROL "<a>Data cache log file</a>",IDC_SYSLINKCACHE,"SysLink",WS_TABSTOP,22,125,80,10
CONTROL "Log startup",IDC_CHECKSTARTUP,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,7,140,57,12
CONTROL "<a>Startup log file</a>",IDC_SYSLINKSTARTUP,"SysLink",WS_TABSTOP,22,153,80,10
CONTROL "Log Classic Explorer",IDC_CHECKEXPLORER,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,7,167,84,12
CONTROL "<a>Classic Explorer log file</a>",IDC_SYSLINKEXPLORER,
"SysLink",WS_TABSTOP,22,180,80,10
CONTROL "Log Classic IE",IDC_CHECKIE,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_TABSTOP,7,194,65,12
CONTROL "<a>Classic IE log file</a>",IDC_SYSLINKIE,"SysLink",WS_TABSTOP,22,207,80,10
DEFPUSHBUTTON "OK",IDOK,85,224,50,14
PUSHBUTTON "Cancel",IDCANCEL,144,224,50,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_COLORS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 400
TOPMARGIN, 7
BOTTOMMARGIN, 274
END
IDD_UNINSTALL, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 308
TOPMARGIN, 7
BOTTOMMARGIN, 194
END
IDD_UNINSTALL_RESULTS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 464
TOPMARGIN, 7
BOTTOMMARGIN, 295
END
IDD_UNINSTALL_PROGRESS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 233
TOPMARGIN, 7
BOTTOMMARGIN, 68
END
IDD_LOGSETTINGS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 194
TOPMARGIN, 7
BOTTOMMARGIN, 238
END
END
#endif // APSTUDIO_INVOKED
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

View File

@@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF}</ProjectGuid>
<RootNamespace>ClassicStartUtility</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<UseOfAtl>Static</UseOfAtl>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(Configuration)64\</OutDir>
<IntDir>$(Configuration)64\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;psapi.lib;version.lib;Secur32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;psapi.lib;version.lib;Secur32.lib.;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;psapi.lib;version.lib;Secur32.lib;Netapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_UNICODE;UNICODE;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Link>
<AdditionalDependencies>comctl32.lib;uxtheme.lib;dwmapi.lib;winmm.lib;htmlhelp.lib;psapi.lib;version.lib;Secur32.lib.;%(AdditionalDependencies)</AdditionalDependencies>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="ClassicStartUtility.cpp" />
<ClCompile Include="LoggingOptions.cpp" />
<ClCompile Include="ManualUninstall.cpp" />
<ClCompile Include="MetroColorViewer.cpp" />
<ClCompile Include="SaveLogFile.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="Release64\ClassicStartUtility.exe" />
</ItemGroup>
<ItemGroup>
<Manifest Include="ClassicStartUtility.manifest" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="ClassicStartUtility.rc">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Text Include="..\..\LocComments.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
<ClInclude Include="SaveLogFile.h" />
</ItemGroup>
<ItemGroup>
<Image Include="tool.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ClassicStartLib\ClassicStartLib.vcxproj">
<Project>{d42fe717-485b-492d-884a-1999f6d51154}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="ClassicStartUtility.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@@ -0,0 +1,226 @@
// Classic Shell (c) 2009-2017, Ivo Beltchev
// Classic Start (c) 2017-2018, The Passionate-Coder Team
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
#ifndef _WIN64
#include "resource.h"
#include <atlbase.h>
#include <atltypes.h>
#include <atlstr.h>
#include <atlwin.h>
#include "..\ClassicStartMenu\ClassicStartMenuDLL\LogManager.h"
#include "StringUtils.h"
#include <shlobj.h>
static int g_MenuCheckboxes[][2]=
{
{IDC_CHECKOPEN, LOG_OPEN},
{IDC_CHECKITEMS, LOG_ITEMS},
{IDC_CHECKEXECUTE, LOG_EXECUTE},
{IDC_CHECKMFU, LOG_MFU},
{IDC_CHECKNEW, LOG_NEW},
{IDC_CHECKAPPS, LOG_APPS},
{IDC_CHECKSEARCH, LOG_SEARCH},
{IDC_CHECKSEARCH_SQL, LOG_SEARCH_SQL},
{IDC_CHECKMOUSE, LOG_MOUSE},
{IDC_CHECKCACHE, LOG_CACHE},
};
static int g_FileLinks[]=
{
IDC_SYSLINKSTART,
IDC_SYSLINKCACHE,
IDC_SYSLINKSTARTUP,
IDC_SYSLINKEXPLORER,
IDC_SYSLINKIE,
};
class CLoggingDialog: public CDialogImpl<CLoggingDialog>
{
public:
CLoggingDialog( void ) {}
BEGIN_MSG_MAP( CLoggingDialog )
MESSAGE_HANDLER( WM_INITDIALOG, OnInitDialog )
COMMAND_HANDLER( IDOK, BN_CLICKED, OnOK )
COMMAND_HANDLER( IDCANCEL, BN_CLICKED, OnCancel )
NOTIFY_HANDLER( IDC_SYSLINKSTART, NM_CLICK, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKSTART, NM_RETURN, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKCACHE, NM_CLICK, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKCACHE, NM_RETURN, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKSTARTUP, NM_CLICK, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKSTARTUP, NM_RETURN, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKEXPLORER, NM_CLICK, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKEXPLORER, NM_RETURN, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKIE, NM_CLICK, OnLink )
NOTIFY_HANDLER( IDC_SYSLINKIE, NM_RETURN, OnLink )
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
enum { IDD=IDD_LOGSETTINGS };
protected:
LRESULT OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
LRESULT OnOK( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
LRESULT OnCancel( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
LRESULT OnLink( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
private:
DWORD GetSetting( const wchar_t *regPath, const wchar_t *name );
void SetSetting( const wchar_t *regPath, const wchar_t *name, DWORD value );
CString GetPathForLink( int link );
};
DWORD CLoggingDialog::GetSetting( const wchar_t *regPath, const wchar_t *name )
{
CRegKey regKey;
if (regKey.Open(HKEY_CURRENT_USER,regPath,KEY_READ|KEY_WOW64_64KEY)==ERROR_SUCCESS)
{
DWORD value;
if (regKey.QueryDWORDValue(name,value)==ERROR_SUCCESS)
return value;
}
return 0;
}
void CLoggingDialog::SetSetting( const wchar_t *regPath, const wchar_t *name, DWORD value )
{
CRegKey regKey;
if (regKey.Create(HKEY_CURRENT_USER,regPath)==ERROR_SUCCESS)
regKey.SetDWORDValue(name,value);
}
CString CLoggingDialog::GetPathForLink( int link )
{
const wchar_t *path=NULL;
if (link==IDC_SYSLINKSTART)
path=L"%LOCALAPPDATA%\\ClassicStart\\StartMenuLog.txt";
else if (link==IDC_SYSLINKCACHE)
path=L"%LOCALAPPDATA%\\ClassicStart\\DataCache.txt";
else if (link==IDC_SYSLINKSTARTUP)
path=L"%LOCALAPPDATA%\\ClassicStart\\StartupLog.txt";
else if (link==IDC_SYSLINKEXPLORER)
path=L"%LOCALAPPDATA%\\ClassicStart\\ExplorerLog.txt";
else if (link==IDC_SYSLINKIE)
path=L"%LOCALAPPDATA%\\ClassicStart\\ClassicIELog.txt";
else
return CString();
wchar_t fname[_MAX_PATH];
Strcpy(fname,_countof(fname),path);
DoEnvironmentSubst(fname,_countof(fname));
return fname;
}
LRESULT CLoggingDialog::OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
DWORD log=GetSetting(L"Software\\PassionateCoder\\ClassicStartMenu\\Settings",L"LogCategories");
for (int i=0;i<_countof(g_MenuCheckboxes);i++)
{
if (log&g_MenuCheckboxes[i][1])
CheckDlgButton(g_MenuCheckboxes[i][0],BST_CHECKED);
}
log=GetSetting(L"Software\\PassionateCoder\\ClassicStartMenu\\Settings",L"LogStartup");
if (log)
CheckDlgButton(IDC_CHECKSTARTUP,BST_CHECKED);
log=GetSetting(L"Software\\PassionateCoder\\ClassicExplorer\\Settings",L"LogLevel");
if (log)
CheckDlgButton(IDC_CHECKEXPLORER,BST_CHECKED);
log=GetSetting(L"Software\\PassionateCoder\\ClassicIE\\Settings",L"LogLevel");
if (log)
CheckDlgButton(IDC_CHECKIE,BST_CHECKED);
CWindow tooltip;
tooltip.Create(TOOLTIPS_CLASS,m_hWnd,NULL,NULL,WS_POPUP|TTS_NOPREFIX);
for (int i=0;i<_countof(g_FileLinks);i++)
{
TOOLINFO tool={sizeof(tool),TTF_SUBCLASS|TTF_IDISHWND,m_hWnd,(UINT_PTR)GetDlgItem(g_FileLinks[i]).m_hWnd};
CString str=GetPathForLink(g_FileLinks[i]);
tool.lpszText=(LPWSTR)(LPCWSTR)str;
tooltip.SendMessage(TTM_ADDTOOL,0,(LPARAM)&tool);
}
return TRUE;
}
LRESULT CLoggingDialog::OnOK( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled )
{
int res=0;
DWORD log=0;
for (int i=0;i<_countof(g_MenuCheckboxes);i++)
{
if (IsDlgButtonChecked(g_MenuCheckboxes[i][0])==BST_CHECKED)
log|=g_MenuCheckboxes[i][1];
}
if (log!=GetSetting(L"Software\\PassionateCoder\\ClassicStartMenu\\Settings",L"LogCategories"))
{
SetSetting(L"Software\\PassionateCoder\\ClassicStartMenu\\Settings",L"LogCategories",log);
res=1;
}
log=IsDlgButtonChecked(IDC_CHECKSTARTUP)==BST_CHECKED?1:0;
if (log!=GetSetting(L"Software\\PassionateCoder\\ClassicStartMenu\\Settings",L"LogStartup"))
{
SetSetting(L"Software\\PassionateCoder\\ClassicStartMenu\\Settings",L"LogStartup",log);
res=1;
}
log=IsDlgButtonChecked(IDC_CHECKEXPLORER)==BST_CHECKED?1:0;
if (log!=GetSetting(L"Software\\PassionateCoder\\ClassicExplorer\\Settings",L"LogLevel"))
{
SetSetting(L"Software\\PassionateCoder\\ClassicExplorer\\Settings",L"LogLevel",log);
res=1;
}
log=IsDlgButtonChecked(IDC_CHECKIE)==BST_CHECKED?1:0;
if (log!=GetSetting(L"Software\\PassionateCoder\\ClassicIE\\Settings",L"LogLevel"))
{
SetSetting(L"Software\\PassionateCoder\\ClassicIE\\Settings",L"LogLevel",log);
res=1;
}
EndDialog(res);
return 0;
}
LRESULT CLoggingDialog::OnCancel( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled )
{
EndDialog(0);
return 0;
}
LRESULT CLoggingDialog::OnLink( int idCtrl, LPNMHDR pnmh, BOOL& bHandled )
{
CString path=GetPathForLink(idCtrl);
if (!path.IsEmpty())
{
PIDLIST_ABSOLUTE pidl;
if (SUCCEEDED(SHParseDisplayName(path,NULL,&pidl,0,NULL)))
{
HRESULT hr=SHOpenFolderAndSelectItems(pidl,0,NULL,0);
ILFree(pidl);
}
else
{
wchar_t dir[_MAX_PATH];
Strcpy(dir,_countof(dir),path);
PathRemoveFileSpec(dir);
ShellExecute(NULL,L"open",dir,NULL,dir,SW_SHOWNORMAL);
}
}
return 0;
}
void EditLoggingOptions( void )
{
if (CLoggingDialog().DoModal(NULL))
{
MessageBox(NULL,L"The changes to the logging options will take effect after you restart.",L"Logging options",MB_OK|MB_ICONINFORMATION);
}
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,441 @@
// Classic Shell (c) 2009-2017, Ivo Beltchev
// Classic Start (c) 2017-2018, The Passionate-Coder Team
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
#ifndef _WIN64
#define STRICT_TYPED_ITEMIDS
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#include <atlbase.h>
#include <atltypes.h>
#include <atlstr.h>
#include <atlwin.h>
#include "resource.h"
#include "StringUtils.h"
#include "ResourceHelper.h"
//#define WRITE_COLORS
//#define READ_COLORS
#ifdef READ_COLORS
#undef WRITE_COLORS
#endif
static struct
{
const wchar_t *name;
int code;
} g_SystemColors[]=
{
{L"SystemScrollbar",COLOR_SCROLLBAR},
{L"SystemBackground",COLOR_BACKGROUND},
{L"SystemActiveCaption",COLOR_ACTIVECAPTION},
{L"SystemInactiveCaption",COLOR_INACTIVECAPTION},
{L"SystemMenu",COLOR_MENU},
{L"SystemWindow",COLOR_WINDOW},
{L"SystemWindowFrame",COLOR_WINDOWFRAME},
{L"SystemMenuText",COLOR_MENUTEXT},
{L"SystemWindowText",COLOR_WINDOWTEXT},
{L"SystemCaptionText",COLOR_CAPTIONTEXT},
{L"SystemActiveBorder",COLOR_ACTIVEBORDER},
{L"SystemInactiveBorder",COLOR_INACTIVEBORDER},
{L"SystemAppWorkspace",COLOR_APPWORKSPACE},
{L"SystemHighlight",COLOR_HIGHLIGHT},
{L"SystemHighlightText",COLOR_HIGHLIGHTTEXT},
{L"SystemBtnFace",COLOR_BTNFACE},
{L"SystemBtnShadow",COLOR_BTNSHADOW},
{L"SystemGrayText",COLOR_GRAYTEXT},
{L"SystemBtnText",COLOR_BTNTEXT},
{L"SystemInactiveCaptionText",COLOR_INACTIVECAPTIONTEXT},
{L"SystemBtnHighlight",COLOR_BTNHIGHLIGHT},
{L"System3DDKShadow",COLOR_3DDKSHADOW},
{L"System3DLight",COLOR_3DLIGHT},
{L"SystemInfoText",COLOR_INFOTEXT},
{L"SystemInfoBK",COLOR_INFOBK},
{L"SystemHotLight",COLOR_HOTLIGHT},
{L"SystemGradientActiveCaption",COLOR_GRADIENTACTIVECAPTION},
{L"SystemGradientInactiveCaption",COLOR_GRADIENTINACTIVECAPTION},
{L"SystemMenuHilight",COLOR_MENUHILIGHT},
{L"SystemMenuBar",COLOR_MENUBAR},
};
#ifndef READ_COLORS
typedef int (WINAPI *TGetImmersiveUserColorSetPreference)(bool bForceCheckRegistry, bool bSkipCheckOnFail);
typedef int (WINAPI *TGetImmersiveColorSetCount)();
typedef DWORD (WINAPI *TGetImmersiveColorFromColorSetEx)(UINT dwImmersiveColorSet, UINT dwImmersiveColorType, bool bIgnoreHighContrast, UINT dwHighContrastCacheMode);
typedef const wchar_t **(WINAPI *TGetImmersiveColorNamedTypeByIndex)(UINT dwImmersiveColorType);
typedef int (WINAPI *TGetImmersiveColorTypeFromName)(const wchar_t *name);
static TGetImmersiveUserColorSetPreference GetImmersiveUserColorSetPreference;
static TGetImmersiveColorFromColorSetEx GetImmersiveColorFromColorSetEx;
static TGetImmersiveColorSetCount GetImmersiveColorSetCount;
static TGetImmersiveColorNamedTypeByIndex GetImmersiveColorNamedTypeByIndex;
static TGetImmersiveColorTypeFromName GetImmersiveColorTypeFromName;
#endif
struct MetroColor
{
CString name;
CString NAME;
int type;
DWORD color;
};
static std::vector<MetroColor> g_MetroColors;
static int g_MaxMetroColorType;
class CMetroColorViewer: public CDialogImpl<CMetroColorViewer>
{
public:
CMetroColorViewer( void );
BEGIN_MSG_MAP( CMetroColorViewer )
MESSAGE_HANDLER( WM_INITDIALOG, OnInitDialog )
MESSAGE_HANDLER( WM_CLOSE, OnClose )
COMMAND_HANDLER( IDCANCEL, BN_CLICKED, OnCancel )
COMMAND_HANDLER( IDC_EDIT1, EN_UPDATE, OnUpdateSet )
COMMAND_HANDLER( IDC_EDIT2, EN_UPDATE, OnUpdateFilter )
NOTIFY_HANDLER( IDC_LIST1, NM_CUSTOMDRAW, OnCustomDraw )
NOTIFY_HANDLER( IDC_LIST1, LVN_COLUMNCLICK, OnColumnClick )
REFLECT_NOTIFICATIONS()
END_MSG_MAP()
enum { IDD=IDD_COLORS };
protected:
LRESULT OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
LRESULT OnClose( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled );
LRESULT OnCancel( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
LRESULT OnUpdateSet( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
LRESULT OnUpdateFilter( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled );
LRESULT OnCustomDraw( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
LRESULT OnColumnClick( int idCtrl, LPNMHDR pnmh, BOOL& bHandled );
private:
int m_ColorSet;
int m_SortColumn;
CString m_Filter;
void UpdateRows( void );
void UpdateColors( void );
void SetSortColumn( int sort );
static int CALLBACK CompareFunc( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort );
};
CMetroColorViewer::CMetroColorViewer( void )
{
m_ColorSet=-1;
m_SortColumn=-1;
}
int CALLBACK CMetroColorViewer::CompareFunc( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort )
{
if (lParamSort==1)
{
// type
lParam1=g_MetroColors[lParam1].type;
lParam2=g_MetroColors[lParam2].type;
}
if (lParam1<lParam2) return -1;
if (lParam1>lParam2) return 1;
return 0;
}
LRESULT CMetroColorViewer::OnInitDialog( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
#ifdef READ_COLORS
m_ColorSet=0;
int setCount=1;
GetDlgItem(IDC_EDIT1).EnableWindow(FALSE);
#else
int setCount=GetImmersiveColorSetCount();
#endif
SendDlgItemMessage(IDC_SPIN1,UDM_SETRANGE,0,MAKELONG(setCount-1,-1));
SetDlgItemInt(IDC_EDIT1,-1,TRUE);
SendDlgItemMessage(IDC_LIST1,LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT|LVS_EX_DOUBLEBUFFER,LVS_EX_FULLROWSELECT|LVS_EX_DOUBLEBUFFER);
HWND list=GetDlgItem(IDC_LIST1);
{
LVCOLUMN column={LVCF_WIDTH|LVCF_TEXT,0,380,L"Name"};
ListView_InsertColumn(list,0,&column);
}
{
LVCOLUMN column={LVCF_WIDTH|LVCF_TEXT,0,50,L"#"};
ListView_InsertColumn(list,1,&column);
}
{
LVCOLUMN column={LVCF_WIDTH|LVCF_TEXT,0,100,L"Code"};
ListView_InsertColumn(list,2,&column);
}
{
LVCOLUMN column={LVCF_WIDTH|LVCF_TEXT,0,100,L"Color"};
ListView_InsertColumn(list,3,&column);
}
int order[]={1,0,2,3};
ListView_SetColumnOrderArray(list,_countof(order),order);
SetSortColumn(1);
UpdateRows();
return TRUE;
}
void CMetroColorViewer::SetSortColumn( int sort )
{
CWindow list=GetDlgItem(IDC_LIST1);
list.SendMessage(LVM_SETSELECTEDCOLUMN,m_SortColumn);
CWindow header=ListView_GetHeader(list);
HDITEM hdItem= {HDI_FORMAT};
hdItem.fmt= HDF_LEFT|HDF_STRING;
if (m_SortColumn>=0)
header.SendMessage(HDM_SETITEM,m_SortColumn,(LPARAM)&hdItem);
hdItem.fmt|= HDF_SORTDOWN;
m_SortColumn=sort;
header.SendMessage(HDM_SETITEM,m_SortColumn,(LPARAM)&hdItem);
}
void CMetroColorViewer::UpdateRows( void )
{
CWindow list=GetDlgItem(IDC_LIST1);
if (!list.IsWindow()) return;
std::vector<CString> tokens;
for (const wchar_t *str=m_Filter;*str;)
{
wchar_t token[256];
str=GetToken(str,token,_countof(token),L" ");
if (token[0])
tokens.push_back(token);
}
list.SetRedraw(FALSE);
ListView_DeleteAllItems(list);
for (int i=0;i<(int)g_MetroColors.size();i++)
{
const MetroColor &color=g_MetroColors[i];
bool found=true;
for (std::vector<CString>::const_iterator it=tokens.begin();it!=tokens.end();++it)
{
if (!wcsstr(color.NAME,*it))
{
found=false;
break;
}
}
if (!found) continue;
LVITEM item={LVIF_PARAM|LVIF_TEXT};
item.lParam=i;
item.pszText=(wchar_t*)(const wchar_t*)color.name;
item.iItem=10000;
int idx=ListView_InsertItem(list,&item);
wchar_t text[20];
Sprintf(text,_countof(text),L"%d",color.type);
ListView_SetItemText(list,idx,1,text);
}
ListView_SortItems(list,CompareFunc,m_SortColumn);
list.SetRedraw(TRUE);
UpdateColors();
}
void CMetroColorViewer::UpdateColors( void )
{
CWindow list=GetDlgItem(IDC_LIST1);
if (!list.IsWindow()) return;
#ifndef READ_COLORS
int set=m_ColorSet>=0?m_ColorSet:GetImmersiveUserColorSetPreference(false,false);
#endif
int count=ListView_GetItemCount(list);
list.SetRedraw(FALSE);
for (int i=0;i<count;i++)
{
LVITEM item={LVIF_PARAM};
item.iItem=i;
ListView_GetItem(list,&item);
int idx=(int)item.lParam;
COLORREF color;
#ifndef READ_COLORS
if (g_MetroColors[idx].type<=g_MaxMetroColorType)
color=GetImmersiveColorFromColorSetEx(set,g_MetroColors[idx].type,true,0);
else
#endif
color=g_MetroColors[idx].color;
wchar_t text[20];
Sprintf(text,_countof(text),L"%02X%02X%02X%02X",(color>>24)&0xFF,color&0xFF,(color>>8)&0xFF,(color>>16)&0xFF);
ListView_SetItemText(list,i,2,text);
}
list.SetRedraw(TRUE);
::InvalidateRect(list,NULL,TRUE);
}
LRESULT CMetroColorViewer::OnClose( UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled )
{
EndDialog(0);
return 0;
}
LRESULT CMetroColorViewer::OnCancel( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled )
{
if (GetFocus()==GetDlgItem(IDC_EDIT2))
SetDlgItemText(IDC_EDIT2,L"");
return 0;
}
LRESULT CMetroColorViewer::OnUpdateSet( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled )
{
m_ColorSet=GetDlgItemInt(IDC_EDIT1);
UpdateColors();
return 0;
}
LRESULT CMetroColorViewer::OnUpdateFilter( WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled )
{
CString filter;
GetDlgItemText(IDC_EDIT2,filter);
filter.MakeUpper();
if (filter!=m_Filter)
{
m_Filter=filter;
UpdateRows();
}
return 0;
}
LRESULT CMetroColorViewer::OnCustomDraw( int idCtrl, LPNMHDR pnmh, BOOL& bHandled )
{
NMLVCUSTOMDRAW *pDraw=(NMLVCUSTOMDRAW*)pnmh;
if (pDraw->nmcd.dwDrawStage==CDDS_PREPAINT)
return CDRF_NOTIFYITEMDRAW;
if (pDraw->nmcd.dwDrawStage==CDDS_ITEMPREPAINT)
return CDRF_NOTIFYSUBITEMDRAW;
if (pDraw->nmcd.dwDrawStage==(CDDS_ITEMPREPAINT|CDDS_SUBITEM) && pDraw->iSubItem==3)
{
RECT rc;
ListView_GetSubItemRect(pnmh->hwndFrom,pDraw->nmcd.dwItemSpec,pDraw->iSubItem,LVIR_BOUNDS,&rc);
DWORD color;
#ifndef READ_COLORS
if (g_MetroColors[pDraw->nmcd.lItemlParam].type<=g_MaxMetroColorType)
{
int set=m_ColorSet>=0?m_ColorSet:GetImmersiveUserColorSetPreference(false,false);
color=GetImmersiveColorFromColorSetEx(set,g_MetroColors[pDraw->nmcd.lItemlParam].type,true,0);
}
else
#endif
color=g_MetroColors[pDraw->nmcd.lItemlParam].color;
SetDCBrushColor(pDraw->nmcd.hdc,color&0xFFFFFF);
FillRect(pDraw->nmcd.hdc,&rc,(HBRUSH)GetStockObject(DC_BRUSH));
return CDRF_SKIPDEFAULT;
}
return CDRF_DODEFAULT;
}
LRESULT CMetroColorViewer::OnColumnClick( int idCtrl, LPNMHDR pnmh, BOOL& bHandled )
{
NMLISTVIEW *pSort=(NMLISTVIEW *)pnmh;
if (pSort->iSubItem==0 || pSort->iSubItem==1)
{
SetSortColumn(pSort->iSubItem);
ListView_SortItems(pnmh->hwndFrom,CompareFunc,m_SortColumn);
}
return 0;
}
void ShowMetroColorViewer( void )
{
#ifndef READ_COLORS
HMODULE hUxTheme=LoadLibrary(L"uxtheme.dll");
DWORD ver=GetVersionEx(hUxTheme);
if (hUxTheme && ver>=0x6020000)
{
GetImmersiveUserColorSetPreference=(TGetImmersiveUserColorSetPreference)GetProcAddress(hUxTheme,MAKEINTRESOURCEA(98));
GetImmersiveColorFromColorSetEx=(TGetImmersiveColorFromColorSetEx)GetProcAddress(hUxTheme,MAKEINTRESOURCEA(95));
GetImmersiveColorSetCount=(TGetImmersiveColorSetCount)GetProcAddress(hUxTheme,MAKEINTRESOURCEA(94));
GetImmersiveColorNamedTypeByIndex=(TGetImmersiveColorNamedTypeByIndex)GetProcAddress(hUxTheme,MAKEINTRESOURCEA(100));
GetImmersiveColorTypeFromName=(TGetImmersiveColorTypeFromName)GetProcAddress(hUxTheme,MAKEINTRESOURCEA(96));
}
if (GetImmersiveUserColorSetPreference && GetImmersiveColorFromColorSetEx && GetImmersiveColorSetCount && GetImmersiveColorNamedTypeByIndex && GetImmersiveColorTypeFromName)
#endif
{
#ifdef READ_COLORS
FILE *fin=NULL;
fopen_s(&fin,"d:\\colors.txt","rt");
#endif
#ifdef WRITE_COLORS
FILE *fout=NULL;
fopen_s(&fout,"d:\\colors.txt","wt");
#endif
#ifndef READ_COLORS
int set=GetImmersiveUserColorSetPreference(false,false);
#endif
g_MaxMetroColorType=0;
for (int i=0;;i++)
{
const wchar_t *name=NULL;
int type=i;
COLORREF color=0;
#ifdef READ_COLORS
char buf[200]={0};
if (fin) fgets(buf,_countof(buf),fin);
#endif
wchar_t text[256];
#ifdef READ_COLORS
CStringW str;
if (Strlen(buf)>9)
{
str=buf+9;
str.Trim(L"\r\n");
name=str;
}
#else
const wchar_t **ptr=GetImmersiveColorNamedTypeByIndex(i);
if (ptr)
name=*ptr;
#endif
if (!name)
break;
Sprintf(text,_countof(text),L"Immersive%s",name);
#ifdef READ_COLORS
char *end;
color=strtoul(buf,&end,16);
color=(color&0xFF00FF00)|((color>>16)&0xFF)|((color&0xFF)<<16);
#else
type=GetImmersiveColorTypeFromName(text);
#endif
#ifdef WRITE_COLORS
color=GetImmersiveColorFromColorSetEx(set,type,true,0);
if (fout) fprintf(fout,"%02X%02X%02X%02X %S\n",(color>>24)&0xFF,color&0xFF,(color>>8)&0xFF,(color>>16)&0xFF,name);
#endif
MetroColor mc;
mc.name=name;
mc.NAME=mc.name;
mc.NAME.MakeUpper();
mc.type=type;
if (g_MaxMetroColorType<type)
g_MaxMetroColorType=type;
#ifdef READ_COLORS
mc.color=color;
#endif
g_MetroColors.push_back(mc);
}
#ifdef READ_COLORS
if (fin) fclose(fin);
#endif
#ifdef WRITE_COLORS
if (fout) fclose(fout);
#endif
for (int i=0;i<_countof(g_SystemColors);i++)
{
MetroColor mc;
mc.name=g_SystemColors[i].name;
mc.NAME=mc.name;
mc.NAME.MakeUpper();
mc.type=g_MaxMetroColorType+1+i;
mc.color=GetSysColor(g_SystemColors[i].code)|0xFF000000;
g_MetroColors.push_back(mc);
}
CMetroColorViewer().DoModal(NULL);
}
}
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
// Classic Shell (c) 2009-2017, Ivo Beltchev
// Classic Start (c) 2017-2018, The Passionate-Coder Team
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
#pragma once
void ShowSaveLogFile( void );
int SaveLogFile( const wchar_t *fname, bool bAdmin );
DWORD GetFileVersion( const wchar_t *fname, DWORD *pBuild );

View File

@@ -0,0 +1,61 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ClassicStartUtility.rc
//
#define IDI_ICON1 101
#define IDD_DIALOG1 102
#define IDD_COLORS 102
#define IDD_UNINSTALL 103
#define IDD_UNINSTALL_RESULTS 104
#define IDD_UNINSTALL_PROGRESS 105
#define IDD_LOGSETTINGS 106
#define IDC_EDIT1 1001
#define IDC_SPIN1 1002
#define IDC_LIST1 1003
#define IDC_EDIT2 1004
#define IDC_BUTTONBROWSEPATH 1005
#define IDC_CHECKADMIN 1006
#define IDC_CHECKSETTINGS 1007
#define IDC_CHECKALLUSERS 1008
#define IDC_SYSLINK1 1009
#define IDC_EDITPATH 1010
#define IDC_SYSLINKSTARTUP 1010
#define IDC_STATICPATH 1011
#define IDC_SYSLINKEXPLORER 1011
#define IDC_STATICWARNING 1012
#define IDC_SYSLINKIE 1012
#define IDC_STATICRESULT 1013
#define IDC_EDITRESULT 1014
#define IDC_BUTTONREBOOT 1015
#define IDC_BUTTONCLOSE 1016
#define IDC_PROGRESS1 1017
#define IDC_STATICWIAT 1018
#define IDC_STATICWAIT 1018
#define IDC_STATICALLUSERS 1019
#define IDC_CHECKEXPLORER 1020
#define IDC_CHECKSTARTUP 1022
#define IDC_CHECKIE 1023
#define IDC_CHECKEXECUTE 1028
#define IDC_CHECKOPEN 1029
#define IDC_CHECKITEMS 1030
#define IDC_CHECKMOUSE 1031
#define IDC_CHECKMFU 1032
#define IDC_CHECKSEARCH 1033
#define IDC_CHECKSEARCH_SQL 1034
#define IDC_CHECKNEW 1035
#define IDC_CHECKAPPS 1036
#define IDC_CHECKCACHE 1037
#define IDC_SYSLINKSTART 1038
#define IDC_SYSLINKSTART2 1039
#define IDC_SYSLINKCACHE 1039
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 108
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1039
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,91 @@
// Classic Shell (c) 2009-2017, Ivo Beltchev
// Classic Start (c) 2017-2018, The Passionate-Coder Team
// Confidential information of Ivo Beltchev. Not for disclosure or distribution without prior written consent from the author
#define STRICT_TYPED_ITEMIDS
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // some CString constructors will be explicit
#include <windows.h>
#include <atlstr.h>
#include "ResourceHelper.h"
HINSTANCE g_hInstance;
///////////////////////////////////////////////////////////////////////////////
int ExitStartMenu( void )
{
HKEY hKey=NULL;
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\PassionateCoder\\ClassicStart",0,NULL,REG_OPTION_NON_VOLATILE,KEY_READ|KEY_QUERY_VALUE|KEY_WOW64_64KEY,NULL,&hKey,NULL)==ERROR_SUCCESS)
{
DWORD type=0;
wchar_t path[_MAX_PATH];
DWORD size=sizeof(path);
if (RegQueryValueEx(hKey,L"Path",0,&type,(BYTE*)path,&size)==ERROR_SUCCESS && type==REG_SZ)
{
STARTUPINFO startupInfo={sizeof(startupInfo)};
PROCESS_INFORMATION processInfo;
memset(&processInfo,0,sizeof(processInfo));
wcscat_s(path,L"ClassicStartMenu.exe");
HANDLE h=CreateFile(path,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (h!=INVALID_HANDLE_VALUE)
{
CloseHandle(h);
wcscat_s(path,L" -exit");
if (CreateProcess(NULL,path,NULL,NULL,TRUE,0,NULL,NULL,&startupInfo,&processInfo))
{
CloseHandle(processInfo.hThread);
WaitForSingleObject(processInfo.hProcess,5000);
CloseHandle(processInfo.hProcess);
}
}
}
RegCloseKey(hKey);
}
HWND updateOwner=FindWindow(L"ClassicStartUpdate.COwnerWindow",NULL);
if (updateOwner)
PostMessage(updateOwner,WM_CLEAR,0,0);
return 0;
}
int FixVersion( void )
{
HKEY hKey=NULL;
if (RegCreateKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\PassionateCoder\\ClassicStart",0,NULL,REG_OPTION_NON_VOLATILE,KEY_READ|KEY_WRITE|KEY_WOW64_64KEY,NULL,&hKey,NULL)==ERROR_SUCCESS)
{
DWORD winVer=GetVersionEx(GetModuleHandle(L"user32.dll"));
RegSetValueEx(hKey,L"WinVersion",NULL,REG_DWORD,(BYTE*)&winVer,sizeof(DWORD));
RegCloseKey(hKey);
}
return 0;
}
///////////////////////////////////////////////////////////////////////////////
// Setup Helper - performs custom actions during Classic Start install/uninstall
// Usage:
// exitSM // exits the start menu if it is running
// fixVersion // sets the correct OS version
int WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpstrCmdLine, int nCmdShow )
{
// MessageBox(NULL,lpstrCmdLine,L"Command Line",MB_OK|MB_SYSTEMMODAL);
int count;
wchar_t *const *params=CommandLineToArgvW(lpstrCmdLine,&count);
if (!params) return 1;
g_hInstance=hInstance;
for (;count>0;count--,params++)
{
if (_wcsicmp(params[0],L"exitSM")==0)
{
return ExitStartMenu();
}
if (_wcsicmp(params[0],L"fixVersion")==0)
{
return FixVersion();
}
}
return 1;
}

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Passionate-Coder.ClassicStartMenu"
type="win32"
/>
<description>Setup Helper</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

View File

@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{E1017135-9916-4B11-9AC5-1EC0BD8F8CD6}</ProjectGuid>
<RootNamespace>SetupHelper</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>..\..\ClassicStartLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="SetupHelper.cpp" />
</ItemGroup>
<ItemGroup>
<Manifest Include="SetupHelper.manifest" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ClassicStartLib\ClassicStartLib.vcxproj">
<Project>{d42fe717-485b-492d-884a-1999f6d51154}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

View File

@@ -0,0 +1,506 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="update_4.1.0|Win32">
<Configuration>update_4.1.0</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.0|Win32">
<Configuration>update_4.2.0</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.1|Win32">
<Configuration>update_4.2.1</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.2|Win32">
<Configuration>update_4.2.2</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.3|Win32">
<Configuration>update_4.2.3</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.4|Win32">
<Configuration>update_4.2.4</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.5|Win32">
<Configuration>update_4.2.5</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.6|Win32">
<Configuration>update_4.2.6</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.2.7|Win32">
<Configuration>update_4.2.7</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.3.0|Win32">
<Configuration>update_4.3.0</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="update_4.3.1|Win32">
<Configuration>update_4.3.1</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F92A5473-F9E0-412F-923C-6632A66D13C1}</ProjectGuid>
<RootNamespace>UpdateBin</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Version.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'">
<OutDir>$(Configuration)\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.1.0|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.0|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.1|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.2|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.3|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.4|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.5|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.6|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.2.7|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.0|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='update_4.3.1|Win32'">
<PreBuildEvent>
<Command>..\ClassicStartUtility\Debug\ClassicStartUtility.exe update .\$(Configuration).txt .\UpdateBin.rc</Command>
</PreBuildEvent>
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<PrecompiledHeader />
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<OutputFile>..\Final\$(Configuration).ver</OutputFile>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
</ItemGroup>
<ItemGroup>
<Text Include="update_4.1.0.txt" />
<Text Include="update_4.2.0.txt" />
<Text Include="update_4.2.1.txt" />
<Text Include="update_4.2.2.txt" />
<Text Include="update_4.2.3.txt" />
<Text Include="update_4.2.4.txt" />
<Text Include="update_4.2.5.txt" />
<Text Include="update_4.2.6.txt" />
<Text Include="update_4.2.7.txt" />
<Text Include="update_4.3.0.txt" />
<Text Include="update_4.3.1.txt" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="UpdateBin.rc" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ClassicStartUtility\ClassicStartUtility.vcxproj">
<Project>{dae66c9b-05dc-4ace-97da-2547b490bbff}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,10 @@
#define IDS_VERSION 16
#define IDS_NEWS 17
#define IDS_INSTALL_URL 18
#define IDS_INSTALL_SIGNER 19
#define IDS_LNG_URL 20
#define IDS_LNG_VERSION 21
#define IDS_LNG_CRC 22
#define IDS_UPDATE_LINK 23
#define IDS_LANGUAGE_LINK 24
#define IDS_ALT_URL 25

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=Chinese
SET CS_LANG_NAME=zh-CN
SET CS_LANG_NAME_SHORT=zhCN
SET CS_HAS_HELP=0
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=ChineseTW
SET CS_LANG_NAME=zh-TW
SET CS_LANG_NAME_SHORT=zhTW
SET CS_HAS_HELP=1
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=English
SET CS_LANG_NAME=en-US
SET CS_LANG_NAME_SHORT=en
SET CS_HAS_HELP=1
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=French
SET CS_LANG_NAME=fr-FR
SET CS_LANG_NAME_SHORT=fr
SET CS_HAS_HELP=1
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=German
SET CS_LANG_NAME=de-DE
SET CS_LANG_NAME_SHORT=de
SET CS_HAS_HELP=0
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=Italian
SET CS_LANG_NAME=it-IT
SET CS_LANG_NAME_SHORT=it
SET CS_HAS_HELP=0
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=Polish
SET CS_LANG_NAME=pl-PL
SET CS_LANG_NAME_SHORT=pl
SET CS_HAS_HELP=1
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=Russian
SET CS_LANG_NAME=ru-RU
SET CS_LANG_NAME_SHORT=ru
SET CS_HAS_HELP=1
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,8 @@
SET CS_LANG_FOLDER=Spanish
SET CS_LANG_NAME=es-ES
SET CS_LANG_NAME_SHORT=es
SET CS_HAS_HELP=1
SET CS_HAS_EULA=1
SET CS_HAS_README=1
call BuildInstaller.bat

View File

@@ -0,0 +1,28 @@
@echo off
set PATH=C:\Program Files\7-Zip\;C:\Program Files (x86)\HTML Help Workshop;C:\Program Files (x86)\WiX Toolset v3.11\bin\;%PATH%
@cd %~dp0
@rem Clean repository and build fresh. Will erase current changes so disabled by default.
rem git clean -dfx
@rem Default version
@set CS_VERSION=4.3.2
@if defined APPVEYOR_BUILD_VERSION (
@set CS_VERSION=%APPVEYOR_BUILD_VERSION%
)
@rem Convert . to _
@set CS_VERSION_STR=%CS_VERSION:.=_%
@call BuildBinaries.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildEnglish.bat
@if ERRORLEVEL 1 exit /b 1
call BuildArchives.bat
@if ERRORLEVEL 1 exit /b 1
@exit /b 0

View File

@@ -0,0 +1,48 @@
@rem @echo off
@rem This file is to create all the files required for a new release to publish
set PATH=C:\Program Files\7-Zip\;C:\Program Files (x86)\HTML Help Workshop;C:\Program Files (x86)\WiX Toolset v3.11\bin\;%PATH%
@cd %~dp0
@rem Clean repository and build fresh. Will erase current changes so disabled by default.
rem git clean -dfx
@rem Default version
@set CS_VERSION=4.3.2
@if defined APPVEYOR_BUILD_VERSION (
@set CS_VERSION=%APPVEYOR_BUILD_VERSION%
)
@rem Convert . to _
@set CS_VERSION_STR=%CS_VERSION:.=_%
@call BuildBinaries.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildEnglish.bat
@if ERRORLEVEL 1 exit /b 1
@rem Build other languages
@call _BuildChineseCN.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildChineseTW.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildFrench.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildGerman.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildItalian.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildPolish.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildRussian.bat
@if ERRORLEVEL 1 exit /b 1
@call _BuildSpanish.bat
@if ERRORLEVEL 1 exit /b 1
call BuildArchives.bat
@if ERRORLEVEL 1 exit /b 1
@exit /b 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,109 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x0L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Passionate-Coder"
VALUE "FileDescription", "en-US"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "en-US"
VALUE "LegalCopyright", "Copyright (C) 2017-2018, The Passionate-Coder Team"
VALUE "OriginalFilename", "en-US"
VALUE "ProductName", "Classic Start"
VALUE "ProductVersion", "1, 0, 0, 1"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// L10N
//
1 L10N "en-US.txt"
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

Binary file not shown.

View File

@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Resource|Win32">
<Configuration>Resource</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{0A60FD06-3A81-4651-A869-9850DBC115EA}</ProjectGuid>
<RootNamespace>enUS</RootNamespace>
<Keyword>Win32Proj</Keyword>
<WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Resource|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v141</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Resource|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Resource|Win32'">
<OutDir>..\..\</OutDir>
<IntDir>$(Configuration)\</IntDir>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Resource|Win32'">
<Link>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<NoEntryPoint>true</NoEntryPoint>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="en-US.rc" />
</ItemGroup>
<ItemGroup>
<Text Include="en-US.txt" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="resource.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -0,0 +1,16 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by en-US.rc
//
#define IDR_L10N1 101
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,31 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ClassicStartSetup.rc
//
#define IDS_APP_NAME 100
#define IDS_APP_TITLE 100
#define IDI_APPICON 101
#define IDS_OLDSTARTMENU 101
#define IDS_ERR_CORRUPTED 102
#define IDR_MSI_FILE32 132
#define IDR_MSI_FILE64 164
#define IDS_ERR_INTERNAL 166
#define IDD_DIALOGPWD 166
#define IDS_ERR_EXTRACT 167
#define IDR_MSI_CHECKSUM 167
#define IDS_ERR_WIN7 169
#define IDS_ERR_MSIEXEC 170
#define IDS_HELP 200
#define IDC_EDIT1 1001
#define IDC_EDITPWD 1001
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 168
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB