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

         

ошибок не имеют полей facility


{

if (dw)

{

//====== Вставляем поля facility и severity

dw = 0x80000000 | (0x7 << 16) | (dw f, OxFFFF) ;

m_Severity = "Error";

}

}

//====== Выделяем поле facility

UINT f = (dw»16) & 0xlFFF;

//====== Выбираем нужную аббревиатуру

m_Facility = f <= N_FACILITIES |gsFacilities[f) : "Unknown";

}

Так как коды \Ут32- ошибок не имеют полей facility и severity (эти атрибуты появились позже), то их надо синтезировать. Таким же образом поступает макроподстановка HRESULT_FROM_wiN32, и ее можно использовать в этом месте, но мы (с учебной целью) вставили ее код. Если вы хотите опробовать макрос, то замените строку

dw = 0x80000000 | (0x7 << 16) | (dw & 0xFFFF);

на

dw = HRESULT_FROM_WIN32(dw);

Далее мы выделяем поле facility и выбираем из массива gsFacilities аббревиатуру, которая более информативна, чем число f, кодирующее facility.




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







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий