LVITEM lvItem;
ZeroMemory(&lvItem,sizeof(lvItem));
lvItem.cchTextMax = 25;
lvItem.mask = LVIF_TEXT;
lvItem.pszText = szItemID;
for (int i = 0;i<pItemValues->dwCount;i++)
{
lvItem.iItem = i;
m_valueView.InsertItem(&lvItem);
m_valueView.SetItem(i,1,LVIF_TEXT,
CToStringConverter::GetVTypeString(
pItemValues[0].pvDataValues[i].vt),0,0,0,0,0);
m_valueView.SetItem(i,2,LVIF_TEXT,
CString(pItemValues[0].pvDataValues[i]),0,0,0,0,0);
m_valueView.SetItem(i,3,LVIF_TEXT,
CToStringConverter::GetFTString(
pItemValues[0].pftTimeStamps[i]),0,0,0,0,0);
m_valueView.SetItem(i,4,LVIF_TEXT,
CToStringConverter::GetQualityString(
pItemValues[0].pdwQualities[i]),0,0,0,0,0);
}
//Освобождаем память, выдленную сервером
CoTaskMemFree(pItemValues[0].pdwQualities);
CoTaskMemFree(pItemValues[0].pftTimeStamps);
CoTaskMemFree(pItemValues[0].pvDataValues);
CoTaskMemFree(pItemValues);
}
//Освобождаем интерфейс синхронного чтения
pSyncIO->Release();
}
Как можно заметить преобразование формата времени от COleDateTime к
FILETIME ведется по схеме
COleDateTime->SYSTEMITME->FILETIME.
Результат работы приведен на рисунке