DECLARE INTEGER GetDriveType IN Win32API ; > STRING @ lpRootPathName >DECLARE INTEGER GetLogicalDriveStrings IN WIN32API ; > INTEGER nLength, ; > STRING @ lpBuffer > >LOCAL cBuffer, nLength, nResult, cTest, cCDROM * No need to declare nResult here, since it isn't referenced in the example >cBuffer = SPACE(2000) >nLength = GetLogicalDriveStrings(2000,@cBuffer) >cCDROM = NULL >IF nLength > 0 > IF nLength > 2000 > cBuffer = SPACE(nLength + 1) > nLength = GetLogicalDriveStrings(nLength,@cBuffer) > ENDIF > cBuffer = LEFT(cBuffer, nLength) > DO WHILE LEN(cBuffer) > 0 > nLength = AT(CHR(0), cBuffer) > IF nLength # 0 > cTest = LEFT(cBuffer,nLength-1) > cTest = IIF(LEN(cBuffer) > nLength, SUBST(cBuffer,nLength + 1), '') * Code error caused by insufficient coffee; this should read: cBuffer = IIF(LEN(cBuffer) > nLength, SUBST(cBuffer,nLength + 1), '') > ELSE > cTest = cBuffer > cBuffer = '' > ENDIF > IF GetDriveType(cTest) = 5 > cCDROM = IIF(ISNULL(cCDROM),'',cCDROM +';') + cTest > ENDIF > ENDDO >ENDIF >