BOOL install_addon(addon_t addon_type) { if(!*ARCH_STRING) return FALSE; addon = addons_info+addon_type; p_wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32_dllW), "wine_get_dos_file_name"); /* * Try to find addon .msi file in following order: * - directory stored in $dir_config_key value of HKCU/Software/Wine/$config_key key * - $datadir/$addon_subdir/ * - $INSTALL_DATADIR/wine/$addon_subdir/ * - /usr/share/wine/$addon_subdir/ * - download from URL stored in $url_config_key value of HKCU/Software/Wine/$config_key key */ if (install_from_registered_dir() == INSTALL_NEXT && install_from_default_dir() == INSTALL_NEXT && install_from_cache() == INSTALL_NEXT && (url = get_url())) DialogBoxW(hInst, addon->dialog_template, 0, installer_proc); heap_free(url); url = NULL; return TRUE; }
BOOL install_wine_gecko(BOOL silent) { HANDLE hsem; SetLastError(ERROR_SUCCESS); hsem = CreateSemaphoreA( NULL, 0, 1, "mshtml_install_semaphore"); if(GetLastError() == ERROR_ALREADY_EXISTS) { WaitForSingleObject(hsem, INFINITE); }else { /* * Try to find Gecko .cab file in following order: * - directory stored in GeckoCabDir value of HKCU/Software/MSHTML key * - $datadir/gecko * - download from URL stored in GeckoUrl value of HKCU/Software/MSHTML key */ if(!install_from_registered_dir() && !install_from_default_dir() && !silent && (url = get_url())) DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); } ReleaseSemaphore(hsem, 1, NULL); CloseHandle(hsem); return TRUE; }
BOOL install_wine_gecko(void) { if(!*ARCH_STRING) return FALSE; /* * Try to find Gecko .cab file in following order: * - directory stored in GeckoCabDir value of HKCU/Wine/Software/MSHTML key * - $datadir/gecko/ * - $INSTALL_DATADIR/wine/gecko/ * - /usr/share/wine/gecko/ * - download from URL stored in GeckoUrl value of HKCU/Wine/Software/MSHTML key */ if(!install_from_registered_dir() && !install_from_default_dir() && (url = get_url())) DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); heap_free(url); url = NULL; return TRUE; }
BOOL install_addon(addon_t addon_type) { if(!*ARCH_STRING) return FALSE; addon = addons_info+addon_type; /* * Try to find addon .msi file in following order: * - directory stored in $dir_config_key value of HKCU/Wine/Software/$config_key key * - $datadir/$addon_subdir/ * - $INSTALL_DATADIR/wine/$addon_subdir/ * - /usr/share/wine/$addon_subdir/ * - download from URL stored in $url_config_key value of HKCU/Wine/Software/$config_key key */ if(!install_from_registered_dir() && !install_from_default_dir() && (url = get_url())) DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); heap_free(url); url = NULL; return TRUE; }