adfvolinfo.c
上传用户:hy_wanghao
上传日期:2007-01-08
资源大小:279k
文件大小:3k
- // An ADFLib function for Windows which displays a dialogue box containing details about
- // the current disk file.
- // Converted from adfVolumeInfo(), part of ADFLib by Laurent Clevy.
- //
- // Gary Harris
- // 30/8/00
- #include "../ADF_raw.h"
- #include "../ADF_Util.h"
- void adfVolumeInfoWin(HWND hWnd, struct Volume *vol)
- // Windows version of adfVolumeInfo().
- // Input: Receives a handle to the window on which to display the dialogue and a pointer
- // to a ADFLib Volume structure.
- // Output: Nil. Displays a windows dialogue containing the disk file data.
- {
- char szTemp[50], szAdfInfo[500]; // Info string.
-
- struct bRootBlock root;
- char diskName[35];
- int days,month,year;
-
- if (adfReadRootBlock(vol, vol->rootBlock, &root)!=RC_OK)
- return;
-
- memset(diskName, 0, 35);
- memcpy(diskName, root.diskName, root.nameLen);
-
- sprintf(szAdfInfo, "Name : %-30sn", vol->volName);
- strcat(szAdfInfo, "Type : ");
- switch(vol->dev->devType) {
- case DEVTYPE_FLOPDD:
- strcat(szAdfInfo, "Floppy Double Density : 880 KBytesn");
- break;
- case DEVTYPE_FLOPHD:
- strcat(szAdfInfo, "Floppy High Density : 1760 KBytesn");
- break;
- case DEVTYPE_HARDDISK:
- sprintf(szTemp, "Hard Disk partition : %3.1f KBytesn",
- (vol->lastBlock - vol->firstBlock +1) * 512.0/1024.0);
- strcat(szAdfInfo, szTemp);
- break;
- case DEVTYPE_HARDFILE:
- sprintf(szTemp, "HardFile : %3.1f KBytesn",
- (vol->lastBlock - vol->firstBlock +1) * 512.0/1024.0);
- strcat(szAdfInfo, szTemp);
- break;
- default:
- strcat(szAdfInfo, "Unknown devType!n");
- }
- strcat(szAdfInfo, "Filesystem : ");
- sprintf(szTemp, "%s ",isFFS(vol->dosType) ? "FFS" : "OFS");
- strcat(szAdfInfo, szTemp);
- if (isINTL(vol->dosType))
- strcat(szAdfInfo, "INTL ");
- if (isDIRCACHE(vol->dosType))
- strcat(szAdfInfo, "DIRCACHE ");
- strcat(szAdfInfo, "n");
- sprintf(szTemp, "Free blocks = %ldn", adfCountFreeBlocks(vol));
- strcat(szAdfInfo, szTemp);
- if (vol->readOnly)
- strcat(szAdfInfo, "Read onlyn");
- else
- strcat(szAdfInfo, "Read/Writen");
-
- /* created */
- adfDays2Date(root.coDays, &year, &month, &days);
- sprintf(szTemp, "created %d/%02d/%02d %ld:%02ld:%02ldn",days,month,year,
- root.coMins/60,root.coMins%60,root.coTicks/50);
- strcat(szAdfInfo, szTemp);
- adfDays2Date(root.days, &year, &month, &days);
- sprintf(szTemp, "last access %d/%02d/%02d %ld:%02ld:%02ld, ",days,month,year,
- root.mins/60,root.mins%60,root.ticks/50);
- strcat(szAdfInfo, szTemp);
- adfDays2Date(root.cDays, &year, &month, &days);
- sprintf(szTemp, "%d/%02d/%02d %ld:%02ld:%02ldn",days,month,year,
- root.cMins/60,root.cMins%60,root.cTicks/50);
- strcat(szAdfInfo, szTemp);
- MessageBox(hWnd, szAdfInfo, "Adf Info", MB_OK);
- }