Иллюстрированный самоучитель по 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)) с дочерними окнами диалога и они «высветят» ошибку.

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

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

  4. В поле 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)




Начало  Назад  Вперед



Книжный магазин