77 lines
1.5 KiB
C++
77 lines
1.5 KiB
C++
/*--
|
|
|
|
Copyright (C) Microsoft Corporation, 2006
|
|
|
|
Events Update() routine implementation
|
|
|
|
--*/
|
|
|
|
#include "stdafx.h"
|
|
#include "EraseTest.h"
|
|
#include "EraseEventTest.h"
|
|
|
|
|
|
VOID DeleteCurrentLine2()
|
|
{
|
|
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
|
|
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
|
|
"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
|
|
);
|
|
return;
|
|
}
|
|
|
|
VOID OverwriteCurrentLine2()
|
|
{
|
|
printf(" "
|
|
" "
|
|
);
|
|
return;
|
|
}
|
|
|
|
VOID UpdatePercentageDisplay2(IN ULONG Numerator, IN ULONG Denominator)
|
|
{
|
|
ULONG percent = 0;
|
|
ULONG i = 0;
|
|
|
|
if (Numerator > Denominator)
|
|
{
|
|
return;
|
|
}
|
|
|
|
// NOTE: Overflow possibility exists for large numerators.
|
|
|
|
percent = (Numerator * 100) / Denominator;
|
|
|
|
// each block is 2%
|
|
// ----=----1----=----2----=----3----=----4----=----5----=----6----=----7----=----8
|
|
// ±.....................
|
|
|
|
for (i=1; i<100; i+=2)
|
|
{
|
|
if (i < percent)
|
|
{
|
|
putchar(178);
|
|
}
|
|
else if (i == percent)
|
|
{
|
|
putchar(177);
|
|
}
|
|
else
|
|
{
|
|
putchar(176);
|
|
}
|
|
}
|
|
printf(" %d%%", percent);
|
|
}
|
|
|
|
STDMETHODIMP_(VOID) CTestEraseEvent::Update(IDispatch* object, LONG elapsedTime, LONG totalTime)
|
|
{
|
|
UNREFERENCED_PARAMETER (object);
|
|
|
|
DeleteCurrentLine2();
|
|
|
|
UpdatePercentageDisplay2(elapsedTime, totalTime);
|
|
|
|
return;
|
|
}
|