On Wed, 2018-05-16 at 21:14 -0500, Zebediah Figura wrote:
+UINT WINAPI MsiGetSourcePathA(MSIHANDLE hinst, const char *folder, char *buf, DWORD *sz) { - LPWSTR folder; - awstring str; + MSIPACKAGE *package; + const WCHAR *path; + WCHAR *folderW; UINT r;
- TRACE("%s %p %p\n", debugstr_a(szFolder), szPathBuf, pcchPathBuf); + TRACE("%s %p %p\n", debugstr_a(folder), buf, sz);
- str.unicode = FALSE; - str.str.a = szPathBuf; + if (!folder) + return ERROR_INVALID_PARAMETER;
- folder = strdupAtoW( szFolder ); - r = MSI_GetSourcePath( hInstall, folder, &str, pcchPathBuf ); - msi_free( folder ); + if (!(folderW = strdupAtoW(folder))) + return ERROR_OUTOFMEMORY;
+ package = msihandle2msiinfo(hinst, MSIHANDLETYPE_PACKAGE); + if (!package) + { + WCHAR *path = NULL; + MSIHANDLE remote; + + if (!(remote = msi_get_remote(hinst))) + return ERROR_INVALID_HANDLE;
Same here.