Пытаюсь узнать состояние привода CD:
var
Parm: TMCI_STATUS_PARMS;
mcierr: DWORD;
FFlags: Longint;
ErrString: array[0..255] of char;
begin
FFlags:=MCI_STATUS_ITEM or MCI_WAIT;
Parm.dwItem:=MCI_STATUS_MODE;
mcierr:=mciSendCommand(FDeviceID,MCI_STATUS,FFlags,Longint(@Parm));
if mcierr<>0 then begin
MciGetErrorString(mcierr,@ErrString,SizeOf(ErrString));
raise EMCIDeviceError.Create(StrPas(ErrString));
end else
Result:=TModes(Parm.dwReturn-524);
end;
Возвращает всё правильно, кроме случая, когда привод закрыт без диска:
возвращается mpOpen, как если бы он был открыт...
Сабж