Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 533 of file install.c.
{ LPSTR wsrcf = NULL, wsrcd = NULL, wdestf = NULL, wdestd = NULL, wtmpf = NULL, wcurd = NULL; DWORD ret = 0; UINT len; if (srcfilename) { len = WideCharToMultiByte( CP_ACP, 0, srcfilename, -1, NULL, 0, NULL, NULL ); if ((wsrcf = HeapAlloc( GetProcessHeap(), 0, len ))) WideCharToMultiByte( CP_ACP, 0, srcfilename, -1, wsrcf, len, NULL, NULL ); else ret = VIF_OUTOFMEMORY; } if (srcdir && !ret) { len = WideCharToMultiByte( CP_ACP, 0, srcdir, -1, NULL, 0, NULL, NULL ); if ((wsrcd = HeapAlloc( GetProcessHeap(), 0, len ))) WideCharToMultiByte( CP_ACP, 0, srcdir, -1, wsrcd, len, NULL, NULL ); else ret = VIF_OUTOFMEMORY; } if (destfilename && !ret) { len = WideCharToMultiByte( CP_ACP, 0, destfilename, -1, NULL, 0, NULL, NULL ); if ((wdestf = HeapAlloc( GetProcessHeap(), 0, len ))) WideCharToMultiByte( CP_ACP, 0, destfilename, -1, wdestf, len, NULL, NULL ); else ret = VIF_OUTOFMEMORY; } if (destdir && !ret) { len = WideCharToMultiByte( CP_ACP, 0, destdir, -1, NULL, 0, NULL, NULL ); if ((wdestd = HeapAlloc( GetProcessHeap(), 0, len ))) WideCharToMultiByte( CP_ACP, 0, destdir, -1, wdestd, len, NULL, NULL ); else ret = VIF_OUTOFMEMORY; } if (curdir && !ret) { len = WideCharToMultiByte( CP_ACP, 0, curdir, -1, NULL, 0, NULL, NULL ); if ((wcurd = HeapAlloc( GetProcessHeap(), 0, len ))) WideCharToMultiByte( CP_ACP, 0, curdir, -1, wcurd, len, NULL, NULL ); else ret = VIF_OUTOFMEMORY; } if (!ret) { len = *tmpfilelen * sizeof(WCHAR); wtmpf = HeapAlloc( GetProcessHeap(), 0, len ); if (!wtmpf) ret = VIF_OUTOFMEMORY; } if (!ret) ret = VerInstallFileA(flags,wsrcf,wdestf,wsrcd,wdestd,wcurd,wtmpf,&len); if (!ret) *tmpfilelen = MultiByteToWideChar( CP_ACP, 0, wtmpf, -1, tmpfile, *tmpfilelen ); else if (ret & VIF_BUFFTOOSMALL) *tmpfilelen = len; /* FIXME: not correct */ HeapFree( GetProcessHeap(), 0, wsrcf ); HeapFree( GetProcessHeap(), 0, wsrcd ); HeapFree( GetProcessHeap(), 0, wdestf ); HeapFree( GetProcessHeap(), 0, wdestd ); HeapFree( GetProcessHeap(), 0, wtmpf ); HeapFree( GetProcessHeap(), 0, wcurd ); return ret; }