home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / cdrom.zip / cdrom.c next >
C/C++ Source or Header  |  1997-06-01  |  1KB  |  40 lines

  1. #define INCL_DOSDEVICES
  2. #define INCL_DOSDEVIOCTL
  3. #include <os2.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. #define EJECT_MEDIA 2
  9. #define LOAD_MEDIA  3
  10.  
  11. void error(void);
  12.  
  13. void error()
  14. {
  15.     fprintf (stderr,"cdrom.exe <open|close> <driveletter>\n");
  16.     fprintf (stderr,"cdrom.exe open e\n");
  17.     exit (0);
  18. }
  19.     
  20. int main(int argc,char* argv[])
  21. {
  22.     ULONG cbParamLenMax=2,cbParamLen=2;
  23.     APIRET ulrc;
  24. #pragma pack (1)
  25.     typedef struct _pRP { UCHAR command; UCHAR unit;} pRP;
  26.     pRP Params;
  27.  
  28.     if (argc!=3) error();
  29.     if (!strcmpi (argv[1],"open")) Params.command=(UCHAR)EJECT_MEDIA;
  30.     else if (!strcmpi (argv[1],"close")) Params.command=(UCHAR)LOAD_MEDIA;
  31.     else error();
  32.     
  33.     Params.unit= (*argv[2]<'a') ? (UCHAR)(*argv[2]-'A') : (UCHAR)(*argv[2]-'a');
  34.  
  35.     ulrc=DosDevIOCtl( (HFILE)-1,IOCTL_DISK,DSK_UNLOCKEJECTMEDIA,
  36.                       (PVOID) &Params,cbParamLenMax,&cbParamLen,
  37.                       NULL,0,NULL);
  38.     return ulrc;
  39. }
  40.