#include #include #include "itsutils.h" #include "kernelmisc.h" ITSUTILS_API HRESULT STDAPICALLTYPE ITSetSystemTime( DWORD cbInput, SetSystemTimeParams *pbInput, DWORD *pcbOutput, BYTE **ppbOutput, IRAPIStream *pStream) { *pcbOutput= 0; *ppbOutput= NULL; DWORD res= 0; KernelMode _km; if (pbInput->bSetTz) { if (!SetTimeZoneInformation(&pbInput->tzinfo)) res= GetLastError(); } if (pbInput->bSetLocal) { if (!SetLocalTime(&pbInput->time)) res= GetLastError(); } else if (pbInput->bSetSystem) { if (!SetSystemTime(&pbInput->time)) res= GetLastError(); } return res; } ITSUTILS_API HRESULT STDAPICALLTYPE ITGetSystemTime( DWORD cbInput, GetSystemTimeParams *pbInput, DWORD *pcbOutput, GetSystemTimeResult **ppbOutput, IRAPIStream *pStream) { *pcbOutput= sizeof(GetSystemTimeResult); GetSystemTimeResult *pOut = *ppbOutput= (GetSystemTimeResult*)LocalAlloc(LPTR, *pcbOutput); DWORD res= 0; KernelMode _km; pOut->tzid= GetTimeZoneInformation(&pOut->tzinfo); if (pbInput->bGetLocal) { GetLocalTime(&pOut->time); } else { GetSystemTime(&pOut->time); } return res; }