// Convert a date in PDF or XPS format, e.g. "D:20091222171933-05'00'" to a display // format e.g. "12/22/2009 5:19:33 PM" // See: http://www.verypdf.com/pdfinfoeditor/pdf-date-format.htm // The conversion happens in place static void ConvDateToDisplay(WCHAR **s, bool (* DateParse)(const WCHAR *date, SYSTEMTIME *timeOut)) { if (!s || !*s || !DateParse) return; SYSTEMTIME date; bool ok = DateParse(*s, &date); if (!ok) return; WCHAR *formatted = FormatSystemTime(date); if (formatted) { free(*s); *s = formatted; } }
bool CReserveListView::CReserveListItem::GetText(int ID,LPTSTR pszText,int MaxLength) const { pszText[0]=_T('\0'); switch (ID) { case COLUMN_TITLE: if (!m_pReserveData->title.empty()) ::lstrcpyn(pszText,m_pReserveData->title.c_str(),MaxLength); break; case COLUMN_TIME: { SYSTEMTIME EndTime; TCHAR szStartTime[64],szEndTime[64]; GetEndTime(m_pReserveData->startTime,m_pReserveData->durationSecond,&EndTime); FormatSystemTime(m_pReserveData->startTime,szStartTime, _countof(szStartTime), SYSTEMTIME_FORMAT_TIME | SYSTEMTIME_FORMAT_SECONDS); FormatSystemTime(EndTime,szEndTime, _countof(szEndTime), SYSTEMTIME_FORMAT_TIMEONLY | SYSTEMTIME_FORMAT_SECONDS); FormatString(pszText,MaxLength,TEXT("%s 〜 %s"),szStartTime,szEndTime); } break; case COLUMN_SERVICE: if (!m_pReserveData->stationName.empty()) ::lstrcpyn(pszText,m_pReserveData->stationName.c_str(),MaxLength); break; case COLUMN_STATUS: { LPCTSTR pszStatus=NULL; if (m_pReserveData->recSetting.recMode==RECMODE_NO) { pszStatus=TEXT("無効"); } else { switch (m_pReserveData->overlapMode) { case 0: pszStatus=TEXT("正常"); break; case 1: pszStatus=TEXT("一部実行"); break; case 2: pszStatus=TEXT("チューナー不足"); break; } } if (pszStatus!=NULL) ::lstrcpyn(pszText,pszStatus,MaxLength); } break; case COLUMN_RECMODE: { LPCTSTR pszRecMode; switch (m_pReserveData->recSetting.recMode) { case RECMODE_ALL: pszRecMode=TEXT("全サービス"); break; case RECMODE_SERVICE: pszRecMode=TEXT("指定サービス"); break; case RECMODE_ALL_NOB25: pszRecMode=TEXT("全サービス(スクランブル解除なし)"); break; case RECMODE_SERVICE_NOB25: pszRecMode=TEXT("指定サービス(スクランブル解除なし)"); break; case RECMODE_VIEW: pszRecMode=TEXT("視聴"); break; case RECMODE_NO: pszRecMode=TEXT("無効"); break; case RECMODE_EPG: pszRecMode=TEXT("EPG取得"); break; default: pszRecMode=NULL; } if (pszRecMode!=NULL) ::lstrcpyn(pszText,pszRecMode,MaxLength); } break; case COLUMN_PRIORITY: FormatInt(m_pReserveData->recSetting.priority,pszText,MaxLength); break; default: return false; } return true; }
bool CFileListView::CFileListItem::GetText(int ID,LPTSTR pszText,int MaxLength) const { pszText[0]=_T('\0'); switch (ID) { case COLUMN_TIME: { SYSTEMTIME EndTime; TCHAR szStartTime[64],szEndTime[64]; GetEndTime(m_RecFileInfo.startTime,m_RecFileInfo.durationSecond,&EndTime); FormatSystemTime(m_RecFileInfo.startTime,szStartTime,_countof(szStartTime), SYSTEMTIME_FORMAT_TIME | SYSTEMTIME_FORMAT_SECONDS); FormatSystemTime(EndTime,szEndTime,_countof(szEndTime), SYSTEMTIME_FORMAT_TIMEONLY | SYSTEMTIME_FORMAT_SECONDS); FormatString(pszText,MaxLength,TEXT("%s 〜 %s"),szStartTime,szEndTime); } break; case COLUMN_TITLE: if (!m_RecFileInfo.title.empty()) ::lstrcpyn(pszText,m_RecFileInfo.title.c_str(),MaxLength); break; case COLUMN_SERVICE: if (!m_RecFileInfo.serviceName.empty()) ::lstrcpyn(pszText,m_RecFileInfo.serviceName.c_str(),MaxLength); break; case COLUMN_RESULT: if (!m_RecFileInfo.comment.empty()) { ::lstrcpyn(pszText,m_RecFileInfo.comment.c_str(),MaxLength); } else { LPCTSTR pszStatus=NULL; if ((m_RecFileInfo.recStatus&REC_STATUS_END)!=0) { pszStatus=TEXT("正常終了"); } if ((m_RecFileInfo.recStatus&REC_STATUS_ERR_WAKE)!=0) { pszStatus=TEXT("録画時刻超過エラー"); } else if ((m_RecFileInfo.recStatus&REC_STATUS_ERR_OPEN)!=0) { pszStatus=TEXT("起動エラー"); } else if ((m_RecFileInfo.recStatus&REC_STATUS_ERR_FIND)!=0) { pszStatus=TEXT("EPG情報エラー"); } else if ((m_RecFileInfo.recStatus&REC_STATUS_END_PG)!=0) { pszStatus=TEXT("プログラム録画に変更して終了"); } else if ((m_RecFileInfo.recStatus&REC_STATUS_CHG_TIME)!=0) { pszStatus=TEXT("開始時刻を変更して録画終了"); } /* else if ((m_RecFileInfo.recStatus&REC_STATUS_RELAY)!=0) { pszStatus=TEXT("イベントリレー"); } */ if (pszStatus!=NULL) ::lstrcpyn(pszText,pszStatus,MaxLength); } break; case COLUMN_FILE: if (!m_RecFileInfo.recFilePath.empty()) ::lstrcpyn(pszText,m_RecFileInfo.recFilePath.c_str(),MaxLength); break; default: return false; } return true; }