Пример #1
0
BOOL CuPropertyPageRestoreOption::OnInitDialog()
{
    CPropertyPage::OnInitDialog();
    CxPSheetRestore* pParent = (CxPSheetRestore*)GetParent();
    CaRestoreParam& Restore = pParent->GetData();

    HICON hIcon = theApp.LoadStandardIcon(IDI_EXCLAMATION);
    m_cIconWarning.SetIcon(hIcon);
    m_cIconWarning.Invalidate();
    DestroyIcon(hIcon);

#if !defined (_VIRTUAL_NODE_AVAILABLE)
    m_cCheckVNode.ShowWindow(SW_HIDE);
#endif

    CTypedPtrList<CObList, CaNameValue*> listEnvirenment;
    CaNameValue* pEnv = new CaNameValue(_T("II_TEMPORARY"), _T(""));
    listEnvirenment.AddTail(pEnv);
    INGRESII_CheckVariable (listEnvirenment);

    CString strBackupFile = pEnv->GetValue();
    if (!strBackupFile.IsEmpty())
    {
        strBackupFile += consttchszPathSep;
    }

    int i = 0;
    CString strFile = strBackupFile + _T("backup.ii_vcda");
    for (i=0; i<1024; i++)
    {
        if (i==0)
        {
            if (_taccess(strFile, 0) == -1)
                break;
        }
        else
        {
            strFile.Format (_T("backup%04d.ii_vcda"), i);
            strFile = strBackupFile + strFile;
            if (_taccess(strFile, 0) == -1)
                break;
        }
    }
    if (i == 1024)
    {
        CString strMsg;
        AfxFormatString1(strMsg, IDS_MSG_TOOMANAY_BACKUPFILE, (LPCTSTR)pEnv->GetValue());
        AfxMessageBox (strMsg);
    }
    else
    {
        m_cEditBackup.SetWindowText(strFile);
    }

    while (!listEnvirenment.IsEmpty())
        delete listEnvirenment.RemoveHead();

    //
    // Initialize the list of READONLY variables:
    BOOL bVariableDiff = FALSE;
    CString strII = INGRESII_QueryInstallationID(FALSE);
    CTypedPtrList< CObList, CaCdaDifference* >* pLd = Restore.m_plistDifference;
    if (pLd)
    {
        POSITION pos = pLd->GetHeadPosition();
        while (pos != NULL)
        {
            CaCdaDifference* pDiff = pLd->GetNext(pos);
            if (pDiff->GetType() == CDA_ENVSYSTEM || pDiff->GetType() == CDA_ENVUSER)
            {
                if (CaIngresVariable::IsReadOnly(pDiff->GetOriginalName(), strII))
                {
                    m_cListROVariable.AddString(pDiff->GetName());
                    bVariableDiff = TRUE;
                }
            }
        }
    }

    if (!bVariableDiff)
    {
        HICON hIcon = theApp.LoadStandardIcon(IDI_ASTERISK);
        m_cIconWarning.SetIcon(hIcon);
        m_cIconWarning.Invalidate();
        DestroyIcon(hIcon);
        m_cListROVariable.ShowWindow(SW_HIDE);
        CString strMsgInfo;
        strMsgInfo.LoadString(IDS_MSG_VARIABLE_RO);
        m_cStaticNonEditVariableInfo.SetWindowText(strMsgInfo);
    }

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