ちょっとソースを変えて
int main() {
DWORD start, end;
timeBeginPeriod(1);
start = timeGetTime();
for(int i=0; i<1000000000; i++) {
end = timeGetTime();
if(start < end) {
printf("%d回目 %d\n", i, start);
start = end;
}
}
timeEndPeriod(1)
}

こうした場合最初に2回(397575回目 2800264、865774回目 2800279、877500回目 2800295)が15msの精度で変わるのですが、何故かわかりますか