#include <stdio.h>
#include <tchar.h>
#include <windows.h>

main( int argc, TCHAR *argv[] ) {
	STARTUPINFO si;
	PROCESS_INFORMATION pi;

	ZeroMemory( &si, sizeof(si) );
	si.cb = sizeof(si);
	ZeroMemory( &pi, sizeof(pi) );
	if( argc != 2 ) {
		printf("Usage: %s [cmdline]\n", argv[0]);
		ExitProcess(1);
	}
 	// Start the child process.
	if ( !CreateProcess ( NULL, // No module name (use command line)
		argv[1], // Command line
		NULL, // Process handle not inheritable
		NULL, // Thread handle not inheritable
		FALSE, // Set handle inheritance to FALSE
		0, // No creation flags
		NULL, // Use parent's environment block
		NULL, // Use parent's starting directory
		&si, // Pointer to STARTUPINFO structure
		&pi )) // Pointer to PROCESS_INFORMATION structure ) 
	{ 
		printf( "CreateProcess failed (%d).\n", GetLastError() );
		ExitProcess(1);
	} 
	// Wait until child process exits.
	WaitForSingleObject( pi.hProcess, INFINITE ); 
	// Close process and thread handles.
	CloseHandle( pi.hProcess );
	CloseHandle( pi.hThread );
	ExitProcess(0);
} 
