FILETIMEからDATEへの変換

(2003.09.18)
    static HRESULT FileTimeToVariantTime(const FILETIME& fileTime, DATE* pDate)
    {
        if (pDate == NULL)
        {
            return E_POINTER;
        }
 
        SYSTEMTIME systemTime;
        BOOL br = ::FileTimeToSystemTime(&fileTime, &systemTime);
        if (br == 0)
        {
            DWORD dwError = ::GetLastError();
            return HRESULT_FROM_WIN32(dwError);
        }
 
        int nr = ::SystemTimeToVariantTime(&systemTime, pDate);
        if (nr == 0)
        {
            DWORD dwError = ::GetLastError();
            return HRESULT_FROM_WIN32(dwError);
        }
 
        return S_OK;
    }
    static HRESULT VariantTimeToFileTime(const DATE& date, FILETIME* pFileTime)
    {
        if (pFileTime == NULL)
        {
            return E_POINTER;
        }
 
        SYSTEMTIME systemTime;
        int nr = ::VariantTimeToSystemTime(date, &systemTime);
        if (nr == 0)
        {
            DWORD dwError = ::GetLastError();
            return HRESULT_FROM_WIN32(dwError);
        }
 
        FILETIME ft;
        BOOL  br = ::SystemTimeToFileTime(&systemTime, &ft);
        if (br)
            br = ::LocalFileTimeToFileTime(&ft, pFileTime);
 
        if (br == 0)
        {
            DWORD dwError = ::GetLastError();
            return HRESULT_FROM_WIN32(dwError);
        }
 
        return S_OK;
    }
一覧に戻る
© 2003 WAC.com All Right Reserved.