NeroItem.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /************************************************************************/
  2. /* Copyright (C), 2016-2020, [Jeff], 保留所有权利;
  3. /* 模 块 名:;
  4. /* 描 述:;
  5. /*
  6. /* 版 本:[V];
  7. /* 作 者:[Jeff];
  8. /* 日 期:[3/21/2018];
  9. /*
  10. /*
  11. /* 注 意:;
  12. /*
  13. /* 修改记录:[Jeff];
  14. /* 修改日期:;
  15. /* 修改版本:;
  16. /* 修改内容:;
  17. /************************************************************************/
  18. #ifndef __DISC_ITEM_20151222__
  19. #define __DISC_ITEM_20151222__
  20. #pragma once
  21. #include "NeroAPIGlue.h"
  22. // 注意:
  23. // 同一个文件的NERO_ISO_ITEM,可以在Nero光盘中不同目录中使用;
  24. // 在相同的Sibling链中,没有相同的NERO_ISO_IMTE::longFileName/NERO_ISO_ITEM::fileName 或 NERO_ISO_ITEM::longSourceFilePath/NERO_ISO_ITEM::SoucreFilePath;
  25. // NERO_ISO_ITEM形成的树,只能从上往下查找,不能从下往上查找。
  26. // 如果一个文件目录 或 文件,已存在了,再次刻录该目录或文件时,会自动跳过。
  27. // 注意,Nero SDK 使用的是多字节字符集开发;
  28. class CDiscItem
  29. {
  30. public:
  31. CDiscItem(void);
  32. ~CDiscItem(void);
  33. // 光盘树根元素;
  34. NERO_ISO_ITEM* m_pVirtualItem;
  35. public:
  36. NERO_ISO_ITEM* InitVituralItem();
  37. NERO_ISO_ITEM* GetHeadItem();
  38. NERO_ISO_ITEM* GetVirtualItem();
  39. NERO_ISO_ITEM* AddSibling2RootItem( IN NERO_ISO_ITEM* pRootItem );
  40. NERO_ISO_ITEM* AddSibling2RootItem( IN TString strRootName, IN BOOL bIsDirectory );
  41. NERO_ISO_ITEM* AddItem2SiblingItem( IN NERO_ISO_ITEM* pSiblingItem, IN NERO_ISO_ITEM* pNewItem);
  42. NERO_ISO_ITEM* AddItem2Path( IN TString strDiscPath, IN NERO_ISO_ITEM* pNewItem);
  43. NERO_ISO_ITEM* AddSiblingPath(IN TString strDiscPath, IN TString strNewPath);
  44. NERO_ISO_ITEM* AddPath(IN TString strNewPath);
  45. NERO_ISO_ITEM* AddPath2Path(IN TString strDiscPath, IN TString strNewPath);
  46. NERO_ISO_ITEM* AddPath2Path(IN NERO_ISO_ITEM* pPathItem, IN TString strNewPath );
  47. NERO_ISO_ITEM* AddFile2Path(IN TString strDiscPath, IN TString strFileName);
  48. NERO_ISO_ITEM* AddFile2Path(IN NERO_ISO_ITEM* pPathItem, IN TString strFileName);
  49. NERO_ISO_ITEM* AddFile2SiblingItem(IN NERO_ISO_ITEM* pSiblingItem, IN TString strFileName);
  50. // 按顺序查找;
  51. NERO_ISO_ITEM* FindPathItem( IN TString strDiscPath );
  52. NERO_ISO_ITEM* FindPathInSibling( IN NERO_ISO_ITEM* pSiblingHeadItem, IN TString& strDiscPath );
  53. NERO_ISO_ITEM* FindPathItemEx( IN TString strDiscPath );
  54. NERO_ISO_ITEM* FindPathInSiblingEx( IN NERO_ISO_ITEM* pSiblingHeadItem, IN TString& strDiscPath );
  55. NERO_ISO_ITEM* FindLastItemInSibling( IN NERO_ISO_ITEM* pSiblingHeadItem );
  56. void DeleteIsoItemTree(NERO_ISO_ITEM *pItem);
  57. void RemoveAllItem();
  58. };
  59. #endif