Skip to content

Commit 9f949dd

Browse files
committed
Remove old updating mechanism
We have our own updating already and don't plan to use old one. There is no need to keep it around.
1 parent 714c981 commit 9f949dd

23 files changed

+6
-1296
lines changed

Src/Lib/DownloadHelper.cpp

Lines changed: 4 additions & 245 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
#include <stdafx.h>
66
#include "resource.h"
7-
#include "..\Setup\UpdateBin\resource.h"
87
#include "DownloadHelper.h"
98
#include "Settings.h"
109
#include "SettingsUIHelper.h"
@@ -371,60 +370,6 @@ static DWORD WINAPI ThreadVersionCheck( void *param )
371370
data.bNewVersion=(data.newVersion>curVersion);
372371
data.bIgnoreVersion=(data.bNewVersion && data.newVersion<=remindedVersion);
373372
}
374-
{
375-
wchar_t languages[100]={0};
376-
CString language2=GetSettingString(L"Language");
377-
if (!language2.IsEmpty())
378-
{
379-
Strcpy(languages,_countof(languages)-1,language2);
380-
}
381-
else
382-
{
383-
ULONG size=0;
384-
ULONG len=_countof(languages);
385-
GetUserPreferredUILanguages(MUI_LANGUAGE_NAME,&size,languages,&len);
386-
}
387-
388-
bool bNewLanguage=false;
389-
for (wchar_t *lang=languages;*lang;lang+=Strlen(lang)+1)
390-
{
391-
if (_wcsicmp(lang,L"en")==0 || _wcsnicmp(lang,L"en-",3)==0)
392-
break; // English
393-
DWORD dllVersion=0, dllBuild=0;
394-
HINSTANCE resInstance=LoadTranslationDll(lang);
395-
if (resInstance)
396-
{
397-
dllVersion=GetVersionEx(resInstance,&dllBuild);
398-
FreeLibrary(resInstance);
399-
}
400-
401-
DWORD newVersion=0, newBuild=0;
402-
for (std::vector<LanguageVersionData>::const_iterator it=data.languages.begin();it!=data.languages.end();++it)
403-
{
404-
if (_wcsicmp(it->language,lang)==0)
405-
{
406-
newVersion=it->version;
407-
newBuild=it->build;
408-
break;
409-
}
410-
}
411-
if (newVersion==0)
412-
continue;
413-
414-
if (newVersion>dllVersion || (newVersion==dllVersion && newBuild>dllBuild))
415-
{
416-
// a new DLL for this language exists
417-
data.bNewLanguage=true;
418-
data.newLanguage=lang;
419-
data.encodedLangVersion=(newVersion&0xFFFF0000)|((newVersion&0xFF)<<8)|(newBuild&0xFF);
420-
DWORD remindedVersion;
421-
if (regKey.QueryDWORDValue(L"RemindedLangVersion",remindedVersion)!=ERROR_SUCCESS)
422-
remindedVersion=0;
423-
data.bIgnoreLanguage=(data.encodedLangVersion<=remindedVersion);
424-
}
425-
break;
426-
}
427-
}
428373

429374
data.bValid=true;
430375
if (params.check==CHECK_UPDATE)
@@ -433,7 +378,7 @@ static DWORD WINAPI ThreadVersionCheck( void *param )
433378
g_bCheckingVersion=false;
434379
return 1;
435380
}
436-
if ((data.bNewVersion && !data.bIgnoreVersion) || (data.bNewLanguage && !data.bIgnoreLanguage))
381+
if (data.bNewVersion && !data.bIgnoreVersion)
437382
params.callback(data);
438383
g_bCheckingVersion=false;
439384
return 0;
@@ -576,39 +521,6 @@ static CString LoadStringEx( HMODULE hModule, int stringId, int langId )
576521
return res;
577522
}
578523

579-
static BOOL CALLBACK EnumStringLanguages( HMODULE hModule, LPCTSTR lpszType, LPCTSTR lpszName, WORD wIDLanguage, LONG_PTR lParam )
580-
{
581-
VersionData &data=*(VersionData*)lParam;
582-
CString url=LoadStringEx(hModule,IDS_LNG_URL,wIDLanguage);
583-
if (url.IsEmpty()) return TRUE;
584-
CString ver=LoadStringEx(hModule,IDS_LNG_VERSION,wIDLanguage);
585-
if (ver.IsEmpty()) return TRUE;
586-
CString crc=LoadStringEx(hModule,IDS_LNG_CRC,wIDLanguage);
587-
if (crc.IsEmpty()) return TRUE;
588-
589-
LanguageVersionData langData;
590-
langData.bBasic=(ver[ver.GetLength()-1]=='*');
591-
592-
int v1, v2, v3, v4;
593-
if (swscanf_s(ver,L"%d.%d.%d.%d",&v1,&v2,&v3,&v4)==4)
594-
{
595-
wchar_t buf[100];
596-
if (GetLocaleInfo(wIDLanguage,LOCALE_SNAME,buf,_countof(buf)))
597-
{
598-
langData.languageId=wIDLanguage;
599-
langData.language=buf;
600-
langData.version=(v1<<24)|(v2<<16)|v3;
601-
langData.build=v4;
602-
langData.url=url;
603-
wchar_t *q;
604-
langData.hash=wcstoul(crc,&q,16);
605-
data.languages.push_back(langData);
606-
}
607-
}
608-
609-
return TRUE;
610-
}
611-
612524
static bool VerifyDigitalCertificate( const wchar_t *fname, const wchar_t *signer )
613525
{
614526
// verify the certificate
@@ -710,38 +622,24 @@ static bool VerifyDigitalCertificate( const wchar_t *fname, const wchar_t *signe
710622
void VersionData::Clear( void )
711623
{
712624
bValid=false;
713-
newVersion=encodedLangVersion=0;
625+
newVersion=0;
714626
downloadUrl.Empty();
715627
downloadSigner.Empty();
716628
news.Empty();
717-
updateLink.Empty();
718-
languageLink.Empty();
719-
altUrl.Empty();
720-
bNewVersion=bIgnoreVersion=bNewLanguage=bIgnoreLanguage=false;
721-
newLanguage.Empty();
722-
for (std::vector<LanguageVersionData>::iterator it=languages.begin();it!=languages.end();++it)
723-
if (it->bitmap)
724-
DeleteObject(it->bitmap);
725-
languages.clear();
629+
updateLink="https://github.com/Open-Shell/Open-Shell-Menu/releases";
630+
bNewVersion=bIgnoreVersion=false;
726631
}
727632

728633
void VersionData::Swap( VersionData &data )
729634
{
730635
std::swap(bValid,data.bValid);
731636
std::swap(newVersion,data.newVersion);
732-
std::swap(encodedLangVersion,data.encodedLangVersion);
733637
std::swap(downloadUrl,data.downloadUrl);
734638
std::swap(downloadSigner,data.downloadSigner);
735639
std::swap(news,data.news);
736640
std::swap(updateLink,data.updateLink);
737-
std::swap(languageLink,data.languageLink);
738-
std::swap(altUrl,data.altUrl);
739641
std::swap(bNewVersion,data.bNewVersion);
740642
std::swap(bIgnoreVersion,data.bIgnoreVersion);
741-
std::swap(bNewLanguage,data.bNewLanguage);
742-
std::swap(bIgnoreLanguage,data.bIgnoreLanguage);
743-
std::swap(newLanguage,data.newLanguage);
744-
std::swap(languages,data.languages);
745643
}
746644

747645
std::vector<char> DownloadUrl(const wchar_t* url)
@@ -850,69 +748,6 @@ VersionData::TLoadResult VersionData::Load(bool official)
850748
}
851749
}
852750

853-
VersionData::TLoadResult VersionData::Load( const wchar_t *fname, bool bLoadFlags )
854-
{
855-
Clear();
856-
if (!VerifyDigitalCertificate(fname,L"Ivaylo Beltchev"))
857-
return LOAD_BAD_FILE;
858-
859-
HMODULE hModule=LoadLibraryEx(fname,NULL,LOAD_LIBRARY_AS_DATAFILE|LOAD_LIBRARY_AS_IMAGE_RESOURCE);
860-
if (!hModule) return LOAD_BAD_FILE;
861-
862-
if (GetVersionEx(hModule)!=GetVersionEx(g_Instance))
863-
{
864-
FreeLibrary(hModule);
865-
return LOAD_BAD_VERSION;
866-
}
867-
868-
wchar_t defLang[100]=L"";
869-
{
870-
CRegKey regKeyLng;
871-
if (regKeyLng.Open(HKEY_LOCAL_MACHINE,L"Software\\OpenShell\\OpenShell",KEY_READ|KEY_WOW64_64KEY)==ERROR_SUCCESS)
872-
{
873-
ULONG size=_countof(defLang);
874-
if (regKeyLng.QueryStringValue(L"DefaultLanguage",defLang,&size)!=ERROR_SUCCESS)
875-
defLang[0]=0;
876-
}
877-
}
878-
879-
const int DEFAULT_LANGUAGE=0x409;
880-
881-
int defLangId;
882-
if (!defLang[0] || !GetLocaleInfoEx(defLang,LOCALE_ILANGUAGE|LOCALE_RETURN_NUMBER,(LPWSTR)&defLangId,4))
883-
defLangId=DEFAULT_LANGUAGE;
884-
885-
downloadUrl=LoadStringEx(hModule,IDS_INSTALL_URL,defLangId);
886-
// these are always in en-US
887-
downloadSigner=LoadStringEx(hModule,IDS_INSTALL_SIGNER,DEFAULT_LANGUAGE);
888-
CString strVer=LoadStringEx(hModule,IDS_VERSION,defLangId);
889-
if (strVer.IsEmpty())
890-
strVer=LoadStringEx(hModule,IDS_VERSION,DEFAULT_LANGUAGE);
891-
updateLink=LoadStringEx(hModule,IDS_UPDATE_LINK,DEFAULT_LANGUAGE);
892-
languageLink=LoadStringEx(hModule,IDS_LANGUAGE_LINK,DEFAULT_LANGUAGE);
893-
altUrl=LoadStringEx(hModule,IDS_ALT_URL,DEFAULT_LANGUAGE);
894-
895-
int v1, v2, v3;
896-
if (!downloadUrl.IsEmpty() && swscanf_s(strVer,L"%d.%d.%d",&v1,&v2,&v3)==3)
897-
{
898-
newVersion=(v1<<24)|(v2<<16)|v3;
899-
news=LoadStringEx(hModule,IDS_NEWS,defLangId);
900-
if (news.IsEmpty())
901-
news=LoadStringEx(hModule,IDS_NEWS,DEFAULT_LANGUAGE);
902-
903-
EnumResourceLanguages(hModule,RT_STRING,MAKEINTRESOURCE((IDS_LNG_URL>>4)+1),EnumStringLanguages,(LONG_PTR)this);
904-
for (std::vector<LanguageVersionData>::iterator it=languages.begin();it!=languages.end();++it)
905-
it->bitmap=(HBITMAP)LoadImage(hModule,MAKEINTRESOURCE(it->languageId),IMAGE_BITMAP,22,27,LR_CREATEDIBSECTION);
906-
}
907-
908-
FreeLibrary(hModule);
909-
910-
if (newVersion && !downloadUrl.IsEmpty() && !news.IsEmpty())
911-
return LOAD_OK;
912-
Clear();
913-
return LOAD_ERROR;
914-
}
915-
916751
struct DownloadFileParams
917752
{
918753
// input
@@ -989,82 +824,6 @@ static DWORD WINAPI ThreadDownloadFile( void *param )
989824
return 0;
990825
}
991826

992-
DWORD DownloadLanguageDll( HWND owner, TSettingsComponent component, const LanguageVersionData &data, CString &error )
993-
{
994-
// download file
995-
wchar_t path[_MAX_PATH]=L"%ALLUSERSPROFILE%\\OpenShell\\Languages";
996-
DoEnvironmentSubst(path,_countof(path));
997-
SHCreateDirectory(NULL,path);
998-
wchar_t fname[_MAX_PATH];
999-
Sprintf(fname,_countof(fname),L"%s.dll",data.language);
1000-
1001-
CProgressDlg progress;
1002-
progress.Create(owner,LoadStringEx(IDS_PROGRESS_TITLE_DOWNLOAD));
1003-
1004-
DownloadFileParams params;
1005-
params.url=data.url;
1006-
params.signer=NULL;
1007-
params.hash=data.hash;
1008-
params.path=path;
1009-
params.fname=fname;
1010-
params.progress=&progress;
1011-
params.bAcceptCached=true;
1012-
params.component=component;
1013-
1014-
HANDLE hThread=CreateThread(NULL,0,ThreadDownloadFile,&params,0,NULL);
1015-
1016-
while (1)
1017-
{
1018-
DWORD wait=MsgWaitForMultipleObjects(1,&hThread,FALSE,INFINITE,QS_ALLINPUT);
1019-
if (wait!=WAIT_OBJECT_0+1)
1020-
break;
1021-
MSG msg;
1022-
while (PeekMessage(&msg,0,0,0,PM_REMOVE))
1023-
{
1024-
TranslateMessage(&msg);
1025-
DispatchMessage(&msg);
1026-
}
1027-
}
1028-
progress.DestroyWindow();
1029-
CloseHandle(hThread);
1030-
1031-
if (params.downloadRes==DOWNLOAD_CANCEL)
1032-
return 2;
1033-
if (params.downloadRes==DOWNLOAD_INTERNET)
1034-
{
1035-
error=LoadStringEx(IDS_INTERNET_FAIL);
1036-
return 0;
1037-
}
1038-
else if (params.downloadRes==DOWNLOAD_START)
1039-
{
1040-
error=LoadStringEx(IDS_INITIATE_FAIL);
1041-
return 0;
1042-
}
1043-
else if (params.downloadRes==DOWNLOAD_FAIL)
1044-
{
1045-
error=LoadStringEx(IDS_LANG_DOWNLOAD_FAIL);
1046-
return 0;
1047-
}
1048-
1049-
if (params.saveRes)
1050-
{
1051-
wchar_t msg[256];
1052-
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,NULL,params.saveRes,0,msg,_countof(msg),NULL);
1053-
error.Format(LoadStringEx(IDS_LANG_SAVE_FAIL),params.fname);
1054-
error+="\r\n";
1055-
error+=msg;
1056-
return 0;
1057-
}
1058-
1059-
if (!params.valid)
1060-
{
1061-
error=LoadStringEx(IDS_LANG_DOWNLOAD_FAIL);
1062-
return 0;
1063-
}
1064-
1065-
return 1;
1066-
}
1067-
1068827
DWORD DownloadNewVersion( HWND owner, TSettingsComponent component, const wchar_t *url, const wchar_t *signer, CString &fname, CString &error )
1069828
{
1070829
CComString pPath;

Src/Lib/DownloadHelper.h

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,37 +15,16 @@ enum TVersionCheck
1515

1616
enum TSettingsComponent;
1717

18-
struct LanguageVersionData
19-
{
20-
CString language;
21-
CString url;
22-
DWORD version;
23-
DWORD build;
24-
DWORD hash;
25-
bool bBasic;
26-
WORD languageId;
27-
HBITMAP bitmap;
28-
29-
LanguageVersionData( void ) { bBasic=false; bitmap=NULL; }
30-
};
31-
3218
struct VersionData
3319
{
3420
bool bValid = false;
3521
DWORD newVersion = 0;
36-
DWORD encodedLangVersion = 0;
3722
CString downloadUrl;
3823
CString downloadSigner;
3924
CString news;
4025
CString updateLink;
41-
CString languageLink;
42-
CString altUrl;
4326
bool bNewVersion = false;
4427
bool bIgnoreVersion = false;
45-
bool bNewLanguage = false;
46-
bool bIgnoreLanguage = false;
47-
CString newLanguage;
48-
std::vector<LanguageVersionData> languages;
4928

5029
~VersionData( void ) { Clear(); }
5130
void Clear( void );
@@ -60,7 +39,6 @@ struct VersionData
6039
};
6140

6241
TLoadResult Load(bool official);
63-
TLoadResult Load( const wchar_t *fname, bool bLoadFlags );
6442
private:
6543
void operator=( const VersionData& );
6644
};
@@ -69,5 +47,4 @@ typedef void (*tNewVersionCallback)( VersionData &data );
6947

7048
// 0 - fail, 1 - success, 2 - cancel
7149
DWORD CheckForNewVersion( HWND owner, TSettingsComponent component, TVersionCheck check, tNewVersionCallback callback );
72-
DWORD DownloadLanguageDll( HWND owner, TSettingsComponent component, const LanguageVersionData &data, CString &error );
7350
DWORD DownloadNewVersion( HWND owner, TSettingsComponent component, const wchar_t *url, const wchar_t *signer, CString &fname, CString &error );

0 commit comments

Comments
 (0)