Hi, been trying to get this thing working for a while now and I think that I am now officially stuck. This code is supposed to spit out the CPU usage of the current process (per PID which is supplied at CMDline) I am not real sure if I need it, but I looked at winbase.h and GetSystemTimes is not available for me. I hope someone can help me. Thanks

Code:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <windows.h>

int iFunGetTime( FILETIME ftTime )
{
SYSTEMTIME stTime;
int iTime;

FileTimeToSystemTime( &ftTime, &stTime );

iTime = stTime.wSecond * 1000;
iTime += stTime.wMilliseconds;

return iTime;
}

int iFunGetCpuProcUsage( HANDLE hHandle )
{
LONG lOldUser, lNewUser, lOldKernel, lNewKernel, lUser, lKernel;
DWORD dwOldTime, dwNewTime, dwTime;
FILETIME ftCreate, ftExit, ftUser, ftKernel, sysTime;
int iProcUsage;

GetSystemTimeAsFileTime(&sysTime);
dwOldTime = (DWORD)sysTime.dwLowDateTime;
GetProcessTimes( hHandle, &ftCreate, &ftExit, &ftUser, &ftKernel );
lOldUser = iFunGetTime( ftUser );
lOldKernel = iFunGetTime( ftKernel );

Sleep( 1000 );

GetSystemTimeAsFileTime(&sysTime);
dwNewTime = (DWORD)sysTime.dwLowDateTime;
GetProcessTimes( hHandle, &ftCreate, &ftExit, &ftUser, &ftKernel );

lNewUser = iFunGetTime( ftUser );
lNewKernel = iFunGetTime( ftKernel );

lKernel = lNewKernel - lOldKernel;
lUser = lNewUser - lOldUser;
dwTime = dwNewTime-dwOldTime;

if( dwTime == 0 )
{
Sleep( 100 );
GetSystemTimeAsFileTime(&sysTime);
dwNewTime = (DWORD)sysTime.dwLowDateTime;
dwTime = dwNewTime-dwOldTime;
}

iProcUsage =  (((lKernel+lUser)*100 )  / dwTime );

return iProcUsage;

}

int main(int argc, char* argv[])
{
HANDLE hProcess;
int pid = atoi(argv[1]);
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION ,false , pid);
printf("cpu_usage: %d, proc_id: %d\n", iFunGetCpuProcUsage(hProcess), pid);
CloseHandle( hProcess );
return 0;
}
Thanks again.