bool CExcelDOMStripperStrategy::Excel2007(IDispatchPtr spDispWorkbook)
{
	Excel::_WorkbookPtr spWorkbook = spDispWorkbook;
	CStdString sVer(spWorkbook->Application->Version);
	int iVer = _wtoi(sVer.Left(2).c_str());
	if (iVer >= 12)
		return true;

	return false;
}
void frmMain::readReply(QNetworkReply * replyIn)
{
    // Проверяем, не произошло ли ошибки при выполнении запроса:
    if (replyIn->error() != QNetworkReply::NoError)
    {
        // Ошибка произошла - сообщаем о ней. Если поднят флаг выхода -
        // предлагаем пользователю настроить параметры соединения. Если флаг
        // выхода не поднять - значит, пользовательский интерфейс уже открыт,
        // и смысла предлагать пользователю его открыть нет.
        QString sMsg(tr("Failed to get version info from site."));
        QString sErr(replyIn->errorString());
        if (bExitOnReply)
        {
            sMsg.append(tr(" Open connection settings?"));
            if (MsgUtilsMy::showQuestion(this, false, sMsg,
                QString(), sErr))
                bExitOnReply = false;
        }
        else
            MsgUtilsMy::showErrorMsg(this, sMsg, QString(), sErr);
        // Если установлен флаг выхода - выходим из программы, иначе показываем
        // основную форму:
        if (bExitOnReply)
            qApp->exit(0);
        else
            this->show();
        // Завершаем функцию:
        return;
    }
    // Получаем текст полученного ответа на запрос:
    QString sVer(replyIn->readAll());
    // Маркер начала версии программы:
    QString sVerStartMark(VERSION_START);
    // Маркер окончания версии программы:
    QString sVerEndMark(VERSION_END);
    // Проверка наличия версии программы в нужном формате.
    // Ищем маркер начала строки версии:
    int iVStart = sVer.indexOf(sVerStartMark, 0, Qt::CaseInsensitive);
    // Позиция маркера окончания строки версии:
    int iVEnd = -1;
    // В случае, если маркер начала версии найден - ищем маркер окончания версии:
    if (iVStart > -1)
        iVEnd = sVer.indexOf(sVerEndMark, iVStart, Qt::CaseInsensitive);
    // В случае, если маркер начала или маркер окончания строки версии не найден -
    // сообщаем об ошибке и завершаем функцию:
    if (iVStart == -1 || iVEnd == -1)
    {
        // Ошибка произошла - сообщаем о ней:
        MsgUtilsMy::showErrorMsg(this, tr("Error while readin version from site."),
            QString(), tr("Version start or version end marker is not found."));
        // Если установлен флаг выхода - выходим из программы, иначе показываем
        // основную форму:
        if (bExitOnReply)
            qApp->exit(0);
        else
            this->show();
        // Завершаем функцию:
        return;
    }
    // Убираем окончание строки, начиная с первого символа маркера окончания строки версии:
    sVer.remove(iVEnd, sVer.length() - iVEnd);
    // Убираем начало строки до версии, включая маркер начала версии:
    sVer.remove(0, iVStart + sVerStartMark.length());
    // Создаём объекты версий:
    LWVersion verCurrent(sCurVer);
    LWVersion verSite(sVer);
    // Если версия на сайте больше - сообщаем об этом и предлагаем перейти на сайт:
    if (verSite.isHigherThan(verCurrent))
    {
        if (MsgUtilsMy::showQuestion(this, false,
            tr("New %1 version is available. Open download page?").arg(sProg)))
            QDesktopServices::openUrl(QUrl(sPageGoTo));
    }
    // Установлена последняя версия. В случае, если поднят флаг выхода
    // после проверки - сообщать о наличии последней версии пользователю
    // не нужно. В случае, если флаг выхода не поднят - значит, проверка
    // запущена пользователем, и надо сообщить ему, что у него самая
    // последняя версия:
    else
    {
        // Сообщаем об отстутствии обновлений в случае, если вывод
        // таких сообщений явно включен, и в случае, если вывод
        // не выключен и не поднят флаг выхода после проверки:
        if ((iNupMsg == 2) || ((iNupMsg != 1) && !bExitOnReply))
            // Сообщаем, что установлена последняя версия:
            MsgUtilsMy::showInfoMsg(this,
                tr("Latest %1 version is installed.").arg(sProg));
    }
    // Если поднят флаг завершения работы приложения после получения ответа -
    // завершаем работу приложения, иначе показываем главное окно:
    if (bExitOnReply)
        qApp->exit(0);
    else
        this->show();
}