Иллюстрированный самоучитель по Visual Studio.Net



Собственные методы класса - часть 3


"SSPI", "Control", "Cert",

"Internet", "MediaServer", "MSMQ",

"SetupAPI", "Smart Card", "COM+",

"AAF", "URT", "ACS",

"DPlay", "UMI", "SXS" };

Категории ошибок принято обозначать аббревиатурами, смысл которых можно выяснить в разделе Glossary MSDN. Например, аббревиатура RFC (Remote Procedure Call) обозначает категорию ошибок, связанных с обращением к процедурам, которые размещены на других процессорах сети.

Повторите последовательность действий по введению в класс вспомогательной функции и создайте функцию Getlnfo. Она выбирает из контейнера структуру, которая соответствует ошибке с индексом nPos, и присваивает переменным, связанным с элементами управления в окне диалога, значения, которые характеризуют ошибку (атрибуты ошибки). После такой операции можно проводить обмен данными (UpdateData(FALSE)) с дочерними окнами диалога и они «высветят» ошибку.

  • Переведите фокус мыши на узел CLookDlg в дереве классов Class View, вызовите контекстное меню и дайте команду Add > Add Function.
  • В окне мастера Add Member Function Wizard заполните следующие поля: Return type: void, Function name: Getlnfo, Parameter type: int, Parameter name: nPos.

  • Нажмите кнопку Add.

  • В поле Access: задайте тип доступа public:

    void CLookDlg::GetInfo(int nPos)

    {

    // ======= Текущая позиция

    m_CurPos.Format("%d",nPos);

    if (nPos >= m_nltems)

    return;

    //======= Выбираем поля структуры

    m_Code = m_Vector[nPos].Code.c_str();

    m_Msg = m_Vector[nPos].Message.c_str() ;

    m_ID= m_Vector[nPos].Identifier.c_str();

    //====== Преобразование кода в целое число

    DWORD dw = strtoul(LPCTSTR(m_Code),0,0);

    //====== Выделяем старший бит (Severity)

    m_Severity = dw & 0x80000000 ? "Fail" : "Success";

    //=== СОМ-коды это НЕХ-коды, длина которых > 8 символов

    //=== В этой ветви мы обрабатываем Win32-ошибки

    if (m_Code.GetLength() < 8)




    Содержание  Назад  Вперед