home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Shareware / Programare / magiccd / mcdbc111t.exe / %MAINDIR% / Include / MCDBCls.h
Encoding:
C/C++ Source or Header  |  2004-03-08  |  5.9 KB  |  176 lines

  1. /*******************************************************************************
  2.   Date        : Sep 2002 - Mar 2004
  3.   Author      : Ehsan Khan
  4.   Description : Main Interface Header file
  5.   Copyright   : 2002-04 Binary Magic, All rights reserved.
  6. *******************************************************************************/
  7.  
  8. #pragma once
  9.  
  10. #include <windows.h>
  11.  
  12. struct DirEntry  {char dummy[16];};
  13. struct FileEntry  {char dummy[16];};
  14. struct FILES {char dummy[1217664];};
  15. struct SCSIDEVICE {char dummy[135448];};
  16.  
  17.  
  18. #define ERR_NO_ERROR           0
  19. #define ERR_NOT_PREPARED       1
  20. #define ERR_CANT_OPEN_FILE     2
  21. #define ERR_CANT_CREATE_FILE   3
  22. #define ERR_ABORTED_BY_USER    4
  23.  
  24. #define CS_IDLE                0
  25. #define CS_WRITING             1
  26. #define CS_ERASING             2
  27. #define CS_BACKGROUNDFORMAT    3
  28. #define CS_CLOSINGTRACK        4
  29. #define CS_PREPARING           5
  30. #define CS_ABORTING            6
  31. #define CS_IMPORTINGSESSION    7
  32. #define CS_BURNERROR_ABORTING  8
  33.  
  34. #define DC_READ_CDR            1
  35. #define DC_READ_CDRW           2
  36. #define DC_READ_DVDRAM         3
  37. #define DC_READ_DVDR           4
  38. #define DC_READ_DVDRW          5
  39. #define DC_READ_DVDPLUSR       6
  40. #define DC_READ_DVDPLUSRW      7
  41.  
  42. #define DC_WRITE_CDR           11
  43. #define DC_WRITE_CDRW          12
  44. #define DC_WRITE_DVDRAM        13
  45. #define DC_WRITE_DVDR          14
  46. #define DC_WRITE_DVDRW         15
  47. #define DC_WRITE_DVDPLUSR      16
  48. #define DC_WRITE_DVDPLUSRW     17
  49.  
  50. #define DC_TEST_WRITE          21
  51. #define DC_UNDERRUNPROTECTION  22
  52.  
  53. class CMCDBurner
  54. {
  55.  
  56.    private:
  57.  
  58.    protected:
  59.  
  60.    public:
  61.       FILES      *cdfiles;
  62.       SCSIDEVICE *device;
  63.  
  64.                 CMCDBurner();
  65.       virtual   ~CMCDBurner();
  66.  
  67.       void      ClearAll(void);
  68.  
  69.       char      *GetDeviceName(BYTE Id);
  70.       BOOL      SelectDevice(BYTE Id);
  71.       BOOL      DeviceCan(BYTE cId);
  72.  
  73.       BOOL      LockMedium(void);
  74.       BOOL      UnlockMedium(void);
  75.       BOOL      UnlockDrive(void);
  76.       BOOL      LoadMedium(void);
  77.       BOOL      EjectMedium(void);
  78.       
  79.       BOOL      Erasable(void);
  80.       BOOL      Writable(void);
  81.       BOOL      TestUnitReady(void);
  82.       BOOL      DeviceIsBurner(void);
  83.  
  84.       BYTE      GetDeviceMaxReadSpeed(void);
  85.       BYTE      GetDeviceMaxWriteSpeed(void);
  86.       BYTE      GetMaxWriteSpeed(void);
  87.       BYTE      SessionsOnDisc(void);
  88.  
  89.       WORD      GetComponentState(void);
  90.  
  91.       DirEntry  *CreateDir(char *dest_path, char *dir_name);
  92.       DirEntry  *CreateDirW(wchar_t *dest_path, wchar_t *dir_name);
  93.  
  94.       FileEntry *InsertFile(char *dest_path, char *file_name);
  95.       FileEntry *InsertFileW(wchar_t *dest_path, wchar_t *file_name);
  96.  
  97.       FileEntry *InsertFileWithName(char *DestPath, char *FileName, char *LongNameOnDisc, char *ShortNameOnDisc);
  98.       FileEntry *InsertFileWithNameW(wchar_t *DestPath, wchar_t *FileName, wchar_t *LongNameOnDisc, wchar_t *ShortNameOnDisc);
  99.  
  100.       FileEntry *InsertMemoryFile(char *DestPath, WIN32_FIND_DATAA FindFileData, void (__stdcall *__writedone)(HANDLE FileHandle, unsigned long Position, void *buffer, unsigned long *Size, void *), void *arg);
  101.       FileEntry *InsertMemoryFileW(wchar_t *DestPath, WIN32_FIND_DATAW FindFileData, void (__stdcall *__writedone)(HANDLE FileHandle, unsigned long Position, void *buffer, unsigned long *Size, void *), void *arg);
  102.  
  103.       DirEntry  *InsertDir(char *dest_path, char *file_path, char *file_specs, BOOL Recursive, BOOL SavePath);
  104.       DirEntry  *InsertDirW(wchar_t *dest_path, wchar_t *file_path, wchar_t *file_specs, BOOL Recursive, BOOL SavePath);
  105.  
  106.       BOOL      EraseDisc(BOOL Quick, void ( __stdcall *__start )( int, void *), void *arg);
  107.       DWORD     ImportSession(BYTE SessionNo, char *dest_dir);
  108.       DWORD     ImportSessionW(BYTE SessionNo, wchar_t *dest_dir);
  109.  
  110.       DWORD     Prepare(void);
  111.       DWORD     GetImageSize(void);
  112.       DWORD     GetBlocksWritten(void);
  113.       BOOL      Burn(void (__stdcall *__writedone)(BOOL, void *), void * );
  114.       BOOL      BurnISOImage(char *ISOFileName, void (__stdcall *__writedone)(BOOL, void * ), void *);
  115.       BOOL      BuildISOImage(char *ISOFileName, void (__stdcall *__writedone)(BOOL, void *), void *);
  116.       BYTE      DiscIs(void);
  117.       DWORD     GetFreeBlocksOnDisc(void);
  118.       DWORD     GetTotalBlocksOnDisc(void);
  119.       void      AbortBurn(void);
  120.  
  121.       DWORD     GetCacheSize(void);
  122.       void      SetCacheSize(DWORD CacheSize);
  123.       DWORD     GetCachePosition(void);
  124.  
  125.       BYTE      GetReadSpeed(void);
  126.       void      SetReadSpeed(BYTE ReadSpeed);
  127.  
  128.       BYTE      GetWriteSpeed(void);
  129.       void      SetWriteSpeed(BYTE WriteSpeed);
  130.  
  131.       BOOL      GetTestWrite(void);
  132.       void      SetTestWrite(BOOL TestWrite);
  133.  
  134.       BOOL      GetBurnProof(void);
  135.       void      SetBurnProof(BOOL BurnProof);
  136.  
  137.       BOOL      GetPostGap(void);
  138.       void      SetPostGap(BOOL PostGap);
  139.  
  140.       BOOL      GetPerformOPC(void);
  141.       void      SetPerformOPC(BOOL PerformOPC);
  142.  
  143.       DWORD     GetDeviceBufferSize(void);
  144.       DWORD     GetDeviceBufferPosition(void);
  145.  
  146.       BOOL      GetFinalizeDisc(void);
  147.       void      SetFinalizeDisc(BOOL FinalizeDisc);
  148.  
  149.       char     *GetVolumeID(void);
  150.       void      SetVolumeID(char *VolumeID);
  151.  
  152.       wchar_t   *GetVolumeIDW(void);
  153.       void      SetVolumeIDW(wchar_t *VolumeID);
  154.  
  155.       char     *GetBootImage(void);
  156.       BOOL     SetBootImage(char *BootImage);
  157.  
  158.       BYTE     GetDeviceCount(void);
  159.  
  160.       char     *GetMCDBVersion(void);
  161.  
  162.       DWORD    GetErrorNumber(void);
  163.       char     *GetErrorString(void);
  164.       wchar_t  *GetErrorStringW(void);
  165.  
  166.       BOOL     GetJolietFS(void);
  167.       void     SetJolietFS(BOOL JolietFS);
  168.  
  169.       BOOL     GetReplaceFile(void);
  170.       void     SetReplaceFile(BOOL ReplaceFile);
  171.  
  172.       void     static __stdcall EraseDone(BOOL FAILED, void *ptr);
  173.       void     static __stdcall WriteDone(BOOL FAILED, void *ptr);
  174.  
  175. };
  176.