/************************************************************* * InstallPerfDllA (loadperf.@) */ DWORD WINAPI InstallPerfDllA(LPCSTR computer, LPCSTR ini, ULONG_PTR flags) { DWORD ret; LPWSTR computerW = NULL, iniW = NULL; if (computer && !(computerW = strdupAW(computer))) return ERROR_OUTOFMEMORY; if (ini && !(iniW = strdupAW(ini))) { HeapFree(GetProcessHeap(), 0, computerW); return ERROR_OUTOFMEMORY; } ret = InstallPerfDllW(computerW, iniW, flags); HeapFree(GetProcessHeap(), 0, computerW); HeapFree(GetProcessHeap(), 0, iniW); return ret; }
BOOL WINAPI LogonUserA( LPCSTR lpszUsername, LPCSTR lpszDomain, LPCSTR lpszPassword, DWORD dwLogonType, DWORD dwLogonProvider, PHANDLE phToken ) { WCHAR *usernameW = NULL, *domainW = NULL, *passwordW = NULL; BOOL ret = FALSE; TRACE("%s %s %p 0x%08x 0x%08x %p\n", debugstr_a(lpszUsername), debugstr_a(lpszDomain), lpszPassword, dwLogonType, dwLogonProvider, phToken); if (lpszUsername && !(usernameW = strdupAW( lpszUsername ))) return FALSE; if (lpszDomain && !(domainW = strdupAW( lpszUsername ))) goto done; if (lpszPassword && !(passwordW = strdupAW( lpszPassword ))) goto done; ret = LogonUserW( usernameW, domainW, passwordW, dwLogonType, dwLogonProvider, phToken ); done: heap_free( usernameW ); heap_free( domainW ); heap_free( passwordW ); return ret; }
/************************************************************* * UnloadPerfCounterTextStringsA (loadperf.@) * * NOTES * See UnloadPerfCounterTextStringsW */ DWORD WINAPI UnloadPerfCounterTextStringsA(LPCSTR cmdline, BOOL quiet) { DWORD ret; LPWSTR cmdlineW = NULL; if (cmdline && !(cmdlineW = strdupAW(cmdline))) return ERROR_OUTOFMEMORY; ret = UnloadPerfCounterTextStringsW(cmdlineW, quiet); HeapFree(GetProcessHeap(), 0, cmdlineW); return ret; }
/***************************************************** * ApplyPatchToFileA (MSPATCHA.1) */ BOOL WINAPI ApplyPatchToFileA(LPCSTR patch_file, LPCSTR old_file, LPCSTR new_file, ULONG apply_flags) { BOOL ret; WCHAR *patch_fileW, *new_fileW, *old_fileW = NULL; if (!(patch_fileW = strdupAW( patch_file ))) return FALSE; if (old_file && !(old_fileW = strdupAW( old_file ))) { HeapFree( GetProcessHeap(), 0, patch_fileW ); return FALSE; } if (!(new_fileW = strdupAW( new_file ))) { HeapFree( GetProcessHeap(), 0, patch_fileW ); HeapFree( GetProcessHeap(), 0, old_fileW ); return FALSE; } ret = ApplyPatchToFileW( patch_fileW, old_fileW, new_fileW, apply_flags ); HeapFree( GetProcessHeap(), 0, patch_fileW ); HeapFree( GetProcessHeap(), 0, old_fileW ); HeapFree( GetProcessHeap(), 0, new_fileW ); return ret; }
/****************************************************************** * InternetInitializeAutoProxyDll (jsproxy.@) */ BOOL WINAPI JSPROXY_InternetInitializeAutoProxyDll( DWORD version, LPSTR tmpfile, LPSTR mime, AutoProxyHelperFunctions *callbacks, LPAUTO_PROXY_SCRIPT_BUFFER buffer ) { BOOL ret = FALSE; TRACE( "%u, %s, %s, %p, %p\n", version, debugstr_a(tmpfile), debugstr_a(mime), callbacks, buffer ); if (callbacks) FIXME( "callbacks not supported\n" ); EnterCriticalSection( &cs_jsproxy ); if (buffer && buffer->dwStructSize == sizeof(*buffer) && buffer->lpszScriptBuffer) { DWORD i, len = 0; for (i = 0; i < buffer->dwScriptBufferSize; i++) { if (!buffer->lpszScriptBuffer[i]) break; len++; } if (len == buffer->dwScriptBufferSize) { SetLastError( ERROR_INVALID_PARAMETER ); LeaveCriticalSection( &cs_jsproxy ); return FALSE; } heap_free( global_script->text ); if ((global_script->text = strdupAW( buffer->lpszScriptBuffer, len ))) ret = TRUE; } else { heap_free( global_script->text ); if ((global_script->text = load_script( tmpfile ))) ret = TRUE; } LeaveCriticalSection( &cs_jsproxy ); return ret; }
/****************************************************************** * InternetInitializeAutoProxyDll (jsproxy.@) */ BOOL WINAPI JSPROXY_InternetInitializeAutoProxyDll( DWORD version, LPSTR tmpfile, LPSTR mime, AutoProxyHelperFunctions *callbacks, LPAUTO_PROXY_SCRIPT_BUFFER buffer ) { BOOL ret = FALSE; TRACE( "%u, %s, %s, %p, %p\n", version, debugstr_a(tmpfile), debugstr_a(mime), callbacks, buffer ); if (callbacks) FIXME( "callbacks not supported\n" ); EnterCriticalSection( &cs_jsproxy ); if (global_script->text) { LeaveCriticalSection( &cs_jsproxy ); return FALSE; } if (buffer && buffer->dwStructSize == sizeof(*buffer) && buffer->lpszScriptBuffer && (global_script->text = strdupAW( buffer->lpszScriptBuffer, buffer->dwScriptBufferSize ))) ret = TRUE; else if ((global_script->text = load_script( tmpfile ))) ret = TRUE; LeaveCriticalSection( &cs_jsproxy ); return ret; }