コード例 #1
0
std::string MenuCommandSetCfg::_GetBitmapFolder()
{
	std::string sFolder;
	CString sDir;
	CFileTools::GetExecutableDirectory(sDir);
	sDir.Append(_T("\\images\\"));

	sFolder= sDir;
	return sFolder;
}
コード例 #2
0
ファイル: hgz.cpp プロジェクト: houguozhi/FortuneIt
void DeleteSpaceFromString( CString &s )
{
	CStringArray arr;

	ExtractString(arr, s, _T(" "));
	s.Format(_T(""));
	for (int i = 0; i < arr.GetSize(); i++) {
		s.Append(arr[i]);
	}
}
コード例 #3
0
ファイル: AddonUpdater.cpp プロジェクト: wyx1987/AddonUpdator
CString CAddonUpdaterApp::GetTempPath(BOOL bCreate)
{
	CString strPath;
	::GetTempPath(MAX_PATH, strPath.GetBuffer(MAX_PATH));
	strPath.ReleaseBuffer();
	strPath.Append(_T("AddonUpdater\\"));
	if (bCreate)
		SHCreateDirectoryEx(NULL, strPath, NULL);
	return strPath;
}
コード例 #4
0
ファイル: DLrtfhtml.cpp プロジェクト: DLive/DLRtfToHtml
CString DLrtfhtml::toHtmlTag()
{
	CString tstr;
	CString desthtml;
	int pstart=destcon.Find(_T("\\viewkind"));
	pstart=destcon.Find(_T(" "),pstart)+1;
	
	int pend;
	int proB,proE;//中间属性位置

	CString temp,paragraph;//段落
	CStringArray proArr;
	while((pend=destcon.Find(_T("\\par"),pstart))>=0)//获取每一个段落
	{

		//pend=destcon.Find(_T("\\par"),pstart);
		if(pstart>=pend)
			break;
		tstr=destcon.Mid(pstart,pend-pstart);
		paragraph.Format(_T("<p>"));
		proB=proE=0;
		while((proB=getProPosition(tstr,proB))!=-1)
		{
			if(proB!=proE && proB>0)
			{
				temp=tstr.Mid(proE,proB-proE); //proE 上次结束的位置
				if(!temp.IsEmpty())
				{
					addHtmlTagToStr(temp,m_curPro);
					paragraph+=temp;
				}
				//desthtml.Append(tstr.Mid(proB,proE-proB));

			}
			//添加属性到数组里
			proE=tstr.Find(_T(" "),proB);
			if(proE==-1)
				proE=tstr.GetLength();
			stringSplit(tstr.Mid(proB,proE-proB),proArr,_T("\\"));
			addProToArr(proArr,m_curPro);
			proB=proE+1;  //加1 是为了去除属性后的一个空格
		}
		if((tstr.GetLength()-1)>proE)
		{
			temp=tstr.Mid(proE+1);
			addHtmlTagToStr(temp,m_curPro);
			paragraph+=temp;
		}
		paragraph+=_T("</p>");
		//paragraph.Format(_T("%s%s</p>"),paragraph,temp);
		desthtml.Append(paragraph);
		pstart=pend+4;
	}
	return desthtml;
}
コード例 #5
0
ファイル: ViewTree.cpp プロジェクト: yeehlin/PMP
void CViewTree::OnLButtonDblClk(UINT nFlags, CPoint point)
{
	// TODO: Add your message handler code here and/or call default
			HTREEITEM  temp = this->GetSelectedItem();
		HTREEITEM parentitem = GetParentItem(temp);
	if (!ItemHasChildren(temp)){
		CString str = GetItemText(temp);
		CString parentname = GetItemText(parentitem);
		char path[256] ;GetCurrentDirectory(256,path);
		CString pathstring = path;
		// 根据根目录设置路径
		if (parentname.Left(4) == "SPIN"){
			pathstring.Append("\\spin\\");
		}
		if (parentname.Left(4) == "Elec"){
			pathstring.Append("\\piez\\");
		}
		//::MessageBoxA(NULL,_T(pathstring+str),_T("OK"),MB_OK);
		//POSITION pos = AfxGetApp()->m_pDocManager->GetFirstDocTemplatePosition();
		
		//CDocTemplate * temp = AfxGetApp()->m_pDocManager->GetNextDocTemplate(pos);
		// 根据后缀名决定使用哪一个模版打开
		if (str.Right(3)==_T("bmp")){
			((CPMPFileViewerApp *)AfxGetApp())->m_pBmpDocTemplate->OpenDocumentFile(pathstring+str);
		}else{
			// 其他格式一律用文本编辑器打开
			((CPMPFileViewerApp *)AfxGetApp())->m_pTxtDocTemplate->OpenDocumentFile(pathstring+str);
		}

		
		//pMainFrame->CreateDocumentWindow("Name",pMainFrame);
		//POSITION pos;
		//pos = pCurrent->GetFirstViewPosition();
		//CPMPFileViewerView * temp = (CPMPFileViewerView * )pCurrent->GetNextView(pos);

		// 希望通过发送消息告知DOC有一份文档需要打开,并告知文档的名称
		//temp->SendMessage(WM_USERMESSAGE,0,0);

	}

	CTreeCtrl::OnLButtonDblClk(nFlags, point);
}
コード例 #6
0
ファイル: UInt128.cpp プロジェクト: LjApps/eMule-VeryCD
CString CUInt128::ToHexString() const
{
	CString pstr;
	CString sElement;
	for (int iIndex=0; iIndex<4; iIndex++)
	{
		sElement.Format(_T("%08X"), m_uData[iIndex]);
		pstr.Append(sElement);
	}
	return pstr;
}
コード例 #7
0
void CSaveDlg::OnTimer(UINT_PTR nIDEvent)
{
	static UINT sizeUnits[] = { IDS_SIZE_UNIT_K, IDS_SIZE_UNIT_M, IDS_SIZE_UNIT_G };
	static UINT speedUnits[] = { IDS_SPEED_UNIT_K, IDS_SPEED_UNIT_M, IDS_SPEED_UNIT_G };

	if (nIDEvent == m_nIDTimerEvent && pGB && pMS) {
		CString str;
		REFERENCE_TIME pos = 0, dur = 0;
		pMS->GetCurrentPosition(&pos);
		pMS->GetDuration(&dur);
		REFERENCE_TIME time = 0;
		CComQIPtr<IMediaSeeking>(pGB)->GetCurrentPosition(&time);
		REFERENCE_TIME speed = time > 0 ? pos*10000000/time : 0;

		double dPos = pos / 1024.;
		unsigned int unitPos = AdaptUnit(dPos, _countof(sizeUnits));
		double dDur = dur / 1024.;
		unsigned int unitDur = AdaptUnit(dDur, _countof(sizeUnits));
		double dSpeed = speed / 1024.;
		unsigned int unitSpeed = AdaptUnit(dSpeed, _countof(speedUnits));

		str.Format(_T("%.2lf %s / %.2lf %s , %.2lf %s"),
				   dPos, ResStr(sizeUnits[unitPos]), dDur, ResStr(sizeUnits[unitDur]),
				   dSpeed, ResStr(speedUnits[unitSpeed]));

		if (speed > 0) {
			str.Append(_T(","));
			REFERENCE_TIME sec = (dur-pos) / speed;

			DVD_HMSF_TIMECODE tcDur = {
				(BYTE)(sec / 3600),
				(BYTE)(sec / 60 % 60),
				(BYTE)(sec % 60),
				0
			};

			if (tcDur.bHours > 0) {
				str.AppendFormat(_T(" %0.2dh"), tcDur.bHours);
			}
			if (tcDur.bMinutes > 0) {
				str.AppendFormat(_T(" %0.2dm"), tcDur.bMinutes);
			}
			if (tcDur.bSeconds > 0) {
				str.AppendFormat(_T(" %0.2ds"), tcDur.bSeconds);
			}
		}

		m_report.SetWindowText(str);

		m_progress.SetPos(dur > 0 ? (int)(100*pos/dur) : 0);
	}

	CCmdUIDialog::OnTimer(nIDEvent);
}
コード例 #8
0
CString IOrderModule::DebugCrashInfo (void)

//	DebugCrashInfo
//
//	Output debug info

	{
	int i;

	CString sResult;

	sResult.Append(CONSTLIT("IOrderModule\r\n"));

	for (i = 0; i < m_iObjCount; i++)
		sResult.Append(strPatternSubst(CONSTLIT("m_Objs[%d]: %s\r\n"), i, CSpaceObject::DebugDescribe(m_Objs[i])));

	sResult.Append(OnDebugCrashInfo());

	return sResult;
	}
コード例 #9
0
ファイル: hgz.cpp プロジェクト: houguozhi/FortuneIt
int hgzDeleteSepFromString(CString &s, const CString &regexSep)
{
    CStringArray arr;

    int x = hgzExtractSubStrings1(arr, s, regexSep);
    s.Format(_T(""));
    for (int i = 0; i < arr.GetSize(); i++) {
        s.Append(arr[i]);
    }
    return x;
}
コード例 #10
0
ファイル: CADHelper.cpp プロジェクト: hunanhd/cbm
static BOOL CopyCUIXandMNR( LPCTSTR cuixPath, LPCTSTR mnrPath )
{
    CString cadPath = GetCADPathByWinAPI( _T( "RoamableRootFolder" ), CURRENT_USER );
    cadPath.Append( _T( "Support" ) );
    //CString CADcuixPath = cadPath + _T("\\acad.CUIX");
    CString CADcuixPath = cadPath + _T( "\\acad.CUIX" );
    CString CADmnrPath = cadPath + _T( "\\acad.mnr" );

    //获取当前程序(.exe)所在的路径
    CString CurrentPath = GetWorkDir();

    CString JLcuixPath = CurrentPath;
    //JLcuixPath.Append("\\Datas\\JL\\acad.CUIX");
    JLcuixPath.Append( cuixPath );
    CString JLmnrPath = CurrentPath + mnrPath;

    if( !CopyFile( JLcuixPath, CADcuixPath, false ) ) return FALSE;
    //if(!CopyFile(JLmnrPath,CADmnrPath,false)) return FALSE;
    return TRUE;
}
コード例 #11
0
ファイル: MainDlg.cpp プロジェクト: 6520874/pcmanager
HRESULT CMainDlg::GetKSoftDirectory(CString &strDir)
{
	HRESULT hr = SUCCEEDED(CAppPath::Instance().GetLeidianDataPath(strDir));
	if ( hr )
	{
		strDir = strDir.Left(strDir.ReverseFind(_T('\\')) + 1);
		strDir.Append(_T("ksoft"));
	}

	return hr;
}
コード例 #12
0
// overloaded method: double (with extra parameter for amount of decimal places)
CString createStringNumberWithDigitGrouping(const double &_number, const unsigned int &_numberOfDecimalPlaces) {
	CString stringNumber;
	// create format string (for decimal places)
	CString stringFormat; stringFormat.Format("%d", _numberOfDecimalPlaces);
	stringFormat.Insert(0, "%.");
	stringFormat.Append("f");
	// convert number to string
	stringNumber.Format(stringFormat, _number);
	// add digit grouping and return result
	return createStringNumberWithDigitGrouping(stringNumber);
}
コード例 #13
0
ファイル: szcmdlineex.cpp プロジェクト: 6520874/pcmanager
CString CSZCommandLineEx::FormatCommandUsage(int nParamNameWidth, int nValueNameWidth)
{
    CString strCommandUsage;

    int nMaxParamNameLen = 0;
    int nMaxValueNameLen = 0;
    GetMaxLengthOfParamNameAndValue(&nMaxParamNameLen, &nMaxValueNameLen);

    if (-1 == nParamNameWidth)
        nParamNameWidth = nMaxParamNameLen;

    if (-1 == nValueNameWidth)
        nValueNameWidth = nMaxValueNameLen;


    nParamNameWidth = max(1,  nParamNameWidth);
    nParamNameWidth = min(20, nParamNameWidth);

    nValueNameWidth = max(1,  nValueNameWidth);
    nValueNameWidth = min(20, nValueNameWidth);



    POSITION pos = m_usageMap.GetHeadPosition();
    while (pos)
    {
        CParamUsageMap::CPair* pPair = m_usageMap.GetNext(pos);
        if (!pPair)
            continue;

        CString strParamPresentation = FormatParamUsage(
            pPair->m_key,
            pPair->m_value,
            nParamNameWidth,
            nValueNameWidth);
        strCommandUsage.Append(strParamPresentation);
        strCommandUsage.Append(_T("\n"));
    }

    return strCommandUsage;
}
コード例 #14
0
ファイル: PPgGeneral.cpp プロジェクト: techpub/archive-code
void CPPgGeneral::OnLangChange()
{
//MODIFIED by VC-fengwen on 2007/10/29 <begin> : 到verycd下语言包
//#define MIRRORS_URL	_T("http://langmirror%i.emule-project.org/lang/%i%i%i%i/")
#define MIRRORS_URL	_T("http://www.emule.org.cn/language/%06d/%s")
//MODIFIED by VC-fengwen on 2007/10/29 <end> : 到verycd下语言包

	WORD byNewLang = (WORD)m_language.GetItemData(m_language.GetCurSel());
	if (thePrefs.GetLanguageID() != byNewLang){
		if	(!thePrefs.IsLanguageSupported(byNewLang, false)){
			if (AfxMessageBox(GetResString(IDS_ASKDOWNLOADLANGCAP) + _T("\r\n\r\n") + GetResString(IDS_ASKDOWNLOADLANG), MB_ICONQUESTION | MB_YESNO) == IDYES){
				// download file
				// create url, use random mirror for load balancing

				//MODIFIED by VC-fengwen on 2007/10/29 <begin> : 到verycd下语言包
				//UINT nRand = (rand()/(RAND_MAX/3))+1;
				//CString strUrl;
				//strUrl.Format(MIRRORS_URL, nRand, CGlobalVariable::m_nVersionMjr, CGlobalVariable::m_nVersionMin, CGlobalVariable::m_nVersionUpd, CGlobalVariable::m_nVersionBld);
				//strUrl += thePrefs.GetLangDLLNameByID(byNewLang);
				
				CString strUrl;
				strUrl.Format(MIRRORS_URL, CGlobalVariable::m_nVCVersionBld, thePrefs.GetLangDLLNameByID(byNewLang));
				//MODIFIED by VC-fengwen on 2007/10/29 <end> : 到verycd下语言包

				// safeto
				CString strFilename = thePrefs.GetMuleDirectory(EMULE_ADDLANGDIR, true);

				strFilename.Append(thePrefs.GetLangDLLNameByID(byNewLang));
				// start
				CHttpDownloadDlg dlgDownload;
				dlgDownload.m_strTitle = GetResString(IDS_DOWNLOAD_LANGFILE);
				dlgDownload.m_sURLToDownload = strUrl;
				dlgDownload.m_sFileToDownloadInto = strFilename;
				if (dlgDownload.DoModal() == IDOK && thePrefs.IsLanguageSupported(byNewLang, true))
				{
					// everything ok, new language downloaded and working
					OnSettingsChange();
					return;
				}
				CString strErr;
				strErr.Format(GetResString(IDS_ERR_FAILEDDOWNLOADLANG), strUrl);
				LogError(LOG_STATUSBAR, _T("%s"), strErr);
				AfxMessageBox(strErr, MB_ICONERROR | MB_OK);
			}
			// undo change selection
			for(int i = 0; i < m_language.GetCount(); i++)
				if(m_language.GetItemData(i) == thePrefs.GetLanguageID())
					m_language.SetCurSel(i);
		}
		else
			OnSettingsChange();
	}
}
コード例 #15
0
ファイル: DConsoleDlg.cpp プロジェクト: eSDK/esdk_elte
CString CDConsoleDlg::GetGroupUserMemberTypeString(const CString& strMemberType)
{
	int iMeberType = StrToInt(strMemberType);
	CString strResult;

	switch (iMeberType) // user 类型
	{
	case 0:
		{
			strResult.Append(_T("[Group in dynamic reorganization member]"));
		}
		break;
	case 1:
		{
			strResult.Append(_T("[Normal user member]"));
		}
		break;
	}

	return strResult;
}
コード例 #16
0
ファイル: CommonUtil.cpp プロジェクト: Emilio66/SerialIO_MFC
void Char2CString(char * inputbuffer,CString &content){
	//预转换,得到所需空间的大小
	int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), NULL, 0);
	//分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间
	wchar_t* wszString = new wchar_t[wcsLen + 1];
	//转换
	::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), wszString, wcsLen);
	//最后加上'\0'
	wszString[wcsLen] = '\0';
	//附加到CString对象上
	content.Append(wszString);
}
コード例 #17
0
// 从中心取得普通用户级别ID并组合成SQL字串
CString CCardopenConsumeView::GetCommonClassIdAsString(void)
{
	CString strClassId;
	strClassId.Append(_T("("));

	for (INT i = 0; i < CNetBarConfig::GetInstance()->m_UserClassArray.GetCount(); i++)
	{
		if (!CNetBarConfig::GetInstance()->m_UserClassArray.GetAt(i).GetIsMember())
		{
			strClassId.AppendFormat(_T("%d, "), CNetBarConfig::GetInstance()->m_UserClassArray.GetAt(i).GetClassID());
		}
	}

	strClassId = strClassId.Left(strClassId.ReverseFind(','));

	strClassId.Append(_T(")"));

	strClassId.Trim();

	return strClassId;
}
コード例 #18
0
ファイル: DConsoleDlg.cpp プロジェクト: eSDK/esdk_elte
CString CDConsoleDlg::GetGroupUserMemberTypeString(const CString& strMemberType)
{
	int iMeberType = StrToInt(strMemberType);
	CString strResult;

	switch (iMeberType) // 用户类型
	{
	case 0:
		{
			strResult.Append(_T("[动态重组中的组成员]"));
		}
		break;
	case 1:
		{
			strResult.Append(_T("[普通用户成员]"));
		}
		break;
	}

	return strResult;
}
コード例 #19
0
ファイル: CreatReport.cpp プロジェクト: wyrover/GDES
static void WriteMineName(CString& mineName)
{
	if(mineName.IsEmpty())
	{
		mineName = ISNULL;
	}
	if(-1 == mineName.Find(_T("矿")))
	{
		mineName.Append(_T("矿"));
	}
	MyWord->FindWord(_T("{{Mine_Name}}"),mineName);
}
コード例 #20
0
/**
 * @brief	북마크 일괄적용을 위해 북마크 리스트의 북마크 들을 스트링으로 변환한다.
 * @param	[in] spineIndex	: spine 파일의 index
 * @param	[out] param		: 엔진 extension 에 일괄 적용을 요청하기 위한 데이터
 */
void IN3Setting::GetInitBookmarkParam(int spineIndex, CString &param)
{
	param = _T("");
	//
	if(spineIndex < 0){
		return;
	}	
	
	std::pair<std::multimap<int, IN3Bookmark *>::iterator, std::multimap<int, IN3Bookmark *>::iterator> iter_pair;
	iter_pair = bookmarks.equal_range(spineIndex);
	std::multimap<int, IN3Bookmark *>::iterator iter;
	for( iter = iter_pair.first; iter != iter_pair.second; iter ++)
	{
		if(iter != iter_pair.first)
		{
			param.Append(_T(", "));
		}
		IN3Bookmark *pBookmark = iter->second;
		param.Append(pBookmark->GetJSONString());
	}
}
コード例 #21
0
ファイル: Common.cpp プロジェクト: dulton/brpj
CString CCommon::GetSystemFolder()
{
	CString sysPath;
	UINT size = GetSystemDirectory(NULL,0);
	CHAR * path = new CHAR[size];
	if(GetSystemDirectory(path,size) != 0)
	{
		sysPath.Append(path);
	}
	delete[] path;
	return sysPath;
}
コード例 #22
0
ファイル: CShieldClass.cpp プロジェクト: Ttech/Transcendence
CString CShieldClass::GetReference (CItemCtx &Ctx, int iVariant, DWORD dwFlags)

//	GetReference
//
//	Returns a string that describes the basic attributes
//	of this shield
//
//	Example:
//
//		20 hp (average regen); 100MW

	{
	int i;

	CString sReference;
	CString sRegeneration;
	const CItemEnhancement &Mods = Ctx.GetMods();

	//	Compute the strength string

	int iMin, iMax;
	CalcMinMaxHP(Ctx, m_iMaxCharges, 0, 0, &iMin, &iMax);

	//	Compute the regeneration

	if (m_iRegenHP > 0)
		{
		int iRate = (int)((10.0 * g_TicksPerSecond * m_iRegenHP / m_iRegenRate) + 0.5);
		if (iRate == 0)
			sRegeneration = CONSTLIT("<0.1 hp/sec");
		else if ((iRate % 10) == 0)
			sRegeneration = strPatternSubst(CONSTLIT("%d hp/sec"), iRate / 10);
		else
			sRegeneration = strPatternSubst(CONSTLIT("%d.%d hp/sec"), iRate / 10, iRate % 10);
		}
	else
		sRegeneration = CONSTLIT("none");

	sReference = strPatternSubst("%s — regen @ %s", 
			GetReferencePower(Ctx),
			sRegeneration);

	//	Reflection

	for (i = 0; i < damageCount; i++)
		{
		if (m_Reflective.InSet((DamageTypes)i)
				|| (Mods.IsReflective() && Mods.GetDamageType() == i))
			sReference.Append(strPatternSubst(CONSTLIT(" — %s-reflecting"), GetDamageShortName((DamageTypes)i)));
		}

	return sReference;
	}
コード例 #23
0
ファイル: CdllInjectDoc.cpp プロジェクト: rheech/dll-injector
void CdllInjectDoc::EjectSelected(CListCtrl* lv, LPTSTR szDllName)
{
	POSITION pos = lv->GetFirstSelectedItemPosition();
	
	int index = 0;
	TCHAR pid[21];
	TCHAR cPid[21] = {0};
	DWORD dwPid;

	while((index = lv->GetNextSelectedItem(pos)) != -1)
	{
		memcpy_s(pid, 21, cPid, 21);

		lv->GetItemText(index, 1, pid, 20);
		dwPid = _ttoi(pid);

		TCHAR exeFile[MAX_PATH];
		lv->GetItemText(index, 0, exeFile, MAX_PATH);

		TCHAR line[260];
		_stprintf_s(line, 260, _T("Ejecting %s(%s)... "), exeFile, pid);

		writeLog(CString(line));

		if (EjectDll(dwPid, szDllName) == TRUE)
		{
			CString temp;
			temp.Append(exeFile);
			temp += _T("|");
			temp.Append(pid);
			temp += _T("|");

			pidInfo.Replace(temp, _T(""));

			writeLog(CString("SUCCEED.\r\n"));
		}
		else
			writeLog(CString("FAILED.\r\n"));
	}
}
コード例 #24
0
ファイル: GenethonDoc.cpp プロジェクト: karlnicholas/GeneThon
CString CGenethonDoc::handlePyError() {
    CString retVal = CString();

    PyObject* excType, *excValue, *excTraceback;
    PyErr_Fetch(&excType, &excValue, &excTraceback);
    PyErr_NormalizeException(&excType, &excValue, &excTraceback);

    CString callBacks = CString();
    CString work = CString();
    PyTracebackObject* ptraceback = (PyTracebackObject*)excTraceback;
    if (ptraceback != NULL) {
        work.Format("File: %s\nLine no: %d\n", PyUnicode_AsUTF8(PyObject_Str(((PyTracebackObject*)ptraceback)->tb_frame->f_code->co_filename)), ((PyTracebackObject*)ptraceback)->tb_lineno);
        callBacks.Append(work.GetString());
        // Advance to the last frame (python puts the most-recent call at the end)
        while (ptraceback->tb_next != NULL) {
            ptraceback = ptraceback->tb_next;
            work.Format("File: %s\nLine no: %d\n", PyUnicode_AsUTF8(PyObject_Str(((PyTracebackObject*)ptraceback)->tb_frame->f_code->co_filename)), ((PyTracebackObject*)ptraceback)->tb_lineno);
            callBacks.Append(work.GetString());
        }
        // At this point I have access to the line number via traceback->tb_lineno,
        // but where do I get the file name from?
        int line = ptraceback->tb_lineno;
    }
    retVal.Format("Error type: %s\n%s\nError: %s",
                  PyUnicode_AsUTF8(PyObject_Str(excType)),
                  callBacks.GetString(),
                  PyUnicode_AsUTF8(PyObject_Str(excValue))
                 );
    // Now you have two options, restoring the exception or disposing it.
    PyErr_Restore(excType, excValue, excTraceback);

    //---->

    Py_XDECREF(excType);
    Py_XDECREF(excValue);
    Py_XDECREF(excTraceback);

    return retVal;

}
コード例 #25
0
ファイル: RtfOle.cpp プロジェクト: alexandervnuchkov/core
CString RtfOle::RenderToOOX(RenderParameter oRenderParameter)
{
	if( false == IsValid() )
		return _T("");

	CString sResult;
	if( RENDER_TO_OOX_PARAM_OLE_ONLY == oRenderParameter.nType )
	{
		sResult.Append( RenderToOOXOnlyOle(oRenderParameter) );
	}
	else
	{
		sResult.Append( _T("<w:r>") );
		sResult.AppendFormat( _T("<w:object w:dxaOrig=\"%d\" w:dyaOrig=\"%d\">"), m_nWidth, m_nHeight );
		
		RenderParameter oNewRenderParameter = oRenderParameter;
		oNewRenderParameter.nType = RENDER_TO_OOX_PARAM_SHAPE_WSHAPE2;
		m_oResultPic->m_bIsOle = true;
		sResult.Append( m_oResultPic->RenderToOOX(oNewRenderParameter) );

		oNewRenderParameter.nValue = m_oResultPic->m_nID;
		sResult.Append( RenderToOOXOnlyOle(oNewRenderParameter) );

		sResult.Append( _T("</w:object>") );
		sResult.Append( _T("</w:r>") );
	}
	return sResult;
}
コード例 #26
0
ファイル: RtfOle.cpp プロジェクト: alexandervnuchkov/core
CString RtfOle::RenderToOOXOnlyOle(RenderParameter oRenderParameter)
{
	CString sResult;

	OOXWriter* poOOXWriter			= static_cast<OOXWriter*>(oRenderParameter.poWriter);
	OOXRelsWriter* poRelsWriter		= static_cast<OOXRelsWriter*>(oRenderParameter.poRels);
	RtfDocument* poDocument			= static_cast<RtfDocument*>(oRenderParameter.poDocument);

	sResult.Append( _T("<o:OLEObject") );
	switch ( m_eOleType )
	{
		case ot_link: sResult.Append( _T(" Type=\"Link\"") );break;
		default: sResult.Append( _T(" Type=\"Embed\"") );break;
	}
    sResult.AppendFormat( _T(" ProgID=\"%ls\""), m_sOleClass.GetBuffer() );
    sResult.AppendFormat( _T(" ShapeID=\"_x0000_s%d\""), poDocument->GetShapeId( oRenderParameter.nValue ) );
	sResult.Append( _T(" DrawAspect=\"Content\"") );
    sResult.AppendFormat( _T(" ObjectID=\"%ls\""), poDocument->m_oIdGenerator.Generate_OleId().GetBuffer() );

	CString sExtension = _T("bin");
	CString sMime = _T("application/vnd.openxmlformats-officedocument.oleObject");
	
	CString sFilenameRels;
    sFilenameRels.AppendFormat( _T("oleObject%d.%ls"), poDocument->m_oIdGenerator.Generate_OleIndex(), sExtension.GetBuffer());
	
	CString sFilenameFull = poOOXWriter->m_sTargetFolder + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR + _T("embeddings");
	
	FileSystem::Directory::CreateDirectory( sFilenameFull );
	
	sFilenameFull += FILE_SEPARATOR_STR + sFilenameRels;
	sFilenameRels = _T("embeddings/") + sFilenameRels;

	Utils::CopyDirOrFile( m_sOleFilename, sFilenameFull );

	poOOXWriter->m_oContentTypes.AddExtension( sMime, sExtension);
    CString srId = poRelsWriter->AddRelationship( _T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject"), sFilenameRels);
    sResult.AppendFormat( _T(" r:id=\"%ls\""), srId.GetBuffer() );
	sResult.Append( _T("/>") );
	return sResult;
}
コード例 #27
0
ファイル: LogArchiver.cpp プロジェクト: nightstyles/focp
void CLogArchiver::DoArchive(bool bDispErr)
{
	uint32 nOldArchId = m_nArchId;
	++m_nArchId;
	if(m_nArchId > m_nArchNo)
		m_nArchId = 1;
	char sLogDir[FOCP_MAX_PATH];
	CFormatString oCmd;
	CString::StringCopy(sLogDir, m_oLogDir.GetStr());
	CDiskFileSystem::GetInstance()->GetOsPathName(sLogDir);
#ifdef WINDOWS
	oCmd.Print("tar -czf %s\\%s.%03d.log.tar.gz %s\\%s.*.log 1>1.txt 2>2.txt", m_oArchDir.GetStr(), m_oLogName.GetStr(), m_nArchId, sLogDir, m_oLogName.GetStr());
#else
	oCmd.Print("tar -czf %s/%s.%03d.log.tar.gz %s/%s.*.log 1>1.txt 2>2.txt", m_oArchDir.GetStr(), m_oLogName.GetStr(), m_nArchId, sLogDir, m_oLogName.GetStr());
#endif
	int32 nRet = System(oCmd.GetStr());
	char sErrFile[FOCP_MAX_PATH];
	CString::StringCopy(sErrFile, "disk://");
	CDiskFileSystem::GetInstance()->GetFullPath("2.txt", sErrFile+7);
	CFile oFile(sErrFile, "r");
	bool bHaveError = false;
	CString oError;
	while(true)
	{
		int32 nLen = oFile.Read(sErrFile, FOCP_MAX_PATH);
		if(nLen <= 0)
			break;
		bHaveError = true;
		oError.Append(sErrFile, nLen);
	}
	oFile.Redirect(NULL);
	if(bHaveError)
	{
		m_nArchId = nOldArchId;
		if(bDispErr)
			FocpError(("%s", oError.GetStr()));
	}
	else if(nRet)
	{
		m_nArchId = nOldArchId;
		if(bDispErr)
			FocpError(("system('%s') failure", oCmd.GetStr()));
	}
	else
	{
		oCmd.Clear();
		oCmd.Print("rm -rf %s\\%s.*.log 1>1.txt 2>2.txt", sLogDir, m_oLogName.GetStr());
		System(oCmd.GetStr());
	}
	System("rm -rf 1.txt");
	System("rm -rf 2.txt");
}
コード例 #28
0
void CActionCtrl::OnEditCopy()
{
		// TODO: Add your command handler code here

		UINT cnt = this->GetSelectedCount();
	

		if(cnt > 0)
		{
				CString src;
				const int ncol = this->GetHeaderCtrl()->GetItemCount();
				
				POSITION pos = GetFirstSelectedItemPosition();
				
				while (pos)
				{
						int idx = GetNextSelectedItem(pos);
						
						for(int i = 0; i < ncol; ++i)
						{
								src.Append(GetItemText(idx, i));
								src.Append(TEXT("\t"));
						}
						src.Append(TEXT("\r\n"));
				}
				
				if (OpenClipboard())
				{
						EmptyClipboard();                        
						HGLOBAL hClip =GlobalAlloc(GMEM_MOVEABLE,(src.GetLength() + 1) * sizeof(TCHAR));  
						TCHAR *buf = (TCHAR*)GlobalLock(hClip); 
						lstrcpy(buf, src.GetString());
						GlobalUnlock(hClip);     
						SetClipboardData(CF_UNICODETEXT,hClip); 
						CloseClipboard();            
				}

		}
}
コード例 #29
0
ファイル: fileopt.cpp プロジェクト: dreamsxin/PcManager
BOOL CFileOpt::ConvetPath(CString& strSourcPath)
{	
	if (strSourcPath == _T(""))
	{
		return TRUE;
	}

	try
	{
		if(strSourcPath.GetAt(0) == '%')
		{	
			int iEnd = strSourcPath.Find('%',1);
			CString strEnvPath = strSourcPath.Mid(1,iEnd-1);
			CString strPath = strSourcPath.Mid(iEnd+2);

			wchar_t* pEnv;
			pEnv = _wgetenv(strEnvPath.GetBuffer());
			if (pEnv!=NULL)
			{
				strEnvPath = pEnv;
				int iLen = strEnvPath.GetLength();
				if (strEnvPath.GetAt(iLen-1)!='\\')
				{
					strEnvPath.Append(_T("\\"));
				}

				strEnvPath.Append(strPath.GetBuffer());
				strSourcPath = strEnvPath;
			}

		}
	}
	catch(...)
	{
		return FALSE;
	}

	return TRUE;
}
コード例 #30
0
ファイル: history.cpp プロジェクト: prakash028/newscaster
// roll a log file from , "blah.log" to "blah_YYMMDD.log"
BOOL RollLogFile( char *origFilename )
{
	CString newfilename = origFilename;
	CTime nowtime = CTime::GetCurrentTime();

	CString txt;

	txt.Format( "-%2d%2d%d", nowtime.GetYear(),nowtime.GetMonth(),nowtime.GetDay() );
	newfilename.Replace( ".log", txt.GetBuffer(0) );
	newfilename.Append( ".log" );

	return MoveFile( origFilename, newfilename.GetBuffer(0) );
}