/************************************************************************/ /* Copyright (C), 2016-2020, [Jeff], 保留所有权利; /* 模 块 名:; /* 描 述:; /* /* 版 本:[V]; /* 作 者:[Jeff]; /* 日 期:[3/20/2018]; /* /* /* 注 意:; /* /* 修改记录:[Jeff]; /* 修改日期:; /* 修改版本:; /* 修改内容:; /************************************************************************/ #ifndef __I_BURN_DISC__ #define __I_BURN_DISC__ #pragma once #include "Nero.h" typedef struct __DEVINFO__ { int nIndex; // 设备索引; TString strDevName; // 设备名称; TString strDevUId; // 设备的id; void* pDevInfo; // 设备对象; __DEVINFO__() :nIndex(-1), pDevInfo(NULL) { } }DeviceInfo, *pDeviceInfo; // {96D4FD2E-115A-474d-A5E0-D1400D14083B} static const GUID IID_IBurndisc = { 0x96d4fd2e, 0x115a, 0x474d,{ 0xa5, 0xe0, 0xd1, 0x40, 0xd, 0x14, 0x8, 0x3b } }; interface IBurndisc :public IUnknown { public: // 初始化刻录环境; virtual bool Initialize() = 0; // 获取可用的设备数量; virtual int GetAvailableDrives() = 0; // 获取刻录机设备信息; virtual void* GetDeivceInfo(int nIndex) = 0; virtual void* GetDeivceInfo(const TCHAR *pszDevName) = 0; // 添加文件或文件夹; virtual void AddFiles2Disc(TString strFatherNode, vector &vtfiles) = 0; virtual void AddFolder2Disc(TString strFatherNode, TString strFolder) = 0; /* // 获取媒体光盘的信息; virtual void* GetMediaInfo(int nIndex) = 0; virtual void* GetMediaInfo(const TCHAR *pszDevName) = 0; virtual void* GetMediaInfo(void *pDevInfo) = 0; // 获取设备的刻录速度; virtual bool GetWriteSpeeds() = 0; // 获取擦除设备的时长; virtual bool GetCDRWErasingTime() = 0; // 弹出或加载CD; virtual bool EjectLoadCD() = 0; */ virtual void NeroCallback( void* pDailog, IdleCallback pIdleCallback, UserDialog pUserDialog, ProgressCallback pProgressCallback, ProgressCallback pSubTaskProgressCallback, AbortedCallback pAbortedCallback, AddLogLine pAddLogLine, SetPhaseCallback pSetPhaseCallback, DisableAbortCallback pDisableAbortCallback, SetMajorPhaseCallback pSetMajorPhaseCallback, WriteIOCallback pWriteIOCallback, ReadIOCallback pReadIOCallback, EOFCallback pEOFCallback, ErrorCallback pErrorCallback ) = 0; virtual void IMAPI2Set(void* pDailog) = 0; // 设置写速度; virtual bool SetWriteSpeed(ULONG nIndex) = 0; // 擦除设备; virtual void EraseMedia(int nIndex) = 0; // 写光盘; virtual bool BurnMedia(int nIndex, TString strArtist, TString strTitle) = 0; }; #endif