123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef __DISC_ITEM_20151222__
- #define __DISC_ITEM_20151222__
- #pragma once
- // 注意:
- // 同一个文件的NERO_ISO_ITEM,可以在Nero光盘中不同目录中使用;
- // 在相同的Sibling链中,没有相同的NERO_ISO_IMTE::longFileName/NERO_ISO_ITEM::fileName 或 NERO_ISO_ITEM::longSourceFilePath/NERO_ISO_ITEM::SoucreFilePath;
- // NERO_ISO_ITEM形成的树,只能从上往下查找,不能从下往上查找。
- // 如果一个文件目录 或 文件,已存在了,再次刻录该目录或文件时,会自动跳过。
- // 注意,Nero SDK 使用的是多字节字符集开发;
- class CDiscItem
- {
- public:
- CDiscItem(void);
- ~CDiscItem(void);
- // 光盘树根元素;
- NERO_ISO_ITEM* m_pRootItem;
- // 光盘写入流;
- NERO_WRITE_CD* m_pnwcWriteCD;
- // 光盘进度条;
- NERO_PROGRESS m_npProgress;
- // 光盘信息;
- NERO_SCSI_DEVICE_INFOS* m_pndiDeviceInfos;
- // 设备句柄;
- NERO_DEVICEHANDLE m_ndhDeviceHandle;
- // 光盘标题;
- CString m_strDiscTitle;
- // Nero的刻录设置;
- NERO_SETTINGS m_nsSettings;
- CDialog* m_pDailog;
- char m_pcLanguageFile [128];
- char m_pcSoftware [128];
- char m_pcVendor [128];
- char m_pcNeroFilesPath [128];
- char m_pcDriveName [128];
- char m_pcImage [256];
- bool m_bAborted;
- private:
- NERO_ISO_ITEM* InitRootItem();
- public:
- void NeroAPIInit();
- NERO_ISO_ITEM* GetDiscItem();
- NERO_ISO_ITEM* AddSiblingRootItem( IN NERO_ISO_ITEM* pRootItem );
- NERO_ISO_ITEM* AddSiblingRootItem( IN CString strRootName, IN BOOL bIsDirectory );
- NERO_ISO_ITEM* AddItem2SiblingItem( IN NERO_ISO_ITEM* pSiblingItem, IN NERO_ISO_ITEM* pNewItem);
- NERO_ISO_ITEM* AddItem2Path( IN CString strDiscPath, IN NERO_ISO_ITEM* pNewItem);
- NERO_ISO_ITEM* AddSiblingPath(IN CString strDiscPath, IN CString strNewPath);
- NERO_ISO_ITEM* AddPath(IN CString strNewPath);
- NERO_ISO_ITEM* AddPath2Path(IN CString strDiscPath, IN CString strNewPath);
- NERO_ISO_ITEM* AddPath2PathItem(IN NERO_ISO_ITEM* pPathItem, IN CString strNewPath );
- NERO_ISO_ITEM* AddFile2Path(IN CString strDiscPath, IN CString strFileName);
- NERO_ISO_ITEM* AddFile2SiblingItem(IN NERO_ISO_ITEM* pSiblingItem, IN CString strFileName);
- // 按顺序查找;
- NERO_ISO_ITEM* FindPathItem( IN CString strDiscPath );
- NERO_ISO_ITEM* FindPathInSibling( IN NERO_ISO_ITEM* pSiblingHeadItem, IN CString& strDiscPath );
- NERO_ISO_ITEM* FindPathItemEx( IN CString strDiscPath );
- NERO_ISO_ITEM* FindPathInSiblingEx( IN NERO_ISO_ITEM* pSiblingHeadItem, IN CString& strDiscPath );
- NERO_ISO_ITEM* FindSiblingNextToLast( IN NERO_ISO_ITEM* pSiblingHeadItem );
- void RemoveRootItem();
- void RemoveAllItem(IN NERO_ISO_ITEM* pRootItem);
- };
- #endif
|