Операционные системы. Марапулец Ю.В. - 29 стр.

UptoLike

Составители: 

RegCreateKey( m_hRegKey, szBuff, ShKeyItem );
Так как заранее известно, что этот раздел существует (об этом
свидетельствует результат выполнения функции RegEnumKey), функция
RegCreateKey просто открывает раздел и возвращает его дескриптор, который
может использоваться в запросах для определения значений параметров,
содержащихся в открытом разделе.
ulSize = sizeof( m_dwNameStatus );
lResult = RegQueryValueEx ( hKeyltem, "Status", NULL,
&ulType, (LPBYTE) &m_dwNameStatus, &ulSize );
Указанная выше функция RegQueryValueEx запрашивает значение,
содержащееся в именованном параметре Status. Вместе с этим значением
переменная-член ulType возвращает также идентификатор соответствующего
типа данных в виде длинного целого без знака. Информация о размере данных
будет получена посредством переменной-члена ulSize. Независимо от того, что
собой представляют запрашиваемые данные - значение типа DWORD,
строковое значение, двоичный массив или данные любого другого типа, адрес
получающей их переменной всегда преобразуется в формат указателя на байт.
Затем, чтобы убедиться в корректности выполнения функции, произвести
проверку значения lResult. В случае некорректного ее завершения на экране
появляется сообщение об ошибке.
if( lResult != ERROR_SUCCESS ) ReportError( lResult );
К этому моменту уже получен из подраздела код состояния, а также имя
самого подраздела. Прежде чем цикл будет продолжен для следующего
подраздела, эти значения необходимо задействовать путем размещения их
соответственно в качестве строкового элемента списка ComboListbox и индекса
данного элемента.
nIndex = m_cbNamesList.AddString( m_csNameEntry );
m_cbNamesList.SetItemData( nIndex, m dwNameStatus );
}
Затем цикл будет выполнен для всех остальных подразделов.
}
while( lResult != ERROR_NO_MORE_ITEMS );
return TRUE;
}
29
                RegCreateKey( m_hRegKey, szBuff, ShKeyItem );

     Так как заранее известно, что этот раздел существует (об этом
свидетельствует результат выполнения функции RegEnumKey), функция
RegCreateKey просто открывает раздел и возвращает его дескриптор, который
может использоваться в запросах для определения значений параметров,
содержащихся в открытом разделе.

                ulSize = sizeof( m_dwNameStatus );
                lResult = RegQueryValueEx ( hKeyltem, "Status", NULL,
                             &ulType, (LPBYTE) &m_dwNameStatus, &ulSize );

      Указанная выше функция RegQueryValueEx запрашивает значение,
содержащееся в именованном параметре Status. Вместе с этим значением
переменная-член ulType возвращает также идентификатор соответствующего
типа данных в виде длинного целого без знака. Информация о размере данных
будет получена посредством переменной-члена ulSize. Независимо от того, что
собой представляют запрашиваемые данные - значение типа DWORD,
строковое значение, двоичный массив или данные любого другого типа, адрес
получающей их переменной всегда преобразуется в формат указателя на байт.
      Затем, чтобы убедиться в корректности выполнения функции, произвести
проверку значения lResult. В случае некорректного ее завершения на экране
появляется сообщение об ошибке.

                if( lResult != ERROR_SUCCESS ) ReportError( lResult );

      К этому моменту уже получен из подраздела код состояния, а также имя
самого подраздела. Прежде чем цикл будет продолжен для следующего
подраздела, эти значения необходимо задействовать путем размещения их
соответственно в качестве строкового элемента списка ComboListbox и индекса
данного элемента.

                nIndex = m_cbNamesList.AddString( m_csNameEntry );
                m_cbNamesList.SetItemData( nIndex, m dwNameStatus );
           }

     Затем цикл будет выполнен для всех остальных подразделов.

     }
     while( lResult != ERROR_NO_MORE_ITEMS );
     return TRUE;
}



                                    29