KmgReader.cpp
上传用户:hell82222
上传日期:2013-12-19
资源大小:1872k
文件大小:3k
源码类别:

CAD

开发平台:

Visual C++

  1. // KmgReader.cpp: implementation of the CKmgReader class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "FileSwitch.h"
  6. #include "KmgReader.h"
  7. #include "Database.h"
  8. #include "Reader.h"
  9. #ifdef _DEBUG
  10. #undef THIS_FILE
  11. static char THIS_FILE[]=__FILE__;
  12. #define new DEBUG_NEW
  13. #endif
  14. //////////////////////////////////////////////////////////////////////
  15. // Construction/Destruction
  16. //////////////////////////////////////////////////////////////////////
  17. extern CStdioFile g_CensorialFile; //监察转换进度的文件
  18. extern int g_mode;
  19. CKmgReader::CKmgReader(CProgressInfo* pProgress,CCommandInfo* pCommand,CDwgConverter* pConverter)
  20. {
  21. m_pProgress = pProgress; 
  22. m_pCommand = pCommand;  
  23. m_pConverter = pConverter;
  24. }
  25. CKmgReader::~CKmgReader()
  26. {
  27. }
  28. BOOL CKmgReader::BeginConvert() //转换开始的初始化.
  29. {
  30. _WRITE(str="ttKMG图形文件转换为DWG图形文件转换信息记录n");
  31. _WRITE(str="成功启动转换服务,等待接受任务中...");
  32. return TRUE;
  33. }
  34. BOOL CKmgReader::Parse() //分析文件的主函数.
  35. {
  36. _WRITE(str="n接收到新任务...");
  37. _WRITE(str.Format("KMG文件路径:%s",m_pCommand->m_strSourceName));
  38. _WRITE(str.Format("DWG文件路径:%s",m_pCommand->m_strAimName));
  39. m_pProgress->SetProgressInfoAbsolute(0.01,"初始化...");
  40. TCHAR szFileName[MAX_PATH];
  41. ::GetModuleFileName(GetModuleHandle("fileswitch.dll"),szFileName,MAX_PATH);
  42. (*_tcsrchr(szFileName,'\'))=''; 
  43. _tcscat(szFileName,_T("\support\init.dat")); 
  44. //short adInitAd2 _((const char * initfilepath, short *initerror));
  45. if(!adInitAd2(szFileName,&sReturnValue))
  46. {
  47. _WRITE(str="初始化失败,无法启动转换服务");
  48. _ERROR;
  49. return FALSE;
  50. }
  51. m_pProgress->SetProgressInfoAbsolute(0.02,"初始化...");
  52. if(!m_pConverter->BeginConverter())
  53. {
  54. _WRITE(str="转换服务启动失败");
  55. //void adCloseAd2();
  56. adCloseAd2();
  57. return FALSE;
  58. }
  59. CKmDataManager* pData=new CKmDataManager;
  60. ::SetActiveDataManager(pData);
  61. pData->Init();
  62. ::SetActiveDataManager(pData);
  63. BOOL bAllowReadOld=TRUE;
  64. if(!pData->LoadFile(m_pCommand->m_strSourceName,bAllowReadOld))
  65. {
  66. _WRITE(str="无法读取源文件");
  67. if(!m_pConverter->EndConverter())
  68. {
  69. _WRITE(str="转换服务关闭失败");
  70. delete pData;
  71. //void adCloseAd2();
  72. adCloseAd2();
  73. return FALSE;
  74. }
  75. delete pData;
  76. //void adCloseAd2();
  77. adCloseAd2();
  78. return FALSE;
  79. }
  80. BOOL bProcessed=TRUE;
  81. if(!(bProcessed=processfile(pData)))
  82. {
  83. _WRITE(str="转换失败");
  84. if(!m_pConverter->EndConverter())
  85. {
  86. _WRITE(str="转换服务关闭失败");
  87. delete pData;
  88. //void adCloseAd2();
  89. adCloseAd2();
  90. return FALSE;
  91. }
  92. delete pData;
  93. //void adCloseAd2();
  94. adCloseAd2();
  95. return FALSE;
  96. }
  97. if(!m_pConverter->EndConverter())
  98. {
  99. _WRITE(str="转换服务关闭失败");
  100. delete pData;
  101. //void adCloseAd2();
  102. adCloseAd2();
  103. return FALSE;
  104. }
  105. delete pData;
  106. m_aColor.RemoveAll();
  107. m_altype.ReInit();
  108. m_alayer.ReInit();
  109. m_ablock.ReInit();
  110. m_ashape.ReInit();
  111. m_adimstyle.ReInit();
  112. m_awordstyle.ReInit();
  113. //void adCloseAd2();
  114. adCloseAd2();
  115. return TRUE;
  116. }
  117. BOOL CKmgReader::EndConvert() //结束转换.
  118. {
  119. _WRITE(str="转换服务被关闭");
  120. return TRUE;
  121. }