static HRESULT WINAPI InstallCallback_OnStopBinding(IBindStatusCallback *iface, HRESULT hresult, LPCWSTR szError) { if(FAILED(hresult)) { ERR("Binding failed %08x\n", hresult); clean_up(); return S_OK; } CloseHandle(tmp_file); tmp_file = INVALID_HANDLE_VALUE; set_status(IDS_INSTALLING); install_cab(tmp_file_name); return S_OK; }
static BOOL install_from_unix_file(const char *file_name) { LPWSTR dos_file_name; int fd; BOOL ret; static WCHAR * (CDECL *wine_get_dos_file_name)(const char*); static const WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; fd = open(file_name, O_RDONLY); if(fd == -1) { TRACE("%s not found\n", debugstr_a(file_name)); return FALSE; } close(fd); if(!wine_get_dos_file_name) wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name"); if(wine_get_dos_file_name) { /* Wine UNIX mode */ dos_file_name = wine_get_dos_file_name(file_name); if(!dos_file_name) { ERR("Could not get dos file name of %s\n", debugstr_a(file_name)); return FALSE; } } else { /* Windows mode */ UINT res; WARN("Could not get wine_get_dos_file_name function, calling install_cab directly.\n"); res = MultiByteToWideChar( CP_ACP, 0, file_name, -1, 0, 0); dos_file_name = heap_alloc (res*sizeof(WCHAR)); MultiByteToWideChar( CP_ACP, 0, file_name, -1, dos_file_name, res); } ret = install_cab(dos_file_name); heap_free(dos_file_name); return ret; }
static BOOL install_from_unix_file(const char *file_name) { LPWSTR dos_file_name; int fd; BOOL ret; static WCHAR *(*wine_get_dos_file_name)(const char*); static const WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; fd = open(file_name, O_RDONLY); if(fd == -1) { TRACE("%s not found\n", debugstr_a(file_name)); return FALSE; } close(fd); if(!wine_get_dos_file_name) { wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name"); if(!wine_get_dos_file_name) { ERR("Could not get wine_get_dos_file_name function.\n"); return FALSE; } } dos_file_name = wine_get_dos_file_name(file_name); if(!dos_file_name) { ERR("Could not get dos file name of %s\n", debugstr_a(file_name)); return FALSE; } ret = install_cab(dos_file_name); heap_free(dos_file_name); return ret; }