Fix XP auto updates
This commit is contained in:
parent
3e0ba6d5c1
commit
0f863e45a3
|
@ -40,27 +40,25 @@ WinSparkleDllWrapper::WinSparkleDllWrapper()
|
|||
temp_file.Write((void *)res_data, res_size);
|
||||
temp_file.Close();
|
||||
|
||||
winsparkle_dll = new wxDynamicLibrary(temp_file_name, wxDL_NOW | wxDL_VERBATIM);
|
||||
winsparkle_dll = LoadLibraryW(temp_file_name.wc_str());
|
||||
|
||||
if (winsparkle_dll != nullptr) {
|
||||
winsparkle_init = reinterpret_cast<func_win_sparkle_init>(winsparkle_dll->GetSymbol("win_sparkle_init"));
|
||||
winsparkle_check_update_with_ui = reinterpret_cast<func_win_sparkle_check_update_with_ui>(winsparkle_dll->GetSymbol("win_sparkle_check_update_with_ui"));
|
||||
winsparkle_set_appcast_url = reinterpret_cast<func_win_sparkle_set_appcast_url>(winsparkle_dll->GetSymbol("win_sparkle_set_appcast_url"));
|
||||
winsparkle_set_app_details = reinterpret_cast<func_win_sparkle_set_app_details>(winsparkle_dll->GetSymbol("win_sparkle_set_app_details"));
|
||||
winsparkle_cleanup = reinterpret_cast<func_win_sparkle_cleanup>(winsparkle_dll->GetSymbol("win_sparkle_cleanup"));
|
||||
winsparkle_init = reinterpret_cast<func_win_sparkle_init>(GetProcAddress(winsparkle_dll, "win_sparkle_init"));
|
||||
winsparkle_check_update_with_ui = reinterpret_cast<func_win_sparkle_check_update_with_ui>(GetProcAddress(winsparkle_dll, "win_sparkle_check_update_with_ui"));
|
||||
winsparkle_set_appcast_url = reinterpret_cast<func_win_sparkle_set_appcast_url>(GetProcAddress(winsparkle_dll, "win_sparkle_set_appcast_url"));
|
||||
winsparkle_set_app_details = reinterpret_cast<func_win_sparkle_set_app_details>(GetProcAddress(winsparkle_dll, "win_sparkle_set_app_details"));
|
||||
winsparkle_cleanup = reinterpret_cast<func_win_sparkle_cleanup>(winsparkle_dll->GetProcAddress(winsparkle_dll, "win_sparkle_cleanup"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
WinSparkleDllWrapper::~WinSparkleDllWrapper()
|
||||
{
|
||||
HMODULE hmod = winsparkle_dll->Detach();
|
||||
if (hmod != nullptr) {
|
||||
while(::FreeLibrary(hmod)) {
|
||||
wxMilliSleep(50);
|
||||
if (winsparkle_dll != nullptr) {
|
||||
while(::FreeLibrary(winsparkle_dll)) {
|
||||
wxMilliSleep(200);
|
||||
}
|
||||
}
|
||||
delete winsparkle_dll;
|
||||
|
||||
if (!temp_file_name) {
|
||||
return; // No need to delete the file if it was never created.
|
||||
|
|
|
@ -20,7 +20,7 @@ private:
|
|||
WinSparkleDllWrapper();
|
||||
~WinSparkleDllWrapper();
|
||||
|
||||
wxDynamicLibrary *winsparkle_dll;
|
||||
HMODULE winsparkle_dll;
|
||||
|
||||
func_win_sparkle_init winsparkle_init = nullptr;
|
||||
func_win_sparkle_check_update_with_ui winsparkle_check_update_with_ui = nullptr;
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit d2e68f1641010efb05985e1992bf4c76abaf9947
|
||||
Subproject commit 855244e2525ccdaff9d0cf534cfa95ef7b549df7
|
Loading…
Reference in New Issue