コード例 #1
0
void CHisReport::ExitReport()
{
    if ( IsEnabled() ) SaveReport();

    if ( m_pXML ) delete m_pXML;
    m_pXML = NULL;

    m_bEnabled = FALSE;
}
コード例 #2
0
ファイル: CreatReport.cpp プロジェクト: wyrover/GDES
void OpenDoc(const CString& docPath,BOOL isVisiable)
{
	MyWord->CreateApp();
	if(isVisiable) MyWord->ShowApp();
	else MyWord->HideApp();
	if(!MyWord->Open(/*strPath*/docPath))
	{
		MyWord->CloseApp();
		return;
	}
	SaveReport(docPath);
}
コード例 #3
0
ファイル: CreatReport.cpp プロジェクト: wyrover/GDES
static bool wordOprate(const CString& savePath, const AcDbObjectId& objId)
{
	AfxGetMainWnd()->BeginWaitCursor();//设置等待光标
	if(CheckDocIsUsing(savePath)) return false;

	if(!MyWord->CreateDocuments())
	{
		return false;
	}
	if(!MyWord->CreateDocument())
	{
		return false;
	}

	WriteDrillDataToReport(objId);
	bool ret;
	if(!SaveReport(savePath)) ret = false;
	else ret = true;

	MyWord->CloseDocument();
	MyWord->CloseApp();
	AfxGetMainWnd()->EndWaitCursor();//结束等待光标
	return ret;
}
コード例 #4
0
ファイル: CreatReport.cpp プロジェクト: wyrover/GDES
static bool wordOprate(CString templPath,CString savePath,CString& mineName)
{
	AfxGetMainWnd()->BeginWaitCursor();//设置等待光标
	if(CheckDocIsUsing(templPath)) return false;
	if(CheckDocIsUsing(savePath)) return false;

	MyWord->CreateApp();
	//MyWord->ShowApp();
	if(!MyWord->Open(/*strPath*/templPath))
	{
		//MyWord->CloseApp();
		return false;
	}

	//基础条件达标评价
	if(-1 != templPath.Find(_T("tplBase"))) 
	{
		if(!SetBaseReportVal(mineName)) 
		{
			MyWord->CloseDocument();
			MyWord->CloseApp();
			AfxGetMainWnd()->EndWaitCursor();//结束等待光标
			return false;
		}
	}

	else if ( -1 != templPath.Find(_T("tplAddF")) )
	{
		AcStringArray bookMks,datas;
		if(!GetAddFuncDatas::getAllDatas(bookMks,datas)) 
		{
			MyWord->CloseDocument();
			MyWord->CloseApp();
			AfxGetMainWnd()->EndWaitCursor();//结束等待光标
			return false;
		}
		for( int i = 0; i < bookMks.length(); i++ )
		{
			MyWord->Goto(bookMks[i].kACharPtr());
			MyWord->WriteText(datas[i].kACharPtr());
			//acutPrintf(_T("第%d个数据书签:%s\t数据:%s\n"),i+1,bookMks[i].kACharPtr(),datas[i].kACharPtr());
		}
	}

	//抽采达标评价报告
	else
	{
		SetFieldsValue();
	}
	bool ret;
	MyWord->UpdateField(_T("CONT_UPDATE"));
	if(!SaveReport(savePath)) ret = false;
	else ret = true;

	//关闭之前把书签关闭
	MyWord->ShowBookmarks(FALSE);
	MyWord->CloseDocument();
	MyWord->CloseApp();
	AfxGetMainWnd()->EndWaitCursor();//结束等待光标
	return ret;
}
コード例 #5
0
ファイル: Autotest.cpp プロジェクト: fangbaolei/EC700IR
HRESULT CAutotest::Autotest()
{
	HRESULT hr = S_OK;
	DWORD dwTableSize = sizeof(m_sResultTable) / sizeof(m_sResultTable[0]);

	SW_TRACE_NORMAL("Info: Autotest begins...\n");
	
	SaveAutotestProgress();

	
	for (INT i = m_iRunCount; i < m_iTestCount; i++)
	{	
		m_dwTestProgress = 1;
		
		SW_TRACE_NORMAL("Info: TestLoop #%d\n", i+1);	
		
		if (GetAutotestStopFlag())
		{
			SW_TRACE_DEBUG("Info: Autotest is forced to stop!\n");
			break;
		}
		
		if( i < 10)
		{
			CTester::Product_SwitcherTest(3);
			CTester::Product_DcCtl_TEST(5);
		}
		
		AutotestRunOnce(m_sResultTable, dwTableSize);
		m_iRunCount++;

		if (GetAutotestStopFlag())
		{
			SW_TRACE_DEBUG("Info: Autotest is forced to stop!\n");
			break;
		}
		CHAR* pszReport = NULL;
		BOOL bOK = TRUE;
		
		GenerateReport((DWORD)i+1, m_sResultTable, dwTableSize, &pszReport, &bOK);		
		
		if (GetAutotestStopFlag())
		{
			SW_TRACE_DEBUG("Info: Autotest is forced to stop!\n");
			SAFE_MEM_FREE(pszReport);
			break;
		}
		
		SaveReport(pszReport);

		if (GetAutotestStopFlag())
		{
			SW_TRACE_DEBUG("Info: Autotest is forced to stop!\n");
			SAFE_MEM_FREE(pszReport);
			break;
		}

		SendReport(pszReport, bOK);

		if (GetAutotestStopFlag())
		{
			SW_TRACE_DEBUG("Info: Autotest is forced to stop!\n");
			SAFE_MEM_FREE(pszReport);
			break;
		}

		SAFE_MEM_FREE(pszReport);

	}

	if (0 == m_iNGCount)
	{
		m_dwTestProgress = 0;//test OK
	}
	else
	{
		m_dwTestProgress = 2;//test failed
	}

	SetAutotestStopFlag(TRUE);
	SW_TRACE_NORMAL("Info: Autotest %s!\n", m_iRunCount >= m_iTestCount-1 ? "Done" : "Canceled");	
	
	return S_OK;
}
コード例 #6
0
void CCrashHandler::GenerateErrorReport(PEXCEPTION_POINTERS pExInfo)
{
   CExceptionReport  rpt(pExInfo);
   CMainDlg          mainDlg;
   CZLib             zlib;
   CString           sTempFileName = CUtility::getTempFileName();
   unsigned int      i;

   // let client add application specific files to report
   if (m_lpfnCallback && !m_lpfnCallback(this))
      return;

	//Определеяем, что делать с отчетом
	DumpType dumpType = Referenced;//По умолчанию сбрасываем только ту память, на которую идут ссылки в стеке
	ActionType actionType = GUI;//По умолчанию - выводим пользователю диалог
	CString action, storeFolder, dump;

	ATL::CRegKey rk;
	//Читаем из ключа с именем приложения
	int32_t lRet = rk.Open(HKEY_LOCAL_MACHINE,
	   TEXT("SOFTWARE\\Cognitive Technologies Ltd.\\CuneiForm\\PumaCrashRpt\\")
	   + CUtility::getAppName(), KEY_QUERY_VALUE);
	if(lRet != ERROR_SUCCESS)
	{
		//Читаем из дефолтного ключа
		lRet = rk.Open(HKEY_LOCAL_MACHINE,
			TEXT("SOFTWARE\\Cognitive Technologies Ltd.\\CuneiForm\\PumaCrashRpt\\Default"),
			KEY_QUERY_VALUE);
	}
	if(lRet == ERROR_SUCCESS)
	{
		//Читаем дейтсвие
		uint32_t dwBufLen = 1000;
		rk.QueryValue(action.GetBuffer(1000), "Action", &dwBufLen);
	    action.ReleaseBuffer(MAX(dwBufLen - 1, 0));

		//Читаем папку для автосохранения
		dwBufLen = 1000;
		rk.QueryValue(storeFolder.GetBuffer(1000), "StoreFolder", &dwBufLen);
	    storeFolder.ReleaseBuffer(MAX(dwBufLen - 1, 0));

		//Читаем тип дампа
		dwBufLen = 1000;
		rk.QueryValue(dump.GetBuffer(1000), "DumpType", &dwBufLen);
	    dump.ReleaseBuffer(MAX(dwBufLen - 1, 0));

		rk.Close();

		if (!action.IsEmpty())
		{
			if (action.CompareNoCase("GUI") == 0)
				actionType = GUI;
			else if (action.CompareNoCase("QuietStore") == 0)
				actionType = QuietStore;
			else if (action.CompareNoCase("NoAction") == 0)
				actionType = NoAction;

		}
		if (!dump.IsEmpty())
		{
			if (dump.CompareNoCase("Mini") == 0)
				dumpType = Mini;
			else if (dump.CompareNoCase("Referenced") == 0)
				dumpType = Referenced;
			else if (dump.CompareNoCase("Full") == 0)
				dumpType = Full;

		}
		if (storeFolder.CompareNoCase("Temp folder") == 0)
			storeFolder = getenv("TEMP");
	}

	if (actionType == NoAction)
		return;

   // add crash files to report
   m_files[rpt.getCrashFile(dumpType)] = CString((const char *)IDS_CRASH_DUMP);
   m_files[rpt.getCrashLog()] = CString((const char *)IDS_CRASH_LOG);

   // add symbol files to report
   for (i = 0; i < (uint)rpt.getNumSymbolFiles(); i++)
      m_files[(const char *)rpt.getSymbolFile(i)] =
      CString((const char *)IDS_SYMBOL_FILE);

   // zip the report
   if (!zlib.Open(sTempFileName))
      return;

   // add report files to zip
   TStrStrMap::iterator cur = m_files.begin();
   for (i = 0; i < m_files.size(); i++, cur++)
      zlib.AddFile((*cur).first);

   zlib.Close();

   if (actionType == GUI)
   {
	   // display main dialog
	   mainDlg.m_pUDFiles = &m_files;

	   //Сохраняем флаги по исключениям с плавающей точкой - кто-то их злобно сбрасывает при показе диалога
	   uint oldFpState = _controlfp(0, 0);
	   if (IDOK == mainDlg.DoModal())
	   {
	      if (m_sTo.IsEmpty() ||
		      !MailReport(rpt, sTempFileName, mainDlg.m_sEmail, mainDlg.m_sDescription))
		  {
			 SaveReport(rpt, sTempFileName);
		  }
	   }
	   //Восстанавливаем флаги
	   _controlfp(oldFpState, _MCW_DN | _MCW_EM | _MCW_IC | _MCW_RC | _MCW_PC);
   }
   else if (actionType == QuietStore)
   {
		// Just in-case it already exist
		::DeleteFile(storeFolder + '\\' + CUtility::formatSaveFileName() + ".zip");
		::CopyFile(sTempFileName, storeFolder + '\\' + CUtility::formatSaveFileName() + ".zip", TRUE);
   }
   DeleteFile(sTempFileName);
}
コード例 #7
0
ファイル: NDiscovery.cpp プロジェクト: karonte691/JXCode
//taken and adapted from http://tangentsoft.net/wskfaq/examples/dllping.html
void Find_Net(char *subnet, bool save)
{
	FILE *fp;
	HINSTANCE hIcmp = LoadLibrary((LPCWSTR)"ICMP.DLL");
	if (hIcmp == 0)
	{
		printf("Error: icmp.dll missing...\n");
		return;
	}
	typedef HANDLE (WINAPI* pfnHV)(VOID);
	typedef BOOL (WINAPI* pfnBH)(HANDLE);
	typedef DWORD (WINAPI* pfnDHDPWPipPDD)(HANDLE, DWORD, LPVOID, WORD,PIP_OPTION_INFORMATION, LPVOID, DWORD, DWORD);
	pfnHV pIcmpCreateFile;
	pfnBH pIcmpCloseHandle;
	pfnDHDPWPipPDD pIcmpSendEcho;
	pIcmpCreateFile = (pfnHV)GetProcAddress(hIcmp, "IcmpCreateFile");
	pIcmpCloseHandle = (pfnBH)GetProcAddress(hIcmp, "IcmpCloseHandle");
    pIcmpSendEcho = (pfnDHDPWPipPDD)GetProcAddress(hIcmp,"IcmpSendEcho");
	if ((pIcmpCreateFile == 0) || (pIcmpCloseHandle == 0) || (pIcmpSendEcho == 0)) {
			 printf("unable to create the functions...");
			 return;		
	}
	for(int i=1; i <= 255; i++)
	{
		char *ip;
		ip = (char *)sprintf("%s.%c", subnet, (char)i);
		if(save == true) *fp = MakeReport(ip);
		struct hostent* phe;
		if((phe = gethostbyname(ip)) == 0)
		{
			printf("error to convert ip address..");
			return;
		}
		
		HANDLE hIP = pIcmpCreateFile();
		if (hIP == INVALID_HANDLE_VALUE)
		{
			printf("Unable to open ping service");
			return;
		}
		if(save == true) FileHeader(fp, ip);
		char acPingBuffer[64];
		memset(acPingBuffer, '\xAA', sizeof(acPingBuffer));
		PIP_ECHO_REPLY pIpe = (PIP_ECHO_REPLY)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT,sizeof(IP_ECHO_REPLY) + sizeof(acPingBuffer));
		if (pIpe == 0) {
			printf("Failed to allocate global ping packet buffer.");
			return;
		}
		pIpe->Data = acPingBuffer;
		pIpe->DataSize = sizeof(acPingBuffer); 
		DWORD dwStatus = pIcmpSendEcho(hIP, *((DWORD*)phe->h_addr_list[0]), acPingBuffer, sizeof(acPingBuffer), NULL, pIpe, sizeof(IP_ECHO_REPLY) + sizeof(acPingBuffer), 5000);
		if (dwStatus != 0) {
			//found
			printf("[FOUND] %s", ip);
			if(save == true) WriteOnReport(fp, ip);
		}
		else
			continue;
		GlobalFree(pIpe);
	}
	if(save == true) SaveReport(fp);
	FreeLibrary(hIcmp);
}