FileInterface.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #ifndef _FILE_INTERFACE_H_
  2. #define _FILE_INTERFACE_H_
  3. #include <list>
  4. #include <string>
  5. #include <windows.h>
  6. #include "include/NeroAPIGlue.h"
  7. using namespace std;
  8. //end flag
  9. typedef enum EXITCODE {
  10. EXITCODE_OK = 0,
  11. EXITCODE_BAD_USAGE,
  12. EXITCODE_INTERNAL_ERROR,
  13. EXITCODE_NEROAPI_DLL_NOT_FOUND,
  14. EXITCODE_NO_SERIAL_NUMBER,
  15. EXITCODE_BAD_SERIAL_NUMBER,
  16. EXITCODE_NO_CD_INSERTED,
  17. EXITCODE_NO_SUPPORT_FOR_CDRW,
  18. EXITCODE_ERROR_ERASING_CDRW,
  19. EXITCODE_ERROR_OBTAINING_AVAILABLE_DRIVES,
  20. EXITCODE_MISSING_DRIVENAME,
  21. EXITCODE_ERROR_OPENNING_DRIVE,
  22. EXITCODE_DRIVE_NOT_FOUND,
  23. EXITCODE_UNKNOWN_CD_FORMAT,
  24. EXITCODE_INVALID_DRIVE,
  25. EXITCODE_BURN_FAILED,
  26. EXITCODE_FUNCTION_NOT_ALLOWED,
  27. EXITCODE_DRIVE_NOT_ALLOWED,
  28. EXITCODE_ERROR_GETTING_CD_INFO,
  29. EXITCODE_TRACK_NOT_FOUND,
  30. EXITCODE_UNKNOWN_FILE_TYPE,
  31. EXITCODE_DAE_FAILED,
  32. EXITCODE_ERROR_OPENNING_FILE,
  33. EXITCODE_OUT_OF_MEMORY,
  34. EXITCODE_ERROR_DETERMINING_LENGTH_OF_FILE,
  35. EXITCODE_EJECT_FAILED,
  36. EXITCODE_BAD_IMPORT_SESSION_NUMBER,
  37. EXITCODE_FAILED_TO_CREATE_ISO_TRACK,
  38. EXITCODE_FILE_NOT_FOUND,
  39. EXITCODE_UNKNOWN,
  40. EXITCODE_USER_ABORTED,
  41. EXITCODE_DEMOVERSION_EXPIRED,
  42. EXITCODE_BAD_MESSAGE_FILE,
  43. EXITCODE_ERROR_DOING_ESTIMATION,
  44. EXITCODE_ERROR_GETTING_VMS_INFO,
  45. EXITCODE_ERROR_OPEN_LOGFILE
  46. };
  47. typedef struct tagCDPARAM
  48. {
  49. char szDriver;//刻录机所在盘符
  50. char szCDType;////刻录机类型,0:CD, 1:DVD
  51. char szBurnMethod;//no use
  52. bool IsEject;
  53. char szTitle[200];
  54. }CDPARAM;
  55. /*
  56. typedef struct tagCDINFO
  57. {
  58. DWORD ncdiFreeCapacityInBlocks;
  59. BOOL ncdiIsWriteable;
  60. char ncdiArtist[65];
  61. char ncdiTitle[65];
  62. DWORD ncdiAvailableEraseModes;
  63. DWORD ncdiUnusedBlocks;
  64. NERO_MEDIA_TYPE ncdiMediaType;
  65. DWORD ncdiMediumFlags;
  66. DWORD ncdiLayer0MaxBlocks;
  67. DWORD ncdiTotalCapacity;
  68. DWORD ncdiReserved[26];
  69. DWORD ncdiNumTracks;
  70. NERO_TRACK_INFO ncdiTrackInfos[1];
  71. } CDINFO;
  72. */
  73. typedef struct tagCNode
  74. {
  75. string szLocalPath;
  76. bool Recursive;
  77. }CNode;
  78. typedef list<CNode*> CFileList;
  79. //----------------------------------------------
  80. class IWriteCD
  81. {
  82. public:
  83. virtual EXITCODE SetCDParam(CDPARAM *cdParam)=0;
  84. virtual NERO_CD_INFO * GetCDParam()=0;//return 0 when failed
  85. virtual EXITCODE BurnData(const CFileList *listRecData)=0;
  86. virtual void StopBurn()=0;
  87. virtual EXITCODE InitNero()=0;
  88. };
  89. #endif