home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / cdclose.zip / cdclose.c
C/C++ Source or Header  |  1996-01-27  |  1KB  |  47 lines

  1. #define INCL_BASE
  2. #define INCL_DOSMICS
  3. #include <stdio.h>
  4. #include <os2.h>
  5.  
  6. #define IOCTL_CDROMDISK 0x80
  7.  
  8. APIRET CDCloseTray (HFILE hCDROM,ULONG akce)
  9. {
  10. #define CDROMDISK_CLOSETRAY 0x45                     /* Bug in toolkit */
  11.  UCHAR Signature[] = "CD01";
  12.  ULONG PLength = 0;
  13.  ULONG DLength = 0;
  14.    struct {
  15.       UCHAR First;
  16.       UCHAR Last;
  17.       ULONG Leadout;
  18.    } DAudioDisk;
  19.  
  20.    PLength = 4;
  21.    DLength = sizeof(DAudioDisk);
  22.    memset(&DAudioDisk,0,DLength);
  23.  
  24.  return 
  25. DosDevIOCtl(hCDROM,IOCTL_CDROMDISK,akce,&Signature,PLength, 
  26. &PLength,&DAudioDisk,DLength,&DLength);
  27.  
  28.  
  29. /* (CDGenericIO (hCDROM, IOCTL_CDROMDISK, CDROMDISK_CLOSETRAY)); */
  30. } /* APIRET CDCloseTray */
  31.  
  32. void main(void)
  33. {
  34.  HFILE h;
  35.  ULONG Action = 0;
  36.  APIRET rc;
  37.  rc=DosOpen("F:",&h,&Action,0,0,OPEN_ACTION_FAIL_IF_NEW|OPEN_ACTION_OPEN_IF_EXISTS
  38.  ,OPEN_FLAGS_FAIL_ON_ERROR|OPEN_FLAGS_DASD|OPEN_SHARE_DENYREADWRITE|OPEN_ACCESS_READONLY,NULL);
  39.  printf("DosOpen rc=%ld\n",rc);
  40.  rc=CDCloseTray(h,0x44);
  41.  printf("Eject rc=%ld\n",rc);  
  42.  
  43.  rc=CDCloseTray(h,CDROMDISK_CLOSETRAY);
  44.  printf("CDClose rc=%ld\n",rc);  
  45.  DosClose(h);
  46. }
  47.