c++ builder > 時計変更時の処理 / SetLocalTime()実行後


動作確認
C++ Builder XE4
Unit1.cpp
bool __fastcall TFormMain::AdjustLocalTime(String datetime)
{
    TSystemTime systime;
    TDateTime dt;

    dt = VarToDateTime(datetime);
    DateTimeToSystemTime(dt, systime);
    if (SetLocalTime(&systime) == false) {
//      RaiseLastOSError();
        return false;
    }

    if (m_thr_main != NULL) {
        m_thr_main->NotifyClockAdjusted();
    }
    return true;
}

m_thr_main : はTThread *型。

時刻調整が入ったら、スレッド処理に連絡を入れて、その先のスレッドで必要な処理を実行するという感じ。

VarToDateTime()を使っているのは、ENU対応。