IBurndisc.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [Jeff], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[Jeff];
  8. /* 日 期:[3/20/2018];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[Jeff];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __I_BURN_DISC__
  19. #define __I_BURN_DISC__
  20. #pragma once
  21. #include "Nero.h"
  22. typedef struct __DEVINFO__
  23. {
  24. int nIndex; // 设备索引;
  25. TString strDevName; // 设备名称;
  26. TString strDevUId; // 设备的id;
  27. void* pDevInfo; // 设备对象;
  28. __DEVINFO__() :nIndex(-1), pDevInfo(NULL) { }
  29. }DeviceInfo, *pDeviceInfo;
  30. // {96D4FD2E-115A-474d-A5E0-D1400D14083B}
  31. static const GUID IID_IBurndisc =
  32. { 0x96d4fd2e, 0x115a, 0x474d,{ 0xa5, 0xe0, 0xd1, 0x40, 0xd, 0x14, 0x8, 0x3b } };
  33. interface IBurndisc :public IUnknown
  34. {
  35. public:
  36. // 初始化刻录环境;
  37. virtual bool Initialize() = 0;
  38. // 获取可用的设备数量;
  39. virtual int GetAvailableDrives() = 0;
  40. // 获取刻录机设备信息;
  41. virtual void* GetDeivceInfo(int nIndex) = 0;
  42. virtual void* GetDeivceInfo(const TCHAR *pszDevName) = 0;
  43. // 添加文件或文件夹;
  44. virtual void AddFiles2Disc(TString strFatherNode, vector<TString> &vtfiles) = 0;
  45. virtual void AddFolder2Disc(TString strFatherNode, TString strFolder) = 0;
  46. /*
  47. // 获取媒体光盘的信息;
  48. virtual void* GetMediaInfo(int nIndex) = 0;
  49. virtual void* GetMediaInfo(const TCHAR *pszDevName) = 0;
  50. virtual void* GetMediaInfo(void *pDevInfo) = 0;
  51. // 获取设备的刻录速度;
  52. virtual bool GetWriteSpeeds() = 0;
  53. // 获取擦除设备的时长;
  54. virtual bool GetCDRWErasingTime() = 0;
  55. // 弹出或加载CD;
  56. virtual bool EjectLoadCD() = 0;
  57. */
  58. virtual void NeroCallback(
  59. void* pDailog,
  60. IdleCallback pIdleCallback,
  61. UserDialog pUserDialog,
  62. ProgressCallback pProgressCallback,
  63. ProgressCallback pSubTaskProgressCallback,
  64. AbortedCallback pAbortedCallback,
  65. AddLogLine pAddLogLine,
  66. SetPhaseCallback pSetPhaseCallback,
  67. DisableAbortCallback pDisableAbortCallback,
  68. SetMajorPhaseCallback pSetMajorPhaseCallback,
  69. WriteIOCallback pWriteIOCallback,
  70. ReadIOCallback pReadIOCallback,
  71. EOFCallback pEOFCallback,
  72. ErrorCallback pErrorCallback
  73. ) = 0;
  74. virtual void IMAPI2Set(void* pDailog) = 0;
  75. // 设置写速度;
  76. virtual bool SetWriteSpeed(ULONG nIndex) = 0;
  77. // 擦除设备;
  78. virtual void EraseMedia(int nIndex) = 0;
  79. // 写光盘;
  80. virtual bool BurnMedia(int nIndex, TString strArtist, TString strTitle) = 0;
  81. };
  82. #endif