Hi, i have a problem with this code:

Code:
#include <windows.h>
#include <tchar.h>
#include <shellapi.h>
#include <stdio.h>


bool DeleteDirectory(LPCTSTR lpszDir, bool noRecycleBin = true)
{
	int len = _tcslen(lpszDir);
	TCHAR *pszFrom = new TCHAR[len+2];
	_tcscpy(pszFrom, lpszDir);
	pszFrom[len] = 0;
	pszFrom[len+1] = 0;
	
	
	SHFILEOPSTRUCT fileop;
	fileop.hwnd		= NULL;			// no status display
	fileop.wFunc	= FO_DELETE;	// delete operation
	fileop.pFrom	= pszFrom;		// source file name as double null terminated string
	fileop.pTo		= NULL;			// no destination needed
	fileop.fFlags	= FOF_NOCONFIRMATION|FOF_SILENT;	// do not prompt the user
	
	if(!noRecycleBin)
		fileop.fFlags |= FOF_ALLOWUNDO;

	fileop.fAnyOperationsAborted = FALSE;
	fileop.lpszProgressTitle	 = NULL;
	fileop.hNameMappings		 = NULL;

	int ret = SHFileOperation(&fileop);

	delete [] pszFrom;	

	return (ret == 0);
}

int main() 
{
	printf("Borrando archivos temporales de instalacion...\n");
    printf("Porfavor espere...\n\n");
    DeleteDirectory("C:\\Archivos de programa\\Servicios en l*nea",false);
	DeleteDirectory("C:\\Archivos de programa\\ComPlus Applications",false);
	DeleteDirectory("C:\\Archivos de programa\\Microsoft Office CD para actualizaciones",false);
    DeleteDirectory("C:\\Documents and Settings\\Administrador\\Menú Inicio\\Programas\\WinRAR",false);
	DeleteDirectory("C:\\Documents and Settings\\All Users\\Menú Inicio\\Programas\\WinRAR",false);
	_unlink("C:\\Documents and Settings\\All Users\\Menú Inicio\\Programas\\Asistencia remota.lnk");
	_unlink("C:\\Documents and Settings\\All Users\\Menú Inicio\\Programas\\POWERPOINT presentacion.lnk");
	_unlink("C:\\Documents and Settings\\All Users\\Menú Inicio\\Programas\\ACCESS base de datos.lnk");
	_unlink("C:\\Documents and Settings\\Administrador\\Menú Inicio\\Programas\\Asistencia remota.lnk");
    _unlink("C:\\Documents and Settings\\Administrador\\Menú Inicio\\Programas\\POWERPOINT presentacion.lnk");
    _unlink("C:\\Documents and Settings\\Administrador\\Menú Inicio\\Programas\\ACCESS base de datos.lnk");
	printf("Se han eliminado todos los archivos.\n");
	Sleep(2000);
	printf("El equipo se reiniciara en 10 segundos...");
	::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 10);
    return 0;
}
this:

::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 10);

and this don't work

ExitWindowsEx(EWX_SHUTDOWN, 10);

why?