Example #1
0
//
//  機能     : レジストリへ保存
//  
//  機能説明 : 
//  
//  返り値   : BOOL
//  
//  備考     : 
//  
void CSettingPubTab::Save() 
{
	// TODO: この位置にその他の検証用のコードを追加してください
	CString str;

	UpdateData(TRUE);	// DDX更新

	/// BEEP音声ファイルのコピー
	if (!m_strBeepFile.IsEmpty()) {
		/// 現在のBEEP音声ファイルのバックアップ
		CTPsetup tps(theApp.m_strDataFolder);
		CString strFile = tps.RsfBeepFileName();
		CString strTmpFile = tps.RsfTmpFileName(_T("wav"));
		CFileSpec fs(strFile);
		fs.FileCopy(strTmpFile, TRUE);
		/// BEEP音声ファイルのコピー(16KHzフォーマットへ変換)
		AUDIO_FORMAT fmt;
		fmt.nBits = 16;
		fmt.nChannels = 1;
		fmt.nFrequency = 16000;
		CAudio *pAudio = CAudio::Instance();
		if (pAudio->ChgWaveFormat(m_strBeepFile, strFile, fmt, 1)) {
			str = tps.RsfBeepFileName(_T("1"));
			fs.FileCopy(str, TRUE);
			str = tps.RsfBeepFileName(_T("2"));
			fs.FileCopy(str, TRUE);
		} else {
			str.LoadString(IDS_MSGBOX69);
			AfxMessageBox(str, MB_OK | MB_APPLMODAL | MB_ICONINFORMATION);
			//// バックアップファイルを戻す
			fs.SetFullSpec(strTmpFile);
			if (fs.Exist()) {
				fs.FileCopy(strFile, TRUE);
			}
		}
	}

	// レジストリ更新
	//// Startup
	if (m_blStartup) {
		// tapmgr.exeをスタートアップレジストリに登録
		CFileSpec fs(FS_APPDIR);
		fs.SetFileName(_T("tapmgr.exe"));
		m_rgStartup = fs.GetFullSpec();
	} else {
		// スタートアップレジストリを削除
		m_rgStartup.removeValue();
	}
	//// 起動時無効
	m_rgDisable = (m_blDisable) ? 1 : 0;
	//// 待機時間
	str = m_aryWaitAnswer.GetAt(m_idxWaitAnswer);
	m_rgWaitAnswer = (DWORD)_ttoi(str);
 	//// 録音時間
	str = m_aryMaxRecord .GetAt(m_idxMaxRecord);
	DWORD dw = (DWORD)_ttoi(str);
	dw *= 60;	// min -> sec
	m_rgMaxRecord = dw;
 	//// WAV or MP3
	CButton *rd_mp3 = (CButton *)GetDlgItem(IDC_RDO_MP3);
	if (rd_mp3->GetCheck()) {
		m_rgFormatType = 1;
	} else {
		m_rgFormatType = 0;
	}
 	//// MP3コーデック
	if (m_aryCodecName.GetCount() > 0) {
		str = m_aryCodecName.GetAt(m_idxCodecName);
		m_rgCodecName = str;
	}
 	//// MP3フォーマット
	if (m_aryFormatName.GetCount() > 0) {
		str = m_aryFormatName.GetAt(m_idxFormatName);
		m_rgFormatName = str;
	}
/*
	//// ショートカット
	m_rgShortCutTapur = (m_blShortCutTapur) ? 1 : 0;
	m_rgShortCutSkype = (m_blShortCutSkype) ? 1 : 0;
*/
}
Example #2
0
int _tmain(int argc, TCHAR *argv[], TCHAR *envp[])
{
	BOOL bRet = FALSE;
	HDC hDC = NULL;
	TCHAR szText[MAX_PATH] = {0,};

	if (2 > argc)
		return 0;

#if	0
	if (FAILED(CoInitializeEx(0, COINIT_MULTITHREADED)))
		return FALSE;
#endif

	hDC = GetDC(HWND_DESKTOP);
	if (0 == _tcsnicmp(_T("SLEEP"), argv[1], _tcslen(_T("SLEEP"))))
	{
		// +++
		ExtEscape(hDC, DRVESC_SYSTEM_SLEEP, 100, NULL, 0, NULL);
		// ---
		if (TRUE == RegOpenCreateStr(OMNIBOOK_REG_KEY, BMP_SLEEP_REG_STRING, szText, MAX_PATH, FALSE))
		{
			RETAILMSG(1, (_T("SLEEP : RegOpenCreateStr(%s, %s)\r\n"), BMP_SLEEP_REG_STRING, szText));
			bRet = dispShutdown(hDC, szText);
		}
		RETAILMSG(1, (_T("App_Command => SLEEP(%d)\r\n"), bRet));
	}
	else if (0 == _tcsnicmp(_T("SHUTDOWN"), argv[1], _tcslen(_T("SHUTDOWN"))))
	{
		if (FALSE == RegOpenCreateStr(OMNIBOOK_REG_KEY, BMP_SHUTDOWN_REG_STRING, szText, MAX_PATH, FALSE))
		{
			RETAILMSG(1, (_T("RegOpenCreateStr(%s), Default(%s)\r\n"),
				BMP_SHUTDOWN_REG_STRING, BMP_SHUTDOWN_REG_DEFAULT));
			_tcscpy_s(szText, MAX_PATH, BMP_SHUTDOWN_REG_DEFAULT);
		}
		bRet = dispShutdown(hDC, szText);
		if (FALSE == bRet)
			dispShutdown(hDC, BMP_SHUTDOWN_REG_DEFAULT);
		RETAILMSG(1, (_T("App_Command => SHUTDOWN(%d)\r\n"), bRet));
	}
	else if (0 == _tcsnicmp(_T("LOWBATTERY"), argv[1], _tcslen(_T("LOWBATTERY"))))
	{
		// +++
		ExtEscape(hDC, DRVESC_SYSTEM_SLEEP, 100, NULL, 0, NULL);
		// ---
		if (FALSE == RegOpenCreateStr(OMNIBOOK_REG_KEY, BMP_LOWBATTERY_REG_STRING, szText, MAX_PATH, FALSE))
		{
			RETAILMSG(1, (_T("RegOpenCreateStr(%s), Default(%s)\r\n"),
				BMP_LOWBATTERY_REG_STRING, BMP_LOWBATTERY_REG_DEFAULT));
			_tcscpy_s(szText, MAX_PATH, BMP_LOWBATTERY_REG_DEFAULT);
		}
		bRet = dispShutdown(hDC, szText);
		if (FALSE == bRet)
			dispShutdown(hDC, BMP_LOWBATTERY_REG_DEFAULT);
		RETAILMSG(1, (_T("App_Command => LOWBATTERY(%d)\r\n"), bRet));
	}
	else if (0 == _tcsnicmp(_T("BATCHARGING"), argv[1], _tcslen(_T("BATCHARGING"))))
	{
		if (FALSE == RegOpenCreateStr(OMNIBOOK_REG_KEY, BMP_BATCHARGING_REG_STRING, szText, MAX_PATH, FALSE))
		{
			RETAILMSG(1, (_T("RegOpenCreateStr(%s), Default(%s)\r\n"),
				BMP_BATCHARGING_REG_STRING, BMP_BATCHARGING_REG_DEFAULT));
			_tcscpy_s(szText, MAX_PATH, BMP_BATCHARGING_REG_DEFAULT);
		}
		bRet = dispShutdown(hDC, szText);
		if (FALSE == bRet)
			dispShutdown(hDC, BMP_BATCHARGING_REG_DEFAULT);
		RETAILMSG(1, (_T("App_Command => BATCHARGING(%d)\r\n"), bRet));
	}
	else if (0 == _tcsnicmp(_T("BATCOMPLETE"), argv[1], _tcslen(_T("BATCOMPLETE"))))
	{
		if (FALSE == RegOpenCreateStr(OMNIBOOK_REG_KEY, BMP_BATCOMPLETE_REG_STRING, szText, MAX_PATH, FALSE))
		{
			RETAILMSG(1, (_T("RegOpenCreateStr(%s), Default(%s)\r\n"),
				BMP_BATCOMPLETE_REG_STRING, BMP_BATCOMPLETE_REG_DEFAULT));
			_tcscpy_s(szText, MAX_PATH, BMP_BATCOMPLETE_REG_DEFAULT);
		}
		bRet = dispShutdown(hDC, szText);
		if (FALSE == bRet)
			dispShutdown(hDC, BMP_BATCOMPLETE_REG_DEFAULT);
		RETAILMSG(1, (_T("App_Command => BATCOMPLETE(%d)\r\n"), bRet));
	}


	else if (0 == _tcsnicmp(_T("DIRTYRECT"), argv[1], _tcslen(_T("DIRTYRECT"))))
	{
		BOOL bSet = -1;
		if (3 <= argc)
		{
			bSet = _ttoi(argv[2]);
			ExtEscape(hDC, DRVESC_SET_DIRTYRECT, bSet, NULL, 0, NULL);
		}
		RETAILMSG(1, (_T("App_Command => DIRTYRECT(%d)\r\n"), bSet));
	}
	else if (0 == _tcsnicmp(_T("DSPUPDSTATE"), argv[1], _tcslen(_T("DSPUPDSTATE"))))
	{
		DSPUPDSTATE dus = DSPUPD_LAST;
		if (3 <= argc)
		{
			dus = (DSPUPDSTATE)_ttoi(argv[2]);
			ExtEscape(hDC, DRVESC_SET_DSPUPDSTATE, dus, NULL, 0, NULL);
		}
		RETAILMSG(1, (_T("App_Command => DSPUPDSTATE(%d)\r\n"), dus));
	}
	else if (0 == _tcsnicmp(_T("BORDER"), argv[1], _tcslen(_T("BORDER"))))
	{
		BOOL bSet = -1;
		if (3 <= argc)
		{
			bSet = _ttoi(argv[2]);
			ExtEscape(hDC, DRVESC_SET_BORDER, bSet, NULL, 0, NULL);
		}
		RETAILMSG(1, (_T("App_Command => BORDER(%d)\r\n"), bSet));
	}
	else if (0 == _tcsnicmp(_T("WAVEFORMMODE"), argv[1], _tcslen(_T("WAVEFORMMODE"))))
	{
		WAVEFORMMODE wfm = WAVEFORM_LAST;
		if (3 <= argc)
		{
			wfm = (WAVEFORMMODE)_ttoi(argv[2]);
			ExtEscape(hDC, DRVESC_SET_WAVEFORMMODE, wfm, NULL, 0, NULL);
		}
		RETAILMSG(1, (_T("App_Command => WAVEFORMMODE(%d)\r\n"), wfm));
	}

	// ...
	ReleaseDC(HWND_DESKTOP, hDC);

#if	0
	CoUninitialize();
#endif
	return 0;
}
Example #3
0
CTime CSms::ConvertStringToTime(const CString &strTime)
{
	int year=2016, month=5, day=1, hour=0, minite=0, second = 0;

	int firstp = 0, lastp = 0;

	// year
	lastp = strTime.Find(_T('-'));

	if (lastp < 0)
	{
		year = _ttoi(strTime);
		return CTime(year, month, day, hour, minite, second);
	}

	year = _ttoi(strTime.Mid(firstp, lastp - firstp));

	firstp = lastp + 1;

	// month
	lastp = strTime.Find(_T('-'), firstp);

	if (lastp < 0)
	{
		month = _ttoi(strTime);
		return CTime(year, month, day, hour, minite, second);
	}

	month = _ttoi(strTime.Mid(firstp, lastp - firstp));

	firstp = lastp + 1;

	// day
	lastp = strTime.Find(_T(' '), firstp);

	if (lastp < 0)
	{
		day = _ttoi(strTime);
		return CTime(year, month, day, hour, minite, second);
	}

	day = _ttoi(strTime.Mid(firstp, lastp - firstp));

	firstp = lastp + 1;

	// hour
	lastp = strTime.Find(_T(':'), firstp);

	if (lastp < 0)
	{
		hour = _ttoi(strTime);
		return CTime(year, month, day, hour, minite, second);
	}

	hour = _ttoi(strTime.Mid(firstp, lastp - firstp));

	firstp = lastp + 1;

	// minite
	lastp = strTime.Find(_T(':'), firstp);

	if (lastp < 0)
	{
		minite = _ttoi(strTime);
		return CTime(year, month, day, hour, minite, second);
	}

	minite = _ttoi(strTime.Mid(firstp, lastp - firstp));

	firstp = lastp + 1;

	// second 
	second = _ttoi(strTime.Mid(firstp));

	return CTime(year, month, day, hour, minite, second);
}
void CLanguageManager::LoadFromFile(ELanguageType language)
{
#ifdef EDITOR_MODE
    BEYONDENGINE_UNUSED_PARAM(language);
    m_languageMap.clear();
    TString filePath = CResourceManager::GetInstance()->GetResourcePath(eRT_Resource);
    filePath.append(_T("/LanguageConfig.xml"));
    if (CFilePathTool::GetInstance()->Exists(filePath.c_str()))
    {
        rapidxml::file<> fdoc(filePath.c_str());
        rapidxml::xml_document<> doc;
        try
        {
            doc.parse<rapidxml::parse_default>(fdoc.data());
            doc.m_pszFilePath = filePath.c_str();
        }
        catch (rapidxml::parse_error &e)
        {
            TCHAR info[MAX_PATH];
            _stprintf(info, _T("Load file :%s Failed! error :%s"), filePath.c_str(), e.what());
            MessageBox(BEYONDENGINE_HWND, info, _T("Load File Failed"), MB_OK | MB_ICONERROR);
        }
        uint32_t uCounter = 0;
        rapidxml::xml_node<>* pRootNode = doc.first_node("Language");
        rapidxml::xml_node<>* pLanguageNode = pRootNode->first_node("LanguageNode");
        while (pLanguageNode != nullptr)
        {
            uCounter++;
            TString strEnum = pLanguageNode->first_attribute("Enum")->value();
            BEATS_ASSERT(!strEnum.empty());
            if (pLanguageNode->first_attribute("Tag"))
            {
                TString strTag = pLanguageNode->first_attribute("Tag")->value();
                m_languageTagMap[strEnum] = strTag;
            }
            BEATS_ASSERT(m_languageMap.find(strEnum) == m_languageMap.end());
            std::map<ELanguageType, TString>& curMap = m_languageMap[strEnum];
            rapidxml::xml_node<>* pLanguageValueNode = pLanguageNode->first_node();
            while (pLanguageValueNode != nullptr)
            {
                TString languageTypeStr = pLanguageValueNode->name();
                ELanguageType languageType = eLT_Count;
                for (int j = 0; j < eLT_Count; ++j)
                {
                    if (pszLanguageTypeString[j] == languageTypeStr)
                    {
                        languageType = (ELanguageType)j;
                        break;
                    }
                }
                BEATS_ASSERT(curMap.find(languageType) == curMap.end());
                const TCHAR* pszValue = pLanguageValueNode->first_attribute("Value")->value();
                BEATS_ASSERT(_tcslen(pszValue) > 0);
                curMap[languageType] = pszValue;
                pLanguageValueNode = pLanguageValueNode->next_sibling();
            }
            pLanguageNode = pLanguageNode->next_sibling();
        }
        BEATS_ASSERT((uint32_t)_ttoi(pRootNode->first_attribute("Count")->value()) == uCounter);
    }
#else
    TString filePath = CResourceManager::GetInstance()->GetResourcePath(eRT_Language);
    filePath.append(_T("/")).append(pszLanguageTypeString[language]).append(_T(".bin"));
    bool bFindLanguageFile = CFilePathTool::GetInstance()->Exists(filePath.c_str());
    BEATS_ASSERT(bFindLanguageFile, "Can't Find language file %s", filePath.c_str());
    if (bFindLanguageFile)
    {
        int count = 0;
        CSerializer tmp(filePath.c_str());
        tmp >> count;
        m_texts.clear();
        for (int i = 0; i < count; ++i)
        {
            ELanguageTextType textId = (ELanguageTextType)i;
            std::string strValue;
            tmp >> strValue;
            m_texts.emplace(textId, strValue);
        }
        tmp >> count;
        for (int i = 0; i < count; ++i)
        {
            uint32_t key;
            tmp >> key;
            BEATS_ASSERT(m_texts.find((ELanguageTextType)key) == m_texts.end());
            tmp >> m_texts[(ELanguageTextType)key];
        }
    }
#endif
}
void Unreal3DExport::WriteScript()
{
    // Write script file
    {

        fScript = _tfopen(ScriptFileName,_T("wb"));
        if( !fScript )
        {
            ProgressMsg.printf(GetString(IDS_ERR_FSCRIPT),ScriptFileName);
            throw MAXException(ProgressMsg.data());
        }

        TSTR buf;


        // Write class def     
        _ftprintf( fScript, _T("class %s extends Object;\n\n"), FileName ); 

        // write import
        _ftprintf( fScript, _T("#exec MESH IMPORT MESH=%s ANIVFILE=%s_a.3D DATAFILE=%s_d.3D \n"), FileName, FileName, FileName ); 
        
        // write origin & rotation
        // TODO: figure out why it's incorrect without -1
        Point3 porg = OptOffset * OptScale * -1; 
        _ftprintf( fScript, _T("#exec MESH ORIGIN MESH=%s X=%f Y=%f Z=%f PITCH=%d YAW=%d ROLL=%d \n"), FileName, porg.x, porg.y, porg.z, (int)OptRot.x, (int)OptRot.y, (int)OptRot.z ); 
        
        // write mesh scale
        Point3 psc( Point3(1.0f/OptScale.x,1.0f/OptScale.y,1.0f/OptScale.z));
        _ftprintf( fScript, _T("#exec MESH SCALE MESH=%s X=%f Y=%f Z=%f \n"), FileName, psc.x, psc.y, psc.z ); 
        
        // write meshmap
        _ftprintf( fScript, _T("#exec MESHMAP NEW MESHMA=P%s MESH=%smap \n"), FileName, FileName ); 
        
        // write meshmap scale
        _ftprintf( fScript, _T("#exec MESHMAP SCALE MESHMAP=%s X=%f Y=%f Z=%f \n"), FileName, psc.x, psc.y, psc.z ); 

        // write sequence
        _ftprintf( fScript, _T("#exec MESH SEQUENCE MESH=%s SEQ=%s STARTFRAME=%d NUMFRAMES=%d \n"), FileName, _T("All"), 0, FrameCount-1 ); 

        // Get World NoteTrack
        ReferenceTarget *rtscene = pInt->GetScenePointer();
        for( int t=0; t<rtscene->NumNoteTracks(); ++t )
        {
            DefNoteTrack* notetrack = static_cast<DefNoteTrack*>(rtscene->GetNoteTrack(t));
            for( int k=0; k<notetrack->keys.Count(); ++k )
            {


                NoteKey* notekey = notetrack->keys[k];                        
                TSTR text = notekey->note;
                int notetime = notekey->time / pScene->GetSceneTicks();

                while( !text.isNull() )
                {
                    TSTR cmd = SplitStr(text,_T('\n'));
                    
                    if( MatchPattern(cmd,TSTR(_T("a *")),TRUE) )
                    {
                        SplitStr(cmd,_T(' '));
                        TSTR seq = SplitStr(cmd,_T(' '));
                        int end = _ttoi(SplitStr(cmd,_T(' ')));;
                        TSTR rate = SplitStr(cmd,_T(' '));
                        TSTR group = SplitStr(cmd,_T(' '));

                        if( seq.isNull() )
                        {
                            ProgressMsg.printf(_T("Missing animation name in notekey #%d"),notetime);
                            throw MAXException(ProgressMsg.data());
                        }
                        
                        if( end <= notetime )
                        {
                            ProgressMsg.printf(_T("Invalid animation endframe (%d) in notekey #%d"),end,notetime);
                            throw MAXException(ProgressMsg.data());
                        }

                        int startframe = notetime;
                        int numframes = end - notetime;

                        buf.printf( _T("#exec MESH SEQUENCE MESH=%s SEQ=%s STARTFRAME=%d NUMFRAMES=%d"), FileName, seq, notetime, numframes );

                        if( !rate.isNull() )
                            buf.printf( _T("%s RATE=%f"), buf, rate );
                        
                        if( !group.isNull() )
                            buf.printf( _T("%s GROUP=%f"), buf, rate );
                        
                        SeqName = seq;
                        SeqFrame = startframe;

                        buf.printf( _T("%s \n"), buf );
                        _fputts( buf, fScript ); 

                    }
                    else if( MatchPattern(cmd,TSTR(_T("n *")),TRUE) )
                    {
                        SplitStr(cmd,_T(' '));
                        TSTR func = SplitStr(cmd,_T(' '));
                        TSTR time = SplitStr(cmd,_T(' '));
                        
                        if( func.isNull() )
                        {
                            ProgressMsg.printf(_T("Missing notify name in notekey #%d"),notetime);
                            throw MAXException(ProgressMsg.data());
                        }

                        if(  time.isNull() )
                        {
                            ProgressMsg.printf(_T("Missing notify time in notekey #%d"),notetime);
                            throw MAXException(ProgressMsg.data());
                        }

                        buf.printf( _T("#exec MESH NOTIFY MESH=%s SEQ=%s TIME=%s FUNCTION=%s"), FileName, SeqName, time, func );
                        
                        _fputts( buf, fScript ); 
                    }




                }
            }
        }


        // TODO: write materials
        if( Materials.Count() > 0 )
        {
            for( int i=0; i<Materials.Count(); ++i )
            {
                IGameMaterial* mat = Materials[i].Mat;
                if( mat == NULL )
                    continue;

                _ftprintf( fScript, _T("#exec MESHMAP SETTEXTURE MESHMAP=%s NUM=%d TEXTURE=%s \n"), FileName, i, _T("DefaultTexture") ); 
            }
        }

    }
}
Example #6
0
void CSysButtonUI::SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue)
{
	if(_tcscmp(pstrName, _T("font")) == 0)			SetFont(_ttoi(pstrValue));

	else __super::SetAttribute(pstrName, pstrValue);
}
Example #7
0
CDEX_ERR CRipInfoDB::GetStatusInfo( int nTrack, DWORD& dwJitterErrors )
{
	BOOL	bFinishedProperly = FALSE;
	BOOL	bPresentInDB = FALSE;
	BOOL	bAborted = FALSE;
	CDEX_ERR result = CDEX_OK;
	
	dwJitterErrors = 0;

	// Open file for append
    m_pFile = CDexOpenFile( m_strFileName, _W( "r" ) );

	if ( NULL != m_pFile )
	{
		// Loop through all entries
		while( !feof( m_pFile ) )
		{
			TCHAR	lpszLine[ 1024 ] = {'\0',};
			int		nCurrentTrack;

			// Clear string
			memset(lpszLine,0x00,sizeof(lpszLine));

			// Read the next line from the file
			_fgetts(	lpszLine,
						_countof( lpszLine ),
						m_pFile );

			// Get track number
			nCurrentTrack = _ttoi( &lpszLine[ 1 ]  );

			if ( nCurrentTrack == nTrack ) 
			{
				bPresentInDB=TRUE;

				switch ( lpszLine[ 6 ] )
				{
					case 'J':	dwJitterErrors++ ; break;
					case 'A':	bAborted = TRUE; break;
					case 'C':	bFinishedProperly = TRUE; break;
				}
			}
		}

		fclose( m_pFile );

		m_pFile = NULL;
	}

	if ( dwJitterErrors > 0 )
	{
		result = CDEX_JITTER_ERROR;
	}
	else if ( bAborted )
	{
		result = CDEX_ERROR;
	}
	else if ( bPresentInDB && bFinishedProperly )
	{
		result = CDEX_RIPPING_DONE;
	}

	return result;
}
Example #8
0
INT_PTR CALLBACK DlgProcOtherStuff(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg) {
	case WM_INITDIALOG:
		TranslateDialogDefault(hwnd);
		{
			MCONTACT hContact = (MCONTACT)((PROPSHEETPAGE*)lParam)->lParam;
			SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)hContact);
			if (!hContact)
				break;

			/* link*/
			DBVARIANT dbv;
			if (!db_get_ts(hContact, MODNAME, "ProgramString", &dbv)) {
				SetDlgItemText(hwnd, IDC_LINK, dbv.ptszVal);
				db_free(&dbv);
			}

			if (!db_get_ts(hContact, MODNAME, "ProgramParamsString", &dbv)) {
				SetDlgItemText(hwnd, IDC_PARAMS, dbv.ptszVal);
				db_free(&dbv);
			}

			/* group*/
			TCHAR *szGroup;
			for (int i = 1; (szGroup = pcli->pfnGetGroupName(i, NULL)) != NULL; i++)
				SendDlgItemMessage(hwnd, IDC_GROUP, CB_INSERTSTRING, 0, LPARAM(szGroup));

			if (!db_get_ts(hContact, "CList", "Group", &dbv)) {
				SetDlgItemText(hwnd, IDC_GROUP, dbv.ptszVal);
				db_free(&dbv);
			}

			/* icons */
			CheckRadioButton(hwnd, 40072, 40080, db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE));
			SetWindowLongPtr(GetDlgItem(hwnd, CHK_ONLINE), GWLP_USERDATA, (LONG_PTR)Skin_LoadProtoIcon(MODNAME, ID_STATUS_ONLINE));
			g_PrevBtnWndProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(hwnd, CHK_ONLINE), GWLP_WNDPROC, (LONG_PTR)ButtWndProc);
			for (int i = ID_STATUS_ONLINE; i <= ID_STATUS_OUTTOLUNCH; i++) {
				SetWindowLongPtr(GetDlgItem(hwnd, i), GWLP_USERDATA, (LONG_PTR)Skin_LoadProtoIcon(MODNAME, i));
				SetWindowLongPtr(GetDlgItem(hwnd, i), GWLP_WNDPROC, (LONG_PTR)ButtWndProc);
			}
			db_free(&dbv);
			/* timer */
			CheckDlgButton(hwnd, CHK_USE_TIMER, db_get_b(hContact, MODNAME, "UseTimer", 0) ? BST_CHECKED : BST_UNCHECKED);
			if (db_get_w(hContact, MODNAME, "Timer", 15)) {
				CheckDlgButton(hwnd, CHK_USE_TIMER, BST_CHECKED);
				EnableWindow(GetDlgItem(hwnd, IDC_TIMER), 1);
				TCHAR string[512];
				SetDlgItemText(hwnd, IDC_TIMER, _itot(db_get_w(hContact, MODNAME, "Timer", 15), string, 10));
				if (!db_get_w(NULL, MODNAME, "Timer", 1))
					SetDlgItemText(hwnd, IDC_TIMER_INTERVAL_MSG, TranslateT("Non-IM Contact protocol timer is Disabled"));
				else {
					mir_sntprintf(string, TranslateT("Timer intervals... Non-IM Contact Protocol timer is %d seconds"), db_get_w(NULL, MODNAME, "Timer", 1));
					SetDlgItemText(hwnd, IDC_TIMER_INTERVAL_MSG, string);
				}
			}
			/* always visible */
			if (db_get_b(hContact, MODNAME, "AlwaysVisible", 0)) {
				CheckDlgButton(hwnd, IDC_ALWAYS_VISIBLE, BST_CHECKED);
				EnableWindow(GetDlgItem(hwnd, IDC_VISIBLE_UNLESS_OFFLINE), 1);
				CheckDlgButton(hwnd, IDC_VISIBLE_UNLESS_OFFLINE, db_get_b(hContact, MODNAME, "VisibleUnlessOffline", 1) ? BST_CHECKED : BST_UNCHECKED);
			}
		}
		return TRUE;

	case WM_COMMAND:
		SendMessage(GetParent(hwnd), PSM_CHANGED, 0, 0);
		switch (LOWORD(wParam)) {
		case IDC_ALWAYS_VISIBLE:
			if (IsDlgButtonChecked(hwnd, IDC_ALWAYS_VISIBLE)) {
				MCONTACT hContact = (MCONTACT)GetWindowLongPtr(hwnd, GWLP_USERDATA);
				EnableWindow(GetDlgItem(hwnd, IDC_VISIBLE_UNLESS_OFFLINE), 1);
				CheckDlgButton(hwnd, IDC_VISIBLE_UNLESS_OFFLINE, db_get_b(hContact, MODNAME, "VisibleUnlessOffline", 1) ? BST_CHECKED : BST_UNCHECKED);
			}
			else EnableWindow(GetDlgItem(hwnd, IDC_VISIBLE_UNLESS_OFFLINE), 0);
			break;

		case CHK_USE_TIMER:
			if (IsDlgButtonChecked(hwnd, CHK_USE_TIMER)) {
				MCONTACT hContact = (MCONTACT)GetWindowLongPtr(hwnd, GWLP_USERDATA);
				char string[4];
				EnableWindow(GetDlgItem(hwnd, IDC_TIMER), 1);
				SetDlgItemTextA(hwnd, IDC_TIMER, _itoa(db_get_w(hContact, MODNAME, "Timer", 15), string, 10));
			}
			else EnableWindow(GetDlgItem(hwnd, IDC_TIMER), 0);
			break;

		case IDC_OPEN_FILE:
			char szFileName[512];
			if (Openfile(szFileName, 1))
				SetDlgItemTextA(hwnd, IDC_LINK, szFileName);
			break;

		case IDC_OPEN_FOLDER:
			if (BrowseForFolder(hwnd, szFileName)) {
				mir_snprintf(szFileName, "%s ,/e", szFileName);
				SetDlgItemTextA(hwnd, IDC_LINK, "explorer.exe");
				SetDlgItemTextA(hwnd, IDC_PARAMS, szFileName);
			}
		}
		break;

	case WM_NOTIFY:
		switch (((LPNMHDR)lParam)->idFrom) {
		case 0:
			switch (((LPNMHDR)lParam)->code) {
			case PSN_APPLY:
				int status = GetLCStatus(0, 0);
				MCONTACT hContact = (MCONTACT)GetWindowLongPtr(hwnd, GWLP_USERDATA);

				if (GetWindowTextLength(GetDlgItem(hwnd, IDC_LINK))) {
					char text[512];
					GetDlgItemTextA(hwnd, IDC_LINK, text, _countof(text));
					db_set_s(hContact, MODNAME, "ProgramString", text);
					WriteSetting(hContact, MODNAME, "ProgramString", MODNAME, "Program");
				}
				else db_unset(hContact, MODNAME, "ProgramString");

				if (GetWindowTextLength(GetDlgItem(hwnd, IDC_PARAMS))) {
					char text[512];
					GetDlgItemTextA(hwnd, IDC_PARAMS, text, _countof(text));
					db_set_s(hContact, MODNAME, "ProgramParamsString", text);
					WriteSetting(hContact, MODNAME, "ProgramParamsString", MODNAME, "ProgramParams");
				}
				else db_unset(hContact, MODNAME, "ProgramParamsString");

				if (GetWindowTextLength(GetDlgItem(hwnd, IDC_GROUP))) {
					TCHAR text[512];
					GetDlgItemText(hwnd, IDC_GROUP, text, _countof(text));
					Clist_CreateGroup(NULL, text);
					db_set_ts(hContact, "CList", "Group", text);
				}
				else db_unset(hContact, "CList", "Group");

				for (int i = ID_STATUS_ONLINE; i <= ID_STATUS_OUTTOLUNCH; i++)
					if (IsDlgButtonChecked(hwnd, i))
						db_set_w(hContact, MODNAME, "Icon", (WORD)i);

				/* set correct status */
				if (status == ID_STATUS_ONLINE || status == ID_STATUS_AWAY || (status == db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE)))
					db_set_w(hContact, MODNAME, "Status", (WORD)db_get_w(hContact, MODNAME, "Icon", ID_STATUS_ONLINE));
				else
					db_set_w(hContact, MODNAME, "Status", ID_STATUS_OFFLINE);

				if (IsDlgButtonChecked(hwnd, CHK_USE_TIMER)) {
					if (GetWindowTextLength(GetDlgItem(hwnd, IDC_TIMER))) {
						TCHAR text[512];
						GetDlgItemText(hwnd, IDC_TIMER, text, _countof(text));
						db_set_w(hContact, MODNAME, "Timer", (WORD)_ttoi(text));
					}
					else db_set_w(hContact, MODNAME, "Timer", 15);
				}
				else db_set_w(hContact, MODNAME, "Timer", 0);

				// always visible
				db_set_b(hContact, MODNAME, "AlwaysVisible", (BYTE)IsDlgButtonChecked(hwnd, IDC_ALWAYS_VISIBLE));
				db_set_b(hContact, MODNAME, "VisibleUnlessOffline", (BYTE)IsDlgButtonChecked(hwnd, IDC_VISIBLE_UNLESS_OFFLINE));
			}
			return TRUE;
		}
		break;
	}
	return FALSE;
}
Example #9
0
// 흘러간 시간을 나타내기 위한 함수
void CRankDlg::TimePoint(void)
{
	// 상급일때 시간 계산
	if (rankName == _T ("C:\\image\\HardRanking.txt")) {
		nMin.Format (_T ("0%d"), 1 -_ttoi (nMin)) ;
		if ((39 -_ttoi (nSec)) > 10) nSec.Format (_T ("%d"), 39 -_ttoi (nSec)) ;
		else nSec.Format (_T ("0%d"), 39 -_ttoi (nSec)) ;

		if ((100 -_ttoi (nCsec)) > 10) nCsec.Format (_T ("%d"), 100 -_ttoi (nCsec)) ;
		else nCsec.Format (_T ("0%d"), 100 -_ttoi (nCsec)) ;
	}

	// 중급일때 시간 계산
	if (rankName == _T ("C:\\image\\NoramlRanking.txt")) {
		if ((49 -_ttoi (nSec)) > 10) nSec.Format (_T ("%d"), 49 -_ttoi (nSec)) ;
		else nSec.Format (_T ("0%d"), 49 -_ttoi (nSec)) ;

		if ((100 -_ttoi (nCsec)) > 10) nCsec.Format (_T ("%d"), 100 -_ttoi (nCsec)) ;
		else nCsec.Format (_T ("0%d"), 100 -_ttoi (nCsec)) ;
	}

	// 초급일때 시간 계산
	if (rankName == _T ("C:\\image\\EasyRanking.txt")) {
		if((19 -_ttoi (nSec)) > 10) nSec.Format (_T ("%d"), 19 -_ttoi (nSec)) ;
		else nSec.Format (_T ("0%d"), 19 -_ttoi (nSec)) ;

		if ((100 -_ttoi (nCsec)) > 10) nCsec.Format (_T ("%d"), 100 -_ttoi (nCsec)) ;
		else nCsec.Format (_T ("0%d"), 100 -_ttoi (nCsec)) ;
	}
}
//called by Parse when
//encounters '{' character that means
//number of the preceding character found
int COXRegExpression::GetMinMaxCount(CString& sString, int* pnNumber, int* pMin, int* pMax)
{
	*pMin=-1;
	*pMax=-1;
	CString sNumber;
	int nComma=0;
	BOOL bAtLeast=FALSE;

	while(sString.GetLength()>*pnNumber)
	{
		TCHAR ch=sString.GetAt(*pnNumber);
		(*pnNumber)++;
		if (ch==TEXT('}'))
		{
			if (!bAtLeast)
			{
				if (sNumber.IsEmpty())
				{
					SetError(OX_REGEXP_ERROR_EMPTY_PARENTHESES);
					return FALSE;
				}
				*pMin=_ttoi((LPCTSTR) sNumber);
				return OX_REGEXP_TAG_CHARS_EXACTLY;
				
			}
			else
				if (sNumber.IsEmpty())
					return OX_REGEXP_TAG_CHARS_AT_LEAST;
				else
				{
				*pMax=_ttoi((LPCTSTR) sNumber);
					if (*pMax>*pMin)
						return OX_REGEXP_TAG_CHARS_AT_LEAST_MOST;
					else
					{
						*pnNumber=nComma;
						(*pnNumber)++;
						SetError(OX_REGEXP_ERROR_INVALID_MOSTLEAST);
						return FALSE;
					}
				}
		}
		else
			if (ch==TEXT(','))
			{
				if (bAtLeast)
				{
					SetError(OX_REGEXP_ERROR_TOO_MANY_COMMAS);
					return FALSE;
				}
				*pMin=sNumber.IsEmpty()?NULL:_ttoi((LPCTSTR) sNumber);
				sNumber="";
				bAtLeast=TRUE;
				nComma=*pnNumber;
			}
			else
				if (ch<CHAR_ZERO || ch>CHAR_NINE)
				{
					SetError(OX_REGEXP_ERROR_MUST_DIGIT);
					return FALSE;
				}
				else
				{
					sNumber+=ch;
				}
	}
	SetError(OX_REGEXP_ERROR_NO_LAST_PARENTHES);
	return FALSE;
}
Example #11
0
void CdllInjectDoc::updateProcList(CListCtrl* lv, LPCTSTR imgName, LPSTR dllName)
{
	// create Process Snapshot
	HANDLE hSnapshot;
	hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

	PROCESSENTRY32 pe = {sizeof(PROCESSENTRY32)};

	// first snapshot
	Process32First(hSnapshot, &pe);
	
	// index, pid string
	int index = 0;
	
	TCHAR pid[20];
	TCHAR emptyPid[20] = {0};

	wsprintf(pid, _T("%d"), pe.th32ProcessID);

	// 1st, 2nd item text (exe file, pid)
	CString first, second;
	first = lv->GetItemText(0, 0);
	second = lv->GetItemText(0, 1);

	// update first process information
	if (pe.th32ProcessID != _ttoi(second.GetBuffer(0)) ||
			_tcsicmp(pe.szExeFile, first.GetBuffer(0)) != 0)
	{
		lv->DeleteItem(0);
		index = lv->InsertItem(0, pe.szExeFile);
		lv->SetItem(index, 1, LVIF_TEXT, pid, 0, 0, 0, NULL);
	}

	// check automatic inject option
	if (imgName != NULL &&
			_tcsicmp(imgName,pe.szExeFile) == 0)
	{
		InjectDll(pe.th32ProcessID, dllName);
	}

	// empty pid string
	//memcpy_s(pid, 20, emptyPid, 20);

	// insert next items
	int i = index + 1;

	// update next process informations
	while(Process32Next(hSnapshot, &pe) != FALSE)
	{
		first = lv->GetItemText(i, 0);
		second = lv->GetItemText(i, 1);

		// check automatic inject option
		if (imgName != NULL &&
			_tcsicmp(imgName, pe.szExeFile) == 0)
		{
			// empty pid string
			memcpy_s(pid, 20, emptyPid, 20);

			_itot_s(pe.th32ProcessID, pid, 20, 10);

			CString temp;
			temp.Append(pe.szExeFile);
			temp += _T("|");
			temp.Append(pid);
			temp += _T("|");

			if (pidInfo.Find(temp, 0) != -1)
			{
				i++;
				continue;
			}

			TCHAR line[260];
			_stprintf_s(line, 260, _T("Injecting %s(%d)... "),
						pe.szExeFile, pe.th32ProcessID);

			writeLog(CString(line));

			if (InjectDll(pe.th32ProcessID, dllName) == TRUE)
			{
				writeLog(CString("SUCCEED.\r\n"));
				pidInfo += temp;
			}
			else
				writeLog(CString("FAILED.\r\n"));
		}

		// if already in listview, skip
		if (pe.th32ProcessID == _ttoi(second.GetBuffer(0)) &&
				_tcsicmp(pe.szExeFile, first.GetBuffer(0)) == 0)
		{
			i++;
			continue;
		}

		// delete old process info, and inform that is exited & delete from injection list
		CString temp;
		temp = first + _T("|") + second + _T("|");

		if (pidInfo.Find(temp) != -1)
		{
			CString output;
			output = _T("Process Exited: ") + first 
				+ _T("(") + second + _T(").")
				+ _T("\r\n");

			writeLog(output);

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


		lv->DeleteItem(i);
		index = lv->InsertItem(i, pe.szExeFile);
		wsprintf(pid, _T("%d"), pe.th32ProcessID);
		lv->SetItem(index, 1, LVIF_TEXT, pid, 0, 0, 0, NULL);

		i++;
	}

	CloseHandle(hSnapshot);

	// if listcount is more than process list, delete records
	while (i < lv->GetItemCount())
	{
		// delete old process info, and inform that is exited & delete from injection list
		first = lv->GetItemText(i, 0);
		second = lv->GetItemText(i, 1);

		CString temp;
		temp = first + _T("|") + second + _T("|");

		if (pidInfo.Find(temp) != -1)
		{
			CString output;
			output = _T("Process Exited: ") + first 
					+ _T("(") + second + _T(").")
					+ _T("\r\n");

			writeLog(output);

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

		lv->DeleteItem(i);

		i++;
	}
}
//retrieve special char -
//called for parsing when Parse found '\' character
inline int COXRegExpression::GetSpecialChar(CString& sString, int* pnNumber, LPTSTR pch)
{
	*pch=NULL;
	if (sString.GetLength()<=*pnNumber)
	{
		SetError(OX_REGEXP_ERROR_UNEXPECTED_END_SPECCHAR);
		return FALSE;
	}

	TCHAR ch=sString.GetAt(*pnNumber);
	(*pnNumber)++;

	switch (ch)
	{
	case TEXT('b'):
		return OX_REGEXP_TAG_WORD_BOUNDARY;
	case TEXT('B'):
		return OX_REGEXP_TAG_NON_WORD_BOUNDARY;
	case TEXT('d'):
		return OX_REGEXP_TAG_DIGIT;
	case TEXT('D'):
		return OX_REGEXP_TAG_NON_DIGIT;
	case TEXT('f'):
		*pch=TEXT('\f');
		return OX_REGEXP_TAG_COMMON_CHAR;
	case TEXT('n'):
		*pch=TEXT('\n');
		return OX_REGEXP_TAG_COMMON_CHAR;
	case TEXT('r'):
		*pch=TEXT('\r');
		return OX_REGEXP_TAG_COMMON_CHAR;
	case TEXT('s'):
		return OX_REGEXP_TAG_WHITESPACE;
	case TEXT('S'):
		return OX_REGEXP_TAG_NON_WHITESPACE;
	case TEXT('t'):
		*pch=TEXT('\t');
		return OX_REGEXP_TAG_COMMON_CHAR;
	case TEXT('v'):
		*pch=TEXT('\v');
		return OX_REGEXP_TAG_COMMON_CHAR;
	case TEXT('w'):
		return OX_REGEXP_TAG_ANY_WORD;
	case TEXT('W'):
		return OX_REGEXP_TAG_ANY_NON_WORD;
	case TEXT('\\'):
	case TEXT('^'):
	case TEXT('$'):
	case TEXT('*'):
	case TEXT('+'):
	case TEXT('?'):
	case TEXT('.'):
	case TEXT('('):
	case TEXT(')'):
	case TEXT('|'):
	case TEXT('{'):
	case TEXT('}'):
	case TEXT('['):
	case TEXT(']'):
	case TEXT('/'):
		*pch=ch;
		return OX_REGEXP_TAG_COMMON_CHAR;
	default:
		if (ch<CHAR_ZERO || ch>CHAR_NINE)
		{
			SetError(OX_REGEXP_ERROR_UNEXPECTED_SPECCHAR);
			return FALSE;
		}
		else
		{
			CString sTemp(ch);
			*pch=(TCHAR) _ttoi((LPCTSTR) sTemp);
			return OX_REGEXP_TAG_REFERENCE_BACK;
		}
		break;
	}
}
Example #13
0
INT
CommandChoice (LPTSTR param)
{
    LPTSTR lpOptions;
    TCHAR Options[6];
    LPTSTR lpText    = NULL;
    BOOL   bNoPrompt = FALSE;
    BOOL   bCaseSensitive = FALSE;
    BOOL   bTimeout = FALSE;
    INT    nTimeout = 0;
    TCHAR  cDefault = _T('\0');
    INPUT_RECORD ir;
    LPTSTR p, np;
    LPTSTR *arg;
    INT    argc;
    INT    i;
    INT    val;

    INT GCret;
    TCHAR Ch;
    DWORD amount,clk;

    LoadString(CMD_ModuleHandle, STRING_CHOICE_OPTION, Options, 4);
    lpOptions = Options;

    if (_tcsncmp (param, _T("/?"), 2) == 0)
    {
        ConOutResPaging(TRUE,STRING_CHOICE_HELP);
        return 0;
    }

    /* retrieve text */
    p = param;

    while (TRUE)
    {
        if (*p == _T('\0'))
            break;

        if (*p != _T('/'))
        {
            lpText = p;
                break;
        }
        np = _tcschr (p, _T(' '));
        if (!np)
            break;
        p = np + 1;
    }

    /* build parameter array */
    arg = split (param, &argc, FALSE, FALSE);

    /* evaluate arguments */
    if (argc > 0)
    {
        for (i = 0; i < argc; i++)
        {
            if (_tcsnicmp (arg[i], _T("/c"), 2) == 0)
            {
                if (arg[i][2] == _T(':'))
                    lpOptions = &arg[i][3];
                else
                    lpOptions = &arg[i][2];

                if (_tcslen (lpOptions) == 0)
                {
                    ConErrResPuts(STRING_CHOICE_ERROR);
                    freep (arg);
                    return 1;
                }
            }
            else if (_tcsnicmp (arg[i], _T("/n"), 2) == 0)
            {
                bNoPrompt = TRUE;
            }
            else if (_tcsnicmp (arg[i], _T("/s"), 2) == 0)
            {
                bCaseSensitive = TRUE;
            }
            else if (_tcsnicmp (arg[i], _T("/t"), 2) == 0)
            {
                LPTSTR s;

                if (arg[i][2] == _T(':'))
                {
                    cDefault = arg[i][3];
                    s = &arg[i][4];
                }
                else
                {
                    cDefault = arg[i][2];
                    s = &arg[i][3];
                }

                if (*s != _T(','))
                {
                    ConErrResPuts(STRING_CHOICE_ERROR_TXT);
                    freep (arg);
                    return 1;
                }

                s++;
                nTimeout = _ttoi(s);
                bTimeout = TRUE;
            }
            else if (arg[i][0] == _T('/'))
            {
                ConErrResPrintf(STRING_CHOICE_ERROR_OPTION, arg[i]);
                freep (arg);
                return 1;
            }
        }
    }

    /* print text */
    if (lpText)
        ConOutPrintf (_T("%s"), lpText);

    /* print options */
    if (bNoPrompt == FALSE)
    {
        ConOutPrintf (_T("[%c"), lpOptions[0]);

        for (i = 1; (unsigned)i < _tcslen (lpOptions); i++)
            ConOutPrintf (_T(",%c"), lpOptions[i]);

        ConOutPrintf (_T("]?"));
    }

    ConInFlush ();

    if (!bTimeout)
    {
        while (TRUE)
        {
            ConInKey (&ir);

            val = IsKeyInString (lpOptions,
#ifdef _UNICODE
                                 ir.Event.KeyEvent.uChar.UnicodeChar,
#else
                                 ir.Event.KeyEvent.uChar.AsciiChar,
#endif
                                 bCaseSensitive);

            if (val >= 0)
            {
                ConOutPrintf (_T("%c\n"), lpOptions[val]);

                nErrorLevel = val + 1;

                break;
            }

            Beep (440, 50);
        }

        freep (arg);
        TRACE ("ErrorLevel: %d\n", nErrorLevel);
        return 0;
    }

    clk = GetTickCount ();
    amount = nTimeout*1000;

loop:
    GCret = GetCharacterTimeout (&Ch, amount - (GetTickCount () - clk));

    switch (GCret)
    {
        case GC_TIMEOUT:
            TRACE ("GC_TIMEOUT\n");
            TRACE ("elapsed %d msecs\n", GetTickCount () - clk);
            break;

        case GC_NOKEY:
            TRACE ("GC_NOKEY\n");
            TRACE ("elapsed %d msecs\n", GetTickCount () - clk);
            goto loop;

        case GC_KEYREAD:
            TRACE ("GC_KEYREAD\n");
            TRACE ("elapsed %d msecs\n", GetTickCount () - clk);
            TRACE ("read %c", Ch);
            if ((val=IsKeyInString(lpOptions,Ch,bCaseSensitive))==-1)
            {
                Beep (440, 50);
                goto loop;
            }
            cDefault=Ch;
            break;
    }

    TRACE ("exiting wait loop after %d msecs\n",
                GetTickCount () - clk);

    val = IsKeyInString (lpOptions, cDefault, bCaseSensitive);
    ConOutPrintf(_T("%c\n"), lpOptions[val]);

    nErrorLevel = val + 1;

    freep (arg);

    TRACE ("ErrorLevel: %d\n", nErrorLevel);

    return 0;
}
Example #14
0
BOOL CSettingPubTab::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: この位置に初期化の補足処理を追加してください
	int i;
	CString str;
	DWORD dw;

	/// レジストリ読み込み
	m_rgStartup = CRegString(_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\Tapur"), _T(""), FALSE);
	m_rgDisable = CRegDWORD(_T("Software\\Tapur\\Tapur\\Settings\\InitDisable"), 0, TRUE);
	m_rgWaitAnswer = CRegDWORD(_T("Software\\Tapur\\Tapur\\Settings\\WaitAnswerTime"), 10, TRUE);
	m_rgMaxRecord = CRegDWORD(_T("Software\\Tapur\\Tapur\\Settings\\MaxRecordTime"), 180, TRUE);
	m_rgShortCutTapur = CRegDWORD(_T("Software\\Tapur\\Tapur\\Settings\\ShortCutTapur"), 1, TRUE);
	m_rgShortCutSkype = CRegDWORD(_T("Software\\Tapur\\Tapur\\Settings\\ShortCutSkype"), 1, TRUE);
 	//// WAV or MP3
	m_rgFormatType = CRegDWORD(_T("Software\\Tapur\\Tapur\\Settings\\AnswerRecordType"), 0, TRUE);		// 初期値:0(WAV)
	m_rgCodecName = CRegString(_T("Software\\Tapur\\Tapur\\Settings\\AnswerRecordMP3Codec"), _T(""), TRUE);
	m_rgFormatName = CRegString(_T("Software\\Tapur\\Tapur\\Settings\\AnswerRecordMP3Format"), _T(""), TRUE);
	//// Startup
	str = m_rgStartup;
	m_blStartup = (str.IsEmpty()) ? FALSE : TRUE;
	//// 起動時無効
	// メインメニューの「応答の有効」は非接続時には無効となるので、この機能と完全な連動はできない
	dw = m_rgDisable;
	m_blDisable = (dw == 1) ? TRUE : FALSE;

	/// コンボボックス初期化
	CComboBox *pcmb;
	//// 待機時間
	m_aryWaitAnswer.Add(_T("0"));
    m_aryWaitAnswer.Add(_T("5"));
    m_aryWaitAnswer.Add(_T("10"));
    m_aryWaitAnswer.Add(_T("15"));
    m_aryWaitAnswer.Add(_T("20"));
    m_aryWaitAnswer.Add(_T("30"));
    m_aryWaitAnswer.Add(_T("45"));
    m_aryWaitAnswer.Add(_T("60"));
    pcmb = (CComboBox*)GetDlgItem(IDC_CMB_WAIT_ANSWER);
//	pcmb->ShowDropDown(TRUE);
//	pcmb->SetExtendedUI(TRUE);
	for(i = 0; i < m_aryWaitAnswer.GetSize(); i++) {
		pcmb->AddString(m_aryWaitAnswer.GetAt(i));
	}
 	//// 録音時間
	m_aryMaxRecord.Add(_T("1"));
    m_aryMaxRecord.Add(_T("2"));
    m_aryMaxRecord.Add(_T("3"));
    m_aryMaxRecord.Add(_T("5"));
    m_aryMaxRecord.Add(_T("10"));
    m_aryMaxRecord.Add(_T("15"));
    m_aryMaxRecord.Add(_T("20"));
    m_aryMaxRecord.Add(_T("30"));
	pcmb = (CComboBox*)GetDlgItem(IDC_CMB_MAX_RECORD);
//	pcmb->ShowDropDown(TRUE);
//	pcmb->SetExtendedUI(TRUE);
	for(i = 0; i <  m_aryMaxRecord.GetSize(); i++) {
		pcmb->AddString(m_aryMaxRecord.GetAt(i));
	}
 	//// MP3コーデック
	pcmb = (CComboBox*)GetDlgItem(IDC_CMB_CODEC);
	int intCnt = m_oAcmMgr.GetDriverList(m_aryCodecName);
	if (intCnt > 0) {
		for(i = 0; i < intCnt; i++) {
			pcmb->AddString(m_aryCodecName.GetAt(i));
		}
 		//// MP3コーデックコンボボックスを選択
		str = m_rgCodecName;
		for(i = 0; i <  m_aryCodecName.GetSize(); i++) {
			if (str == m_aryCodecName.GetAt(i)) {
				m_idxCodecName = i;
				break;
			}
		}
		str = m_aryCodecName.GetAt(m_idxCodecName);
		str.MakeUpper();
		if (str.Find(ACM_CODEC_MP3_LAME) >= 0) {
			m_oAcmMgr.FindDriver(CAcmMgr::WAV_MP3_LAME, str);
		} else {
			m_oAcmMgr.FindDriver(CAcmMgr::WAV_MP3, str);
		}
 		//// MP3フォーマット
		pcmb = (CComboBox*)GetDlgItem(IDC_CMB_FORMAT);
		CWave wv;
		wv.BuildFormat(1, 16000, 16);	//monoral
		m_wfx = wv.GetFormat();
		intCnt = m_oAcmMgr.GetFormatList(m_aryFormatName, &m_wfx);
		if (intCnt > 0) {
			for(i = 0; i < intCnt; i++) {
				pcmb->AddString(m_aryFormatName.GetAt(i));
			}
 			//// MP3フォーマットコンボボックスを選択
			str = m_rgFormatName;
			for(i = 0; i <  m_aryFormatName.GetSize(); i++) {
				if (str == m_aryFormatName.GetAt(i)) {
					m_idxFormatName = i;
					break;
				}
			}
		}
	} else {
		//// MP3コーデックが存在しない場合、強制的にWAVを選択
		m_rgFormatType = 0;	// WAV
		//// MP3を選択不可に
		CButton *rd = (CButton *)GetDlgItem(IDC_RDO_MP3);
		rd->EnableWindow(0);
	}

	//// 待機時間コンボボックスを選択
	dw = m_rgWaitAnswer;
	for(i = 0; i <  m_aryWaitAnswer.GetSize(); i++) {
		str = m_aryWaitAnswer.GetAt(i);
		if (dw == (DWORD)_ttoi(str)) {
			m_idxWaitAnswer = i;
			break;
		}
	}
 	//// 録音時間コンボボックスを選択
	dw = m_rgMaxRecord;
	dw /= 60;	// sec -> min
	for(i = 0; i <  m_aryMaxRecord.GetSize(); i++) {
		str = m_aryMaxRecord.GetAt(i);
		if (dw == (DWORD)_ttoi(str)) {
			m_idxMaxRecord = i;
			break;
		}
	}

 	//// WAV or MP3を選択
	dw = m_rgFormatType;
	CButton *rd_wav = (CButton *)GetDlgItem(IDC_RDO_WAV);
	CButton *rd_mp3 = (CButton *)GetDlgItem(IDC_RDO_MP3);
	if (dw == 1) {
		rd_wav->SetCheck(0);
		rd_mp3->SetCheck(1);
	} else {
		rd_wav->SetCheck(1);
		rd_mp3->SetCheck(0);
	}

/*
	//// ショートカット
	dw = m_rgShortCutTapur;
	m_blShortCutTapur = (dw == 1) ? TRUE : FALSE;
	dw = m_rgShortCutSkype;
	m_blShortCutSkype = (dw == 1) ? TRUE : FALSE;
*/

	UpdateData(FALSE);	// DDX更新
	
	return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
	              // 例外: OCX プロパティ ページの戻り値は FALSE となります
}
Example #15
0
//				img.Save(sDir + _T("__") + sName2);
				img.Destroy();
				
				std::string sMsg;
				stringEx::Format(sMsg, _T("Characters count is not the same for font '%s' item '%s'"), sFontName.c_str(), sName.c_str());
				MessageBox(NULL, sMsg.c_str(), _T("Error"), MB_OK);
#endif
				delete pInfo;
				continue;
				}

			pInfo->m_nCharCount = arrSymbolLeftOffsetAndWidth.size();
			}
		// }}

		int nFontVal = _ttoi(&((TCHAR*)sName.c_str())[nIndex]);
		if( nFontVal > 0 ){
			pInfo->m_nFontVal = nFontVal;
			}
		else{
			delete pInfo;
			continue;
			}

		// Add embedeed font item.
		pFont->m_listItems.Add(pInfo);
		}

	// Finalize embedeed font loading.
	pFont->m_sFontName	= sFontName;
	pFont->m_nFontId	= m_listEmbedeedFonts.GetCount();
void Cwhu_FaxSettingDlg::Lin_ExportForArrToExcel(CStringArray &m_AutoForward,CString m_FilePath)
{

	CApplication app;
	CWorkbooks books;
	CWorkbook book;
	CWorksheets sheets;
	CWorksheet sheet;
	CRange range;
	CRange cols;
	CString str1, str2;
	int m_ArrPos = 0;
	int m_ArrCount = m_AutoForward.GetSize();
	COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
	if( !app.CreateDispatch(_T("Excel.Application")))
	{
		MessageBox(_T("无法创建Excel应用!"));
		return;
	}
	books=app.get_Workbooks();
	book=books.Add(covOptional);
	sheets=book.get_Sheets();
	sheet=sheets.get_Item(COleVariant((short)1));

	//写入表头//
	str2 = _T("A1");
	CString str = _T("源号码");
	range=sheet.get_Range(COleVariant(str2),COleVariant(str2));
	range.put_Value2(COleVariant(str));
	str2 = _T("B1");
	str = _T("转发号码个数");
	range=sheet.get_Range(COleVariant(str2),COleVariant(str2));
	range.put_Value2(COleVariant(str));

	for (int j=3;j<11;j++)
	{
		str2 = Lin_GetEnglishCharacter(j);
		str2 = str2 +_T("1");
		str= _T("转发号码");
		range=sheet.get_Range(COleVariant(str2),COleVariant(str2));
		range.put_Value2(COleVariant(str));

	}
	CStringArray m_LineStart;
	for (int i=0;i<m_ArrCount;i++)
	{
		CString m_str= m_AutoForward.GetAt(i);
		int CharCount = m_str.GetLength();
		if (CharCount<4) //如果是号码个数//
		{
			m_str.Format(_T("%d"),i-1);
			m_LineStart.Add(m_str);
		}
	}
	int ItemNum = 2;
	int ColumNum = 1;
	for (int i=0;i<m_LineStart.GetSize();i++) 
	{
		int Pos = _ttoi(m_LineStart.GetAt(i));
		CString m_str = m_AutoForward.GetAt(Pos+1);
		int Number = _ttoi(m_str);
		for (int j=0;j<Number+2;j++)
		{
			str2 = Lin_GetEnglishCharacter(ColumNum);
			str1.Format(_T("%d"),ItemNum);
			str2 = str2 +str1;
			CString content = _T("'")+m_AutoForward.GetAt(Pos+j);
			range=sheet.get_Range(COleVariant(str2),COleVariant(str2));
			range.put_Value2(COleVariant(content));
			ColumNum++;
			if (ColumNum>10)
			{
				ColumNum = 3;
				ItemNum++;
			}
		}
		ItemNum++;
		ColumNum = 1;
	}
	cols=range.get_EntireColumn();
	cols.AutoFit();
	//app.put_Visible(TRUE);
	//app.put_UserControl(TRUE);
	book.SaveAs(COleVariant(m_FilePath),covOptional,covOptional,covOptional,covOptional,covOptional,0,covOptional,covOptional,covOptional,covOptional,covOptional);
	app.Quit();


}
Example #17
0
bool
EmbedeedFontMan::AddFont(const std::string sFontFolder, const std::string sFontName){
	std::string sDir = sFontFolder;
	if( sDir[sDir.length() - 1] != '\\' )
		sDir += _T("\\");

	EmbedeedFont* pFont = new EmbedeedFont();

	// Load characters code map. {{
	BYTE*	lpContent	= NULL;
	int		nSize		= 0;
	if( Path::ReadFileContent(sDir + _T("codes.txt"), lpContent, nSize) && nSize > 0 ){
		std::string sContent;
		sContent.resize(nSize);
		memcpy((void*)sContent.c_str(), lpContent, nSize);
		//memcpy(sContent.GetBufferSetLength(nSize), lpContent, nSize);

		CStringArray arrStrings;
		StringHelper::Split(&sContent, _T(";"), arrStrings);

		std::string sCharCode;
		for(int i=0; i<arrStrings.size(); i++){
			sCharCode		= arrStrings[i];
			int nCharCode	= 0;
			// Hex value
			if( sCharCode[0] == '#' )
				nCharCode = StringHelper::HexStringIntoInt(&((TCHAR*)sCharCode.c_str())[1], sCharCode.length() - 1);
			else
				nCharCode = _ttoi(sCharCode.c_str());
			pFont->m_arrCharacters.Add((void*)nCharCode, (void*)i);
			}
		}
	else{
#ifdef _DEBUG
		std::string sMsg;
		stringEx::Format(sMsg, _T("Couldn't find %s"), (sDir + _T("codes.txt")).c_str());
		::MessageBox(NULL, sMsg.c_str(), _T("Error"), MB_OK);
#endif
		if( lpContent )
			delete [] lpContent;
		delete pFont;
		return false;
		}
	// }}

	if( lpContent ){
		delete [] lpContent;
		lpContent = NULL;
		}

	CStringArray arrFileNames;
	if( Path::GetFilesByExtention(sDir, _T("*.bmp"), arrFileNames, true) == 0 ){
		delete pFont;
		return false;
		}
	
	for(int i=0; i<arrFileNames.size(); i++){
		std::string sName = arrFileNames[i];
		std::string sName2 = sName;
		std::string sFile = sDir + sName;

		if( sName.substr(0, sFontName.length()) != sFontName )
			continue; // Skip wrong file name.

		sName.erase(0, sFontName.length());
		stringEx::MakeLower(sName);

		int nIndex = 0;
		EmbedeedFontItemInfo* pInfo = new EmbedeedFontItemInfo();
		pInfo->ZeroInit();

		// Bold
		if( sName[nIndex] == 'b' ){
			pInfo->m_nCharFlags |= EmbedeedFontItemInfo::EMBEDEED_FONT_FLAG_BOLD;
			nIndex ++;
			}
		// Underline
		if( sName[nIndex] == 'u' ){
			pInfo->m_nCharFlags |= EmbedeedFontItemInfo::EMBEDEED_FONT_FLAG_UNDERLINE;
			nIndex ++;
			}
		// Italic
		if( sName[nIndex] == 'i' ){
			pInfo->m_nCharFlags |= EmbedeedFontItemInfo::EMBEDEED_FONT_FLAG_ITALIC;
			nIndex ++;
			}

		// Load characters map image and detect characters left offset and width (in pixels). {{
		Image* pImage = Image::LoadImage(sFile, -1, -1, false);
		if( pImage ){
			int			nWidthLimit				= pImage->GetWidth();
			int			nWidth					= pImage->GetWidth();
			int			nHeight					= pImage->GetHeight();
			int			nWidthBytes				= pImage->GetWidthBytes();
			int			nSymbolCt				= 0;
			BYTE*		pBits					= (BYTE*)pImage->GetBits();
			int			nXOffset				= 0;
			int			nBPP					= pImage->GetBPP()/8;
			int			nSymbolMostLeftOffset	= -1;
			int			nSymbolMostRightOffset	= -1;
			CDWordArray arrSymbolLeftOffsetAndWidth;
			std::string	sSymbolStartPointAndWidth;

			int			nMaxXOffset				= nWidth;
			for(int x=nXOffset; x<nMaxXOffset; x++){
				bool bClearLine = true;
				for(int y=0; y<nHeight; y++){
					BYTE* pLineStartingBits = &pBits[((nHeight - y - 1)*nWidthBytes)];
					BYTE* pPixel			= &pLineStartingBits[x*nBPP];

					// Is pixel visible.
					if( pPixel[0] > 10 ){
						bClearLine = false;
						if( nSymbolMostLeftOffset > -1 )
							nSymbolMostRightOffset = x;
						else
							nSymbolMostLeftOffset = x;
						continue;
						}
		
					pPixel = &pPixel[nBPP];
					}

				if( bClearLine && nSymbolMostLeftOffset > -1 ){
					if( nSymbolMostRightOffset == -1 )
						nSymbolMostRightOffset = nSymbolMostLeftOffset;
					DWORD dwCombineVal = (nSymbolMostLeftOffset << 16) | ((nSymbolMostRightOffset - nSymbolMostLeftOffset + 1)&0xFFFF);
					arrSymbolLeftOffsetAndWidth.push_back(dwCombineVal);

#ifdef _DEBUG
					std::string sFormat;
					stringEx::Format(sFormat, _T("%d:%d;"), nSymbolMostLeftOffset, nSymbolMostRightOffset - nSymbolMostLeftOffset + 1);
					sSymbolStartPointAndWidth += sFormat;
#endif
					nSymbolMostLeftOffset	= -1;
					nSymbolMostRightOffset	= -1;
					}
				}

			pInfo->m_imageCharacters.Attach(pImage->Detach());
			delete pImage;

			if( (arrSymbolLeftOffsetAndWidth.size() == pFont->m_arrCharacters.GetCount()) ){
				pInfo->m_pCharPoints = new Point[arrSymbolLeftOffsetAndWidth.size()];
				for(int j=0; j<arrSymbolLeftOffsetAndWidth.size(); j++){
					DWORD dwCombineVal = arrSymbolLeftOffsetAndWidth.at(j);
					pInfo->m_pCharPoints[j].x = (int)(dwCombineVal>>16);
					pInfo->m_pCharPoints[j].y = (int)(dwCombineVal&0xFFFF);
					}
				}
			else{
#ifdef _DEBUG
				Image bmImg;
				bmImg.CreateDIBBitmap(pInfo->m_imageCharacters.GetBPP(), RGB(0, 0, 0), pInfo->m_imageCharacters.GetWidth(),
					pInfo->m_imageCharacters.GetHeight()*2, 0);

				_DC memDC;
				memDC.CreateCompatibleDC(NULL);
				memDC.SelectObject(bmImg);

				_DC srcDC;
				srcDC.CreateCompatibleDC(NULL);
				srcDC.SelectObject(pInfo->m_imageCharacters);
				memDC.BitBlt(0, 0, pInfo->m_imageCharacters.GetWidth(), pInfo->m_imageCharacters.GetHeight(), srcDC, 0, 0, SRCCOPY);

				int nHeight = pInfo->m_imageCharacters.GetHeight();
				for(int j=0; j<arrSymbolLeftOffsetAndWidth.size(); j++){
					DWORD dwCombineVal = arrSymbolLeftOffsetAndWidth.at(j);
					int nLeft = (int)(dwCombineVal>>16);
					int nWidth = (int)(dwCombineVal&0xFFFF);

					memDC.FillSolidRect(Rect(nLeft, nHeight, nLeft+nWidth, nHeight+nHeight), RGB(255, 255, 0));
					}

				DeleteFile((sDir + _T("__") + sName2).c_str());
				Image img;
				img.Attach((HBITMAP)bmImg.Detach());
//				img.Save(sDir + _T("__") + sName2);
				img.Destroy();
				
				std::string sMsg;
				stringEx::Format(sMsg, _T("Characters count is not the same for font '%s' item '%s'"), sFontName.c_str(), sName.c_str());
				MessageBox(NULL, sMsg.c_str(), _T("Error"), MB_OK);
#endif
				delete pInfo;
				continue;
				}

			pInfo->m_nCharCount = arrSymbolLeftOffsetAndWidth.size();
			}
Example #18
0
BOOL GetWindowsVersion(WindowsVersion& verInfo)
{
	OSVERSIONINFOEX osvi;
	TCHAR szPack[4] = _T("-1");


	// Try calling GetVersionEx using the OSVERSIONINFOEX structure.
	// If that fails, try using the OSVERSIONINFO structure.

	ZeroMemory(&osvi,sizeof(OSVERSIONINFOEX));
	osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);

	BOOL bResult = GetVersionEx((OSVERSIONINFO*)&osvi);
	if(!bResult)
	{
		// If OSVERSIONINFOEX doesn't work, try OSVERSIONINFO.
		osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
		if (!GetVersionEx ( (OSVERSIONINFO *) &osvi) ) 
			return FALSE;
	}

	// The system Type (2=Win95, 3=Win98/ME, 
	//    4=Win/ME, 5=Win/NT  6=Win/2000)

	//if(osvi.dwPlatformId == VER_PLATFORM_WIN32s)
	//	*iSysType=VST_UnknownTemp;
	if(osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS)
		verInfo.osCode = VST_Win95;
	if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
		verInfo.osCode = VST_WinNT;

	// Major version number
	verInfo.major=osvi.dwMajorVersion;
	if(verInfo.major == 5) verInfo.osCode=VST_Win2000;
	if(verInfo.major == 6) verInfo.osCode=VST_Vista;

	// Minor version number
	verInfo.minor=osvi.dwMinorVersion;

	// For Win/98, minor version is 10
	if((verInfo.osCode==VST_Win95) && (verInfo.minor==10)) verInfo.osCode=VST_Win98;
	// For Win/ME, minor version is 90 or greater
	if((verInfo.osCode==VST_Win95) && (verInfo.minor==90)) verInfo.osCode=VST_WinME;
	// For Win/XP, minor version is 1
	if((verInfo.osCode==VST_Win2000) && (verInfo.minor==1)) verInfo.osCode=VST_WinXP;
	// For Win/2003, minor version is 2
	if((verInfo.osCode==VST_Win2000) && (verInfo.minor==2)) verInfo.osCode=VST_Win2003;

	// Service Pack info
	// For NT/2000/later, extract the service pack as a number
	verInfo.pack=0;
	if((verInfo.osCode>=VST_WinNT) && (_tcscmp(osvi.szCSDVersion,_T("Service Pack"))))
	{
		szPack[0]=osvi.szCSDVersion[12];
		szPack[1]=osvi.szCSDVersion[13];
		szPack[2]=osvi.szCSDVersion[14];
		verInfo.pack=_ttoi(szPack);
	}

	// For Win/95, extract OSR info and return in iSubSys
	if(verInfo.osCode==VST_Win95)
	{
		if(osvi.szCSDVersion[1]=='C' || osvi.szCSDVersion[1]=='B' )
			verInfo.osCode=VST_Win95OSR2;
	}

	// For Win/98, extract OSR info and return in iSubSys
	if(verInfo.osCode==VST_Win98)
	{
		if(osvi.szCSDVersion[1]=='A')
			verInfo.osCode=VST_Win98SE;                // Second Edition
	}

	// For NT/2000/XP/later, determine whether Home, Professional or Server
	// or Advanced Server

	if(verInfo.osCode>=VST_WinNT)
	{
		if(bResult)
		{
			// See if Workstation or Server
			if(osvi.wProductType == VER_NT_WORKSTATION)
			{
				// See if personal edition
				if(osvi.wSuiteMask & VER_SUITE_PERSONAL)
				{
					verInfo.osSubCode=1;
				}
				else
				{
					verInfo.osSubCode=2;  // Must be Professional
				}
			}

			if(osvi.wProductType == VER_NT_SERVER ||
				osvi.wProductType == VER_NT_DOMAIN_CONTROLLER)
			{
				// See if data center edition
				if(osvi.wSuiteMask & VER_SUITE_DATACENTER)
				{
					verInfo.osSubCode=5;  // Datacenter Server
				}
				else if(osvi.wSuiteMask & VER_SUITE_ENTERPRISE)
				{
					verInfo.osSubCode=4;  // Advanced Server
				}
				else if(osvi.wSuiteMask & VER_SUITE_BACKOFFICE)
				{
					verInfo.osSubCode=6;  // BackOffice Server
				}
				else
				{
					verInfo.osSubCode=3;  // Must be Server
				}
			}
		}
		else
		{
			// Unable to retrieve OSVERSIONINFOEX, get from 
			// registry (for older versions of NT) instead
			HKEY hKey;
			TCHAR szProductType[80];
			DWORD dwBufLen;

			RegOpenKeyEx( HKEY_LOCAL_MACHINE,
				_T("SYSTEM\\CurrentControlSet\\Control\\ProductOptions"),
				0, KEY_QUERY_VALUE, &hKey );
			RegQueryValueEx( hKey, _T("ProductType"), NULL, NULL,
				(LPBYTE)szProductType, &dwBufLen);

			RegCloseKey( hKey );
			if(lstrcmpi( _T("WINNT"), szProductType) == 0 )
				verInfo.osSubCode=2;
			if(lstrcmpi( _T("LANMANNT"), szProductType) == 0 )
				verInfo.osSubCode=3;
			if(lstrcmpi( _T("SERVERNT"), szProductType) == 0 )
				verInfo.osSubCode=4;
		}

		// Build number
		verInfo.build=osvi.dwBuildNumber & 0xFFFF;
	}

	return TRUE;
}
Example #19
0
			for (; *lpsz != '\0' && _istdigit(*lpsz); lpsz = _tcsinc(lpsz))
				;
		}

		int nPrecision = 0;
		if (*lpsz == '.')
		{
			// skip past '.' separator (width.precision)
			lpsz = _tcsinc(lpsz);

			// get precision and skip it
			if (*lpsz == '*')
				nPrecision = *va_arg(argList, int*);
			else
			{
				nPrecision = _ttoi(lpsz);
				for (; *lpsz != '\0' && _istdigit(*lpsz); lpsz = _tcsinc(lpsz))
					;
			}
		}

		// should be on type modifier or specifier
		int nModifier = 0;
		switch (*lpsz)
		{
		// modifiers that affect size
		case 'h':
			nModifier = FORCE_ANSI;
			lpsz = _tcsinc(lpsz);
			break;
		case 'l':
Example #20
0
// Function name	: RunLocal
// Description	    : 
// Return type		: void 
// Argument         : bool bDoSMP
void RunLocal(bool bDoSMP)
{
	DWORD size = 100;
	TCHAR pszHost[100], pszCmdLine[MAX_PATH], error_msg[256], pszEnv[256], pszExtra[MAX_PATH];
	STARTUPINFO saInfo;
	PROCESS_INFORMATION psInfo;
	LPTSTR pEnv;
	int rootPort=0;
	HANDLE *hProcess = new HANDLE[g_nHosts];
			
	GetComputerName(pszHost, &size);

	wsprintf(pszCmdLine, TEXT("%s %s"), g_pszExe, g_pszArgs);

	GetTempFileName(_T("."), _T("mpi"), 0, pszExtra);
	// This produces a name in the form: ".\XXXmpi.tmp"
	// \ is illegal in named objects so use &pszExtra[2] instead of pszExtra for the JobID
	if (bDoSMP)
	{
		wsprintf(pszEnv, _T("MPICH_JOBID=%s|MPICH_IPROC=0|MPICH_NPROC=%d|MPICH_ROOTHOST=%s|MPICH_ROOTPORT=%d|MPICH_EXTRA=%s|MPICH_COMNIC=%s|MPICH_SHM_LOW=0|MPICH_SHM_HIGH=%d"),
				&pszExtra[2], g_nHosts, pszHost, -1, pszExtra, pszHost, g_nHosts-1);
	}
	else
	{
		wsprintf(pszEnv, _T("MPICH_JOBID=%s|MPICH_IPROC=0|MPICH_NPROC=%d|MPICH_ROOTHOST=%s|MPICH_ROOTPORT=%d|MPICH_EXTRA=%s|MPICH_COMNIC=%s"),
				&pszExtra[2], g_nHosts, pszHost, -1, pszExtra, pszHost);
	}

	SetEnvironmentVariables(pszEnv);
	if (_tcslen(g_pszEnv) > 0)
		SetEnvironmentVariables(g_pszEnv);
	pEnv = GetEnvironmentStrings();

	GetStartupInfo(&saInfo);

	// launch first process
	if (CreateProcess(
		NULL,
		pszCmdLine,
		NULL, NULL, FALSE,
		IDLE_PRIORITY_CLASS, 
		pEnv,
		NULL,
		&saInfo, &psInfo))
	{
		hProcess[0] = psInfo.hProcess;
		CloseHandle(psInfo.hThread);
	}
	else
	{
		int error = GetLastError();
		Translate_Error(error, error_msg, TEXT("CreateProcess failed: "));
		_tprintf(TEXT("Unable to launch '%s', error %d: %s"), pszCmdLine, error, error_msg);
		return;
	}

	RemoveEnvironmentVariables(pszEnv);
	FreeEnvironmentStrings(pEnv);

	if (g_bNoMPI)
	{
		rootPort = -1;
	}
	else
	{
		// Open the file and read the port number written by the first process
		HANDLE hFile = CreateFile(pszExtra, GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
		if (hFile == INVALID_HANDLE_VALUE)
		{
			Translate_Error(GetLastError(), error_msg, TEXT("CreateFile failed "));
			_tprintf(error_msg);
			return;
		}
		
		DWORD num_read = 0;
		TCHAR pBuffer[100];
		pBuffer[0] = '\0';
		TCHAR *pChar = pBuffer;
		clock_t cStart = clock();
		while (true)
		{
			num_read = 0;
			if (!ReadFile(hFile, pChar, 100, &num_read, NULL))
			{
				Translate_Error(GetLastError(), error_msg, TEXT("ReadFile failed "));
				_tprintf(error_msg);
				return;
			}
			if (num_read == 0)
			{
				if (clock() - cStart > 10 * CLOCKS_PER_SEC)
				{
					_tprintf(TEXT("Wait for process 0 to write port to temporary file timed out\n"));
					TerminateProcess(hProcess, 0);
					return;
				}
				Sleep(100);
			}
			else
			{
				for (int i=0; i<(int)num_read; i++)
				{
					if (*pChar == _T('\n'))
						break;
					pChar ++;
				}
				if (*pChar == _T('\n'))
					break;
			}
		}
		CloseHandle(hFile);
		rootPort = _ttoi(pBuffer);
	}
	DeleteFile(pszExtra);

	// launch all the rest of the processes
	for (int i=1; i<g_nHosts; i++)
	{
		if (bDoSMP)
		{
			wsprintf(pszEnv, _T("MPICH_JOBID=%s|MPICH_IPROC=%d|MPICH_NPROC=%d|MPICH_ROOTHOST=%s|MPICH_ROOTPORT=%d|MPICH_COMNIC=%s|MPICH_SHM_LOW=0|MPICH_SHM_HIGH=%d"),
				&pszExtra[2], i, g_nHosts, pszHost, rootPort, pszHost, g_nHosts-1);
		}
		else
		{
			wsprintf(pszEnv, _T("MPICH_JOBID=%s|MPICH_IPROC=%d|MPICH_NPROC=%d|MPICH_ROOTHOST=%s|MPICH_ROOTPORT=%d|MPICH_COMNIC=%s"),
				&pszExtra[2], i, g_nHosts, pszHost, rootPort, pszHost);
		}
		
		SetEnvironmentVariables(pszEnv);
		pEnv = GetEnvironmentStrings();
		
		if (CreateProcess(
			NULL,
			pszCmdLine,
			NULL, NULL, FALSE,
			IDLE_PRIORITY_CLASS, 
			pEnv,
			NULL,
			&saInfo, &psInfo))
		{
			hProcess[i] = psInfo.hProcess;
			CloseHandle(psInfo.hThread);
		}
		else
		{
			int error = GetLastError();
			Translate_Error(error, error_msg, TEXT("CreateProcess failed: "));
			_tprintf(TEXT("Unable to launch '%s', error %d: %s"), pszCmdLine, error, error_msg);
			return;
		}
		
		RemoveEnvironmentVariables(pszEnv);
		FreeEnvironmentStrings(pEnv);
	}

	// Wait for all the processes to terminate
	WaitForLotsOfObjects(g_nHosts, hProcess);

	for (i=0; i<g_nHosts; i++)
		CloseHandle(hProcess[i]);
	delete hProcess;
}
Example #21
0
BOOL DlgMatrixTab::OnInitDialog()
{
    //if (m_bPopupDialog)
    //{
    //    SetWindowLong(this->m_hWnd, GWL_STYLE,
    //        ((GetWindowLong(this->m_hWnd, GWL_STYLE) & ~(WS_CHILD)) | WS_POPUP));
    //   //| DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
    //    //STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    //     //DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU

    //    //ModifyStyle(WS_CHILD,  DS_MODALFRAME  | WS_POPUP | WS_CAPTION );
    //}else
    //{                 //GWL_EXSTYLE
    //    SetWindowLong(this->m_hWnd, GWL_STYLE,
    //        ((GetWindowLong(this->m_hWnd, GWL_STYLE) & ~(WS_POPUP)) | WS_CHILD));

    //    //ModifyStyle( WS_POPUP, WS_CHILD);
    //}

	//POINT pos;
	//GetCursorPos(&pos);
	// here is your coordinates
	//int i_x=pos.x;
	//int i_y=pos.y;
	//int i_h=70, i_w=48, i_gap=30, i_sw=10, i_dw=410, i_y1=50 ;

	//SetWindowPos(NULL, i_x-i_dw, i_y, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
 	CDialog::OnInitDialog();
    if (m_bPopupDialog)
    {
        m_Brushbk.CreateSolidBrush(GLOBALBKCOLOR);
        SetWindowLong(this->m_hWnd, GWL_STYLE, (GetStyle() | DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU |WS_BORDER)); 
    }
    else 
        m_Brushbk.CreateSolidBrush(BKCOLOR);


	DWORD dwStyle = BS_PUSHBUTTON |BS_NOTIFY |WS_VISIBLE;
    COLORREF clBG = BKCOLOR;
    int nHoveOver = (int)BTNST_AUTO_GRAY;
	CRect rc;
	GetClientRect(rc);
	//ClientToScreen(rc);
	//MoveWindow(rc.left, rc.top, rc.right, rc.bottom, SWP_NOSIZE | SWP_NOZORDER);
	
	CString csMsg;
	LOADSTRING(csMsg,IDS_EMAPLIVEVIEW);
	AfxExtractSubString(csMsg, csMsg.GetBuffer(), 0, ':');

	TCITEM tcItem;
	tcItem.mask = TCIF_TEXT;
	tcItem.pszText = (LPWSTR)(LPCTSTR)csMsg;
	m_TabCtrl.InsertItem(LV, &tcItem);

	m_dlgMatrixTag = new CDlgMatrixTag;
	m_dlgMatrixTag->Create(IDD_DLG_MATRIX,&m_TabCtrl);
	
	LOADSTRING(csMsg,IDS_ADD_CAM_EVENT_GROUP)
	tcItem.pszText = (LPWSTR)(LPCTSTR)csMsg;
	m_TabCtrl.InsertItem(EVENTLV, &tcItem);
	
	m_dlgMatrixEvent = new CDlgMatrixEvent;
	m_dlgMatrixEvent->Create(IDD_DLG_MATRIX_EVENT,&m_TabCtrl);

	LOADSTRING(csMsg,IDS_FLYAWAY);
	tcItem.pszText = (LPWSTR)(LPCTSTR)csMsg;
	m_TabCtrl.InsertItem(IPWALL, &tcItem);
    vSetTabCtrlStyle();

	CRect rect;
    //rect.OffsetRect(-10, -10);
	m_TabCtrl.GetClientRect(&rect);
	//ClientToScreen(rect);
	rect.top+=20;
	//rect.bottom-=4;
	//rect.left+=4;
	//rect.right-=4;

	m_dlgMatrixTag->MoveWindow(&rect);
	m_dlgMatrixEvent->MoveWindow(&rect);
	
	m_dlgMatrixTag->ShowWindow(SW_SHOW);
	m_dlgMatrixEvent->ShowWindow(SW_HIDE);
	// this runs first than CEtroExplorerView::OnInitialUpdate(), so i have to get this value from ini
	CIniReader ini;
	CString csEventLV = ini.getKeyValue(_T("EventLV"),_T("video"));
	if( _ttoi(csEventLV) == 1) 
	{
		m_TabCtrl.SetCurSel(1);// select event tab
		m_dlgMatrixEvent->ShowWindow(SW_SHOW);
		m_dlgMatrixTag->ShowWindow(SW_HIDE);
		((CMainFrame*)AfxGetMainWnd())->m_bEventLV = true;
	}
	else
		((CMainFrame*)AfxGetMainWnd())->m_bEventLV = false;
	

	((CMainFrame*)AfxGetMainWnd())->m_bIPWallSelected = false;
	
    //if (m_bPopupDialog)
    //{
    //    SetWindowLong(this->m_hWnd, GWL_STYLE,
    //        ((GetWindowLong(this->m_hWnd, GWL_STYLE) & ~(WS_CHILD)) | WS_POPUP | DS_MODALFRAME));
    //   //| DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
    //    //STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
    //     //DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU

    //    //ModifyStyle(WS_CHILD,  DS_MODALFRAME  | WS_POPUP | WS_CAPTION );

    //    CRect rc;
    //    GetWindowRect(rc);
    //    SetWindowPos(this, rc.left, rc.top,rc.Width(),rc.Height(),WS_EX_TOPMOST);
    //    CenterWindow();
    //}else
    //{                 
    //    SetWindowLong(this->m_hWnd, GWL_STYLE,
    //        ((GetWindowLong(this->m_hWnd, GWL_STYLE) & ~(WS_POPUP)) | WS_CHILD));
    //}

	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}
Example #22
0
void CNDCardCreditDlg::OnBnClickedButtonCredit()
{
	UpdateData();
	
	if (!CLocalServer::GetInstance()->ActiveMemberList.IsAllowCredit(m_nMemberId))
	{
		return;
	}


	if (m_strPwd.IsEmpty() || m_strCardId.IsEmpty())
	{
		return;
	}

	NS_SERVLET::CCardCreditMethod CardCredit;

	CString strTmp(_T("XN"));

	if (m_cboCardType.GetCurSel() == 1)
	{
		strTmp = (_T("ZS"));
	}

	CardCredit.SetCategory(strTmp);
	CardCredit.SetCardPwd(m_strPwd);
	CardCredit.SetMemberId(_ttoi(m_strMemberID));
	CardCredit.SetCardSerial(m_strCardId);

	double dblAmount = _tstof(m_strMoney);
	INT nTmp = dblAmount * 100;

	CardCredit.SetAmount(nTmp);

	theApp.GetCurCashier()->DoCardCredit(CardCredit);

	if (CardCredit.GetStatusCode() == 0)
	{
		m_CreditCard.DeleteCreditCard();

		{//写入数据库

			CCreditInfoDB CreditInfo;

			CreditInfo.SetCardSerial(m_strCardId);
			CreditInfo.SetCreditDate(CIBAHelpper::FormatCenterTime(CardCredit.GetTranTime()));
			CreditInfo.SetRefNo(CardCredit.GetRefNo());
			CreditInfo.SetCreditPresent(CardCredit.GetCreditPresent());
			CreditInfo.SetCreditAmount(nTmp);
			CreditInfo.SetOperator(theApp.GetCurCashier()->GetName());
			CreditInfo.SetNetBarId(CNetBarConfig::GetInstance()->GetNetBarId());
			CreditInfo.SetCashRegisterID(CIBAConfig::GetInstance()->GetCashRegisterID());
			CreditInfo.SetMemberId(_ttoi(m_strMemberID));
			CreditInfo.SetSerialNo(CardCredit.GetLocalSerialNo());
			CreditInfo.SetCassId(m_nUserClassID);
			CreditInfo.SetCategory(strTmp);
			
			CIBADAL::GetInstance()->AddCardCreditRecord(CreditInfo);

		}

		m_strPwd.Empty();
		m_strMoney.Empty();
		m_strCardId.Empty();
		UpdateData(FALSE);
		GetDlgItem(IDC_BUTTON_CREDIT)->EnableWindow(FALSE);
		GetDlgItem(IDC_BUTTON_READCARD)->EnableWindow(FALSE);

		OnBnClickedButtonQuery();
		
	}

	SetToolTipPos(IDC_BUTTON_CREDIT);
	ShowToolTip(CardCredit.GetStatusMessage(), CardCredit.GetStatusCode() != 0);
}
Example #23
0
static bool AddNearByFields( const AcDbObjectId& objId, const CString& func)
{
	CString type = _T("计算参数");
	CString numMine;
	DataHelper::GetPropertyData(objId,_T("邻近层煤层层数"),numMine);
	int dNumMine = _ttoi(numMine);
	if(dNumMine <= 0)
	{
		AfxMessageBox(_T("没有邻近层"));
		return false;
	}

	for (int i = 0; i < dNumMine; i++)
	{
		CString strmi,strX0i,strXi,strEntai;
		strmi.Format(_T("第%d邻近层的煤厚度"),i+1);
		strX0i.Format(_T("第%d邻近层的原始瓦斯含量"),i+1);
		strXi.Format(_T("第%d邻近层的残余瓦斯含量"),i+1);
		strEntai.Format(_T("第%d邻近层的瓦斯涌出率"),i+1);

		FieldInfo fieldInfo;
		fieldInfo.m_dt = DT_NUMERIC;
		fieldInfo.m_minValue = 0;
		fieldInfo.m_maxValue = 999999;
		fieldInfo.m_enable = true;
		fieldInfo.m_showInTooltip = true;
		fieldInfo.m_descr = _T("单位:m");

		FuncFieldHelper::AddField(func,type,strmi);
		FieldHelper::AddField(type,strmi);
		setFieldInfo(type,strmi,fieldInfo);

		FuncFieldHelper::AddField(func,type,strX0i);
		FieldHelper::AddField(type,strX0i);
		fieldInfo.m_descr = _T("单位:m3/t");
		setFieldInfo(type,strX0i,fieldInfo);

		FuncFieldHelper::AddField(func,type,strXi);
		FieldHelper::AddField(type,strXi);
		fieldInfo.m_descr = _T("单位:m3/t");
		setFieldInfo(type,strXi,fieldInfo);

		FuncFieldHelper::AddField(func,type,strEntai);
		FieldHelper::AddField(type,strEntai);
		fieldInfo.m_descr = _T("单位:%");
		fieldInfo.m_enable = false;
		setFieldInfo(type,strEntai,fieldInfo);
	}

	while(dNumMine > 0)
	{
		CString strmi,strX0i,strXi,strEntai;
		strmi.Format(_T("第%d邻近层的煤厚度"),dNumMine+1);
		strX0i.Format(_T("第%d邻近层的原始瓦斯含量"),dNumMine+1);
		strXi.Format(_T("第%d邻近层的残余瓦斯含量"),dNumMine+1);
		strEntai.Format(_T("第%d邻近层的瓦斯涌出率"),dNumMine+1);
		if(FuncFieldHelper::RemoveField(func,type,strmi) 
			&& FuncFieldHelper::RemoveField(func,type,strX0i) 
			&& FuncFieldHelper::RemoveField(func,type,strXi)
			&& FuncFieldHelper::RemoveField(func,type,strEntai))
		{
			dNumMine += 1;
		}
		else
		{
			dNumMine = 0;
		}
	}

	return true;

}
void CTCExeVersionManager::changedExeVerInfo(CString lpExeName)
{
	CVersionInfo vi(lpExeName);
	if(vi.IsValid())
	{		
		vi[L"OriginalFilename"]=CTCRunTimeManager::g_ProjName+L".exe";
		if(!m_productName.IsEmpty())
			vi[L"ProductName"] = m_productName;
		if(!m_verDesInfo.IsEmpty())
			vi[L"FileDescription"] = m_verDesInfo;
		if(!m_fileInfo.IsEmpty())
		{
			CString help = m_fileInfo + _T(".");
			CStringArray version;
			while(!help.IsEmpty())
			{
				int pos = help.Find(_T("."));
				if(pos!=-1)
				{
					CString nume = help.Left(pos);
					version.Add(nume);
					help = help.Right(help.GetLength() - pos -1);
				}
			}
			vi.SetFileVersion(_ttoi(version[0]),_ttoi(version[1]),_ttoi(version[2]),_ttoi(version[3]));
		}    
		if(!m_productInfo.IsEmpty())
		{
			CString help = m_productInfo + _T(".");
			CStringArray versionpro;
			while(!help.IsEmpty())
			{
				int pos = help.Find(_T("."));
				if(pos!=-1)
				{
					CString nume = help.Left(pos);
					versionpro.Add(nume);
					help = help.Right(help.GetLength() - pos -1);
				}
			}
			vi.SetProductVersion(_ttoi(versionpro[0]),_ttoi(versionpro[1]),_ttoi(versionpro[2]),_ttoi(versionpro[3]));    
		}	
		if(!m_internalName.IsEmpty())
			vi[L"InternalName"] = m_internalName;
		if(!m_companyName.IsEmpty())
			vi[L"CompanyName"] = m_companyName;
		if(!m_leagalInfo.IsEmpty())
			vi[L"LegalCopyright"] = m_leagalInfo;
		if(vi.Save())
		{
			//修改成功则将版本信息保存到项目配置文件里面
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("ProductName"),m_productName);
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("FileDescription"),m_verDesInfo);
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("FileVersion"),m_fileInfo);
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("ProductVersion"),m_productInfo);
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("InternalName"),m_internalName);
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("CompanyName"),m_companyName);
			CTCRunTimeManager::setTCProjFile(_T("VersionInfo"),_T("LegalCopyright"),m_leagalInfo);
		}
	}
}
Example #25
0
bool CAddDevice::GetCGI()
{
	if (m_isONVIF)
		return true;

	CString strAddress, strPort;
	GetKeyinAddress(strAddress, strPort);
	if (m_DeviceType == MODEL_1180)
	{
		CJason jStream = m_pbk->GetStream(strAddress, strPort, m_strUserName, m_strPassword);
		if(jStream.isError())
			return false;

		CJason jRs485 = m_pbk->GetRS485(strAddress, strPort, m_strUserName, m_strPassword);
		if(jRs485.isError())
			return false;

		CJason jMcp = m_pbk->GetMcp(strAddress, strPort, m_strUserName, m_strPassword);
		if(jMcp.isError())
			return false;

		CJason jIo = m_pbk->GetIO(strAddress, strPort, m_strUserName, m_strPassword);
		if(jIo.isError())
			return false;

		CJason jNetwork = m_pbk->GetNetwork(strAddress, strPort, m_strUserName, m_strPassword);
		if(jNetwork.isError())
			return false;

		CJason jInfo = m_pbk->GetInfo(strAddress, strPort, m_strUserName, m_strPassword);
		if(jInfo.isError())
			return false;

		CJason jVideo = m_pbk->GetVideo(strAddress, strPort, m_strUserName, m_strPassword);
		if(jVideo.isError())
			return false;

		CJason jAudio = m_pbk->GetAudio(strAddress, strPort, m_strUserName, m_strPassword);
		if(jAudio.isError())
			return false;

		m_mapJason[_T("stream")] = jStream;
		m_mapJason[_T("rs485")] = jRs485;
		m_mapJason[_T("mcp")] = jMcp;
		m_mapJason[_T("io")] = jIo;
		m_mapJason[_T("network")] = jNetwork;
		m_mapJason[_T("info")] = jInfo;
		m_mapJason[_T("video")] = jVideo;
		m_mapJason[_T("audio")] = jAudio;
	} 
	else if (m_DeviceType == MODEL_1150)
	{
		CJason jStream_Info = m_pbk->GetStream_Info(strAddress, strPort, m_strUserName, m_strPassword);
		if(jStream_Info.isError())
			return false;

		CJason jVideo = m_pbk->GetVideo(strAddress, strPort, m_strUserName, m_strPassword);
		if(jVideo.isError())
			return false;

		/*CJason jStream = m_pbk->GetStream(strAddress, strPort, m_strUserName, m_strPassword);
		if(jStream.isError())
			return false;*/

		CJason jRs485 = m_pbk->GetRS485(strAddress, strPort, m_strUserName, m_strPassword);
		if(jRs485.isError())
			return false;

		CJason jIo = m_pbk->GetIO(strAddress, strPort, m_strUserName, m_strPassword);
		if(jIo.isError())
			return false;

		CJason jNetwork = m_pbk->GetNetwork(strAddress, strPort, m_strUserName, m_strPassword);
		if(jNetwork.isError())
			return false;

		CJason jInfo = m_pbk->GetCommonInfo(strAddress, strPort, m_strUserName, m_strPassword);
		if(jInfo.isError())
			return false;

		CString str;
		CJason jprofile;
		jStream_Info.GetValuebyKey(_T("vprofilenum"),str);
		int nCount = _ttoi(str);

		for (int nidx = 0; nidx < nCount; nidx++)
		{
			jprofile = m_pbk->GetVideo_Profile(nidx+1, strAddress, strPort, m_strUserName, m_strPassword);
			if(jprofile.isError())
				return false;
			else
			{
				str.Format(_T("video_profile%d"),nidx+1);
				m_mapJason[str] = jprofile;
			}
		}

		m_mapJason[_T("stream_info")] = jStream_Info;
		m_mapJason[_T("video")] = jVideo;
		//m_mapJason[_T("stream")] = jStream;
		m_mapJason[_T("rs485")] = jRs485;
		m_mapJason[_T("io")] = jIo;
		m_mapJason[_T("network")] = jNetwork;
		m_mapJason[_T("info")] = jInfo;
	}

	return true;
}
Example #26
0
	void CLabelUI::SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue)
	{
		if( _tcscmp(pstrName, _T("align")) == 0 ) {
			if( _tcsstr(pstrValue, _T("left")) != NULL ) {
				m_uTextStyle &= ~(DT_CENTER | DT_RIGHT | DT_SINGLELINE);
				m_uTextStyle |= DT_LEFT;
			}
			if( _tcsstr(pstrValue, _T("center")) != NULL ) {
				m_uTextStyle &= ~(DT_LEFT | DT_RIGHT );
				m_uTextStyle |= DT_CENTER;
			}
			if( _tcsstr(pstrValue, _T("right")) != NULL ) {
				m_uTextStyle &= ~(DT_LEFT | DT_CENTER | DT_SINGLELINE);
				m_uTextStyle |= DT_RIGHT;
			}
		}
		else if (_tcscmp(pstrName, _T("valign")) == 0)
		{
		    if (_tcsstr(pstrValue, _T("top")) != NULL) {
		        m_uTextStyle &= ~(DT_BOTTOM | DT_VCENTER);
		        m_uTextStyle |= (DT_TOP | DT_SINGLELINE);
		    }
		    if (_tcsstr(pstrValue, _T("vcenter")) != NULL) {
		        m_uTextStyle &= ~(DT_TOP | DT_BOTTOM);
		        m_uTextStyle |= (DT_VCENTER | DT_SINGLELINE);
		    }
		    if (_tcsstr(pstrValue, _T("bottom")) != NULL) {
		        m_uTextStyle &= ~(DT_TOP | DT_VCENTER);
		        m_uTextStyle |= (DT_BOTTOM | DT_SINGLELINE);
		    }
		}
		else if( _tcscmp(pstrName, _T("endellipsis")) == 0 ) {
			if( _tcscmp(pstrValue, _T("true")) == 0 ) m_uTextStyle |= DT_END_ELLIPSIS;
			else m_uTextStyle &= ~DT_END_ELLIPSIS;
		}    
		else if( _tcscmp(pstrName, _T("font")) == 0 ) SetFont(_ttoi(pstrValue));
		else if( _tcscmp(pstrName, _T("textcolor")) == 0 ) {
			if( *pstrValue == _T('#')) pstrValue = ::CharNext(pstrValue);
			LPTSTR pstr = NULL;
			DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
			SetTextColor(clrColor);
		}
		else if( _tcscmp(pstrName, _T("disabledtextcolor")) == 0 ) {
			if( *pstrValue == _T('#')) pstrValue = ::CharNext(pstrValue);
			LPTSTR pstr = NULL;
			DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
			SetDisabledTextColor(clrColor);
		}
		else if( _tcscmp(pstrName, _T("textpadding")) == 0 ) {
			RECT rcTextPadding = { 0 };
			LPTSTR pstr = NULL;
			rcTextPadding.left = _tcstol(pstrValue, &pstr, 10);  ASSERT(pstr);    
			rcTextPadding.top = _tcstol(pstr + 1, &pstr, 10);    ASSERT(pstr);    
			rcTextPadding.right = _tcstol(pstr + 1, &pstr, 10);  ASSERT(pstr);    
			rcTextPadding.bottom = _tcstol(pstr + 1, &pstr, 10); ASSERT(pstr);    
			SetTextPadding(rcTextPadding);
		}
		else if( _tcscmp(pstrName, _T("showhtml")) == 0 ) SetShowHtml(_tcscmp(pstrValue, _T("true")) == 0);
		else if( _tcscmp(pstrName, _T("enabledeffect")) == 0 ) SetEnabledEffect(_tcscmp(pstrValue, _T("true")) == 0);
		else if( _tcscmp(pstrName, _T("enabledluminous")) == 0 ) SetEnabledLuminous(_tcscmp(pstrValue, _T("true")) == 0);
		else if( _tcscmp(pstrName, _T("luminousfuzzy")) == 0 ) SetLuminousFuzzy((float)_tstof(pstrValue));
		else if( _tcscmp(pstrName, _T("gradientangle")) == 0 ) SetGradientAngle(_ttoi(pstrValue));
		else if( _tcscmp(pstrName, _T("enabledstroke")) == 0 ) SetEnabledStroke(_tcscmp(pstrValue, _T("true")) == 0);
		else if( _tcscmp(pstrName, _T("enabledshadow")) == 0 ) SetEnabledShadow(_tcscmp(pstrValue, _T("true")) == 0);
		else if( _tcscmp(pstrName, _T("gradientlength")) == 0 ) SetGradientLength(_ttoi(pstrValue));
		else if( _tcscmp(pstrName, _T("shadowoffset")) == 0 ){
			LPTSTR pstr = NULL;
			int offsetx = _tcstol(pstrValue, &pstr, 10);	ASSERT(pstr);    
			int offsety = _tcstol(pstr + 1, &pstr, 10);		ASSERT(pstr);
			SetShadowOffset(offsetx,offsety);
		}
		else if( _tcscmp(pstrName, _T("textcolor1")) == 0 ) {
			if( *pstrValue == _T('#')) pstrValue = ::CharNext(pstrValue);
			LPTSTR pstr = NULL;
			DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
			SetTextColor1(clrColor);
		}
		else if( _tcscmp(pstrName, _T("textshadowcolora")) == 0 ) {
			if( *pstrValue == _T('#')) pstrValue = ::CharNext(pstrValue);
			LPTSTR pstr = NULL;
			DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
			SetTextShadowColorA(clrColor);
		}
		else if( _tcscmp(pstrName, _T("textshadowcolorb")) == 0 ) {
			if( *pstrValue == _T('#')) pstrValue = ::CharNext(pstrValue);
			LPTSTR pstr = NULL;
			DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
			SetTextShadowColorB(clrColor);
		}
		else if( _tcscmp(pstrName, _T("strokecolor")) == 0 ) {
			if( *pstrValue == _T('#')) pstrValue = ::CharNext(pstrValue);
			LPTSTR pstr = NULL;
			DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
			SetStrokeColor(clrColor);
		}
		else CControlUI::SetAttribute(pstrName, pstrValue);
	}
Example #27
0
void CMainDlg::OnBnClickedButton5()//保存日记
{
	// TODO:  在此添加控件通知处理程序代码
	UpdateData();
	try
	{
		CTime current_time = CTime::GetCurrentTime();
		CString str_rq = current_time.Format("%Y-%m-%d");

		CString sq;

		sq.Format("select * from dogdiary where rq='%s'", str_rq);
		m_AdoConn.OnInitADOConn();
		m_pRs = m_AdoConn.GetRecordSet((_bstr_t)sq);
		if (!m_pRs->adoEOF)//存在
		{
			CString m_id_temp = (char*)(_bstr_t)m_pRs->GetCollect("ID");
			MessageBox(m_id_temp);

			INT_PTR nRes;

			// 显示消息对话框   
			nRes = MessageBox(_T("当天数据已存在,是否更新?\n\n点击是表示更新\n点击否表示不更新"), _T("提醒"), MB_YESNO| MB_ICONQUESTION); 
		    if (IDYES == nRes)
			{
				try{
					UpdateData();
					CString sql1, sql2, sql3, sql4, sql6, sql9;
					int i = _ttoi(m_id_temp);
					if (str_lx.IsEmpty())
					{
						MessageBox("品种不能为空");
						return;
					}
					if (str_sg.IsEmpty())
					{
						MessageBox("身高不能为空");
						return;
					}
					if (str_mc.IsEmpty())
					{
						MessageBox("毛长不能为空");
						return;
					}
					if (str_tz.IsEmpty())
					{
						MessageBox("体重不能为空");
						return;
					}
					sql1.Format("update dogdiary set lx = '%s' where ID = %d", str_lx, i);
					sql2.Format("update dogdiary set sg = '%s' where ID = %d", str_sg, i);
					sql3.Format("update dogdiary set tz = '%s' where ID = %d", str_tz, i);
					sql4.Format("update dogdiary set rq = '%s' where ID = %d", str_rq, i);
					sql6.Format("update dogdiary set rj = '%s' where ID = %d", str_rj, i);
					sql9.Format("update dogdiary set mc = '%s' where ID = %d", str_mc, i);


					m_AdoConn.ExecuteSQL((_bstr_t)sql1);
					m_AdoConn.ExecuteSQL((_bstr_t)sql2);
					m_AdoConn.ExecuteSQL((_bstr_t)sql3);
					m_AdoConn.ExecuteSQL((_bstr_t)sql4);
					m_AdoConn.ExecuteSQL((_bstr_t)sql6);
					m_AdoConn.ExecuteSQL((_bstr_t)sql9);

				}
		
				catch (_com_error e) {
				}

			}


		}
		else//bucunzai
		{
			if (str_lx.IsEmpty())
			{
				MessageBox("品种不能为空");
				return;
			}
			if (str_sg.IsEmpty())
			{
				MessageBox("身高不能为空");
				return;
			}
			if (str_mc.IsEmpty())
			{
				MessageBox("毛长不能为空");
				return;
			}
			if (str_tz.IsEmpty())
			{
				MessageBox("体重不能为空");
				return;
			}




			CString sql = "select * from dogdiary";
			m_AdoConn.OnInitADOConn();
			m_pRs = m_AdoConn.GetRecordSet((_bstr_t)sql);

			m_pRs->AddNew();


			m_pRs->PutCollect("lx", _variant_t(str_lx));
			m_pRs->PutCollect("sg", _variant_t(str_sg));
			m_pRs->PutCollect("mc", _variant_t(str_mc));
			m_pRs->PutCollect("tz", _variant_t(str_tz));
			m_pRs->PutCollect("rq", _variant_t(str_rq));
			m_pRs->PutCollect("rj", _variant_t(str_rj));

			m_pRs->Update();
			MessageBox("添加记录成功!");
		}


	}
	catch (_com_error e)
	{
	}
}
Example #28
0
void controlUC::setAttribute(PCWSTR pstrName, PCWSTR pstrValue)
{
	if( _tcscmp(pstrName, L"pos") == 0 ) {
		RECT rcPos = { 0 };
		PWSTR pstr = NULL;
		rcPos.left = _tcstol(pstrValue, &pstr, 10);  assert(pstr);    
		rcPos.top = _tcstol(pstr + 1, &pstr, 10);    assert(pstr);    
		rcPos.right = _tcstol(pstr + 1, &pstr, 10);  assert(pstr);    
		rcPos.bottom = _tcstol(pstr + 1, &pstr, 10); assert(pstr);    
		SIZE szXY = {rcPos.left >= 0 ? rcPos.left : rcPos.right, rcPos.top >= 0 ? rcPos.top : rcPos.bottom};
		setFixedXY(szXY);
		setFixedWidth(rcPos.right - rcPos.left);
		setFixedHeight(rcPos.bottom - rcPos.top);
	}
	else if( _tcscmp(pstrName, L"relativepos") == 0 ) {
		SIZE szMove,szZoom;
		PWSTR pstr = NULL;
		szMove.cx = _tcstol(pstrValue, &pstr, 10);  assert(pstr);    
		szMove.cy = _tcstol(pstr + 1, &pstr, 10);    assert(pstr);    
		szZoom.cx = _tcstol(pstr + 1, &pstr, 10);  assert(pstr);    
		szZoom.cy = _tcstol(pstr + 1, &pstr, 10); assert(pstr); 
		setRelativePos(szMove,szZoom);
	}
	else if( _tcscmp(pstrName, L"padding") == 0 ) {
		RECT rcPadding = { 0 };
		PWSTR pstr = NULL;
		rcPadding.left = _tcstol(pstrValue, &pstr, 10);  assert(pstr);    
		rcPadding.top = _tcstol(pstr + 1, &pstr, 10);    assert(pstr);    
		rcPadding.right = _tcstol(pstr + 1, &pstr, 10);  assert(pstr);    
		rcPadding.bottom = _tcstol(pstr + 1, &pstr, 10); assert(pstr);    
		setPadding(rcPadding);
	}
	else if( _tcscmp(pstrName, L"bkcolor") == 0 || _tcscmp(pstrName, L"bkcolor1") == 0 ) {
		while( *pstrValue > L'\0' && *pstrValue <= L' ')  pstrValue = ::CharNext(pstrValue);
		if( *pstrValue == L'#') pstrValue = ::CharNext(pstrValue);
		PWSTR pstr = NULL;
		DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
		setBkColor(clrColor);
	}
	else if( _tcscmp(pstrName, L"bordercolor") == 0 ) {
		if( *pstrValue == L'#') pstrValue = ::CharNext(pstrValue);
		PWSTR pstr = NULL;
		DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
		setBorderColor(clrColor);
	}
	else if( _tcscmp(pstrName, L"focusbordercolor") == 0 ) {
		if( *pstrValue == L'#') pstrValue = ::CharNext(pstrValue);
		PWSTR pstr = NULL;
		DWORD clrColor = _tcstoul(pstrValue, &pstr, 16);
		setFocusBorderColor(clrColor);
	}
	else if( _tcscmp(pstrName, L"bordersize") == 0 ) setBorderSize(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"borderround") == 0 ) {
		SIZE cxyRound = { 0 };
		PWSTR pstr = NULL;
		cxyRound.cx = _tcstol(pstrValue, &pstr, 10);  assert(pstr);    
		cxyRound.cy = _tcstol(pstr + 1, &pstr, 10);    assert(pstr);     
		setBorderRound(cxyRound);
	}
	else if( _tcscmp(pstrName, L"width") == 0 ) setFixedWidth(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"height") == 0 ) setFixedHeight(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"minwidth") == 0 ) setMinWidth(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"minheight") == 0 ) setMinHeight(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"maxwidth") == 0 ) setMaxWidth(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"maxheight") == 0 ) setMaxHeight(_ttoi(pstrValue));
	else if( _tcscmp(pstrName, L"name") == 0 ) setName(pstrValue);
	else if( _tcscmp(pstrName, L"text") == 0 ) setText(pstrValue);
	else if( _tcscmp(pstrName, L"tooltip") == 0 ) setToolTip(pstrValue);
	else if( _tcscmp(pstrName, L"userdata") == 0 ) setUserData(pstrValue);
	else if( _tcscmp(pstrName, L"enabled") == 0 ) setEnabled(_tcscmp(pstrValue, L"true") == 0);
	else if( _tcscmp(pstrName, L"mouse") == 0 ) setMouseEnabled(_tcscmp(pstrValue, L"true") == 0);
	else if( _tcscmp(pstrName, L"visible") == 0 ) setVisible(_tcscmp(pstrValue, L"true") == 0);
	else if( _tcscmp(pstrName, L"float") == 0 ) setFloat(_tcscmp(pstrValue, L"true") == 0);
	else if( _tcscmp(pstrName, L"shortcut") == 0 ) setShortcut(pstrValue[0]);
	else if( _tcscmp(pstrName, L"menu") == 0 ) setContextMenuUsed(_tcscmp(pstrValue, L"true") == 0);
}
Example #29
0
LRESULT WindowImplBase::OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
	LONG styleValue = ::GetWindowLong(*this, GWL_STYLE);
	styleValue &= ~WS_CAPTION;
	::SetWindowLong(*this, GWL_STYLE, styleValue | WS_CLIPSIBLINGS | WS_CLIPCHILDREN);
	RECT rcClient;
	::GetClientRect(*this, &rcClient);
	::SetWindowPos(*this, NULL, rcClient.left, rcClient.top, rcClient.right - rcClient.left, \
		rcClient.bottom - rcClient.top, SWP_FRAMECHANGED);

	m_PaintManager.Init(m_hWnd);
	m_PaintManager.AddPreMessageFilter(this);

	CDialogBuilder builder;
	CDuiString strResourcePath=m_PaintManager.GetResourcePath();
	if (strResourcePath.IsEmpty())
	{
		strResourcePath=m_PaintManager.GetInstancePath();
		strResourcePath+=GetSkinFolder().GetData();
	}
	m_PaintManager.SetResourcePath(strResourcePath.GetData());

	switch(GetResourceType())
	{
	case UILIB_ZIP:
		m_PaintManager.SetResourceZip(GetZIPFileName().GetData(), true);
		break;
	case UILIB_ZIPRESOURCE:
		{
			HRSRC hResource = ::FindResource(m_PaintManager.GetResourceDll(), GetResourceID(), _T("ZIPRES"));
			if( hResource == NULL )
				return 0L;
			DWORD dwSize = 0;
			HGLOBAL hGlobal = ::LoadResource(m_PaintManager.GetResourceDll(), hResource);
			if( hGlobal == NULL ) 
			{
#if defined(WIN32) && !defined(UNDER_CE)
				::FreeResource(hResource);
#endif
				return 0L;
			}
			dwSize = ::SizeofResource(m_PaintManager.GetResourceDll(), hResource);
			if( dwSize == 0 )
				return 0L;

			m_PaintManager.SetResourceZip((LPBYTE)::LockResource(hGlobal), dwSize);

#if defined(WIN32) && !defined(UNDER_CE)
			::FreeResource(hResource);
#endif
		}
		break;
	}

	CControlUI* pRoot=NULL;
	if (GetResourceType()==UILIB_RESOURCE)
	{
		STRINGorID xml(_ttoi(GetSkinFile().GetData()));
		pRoot = builder.Create(xml, _T("xml"), this, &m_PaintManager);
	}
	else
		pRoot = builder.Create(GetSkinFile().GetData(), (UINT)0, this, &m_PaintManager);
	ASSERT(pRoot);
	if (pRoot==NULL)
	{
		MessageBox(NULL,_T("加载资源文件失败"),_T("Duilib"),MB_OK|MB_ICONERROR);
		ExitProcess(1);
		return 0;
	}
	m_PaintManager.AttachDialog(pRoot);
	m_PaintManager.AddNotifier(this);
	m_PaintManager.SetBackgroundTransparent(TRUE);

	InitWindow();
	return 0;
}
Example #30
0
void CClientDlg::OnBnClickedStart()
{
	CString strAddress;
	CString strPort;
	CString strTestTimes;
	CString strTestInterv;
	CString strSocketCount;
	CString strDataLen;

	m_Address.GetWindowText(strAddress);
	m_Port.GetWindowText(strPort);
	m_TestTimes.GetWindowText(strTestTimes);
	m_TestInterv.GetWindowText(strTestInterv);
	m_SocketCount.GetWindowText(strSocketCount);
	m_DataLen.GetWindowText(strDataLen);

	m_strAddress	= strAddress.Trim();
	m_usPort		= (USHORT)_ttoi(strPort);
	m_iTestTimes	= _ttoi(strTestTimes);
	m_iTestInterv	= _ttoi(strTestInterv);
	m_iSocketCount	= _ttoi(strSocketCount);
	m_iDataLen		= _ttoi(strDataLen);

	if(!CheckParams())
		return;

	SetAppState(ST_STARTING);

	m_dwBeginTickCount	= 0;
	m_dwTimeconsuming	= 0;
	m_llTotalReceived	= 0;
	m_llTotalSent		= 0;
	m_llExpectReceived	= (LONGLONG)m_iTestTimes * (LONGLONG)m_iSocketCount * (LONGLONG)m_iDataLen;

	m_vtClients.Clear();

	for(int i = 0; i < m_iSocketCount; i++)
	{
		smart_simple_ptr<CTcpClientPtr> pSocket = new CTcpClientPtr(this);

		if((*pSocket)->Start(m_strAddress, m_usPort))
			m_vtClients->push_back(pSocket.release());
		else
		{
			::LogClientStartFail((*pSocket)->GetLastError(), (*pSocket)->GetLastErrorDesc());
			m_vtClients.Clear();
			SetAppState(ST_STOPED);
			return;
		}
	}

	::LogClientStart(m_strAddress, m_usPort);

	DWORD dwSendDelay = 3;
	CString strMsg;

	strMsg.Format(_T(" *** willing to send data after %d seconds ..."), dwSendDelay);
	::LogMsg(strMsg);

	::WaitWithMessageLoop(dwSendDelay * 1000);
	m_sendBuffer.Malloc(m_iDataLen, true);
	SetAppState(ST_STARTED);

	::LogMsg(_T(" *** Go Now !"));

	m_dwBeginTickCount = ::TimeGetTime();

	BOOL bTerminated = FALSE;
	for(int i = 0; i < m_iTestTimes; i++)
	{
		for(int j = 0; j < m_iSocketCount; j++)
		{
			CTcpClientPtr* pSocket = m_vtClients[j];
			if(!(*pSocket)->Send(m_sendBuffer, (int)m_sendBuffer.Size()))
			{
				::LogClientSendFail(i + 1, j + 1, ::SYS_GetLastError(), ::HP_GetSocketErrorDesc(SE_DATA_SEND));
				bTerminated = TRUE;
				break;
			}
		}

		if(bTerminated)
			break;

		if(m_iTestInterv > 0 && i + 1 < m_iTestTimes)
			::WaitWithMessageLoop(m_iTestInterv);
	}

	m_sendBuffer.Free();
}