2025-11-28 00:35:46 +09:00

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;
}