tclock SNTPのログを表示する
時刻合わせの設定ダイアログを表示した際、SNTP.txtの内容を読み込み表示するためのソースに対するパッチ。以下の関数を pagesntp.c の OnInit 末尾で呼び出してあげればOK。
04/27 追記
このエントリーの内容はバイナリtclock-080427-analogに反映されました。
void LoadLogFile() { HANDLE hFile; char fname[MAX_PATH]; char* logValue = NULL; char* p = NULL; DWORD dwSize = 0; DWORD i = 0; strcpy(fname, g_mydir); add_title(fname, "SNTP.txt"); hFile = CreateFile(fname, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) goto CLEANUP; dwSize = GetFileSize(hFile, NULL); if (!dwSize) goto CLEANUP; logValue = malloc(dwSize+1); if (!logValue) goto CLEANUP; if (!ReadFile(hFile, logValue, dwSize, &dwSize, NULL)) goto CLEANUP; logValue[dwSize] = '\0'; p = logValue; for (i=0; i<dwSize; ++i) { if (logValue[i] == '\r') { if (logValue[++i] == '\n') { logValue[i-1] = logValue[i] = '\0'; SendMessage(hwndSNTPLog, LB_ADDSTRING, 0, (LPARAM)p); p = logValue + i+1; } } } SendMessage(hwndSNTPLog, LB_SETCURSEL, SendMessage(hwndSNTPLog, LB_GETCOUNT, 0, 0)-1, 0); CLEANUP: if (hFile != INVALID_HANDLE_VALUE) CloseHandle(hFile); if (logValue) free(logValue); }