Implementation of CreateProcess32W.

This commit is contained in:
Juergen Schmied 1998-11-22 15:46:05 +00:00 committed by Alexandre Julliard
parent 7401463528
commit d0fc60ad05
1 changed files with 29 additions and 6 deletions

View File

@ -700,6 +700,8 @@ BOOL32 WINAPI CreateProcess32A( LPCSTR lpApplicationName, LPSTR lpCommandLine,
/********************************************************************** /**********************************************************************
* CreateProcess32W (KERNEL32.172) * CreateProcess32W (KERNEL32.172)
* NOTES
* lpReserved is not converted
*/ */
BOOL32 WINAPI CreateProcess32W( LPCWSTR lpApplicationName, LPWSTR lpCommandLine, BOOL32 WINAPI CreateProcess32W( LPCWSTR lpApplicationName, LPWSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpProcessAttributes,
@ -708,13 +710,34 @@ BOOL32 WINAPI CreateProcess32W( LPCWSTR lpApplicationName, LPWSTR lpCommandLine,
LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory, LPVOID lpEnvironment, LPCWSTR lpCurrentDirectory,
LPSTARTUPINFO32W lpStartupInfo, LPSTARTUPINFO32W lpStartupInfo,
LPPROCESS_INFORMATION lpProcessInfo ) LPPROCESS_INFORMATION lpProcessInfo )
{ { BOOL32 ret;
FIXME(win32, "(%s,%s,...): stub\n", debugstr_w(lpApplicationName), STARTUPINFO32A StartupInfoA;
debugstr_w(lpCommandLine));
/* make from lcc uses system as fallback if CreateProcess returns LPSTR lpApplicationNameA = HEAP_strdupWtoA (GetProcessHeap(),0,lpApplicationName);
FALSE, so return false */ LPSTR lpCommandLineA = HEAP_strdupWtoA (GetProcessHeap(),0,lpCommandLine);
return FALSE; LPSTR lpCurrentDirectoryA = HEAP_strdupWtoA (GetProcessHeap(),0,lpCurrentDirectory);
memcpy (&StartupInfoA, lpStartupInfo, sizeof(STARTUPINFO32A));
StartupInfoA.lpDesktop = HEAP_strdupWtoA (GetProcessHeap(),0,lpStartupInfo->lpDesktop);
StartupInfoA.lpTitle = HEAP_strdupWtoA (GetProcessHeap(),0,lpStartupInfo->lpTitle);
TRACE(win32, "(%s,%s,...)\n", debugstr_w(lpApplicationName), debugstr_w(lpCommandLine));
if (lpStartupInfo->lpReserved)
FIXME(win32,"StartupInfo.lpReserved is used, please report (%s)\n", debugstr_w(lpStartupInfo->lpReserved));
ret = CreateProcess32A( lpApplicationNameA, lpCommandLineA,
lpProcessAttributes, lpThreadAttributes,
bInheritHandles, dwCreationFlags,
lpEnvironment, lpCurrentDirectoryA,
&StartupInfoA, lpProcessInfo );
HeapFree( GetProcessHeap(), 0, lpCurrentDirectoryA );
HeapFree( GetProcessHeap(), 0, lpCommandLineA );
HeapFree( GetProcessHeap(), 0, StartupInfoA.lpDesktop );
HeapFree( GetProcessHeap(), 0, StartupInfoA.lpTitle );
return ret;
} }
/*********************************************************************** /***********************************************************************