Q> Как проверить, есть ли
дискета в дисководе?
A>
BOOL IsDiskInDrive ( LPTSTR lpszDrive )
{
UINT errmode;
TCHAR szVolName[256];
DWORD dwMaxComSize;
DWORD dwFlags;
TCHAR szFS[256];
BOOL bRes;
errmode = SetErrorMode ( SEM_FAILCRITICALERRORS );
//если не сделать SetErrorMode - выскочит
стандартное окошко "Drive Not Ready"
bRes = GetVolumeInformation ( lpszDrive,
szVolName,
sizeof(szVolName),
NULL, &dwMaxComSize,
&dwFlags,
szFS, sizeof(szFS) );
SetErrorMode ( errmode );
return bRes;
}
Эта технология также работает с CDROM
и другими сменными устройствами.