本文整理汇总了C++中CString::IsEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ CString::IsEmpty方法的具体用法?C++ CString::IsEmpty怎么用?C++ CString::IsEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CString
的用法示例。
在下文中一共展示了CString::IsEmpty方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ImportTask
bool CGPImporter::ImportTask(const CXmlItem* pXISrcTask, ITaskList8* pDestTaskFile, HTASKITEM htDestParent, BOOL bAndSiblings)
{
if (!pXISrcTask)
return true;
CString sName = pXISrcTask->GetItemValue(_T("name"));
DWORD dwID = GetTDLTaskID(pXISrcTask->GetItemValueI(_T("id")));
ASSERT(dwID);
HTASKITEM hTask = pDestTaskFile->NewTask(sName, htDestParent, dwID);
ASSERT (hTask);
if (!hTask)
return false;
// completion
int nPercentDone = pXISrcTask->GetItemValueI(_T("complete"));
pDestTaskFile->SetTaskPercentDone(hTask, (unsigned char)nPercentDone);
// dates
time_t tStart;
if (CDateHelper::DecodeDate(pXISrcTask->GetItemValue(_T("start")), tStart))
{
pDestTaskFile->SetTaskStartDate(hTask, tStart);
int nDuration = pXISrcTask->GetItemValueI(_T("duration"));
// only add duration to leaf tasks else it'll double up
if (nDuration && !pXISrcTask->HasItem(_T("task")))
{
if (nPercentDone == 100)
{
pDestTaskFile->SetTaskDoneDate(hTask, tStart + (nDuration - 1) * ONEDAY); // gp dates are inclusive
pDestTaskFile->SetTaskTimeSpent(hTask, nDuration, 'D');
}
else
{
pDestTaskFile->SetTaskDueDate(hTask, tStart + (nDuration - 1) * ONEDAY); // gp dates are inclusive
pDestTaskFile->SetTaskTimeEstimate(hTask, nDuration, 'D');
}
}
}
// priority
int nPriority = pXISrcTask->GetItemValueI(_T("priority"));
pDestTaskFile->SetTaskPriority(hTask, (unsigned char)(nPriority * 3 + 2)); // 2, 5, 8
// file ref
CString sFileRef = pXISrcTask->GetItemValue(_T("webLink"));
sFileRef.TrimLeft();
if (!sFileRef.IsEmpty())
{
// decode file paths
if (sFileRef.Find(_T("file://")) == 0)
{
sFileRef = sFileRef.Mid(7);
sFileRef.Replace(_T("%20"), _T(""));
}
pDestTaskFile->SetTaskFileReferencePath(hTask, sFileRef);
}
// comments
pDestTaskFile->SetTaskComments(hTask, pXISrcTask->GetItemValue(_T("notes")));
// dependency
// do this after we've imported all the tasks because GP does it
// the opposite way round to TDL
// children
if (!ImportTask(pXISrcTask->GetItem(_T("task")), pDestTaskFile, hTask, TRUE))
return false;
// handle sibling tasks WITHOUT RECURSION
if (bAndSiblings)
{
pXISrcTask = pXISrcTask->GetSibling();
while (pXISrcTask)
{
// FALSE == don't recurse on siblings
if (!ImportTask(pXISrcTask, pDestTaskFile, htDestParent, FALSE))
return false;
pXISrcTask = pXISrcTask->GetSibling();
}
}
return true;
}
示例2: parseCommandLine
BOOL COcsNotifyUserApp::parseCommandLine()
{
CString csTimeOut;
// /DEBUG
if (isRequired( m_lpCmdLine, _T( "debug")))
m_pLogger->setLogLevel( LOG_PRIORITY_DEBUG);
// Notification type
if (isRequired( m_lpCmdLine, _T( "preinstall")))
{
// Show preinstall dialog box /PREINSTALL
m_uNotifcation = NOTIFY_TYPE_PREINSTALL;
}
else if (isRequired( m_lpCmdLine, _T( "asktag")))
{
// Show askTag dialog box /ASKTAG
m_uNotifcation = NOTIFY_TYPE_ASKTAG;
// Ensure /FILE is provided
if (isRequired( m_lpCmdLine, _T( "file")))
m_csFile = getParamValue( m_lpCmdLine, _T( "file"));
else
return FALSE;
}
else if (isRequired( m_lpCmdLine, _T( "postinstall")))
{
// Show postinstall dialog box /POSTINSTALL
m_uNotifcation = NOTIFY_TYPE_POSTINSTALL;
}
else
{
// Show default messagebox /MSGBOX
m_uNotifcation = NOTIFY_TYPE_MSGBOX;
}
// /MSG=message (mandatory)
if (isRequired( m_lpCmdLine, _T( "msg")))
m_csMessage = getParamValue( m_lpCmdLine, _T( "msg"));
else
return FALSE;
// /NOCANCEL
if (isRequired( m_lpCmdLine, _T( "nocancel")))
m_bCancel = FALSE;
else
m_bCancel = TRUE;
// /DELAY
if (isRequired( m_lpCmdLine, _T( "delay")))
m_bDelay = TRUE;
else
m_bDelay = FALSE;
// /REBOOT
if (isRequired( m_lpCmdLine, _T( "reboot")))
m_bReboot = TRUE;
else
m_bReboot = FALSE;
// /TIMEOUT[=seconds]
if (isRequired( m_lpCmdLine, _T( "timeout")))
csTimeOut = getParamValue( m_lpCmdLine, _T( "timeout"));
else
csTimeOut.Empty();
if (csTimeOut.IsEmpty())
m_uTimeOut = 0;
else
m_uTimeOut = _ttol( csTimeOut);
return TRUE;
}
示例3: ToString
CString CMediaTypeEx::ToString(IPin* pPin)
{
CString packing, type, codec, dim, rate, dur;
// TODO
if (majortype == MEDIATYPE_DVD_ENCRYPTED_PACK) {
packing = _T("Encrypted MPEG2 Pack");
} else if (majortype == MEDIATYPE_MPEG2_PACK) {
packing = _T("MPEG2 Pack");
} else if (majortype == MEDIATYPE_MPEG2_PES) {
packing = _T("MPEG2 PES");
}
if (majortype == MEDIATYPE_Video) {
type = _T("Video");
BITMAPINFOHEADER bih;
bool fBIH = ExtractBIH(this, &bih);
int w, h, arx, ary;
bool fDim = ExtractDim(this, w, h, arx, ary);
if (fBIH) {
codec = GetVideoCodecName(subtype, bih.biCompression);
}
if (codec.IsEmpty()) {
if (formattype == FORMAT_MPEGVideo) {
codec = _T("MPEG1 Video");
} else if (formattype == FORMAT_MPEG2_VIDEO) {
codec = _T("MPEG2 Video");
} else if (formattype == FORMAT_DiracVideoInfo) {
codec = _T("Dirac Video");
}
}
if (fDim) {
dim.Format(_T("%dx%d"), w, h);
if (w * ary != h * arx) {
dim.AppendFormat(_T(" (%d:%d)"), arx, ary);
}
}
if (formattype == FORMAT_VideoInfo || formattype == FORMAT_MPEGVideo) {
VIDEOINFOHEADER* vih = (VIDEOINFOHEADER*)pbFormat;
if (vih->AvgTimePerFrame) {
rate.Format(_T("%0.3f"), 10000000.0f / vih->AvgTimePerFrame);
rate.TrimRight(_T('0')); // remove trailing zeros
rate.TrimRight(_T('.')); // remove the trailing dot
rate += _T("fps ");
}
if (vih->dwBitRate) {
rate.AppendFormat(_T("%dkbps"), vih->dwBitRate / 1000);
}
} else if (formattype == FORMAT_VideoInfo2 || formattype == FORMAT_MPEG2_VIDEO || formattype == FORMAT_DiracVideoInfo) {
VIDEOINFOHEADER2* vih = (VIDEOINFOHEADER2*)pbFormat;
if (vih->AvgTimePerFrame) {
rate.Format(_T("%0.3f"), 10000000.0f / vih->AvgTimePerFrame);
rate.TrimRight(_T('0')); // remove trailing zeros
rate.TrimRight(_T('.')); // remove the trailing dot
rate += _T("fps ");
}
if (vih->dwBitRate) {
rate.AppendFormat(_T("%dkbps"), vih->dwBitRate / 1000);
}
}
rate.TrimRight();
if (subtype == MEDIASUBTYPE_DVD_SUBPICTURE) {
type = _T("Subtitle");
codec = _T("DVD Subpicture");
}
} else if (majortype == MEDIATYPE_Audio) {
type = _T("Audio");
if (formattype == FORMAT_WaveFormatEx) {
WAVEFORMATEX* wfe = (WAVEFORMATEX*)Format();
if (wfe->wFormatTag/* > WAVE_FORMAT_PCM && wfe->wFormatTag < WAVE_FORMAT_EXTENSIBLE
&& wfe->wFormatTag != WAVE_FORMAT_IEEE_FLOAT*/
|| subtype != GUID_NULL) {
codec = GetAudioCodecName(subtype, wfe->wFormatTag);
dim.Format(_T("%dHz"), wfe->nSamplesPerSec);
if (wfe->nChannels == 1) {
dim += _T(" mono");
} else if (wfe->nChannels == 2) {
dim += _T(" stereo");
} else {
dim.AppendFormat(_T(" %dch"), wfe->nChannels);
}
if (wfe->nAvgBytesPerSec) {
rate.Format(_T("%dkbps"), wfe->nAvgBytesPerSec * 8 / 1000);
}
}
} else if (formattype == FORMAT_VorbisFormat) {
VORBISFORMAT* vf = (VORBISFORMAT*)Format();
codec = GetAudioCodecName(subtype, 0);
//.........这里部分代码省略.........
示例4: MXP_Element
//.........这里部分代码省略.........
(LPCTSTR) strAtomName));
return;
}
strAtomName.MakeLower (); // case insensitive?
// see if we know of this atom
CAtomicElement * element_item;
if (!App.m_ElementMap.Lookup (strAtomName, element_item))
{
MXP_error (DBG_ERROR, errMXP_NoInbuiltDefinitionTag,
TFormat ("Unknown MXP element: <%s>" ,
(LPCTSTR) strAtomName));
return;
}
// yes? add to list
CElementItem * pElementItem = new CElementItem;
if (BuildArgumentList (pElementItem->ArgumentList, strAtom)) // add arguments
{ // bad arguments
DELETE_LIST (pElementItem->ArgumentList);
delete pElementItem;
return;
}
pElement->ElementItemList.AddTail (pElementItem );
pElementItem->pAtomicElement = element_item; // which atomic element
p++; // skip >
} // end of processing each atomic item
// end of add atomic items --------------------------
// get attributes (COLOR=RED NAME=FRED)
if (BuildArgumentList (pElement->AttributeList, GetArgument (ArgumentList, "att", 2, false)))
{ // bad arguments
DELETE_LIST (pElement->AttributeList);
return;
}
// get tag (TAG=22)
strArgument = GetArgument (ArgumentList, "tag", 3, true); // get tag number
if (IsNumeric (strArgument))
{
int i = atoi (strArgument);
if (i >= 20 && i <= 99)
pElement->iTag = i;
}
// get tag (FLAG=roomname)
strArgument = GetArgument (ArgumentList, "flag", 4, true); // get flag name
if (!strArgument.IsEmpty ())
{
/*
// I won't check names right now ...
if (strArgument == "roomname" ||
strArgument == "roomdesc" ||
strArgument == "roomexit" ||
strArgument == "roomnum" ||
strArgument == "prompt")
pElement->strFlag = strArgument;
else
*/
if (strArgument.Left (4) == "set ")
pElement->strFlag = strArgument.Mid (4); // what variable to set
else
pElement->strFlag = strArgument;
pElement->strFlag.TrimLeft ();
pElement->strFlag.TrimRight ();
// make things a bit easier - let spaces through but change to underscores
pElement->strFlag.Replace (" ", "_");
// check variable name is OK
if (CheckObjectName (pElement->strFlag) != eOK)
{
MXP_error (DBG_ERROR, errMXP_BadVariableName,
TFormat ("Bad variable name \"%s\" - for MXP FLAG definition",
(LPCTSTR) pElement->strFlag));
pElement->strFlag.Empty ();
}
} // end of having a flag
DELETE_LIST (ArgumentList);
} // end of CMUSHclientDoc::MXP_Element
示例5: OnBnClickedBtbSave
void CDialog_Check::OnBnClickedBtbSave()
{
// TODO: 在此添加控件通知处理程序代码
m_date.m_material = m_allMaterial.at(m_mName_ctrl.GetCurSel());
if(m_date.m_material.GetId().empty())
{
CRuntimeMessageBox::RunMessageBox("请选择正确的材料");
return;
}
CString tmp;
m_mNum_ctrl.GetWindowText(tmp);
if(tmp.IsEmpty() || tmp.SpanIncluding(_T("1234567890")) != tmp)
{
CRuntimeMessageBox::RunMessageBox("请输入正确的数目!");
return;
}
else
{
m_date.m_num = atoi((const char *)tmp.GetBuffer(tmp.GetLength()));
double price = atof(m_dateChange.CStringtostring(m_date.m_material.m_price).c_str());
tmp.Format(_T("%.2lf"),m_date.m_num * price);
m_total_ctrl.SetWindowText(tmp);
m_date.m_total = price;
}
m_wName_ctrl.GetWindowText(m_date.m_operateWare);
if(m_date.m_operateWare.IsEmpty())
{
CRuntimeMessageBox::RunMessageBox("请输入正确的仓库");
return;
}
m_date.m_class = m_allClass.at(m_cName_ctrl.GetCurSel());
if(m_date.m_class.GetId().empty())
{
CRuntimeMessageBox::RunMessageBox("请选择正确的部门名称");
return;
}
m_date.m_userInfo = m_allUser.at(m_pName_ctrl.GetCurSel());
if(m_date.m_userInfo.GetId().empty())
{
if(m_checkModal)
CRuntimeMessageBox::RunMessageBox("请输入正确的入库人员");
else
CRuntimeMessageBox::RunMessageBox("请输入正确的出库人员");
return;
}
m_telPhone_ctrl.GetWindowText(m_date.m_tellPhone);
if(m_date.m_tellPhone.IsEmpty())
{
CRuntimeMessageBox::RunMessageBox("请输入正确的电话号码");
return;
}
m_detail_ctrl.GetWindowText(m_date.m_detail);
m_date.m_checkModal = m_checkModal;
CControl_check tmpc;
int haveNum = tmpc.VerCheckMaterial(m_date.m_material.GetId()) ;
if( !m_checkModal && haveNum < m_date.m_num)
{
CRuntimeMessageBox::RunMessageBox("保存失败:此材料库存不足,无法出库!");
return;
}
else if( !m_checkModal)
{
m_date.m_num -= haveNum;
}
else
{
m_date.m_num += haveNum;
}
tmpc.SetData(&m_date);
if (tmpc.Save())
{
CRuntimeMessageBox::RunMessageBox("保存成功!");
OnOK();
}
else
{
CRuntimeMessageBox::RunMessageBox("保存失败!");
}
}
示例6: LoadRegistry
void Config::LoadRegistry()
{
// Get first time variable.
CString version = ObjModelHelper::GetVersion();
if (version == "7.10")
m_dsFirstTime = AfxGetApp()->GetProfileInt("Config", "VS710FirstTime", true) != 0;
else if (version == "7.00")
m_dsFirstTime = AfxGetApp()->GetProfileInt("Config", "VS700FirstTime", true) != 0;
else if (version == "6")
m_dsFirstTime = AfxGetApp()->GetProfileInt("Config", "DS6FirstTime", true) != 0;
else if (version == "5")
m_dsFirstTime = AfxGetApp()->GetProfileInt("Config", "DS5FirstTime", true) != 0;
else if (version == "EVC")
m_dsFirstTime = AfxGetApp()->GetProfileInt("Config", "EVC3FirstTime", true) != 0;
const WWhizCommands::CommandInfo* comList = WWhizCommands::GetCommandList();
int comCount = WWhizCommands::GetCommandCount();
for (int i = 1; i < comCount; i++)
{
CString keyStr = AfxGetApp()->GetProfileString(
"Config\\Keys", CString(comList[i].m_name), "");
if (keyStr.IsEmpty())
{
// Grab the default.
m_keys[i].m_keyStr = comList[i].m_keyStr;
m_keys[i].m_assignKey = m_keys[i].m_keyStr.IsEmpty() != TRUE;
}
else
{
// Find the pipe symbol.
int sepPos = keyStr.ReverseFind('|');
if (keyStr[sepPos + 1] == '1')
m_keys[i].m_assignKey = true;
else
m_keys[i].m_assignKey = false;
m_keys[i].m_keyStr = keyStr.Left(sepPos);
}
}
m_useFindTagAtCursorDialog = AfxGetApp()->GetProfileInt("Config", "UseFindTagAtCursorDialog", 1) == 1;
///////////////////////////////////////////////////////////////////////////
// Load WWhizInterface info.
///////////////////////////////////////////////////////////////////////////
WWhizConfig& config = g_wwhizInterface->GetConfig();
// Read in the extension list.
CString extStr = AfxGetApp()->GetProfileString("Config", "ExtensionList", "");
if (extStr.IsEmpty())
{
config.FilesExtReset();
}
else
{
config.FilesExtRemoveAll();
int curPos = 0;
int nextPos;
while (true)
{
// See if there is a comma.
nextPos = extStr.Find(',', curPos);
if (nextPos == -1)
break;
CString ext = extStr.Mid(curPos, nextPos - curPos);
curPos = nextPos + 1;
config.FilesExtAdd(ext);
}
CString lastExt = extStr.Mid(curPos);
if (!lastExt.IsEmpty())
config.FilesExtAdd(extStr.Mid(curPos));
}
// Read in the tags extension list.
extStr = AfxGetApp()->GetProfileString("Config", "TagsExtensionList", "");
if (extStr.IsEmpty())
{
config.TagsExtReset();
}
else
{
config.TagsExtRemoveAll();
int curPos = 0;
int nextPos;
while (true)
{
// See if there is a comma.
nextPos = extStr.Find(',', curPos);
if (nextPos == -1)
break;
CString ext = extStr.Mid(curPos, nextPos - curPos);
curPos = nextPos + 1;
config.TagsExtAdd(ext);
//.........这里部分代码省略.........
示例7: OnInitDialog
BOOL CUpdaterDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CSVPToolBox svpTool;
CString szLangDefault = svpTool.GetPlayerPath( _T("lang\\default") );
CString szLangSeting;
m_nLanguage = 0;
BOOL langSeted = false;
//get default lang setting
if(svpTool.ifFileExist(szLangDefault)){
szLangSeting = svpTool.fileGetContent(szLangDefault);
if(!szLangSeting.IsEmpty()){
m_nLanguage = _wtoi( szLangSeting );
langSeted = true;
}
}
if(!langSeted){
switch(GetSystemDefaultLangID()){ //http://www.science.co.il/Language/Locale-Codes.asp?s=codepage
case 0x0804:
case 0x1004:
case 0x1404:
case 0x0c04:
case 0x0404: //Chinese
m_nLanguage = 0;
break;
default:
m_nLanguage = 1;
break;
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
prg_total.SetRange(0, 1000);
HDC hdc = ::GetDC(NULL);
double dDefaultSize = 22;
double dIntroSize = 14;
m_scale = (double)GetDeviceCaps(hdc, LOGPIXELSY) / 96.0;
double scale = 1.0;
::ReleaseDC(0, hdc);
m_hBigFont.m_hObject = NULL;
if(!(::GetVersion()&0x80000000)){
m_hBigFont.CreateFont(int(dDefaultSize * scale), 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE,
_T("Microsoft Sans Serif"));
m_hIntroFont.CreateFont(int(dIntroSize * scale), 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE,
_T("Microsoft Sans Serif"));
}
if(!m_hBigFont.m_hObject){
m_hBigFont.CreateFont(int(dDefaultSize * scale), 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE,
_T("MS Sans Serif"));
m_hIntroFont.CreateFont(int(dIntroSize * scale), 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH|FF_DONTCARE,
_T("MS Sans Serif"));
}
tnid.cbSize = sizeof(NOTIFYICONDATA);
tnid.hWnd = this->m_hWnd;
tnid.uID = IDR_MAINFRAME;
tnid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
tnid.uCallbackMessage = WM_NOTIFYICON;
tnid.hIcon = this->m_hIcon;
if(m_nLanguage ){
SetWindowText(L"SPlayer Updater");
csCurTask.SetWindowText(L"Current Task:");
csTotalProgress.SetWindowText(L"Total:");
szSpeed.SetWindowText(L"Speed:");
cb_stop.SetWindowText(L"Cancel");
cslink.SetWindowText(L"<a href=\"http://blog.splayer.org\">ChangeLog...</a>");
cszSizeTotal.SetWindowText(L"Size:");
cs_stat.SetWindowText(_T("This program will update lastest SPlayer, will exit automaticly after finished."));
csCurTask.SetWindowText(_T("Current Task: Calc..."));
wcscpy_s(tnid.szTip, _T("SPlayer Auto Updater"));
szaIntro.Add(L"SPlayer support DXVA、DXVA2、EVR");
szaIntro.Add(_T("SPlayer optimization of a variety of creative techniques, smooth playback. Maximize the efficiency are always our mission "));
szaIntro.Add(_T("SPlayer mainly focused on user experience"));
szaIntro.Add(_T("SPlayer is an open source software "));
szaIntro.Add(_T("Designer Raven from Milan created a set of interfaces. Beautiful skin can let you feel more comfortable while playing"));
szaIntro.Add(_T("SPlayer is world's smallest and most sophisticated players, complete installation package only 5M, still as powerful as ever ..."));
szaIntro.Add(_T("SPlayer origin from MPCHC ffmpeg and thanks everyone with them"));
szaIntro.Add(_T("SPlayer can download subtitle aotomaticely, you can disable it in setting panel if you want"));
//.........这里部分代码省略.........
示例8: GetParameters
SSearchParams* CSearchParamsWnd::GetParameters()
{
CString strExpression;
m_ctlName.GetWindowText(strExpression);
strExpression.Trim();
if (!IsValidEd2kString(strExpression)){
AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + GetResString(IDS_SEARCH_INVALIDCHAR), MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT);
return NULL;
}
CStringA strFileType;
int iItem = m_ctlFileType.GetCurSel();
if (iItem != CB_ERR)
{
LPCSTR pszED2KFileType = (LPCSTR)m_ctlFileType.GetItemDataPtr(iItem);
ASSERT( pszED2KFileType != NULL );
strFileType = pszED2KFileType;
}
CString strMinSize = m_ctlOpts.GetItemText(orMinSize, 1);
uint64 ullMinSize = GetSearchAttrSize(strMinSize);
if (ullMinSize == (uint64)-1) {
CString strError;
strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orMinSize, 0));
AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT);
return NULL;
}
CString strMaxSize = m_ctlOpts.GetItemText(orMaxSize, 1);
uint64 ullMaxSize = GetSearchAttrSize(strMaxSize);
if (ullMaxSize == (uint64)-1) {
CString strError;
strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orMaxSize, 0));
AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT);
return NULL;
}
if (ullMaxSize < ullMinSize){
ullMaxSize = 0; // TODO: Create a message box for that
m_ctlOpts.SetItemText(orMaxSize, 1, _T(""));
}
CString strExtension;
if ((m_ctlOpts.GetItemData(orExtension) & 1) == 0)
{
strExtension = m_ctlOpts.GetItemText(orExtension, 1);
strExtension.Trim();
if (!strExtension.IsEmpty() && strExtension[0] == _T('.'))
{
strExtension = strExtension.Mid(1);
m_ctlOpts.SetItemText(orExtension, 1, strExtension);
}
}
UINT uAvailability = 0;
if ((m_ctlOpts.GetItemData(orAvailability) & 1) == 0)
{
CString strAvailability = m_ctlOpts.GetItemText(orAvailability, 1);
uAvailability = GetSearchAttrNumber(strAvailability);
if (uAvailability == (UINT)-1)
{
CString strError;
strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orAvailability, 0));
AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT);
return NULL;
}
else if (uAvailability > 1000000)
{
uAvailability = 1000000;
strAvailability.Format(_T("%u"), uAvailability);
m_ctlOpts.SetItemText(orAvailability, 1, strAvailability);
}
}
UINT uComplete = 0;
if ((m_ctlOpts.GetItemData(orCompleteSources) & 1) == 0)
{
CString strComplete = m_ctlOpts.GetItemText(orCompleteSources, 1);
uComplete = GetSearchAttrNumber(strComplete);
if (uComplete == (UINT)-1)
{
CString strError;
strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orCompleteSources, 0));
AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT);
return NULL;
}
else if (uComplete > 1000000)
{
uComplete = 1000000;
strComplete.Format(_T("%u"), uComplete);
m_ctlOpts.SetItemText(orCompleteSources, 1, strComplete);
}
}
CString strCodec;
if ((m_ctlOpts.GetItemData(orCodec) & 1) == 0)
strCodec = m_ctlOpts.GetItemText(orCodec, 1);
strCodec.Trim();
ULONG ulMinBitrate = 0;
//.........这里部分代码省略.........
示例9: OnBnClickedButtonBrowseRef
void CRenameDlg::OnBnClickedButtonBrowseRef()
{
CString ext;
CString path;
if (!m_originalName.IsEmpty())
{
CTGitPath origname(m_sBaseDir);
origname.AppendPathString(m_originalName);
ext = origname.GetFileExtension();
path = origname.GetWinPathString();
}
if (CAppUtils::FileOpenSave(path, nullptr, AFX_IDD_FILESAVE, 0, false, GetSafeHwnd(), ext.Mid(1), !path.IsEmpty()))
{
GetDlgItem(IDC_NAME)->SetFocus();
CTGitPath target(path);
CString targetRoot;
if (!target.HasAdminDir(&targetRoot) || g_Git.m_CurrentDir.CompareNoCase(targetRoot) != 0)
{
CMessageBox::Show(GetSafeHwnd(), IDS_ERR_MUSTBESAMEWT, IDS_APPNAME, MB_OK | MB_ICONEXCLAMATION);
return;
}
CString relPath;
m_sBaseDir.Replace(L"/", L"\\");
if (!PathRelativePathTo(CStrBuf(relPath, MAX_PATH), m_sBaseDir, FILE_ATTRIBUTE_DIRECTORY, path, FILE_ATTRIBUTE_DIRECTORY))
return;
if (CStringUtils::StartsWith(relPath, L".\\"))
relPath = relPath.Mid(static_cast<int>(wcslen(L".\\")));
m_name = relPath;
UpdateData(FALSE);
}
}
示例10: OnProcessMessage
bool CUserInfoSession::OnProcessMessage (const SArchonMessage &Msg)
// OnProcessMessage
//
// We received a reply from Aeon
{
int i;
// If this is an error, then we return the error back to the client
if (IsError(Msg))
{
SendMessageReplyError(MSG_ERROR_UNABLE_TO_COMPLY, Msg.dPayload);
return false;
}
// If we're waiting for the user record, then see if we can process it now.
if (m_iState == stateWaitingForUserRecord)
{
// If we get back nil then the user does not exist.
if (Msg.dPayload.IsNil())
{
SendMessageReplyError(MSG_ERROR_DOES_NOT_EXIST, strPattern(ERR_UNKNOWN_USERNAME, m_sUsername));
return false;
}
// Otherwise, we handle the result based on the original message
else if (strEquals(GetOriginalMsg().sMsg, MSG_CRYPTOSAUR_CHECK_PASSWORD_SHA1))
{
// Get the parameters from the original message
CDatum dChallenge = GetOriginalMsg().dPayload.GetElement(1);
CDatum dResponse = GetOriginalMsg().dPayload.GetElement(2);
// Get the password has from the response
CDatum dAuthDesc = Msg.dPayload.GetElement(FIELD_AUTH_DESC);
CDatum dPasswordHash = dAuthDesc.GetElement(FIELD_CREDENTIALS);
// Create a response to the challenge based on the password hash that
// we have stored.
CDatum dCorrect = CAI1Protocol::CreateSHAPasswordChallengeResponse(dPasswordHash, dChallenge);
// Compare the correct response to the actual
if ((const CIPInteger &)dResponse == (const CIPInteger &)dCorrect)
return UpdateLoginSuccess(stateWaitingForSuccessUpdate);
else
return UpdateLoginFailure();
}
// Cryptosaur.getUser
else if (strEquals(GetOriginalMsg().sMsg, MSG_CRYPTOSAUR_GET_USER))
{
CDatum dUserData = Msg.dPayload;
if (dUserData.IsNil())
{
SendMessageReply(MSG_REPLY_DATA, CDatum());
return false;
}
// Generate a sanitized user record
CComplexStruct *pReply = new CComplexStruct;
pReply->SetElement(FIELD_USERNAME, dUserData.GetElement(FIELD_USERNAME));
// Sanitize rights
CDatum dRights = dUserData.GetElement(FIELD_RIGHTS);
if (!m_sScope.IsEmpty())
{
CComplexArray *pRights = new CComplexArray;
for (i = 0; i < dRights.GetCount(); i++)
if (strStartsWith(dRights.GetElement(i), m_sScope))
pRights->Insert(dRights.GetElement(i));
pReply->SetElement(FIELD_RIGHTS, CDatum(pRights));
}
else
pReply->SetElement(FIELD_RIGHTS, dRights);
// Done
SendMessageReply(MSG_REPLY_DATA, CDatum(pReply));
return false;
}
// Cryptosaur.hasRights
else if (strEquals(GetOriginalMsg().sMsg, MSG_CRYPTOSAUR_HAS_RIGHTS))
{
CDatum dRights = Msg.dPayload.GetElement(FIELD_RIGHTS);
CDatum dRightsRequired = m_dPayload.GetElement(1);
//.........这里部分代码省略.........
示例11: SaveToNode
// 15.12.05 SIS >>
// added parameter crstrIndex
// to save index range
bool CCeWatchElement::SaveToNode(CXMLNode& rtNode, CXMLDocument& rtDocument, const CString& crstrIndexRange)
// 15.12.05 SIS <<
{
bool bReturn = true;
// don't forget to increment the version string if you change anything here
CString str;
if(m_bInitExpanded)
{
rtNode.SetAttribute(CEWATCH_XMLATTR_EXPANDED, _T("1"));
}
CString strExpression = m_Name;
if(!crstrIndexRange.IsEmpty())
{
strExpression.Format(_T("%s, %s"), m_Name, crstrIndexRange);
}
rtNode.SetAttribute(CEWATCH_XMLATTR_EXPRESSION, strExpression);
if (m_Type.GetName().GetLength() > 0)
{
str.Format("%s;%d", m_Type.GetName(), (int)m_Type.GetVarKind());
rtNode.SetAttribute(CEWATCH_XMLATTR_TYPE, str);
}
rtNode.SetAttribute(CEWATCH_XMLATTR_VALUE, m_strValue);
if (m_strFormat.GetLength() > 0)
{
rtNode.SetAttribute(CEWATCH_XMLATTR_FORMAT, m_strFormat);
}
// #2149 10.10.06 SIS >>
// only save visible array elements
int iNumChildren = GetChildrenCount();
int iChildStart = 0;
int iChildStop = iNumChildren-1;
if(m_Type.IsArray())
{
VERIFY(ExtractArrayIndices(crstrIndexRange, iChildStart, iChildStop));
iChildStart = max(iChildStart - m_Type.GetArrayLowerBound(), 0);
iChildStop = min(iChildStop - m_Type.GetArrayLowerBound(), iNumChildren-1);
}
CCeWatchElement* pElem = NULL;
for (int iChild = iChildStart; iChild <= iChildStop; iChild++)
// #2149 10.10.06 SIS <<
{
CXMLNode tNodeChild;
if(rtDocument.CreateNode(tNodeChild, CEWATCH_XMLTAG_VARNODE))
{
pElem = GetChild(iChild);
if(!pElem)
{
break;
}
bReturn &= pElem->SaveToNode(tNodeChild, rtDocument, _T(""));
if(!bReturn)
{
break;
}
rtNode.AppendChild(tNodeChild);
}
}
return bReturn;
}
示例12: OnReceive
void CGnuLocal::OnReceive(int nErrorCode)
{
byte buffer[1024];
CString Host, LocalHost, NetworkPing, NetworkPong;
CString LanName, IRCAddr, InfoURL;
UINT Port, LocalPort, Leaves = 0;
int buffLength = ReceiveFrom(buffer, 1024, Host, Port);
GetSockName(LocalHost, LocalPort);
// Handle Errors
if(!buffLength || buffLength == SOCKET_ERROR)
return;
CString strBuffer((char*) buffer, 128);
NetworkPing = m_pComm->m_NetworkName;
NetworkPing += " PING\r\n";
NetworkPong = m_pComm->m_NetworkName;
NetworkPong += " PONG\r\n";
// Handle Ping over LAN
if(strBuffer.Find(NetworkPing) == 0)
{
if(Host == LocalHost)
{
m_pCore->LogError("UDP: Ping received from localhost");
//return;
}
// Send back pong only if not a leaf
NetworkPong += "Port: " + NumtoStr(m_pNet->m_CurrentPort) + "\r\n";
if(m_pPrefs->m_LanMode)
{
NetworkPong += "LAN: " + m_pPrefs->m_LanName + "\r\n";
CString RandCache = m_pComm->m_pCache->GetRandWebCache(true);
if(!RandCache.IsEmpty())
NetworkPing += "WebCache: " + RandCache + "\r\n";
}
// Leaves header
if(m_pComm->m_GnuClientMode ==GNU_ULTRAPEER)
{
int Leaves = m_pComm->CountLeafConnects();
if(Leaves)
NetworkPong += "Leaves: " + NumtoStr(Leaves) + "\r\n";
}
NetworkPong += "\r\n";
int pos = strBuffer.Find("\r\nPort: ");
if(pos != -1)
{
pos += 2;
sscanf((char*)buffer + pos, "Port: %d\r\n", &Port);
}
SendTo(NetworkPong, NetworkPong.GetLength(), UDP_PORT, Host);
m_pCore->LogError("UDP: Pong Sent to " + Host + ":" + NumtoStr(Port));
}
// Extract Data from ping/pong
if(strBuffer.Find(NetworkPing) == 0 || strBuffer.Find(NetworkPong) == 0)
{
int pos, backpos;
pos = strBuffer.Find("\r\nPort: ");
if(pos != -1)
{
pos += 2;
sscanf((char*)buffer + pos, "Port: %d\r\n", &Port);
}
pos = strBuffer.Find("\r\nLAN: ");
if(pos != -1)
{
pos += 2;
backpos = strBuffer.Find("\r\n", pos);
LanName = strBuffer.Mid(pos + 5, backpos - pos - 5);
}
pos = strBuffer.Find("\r\nWebCache: ");
if(pos != -1)
{
pos += 2;
backpos = strBuffer.Find("\r\n", pos);
CString NewWebCache = strBuffer.Mid(pos + 10, backpos - pos - 10);
m_pComm->m_pCache->WebCacheAddCache(NewWebCache);
//.........这里部分代码省略.........
示例13: WriteOutput
//.........这里部分代码省略.........
if ( nFile == 0 ) continue;
LPCTSTR pszFirst = strFirst;
LPCTSTR pszThis = strThis;
for ( int nPos = 0, nSlash = 0 ; nPos < nCommonPath ; nPos++ )
{
if ( pszThis[nPos] != pszFirst[nPos] ||
pszThis[nPos] == 0 || pszFirst[nPos] == 0 )
{
nCommonPath = nSlash;
break;
}
else if ( pszThis[nPos] == '\\' )
{
nSlash = nPos;
}
}
}
nCommonPath ++;
pos = m_pFiles.GetHeadPosition();
for ( nFile = 0 ; pos ; nFile++ )
{
CString strFile = m_pFiles.GetNext( pos );
CBENode* pFile = pFiles->Add( NULL, NULL );
{
CBENode* pLength = pFile->Add( "length" );
pLength->SetInt( m_pFileSize[ nFile ] );
}
{
CBENode* pPath = pFile->Add( "path" );
strFile = strFile.Mid( nCommonPath );
while ( ! strFile.IsEmpty() )
{
CString strPart = strFile.SpanExcluding( _T("\\/") );
if ( strPart.IsEmpty() ) break;
pPath->Add( NULL, NULL )->SetString( strPart );
strFile = strFile.Mid( strPart.GetLength() );
if ( ! strFile.IsEmpty() ) strFile = strFile.Mid( 1 );
}
}
if ( m_bSHA1 )
{
CSHA::Digest pFileSHA1;
m_pFileSHA1[ nFile ].GetHash( (uchar*)&pFileSHA1[ 0 ] );
CBENode* pSHA1 = pFile->Add( "sha1" );
pSHA1->SetString( &pFileSHA1, sizeof CSHA::Digest );
}
if ( m_bED2K )
{
CMD4::Digest pFileED2K;
m_pFileED2K[ nFile ].GetRoot( (uchar*)&pFileED2K[ 0 ] );
CBENode* pED2K = pFile->Add( "ed2k" );
pED2K->SetString( &pFileED2K, sizeof CMD4::Digest );
}
if ( m_bMD5 )
{
CMD5::Digest pFileMD5;
m_pFileMD5[ nFile ].GetHash( (uchar*)&pFileMD5[ 0 ] );
CBENode* pMD5 = pFile->Add( "md5sum" );
pMD5->SetString( &pFileMD5, sizeof CMD5::Digest );
}
}
示例14: DoClientspecNew
void CClientListCtrl::DoClientspecNew(BOOL bUseDefTemplate, LPCTSTR defName )
{
MainFrame()->ViewClients();
m_ClientNew.Empty();
m_OldClient= GET_P4REGPTR()->GetP4Client();
// let user type in the new name. if it's blank the user bailed.
//
CNewClientDlg newdlg;
newdlg.SetNew( NEWCLIENT );
if (FindInListAll(m_Active) != -1)
newdlg.m_Active = m_Active;
if (defName)
newdlg.m_Name = defName;
if( newdlg.DoModal( ) == IDCANCEL )
return;
if (newdlg.m_RunWizard)
{
CString txt;
CString port = GET_P4REGPTR()->GetP4Port();
CString clientname = newdlg.GetName();
txt.FormatMessage( IDS_NOCLIENT_s_s_s, clientname, port, GET_P4REGPTR()->GetP4User() );
int i;
if ((i = txt.Find(_T('\n'))) != -1)
{
txt = txt.Mid(i);
txt.TrimLeft();
}
CClientWizSheet dlg(LoadStringResource(IDS_CLIENTWORKSPACEWIZARD), this, 1);
dlg.SetMsg(txt);
dlg.SetName(clientname);
dlg.SetPort(port);
dlg.AllowBrowse(FALSE);
int rc;
while(1)
{
if( (rc = dlg.DoModal()) == IDCANCEL ) // user bailed
{
break;
}
if ( rc == IDIGNORE ) // user chose to browse existing clients
{
ViewUpdate();
break;
}
else // user clicked the Finish button on the create client page
{
CString newClient = dlg.GetName();
CString newRoot = dlg.GetRoot();
BOOL bEdit = dlg.IsEdit();
BOOL bTmpl = dlg.IsTmpl();
CString tmplate = dlg.GetTmpl();
while (m_UpdateState == LIST_UPDATING)
Sleep(100);
if (FindInListAll(newClient) != -1)
{
CString msg;
msg.FormatMessage(IDS_CANT_RECREATE_EXISTING_CLIENT_s, newClient);
AfxMessageBox( msg, MB_ICONSTOP );
}
else if (!newClient.IsEmpty() && !newRoot.IsEmpty())
{
if (AutoCreateClientSpec(newClient, newRoot, bEdit, bTmpl, tmplate))
break;;
}
}
}
return;
}
CString saveActive = m_Active;
m_Active = newdlg.GetName( ) ;
if ( m_Active.IsEmpty( ) )
return;
if ( SetP4Client( TRUE ) )
{
// rather than use the current directory as the default client root
// switch to the drive's root and use that; switch back at the end.
TCHAR buf[MAX_PATH+1];
TCHAR root[4];
if (GetCurrentDirectory(MAX_PATH, buf))
{
_tcsncpy(root, buf, 3);
root[3] = '\0';
SetCurrentDirectory(root);
}
else
{
buf[0] = _T('\0');
}
// Get the edit of the new spec underway
m_NewClient = (saveActive != m_Active);
m_NewClicked = TRUE;
OnEditSpec( m_Active, bUseDefTemplate );
m_ClientNew = m_Active;
// restore previous working directory
//.........这里部分代码省略.........
示例15: CreateWelcomeButtons
void CStartupView::CreateWelcomeButtons()
{
BOOL bCreationSucces=FALSE;
CMainFrameA* pMainFrame = CMainFrameA::GetCurrentInstance();;
CRect rcButton;
rcButton.SetRect(0, 0, BUTTON_WIDTH, BUTTON_HEIGHT);
CString csTitle;
// Record PowerPoint button
/*CString csPrefix = _T("");
csPrefix.LoadString(IDS_RECORD);*/
csTitle.LoadString(IDS_POWERPOINT);
//csTitle = csPrefix + _T(" ") + csTitle;
if (csTitle.IsEmpty() == false) {
bCreationSucces = m_btnRecordPowerPoint.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, IDC_RECORDPOWERPOINT);
}
if (bCreationSucces==TRUE) {
SetButtonImage(&m_btnRecordPowerPoint, IDR_RECORD_PPT, CSize(32,32));
SetButtonStyle(&m_btnRecordPowerPoint, xtThemeOffice2003, BS_XT_XPFLAT, &m_btnFont14, RGB(255, 255, 255));
}
// Record Other button
csTitle.LoadString(IDS_OTHERAPP);
//csTitle = csPrefix + _T(" ") + csTitle;
bCreationSucces = m_btnRecordOther.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, ID_START_RECORDING_STARTUP_PAGE);
if (bCreationSucces == TRUE) {
SetButtonImage(&m_btnRecordOther,IDR_RECORD_OTHER, CSize(32,32));
SetButtonStyle(&m_btnRecordOther, xtThemeOffice2003, BS_XT_XPFLAT, &m_btnFont14, RGB(255, 255, 255));
}
// "New Source Document" button
csTitle.LoadString(IDS_NEW_LSD);
bCreationSucces = m_btnNewSourceDoc.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, ID_LSD_NEW);
if (bCreationSucces == TRUE) {
SetButtonImage(&m_btnNewSourceDoc,IDR_NEW_LSD, CSize(32, 32));
SetButtonStyle(&m_btnNewSourceDoc, xtThemeOffice2003, BS_XT_XPFLAT, &m_btnFont14, RGB(255, 255, 255));
}
// "Open Source Document" button
csTitle.LoadString(IDS_OPEN_LSD);
bCreationSucces = m_btnOpenSourceDoc.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, ID_LSD_OPEN);
if (bCreationSucces == TRUE) {
SetButtonImage(&m_btnOpenSourceDoc,IDR_OPEN_LSD, CSize(32,32));
SetButtonStyle(&m_btnOpenSourceDoc, xtThemeOffice2003, BS_XT_XPFLAT, &m_btnFont14, RGB(255, 255, 255));
}
// "Import PowerPoint" button
csTitle.LoadString(IDS_IMPORT_PPT);
bCreationSucces = m_btnImportPowerPoint.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, ID_PPT_IMPORT);
if (bCreationSucces == TRUE) {
SetButtonImage(&m_btnImportPowerPoint,IDR_IMPORT_PPT, CSize(32, 32));
SetButtonStyle(&m_btnImportPowerPoint, xtThemeOffice2003, BS_XT_XPFLAT, &m_btnFont14, RGB(255, 255, 255));
}
CRect rcNewButtons;
rcNewButtons.SetRect(0, 0, BUTTON_WIDTH1, BUTTON_HEIGHT1);
// Tutorials button
csTitle.LoadString(IDS_BUTTON_TUTORIALS);
bCreationSucces = m_btnTutorial.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, IDS_SHOW_IMC_WEBPAGE_TUTORIALS);
if(bCreationSucces)
{
SetButtonImage(&m_btnTutorial, IDR_PNG_TUTORIALS, CSize(32, 32));
SetButtonStyle(&m_btnTutorial, xtThemeOffice2003, BS_XT_XPFLAT /*| BS_XT_TRANSPARENT*/, &m_webBtnFont, RGB(233, 243, 249));
COLORREF clrWebButtons = 0x00333333;
m_btnTutorial.SetColorText(clrWebButtons);
}
csTitle.LoadString(IDS_BUTTON_GUIDED);
bCreationSucces = m_btnGuidedTour.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, IDS_SHOW_IMC_WEBPAGE_GUIDED_TOUR);
if(bCreationSucces)
{
m_btnGuidedTour.SetTheme(xtThemeOffice2003);
SetButtonImage(&m_btnGuidedTour, IDR_PNG_GUIDEDTOUR, CSize(32, 32));
SetButtonStyle(&m_btnGuidedTour, xtThemeOffice2003, BS_XT_XPFLAT /*| BS_XT_TRANSPARENT*/, &m_webBtnFont, RGB(233, 243, 249));
COLORREF clrWebButtons = 0x00333333;
m_btnGuidedTour.SetColorText(clrWebButtons);
}
csTitle.LoadString(IDS_BUTTON_COMMUNITY);
bCreationSucces = m_btnCommunity.Create(csTitle, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
rcButton, this, IDS_SHOW_IMC_WEBPAGE_COMUNITY);
if(bCreationSucces)
{
SetButtonImage(&m_btnCommunity, IDR_PNG_COMMUNITY, CSize(32, 32));
COLORREF clrWebButtons = 0x00333333;
m_btnCommunity.SetColorText(clrWebButtons);
SetButtonStyle(&m_btnCommunity, xtThemeOffice2003, BS_XT_XPFLAT /*| BS_XT_TRANSPARENT*/, &m_webBtnFont, RGB(233, 243, 249));
}
CString csOwnVersion;
//.........这里部分代码省略.........