ChangeLog: * remove references to HEAP_strdupAtoW in msi
Index: dlls/msi/msi.c =================================================================== RCS file: /home/wine/wine/dlls/msi/msi.c,v retrieving revision 1.4 diff -u -r1.4 msi.c --- dlls/msi/msi.c 8 Sep 2003 19:38:46 -0000 1.4 +++ dlls/msi/msi.c 26 Sep 2003 19:05:47 -0000 @@ -1,7 +1,7 @@ /* * Implementation of the Microsoft Installer (msi.dll) * - * Copyright 2002 Mike McCormack for CodeWeavers + * Copyright 2002,2003 Mike McCormack for CodeWeavers * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -25,6 +25,7 @@ #include "windef.h" #include "winbase.h" #include "winreg.h" +#include "winnls.h" #include "shlwapi.h" #include "wine/debug.h" #include "msi.h" @@ -135,21 +136,26 @@ { HRESULT r = ERROR_FUNCTION_FAILED; LPWSTR szwDBPath = NULL, szwPersist = NULL; + UINT len; TRACE("%s %s %p\n", debugstr_a(szDBPath), debugstr_a(szPersist), phDB); if( szDBPath ) { - szwDBPath = HEAP_strdupAtoW( GetProcessHeap(), 0, szDBPath ); + len = MultiByteToWideChar( CP_ACP, 0, szDBPath, -1, NULL, 0 ); + szwDBPath = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); if( !szwDBPath ) goto end; + MultiByteToWideChar( CP_ACP, 0, szDBPath, -1, szwDBPath, len ); } if( szPersist ) { - szwPersist = HEAP_strdupAtoW( GetProcessHeap(), 0, szPersist ); + len = MultiByteToWideChar( CP_ACP, 0, szPersist, -1, NULL, 0 ); + szwPersist = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); if( !szwPersist ) goto end; + MultiByteToWideChar( CP_ACP, 0, szPersist, -1, szwPersist, len ); } r = MsiOpenDatabaseW( szwDBPath, szwPersist, phDB ); @@ -287,16 +293,20 @@ if( szPackagePath ) { - szwPath = HEAP_strdupAtoW(GetProcessHeap(),0,szPackagePath); - if( szwPath == NULL ) - goto end; + UINT len = MultiByteToWideChar( CP_ACP, 0, szPackagePath, -1, NULL, 0 ); + szwPath = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); + if( !szwPath ) + goto end; + MultiByteToWideChar( CP_ACP, 0, szPackagePath, -1, szwPath, len ); } if( szCommandLine ) { - szwCommand = HEAP_strdupAtoW(GetProcessHeap(),0,szCommandLine); - if( szwCommand == NULL ) - goto end; + UINT len = MultiByteToWideChar( CP_ACP, 0, szCommandLine, -1, NULL, 0 ); + szwCommand = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); + if( !szwCommand ) + goto end; + MultiByteToWideChar( CP_ACP, 0, szCommandLine, -1, szwCommand, len ); } r = MsiInstallProductW( szwPath, szwCommand ); @@ -478,13 +488,15 @@ if( szProduct ) { - szwProduct = HEAP_strdupAtoW(GetProcessHeap(),0,szProduct); - if( !szwProduct ) + UINT len = MultiByteToWideChar( CP_ACP, 0, szProduct, -1, NULL, 0 ); + szwProduct = HeapAlloc( GetProcessHeap(), 0, len * sizeof (WCHAR) ); + if( szwProduct ) + MultiByteToWideChar( CP_ACP, 0, szProduct, -1, szwProduct, len ); + else return ERROR_FUNCTION_FAILED; } - r = MsiEnumFeaturesW(szProduct?szwProduct:NULL, - index, szwFeature, szwParent); + r = MsiEnumFeaturesW(szwProduct, index, szwFeature, szwParent); if( r == ERROR_SUCCESS ) { WideCharToMultiByte(CP_ACP, 0, szwFeature, -1, @@ -591,8 +603,11 @@ if( szComponent ) { - szwComponent = HEAP_strdupAtoW(GetProcessHeap(),0,szComponent); - if( !szwComponent ) + UINT len = MultiByteToWideChar( CP_ACP, 0, szComponent, -1, NULL, 0 ); + szwComponent = HeapAlloc( GetProcessHeap(), 0, len * sizeof (WCHAR) ); + if( szwComponent ) + MultiByteToWideChar( CP_ACP, 0, szComponent, -1, szwComponent, len ); + else return ERROR_FUNCTION_FAILED; } Index: dlls/msi/msipriv.h =================================================================== RCS file: /home/wine/wine/dlls/msi/msipriv.h,v retrieving revision 1.3 diff -u -r1.3 msipriv.h --- dlls/msi/msipriv.h 8 Sep 2003 19:38:46 -0000 1.3 +++ dlls/msi/msipriv.h 26 Sep 2003 19:05:47 -0000 @@ -173,18 +173,4 @@ UINT VIEW_find_column( MSIVIEW *view, LPWSTR name, UINT *n ); -/* FIXME! should get rid of that */ -#include "winnls.h" -inline static LPWSTR HEAP_strdupAtoW( HANDLE heap, DWORD flags, LPCSTR str ) -{ - LPWSTR ret; - INT len; - - if (!str) return NULL; - len = MultiByteToWideChar( CP_ACP, 0, str, -1, NULL, 0 ); - ret = HeapAlloc( heap, flags, len * sizeof(WCHAR) ); - if (ret) MultiByteToWideChar( CP_ACP, 0, str, -1, ret, len ); - return ret; -} - #endif /* __WINE_MSI_PRIVATE__ */ Index: dlls/msi/msiquery.c =================================================================== RCS file: /home/wine/wine/dlls/msi/msiquery.c,v retrieving revision 1.3 diff -u -r1.3 msiquery.c --- dlls/msi/msiquery.c 8 Sep 2003 19:38:46 -0000 1.3 +++ dlls/msi/msiquery.c 26 Sep 2003 19:05:47 -0000 @@ -97,15 +97,17 @@ LPCSTR szQuery, MSIHANDLE *phView) { UINT r; - LPCWSTR szwQuery; + LPWSTR szwQuery; TRACE("%ld %s %p\n", hdb, debugstr_a(szQuery), phView); if( szQuery ) { - szwQuery = HEAP_strdupAtoW( GetProcessHeap(), 0, szQuery ); + UINT len = MultiByteToWideChar( CP_ACP, 0, szQuery, -1, NULL, 0 ); + szwQuery = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); if( !szwQuery ) return ERROR_FUNCTION_FAILED; + MultiByteToWideChar( CP_ACP, 0, szQuery, -1, szwQuery, len ); } else szwQuery = NULL; Index: dlls/msi/suminfo.c =================================================================== RCS file: /home/wine/wine/dlls/msi/suminfo.c,v retrieving revision 1.3 diff -u -r1.3 suminfo.c --- dlls/msi/suminfo.c 8 Sep 2003 19:38:46 -0000 1.3 +++ dlls/msi/suminfo.c 26 Sep 2003 19:05:47 -0000 @@ -25,6 +25,7 @@ #include "windef.h" #include "winbase.h" #include "winreg.h" +#include "winnls.h" #include "shlwapi.h" #include "wine/debug.h" #include "msi.h" @@ -54,9 +55,11 @@ if( szDatabase ) { - szwDatabase = HEAP_strdupAtoW( GetProcessHeap(), 0, szDatabase ); + UINT len = MultiByteToWideChar( CP_ACP, 0, szDatabase, -1, NULL, 0 ); + szwDatabase = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) ); if( !szwDatabase ) return ERROR_FUNCTION_FAILED; + MultiByteToWideChar( CP_ACP, 0, szDatabase, -1, szwDatabase, len ); } ret = MsiGetSummaryInformationW(hDatabase, szwDatabase, uiUpdateCount, phSummaryInfo);