Initial commit

This commit is contained in:
coddec
2017-12-04 13:27:18 +11:00
commit f6150dafc8
1282 changed files with 193271 additions and 0 deletions
@@ -0,0 +1,18 @@
REM ***** Collect PDBs
del Final\ClassicShellPDB_%CS_VERSION_STR%.zip
"C:\Program Files\WinRAR\winrar" a -afzip -ep1 Final\ClassicShellPDB_%CS_VERSION_STR%.zip Output\PDB32 Output\PDB64
cd ..
REM ***** Collect Sources
del ClassicShellSetup\Final\ClassicShellSrc_%CS_VERSION_STR%.zip
"C:\Program Files\WinRAR\winrar" a -afzip -ep1 -ed -r -x*.intermediate.manifest -x*.embed.manifest -x*_i.h -xWebsite\ ClassicShellSetup\Final\ClassicShellSrc_%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 ClassicShellSetup\Final\ClassicShellLoc.zip
"C:\Program Files\WinRAR\winrar" a -afzip -ep1 -ed -r -x*WixUI_en-us.wxl -x*.adml -x*.admx -x*LocComments.txt ClassicShellSetup\Final\ClassicShellLoc.zip Localization\English ClassicExplorer\ExplorerL10N.ini ClassicStartMenu\StartMenuL10N.ini ClassicStartMenu\StartMenuHelper\StartMenuHelperL10N.ini Localization\English\ClassicShellText-en-US.wxl Localization\English\ClassicShellEULA.rtf
cd ClassicShellSetup
@@ -0,0 +1,127 @@
@SET CS_ERROR=0
md Output
del /Q /S Output\*.*
md Output\x64
md Output\PDB32
md Output\PDB64
REM ********* Build 64-bit solution
"%VS90COMNTOOLS%..\IDE\devenv.com" ..\ClassicShell.sln /rebuild "Setup|x64"
@if ERRORLEVEL 1 goto end
REM ********* Build 32-bit solution (must be after 64-bit)
"%VS90COMNTOOLS%..\IDE\devenv.com" ..\ClassicShell.sln /rebuild "Setup|Win32"
@if ERRORLEVEL 1 goto end
REM ********* Make en-US.dll
cd ..
start /wait ClassicShellSetup\ClassicShellUtility\Release\ClassicShellUtility.exe makeEN ClassicExplorer\Setup\ClassicExplorer32.dll ClassicStartMenu\Setup\ClassicStartMenuDLL.dll ClassicIE\Setup\ClassicIEDLL_32.dll ClassicShellUpdate\Release\ClassicShellUpdate.exe
@if ERRORLEVEL 1 goto end
start /wait ClassicShellSetup\ClassicShellUtility\Release\ClassicShellUtility.exe extract en-US.dll en-US.csv
copy en-US.dll Localization\English
move en-US.csv Localization\English
cd ClassicShellSetup
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 ..\ClassicShellUpdate\Release\ClassicShellUpdate.exe Output
copy /B ..\ClassicStartMenu\StartMenuHelper\Setup\StartMenuHelper32.dll Output
copy /B ..\ClassicShellSetup\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 ..\ClassicShellUpdate\Release\ClassicShellUpdate.pdb Output\PDB32
copy /B Output\ClassicShellUpdate.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
del Output\PolicyDefinitions.zip
cd ..\Localization\English
..\..\ClassicStartMenu\Setup\ClassicStartMenu.exe -saveadmx en-US
@if ERRORLEVEL 1 goto end
..\..\ClassicExplorer\Setup\ClassicExplorerSettings.exe -saveadmx en-US
@if ERRORLEVEL 1 goto end
..\..\ClassicIE\Setup\ClassicIE_32.exe -saveadmx en-US
@if ERRORLEVEL 1 goto end
"C:\Program Files\WinRAR\winrar" a -afzip -ep ..\..\ClassicShellSetup\Output\PolicyDefinitions.zip *.admx PolicyDefinitions.rtf
"C:\Program Files\WinRAR\winrar" a -afzip -ep -apen-US ..\..\ClassicShellSetup\Output\PolicyDefinitions.zip *.adml
cd ..\..\ClassicShellSetup
@goto EOF
:end
@SET CS_ERROR=1
pause
:EOF
@@ -0,0 +1,84 @@
@REM !!!!! CHANGE THE GUIDS WHEN CHANGING THE VERSION !!!!!
SET CS_VERSION=4.3.1
SET CS_VERSION_STR=4_3_1
SET CS_VERSION_NUM=40301
SET CS_GUID32=8A99142D-5D6E-40b6-AF88-8BD46F0C5CB4
SET CS_GUID64=CABCE573-0A86-42fa-A52A-C7EA61D5BE08
SET CS_ERROR=0
REM ********* Build Help
@if %CS_HAS_HELP%==1 (
if NOT %CS_LANG_FOLDER%==English mklink /J ..\Localization\%CS_LANG_FOLDER%\images ..\Localization\English\images
hhc ..\Localization\%CS_LANG_FOLDER%\ClassicShell.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 goto end
)
@if %CS_HAS_HELP%==0 (
copy /Y ..\Localization\English\ClassicShell.chm ..\Localization\%CS_LANG_FOLDER%\ClassicShell.chm
)
@if %CS_HAS_EULA%==0 copy /Y ..\Localization\English\ClassicShellEULA.rtf ..\Localization\%CS_LANG_FOLDER%
@if %CS_HAS_README%==0 copy /Y ..\Localization\English\ClassicShellReadme.rtf ..\Localization\%CS_LANG_FOLDER%
@if _%CS_LANG_NAME%==_ echo Unrecognized language '%CS_LANG_FOLDER%'
@if _%CS_LANG_NAME%==_ goto end
SET CS_INSTALLER_NAME=ClassicShellSetup_%CS_VERSION_STR%-%CS_LANG_NAME_SHORT%
if %CS_LANG_NAME_SHORT%==en SET CS_INSTALLER_NAME=ClassicShellSetup_%CS_VERSION_STR%
md Temp
del /Q Temp\*.*
@if not exist ..\Localization\%CS_LANG_FOLDER%\ClassicShellText-%CS_LANG_NAME%.wxl goto end
REM ********* Build 32-bit MSI
candle ClassicShellSetup.wxs -out Temp\ClassicShellSetup32.wixobj -ext WixUIExtension -ext WixUtilExtension -dx64=0 -dCS_LANG_FOLDER=%CS_LANG_FOLDER% -dCS_LANG_NAME=%CS_LANG_NAME%
@if ERRORLEVEL 1 goto end
@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\ClassicShellSetup32.wixobj -out Temp\ClassicShellSetup32.msi -ext WixUIExtension -ext WixUtilExtension -loc ..\Localization\%CS_LANG_FOLDER%\ClassicShellText-%CS_LANG_NAME%.wxl -loc ..\Localization\%CS_LANG_FOLDER%\WixUI_%CS_LANG_NAME%.wxl -sice:ICE38 -sice:ICE43 -sice:ICE09
@if ERRORLEVEL 1 goto end
REM ********* Build 64-bit MSI
candle ClassicShellSetup.wxs -out Temp\ClassicShellSetup64.wixobj -ext WixUIExtension -ext WixUtilExtension -dx64=1 -dCS_LANG_FOLDER=%CS_LANG_FOLDER% -dCS_LANG_NAME=%CS_LANG_NAME%
@if ERRORLEVEL 1 goto end
@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\ClassicShellSetup64.wixobj -out Temp\ClassicShellSetup64.msi -ext WixUIExtension -ext WixUtilExtension -loc ..\Localization\%CS_LANG_FOLDER%\ClassicShellText-%CS_LANG_NAME%.wxl -loc ..\Localization\%CS_LANG_FOLDER%\WixUI_%CS_LANG_NAME%.wxl -sice:ICE38 -sice:ICE43 -sice:ICE09
@if ERRORLEVEL 1 goto end
REM ********* Build MSI Checksums
start /wait ClassicShellUtility\Release\ClassicShellUtility.exe crcmsi Temp
@if ERRORLEVEL 1 goto end
REM ********* Build bootstrapper
"%VS90COMNTOOLS%..\IDE\devenv.com" ClassicShellSetup.sln /rebuild "Release|Win32"
@if ERRORLEVEL 1 goto end
md Final
del Final\%CS_INSTALLER_NAME%.exe
copy /B Release\ClassicShellSetup.exe Final\%CS_INSTALLER_NAME%.exe
md Output\Releases
copy /B Final\%CS_INSTALLER_NAME%.exe Output\Releases\%CS_INSTALLER_NAME%.exe
@goto EOF
:end
@SET CS_ERROR=1
pause
:EOF
SET CS_LANG_FOLDER=
SET CS_LANG_NAME=
SET CS_LANG_NAME_SHORT=
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@@ -0,0 +1,437 @@
// Classic Shell (c) 2009-2016, Ivo Beltchev
// 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"
// ClassicShellSetup.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"ClassicShellSetup%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
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 Shell. It contains features that are not fully tested. Please report any problems in the Classic Shell 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 Shell Setup",MB_YESNO|MB_ICONWARNING)==IDNO)
return 99;
}
*/
DWORD version;
{
HKEY hKey;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\IvoSoft\\ClassicShell",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%%\\ClassicShellSetup%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;
}
}
@@ -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="IvoSoft.ClassicShellSetup"
type="win32"
/>
<description>Classic Shell 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>
@@ -0,0 +1,182 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.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 "ClassicShell.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,3,1,0
PRODUCTVERSION 4,3,1,0
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", "IvoSoft"
VALUE "FileDescription", "Adds classic shell features to Windows 7 and Windows 8"
VALUE "FileVersion", "4, 3, 1, 0"
VALUE "InternalName", "ClassicShellSetup"
VALUE "LegalCopyright", "Copyright (C) 2009-2016, Ivo Beltchev"
VALUE "OriginalFilename", "ClassicShellSetup.exe"
VALUE "ProductName", "Classic Shell"
VALUE "ProductVersion", "4, 3, 1, 0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
/////////////////////////////////////////////////////////////////////////////
//
// MSI_FILE
//
IDR_MSI_FILE32 MSI_FILE "Temp\\ClassicShellSetup32.msi_"
IDR_MSI_FILE64 MSI_FILE "Temp\\ClassicShellSetup64.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 Shell 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 Shell 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 Shell requires Windows 7 or later."
IDS_ERR_MSIEXEC "Failed to run msiexec.exe."
END
STRINGTABLE
BEGIN
IDS_HELP "Classic Shell Setup will install Classic Shell 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:\\ClassicShell - installs only Classic Start Menu in quiet mode in the folder C:\\ClassicShell\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
@@ -0,0 +1,62 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassicShellSetup", "ClassicShellSetup.vcproj", "{A4A4D3B1-24E7-401E-A37C-72141D7603DC}"
ProjectSection(ProjectDependencies) = postProject
{D42FE717-485B-492D-884A-1999F6D51154} = {D42FE717-485B-492D-884A-1999F6D51154}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ClassicShellLib", "..\ClassicShellLib\ClassicShellLib.vcproj", "{D42FE717-485B-492D-884A-1999F6D51154}"
EndProject
Global
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 3
SccProjectName0 = Perforce\u0020Project
SccLocalPath0 = ..
SccProvider0 = MSSCCI:Perforce\u0020SCM
SccProjectFilePathRelativizedFromConnection0 = ClassicShellSetup\\
SccProjectUniqueName1 = ClassicShellSetup.vcproj
SccLocalPath1 = ..
SccProjectFilePathRelativizedFromConnection1 = ClassicShellSetup\\
SccProjectUniqueName2 = ..\\ClassicShellLib\\ClassicShellLib.vcproj
SccLocalPath2 = ..
SccProjectFilePathRelativizedFromConnection2 = ClassicShellLib\\
EndGlobalSection
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(SourceCodeControl) = preSolution
SccNumberOfProjects = 3
SccProjectName0 = Perforce\u0020Project
SccLocalPath0 = ..
SccProvider0 = MSSCCI:Perforce\u0020SCM
SccProjectFilePathRelativizedFromConnection0 = ClassicShellSetup\\
SccProjectUniqueName1 = ClassicShellSetup.vcproj
SccLocalPath1 = ..
SccProjectFilePathRelativizedFromConnection1 = ClassicShellSetup\\
SccProjectUniqueName2 = ..\\StringUtils\\StringUtils.vcproj
SccLocalPath2 = ..\\StringUtils
EndGlobalSection
EndGlobal
@@ -0,0 +1,261 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ClassicShellSetup"
ProjectGUID="{A4A4D3B1-24E7-401E-A37C-72141D7603DC}"
RootNamespace="ClassicShellSetup"
SccProjectName="Perforce Project"
SccLocalPath=".."
SccProvider="MSSCCI:Perforce SCM"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\ClassicShellLib"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib Psapi.lib version.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="ClassicShellSetup.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/MP"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\ClassicShellLib"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib Psapi.lib version.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
LinkTimeCodeGeneration="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="ClassicShellSetup.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Bootstrapper"
>
<File
RelativePath=".\ClassicShell.ico"
>
</File>
<File
RelativePath=".\ClassicShellSetup.cpp"
>
</File>
<File
RelativePath=".\ClassicShellSetup.manifest"
>
</File>
<File
RelativePath=".\ClassicShellSetup.rc"
>
</File>
<File
RelativePath=".\resource.h"
>
</File>
</Filter>
<Filter
Name="Setup Files"
>
<File
RelativePath=".\__MakeFinal.bat"
>
</File>
<File
RelativePath=".\banner.jpg"
>
</File>
<File
RelativePath=".\BuildArchives.bat"
>
</File>
<File
RelativePath=".\BuildBinaries.bat"
>
</File>
<File
RelativePath=".\BuildInstaller.bat"
>
</File>
<File
RelativePath=".\ClassicShellSetup.wxs"
>
</File>
<File
RelativePath="..\Localization\English\ClassicShellText-en-US.wxl"
>
</File>
<File
RelativePath=".\dialog.jpg"
>
</File>
<File
RelativePath=".\SetEnvironment.bat"
>
</File>
</Filter>
<File
RelativePath=".\Temp\ClassicShellSetup32.msi_"
>
</File>
<File
RelativePath=".\Temp\ClassicShellSetup64.msi_"
>
</File>
<File
RelativePath=".\msichecksum.bin"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,669 @@
<?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 ClassicShellText-en-US.wxl
-->
<?if $(var.x64)=1 ?>
<?define CS_GUID = "$(env.CS_GUID64)"?>
<?define CS_UPGRADE = "779A74EF-23DE-4C71-AC12-2EE5A542ED34"?>
<?define CS_PLATFORM = "x64"?>
<?define CS_PROGRAM_FILES = "ProgramFiles64Folder"?>
<?define CS_WIN64 = "yes"?>
<?else ?>
<?define CS_GUID = "$(env.CS_GUID32)"?>
<?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="$(var.CS_GUID)" Name="Classic Shell" Language="1033" Version="$(env.CS_VERSION)" Manufacturer="IvoSoft" UpgradeCode="$(var.CS_UPGRADE)">
<Package Description="Classic Shell" Comments="Classic Shell" 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 Shell">
<Directory Id="Skins" Name="Skins" />
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="StartMenuDir" Name="Classic Shell">
<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="ClassicShell" Level="1" Title="Classic Shell" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Absent="disallow" Display="expand" Description="!(loc.ClassicShellDesc)">
<ComponentRef Id="ClassicShell.chm" />
<ComponentRef Id="ClassicShellReadme.rtf" />
<ComponentRef Id="HISTORY.txt" />
<ComponentRef Id="IvoSoft" />
<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="ClassicShellUpdate" Level="1" Title="!(loc.UpdateTitle)" ConfigurableDirectory="APPLICATIONFOLDER" AllowAdvertise="no" Description="!(loc.UpdateDesc)">
<ComponentRef Id="ClassicShellUpdate.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)\ClassicShellEULA.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="ClassicShell.chm" Guid="29AB35F9-D611-4B34-BCE3-517C10C839AF" Win64="$(var.CS_WIN64)">
<File Id="ClassicShell.chm" KeyPath="yes" Source="..\Localization\$(var.CS_LANG_FOLDER)\ClassicShell.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="ClassicShell.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="ClassicShell.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="ClassicShell.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="ClassicShell.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="ClassicShellReadme.rtf" Guid="A6B815ED-91BD-4F61-83B3-F98041026BB9" Win64="$(var.CS_WIN64)">
<File Id="ClassicShellReadme.rtf" KeyPath="yes" Source="..\Localization\$(var.CS_LANG_FOLDER)\ClassicShellReadme.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="ClassicShellUpdate.exe" Guid="FB6C213F-B670-4888-8B2C-12E807E335A7" Win64="$(var.CS_WIN64)">
<File Id="ClassicShellUpdate" KeyPath="yes" Source="Output\ClassicShellUpdate.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="IvoSoft" Guid="19EC9EFC-B901-4EAB-B800-6E98D2261077" Win64="$(var.CS_WIN64)">
<RegistryKey Root="HKLM" Key="Software\IvoSoft\ClassicShell">
<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]ClassicShell.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]ClassicShellReadme.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]ClassicShellUpdate.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="ClassicShell.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="ClassicShell.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="ClassicShell.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="..\ClassicShellSetup\ClassicShell.ico" />
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
<Property Id="ApplicationFolderName" Value="Classic Shell" />
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<Property Id="ALLUSERS" Value="1" />
<Property Id="WixShellExecTarget" Value="[#ClassicShellReadme.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\IvoSoft\ClassicShell" 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="..\ClassicShellSetup\banner.jpg" />
<WixVariable Id="WixUIDialogBmp" Value="..\ClassicShellSetup\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="..\ClassicShellSetup\dialog2.jpg" />
<Binary Id="donate.ico" SourceFile="..\ClassicShellSetup\donate.ico" />
<Binary Id="web.ico" SourceFile="..\ClassicShellSetup\web.ico" />
<Binary Id="facebook.ico" SourceFile="D:\Work\ClassicShellXX\ClassicShellSetup\facebook.ico" />
</Product>
</Wix>
File diff suppressed because it is too large Load Diff
@@ -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="IvoSoft.ClassicShellSetup"
type="win32"
/>
<description>Classic Shell 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>
@@ -0,0 +1,224 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.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\\ClassicShellUtility.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 Shell"
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 Shell 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 Shell 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 Shell 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 Shell"
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 Shell"
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 Shell Logging"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LTEXT "Warning: Turning on the logging options may negatively affect the performance of Classic Shell.",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
@@ -0,0 +1,405 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ClassicShellUtility"
ProjectGUID="{DAE66C9B-05DC-4ACE-97DA-2547B490BBFF}"
RootNamespace="ClassicShellUtility"
SccProjectName="Perforce Project"
SccLocalPath="..\.."
SccProvider="MSSCCI:Perforce SCM"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\ClassicShellLib"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib uxtheme.lib dwmapi.lib winmm.lib htmlhelp.lib psapi.lib version.lib Secur32.lib Netapi32.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="ClassicShellUtility.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(ConfigurationName)64"
IntermediateDirectory="$(ConfigurationName)64"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\ClassicShellLib"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_UNICODE;UNICODE;_WIN64"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib uxtheme.lib dwmapi.lib winmm.lib htmlhelp.lib psapi.lib version.lib Secur32.lib."
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="ClassicShellUtility.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\..\ClassicShellLib"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib uxtheme.lib dwmapi.lib winmm.lib htmlhelp.lib psapi.lib version.lib Secur32.lib Netapi32.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="ClassicShellUtility.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(ConfigurationName)64"
IntermediateDirectory="$(ConfigurationName)64"
ConfigurationType="1"
UseOfATL="1"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\..\ClassicShellLib"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_UNICODE;UNICODE;_WIN64"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="comctl32.lib uxtheme.lib dwmapi.lib winmm.lib htmlhelp.lib psapi.lib version.lib Secur32.lib."
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="ClassicShellUtility.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\ClassicShellUtility.cpp"
>
</File>
<File
RelativePath=".\Release64\ClassicShellUtility.exe"
>
</File>
<File
RelativePath=".\ClassicShellUtility.manifest"
>
</File>
<File
RelativePath=".\ClassicShellUtility.rc"
>
<FileConfiguration
Name="Release|x64"
ExcludedFromBuild="true"
>
<Tool
Name="VCResourceCompilerTool"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\LocComments.txt"
>
</File>
<File
RelativePath=".\LoggingOptions.cpp"
>
</File>
<File
RelativePath=".\ManualUninstall.cpp"
>
</File>
<File
RelativePath=".\MetroColorViewer.cpp"
>
</File>
<File
RelativePath=".\resource.h"
>
</File>
<File
RelativePath=".\SaveLogFile.cpp"
>
</File>
<File
RelativePath=".\SaveLogFile.h"
>
</File>
<File
RelativePath=".\tool.ico"
>
</File>
</Files>
<Globals>
<Global
Name="RESOURCE_FILE"
Value="ClassicShellUtility.rc"
/>
</Globals>
</VisualStudioProject>
@@ -0,0 +1,225 @@
// Classic Shell (c) 2009-2016, Ivo Beltchev
// 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%\\ClassicShell\\StartMenuLog.txt";
else if (link==IDC_SYSLINKCACHE)
path=L"%LOCALAPPDATA%\\ClassicShell\\DataCache.txt";
else if (link==IDC_SYSLINKSTARTUP)
path=L"%LOCALAPPDATA%\\ClassicShell\\StartupLog.txt";
else if (link==IDC_SYSLINKEXPLORER)
path=L"%LOCALAPPDATA%\\ClassicShell\\ExplorerLog.txt";
else if (link==IDC_SYSLINKIE)
path=L"%LOCALAPPDATA%\\ClassicShell\\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\\IvoSoft\\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\\IvoSoft\\ClassicStartMenu\\Settings",L"LogStartup");
if (log)
CheckDlgButton(IDC_CHECKSTARTUP,BST_CHECKED);
log=GetSetting(L"Software\\IvoSoft\\ClassicExplorer\\Settings",L"LogLevel");
if (log)
CheckDlgButton(IDC_CHECKEXPLORER,BST_CHECKED);
log=GetSetting(L"Software\\IvoSoft\\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\\IvoSoft\\ClassicStartMenu\\Settings",L"LogCategories"))
{
SetSetting(L"Software\\IvoSoft\\ClassicStartMenu\\Settings",L"LogCategories",log);
res=1;
}
log=IsDlgButtonChecked(IDC_CHECKSTARTUP)==BST_CHECKED?1:0;
if (log!=GetSetting(L"Software\\IvoSoft\\ClassicStartMenu\\Settings",L"LogStartup"))
{
SetSetting(L"Software\\IvoSoft\\ClassicStartMenu\\Settings",L"LogStartup",log);
res=1;
}
log=IsDlgButtonChecked(IDC_CHECKEXPLORER)==BST_CHECKED?1:0;
if (log!=GetSetting(L"Software\\IvoSoft\\ClassicExplorer\\Settings",L"LogLevel"))
{
SetSetting(L"Software\\IvoSoft\\ClassicExplorer\\Settings",L"LogLevel",log);
res=1;
}
log=IsDlgButtonChecked(IDC_CHECKIE)==BST_CHECKED?1:0;
if (log!=GetSetting(L"Software\\IvoSoft\\ClassicIE\\Settings",L"LogLevel"))
{
SetSetting(L"Software\\IvoSoft\\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
@@ -0,0 +1,440 @@
// Classic Shell (c) 2009-2016, Ivo Beltchev
// 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
@@ -0,0 +1,8 @@
// Classic Shell (c) 2009-2016, Ivo Beltchev
// 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 );
@@ -0,0 +1,61 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ClassicShellUtility.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

@@ -0,0 +1,90 @@
// Classic Shell (c) 2009-2016, Ivo Beltchev
// 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\\IvoSoft\\ClassicShell",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"ClassicShellUpdate.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\\IvoSoft\\ClassicShell",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 Shell 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;
}
@@ -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="IvoSoft.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>
@@ -0,0 +1,189 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="SetupHelper"
ProjectGUID="{E1017135-9916-4B11-9AC5-1EC0BD8F8CD6}"
RootNamespace="SetupHelper"
SccProjectName="SAK"
SccAuxPath="SAK"
SccLocalPath="SAK"
SccProvider="SAK"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\ClassicShellLib"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
WarnAsError="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="SetupHelper.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="..\..\ClassicShellLib"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
WarnAsError="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
AdditionalManifestFiles="SetupHelper.manifest"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\SetupHelper.cpp"
>
</File>
<File
RelativePath=".\SetupHelper.manifest"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

@@ -0,0 +1,951 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="UpdateBin"
ProjectGUID="{F92A5473-F9E0-412F-923C-6632A66D13C1}"
RootNamespace="UpdateBin"
SccProjectName="SAK"
SccAuxPath="SAK"
SccLocalPath="SAK"
SccProvider="SAK"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="update_4.1.0|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.0|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.1|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.2|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.3|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.4|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.5|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.6|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.2.7|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.3.0|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
<Configuration
Name="update_4.3.1|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\ClassicShellUtility\Debug\ClassicShellUtility.exe update .\$(ConfigurationName).txt .\UpdateBin.rc"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;UPDATEBIN_EXPORTS"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="..\Final\$(ConfigurationName).ver"
LinkIncremental="1"
GenerateManifest="false"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine=""
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\resource.h"
>
</File>
<File
RelativePath=".\update_4.1.0.txt"
>
</File>
<File
RelativePath=".\update_4.2.0.txt"
>
</File>
<File
RelativePath=".\update_4.2.1.txt"
>
</File>
<File
RelativePath=".\update_4.2.2.txt"
>
</File>
<File
RelativePath=".\update_4.2.3.txt"
>
</File>
<File
RelativePath=".\update_4.2.4.txt"
>
</File>
<File
RelativePath=".\update_4.2.5.txt"
>
</File>
<File
RelativePath=".\update_4.2.6.txt"
>
</File>
<File
RelativePath=".\update_4.2.7.txt"
>
</File>
<File
RelativePath=".\update_4.3.0.txt"
>
</File>
<File
RelativePath=".\update_4.3.1.txt"
>
</File>
<File
RelativePath=".\UpdateBin.rc"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -0,0 +1,9 @@
@call BuildBinaries.bat
@if %CS_ERROR%==1 goto end
@call _BuildEnglish.bat
@if %CS_ERROR%==1 goto end
call BuildArchives.bat
:end
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

@@ -0,0 +1,109 @@
// Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.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", "IvoSoft"
VALUE "FileDescription", "en-US"
VALUE "FileVersion", "1, 0, 0, 1"
VALUE "InternalName", "en-US"
VALUE "LegalCopyright", "Copyright (C) 2009-2016, Ivo Beltchev"
VALUE "OriginalFilename", "en-US"
VALUE "ProductName", "Classic Shell"
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.
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="en-US"
ProjectGUID="{0A60FD06-3A81-4651-A869-9850DBC115EA}"
RootNamespace="enUS"
SccProjectName="SAK"
SccAuxPath="SAK"
SccLocalPath="SAK"
SccProvider="SAK"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Resource|Win32"
OutputDirectory="..\..\"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="0"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;ENUS_EXPORTS"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="true"
LinkIncremental="1"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ResourceOnlyDLL="true"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<File
RelativePath=".\en-US.rc"
>
</File>
<File
RelativePath=".\en-US.txt"
>
</File>
<File
RelativePath=".\resource.h"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
@@ -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

@@ -0,0 +1,31 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ClassicShellSetup.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