//***************************************************************************************
BOOL CBCGPXMLSettings::Write (LPCTSTR pszKey, CWordArray& wcArray)
{
	if (m_bReadOnly)
	{
		ASSERT (FALSE);
		return FALSE;
	}

	BOOL bRes = FALSE;
	try
	{
		CMemFile file;

		{
			CArchive ar (&file, CArchive::store);

			ar << (int)wcArray.GetSize ();
			for (int i = 0; i < wcArray.GetSize (); i ++)
			{
				ar << wcArray [i];
			}

			ar.Flush ();
		}

#if _MSC_VER >= 1300
		ULONGLONG dwDataSize = file.GetLength ();
#else
		DWORD dwDataSize = file.GetLength ();
#endif
		LPBYTE lpbData = file.Detach ();

		if (lpbData == NULL)
		{
			return FALSE;
		}

		bRes = Write (pszKey, lpbData, (UINT) dwDataSize);
		free (lpbData);
	}
	catch (CMemoryException* pEx)
	{
		pEx->Delete ();
		TRACE(_T("Memory exception in CBCGPXMLSettings::Write ()!\n"));
		return FALSE;
	}

	return bRes;
}
Beispiel #2
0
void CCopyBlock::BuildBlockList(char* ModelClass, CSVector& List, CWordArray& FlagList, int& DefaultIndex)
  {
  DefaultIndex = -1;
  Strng s,Block;
  s.Set("(%s)", ModelClass);
  List.SetSize(16);
  FlagList.SetSize(16);
  int Cnt = 0;
  char Buff[16384];
  char Buff1[16];
  for (int i=0; i<2; i++)
    {
    CProfINIFile PF(i==0 ? CfgFiles() : PrjFiles(), (char*)CopyBlkFileName);
    CheckCopyBlockVer(PF);
    DWORD dw = PF.RdSectionNames(Buff, sizeof(Buff));
    ASSERT(dw<sizeof(Buff)-2); //section too large!!!
    char* p = Buff;
    while (p[0])
      {
      int len = strlen(p);
      char* Nextp = p;
      Nextp += (len + 1);
      char* pp = strstr(p, s());
      if (pp)
        {
        if (PF.RdSection(p, Buff1, sizeof(Buff1))>0)
          {
          Block = p;
          Block.SetLength((int)(pp-p));
          if (i==0 || List.Find(Block())<0)
            {
            if (Cnt>=List.GetSize())
              {
              List.SetSize(List.GetSize()+8);
              FlagList.SetSize(FlagList.GetSize()+8);
              }
            List[Cnt] = Block;
            FlagList[Cnt] = (i==0 ? 1 : 0);
            Cnt++;
            }
          }
        }
      p = Nextp;
      }
    }
  List.SetSize(Cnt);
  FlagList.SetSize(Cnt);
  }
Beispiel #3
0
void CZipArchive::DeleteFiles(CWordArray &aIndexes)
{
	if (IsClosed())
	{
		TRACE(_T("ZipArchive is closed.\n"));
		return;
	}
	
	if (m_storage.IsSpanMode())
	{
		TRACE(_T("You cannot delete files from the disk spannig archive.\n"));
		return;
	}
	
	if (m_iFileOpened)
	{
		TRACE(_T("You cannot delete files if there is a file opened.\n"));
		return;
	}
	
	// sorting the index table using qsort 
	int uSize = aIndexes.GetSize();
	if (!uSize)
		return;
	qsort((void*)&aIndexes[0], uSize, sizeof(WORD), CompareWords);
	
	m_centralDir.RemoveFromDisk();
	
	m_info.Init();
	// remove in a reverse order
	for (int i = uSize - 1; i >= 0; i--)
		DeleteInternal(aIndexes[i]);
	m_info.m_pBuffer.Release();
}
BOOL CBCGPRegistry::Read (LPCTSTR pszKey, CWordArray& wcArray)
{
	wcArray.SetSize (0);

	BOOL	bSucess = FALSE;
	BYTE*	pData = NULL;
	UINT	uDataSize;

	if (!Read (pszKey, &pData, &uDataSize))
	{
		ASSERT (pData == NULL);
		return FALSE;
	}

	ASSERT (pData != NULL);

	try
	{
		CMemFile file (pData, uDataSize);
		CArchive ar (&file, CArchive::load);

		int iSize;
		ar >> iSize;

		wcArray.SetSize (iSize);
		for (int i = 0; i < iSize; i ++)
		{
			ar >> wcArray [i];
		}

		bSucess = TRUE;
	}
	catch (CMemoryException* pEx)
	{
		pEx->Delete ();
		TRACE(_T("Memory exception in CBCGPRegistry::Read ()!\n"));
	}
	catch (CArchiveException* pEx)
	{
		pEx->Delete ();
		TRACE(_T("CArchiveException exception in CBCGPRegistry::Read ()!\n"));
	}

	delete [] pData;
	return bSucess;
}
Beispiel #5
0
void CZipArchive::DeleteFiles(CStringArray &aNames)
{
	CWordArray indexes;
	
	for (WORD i = 0; i < GetNoEntries(); i++)
	{
		CFileHeader fh;
		GetFileInfo(fh, i);
		for (int j = 0; j < aNames.GetSize(); j++)
			if (!aNames[j].CollateNoCase(fh.m_szFileName))
			{
				indexes.Add(i);
				break;
			}
	}
	
	DeleteFiles(indexes);
}
Beispiel #6
0
void CPreferences::GetLanguages(CWordArray& aLanguageIDs)
{
	const SLanguage* pLang = _aLanguages;
	while (pLang->lid){
		//if (pLang->bSupported)
		//show all languages, offer download if not supported ones later
		aLanguageIDs.Add(pLang->lid);
		pLang++;
	}
}
Beispiel #7
0
afx_msg void CTuConfigTUDlg::OnDel()
{
	CCellID SelectedCell;
	CWordArray arGrigIndexes;	

	for(int m = 1; m < m_Grid.GetRowCount(); m++)
	{
		SelectedCell.row=m;
		SelectedCell.col=0;
		BOOL bRowSelected = FALSE;
		for(int s = 1; s < m_Grid.GetColumnCount(); s++)
		{
			if(m_Grid.GetItemState(SelectedCell.row,s) & GVIS_SELECTED)
			{
				bRowSelected=TRUE;
				break;
			}
		}
		if(bRowSelected)
		{			
			arGrigIndexes.Add(SelectedCell.row);								
		}
	}
	for(int j = 0; j < arGrigIndexes.GetSize();j++)
	{				
		m_Grid.DeleteRow(arGrigIndexes[j]);				
		m_TuArray.RemoveAt(arGrigIndexes[j]-1);				
		for(int v = j+1; v < arGrigIndexes.GetSize();v++)
		{
			arGrigIndexes[v]--;
		}
	}	
	/*CCellID pCell = m_Grid.GetFocusCell();
	
	if((pCell.row > 0)&&(pCell.col >= 0))
	{
		m_TuArray.RemoveAt(pCell.row-1);		
	}*/
	SaveGrid();	
	UpdateGrid();
}
Beispiel #8
0
void CSmartFieldsDialog::UpdateFields(BOOL fReflow, int nMacro /*=-1*/)
{
	CWordArray cwaMacros;

/* If "values" changed, reflow all... */

	if (m_pMacroServer->ShowMacroValues() != m_fShowValues)
	{
		ASSERT(nMacro == -1);
		m_pMacroServer->ShowMacroValues(m_fShowValues);
		fReflow = TRUE;
	}

/* If a macro changed, update it... */

	if (nMacro != -1)
	{
		CMacro* pMacro = m_pMacros->Macro(nMacro);
		ASSERT(pMacro != NULL);

		cwaMacros.Add(pMacro->Id() + MACRO_CHARACTER);
	}

/* Reflow if needed. */

	m_pMacroServer->ModifiedMacros();
	m_pDoc->SetModifiedFlag();

	if (fReflow)
	{
		m_pDoc->ReflowMacros(nMacro == -1 ? NULL : &cwaMacros);
		if (m_pReflowHook != NULL)
		{
			m_pReflowHook(m_pReflowData);
		}
	}
}
Beispiel #9
0
BOOL CPPgGeneral::OnInitDialog()
{
	CPropertyPage::OnInitDialog();
	InitWindowStyles(this);

	((CEdit*)GetDlgItem(IDC_NICK))->SetLimitText(thePrefs.GetMaxUserNickLength());

	CWordArray aLanguageIDs;
	thePrefs.GetLanguages(aLanguageIDs);
	for (int i = 0; i < aLanguageIDs.GetSize(); i++){
		TCHAR szLang[128];
		int ret=GetLocaleInfo(aLanguageIDs[i], LOCALE_SLANGUAGE, szLang, ARRSIZE(szLang));

		if (ret==0 && aLanguageIDs[i]== LANGID_GL_ES )
			_tcscpy(szLang,_T("Galician") );
		else if (ret==0 && aLanguageIDs[i]==LANGID_FR_BR )
			_tcscpy(szLang,_T("Breton (Brezhoneg)") );
		else if (ret==0 && aLanguageIDs[i]==LANGID_MT_MT )
			_tcscpy(szLang,_T("Maltese") );
		else if (ret==0 && aLanguageIDs[i]==LANGID_ES_AS )
			_tcscpy(szLang,_T("Asturian") );

		if (!_tcscmp(szLang, _T("中文(台湾)"))) //Added by thilon on 2006.09.06
			_tcscpy(szLang, _T("中文(繁体)"));
	
		if (!_tcscmp(szLang, _T("中文(中国)")))	//Added by thilon on 2006.09.06
			_tcscpy(szLang, _T("中文(简体)"));

		if (!_tcscmp(szLang, _T("Chinese (Taiwan)")))
			_tcscpy(szLang, _T("Chinese (Tradition)"));

		
		if (!_tcscmp(szLang, _T("Chinese (PRC)")))
			_tcscpy(szLang, _T("Chinese (Simplified)"));

		m_language.SetItemData(m_language.AddString(szLang), aLanguageIDs[i]);
	}

	//Chocobo Start
	//eMule自动更新,modified by Chocobo on 2006.08.01
	//屏蔽修改更新间隔
	CSliderCtrl *sliderUpdate = (CSliderCtrl*)GetDlgItem(IDC_CHECKDAYS);
	sliderUpdate->SetRange(1, 7, true);//自动更新时间1-7,modified by Chocobo on 2006.08.17
	sliderUpdate->SetPos(thePrefs.GetUpdateDays());
	//Chocobo End

	//Changed by thilon on 2007.11.01
	m_iFileBufferSize = thePrefs.m_iFileBufferSize;
	
	
	// added by vc-yavey on 20100429 : config rss <begin>
	m_uRssIntervalSecond = thePrefs.m_uRssUpdateInterval;
	m_bRssAutoDownload = thePrefs.m_bRssAutoDownload;
	// added by vc-yavey on 20100429 : config rss <end>

	LoadSettings();
	//Localize();

	GetDlgItem(IDC_CHECKDAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE );
	GetDlgItem(IDC_DAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE );

	return TRUE;  // return TRUE unless you set the focus to a control
				  // EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CPPgGeneral::OnInitDialog()
{
	CPropertyPage::OnInitDialog();
	InitWindowStyles(this);

	((CEdit*)GetDlgItem(IDC_NICK))->SetLimitText(thePrefs.GetMaxUserNickLength());

	CWordArray aLanguageIDs;
	thePrefs.GetLanguages(aLanguageIDs);
	for (int i = 0; i < aLanguageIDs.GetSize(); i++){
		TCHAR szLang[128];
		int ret=GetLocaleInfo(aLanguageIDs[i], LOCALE_SLANGUAGE, szLang, ARRSIZE(szLang));

		if (ret==0)
			switch(aLanguageIDs[i]) {
				case LANGID_UG_CN:
					_tcscpy(szLang,_T("Uyghur") );
					break;
				case LANGID_GL_ES:
					_tcscpy(szLang,_T("Galician") );
					break;
				case LANGID_FR_BR:
					_tcscpy(szLang,_T("Breton (Brezhoneg)") );
					break;
				case LANGID_MT_MT:
					_tcscpy(szLang,_T("Maltese") );
					break;
				case LANGID_ES_AS:
					_tcscpy(szLang,_T("Asturian") );
					break;
				case LANGID_VA_ES:
					_tcscpy(szLang,_T("Valencian") );
					break;
				case LANGID_VA_ES_RACV:
					_tcscpy(szLang, _T("Valencian (RACV)"));
					break;
				default:
					ASSERT(0);
					_tcscpy(szLang,_T("?(unknown language)?") );
			}

		m_language.SetItemData(m_language.AddString(szLang), aLanguageIDs[i]);
	}

	UpdateEd2kLinkFixCtrl();

	CSliderCtrl *sliderUpdate = (CSliderCtrl*)GetDlgItem(IDC_CHECKDAYS);
	sliderUpdate->SetRange(2, 7, true);
	sliderUpdate->SetPos(thePrefs.GetUpdateDays());
	
	LoadSettings();
	Localize();
	//Xman versions check
	/*
	GetDlgItem(IDC_CHECKDAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE );
	GetDlgItem(IDC_DAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE );
	*/
	//Xman end

	return TRUE;  // return TRUE unless you set the focus to a control
				  // EXCEPTION: OCX Property Pages should return FALSE
}
Beispiel #11
0
BOOL CRetrConfigDlg::SaveGrid(void)
{
	CString str;
	CManyRetrArray ManyRetrArray;

	for(int i = 1; i < m_Grid.GetRowCount();i++)
	{
		ManyRetr tmp;		

		str = m_Grid.GetItemText(i,1);
		tmp.START_ADRES_OBJECT = atoi(str);

		str = m_Grid.GetItemText(i,2);
		tmp.START_ADRES_RETR = atoi(str);

		str = m_Grid.GetItemText(i,3);
		tmp.NUM_MANY_RETR_OBJECT = atoi(str);
	
		if(tmp.NUM_MANY_RETR_OBJECT == 0)
		{
			str.Format("Не задано количество объектов ретрансяляции! Строка: %d",i);
			m_Grid.SetFocusCell(i,3);
			AfxMessageBox(str);
			return FALSE;
		}

		str = m_Grid.GetItemText(i,4);
		if(str.IsEmpty())
		{
			str.Format("Не задан процесс ретрансяляции! Строка: %d",i);
			m_Grid.SetFocusCell(i,4);
			AfxMessageBox(str);
			return FALSE;
		}
		str.TrimLeft('№');
		int index = str.Find(' ');
		str = str.Left(index);
		tmp.PATH_DIRECT = atoi(str);		
		
		tmp.FLAG_RETR = 5;		

		tmp.strCOMMENT = m_Grid.GetItemText(i,5);

		ManyRetrArray.Add(tmp);
	}
	for(int j = 0; j < ManyRetrArray.GetSize(); j++)
	{
		if((ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Retr.NUM_RETR_OBJECT)
			||(ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Retr.NUM_RETR_OBJECT))
		{
			str.Format("Выход за пределы адресного пространства ретрансляции! Строка: %d",j+1);			
			AfxMessageBox(str);
			//return FALSE;
		}
		//Уточнить у Виталика!!!!			
		if(ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT > m_Main_Set.m_ProcessInfoArray[ManyRetrArray[j].PATH_DIRECT-1].AMOUNT_SIGNIFICATE)
		{
			str.Format("Выход за пределы адресного пространства процесса! Строка: %d",j+1);			
			AfxMessageBox(str);
			//return FALSE;
		}
		
		for(int k = j+1; k < ManyRetrArray.GetSize(); k++)
		{
			if((ManyRetrArray[j].NUM_MANY_RETR_OBJECT == ManyRetrArray[k].NUM_MANY_RETR_OBJECT)
				&&(ManyRetrArray[j].PATH_DIRECT == ManyRetrArray[k].PATH_DIRECT)
				&&(ManyRetrArray[j].START_ADRES_OBJECT == ManyRetrArray[k].START_ADRES_OBJECT)
				&&(ManyRetrArray[j].START_ADRES_RETR == ManyRetrArray[k].START_ADRES_RETR))			
			{
				str.Format("Одинаковые наборы ретрансляции: %d и %d !",j+1,k+1);			
				AfxMessageBox(str);
				return FALSE;
			}
			if(ManyRetrArray[j].PATH_DIRECT == ManyRetrArray[k].PATH_DIRECT)//proverka na naloghenie
			{	
				//Газин сказал не надо проверять!!!
				/*//k=15..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_OBJECT >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1);
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT)
					&&(ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1);
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..15   j=10..20 
				if((ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_OBJECT)
					&&(ManyRetrArray[k].START_ADRES_OBJECT+ManyRetrArray[k].NUM_MANY_RETR_OBJECT <= ManyRetrArray[j].START_ADRES_OBJECT+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов в карте памяти для наборов ретрансляции: %d и %d !",j+1,k+1);
					AfxMessageBox(str);
					return FALSE;
				}*/
				//////////////////////////////////////////////////////////////////////////////////////////////////
				//k=15..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_RETR >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR < ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1);			
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..25   j=10..20 
				if((ManyRetrArray[k].START_ADRES_RETR <= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1);			
					AfxMessageBox(str);
					return FALSE;
				}
				//k=1..15   j=10..20 
				if((ManyRetrArray[k].START_ADRES_RETR >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT >= ManyRetrArray[j].START_ADRES_RETR)
					&&(ManyRetrArray[k].START_ADRES_RETR+ManyRetrArray[k].NUM_MANY_RETR_OBJECT <= ManyRetrArray[j].START_ADRES_RETR+ManyRetrArray[j].NUM_MANY_RETR_OBJECT))
				{
					str.Format("Наложение адресов ретрансляции для наборов ретрансляции: %d и %d !",j+1,k+1);			
					AfxMessageBox(str);
					return FALSE;
				}				
			}
		}		
	}

	CWordArray arrPD;
	for(int j = 0; j < ManyRetrArray.GetSize(); j++)
	{
		BOOL bFound = FALSE;
		for(int l = 0; l < arrPD.GetSize(); l++)
		{
			if(arrPD[l] == (WORD)ManyRetrArray[j].PATH_DIRECT)
			{
				ManyRetrArray[j].PLACE_OF_PUT = l;
				bFound = TRUE;
				break;
			}
		}
		if(!bFound)
		{
			ManyRetrArray[j].PLACE_OF_PUT = arrPD.Add((WORD)ManyRetrArray[j].PATH_DIRECT);			 
		}
	}	

	m_Retr.NUM_TRANSMIT_DIRECT = arrPD.GetSize();
	m_Retr.m_ManyRetrArray.RemoveAll();
	m_Retr.m_ManyRetrArray.Copy(ManyRetrArray);
	return TRUE;
}
Beispiel #12
0
void CRetrConfigDlg::UpdateGrid(void)
{
	CString str;
	CStringArray aOptions;
	CWordArray aProcesses;
	for(int j = 0; j < m_Main_Set.m_ProcessInfoArray.GetSize();j++)
	{
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 2)
		{
			str.Format("№%d (MODBUS-slave)",j+1);
			aProcesses.Add(j+1);
			aOptions.Add(str);
		}
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 4)
		{
			str.Format("№%d (IEC870-5-101-slave)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 8)
		{
			str.Format("№%d (IEC870-5-104-slave PtP)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}		
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 14)
		{
			str.Format("№%d (IEC870-5-104-slave PtMP)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}		
		if(m_Main_Set.m_ProcessInfoArray[j].TYPE_PROTOKOL == 18)
		{
			str.Format("№%d (Вывод на ДЩ)",j+1);
			aOptions.Add(str);
			aProcesses.Add(j+1);
		}	
	}

	m_Grid.DeleteNonFixedRows();
	
	for(int i = 0; i < m_Retr.m_ManyRetrArray.GetSize();i++)
	{
		int nIndex = m_Grid.InsertRow(NULL);

		str.Format("%d",i+1);
		m_Grid.SetItemText(nIndex,0,str);
		str.Format("%d",m_Retr.m_ManyRetrArray[i].START_ADRES_OBJECT);
		m_Grid.SetItemText(nIndex,1,str);
		str.Format("%d",m_Retr.m_ManyRetrArray[i].START_ADRES_RETR);
		m_Grid.SetItemText(nIndex,2,str);
		str.Format("%d",m_Retr.m_ManyRetrArray[i].NUM_MANY_RETR_OBJECT);
		m_Grid.SetItemText(nIndex,3,str);
				
		m_Grid.SetCellType(nIndex,4, RUNTIME_CLASS(CGridCellCombo));
		CGridCellCombo *pCell = (CGridCellCombo*) m_Grid.GetCell(nIndex,4);		
		pCell->SetOptions(aOptions);		
		pCell->SetStyle(CBS_DROPDOWNLIST); //CBS_DROPDOWN, CBS_DROPDOWNLIST, CBS_SIMPLE	
		for(int k = 0; k < aProcesses.GetSize(); k++)
		{
			if(aProcesses[k] == m_Retr.m_ManyRetrArray[i].PATH_DIRECT)
			{
				pCell->SetCurSel(k);
				break;
			}
		}
		m_Grid.SetItemText(nIndex,5,m_Retr.m_ManyRetrArray[i].strCOMMENT);
	}

	m_Grid.AutoSize();	
	m_Grid.Refresh();
}
BOOL CPPgGeneral::OnInitDialog()
{
	CPropertyPage::OnInitDialog();
	InitWindowStyles(this);

	// eF-Mod :: InvisibleMode
	// Add keys to ComboBox 
	for(int i='A'; i<='Z'; i++) 
		((CComboBox*)GetDlgItem(IDC_INVISIBLE_MODE_SELECT_COMBO))->AddString(CString((TCHAR)(i))); 
	for(int i='0'; i<='9'; i++) 
		((CComboBox*)GetDlgItem(IDC_INVISIBLE_MODE_SELECT_COMBO))->AddString(CString((TCHAR)(i))); 
	// eF-Mod end

	((CEdit*)GetDlgItem(IDC_NICK))->SetLimitText(thePrefs.GetMaxUserNickLength());

	CWordArray aLanguageIDs;
	thePrefs.GetLanguages(aLanguageIDs);
	for (int i = 0; i < aLanguageIDs.GetSize(); i++){
		TCHAR szLang[128];
		int ret=GetLocaleInfo(aLanguageIDs[i], LOCALE_SLANGUAGE, szLang, ARRSIZE(szLang));

		if (ret==0 && aLanguageIDs[i]== LANGID_GL_ES )
			_tcscpy(szLang,_T("Galician") );
		else if (ret==0 && aLanguageIDs[i]==LANGID_FR_BR )
			_tcscpy(szLang,_T("Breton (Brezhoneg)") );

		m_language.SetItemData(m_language.AddString(szLang), aLanguageIDs[i]);
	}

	UpdateEd2kLinkFixCtrl();

	GetDlgItem(IDC_ONLINESIG)->ShowWindow( thePrefs.IsExtControlsEnabled()?SW_SHOW:SW_HIDE );

	CSliderCtrl *sliderUpdate = (CSliderCtrl*)GetDlgItem(IDC_CHECKDAYS);
	sliderUpdate->SetRange(2, 7, true);
	sliderUpdate->SetPos(thePrefs.GetUpdateDays());
	
	LoadSettings();
	Localize();
	GetDlgItem(IDC_CHECKDAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE );
	GetDlgItem(IDC_DAYS)->ShowWindow( IsDlgButtonChecked(IDC_CHECK4UPDATE) ? SW_SHOW : SW_HIDE );

	return TRUE;  // return TRUE unless you set the focus to a control
				  // EXCEPTION: OCX Property Pages should return FALSE
}