int GenerateList(HWND hList, HWND hStatus) { TFlashHeader *headers; uint32_t i; int side = 0, empty = 0; char str[128]; ListView_DeleteAllItems(hList); EnableWindow(hList, FALSE); SetWindowText(hStatus, "Reading disk headers..."); CheckMessages(); fdsemu->dev->FlashUtil->ReadHeaders(); headers = fdsemu->dev->FlashUtil->GetHeaders(); if (headers == 0) { return(-1); } for (i = 0; i < fdsemu->dev->Slots; i++) { TFlashHeader *header = &headers[i]; uint8_t *buf = headers[i].filename; //empty slot if (buf[0] == 0xFF) { empty++; continue; } //this slot has valid ownerid/nextid if (header->flags & 0x20) { //first disk image of a set if (header->ownerid == i) { InsertListViewItem(hList, (char*)buf, i); } } else { //filename is here if (buf[0] != 0) { InsertListViewItem(hList, (char*)buf, i); } } } ListView_SortItems(hList, CompareFunc, 0); EnableWindow(hList, TRUE); //update teh status bar if (empty >= 0) { sprintf(str, "%d slots used, %d remaining.", fdsemu->dev->Slots - empty, empty); } else { sprintf(str, "Error reading flash headers."); } SetWindowText(hStatus, str); return(empty); }
int CDlgQueryLog::QueryNext() { NET_IN_QUERYNEXTLOG stuIn = {sizeof(stuIn)}; stuIn.nGetCount = m_nMaxPageSize; NET_OUT_QUERYNEXTLOG stuOut = {sizeof(stuOut)}; stuOut.nMaxCount = m_nMaxPageSize; stuOut.pstuLogInfo = new NET_LOG_INFO[m_nMaxPageSize]; if (NULL == stuOut.pstuLogInfo) { return -1; } memset(stuOut.pstuLogInfo, 0, sizeof(NET_LOG_INFO) * m_nMaxPageSize); int i = 0; for (i = 0; i < m_nMaxPageSize; i++) { stuOut.pstuLogInfo[i].dwSize = sizeof(NET_LOG_INFO); stuOut.pstuLogInfo[i].stuLogMsg.dwSize = sizeof(NET_LOG_MESSAGE); } if (CLIENT_QueryNextLog(m_lLogID, &stuIn, &stuOut, SDK_API_WAITTIME)) { if (stuOut.nRetCount > 0) { m_logList.DeleteAllItems(); } for (i = 0; i < __min(stuOut.nMaxCount, stuOut.nRetCount); i++) { NET_TIME& stuTime = stuOut.pstuLogInfo[i].stuTime; char szTime[64] = {0}; _snprintf(szTime, sizeof(szTime) - 1, "%04d-%02d-%02d %02d:%02d:%02d", stuTime.dwYear, stuTime.dwMonth, stuTime.dwDay, stuTime.dwHour, stuTime.dwMinute, stuTime.dwSecond); InsertListViewItem(m_nStartNo++, stuOut.pstuLogInfo[i].szLogType, szTime, stuOut.pstuLogInfo[i].stuLogMsg.szLogMessage); } delete []stuOut.pstuLogInfo; stuOut.pstuLogInfo = NULL; return stuOut.nRetCount; } delete []stuOut.pstuLogInfo; stuOut.pstuLogInfo = NULL; return 0; }